@neovici/cosmoz-queue 3.0.0-beta.0 → 3.0.0-beta.10
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.
- package/dist/list/more/use-more.d.ts +1 -0
- package/dist/list/more/use-more.d.ts.map +1 -1
- package/dist/list/more/use-more.js +19 -3
- package/dist/queue/index.d.ts +0 -1
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +0 -1
- package/dist/queue/queue.d.ts +14 -1
- package/dist/queue/queue.d.ts.map +1 -1
- package/dist/queue/queue.js +11 -1
- package/dist/queue/render.d.ts +7 -1
- package/dist/queue/render.d.ts.map +1 -1
- package/dist/queue/render.js +19 -7
- package/dist/queue/style.d.ts.map +1 -1
- package/dist/queue/style.js +13 -89
- package/dist/queue/use-key-nav.d.ts.map +1 -1
- package/dist/queue/use-key-nav.js +5 -1
- package/dist/queue/use-queue.d.ts +1 -3
- package/dist/queue/use-queue.d.ts.map +1 -1
- package/dist/queue/use-queue.js +1 -3
- package/dist/styles/shared-styles.d.ts.map +1 -1
- package/dist/styles/shared-styles.js +10 -9
- package/package.json +4 -6
- package/dist/queue/use-split.d.ts +0 -8
- package/dist/queue/use-split.d.ts.map +0 -1
- package/dist/queue/use-split.js +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-more.d.ts","sourceRoot":"","sources":["../../../src/list/more/use-more.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
-
|
|
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
|
};
|
package/dist/queue/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/queue/index.js
CHANGED
|
@@ -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';
|
package/dist/queue/queue.d.ts
CHANGED
|
@@ -7,7 +7,18 @@ type ViewProps<I> = Omit<QueueProps<I>, 'nav'> & {
|
|
|
7
7
|
nav: TemplateResult;
|
|
8
8
|
item: I;
|
|
9
9
|
};
|
|
10
|
-
|
|
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,
|
|
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,sBA2GjD,CAAC"}
|
package/dist/queue/queue.js
CHANGED
|
@@ -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]}%` : undefined,
|
|
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),
|
package/dist/queue/render.d.ts
CHANGED
|
@@ -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":"AAAA,OAAO,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/queue/render.ts"],"names":[],"mappings":"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"}
|
package/dist/queue/render.js
CHANGED
|
@@ -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
|
-
<
|
|
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
|
-
</
|
|
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,
|
|
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"}
|
package/dist/queue/style.js
CHANGED
|
@@ -3,21 +3,16 @@ export const base = css `
|
|
|
3
3
|
:host {
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-direction: column;
|
|
6
|
-
height:
|
|
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
|
-
padding-inline: calc(var(--cz-spacing) * 3);
|
|
12
|
-
border: 1px solid var(--cz-color-border-primary);
|
|
13
|
-
background: var(--cz-color-bg-secondary);
|
|
14
|
-
border-radius: var(--cz-radius-xl);
|
|
15
|
-
margin-inline: calc(var(--cz-spacing) * 3);
|
|
16
10
|
}
|
|
17
11
|
|
|
18
12
|
.tabn {
|
|
19
13
|
box-shadow: none;
|
|
20
14
|
position: relative;
|
|
15
|
+
padding-block: calc(var(--cz-spacing) * 2);
|
|
21
16
|
}
|
|
22
17
|
.tabn-tab {
|
|
23
18
|
flex: 0 1 0.000001px;
|
|
@@ -35,124 +30,53 @@ export const base = css `
|
|
|
35
30
|
box-shadow: none;
|
|
36
31
|
}
|
|
37
32
|
.tabn-tab:hover {
|
|
38
|
-
color:
|
|
33
|
+
color: var(--cz-color-text-secondary-hover);
|
|
39
34
|
}
|
|
40
35
|
.tabn-heading {
|
|
41
36
|
font-size: var(--cz-text-lg);
|
|
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
|
-
|
|
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
|
-
|
|
53
|
+
flex-basis: var(--cz-queue-list-basis, 50%);
|
|
54
|
+
min-width: var(--cz-queue-list-min-width, 100px);
|
|
94
55
|
}
|
|
95
|
-
|
|
56
|
+
|
|
96
57
|
#queue {
|
|
97
|
-
|
|
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']
|
|
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,
|
|
113
71
|
.button-page.prev,
|
|
114
72
|
.page-prev {
|
|
115
73
|
transform: scaleX(-1);
|
|
74
|
+
margin-right: calc(var(--cz-spacing) * 2);
|
|
116
75
|
}
|
|
117
76
|
|
|
118
77
|
.tabn-pagination {
|
|
119
78
|
font-size: 0;
|
|
120
79
|
display: flex;
|
|
121
|
-
border: var(--cz-pagination-border-color);
|
|
122
|
-
border-radius: var(--cz-pagination-border-radius);
|
|
123
|
-
}
|
|
124
|
-
.button-page {
|
|
125
|
-
width: 30px;
|
|
126
|
-
height: 30px;
|
|
127
|
-
padding: 0 5px;
|
|
128
|
-
cursor: pointer;
|
|
129
|
-
outline: none;
|
|
130
|
-
border: none;
|
|
131
|
-
border-radius: var(--cz-pagination-border);
|
|
132
|
-
fill: var(--cz-pagination-color);
|
|
133
|
-
position: relative;
|
|
134
|
-
background-color: transparent;
|
|
135
|
-
}
|
|
136
|
-
.button-page[disabled] {
|
|
137
|
-
opacity: 0.45;
|
|
138
|
-
pointer-events: none;
|
|
139
|
-
fill: var(--cz-pagination-inactive-color);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.button-page:active,
|
|
143
|
-
.button-page:hover {
|
|
144
|
-
fill: var(--cz-pagination-active-color);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
.tabn-pagination .button-page + .button-page::before {
|
|
148
|
-
content: '';
|
|
149
|
-
position: absolute;
|
|
150
|
-
width: 1px;
|
|
151
|
-
height: 18.5px;
|
|
152
|
-
background-color: var(--cz-pagination-border-divider-color);
|
|
153
|
-
left: -0.5px;
|
|
154
|
-
top: 50%;
|
|
155
|
-
transform: translateY(-50%);
|
|
156
80
|
}
|
|
157
81
|
`;
|
|
158
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;
|
|
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
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/queue/use-queue.js
CHANGED
|
@@ -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,
|
|
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,
|
|
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(--
|
|
138
|
-
color: var(--
|
|
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:
|
|
145
|
-
border-radius:
|
|
146
|
-
|
|
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:
|
|
150
|
-
font-weight:
|
|
151
|
-
line-height:
|
|
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(--
|
|
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.
|
|
3
|
+
"version": "3.0.0-beta.10",
|
|
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"}
|
package/dist/queue/use-split.js
DELETED
|
@@ -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
|
-
};
|