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}