@neovici/cosmoz-omnitable 18.8.1 → 18.9.0
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/README.md +1 -1
- package/dist/lib/settings/use-settings-ui.d.ts.map +1 -1
- package/dist/lib/settings/use-settings-ui.js +7 -4
- package/dist/lib/settings/use-settings-ui.js.map +1 -1
- package/dist/lib/use-fast-layout.d.ts +1 -0
- package/dist/lib/use-fast-layout.d.ts.map +1 -1
- package/dist/lib/use-fast-layout.js +11 -7
- package/dist/lib/use-fast-layout.js.map +1 -1
- package/dist/lib/use-header.d.ts +2 -1
- package/dist/lib/use-header.d.ts.map +1 -1
- package/dist/lib/use-header.js +3 -2
- package/dist/lib/use-header.js.map +1 -1
- package/dist/lib/use-omnitable.d.ts.map +1 -1
- package/dist/lib/use-omnitable.js +2 -1
- package/dist/lib/use-omnitable.js.map +1 -1
- package/dist/lib/use-public-interface.d.ts.map +1 -1
- package/dist/lib/use-public-interface.js +7 -12
- package/dist/lib/use-public-interface.js.map +1 -1
- package/dist/lib/use-resizable-columns.d.ts +2 -1
- package/dist/lib/use-resizable-columns.d.ts.map +1 -1
- package/dist/lib/use-resizable-columns.js +30 -27
- package/dist/lib/use-resizable-columns.js.map +1 -1
- package/dist/lib/use-tween-array.d.ts +1 -1
- package/dist/lib/use-tween-array.d.ts.map +1 -1
- package/dist/lib/use-tween-array.js +11 -3
- package/dist/lib/use-tween-array.js.map +1 -1
- package/package.json +4 -16
package/README.md
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/Neovici/cosmoz-omnitable/actions?workflow=Github+CI)
|
|
4
4
|
[](https://codecov.io/gh/Neovici/cosmoz-omnitable)
|
|
5
|
-
[](https://github.com/changesets/changesets)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-settings-ui.d.ts","sourceRoot":"","sources":["../../../src/lib/settings/use-settings-ui.js"],"names":[],"mappings":"AAQe,
|
|
1
|
+
{"version":3,"file":"use-settings-ui.d.ts","sourceRoot":"","sources":["../../../src/lib/settings/use-settings-ui.js"],"names":[],"mappings":"AAQe,0CAuHd"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { useCallback } from '@pionjs/pion';
|
|
2
1
|
import { useMeta } from '@neovici/cosmoz-utils/hooks/use-meta';
|
|
2
|
+
import { useCallback } from '@pionjs/pion';
|
|
3
3
|
const parseIndex = (str) => {
|
|
4
4
|
const idx = parseInt(str, 10);
|
|
5
5
|
return isFinite(idx) ? idx : undefined;
|
|
6
6
|
};
|
|
7
7
|
export default (host) => {
|
|
8
|
-
const { config } = host, { settings, setSettings, collapsed } = config, meta = useMeta({
|
|
8
|
+
const { config } = host, { settings, setSettings, collapsed, requestTween } = config, meta = useMeta({
|
|
9
9
|
collapsed,
|
|
10
10
|
settings: settings.columns,
|
|
11
|
+
requestTween,
|
|
11
12
|
setSettings: useCallback((columns) => setSettings((cfg) => ({ ...cfg, columns })), [setSettings]),
|
|
12
13
|
});
|
|
13
14
|
return {
|
|
@@ -51,15 +52,16 @@ export default (host) => {
|
|
|
51
52
|
ctg.classList.remove('dragover');
|
|
52
53
|
}, []),
|
|
53
54
|
onDrop: useCallback((e) => {
|
|
54
|
-
const from = parseIndex(e.dataTransfer.getData('omnitable/sort-index')), to = parseIndex(e.currentTarget.dataset.index), { settings, setSettings } = meta;
|
|
55
|
+
const from = parseIndex(e.dataTransfer.getData('omnitable/sort-index')), to = parseIndex(e.currentTarget.dataset.index), { settings, setSettings, requestTween } = meta;
|
|
55
56
|
e.currentTarget.classList.remove('dragover');
|
|
56
57
|
e.preventDefault();
|
|
57
58
|
const newSettings = settings.slice();
|
|
58
59
|
newSettings.splice(to + (from >= to ? 0 : -1), 0, newSettings.splice(from, 1)[0]);
|
|
60
|
+
requestTween?.();
|
|
59
61
|
setSettings(newSettings);
|
|
60
62
|
}, [meta]),
|
|
61
63
|
onToggle: useCallback((e) => {
|
|
62
|
-
const { settings, setSettings } = meta, newSettings = settings.map((column) => ({
|
|
64
|
+
const { settings, setSettings, requestTween } = meta, newSettings = settings.map((column) => ({
|
|
63
65
|
...column,
|
|
64
66
|
disabled: column.disabled ||
|
|
65
67
|
meta.collapsed?.some((c) => c.name === column.name),
|
|
@@ -71,6 +73,7 @@ export default (host) => {
|
|
|
71
73
|
? settings.reduce((acc, s) => Math.max(acc, s.priority), 0) + 1
|
|
72
74
|
: settings[idx].priority,
|
|
73
75
|
});
|
|
76
|
+
requestTween?.();
|
|
74
77
|
setSettings(newSettings);
|
|
75
78
|
}, [meta]),
|
|
76
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-settings-ui.js","sourceRoot":"","sources":["../../../src/lib/settings/use-settings-ui.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-settings-ui.js","sourceRoot":"","sources":["../../../src/lib/settings/use-settings-ui.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fast-layout.d.ts","sourceRoot":"","sources":["../../src/lib/use-fast-layout.js"],"names":[],"mappings":"AAsBO
|
|
1
|
+
{"version":3,"file":"use-fast-layout.d.ts","sourceRoot":"","sources":["../../src/lib/use-fast-layout.js"],"names":[],"mappings":"AAsBO;;;;;;;;;;;;EAiEN"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useMeta } from '@neovici/cosmoz-utils/hooks/use-meta';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState } from '@pionjs/pion';
|
|
2
3
|
import { toCss } from './compute-layout';
|
|
3
|
-
import { useResizableColumns } from './use-resizable-columns';
|
|
4
4
|
import { useCanvasWidth } from './use-canvas-width';
|
|
5
|
-
import { useTweenArray } from './use-tween-array';
|
|
6
5
|
import { useLayout } from './use-layout';
|
|
7
6
|
import { useMini } from './use-mini';
|
|
8
|
-
import {
|
|
7
|
+
import { useResizableColumns } from './use-resizable-columns';
|
|
8
|
+
import { useTweenArray } from './use-tween-array';
|
|
9
9
|
const useAdoptedStyleSheet = (host) => {
|
|
10
10
|
const styleSheet = useMemo(() => new CSSStyleSheet(), []);
|
|
11
11
|
useEffect(() => {
|
|
@@ -31,17 +31,21 @@ export const useFastLayout = ({ host, columns, settings, setSettings, resizeSpee
|
|
|
31
31
|
column.disabled
|
|
32
32
|
? acc
|
|
33
33
|
: [...acc, columns.find((c) => c.name === column.name)], []), [columns, settings, layout]);
|
|
34
|
+
// Tween only runs briefly for direct column interactions (show/hide,
|
|
35
|
+
// reorder, drag-resize). Otherwise speed is 1 (snap).
|
|
36
|
+
const [tweenSpeed, setTweenSpeed] = useState(1), requestTween = useCallback(() => setTweenSpeed(resizeSpeedFactor ?? 1.9), [resizeSpeedFactor]), onConverge = useCallback(() => setTweenSpeed(1), []);
|
|
34
37
|
const meta = useMeta({ columns: settings.columns });
|
|
35
|
-
useTweenArray(layout,
|
|
38
|
+
useTweenArray(layout, tweenSpeed, (tweenedlayout) => {
|
|
36
39
|
const layoutCss = toCss(tweenedlayout, meta.columns);
|
|
37
40
|
styleSheet.replace(layoutCss);
|
|
38
|
-
});
|
|
41
|
+
}, onConverge);
|
|
39
42
|
useResizableColumns({
|
|
40
43
|
host,
|
|
41
44
|
canvasWidth,
|
|
42
45
|
layout,
|
|
43
46
|
setSettings: (update) => setSettings(update(settings)),
|
|
47
|
+
requestTween,
|
|
44
48
|
});
|
|
45
|
-
return { isMini, collapsedColumns, miniColumns };
|
|
49
|
+
return { isMini, collapsedColumns, miniColumns, requestTween };
|
|
46
50
|
};
|
|
47
51
|
//# sourceMappingURL=use-fast-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fast-layout.js","sourceRoot":"","sources":["../../src/lib/use-fast-layout.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-fast-layout.js","sourceRoot":"","sources":["../../src/lib/use-fast-layout.js"],"names":[],"mappings":"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"}
|
package/dist/lib/use-header.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function useHeader({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, ...rest }: {
|
|
1
|
+
export function useHeader({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, requestTween, ...rest }: {
|
|
2
2
|
[x: string]: any;
|
|
3
3
|
host: any;
|
|
4
4
|
selectedItems: any;
|
|
@@ -9,6 +9,7 @@ export function useHeader({ host, selectedItems, data, sortAndGroupOptions, coll
|
|
|
9
9
|
filterFunctions: any;
|
|
10
10
|
settingS: any;
|
|
11
11
|
filters: any;
|
|
12
|
+
requestTween: any;
|
|
12
13
|
}): {
|
|
13
14
|
allSelected: any;
|
|
14
15
|
onAllCheckboxChange: (event: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-header.d.ts","sourceRoot":"","sources":["../../src/lib/use-header.js"],"names":[],"mappings":"AAEO
|
|
1
|
+
{"version":3,"file":"use-header.d.ts","sourceRoot":"","sources":["../../src/lib/use-header.js"],"names":[],"mappings":"AAEO;;;;;;;;;;;;;;;;;;;;EAsEN"}
|
package/dist/lib/use-header.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useMemo } from '@pionjs/pion';
|
|
2
|
-
export const useHeader = ({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, ...rest }) => {
|
|
2
|
+
export const useHeader = ({ host, selectedItems, data, sortAndGroupOptions, collapsedColumns, settings, filterFunctions, settingS, filters, requestTween, ...rest }) => {
|
|
3
3
|
const allSelected = data && data.length > 0 && selectedItems.length === data.length, onAllCheckboxChange = (event) => {
|
|
4
4
|
if (event.target.checked) {
|
|
5
5
|
host.shadowRoot.querySelector('#groupedList').selectAll();
|
|
@@ -16,7 +16,8 @@ export const useHeader = ({ host, selectedItems, data, sortAndGroupOptions, coll
|
|
|
16
16
|
collapsed: collapsedColumns,
|
|
17
17
|
badge: hasHiddenFilter,
|
|
18
18
|
filters,
|
|
19
|
-
|
|
19
|
+
requestTween,
|
|
20
|
+
}), [settingS, collapsedColumns, hasHiddenFilter, filters, requestTween]);
|
|
20
21
|
useEffect(() => {
|
|
21
22
|
const el = host.shadowRoot.querySelector('#tableContent'), observer = new ResizeObserver((entries) => requestAnimationFrame(() => {
|
|
22
23
|
host.style.setProperty('--ot-height', entries[0]?.contentRect.height + 'px');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-header.js","sourceRoot":"","sources":["../../src/lib/use-header.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACzB,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,OAAO,EACP,GAAG,IAAI,EACP,EAAE,EAAE;IACJ,MAAM,WAAW,GACf,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAChE,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,CAAC;IACF,CAAC,EACD,EAAE,aAAa,EAAE,GAAG,mBAAmB,EACvC,eAAe,GAAG,OAAO,CACxB,GAAG,EAAE,CACJ;QACC,aAAa;QACb,GAAG,gBAAgB;QACnB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC7C,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAC7D,EACF,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAC7C,EACD,cAAc,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC;QACN,GAAG,QAAQ;QACX,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,eAAe;QACtB,OAAO;
|
|
1
|
+
{"version":3,"file":"use-header.js","sourceRoot":"","sources":["../../src/lib/use-header.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACzB,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,GAAG,IAAI,EACP,EAAE,EAAE;IACJ,MAAM,WAAW,GACf,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAChE,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,CAAC;IACF,CAAC,EACD,EAAE,aAAa,EAAE,GAAG,mBAAmB,EACvC,eAAe,GAAG,OAAO,CACxB,GAAG,EAAE,CACJ;QACC,aAAa;QACb,GAAG,gBAAgB;QACnB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC7C,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAC7D,EACF,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAC7C,EACD,cAAc,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC;QACN,GAAG,QAAQ;QACX,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,eAAe;QACtB,OAAO;QACP,YAAY;KACZ,CAAC,EACF,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CACpE,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,EACxD,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CACzC,qBAAqB,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CACrB,aAAa,EACb,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CACrC,CAAC;QACH,CAAC,CAAC,CACF,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACN,WAAW;QACX,mBAAmB;QACnB,IAAI;QACJ,cAAc;QACd,OAAO;QACP,aAAa;QACb,YAAY,EAAE,mBAAmB,CAAC,YAAY;QAC9C,GAAG,IAAI;KACP,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-omnitable.d.ts","sourceRoot":"","sources":["../../src/lib/use-omnitable.js"],"names":[],"mappings":"AASO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"use-omnitable.d.ts","sourceRoot":"","sources":["../../src/lib/use-omnitable.js"],"names":[],"mappings":"AASO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuFN"}
|
|
@@ -21,7 +21,7 @@ export const useOmnitable = (host) => {
|
|
|
21
21
|
sortAndGroupOptions,
|
|
22
22
|
noLocalSort,
|
|
23
23
|
noLocalFilter,
|
|
24
|
-
}), { isMini, collapsedColumns, miniColumns } = useFastLayout({
|
|
24
|
+
}), { isMini, collapsedColumns, miniColumns, requestTween } = useFastLayout({
|
|
25
25
|
host,
|
|
26
26
|
columns,
|
|
27
27
|
settings,
|
|
@@ -53,6 +53,7 @@ export const useOmnitable = (host) => {
|
|
|
53
53
|
settingS,
|
|
54
54
|
setFilterState,
|
|
55
55
|
hideSelectAll: host.hideSelectAll === true,
|
|
56
|
+
requestTween,
|
|
56
57
|
}),
|
|
57
58
|
list: useList({
|
|
58
59
|
host,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-omnitable.js","sourceRoot":"","sources":["../../src/lib/use-omnitable.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACpC,MAAM,EACJ,SAAS,EACT,UAAU,EACV,IAAI,EACJ,iBAAiB,EACjB,OAAO,EACP,WAAW,GAAG,OAAO,EACrB,aAAa,GAAG,OAAO,EACvB,KAAK,EACL,SAAS,GACT,GAAG,IAAI,EACR,QAAQ,GAAG,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAC5C,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,QAAQ,EACtE,KAAK,GAAG,aAAa,KAAK,SAAS,EACnC,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE;QAChE,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,KAAK;KACL,CAAC;IACF,6BAA6B;IAC7B,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,GACxE,iBAAiB,CAAC;QACjB,IAAI;QACJ,OAAO;QACP,SAAS;QACT,mBAAmB;QACnB,WAAW;QACX,aAAa;KACb,CAAC,EACH,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"use-omnitable.js","sourceRoot":"","sources":["../../src/lib/use-omnitable.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACpC,MAAM,EACJ,SAAS,EACT,UAAU,EACV,IAAI,EACJ,iBAAiB,EACjB,OAAO,EACP,WAAW,GAAG,OAAO,EACrB,aAAa,GAAG,OAAO,EACvB,KAAK,EACL,SAAS,GACT,GAAG,IAAI,EACR,QAAQ,GAAG,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAC5C,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,QAAQ,EACtE,KAAK,GAAG,aAAa,KAAK,SAAS,EACnC,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE;QAChE,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,KAAK;KACL,CAAC;IACF,6BAA6B;IAC7B,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,GACxE,iBAAiB,CAAC;QACjB,IAAI;QACJ,OAAO;QACP,SAAS;QACT,mBAAmB;QACnB,WAAW;QACX,aAAa;KACb,CAAC,EACH,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;QACvE,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,WAAW;QACX,iBAAiB;QACjB,mBAAmB;KACnB,CAAC,EACF,WAAW,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAC5D,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC;QACxD,IAAI;QACJ,WAAW;QACX,0BAA0B,EAAE,cAAc;QAC1C,OAAO;QACP,OAAO;QACP,cAAc;QACd,MAAM;QACN,GAAG,mBAAmB;KACtB,CAAC,CAAC;IAEJ,OAAO;QACN,MAAM,EAAE,SAAS,CAAC;YACjB,IAAI;YACJ,aAAa;YACb,mBAAmB;YACnB,WAAW;YACX,IAAI;YACJ,OAAO;YACP,OAAO;YACP,gBAAgB;YAChB,QAAQ;YACR,eAAe;YACf,QAAQ;YACR,cAAc;YACd,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI;YAC1C,YAAY;SACZ,CAAC;QACF,IAAI,EAAE,OAAO,CAAC;YACb,IAAI;YACJ,KAAK;YACL,WAAW;YACX,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,mBAAmB;YACnB,SAAS;SACT,CAAC;QACF,MAAM,EAAE,SAAS,CAAC;YACjB,IAAI;YACJ,aAAa;YACb,OAAO;SACP,CAAC;KACF,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-public-interface.d.ts","sourceRoot":"","sources":["../../src/lib/use-public-interface.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-public-interface.d.ts","sourceRoot":"","sources":["../../src/lib/use-public-interface.js"],"names":[],"mappings":"AAoEO;;;;;;;;EAyCN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useImperativeApi } from '@neovici/cosmoz-utils/hooks/use-imperative-api';
|
|
2
|
+
import { useNotifyProperty } from '@neovici/cosmoz-utils/hooks/use-notify-property';
|
|
2
3
|
import { useEffect, useMemo, useProperty } from '@pionjs/pion';
|
|
3
4
|
const mkNapi = (host) => {
|
|
4
5
|
const /**
|
|
@@ -58,12 +59,6 @@ const mkNapi = (host) => {
|
|
|
58
59
|
export const usePublicInterface = ({ host, visibleData, filters, ...api }) => {
|
|
59
60
|
const { setFilterState } = api, napi = useMemo(() => mkNapi(host), []);
|
|
60
61
|
const [selectedItems, setSelectedItems] = useProperty('selectedItems', []);
|
|
61
|
-
const [, setVisibleData] = useProperty('visibleData', []);
|
|
62
|
-
const [, setSortedFiltered] = useProperty('sortedFilteredGroupedItems', []);
|
|
63
|
-
const [, setSortOn] = useProperty('sortOn');
|
|
64
|
-
const [, setDescending] = useProperty('descending');
|
|
65
|
-
const [, setIsMini] = useProperty('isMini');
|
|
66
|
-
const [, setFilters] = useProperty('filters');
|
|
67
62
|
useImperativeApi(api, Object.values(api));
|
|
68
63
|
useImperativeApi(napi, Object.values(napi));
|
|
69
64
|
useEffect(() => {
|
|
@@ -74,15 +69,15 @@ export const usePublicInterface = ({ host, visibleData, filters, ...api }) => {
|
|
|
74
69
|
host.addEventListener('legacy-filter-changed', handler);
|
|
75
70
|
return () => host.removeEventListener('legacy-filter-changed', handler);
|
|
76
71
|
}, []);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
useNotifyProperty('visibleData', visibleData);
|
|
73
|
+
useNotifyProperty('sortedFilteredGroupedItems', api.sortedFilteredGroupedItems);
|
|
74
|
+
useNotifyProperty('sortOn', api.sortOn);
|
|
75
|
+
useNotifyProperty('descending', api.descending);
|
|
76
|
+
useNotifyProperty('isMini', api.isMini);
|
|
82
77
|
const filterValues = useMemo(() => Object.fromEntries(Object.entries(filters)
|
|
83
78
|
.filter(([, { filter }]) => filter !== undefined)
|
|
84
79
|
.map(([key, { filter }]) => [key, filter])), [filters]);
|
|
85
|
-
|
|
80
|
+
useNotifyProperty('filters', filterValues, Object.values(filterValues));
|
|
86
81
|
return { selectedItems, setSelectedItems };
|
|
87
82
|
};
|
|
88
83
|
//# sourceMappingURL=use-public-interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-public-interface.js","sourceRoot":"","sources":["../../src/lib/use-public-interface.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-public-interface.js","sourceRoot":"","sources":["../../src/lib/use-public-interface.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE;IACvB,MAAM;;;;WAIF,CACH,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACF,CAAC,EACD,kBAAkB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEH,OAAO;QACN,UAAU;QACV,WAAW,CAAC,KAAK;YAChB,MAAM,YAAY,GAAG,EAAE,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACrB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YACD,OAAO,YAAY,CAAC;QACrB,CAAC;QAED,kBAAkB;QAClB,WAAW,CAAC,OAAO,EAAE,OAAO;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;QAED,UAAU,CAAC,IAAI;YACd,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,SAAS;YACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3D,CAAC;QACD,WAAW;YACV,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,CAAC;QACD,YAAY,CAAC,IAAI;YAChB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,cAAc,CAAC,IAAI;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;IAC5E,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,EAC7B,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAExC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAE3E,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CACtB,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,KAAK;YACR,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK;SAClB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9C,iBAAiB,CAChB,4BAA4B,EAC5B,GAAG,CAAC,0BAA0B,CAC9B,CAAC;IACF,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,OAAO,CAC3B,GAAG,EAAE,CACJ,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAC3C,EACF,CAAC,OAAO,CAAC,CACT,CAAC;IAEF,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAExE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAC5C,CAAC,CAAC"}
|
|
@@ -4,6 +4,7 @@ export type UseResizableColumnsParams = {
|
|
|
4
4
|
canvasWidth: number;
|
|
5
5
|
layout: (number | undefined)[];
|
|
6
6
|
setSettings: (update: (settings: NormalizedSettings) => NormalizedSettings) => void;
|
|
7
|
+
requestTween: () => void;
|
|
7
8
|
};
|
|
8
|
-
export declare const useResizableColumns: ({ host, canvasWidth, layout, setSettings, }: UseResizableColumnsParams) => void;
|
|
9
|
+
export declare const useResizableColumns: ({ host, canvasWidth, layout, setSettings, requestTween, }: UseResizableColumnsParams) => void;
|
|
9
10
|
//# sourceMappingURL=use-resizable-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resizable-columns.d.ts","sourceRoot":"","sources":["../../src/lib/use-resizable-columns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,WAAW,EAAE,CACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,kBAAkB,KACxD,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"use-resizable-columns.d.ts","sourceRoot":"","sources":["../../src/lib/use-resizable-columns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,WAAW,EAAE,CACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,kBAAkB,KACxD,IAAI,CAAC;IACV,YAAY,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,2DAMjC,yBAAyB,SAgE3B,CAAC"}
|
|
@@ -1,33 +1,36 @@
|
|
|
1
1
|
import { useEffect, useRef } from '@pionjs/pion';
|
|
2
|
-
export const useResizableColumns = ({ host, canvasWidth, layout, setSettings, }) => {
|
|
2
|
+
export const useResizableColumns = ({ host, canvasWidth, layout, setSettings, requestTween, }) => {
|
|
3
3
|
const onColumnResizeRef = useRef();
|
|
4
|
-
onColumnResizeRef.current = (ev) =>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
onColumnResizeRef.current = (ev) => {
|
|
5
|
+
requestTween();
|
|
6
|
+
setSettings((settings) => {
|
|
7
|
+
const config = settings.columns, { detail: { newWidth, column }, } = ev, columnIndex = config.findIndex((c) => c.name === column.name), newConfig = [], maxPriority = config.reduce((p, c) => Math.max(p, c.priority), -Infinity);
|
|
8
|
+
for (let i = 0; i < layout.length; i++) {
|
|
9
|
+
newConfig[i] = { ...config[i] };
|
|
10
|
+
// for visible columns to the left of the resized column
|
|
11
|
+
if (i < columnIndex && layout[i]) {
|
|
12
|
+
newConfig[i].width = layout[i];
|
|
13
|
+
// make them fixed width
|
|
14
|
+
newConfig[i].flex = 0;
|
|
15
|
+
// keep them visible
|
|
16
|
+
newConfig[i].priority = maxPriority;
|
|
17
|
+
}
|
|
18
|
+
// update the width of the resized column
|
|
19
|
+
if (i === columnIndex) {
|
|
20
|
+
const maxNewSize = layout.reduce((acc, cur, i) => {
|
|
21
|
+
if (i < columnIndex) {
|
|
22
|
+
return cur ? acc - cur : acc;
|
|
23
|
+
}
|
|
24
|
+
return acc;
|
|
25
|
+
}, canvasWidth);
|
|
26
|
+
newConfig[i].width = Math.min(maxNewSize, Math.max(newWidth, config[i].minWidth));
|
|
27
|
+
newConfig[i].flex = 0;
|
|
28
|
+
newConfig[i].priority = maxPriority;
|
|
29
|
+
}
|
|
15
30
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (i < columnIndex) {
|
|
20
|
-
return cur ? acc - cur : acc;
|
|
21
|
-
}
|
|
22
|
-
return acc;
|
|
23
|
-
}, canvasWidth);
|
|
24
|
-
newConfig[i].width = Math.min(maxNewSize, Math.max(newWidth, config[i].minWidth));
|
|
25
|
-
newConfig[i].flex = 0;
|
|
26
|
-
newConfig[i].priority = maxPriority;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return { ...settings, columns: newConfig };
|
|
30
|
-
});
|
|
31
|
+
return { ...settings, columns: newConfig };
|
|
32
|
+
});
|
|
33
|
+
};
|
|
31
34
|
useEffect(() => {
|
|
32
35
|
const handler = (ev) => onColumnResizeRef.current?.(ev);
|
|
33
36
|
host.addEventListener('column-resize', handler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resizable-columns.js","sourceRoot":"","sources":["../../src/lib/use-resizable-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"use-resizable-columns.js","sourceRoot":"","sources":["../../src/lib/use-resizable-columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const isCloseEnough: (a?: number, b?: number) => boolean;
|
|
2
|
-
export declare const useTweenArray: (target: (number | undefined)[], speedFactor?: number, callback?: (tween: (number | undefined)[]) => void) => void;
|
|
2
|
+
export declare const useTweenArray: (target: (number | undefined)[], speedFactor?: number, callback?: (tween: (number | undefined)[]) => void, onConverge?: () => void) => void;
|
|
3
3
|
//# sourceMappingURL=use-tween-array.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tween-array.d.ts","sourceRoot":"","sources":["../../src/lib/use-tween-array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-tween-array.d.ts","sourceRoot":"","sources":["../../src/lib/use-tween-array.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,aAAa,GAAI,UAAK,EAAE,UAAK,YAA0B,CAAC;AAErE,eAAO,MAAM,aAAa,GACzB,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAC9B,oBAAiB,EACjB,WAAU,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,IAAW,EACxD,aAAa,MAAM,IAAI,KACrB,IAoCF,CAAC"}
|
|
@@ -31,24 +31,32 @@ const useAnimationLoop = (animate, trigger) => {
|
|
|
31
31
|
useEffect(() => () => animationLoop.stop(), []);
|
|
32
32
|
};
|
|
33
33
|
export const isCloseEnough = (a = 0, b = 0) => Math.abs(a - b) < 0.1;
|
|
34
|
-
export const useTweenArray = (target, speedFactor = 1.9, callback = noop) => {
|
|
35
|
-
const state = useMeta({ target });
|
|
34
|
+
export const useTweenArray = (target, speedFactor = 1.9, callback = noop, onConverge) => {
|
|
35
|
+
const state = useMeta({ target, speedFactor, onConverge });
|
|
36
36
|
const animate = useCallback(() => {
|
|
37
37
|
// On initial load, skip animation and apply target values immediately
|
|
38
38
|
if (!state.tween) {
|
|
39
39
|
state.tween = state.target;
|
|
40
40
|
callback(state.tween);
|
|
41
|
+
state.onConverge?.();
|
|
41
42
|
return true;
|
|
42
43
|
}
|
|
43
44
|
if (state.target.every((t, idx) => state.tween[idx] === t)) {
|
|
44
45
|
callback(state.tween);
|
|
46
|
+
state.onConverge?.();
|
|
45
47
|
return true;
|
|
46
48
|
}
|
|
49
|
+
// speedFactor === 1 snaps to target in a single frame
|
|
47
50
|
state.tween = state.target.map((t, idx) => isCloseEnough(state.tween[idx], t)
|
|
48
51
|
? t
|
|
49
52
|
: (state.tween[idx] ?? 0) +
|
|
50
|
-
((t ?? 0) - (state.tween[idx] ?? 0)) / speedFactor || 0);
|
|
53
|
+
((t ?? 0) - (state.tween[idx] ?? 0)) / state.speedFactor || 0);
|
|
51
54
|
callback(state.tween);
|
|
55
|
+
// Detect convergence in the same frame to avoid an extra redundant pass
|
|
56
|
+
if (state.tween.every((t, idx) => t === state.target[idx])) {
|
|
57
|
+
state.onConverge?.();
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
52
60
|
}, []);
|
|
53
61
|
useAnimationLoop(animate, [target]);
|
|
54
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tween-array.js","sourceRoot":"","sources":["../../src/lib/use-tween-array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"use-tween-array.js","sourceRoot":"","sources":["../../src/lib/use-tween-array.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neovici/cosmoz-omnitable",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.9.0",
|
|
4
4
|
"description": "[](https://travis-ci.org/Neovici/cosmoz-omnitable)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components"
|
|
@@ -72,18 +72,8 @@
|
|
|
72
72
|
"storybook:build": "storybook build",
|
|
73
73
|
"storybook:deploy": "storybook-to-ghpages",
|
|
74
74
|
"storybook:preview": "npm run storybook:build && web-dev-server --root-dir ./storybook-static/ --open",
|
|
75
|
-
"prepare": "husky"
|
|
76
|
-
|
|
77
|
-
"release": {
|
|
78
|
-
"plugins": [
|
|
79
|
-
"@semantic-release/commit-analyzer",
|
|
80
|
-
"@semantic-release/release-notes-generator",
|
|
81
|
-
"@semantic-release/changelog",
|
|
82
|
-
"@semantic-release/github",
|
|
83
|
-
"@semantic-release/npm",
|
|
84
|
-
"@semantic-release/git"
|
|
85
|
-
],
|
|
86
|
-
"branch": "master"
|
|
75
|
+
"prepare": "husky",
|
|
76
|
+
"changeset": "changeset"
|
|
87
77
|
},
|
|
88
78
|
"publishConfig": {
|
|
89
79
|
"access": "public"
|
|
@@ -136,8 +126,7 @@
|
|
|
136
126
|
"@polymer/paper-item": "^3.0.0",
|
|
137
127
|
"@polymer/paper-listbox": "^3.0.0",
|
|
138
128
|
"@polymer/paper-toggle-button": "^3.0.0",
|
|
139
|
-
"@
|
|
140
|
-
"@semantic-release/git": "^10.0.0",
|
|
129
|
+
"@changesets/cli": "^2.28.1",
|
|
141
130
|
"@storybook/addon-docs": "^10.0.4",
|
|
142
131
|
"@storybook/web-components-vite": "^10.0.4",
|
|
143
132
|
"@types/file-saver": "^2.0.0",
|
|
@@ -145,7 +134,6 @@
|
|
|
145
134
|
"@web/dev-server-esbuild": "^1.0.4",
|
|
146
135
|
"husky": "^9.0.0",
|
|
147
136
|
"lint-staged": "^17.0.5",
|
|
148
|
-
"semantic-release": "^25.0.2",
|
|
149
137
|
"sinon": "^22.0.0",
|
|
150
138
|
"storybook": "^10.0.4",
|
|
151
139
|
"typescript": "^6.0.2"
|