@neovici/cosmoz-queue 3.0.0-beta.1 → 3.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,7 @@ export interface TList$<TParams extends object, TItem extends object> {
4
4
  params: TParams;
5
5
  page: number;
6
6
  pageSize: number;
7
+ signal?: AbortSignal;
7
8
  }): PromiseLike<{
8
9
  items: TItem[];
9
10
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"use-more.d.ts","sourceRoot":"","sources":["../../../src/list/more/use-more.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgC,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM;IACnE,CAAC,KAAK,EAAE;QACP,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KACjB,GAAG,WAAW,CAAC;QAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,UAAU,OAAO,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,iBAAiB,EAAE,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACpD;AASD,eAAO,MAAM,OAAO,GAAI,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,0DAKnE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;;;CAsDzB,CAAC"}
1
+ {"version":3,"file":"use-more.d.ts","sourceRoot":"","sources":["../../../src/list/more/use-more.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EAKZ,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM;IACnE,CAAC,KAAK,EAAE;QACP,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;KACrB,GAAG,WAAW,CAAC;QAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,UAAU,OAAO,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,iBAAiB,EAAE,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACpD;AASD,eAAO,MAAM,OAAO,GAAI,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,0DAKnE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;;;CAwEzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useEffect, useMemo, useState } from '@pionjs/pion';
1
+ import { useEffect, useMemo, useRef, useState, } from '@pionjs/pion';
2
2
  export const useMore = ({ params: _params, list$, pageSize = 50, setTotalAvailable, }) => {
3
3
  const [{ page, data$, totalAvailable, params }, setData] = useState({
4
4
  page: 0,
@@ -6,6 +6,7 @@ export const useMore = ({ params: _params, list$, pageSize = 50, setTotalAvailab
6
6
  totalAvailable: Infinity,
7
7
  params: _params,
8
8
  });
9
+ const abortRef = useRef(null);
9
10
  const hasMore = pageSize > 0 &&
10
11
  totalAvailable < Infinity &&
11
12
  totalAvailable >= pageSize &&
@@ -17,15 +18,22 @@ export const useMore = ({ params: _params, list$, pageSize = 50, setTotalAvailab
17
18
  page: 0,
18
19
  })), [_params, list$]);
19
20
  useEffect(() => {
21
+ const controller = new AbortController();
22
+ abortRef.current = controller;
23
+ const { signal } = controller;
20
24
  setData(({ data$, params, page, ...thru }) => ({
21
25
  ...thru,
22
26
  params,
23
27
  page,
24
- data$: Promise.resolve(data$).then((prev) => list$({
28
+ data$: Promise.resolve(data$).then((prev) => Promise.resolve(list$({
25
29
  params,
26
30
  page,
27
31
  pageSize,
28
- }).then((data) => {
32
+ signal,
33
+ }))
34
+ .then((data) => {
35
+ if (signal.aborted)
36
+ return prev;
29
37
  const totalAvailable = data.total;
30
38
  setTotalAvailable(totalAvailable);
31
39
  setData((s) => ({
@@ -33,8 +41,16 @@ export const useMore = ({ params: _params, list$, pageSize = 50, setTotalAvailab
33
41
  totalAvailable,
34
42
  }));
35
43
  return [...prev.slice(0, page * pageSize), ...data.items];
44
+ })
45
+ .catch((error) => {
46
+ if (error.name === 'AbortError')
47
+ return prev;
48
+ return Promise.reject(error);
36
49
  })),
37
50
  }));
51
+ return () => {
52
+ controller.abort();
53
+ };
38
54
  }, [page, params, list$, pageSize]);
39
55
  return { data$, loadMore };
40
56
  };
@@ -15,7 +15,6 @@ export type { Item, Props } from './use-fetch-actions';
15
15
  export { useListSSE } from './use-list-sse';
16
16
  export { default as useDataNav } from './use-data-nav';
17
17
  export { useMobile } from './use-mobile';
18
- export { default as useSplit } from './use-split';
19
18
  export { default as useTabs } from './use-tabs';
20
19
  export { filter, notify, useList, useListState } from './use-list';
21
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEzC,cAAc,UAAU,CAAC;AAEzB,mBAAmB,SAAS,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEzC,cAAc,UAAU,CAAC;AAEzB,mBAAmB,SAAS,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -20,7 +20,6 @@ export { useListSSE } from './use-list-sse';
20
20
  // Navigation & layout hooks
21
21
  export { default as useDataNav } from './use-data-nav';
22
22
  export { useMobile } from './use-mobile';
23
- export { default as useSplit } from './use-split';
24
23
  export { default as useTabs } from './use-tabs';
25
24
  // List hooks
26
25
  export { filter, notify, useList, useListState } from './use-list';
@@ -7,7 +7,18 @@ type ViewProps<I> = Omit<QueueProps<I>, 'nav'> & {
7
7
  nav: TemplateResult;
8
8
  item: I;
9
9
  };
10
- interface Props<I, D> extends Pick<UseQueue<I>, 'id' | 'api' | 'fallback' | 'split'>, Pick<RenderQueue<I, D>, 'details' | 'afterHeading'> {
10
+ /**
11
+ * @deprecated Use `initial-size` and `min-size` attributes on
12
+ * `<cosmoz-resizable-view>` instead (mapped automatically from this prop).
13
+ * `expandToMin` and `snapOffset` have no equivalent and are silently ignored.
14
+ */
15
+ export interface SplitConfig {
16
+ sizes?: [number, number];
17
+ minSize?: [number] | number;
18
+ expandToMin?: boolean;
19
+ snapOffset?: number;
20
+ }
21
+ interface Props<I, D> extends Pick<UseQueue<I>, 'id' | 'api' | 'fallback'>, Pick<RenderQueue<I, D>, 'details' | 'afterHeading'> {
11
22
  list: (thru: Record<string, any>, props: QueueProps<I> & {
12
23
  onRef: (el?: Element) => void;
13
24
  }) => TemplateResult;
@@ -18,6 +29,8 @@ interface Props<I, D> extends Pick<UseQueue<I>, 'id' | 'api' | 'fallback' | 'spl
18
29
  idHashParam?: string;
19
30
  tabHashParam?: string;
20
31
  pagination?: Pagination;
32
+ /** @deprecated Use `initial-size` / `min-size` attributes on `<cosmoz-resizable-view>` instead. */
33
+ split?: SplitConfig;
21
34
  }
22
35
  export declare const queue: <I, D = I>(props: Props<I, D>) => TemplateResult<1>;
23
36
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,KAAK,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAChD,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;CACR,CAAC;AAEF,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,SACC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC,EACtD,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IACpD,IAAI,EAAE,CACL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,KACpD,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IACzE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB;AAMD,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sBA8FjD,CAAC"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,KAAK,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAChD,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;CACR,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC,CACnB,SACC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,EAC5C,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IACpD,IAAI,EAAE,CACL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,KACpD,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IACzE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mGAAmG;IACnG,KAAK,CAAC,EAAE,WAAW,CAAC;CACpB;AAMD,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sBA0GjD,CAAC"}
@@ -10,7 +10,6 @@ export const queue = (props) => {
10
10
  idHashParam,
11
11
  tabHashParam,
12
12
  fallback,
13
- split,
14
13
  });
15
14
  const { index, hideActions, items, setItems, setSelected, totalAvailable, setTotalAvailable, onItemClick, nav, tabnav, } = queueProps;
16
15
  const { listRef, onAsyncSimpleAction } = useAsyncAction(nav);
@@ -18,6 +17,14 @@ export const queue = (props) => {
18
17
  ...queueProps,
19
18
  onAsyncSimpleAction,
20
19
  };
20
+ const splitAttrs = split
21
+ ? {
22
+ initialSize: split.sizes?.[0] != null ? `${split.sizes[0]}%` : '50%',
23
+ minSize: split.minSize != null
24
+ ? `${Array.isArray(split.minSize) ? split.minSize[0] : split.minSize}`
25
+ : undefined,
26
+ }
27
+ : { initialSize: '50%', minSize: '100' };
21
28
  return renderQueue({
22
29
  details,
23
30
  heading,
@@ -28,8 +35,11 @@ export const queue = (props) => {
28
35
  totalAvailable,
29
36
  nav,
30
37
  pagination,
38
+ persistKey: settingsId ? `${settingsId}-split` : undefined,
39
+ splitAttrs,
31
40
  list: list({
32
41
  id: 'list',
42
+ slot: 'previous',
33
43
  '.exposedParts': `itemRow, itemRow-${index}`,
34
44
  '.settingsId': settingsId,
35
45
  '@visible-items-changed': updateWith(setItems),
@@ -1,4 +1,5 @@
1
1
  import '@neovici/cosmoz-button';
2
+ import '@neovici/cosmoz-resizable';
2
3
  import { RenderTabs } from '@neovici/cosmoz-tabs/next/index.js';
3
4
  import { nothing, TemplateResult } from 'lit-html';
4
5
  import type { Pagination } from './types';
@@ -65,11 +66,16 @@ export interface RenderQueue<I, D> extends Pick<RenderView<I, D>, 'renderItem' |
65
66
  totalAvailable?: number;
66
67
  list: TemplateResult;
67
68
  pagination?: Pagination;
69
+ persistKey?: string;
70
+ splitAttrs?: {
71
+ initialSize?: string;
72
+ minSize?: string;
73
+ };
68
74
  tabnav: RenderTabs<Tab>;
69
75
  nav: Omit<RenderSlide<I, D>, 'renderItem' | 'renderLoader' | 'details'> & Pick<RenderView<I, D>, 'details'> & {
70
76
  index: number;
71
77
  };
72
78
  }
73
- export declare const renderQueue: <I, D>({ heading, afterHeading, index, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details, pagination: _pagination, }: RenderQueue<I, D>) => TemplateResult<1>;
79
+ export declare const renderQueue: <I, D>({ heading, afterHeading, index, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details, pagination: _pagination, persistKey, splitAttrs, }: RenderQueue<I, D>) => TemplateResult<1>;
74
80
  export {};
75
81
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/queue/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/queue/render.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import '@neovici/cosmoz-button';
2
+ import '@neovici/cosmoz-resizable';
2
3
  import { slideInLeft, slideInRight } from '@neovici/cosmoz-slider';
3
4
  import { renderTabs } from '@neovici/cosmoz-tabs/next/index.js';
4
5
  import { lazyUntil } from '@neovici/cosmoz-utils/directives/lazy-until';
@@ -41,22 +42,26 @@ export const renderPagination = (pagination) => {
41
42
  const totalPages = pagination.totalPages ??
42
43
  Math.ceil((pagination.totalAvailable ?? 0) / (pagination.pageSize ?? 0));
43
44
  return html ` <div class="tabn-pagination">
44
- <button
45
+ <cosmoz-button
45
46
  title="${t('Previous page')}"
46
47
  class="button-page page-prev"
48
+ size="sm"
49
+ variant="secondary"
47
50
  ?disabled=${!(pageNumber > 1)}
48
51
  @click=${(e) => onPage(e.ctrlKey ? 1 : pageNumber - 1)}
49
52
  >
50
53
  ${arrow}
51
- </button>
52
- <button
54
+ </cosmoz-button>
55
+ <cosmoz-button
53
56
  title="${t('Next page')}"
57
+ variant="secondary"
54
58
  class="button-page page-next"
59
+ size="sm"
55
60
  ?disabled=${!(pageNumber < totalPages)}
56
61
  @click=${(e) => onPage(e.ctrlKey ? totalPages : pageNumber + 1)}
57
62
  >
58
63
  ${arrow}
59
- </button>
64
+ </cosmoz-button>
60
65
  </div>`;
61
66
  };
62
67
  export const renderStats = ({ pagination, index, items, totalAvailable, nav, activeTab, }) => {
@@ -104,7 +109,7 @@ export const renderSlide = ({ id, forward, item, ...thru }) => item
104
109
  animation: forward ? slideInRight : slideInLeft,
105
110
  }
106
111
  : emptySlide();
107
- export const renderQueue = ({ heading, afterHeading, index, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details = nav?.details, pagination: _pagination, }) => {
112
+ export const renderQueue = ({ heading, afterHeading, index, tabnav, items, totalAvailable, nav, list, renderLoader, renderItem, details = nav?.details, pagination: _pagination, persistKey, splitAttrs, }) => {
108
113
  const activeTab = tabnav.active?.name;
109
114
  const pagination = _pagination
110
115
  ? { ..._pagination, totalAvailable }
@@ -128,12 +133,19 @@ export const renderQueue = ({ heading, afterHeading, index, tabnav, items, total
128
133
  ${renderPagination(pagination)}
129
134
  </cosmoz-tabs-next>
130
135
 
131
- <div class="split" data-active=${activeTab}>
136
+ <cosmoz-resizable-view
137
+ data-active=${activeTab}
138
+ direction="horizontal"
139
+ persist=${persistKey}
140
+ initial-size=${splitAttrs?.initialSize ?? nothing}
141
+ min-size=${splitAttrs?.minSize ?? nothing}
142
+ >
132
143
  ${list}
133
144
  <cosmoz-slider
134
145
  id="queue"
146
+ slot="next"
135
147
  .slide=${when(activeTab !== 'overview', () => renderSlide({ ...nav, renderLoader, renderItem, details }), emptySlide)}
136
148
  ></cosmoz-slider>
137
- </div>
149
+ </cosmoz-resizable-view>
138
150
  `;
139
151
  };
@@ -1 +1 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/queue/style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QA4JhB,CAAC;yBAEc,WAAW;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE;AAAtD,wBAkBE"}
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/queue/style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,QA+EhB,CAAC;yBAEc,WAAW;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE;AAAtD,wBAkBE"}
@@ -3,21 +3,16 @@ export const base = css `
3
3
  :host {
4
4
  display: flex;
5
5
  flex-direction: column;
6
- height: calc(100% - var(--cz-spacing) * 9);
6
+ height: 100%;
7
7
  position: relative;
8
8
  font-size: var(--cz-text-sm);
9
9
  line-height: var(--cz-text-sm-line-height);
10
- padding-block: calc(var(--cz-spacing) * 3) 0;
11
- border: 1px solid var(--cz-color-border-primary);
12
- background: var(--cz-color-bg-secondary);
13
- border-radius: var(--cz-radius-xl);
14
- margin-inline: calc(var(--cz-spacing) * 3);
15
10
  }
16
11
 
17
12
  .tabn {
18
13
  box-shadow: none;
19
14
  position: relative;
20
- border-bottom: 1px solid var(--cz-color-border-primary);
15
+ padding-block: calc(var(--cz-spacing) * 2);
21
16
  }
22
17
  .tabn-tab {
23
18
  flex: 0 1 0.000001px;
@@ -42,71 +37,34 @@ export const base = css `
42
37
  font-weight: var(--cz-font-weight-semibold);
43
38
  line-height: var(--cz-text-lg-line-height);
44
39
  color: var(--cz-color-text-secondary);
45
- margin-left: 18px;
46
40
  white-space: nowrap;
41
+ display: flex;
42
+ align-items: center;
47
43
  }
48
44
  .tabn-stats {
49
45
  margin: 0 calc(var(--cz-spacing) * 4);
50
46
  color: var(--cz-color-text-secondary);
51
47
  white-space: nowrap;
52
- }
53
-
54
- .split {
55
- display: flex;
56
- flex: auto;
57
- flex-direction: row;
58
- min-height: 0;
59
- }
60
-
61
- .gutter {
62
- cursor: col-resize;
63
- flex: none;
64
48
  display: flex;
65
- background: var(--cz-color-gray-200);
66
- z-index: 2;
67
- position: relative;
68
- }
69
- .gutter::before {
70
- content: '';
71
- display: block;
72
- flex: none;
73
- background: var(--cz-color-gray-300);
74
- width: 1px;
75
- margin-left: auto;
76
- pointer-events: none;
77
- }
78
- .gutter:hover::before {
79
- background: var(--cz-color-bg-brand-secondary);
80
- box-shadow: -1px 0 0 1px var(--cz-color-bg-brand-secondary);
81
- }
82
- .gutter:hover::after {
83
- content: '';
84
- display: block;
85
- position: absolute;
86
- top: 0;
87
- left: -2px;
88
- right: -2px;
89
- bottom: 0;
49
+ align-items: center;
90
50
  }
91
51
 
92
52
  #list {
93
- min-width: 0;
53
+ flex-basis: var(--cz-queue-list-basis, 50%);
54
+ min-width: var(--cz-queue-list-min-width, 100px);
94
55
  }
95
- #list,
56
+
96
57
  #queue {
97
- flex: auto;
58
+ border-top: 1px solid var(--cz-color-border-primary);
98
59
  }
99
60
 
100
61
  [data-active='split'] .view-core::part(header-bg) {
101
62
  border-top-left-radius: 0;
102
63
  }
103
64
 
104
- [data-active='overview'] .view-core,
65
+ [data-active='overview'] #queue,
105
66
  [data-active='queue'] #list {
106
- display: none;
107
- }
108
- [data-active='overview'] #queue {
109
- flex: none;
67
+ display: none !important;
110
68
  }
111
69
 
112
70
  .button-nav.prev,
@@ -119,41 +77,6 @@ export const base = css `
119
77
  .tabn-pagination {
120
78
  font-size: 0;
121
79
  display: flex;
122
- border: var(--cz-pagination-border-color);
123
- border-radius: var(--cz-pagination-border-radius);
124
- }
125
- .button-page {
126
- width: 30px;
127
- height: 30px;
128
- padding: 0 5px;
129
- cursor: pointer;
130
- outline: none;
131
- border: none;
132
- border-radius: var(--cz-pagination-border);
133
- fill: var(--cz-pagination-color);
134
- position: relative;
135
- background-color: transparent;
136
- }
137
- .button-page[disabled] {
138
- opacity: 0.45;
139
- pointer-events: none;
140
- fill: var(--cz-pagination-inactive-color);
141
- }
142
-
143
- .button-page:active,
144
- .button-page:hover {
145
- fill: var(--cz-pagination-active-color);
146
- }
147
-
148
- .tabn-pagination .button-page + .button-page::before {
149
- content: '';
150
- position: absolute;
151
- width: 1px;
152
- height: 18.5px;
153
- background-color: var(--cz-pagination-border-divider-color);
154
- left: -0.5px;
155
- top: 50%;
156
- transform: translateY(-50%);
157
80
  }
158
81
  `;
159
82
  export default ({ index }) => css `
@@ -1 +1 @@
1
- {"version":3,"file":"use-key-nav.d.ts","sourceRoot":"","sources":["../../src/queue/use-key-nav.ts"],"names":[],"mappings":"AAKA,KAAK,GAAG,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;yBA8B1B,4BAIb;IACF,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,GAAG,CAAC;CACf;AARD,wBA0CE"}
1
+ {"version":3,"file":"use-key-nav.d.ts","sourceRoot":"","sources":["../../src/queue/use-key-nav.ts"],"names":[],"mappings":"AAKA,KAAK,GAAG,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;yBAiC1B,4BAIb;IACF,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,GAAG,CAAC;CACf;AARD,wBA0CE"}
@@ -7,7 +7,11 @@ const keys = (tab, listKeys, queueKeys) => [
7
7
  ...(['queue', 'split'].includes(tab) ? queueKeys : []),
8
8
  ];
9
9
  const overlaps = (host) => {
10
- const root = host.shadowRoot, button = root.querySelector('.button-nav'), bounds = button.getBoundingClientRect();
10
+ const root = host.shadowRoot, button = root?.querySelector('.button-nav');
11
+ if (!root || !button) {
12
+ return false;
13
+ }
14
+ const bounds = button.getBoundingClientRect();
11
15
  return (root
12
16
  .elementFromPoint(bounds.x + bounds.width / 2, bounds.y + bounds.height / 2)
13
17
  ?.closest('.button-nav') !== button);
@@ -1,5 +1,4 @@
1
1
  import { useListState } from './use-list';
2
- import { SplitOpts } from './use-split';
3
2
  import { Options as UseTabsOptions } from './use-tabs';
4
3
  interface Opts<I> extends ReturnType<typeof useListState<I>>, Pick<UseTabsOptions<I>, 'fallback'> {
5
4
  tabHashParam?: string;
@@ -26,9 +25,8 @@ interface Opts<I> extends ReturnType<typeof useListState<I>>, Pick<UseTabsOption
26
25
  */
27
26
  api?: (id: string, item: I) => string;
28
27
  id?: (i: I) => string;
29
- split?: SplitOpts;
30
28
  }
31
- declare const useQueue: <I>({ id, api, tabHashParam, idHashParam, fallback, onActivate, split, ...thru }: Opts<I>) => {
29
+ declare const useQueue: <I>({ id, api, tabHashParam, idHashParam, fallback, onActivate, ...thru }: Opts<I>) => {
32
30
  tabnav: import("@neovici/cosmoz-tabs/next").Result<{
33
31
  readonly name: "overview";
34
32
  readonly title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"use-queue.d.ts","sourceRoot":"","sources":["../../src/queue/use-queue.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAgB,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAyDhE,UAAU,IAAI,CAAC,CAAC,CACf,SACC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,EAClC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACtC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,QAAA,MAAM,QAAQ,GAAI,CAAC,EAAE,8EASlB,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA2CH,KAAK;oBAtBA,MAAM;;;;;;;;;;;;;;;;;;CAoDjB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,IAAI,CAC7B,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;yBAEc,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBArC7B,KAAK;oBAtBA,MAAM;;;;;;;;;;;;;;;;;;;AA2DlB,wBACgD"}
1
+ {"version":3,"file":"use-queue.d.ts","sourceRoot":"","sources":["../../src/queue/use-queue.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAgB,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAyDhE,UAAU,IAAI,CAAC,CAAC,CACf,SACC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,EAClC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACtC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,QAAQ,GAAI,CAAC,EAAE,uEAQlB,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA0CH,KAAK;oBArBA,MAAM;;;;;;;;;;;;;;;;;;CAmDjB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,IAAI,CAC7B,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;yBAEc,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBArC7B,KAAK;oBArBA,MAAM;;;;;;;;;;;;;;;;;;;AA0DlB,wBACgD"}
@@ -6,7 +6,6 @@ import { useMobile } from './use-mobile';
6
6
  import useDataNav from './use-data-nav';
7
7
  import useKeyNav from './use-key-nav';
8
8
  import { useListState } from './use-list';
9
- import useSplit from './use-split';
10
9
  import useTabs from './use-tabs';
11
10
  import useUpdates from './use-updates';
12
11
  import { getItems, normalizeHeaders } from './util';
@@ -29,7 +28,7 @@ const useQNav = ({ id, api, items, ...thru }) => {
29
28
  });
30
29
  return { ...pass, id, details };
31
30
  };
32
- const useQueue = ({ id = _id, api, tabHashParam, idHashParam, fallback, onActivate, split, ...thru }) => {
31
+ const useQueue = ({ id = _id, api, tabHashParam, idHashParam, fallback, onActivate, ...thru }) => {
33
32
  const { items: _items, selected } = thru, mobile = useMobile(), items = useMemo(() => normalizeHeaders(_items), [_items]), queueItems = useMemo(() => getItems(items, selected), [items, selected]), { tabnav, activeTab } = useTabs({
34
33
  items: queueItems,
35
34
  hashParam: tabHashParam,
@@ -50,7 +49,6 @@ const useQueue = ({ id = _id, api, tabHashParam, idHashParam, fallback, onActiva
50
49
  setItem(items[Math.min(idx + 1, items.length - 1)]);
51
50
  }, [item, id, items]);
52
51
  useKeyNav({ activeTab, ...nav });
53
- useSplit({ activeTab, ...split });
54
52
  useUpdates({ ensue, ...nav });
55
53
  return {
56
54
  ...thru,
@@ -1 +1 @@
1
- {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../src/styles/shared-styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAiHvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAa/B,CAAC;AAEF,eAAO,MAAM,YAAY,QAmGxB,CAAC"}
1
+ {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../src/styles/shared-styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAiHvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAa/B,CAAC;AAEF,eAAO,MAAM,YAAY,QAoGxB,CAAC"}
@@ -134,21 +134,22 @@ export const buttonStyles = css `
134
134
  .button:not([slot='bottom-bar-menu']),
135
135
  .file::-webkit-file-upload-button,
136
136
  .file::file-selector-button {
137
- background: var(--cosmoz-button-bg-color, #101010);
138
- color: var(--cosmoz-button-color, #fff);
137
+ background-color: var(--cz-color-bg-brand-solid);
138
+ color: var(--cz-color-text-on-brand);
139
+ box-shadow: var(--cz-shadow-xs-skeumorphic);
139
140
  box-sizing: border-box;
140
141
  cursor: pointer;
141
142
  outline: none;
142
143
  flex: none;
143
144
  border: none;
144
- padding: 0 18px;
145
- border-radius: 6px;
146
- min-height: 40px;
145
+ padding: calc(var(--cz-spacing) * 2.5) calc(var(--cz-spacing) * 4);
146
+ border-radius: var(--cz-radius-md);
147
+ height: 40px;
147
148
  min-width: 78px;
148
149
  font-family: inherit;
149
- font-size: 14px;
150
- font-weight: 500;
151
- line-height: 40px;
150
+ font-size: var(--cz-text-sm);
151
+ font-weight: var(--cz-font-weight-semibold);
152
+ line-height: var(--cz-text-sm-line-height);
152
153
  text-overflow: ellipsis;
153
154
  white-space: nowrap;
154
155
  }
@@ -156,7 +157,7 @@ export const buttonStyles = css `
156
157
  .button:not([slot='bottom-bar-menu']):active,
157
158
  .file::-webkit-file-upload-button:hover,
158
159
  .file::file-selector-button:hover {
159
- background: var(--cosmoz-button-hover-bg-color, #3a3f44);
160
+ background-color: var(--cz-color-bg-brand-solid-hover);
160
161
  }
161
162
  .button[disabled],
162
163
  .button:disabled {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neovici/cosmoz-queue",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-beta.11",
4
4
  "description": "A reusable queue component for master-detail views with list, split, and queue modes",
5
5
  "keywords": [
6
6
  "web-components",
@@ -53,7 +53,6 @@
53
53
  ".": "./dist/index.js",
54
54
  "./use-queue": "./dist/queue/use-queue.js",
55
55
  "./use-tabs": "./dist/queue/use-tabs.js",
56
- "./use-split": "./dist/queue/use-split.js",
57
56
  "./use-data-nav": "./dist/queue/use-data-nav.js",
58
57
  "./use-list": "./dist/queue/use-list.js",
59
58
  "./util/fetch": "./dist/util/fetch/fetch.js",
@@ -66,6 +65,7 @@
66
65
  "@neovici/cosmoz-button": "^1.1.0",
67
66
  "@neovici/cosmoz-form": "^1.0.1 || ^2.0.0 || ^3.2.0-beta.1",
68
67
  "@neovici/cosmoz-omnitable": "^16.0.3 || ^17.0.0 || ^18.6.0",
68
+ "@neovici/cosmoz-resizable": "^2.0.0",
69
69
  "@neovici/cosmoz-router": "^11.2.8",
70
70
  "@neovici/cosmoz-slider": "^5.2.1",
71
71
  "@neovici/cosmoz-tabs": "^10.0.0-beta.1",
@@ -73,8 +73,7 @@
73
73
  "@neovici/cosmoz-utils": "^6.22.0",
74
74
  "@pionjs/pion": "^2.10.0",
75
75
  "i18next": ">=23.0.0 <27.0.0",
76
- "lit-html": "^3.3.1",
77
- "split.js": "^1.6.5"
76
+ "lit-html": "^3.3.1"
78
77
  },
79
78
  "devDependencies": {
80
79
  "@changesets/cli": "^2.31.0",
@@ -89,16 +88,15 @@
89
88
  "@storybook/web-components-vite": "^10.0.0",
90
89
  "@types/node": "^22.10.2",
91
90
  "@types/react": "^19.2.13",
92
- "@types/split.js": "^1.6.0",
93
91
  "@vitest/browser": "^4.0.0",
94
92
  "@vitest/browser-playwright": "^4.0.0",
95
93
  "esbuild": "^0.27.0",
96
94
  "http-server": "^14.1.1",
97
95
  "husky": "^9.0.11",
98
96
  "jsdom": "^26.0.0",
99
- "playwright": "^1.60.0",
100
97
  "storybook": "^10.0.0",
101
98
  "typescript": "^5.4.3",
99
+ "@playwright/test": "1.60.0",
102
100
  "vitest": "^4.0.0"
103
101
  }
104
102
  }
@@ -1,8 +0,0 @@
1
- import Split from 'split.js';
2
- export type SplitOpts = Pick<Split.Options, 'sizes' | 'minSize' | 'expandToMin' | 'snapOffset'>;
3
- interface Opts extends SplitOpts {
4
- activeTab: string;
5
- }
6
- declare const _default: ({ activeTab, ...opts }: Opts) => void;
7
- export default _default;
8
- //# sourceMappingURL=use-split.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-split.d.ts","sourceRoot":"","sources":["../../src/queue/use-split.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,MAAM,MAAM,SAAS,GAAG,IAAI,CAC3B,KAAK,CAAC,OAAO,EACb,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,YAAY,CAClD,CAAC;AAEF,UAAU,IAAK,SAAQ,SAAS;IAC/B,SAAS,EAAE,MAAM,CAAC;CAClB;yBAEe,wBAAwB,IAAI;AAA5C,wBAyBE"}
@@ -1,30 +0,0 @@
1
- import { useRef, useEffect } from '@pionjs/pion';
2
- import { useMeta } from '@neovici/cosmoz-utils/hooks/use-meta';
3
- import { useHost } from '@neovici/cosmoz-utils/hooks/use-host';
4
- import Split from 'split.js';
5
- export default ({ activeTab, ...opts }) => {
6
- const splitRef = useRef(undefined);
7
- const host = useHost();
8
- const meta = useMeta(opts);
9
- useEffect(() => {
10
- if (activeTab !== 'split')
11
- return;
12
- const root = host.shadowRoot;
13
- const list = root.querySelector('#list');
14
- const queue = root.querySelector('#queue');
15
- const listMinWidth = Array.isArray(meta.minSize)
16
- ? meta.minSize[0]
17
- : undefined;
18
- if (listMinWidth != null && list) {
19
- list.style.minWidth = `${listMinWidth}px`;
20
- }
21
- splitRef.current = Split([list, queue], {
22
- gutterSize: 2,
23
- ...meta,
24
- });
25
- return () => {
26
- splitRef.current?.destroy();
27
- list.style.minWidth = '';
28
- };
29
- }, [activeTab]);
30
- };