diff --git a/packages/web/src/appobj/AppObjectList.svelte b/packages/web/src/appobj/AppObjectList.svelte
index a43cfa286..18558721c 100644
--- a/packages/web/src/appobj/AppObjectList.svelte
+++ b/packages/web/src/appobj/AppObjectList.svelte
@@ -5,6 +5,7 @@
import AppObjectListItem from './AppObjectListItem.svelte';
import { writable } from 'svelte/store';
+ import Link from '../elements/Link.svelte';
export let list;
export let module;
@@ -25,10 +26,13 @@
export let groupFunc = undefined;
export let onDropOnGroup = undefined;
export let emptyGroupNames = [];
+ export let isExpandedOnlyBySearch = false;
export let collapsedGroupNames = writable([]);
export let onChangeFilteredList = undefined;
+ let expandLimited = false;
+
$: matcher = module.createMatcher && module.createMatcher(filter, passProps?.searchSettings);
$: childMatcher = module.createChildMatcher && module.createChildMatcher(filter, passProps?.searchSettings);
@@ -73,6 +77,10 @@
}
$: groups = groupFunc ? extendGroups(_.groupBy(listGrouped, 'group'), emptyGroupNames) : null;
+
+ $: listLimited =
+ isExpandedOnlyBySearch && !expandLimited ? filtered.slice(0, Math.min(filter.trim().length, 3)) : list;
+ $: isListLimited = isExpandedOnlyBySearch && listLimited.length < filtered.length;
{#if groupFunc}
@@ -98,7 +106,7 @@
/>
{/each}
{:else}
- {#each list as data}
+ {#each listLimited as data}
{/each}
+ {#if isListLimited}
+
+ {
+ expandLimited = true;
+ }}>Show next {filtered.length - listLimited.length}
+
+ {/if}
{/if}
diff --git a/packages/web/src/appobj/AppObjectListItem.svelte b/packages/web/src/appobj/AppObjectListItem.svelte
index 518564b27..687a29570 100644
--- a/packages/web/src/appobj/AppObjectListItem.svelte
+++ b/packages/web/src/appobj/AppObjectListItem.svelte
@@ -63,7 +63,7 @@
{#if (isExpanded || isExpandedBySearch) && subItemsComponent}
diff --git a/packages/web/src/appobj/SubProcedureLineList.svelte b/packages/web/src/appobj/SubProcedureLineList.svelte
index ef04d92e1..4ba0afa53 100644
--- a/packages/web/src/appobj/SubProcedureLineList.svelte
+++ b/packages/web/src/appobj/SubProcedureLineList.svelte
@@ -8,6 +8,7 @@
export let data;
export let filter;
+ export let isExpandedOnlyBySearch;
diff --git a/packages/web/src/appobj/SubTableColumnList.svelte b/packages/web/src/appobj/SubTableColumnList.svelte
index dfe66d865..f9af8743e 100644
--- a/packages/web/src/appobj/SubTableColumnList.svelte
+++ b/packages/web/src/appobj/SubTableColumnList.svelte
@@ -6,6 +6,7 @@
export let data;
export let filter;
+ export let isExpandedOnlyBySearch;
diff --git a/packages/web/src/widgets/SqlObjectList.svelte b/packages/web/src/widgets/SqlObjectList.svelte
index 6a0798c0e..a549db596 100644
--- a/packages/web/src/widgets/SqlObjectList.svelte
+++ b/packages/web/src/widgets/SqlObjectList.svelte
@@ -269,9 +269,9 @@
.map(x => ({ ...x, conid, database }))}
module={databaseObjectAppObject}
groupFunc={data => getObjectTypeFieldLabel(data.objectTypeField, driver)}
- subItemsComponent={data =>
+ subItemsComponent={(data, { isExpandedOnlyBySearch }) =>
data.objectTypeField == 'procedures' || data.objectTypeField == 'functions'
- ? filter
+ ? filter && isExpandedOnlyBySearch
? SubProcedureLineList
: SubProcedureParamList
: SubTableColumnList}