diff --git a/packages/web/src/widgets/WidgetColumnBar.svelte b/packages/web/src/widgets/WidgetColumnBar.svelte index 45cafb9ca..c5da25125 100644 --- a/packages/web/src/widgets/WidgetColumnBar.svelte +++ b/packages/web/src/widgets/WidgetColumnBar.svelte @@ -1,38 +1,99 @@
diff --git a/packages/web/src/widgets/WidgetColumnBarItem.svelte b/packages/web/src/widgets/WidgetColumnBarItem.svelte index c48678f9f..276e3ac5e 100644 --- a/packages/web/src/widgets/WidgetColumnBarItem.svelte +++ b/packages/web/src/widgets/WidgetColumnBarItem.svelte @@ -17,55 +17,45 @@ export let storageName = null; export let onClose = null; + export let minimalHeight = 100; + export let name; - let size = 0; + // let size = 0; - const dynamicProps = writable({ - splitterVisible: false, - visibleItemsCount: 0, - }); + // const dynamicProps = writable({ + // splitterVisible: false, + // visibleItemsCount: 0, + // }); const pushWidgetItemDefinition = getContext('pushWidgetItemDefinition') as any; const updateWidgetItemDefinition = getContext('updateWidgetItemDefinition') as any; - const widgetColumnBarHeight = getContext('widgetColumnBarHeight') as any; - const widgetItemIndex = pushWidgetItemDefinition( - { - collapsed, - height, - skip, - positiveCondition, - }, - dynamicProps - ); + // const widgetColumnBarHeight = getContext('widgetColumnBarHeight') as any; + const widgetResizeItem = getContext('widgetResizeItem') as any; + const widgetColumnBarComputed = getContext('widgetColumnBarComputed') as any; + pushWidgetItemDefinition(name, { + collapsed, + height, + skip, + positiveCondition, + }); - $: updateWidgetItemDefinition(widgetItemIndex, { collapsed: !visible, height, skip, positiveCondition }); + $: updateWidgetItemDefinition(name, { collapsed: !visible, height, skip, positiveCondition }); - $: setInitialSize(height, $widgetColumnBarHeight); + // $: setInitialSize(height, $widgetColumnBarHeight); - $: if (storageName && $widgetColumnBarHeight > 0) { - setLocalStorage(storageName, { relativeHeight: size / $widgetColumnBarHeight, visible }); - } - - function setInitialSize(initialSize, parentHeight) { - if (storageName) { - const storage = getLocalStorage(storageName); - if (storage) { - size = parentHeight * storage.relativeHeight; - return; - } - } - if (_.isString(initialSize) && initialSize.endsWith('px')) size = parseInt(initialSize.slice(0, -2)); - else if (_.isString(initialSize) && initialSize.endsWith('%')) - size = (parentHeight * parseFloat(initialSize.slice(0, -1))) / 100; - else size = parentHeight / 3; - } + // $: if (storageName && $widgetColumnBarHeight > 0) { + // setLocalStorage(storageName, { relativeHeight: size / $widgetColumnBarHeight, visible }); + // } let visible = storageName && getLocalStorage(storageName) && getLocalStorage(storageName).visible != null ? getLocalStorage(storageName).visible : !collapsed; - $: collapsible = $dynamicProps.visibleItemsCount != 1 || !visible; + $: computed = $widgetColumnBarComputed[name] || {}; + $: collapsible = computed.visibleItemsCount != 1 || !visible; + $: size = computed.size ?? 100; + $: splitterVisible = computed.splitterVisible; {#if !skip && positiveCondition} @@ -79,14 +69,18 @@ {#if visible}
- {#if $dynamicProps.splitterVisible} -
(size += e.detail)} /> + {#if splitterVisible} +
widgetResizeItem(name, e.detail)} + /> {/if} {/if} {/if}