@neovici/cosmoz-omnitable 14.17.0 → 14.18.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/dist/cosmoz-omnitable-column-amount.js +29 -27
- package/dist/cosmoz-omnitable-column-autocomplete.d.ts +1 -1
- package/dist/cosmoz-omnitable-column-autocomplete.d.ts.map +1 -1
- package/dist/cosmoz-omnitable-column-autocomplete.js +28 -24
- package/dist/cosmoz-omnitable-column-boolean.d.ts +4 -1
- package/dist/cosmoz-omnitable-column-boolean.d.ts.map +1 -1
- package/dist/cosmoz-omnitable-column-boolean.js +25 -17
- package/dist/cosmoz-omnitable-column-date.js +28 -26
- package/dist/cosmoz-omnitable-column-datetime.js +28 -26
- package/dist/cosmoz-omnitable-column-list-data.js +8 -6
- package/dist/cosmoz-omnitable-column-list-horizontal.js +17 -15
- package/dist/cosmoz-omnitable-column-list-mixin.d.ts +6 -6
- package/dist/cosmoz-omnitable-column-list-mixin.d.ts.map +1 -1
- package/dist/cosmoz-omnitable-column-list-mixin.js +28 -15
- package/dist/cosmoz-omnitable-column-list.js +21 -19
- package/dist/cosmoz-omnitable-column-mixin.js +12 -8
- package/dist/cosmoz-omnitable-column-number.js +29 -27
- package/dist/cosmoz-omnitable-column-time.js +26 -24
- package/dist/cosmoz-omnitable-column.js +13 -11
- package/dist/cosmoz-omnitable-columns.js +11 -9
- package/dist/cosmoz-omnitable-group-row.js +6 -4
- package/dist/cosmoz-omnitable-header-row.js +17 -15
- package/dist/cosmoz-omnitable-item-expand-line.js +7 -5
- package/dist/cosmoz-omnitable-item-expand.js +8 -6
- package/dist/cosmoz-omnitable-item-row.js +7 -5
- package/dist/cosmoz-omnitable-skeleton.js +8 -6
- package/dist/cosmoz-omnitable-styles.js +7 -4
- package/dist/cosmoz-omnitable.d.ts +1 -1
- package/dist/cosmoz-omnitable.d.ts.map +1 -1
- package/dist/cosmoz-omnitable.js +37 -31
- package/dist/grouped-list/cosmoz-grouped-list-row.js +4 -2
- package/dist/grouped-list/cosmoz-grouped-list.js +6 -4
- package/dist/grouped-list/index.js +3 -1
- package/dist/grouped-list/use-collapsible-items.d.ts +4 -4
- package/dist/grouped-list/use-collapsible-items.js +12 -8
- package/dist/grouped-list/use-cosmoz-grouped-list.d.ts +1 -1
- package/dist/grouped-list/use-cosmoz-grouped-list.js +23 -19
- package/dist/grouped-list/use-selected-items.d.ts +10 -10
- package/dist/grouped-list/use-selected-items.js +19 -15
- package/dist/grouped-list/use-weak-state.d.ts +3 -3
- package/dist/grouped-list/use-weak-state.js +10 -6
- package/dist/grouped-list/utils.js +11 -1
- package/dist/lib/compute-layout.js +10 -6
- package/dist/lib/cosmoz-omnitable-amount-range-input.js +16 -14
- package/dist/lib/cosmoz-omnitable-date-input-mixin.js +9 -5
- package/dist/lib/cosmoz-omnitable-date-range-input.js +14 -12
- package/dist/lib/cosmoz-omnitable-datetime-range-input.js +15 -13
- package/dist/lib/cosmoz-omnitable-number-range-input.js +14 -12
- package/dist/lib/cosmoz-omnitable-range-input-mixin.js +12 -8
- package/dist/lib/cosmoz-omnitable-resize-nub.js +7 -5
- package/dist/lib/cosmoz-omnitable-time-range-input.js +14 -12
- package/dist/lib/generic-sorter.js +5 -1
- package/dist/lib/icons.d.ts +4 -4
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/icons.js +8 -5
- package/dist/lib/layout.js +5 -2
- package/dist/lib/polymer-haunted-render-mixin.js +10 -6
- package/dist/lib/render-footer.d.ts +1 -1
- package/dist/lib/render-footer.d.ts.map +1 -1
- package/dist/lib/render-footer.js +16 -12
- package/dist/lib/render-header.d.ts +1 -1
- package/dist/lib/render-header.d.ts.map +1 -1
- package/dist/lib/render-header.js +9 -5
- package/dist/lib/render-list.d.ts +1 -1
- package/dist/lib/render-list.d.ts.map +1 -1
- package/dist/lib/render-list.js +18 -14
- package/dist/lib/save-as-csv-action.js +7 -3
- package/dist/lib/save-as-xlsx-action.js +9 -5
- package/dist/lib/settings/cosmoz-omnitable-settings.js +71 -33
- package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts +3 -3
- package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts.map +1 -1
- package/dist/lib/settings/cosmoz-omnitable-sort-group.js +19 -12
- package/dist/lib/settings/drivers/context.d.ts +2 -10
- package/dist/lib/settings/drivers/context.d.ts.map +1 -1
- package/dist/lib/settings/drivers/context.js +13 -6
- package/dist/lib/settings/drivers/index.js +25 -3
- package/dist/lib/settings/drivers/local.js +3 -1
- package/dist/lib/settings/drivers/remote.js +3 -1
- package/dist/lib/settings/index.js +9 -2
- package/dist/lib/settings/normalize.js +15 -10
- package/dist/lib/settings/style.css.js +8 -5
- package/dist/lib/settings/use-saved-settings.d.ts +2 -2
- package/dist/lib/settings/use-saved-settings.js +11 -9
- package/dist/lib/settings/use-settings-ui.js +14 -12
- package/dist/lib/settings/use-settings.d.ts +6 -12
- package/dist/lib/settings/use-settings.d.ts.map +1 -1
- package/dist/lib/settings/use-settings.js +46 -8
- package/dist/lib/types.d.ts +20 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/use-canvas-width.js +9 -5
- package/dist/lib/use-dom-columns.d.ts +1 -1
- package/dist/lib/use-dom-columns.d.ts.map +1 -1
- package/dist/lib/use-dom-columns.js +11 -7
- package/dist/lib/use-fast-layout.d.ts +1 -1
- package/dist/lib/use-fast-layout.js +22 -18
- package/dist/lib/use-footer.js +5 -1
- package/dist/lib/use-hash-state.js +15 -11
- package/dist/lib/use-header.js +9 -5
- package/dist/lib/use-layout.js +8 -4
- package/dist/lib/use-list.d.ts +2 -10
- package/dist/lib/use-list.d.ts.map +1 -1
- package/dist/lib/use-list.js +25 -21
- package/dist/lib/use-mini.d.ts +1 -1
- package/dist/lib/use-mini.js +9 -5
- package/dist/lib/use-omnitable.d.ts +2 -10
- package/dist/lib/use-omnitable.d.ts.map +1 -1
- package/dist/lib/use-omnitable.js +22 -18
- package/dist/lib/use-processed-items.d.ts +3 -5
- package/dist/lib/use-processed-items.d.ts.map +1 -1
- package/dist/lib/use-processed-items.js +27 -23
- package/dist/lib/use-public-interface.js +20 -16
- package/dist/lib/use-resizable-columns.js +8 -4
- package/dist/lib/use-sort-and-group-options.d.ts +2 -25
- package/dist/lib/use-sort-and-group-options.d.ts.map +1 -1
- package/dist/lib/use-sort-and-group-options.js +16 -12
- package/dist/lib/use-track-size.d.ts +1 -1
- package/dist/lib/use-track-size.d.ts.map +1 -1
- package/dist/lib/use-track-size.js +6 -2
- 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 +14 -10
- package/dist/lib/utils-amount.d.ts +1 -1
- package/dist/lib/utils-amount.d.ts.map +1 -1
- package/dist/lib/utils-amount.js +25 -29
- package/dist/lib/utils-data.js +12 -8
- package/dist/lib/utils-date.d.ts +4 -4
- package/dist/lib/utils-date.d.ts.map +1 -1
- package/dist/lib/utils-date.js +58 -35
- package/dist/lib/utils-datetime.d.ts +2 -2
- package/dist/lib/utils-datetime.d.ts.map +1 -1
- package/dist/lib/utils-datetime.js +20 -16
- package/dist/lib/utils-number.d.ts +11 -18
- package/dist/lib/utils-number.d.ts.map +1 -1
- package/dist/lib/utils-number.js +44 -36
- package/dist/lib/utils-time.d.ts +2 -2
- package/dist/lib/utils-time.d.ts.map +1 -1
- package/dist/lib/utils-time.js +37 -24
- package/dist/lib/utils.js +6 -2
- package/dist/ui-helpers/cosmoz-clear-button.js +7 -5
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pion_1 = require("@pionjs/pion");
|
|
4
|
+
const repeat_js_1 = require("lit-html/directives/repeat.js");
|
|
5
|
+
require("./lib/cosmoz-omnitable-resize-nub");
|
|
6
|
+
const cosmoz_omnitable_sort_group_1 = require("./lib/settings/cosmoz-omnitable-sort-group");
|
|
7
|
+
const when_js_1 = require("lit-html/directives/when.js");
|
|
8
|
+
const use_sort_and_group_options_1 = require("./lib/use-sort-and-group-options");
|
|
9
|
+
const renderHeaderRow = ({ data, columns, groupOnColumn, filters, setFilterState, sortAndGroup: { sortOn: on, setSortOn: setOn, descending, setDescending, } = {}, }) => (0, repeat_js_1.repeat)(columns, (column) => column.name, (column) => [
|
|
10
|
+
(0, pion_1.html) `<div
|
|
9
11
|
class="cell ${column.headerCellClass} header-cell"
|
|
10
12
|
part="cell header-cell cell-${column.name} header-cell-${column.name}"
|
|
11
13
|
?hidden="${column === groupOnColumn}"
|
|
@@ -13,22 +15,22 @@ const renderHeaderRow = ({ data, columns, groupOnColumn, filters, setFilterState
|
|
|
13
15
|
name="${column.name}"
|
|
14
16
|
>
|
|
15
17
|
${column.renderHeader(column, filters[column.name] ?? {}, (state) => setFilterState(column.name, state), column.source(column, data))}
|
|
16
|
-
${render({ on, setOn, descending, setDescending, column })}
|
|
18
|
+
${(0, cosmoz_omnitable_sort_group_1.render)({ on, setOn, descending, setDescending, column })}
|
|
17
19
|
</div>`,
|
|
18
|
-
html `<cosmoz-omnitable-resize-nub
|
|
20
|
+
(0, pion_1.html) `<cosmoz-omnitable-resize-nub
|
|
19
21
|
.column="${column}"
|
|
20
22
|
name="${column.name}"
|
|
21
23
|
></cosmoz-omnitable-resize-nub>`,
|
|
22
24
|
]);
|
|
23
25
|
const HeaderRow = ({ columns, settingsConfig, hideSelectAll, ...thru }) => {
|
|
24
|
-
const sortAndGroup = useContext(SortAndGroupContext);
|
|
25
|
-
return html `
|
|
26
|
-
${when(columns, (columns) => renderHeaderRow({ columns, sortAndGroup, ...thru }))}
|
|
27
|
-
${when(!hideSelectAll, () => html ` <cosmoz-omnitable-settings
|
|
26
|
+
const sortAndGroup = (0, pion_1.useContext)(use_sort_and_group_options_1.SortAndGroupContext);
|
|
27
|
+
return (0, pion_1.html) `
|
|
28
|
+
${(0, when_js_1.when)(columns, (columns) => renderHeaderRow({ columns, sortAndGroup, ...thru }))}
|
|
29
|
+
${(0, when_js_1.when)(!hideSelectAll, () => (0, pion_1.html) ` <cosmoz-omnitable-settings
|
|
28
30
|
.config=${settingsConfig}
|
|
29
31
|
part="settings"
|
|
30
32
|
></cosmoz-omnitable-settings>`)}
|
|
31
33
|
`;
|
|
32
34
|
};
|
|
33
|
-
customElements.define('cosmoz-omnitable-header-row', component(HeaderRow, { useShadowDOM: false }));
|
|
35
|
+
customElements.define('cosmoz-omnitable-header-row', (0, pion_1.component)(HeaderRow, { useShadowDOM: false }));
|
|
34
36
|
//# sourceMappingURL=cosmoz-omnitable-header-row.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pion_1 = require("@pionjs/pion");
|
|
4
|
+
const cosmoz_utils_1 = require("@neovici/cosmoz-utils");
|
|
5
|
+
const style = (0, cosmoz_utils_1.css) `
|
|
4
6
|
:host {
|
|
5
7
|
display: flex;
|
|
6
8
|
align-items: center;
|
|
@@ -22,7 +24,7 @@ const style = css `
|
|
|
22
24
|
white-space: nowrap;
|
|
23
25
|
}
|
|
24
26
|
`;
|
|
25
|
-
const ItemExpandLine = ({ column }) => html `
|
|
27
|
+
const ItemExpandLine = ({ column }) => (0, pion_1.html) `
|
|
26
28
|
<div class="label" title="${column.title}" part="item-expand-label">
|
|
27
29
|
${column.title}
|
|
28
30
|
</div>
|
|
@@ -30,5 +32,5 @@ const ItemExpandLine = ({ column }) => html `
|
|
|
30
32
|
<slot></slot>
|
|
31
33
|
</div>
|
|
32
34
|
`;
|
|
33
|
-
customElements.define('cosmoz-omnitable-item-expand-line', component(ItemExpandLine, { styleSheets: [sheet(style)] }));
|
|
35
|
+
customElements.define('cosmoz-omnitable-item-expand-line', (0, pion_1.component)(ItemExpandLine, { styleSheets: [(0, cosmoz_utils_1.sheet)(style)] }));
|
|
34
36
|
//# sourceMappingURL=cosmoz-omnitable-item-expand-line.js.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pion_1 = require("@pionjs/pion");
|
|
4
|
+
const lit_html_1 = require("lit-html");
|
|
5
|
+
const map_js_1 = require("lit-html/directives/map.js");
|
|
6
|
+
require("./cosmoz-omnitable-item-expand-line");
|
|
5
7
|
const ItemExpand = ({ columns, item, selected, expanded, groupOnColumn }) => {
|
|
6
|
-
return map(columns, (column) => html `<cosmoz-omnitable-item-expand-line
|
|
8
|
+
return (0, map_js_1.map)(columns, (column) => (0, lit_html_1.html) `<cosmoz-omnitable-item-expand-line
|
|
7
9
|
.column=${column}
|
|
8
10
|
?hidden=${column === groupOnColumn}
|
|
9
11
|
exportparts="item-expand-label, item-expand-value"
|
|
@@ -14,7 +16,7 @@ const ItemExpand = ({ columns, item, selected, expanded, groupOnColumn }) => {
|
|
|
14
16
|
})}</cosmoz-omnitable-item-expand-line
|
|
15
17
|
>`);
|
|
16
18
|
};
|
|
17
|
-
customElements.define('cosmoz-omnitable-item-expand', component(ItemExpand, {
|
|
19
|
+
customElements.define('cosmoz-omnitable-item-expand', (0, pion_1.component)(ItemExpand, {
|
|
18
20
|
useShadowDOM: false,
|
|
19
21
|
}));
|
|
20
22
|
//# sourceMappingURL=cosmoz-omnitable-item-expand.js.map
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pion_1 = require("@pionjs/pion");
|
|
4
|
+
const repeat_js_1 = require("lit-html/directives/repeat.js");
|
|
3
5
|
const renderCell = (column, data, onItemChange) => column.editable
|
|
4
6
|
? column.renderEditCell(column, data, onItemChange(column, data.item))
|
|
5
7
|
: column.renderCell(column, data);
|
|
6
|
-
const ItemRow = ({ columns, groupOnColumn, item, index, selected, expanded, onItemChange, }) => repeat(columns, (column) => column.name, (column) => {
|
|
7
|
-
return html `<div
|
|
8
|
+
const ItemRow = ({ columns, groupOnColumn, item, index, selected, expanded, onItemChange, }) => (0, repeat_js_1.repeat)(columns, (column) => column.name, (column) => {
|
|
9
|
+
return (0, pion_1.html) `<div
|
|
8
10
|
class="cell itemRow-cell ${column.cellClass ?? ''}"
|
|
9
11
|
part="cell itemRow-cell cell-${column.name} itemRow-cell-${column.name}"
|
|
10
12
|
?hidden="${column === groupOnColumn}"
|
|
@@ -15,5 +17,5 @@ const ItemRow = ({ columns, groupOnColumn, item, index, selected, expanded, onIt
|
|
|
15
17
|
${renderCell(column, { item, index, selected, expanded }, onItemChange)}
|
|
16
18
|
</div>`;
|
|
17
19
|
});
|
|
18
|
-
customElements.define('cosmoz-omnitable-item-row', component(ItemRow, { useShadowDOM: false }));
|
|
20
|
+
customElements.define('cosmoz-omnitable-item-row', (0, pion_1.component)(ItemRow, { useShadowDOM: false }));
|
|
19
21
|
//# sourceMappingURL=cosmoz-omnitable-item-row.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pion_1 = require("@pionjs/pion");
|
|
4
|
+
const styles = (0, pion_1.css) `
|
|
3
5
|
:host {
|
|
4
6
|
max-width: 100%;
|
|
5
7
|
overflow-x: hidden;
|
|
@@ -44,10 +46,10 @@ const styles = css `
|
|
|
44
46
|
`;
|
|
45
47
|
const Skeleton = ({ settingsConfig }) => {
|
|
46
48
|
const { columns, collapsed } = settingsConfig, showingColumns = columns.filter((column) => !collapsed.some((hidden) => hidden.name === column.name));
|
|
47
|
-
return html `<div class="skeleton">
|
|
48
|
-
${Array.from({ length: 5 }, () => html `<div>
|
|
49
|
+
return (0, pion_1.html) `<div class="skeleton">
|
|
50
|
+
${Array.from({ length: 5 }, () => (0, pion_1.html) `<div>
|
|
49
51
|
<div class="checkbox"></div>
|
|
50
|
-
${showingColumns.map((col) => html `<div
|
|
52
|
+
${showingColumns.map((col) => (0, pion_1.html) `<div
|
|
51
53
|
class="cell"
|
|
52
54
|
part=${`cell-${col.name}`}
|
|
53
55
|
name=${col.name}
|
|
@@ -55,5 +57,5 @@ const Skeleton = ({ settingsConfig }) => {
|
|
|
55
57
|
</div>`)}
|
|
56
58
|
</div>`;
|
|
57
59
|
};
|
|
58
|
-
customElements.define('cosmoz-omnitable-skeleton', component(Skeleton, { styleSheets: [styles] }));
|
|
60
|
+
customElements.define('cosmoz-omnitable-skeleton', (0, pion_1.component)(Skeleton, { styleSheets: [styles] }));
|
|
59
61
|
//# sourceMappingURL=cosmoz-omnitable-skeleton.js.map
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkbox = void 0;
|
|
1
4
|
/* eslint-disable max-lines */
|
|
2
|
-
|
|
3
|
-
|
|
5
|
+
const cosmoz_utils_1 = require("@neovici/cosmoz-utils");
|
|
6
|
+
exports.checkbox = (0, cosmoz_utils_1.tagged) `
|
|
4
7
|
.checkbox {
|
|
5
8
|
box-sizing: border-box;
|
|
6
9
|
width: 18px;
|
|
@@ -79,7 +82,7 @@ export const checkbox = css `
|
|
|
79
82
|
);
|
|
80
83
|
}
|
|
81
84
|
`;
|
|
82
|
-
|
|
85
|
+
exports.default = (0, cosmoz_utils_1.tagged) `
|
|
83
86
|
:host {
|
|
84
87
|
display: flex;
|
|
85
88
|
flex-direction: column;
|
|
@@ -449,7 +452,7 @@ export default css `
|
|
|
449
452
|
color: rgba(0, 0, 0, 0.54);
|
|
450
453
|
}
|
|
451
454
|
|
|
452
|
-
${checkbox}
|
|
455
|
+
${exports.checkbox}
|
|
453
456
|
|
|
454
457
|
.all {
|
|
455
458
|
margin-bottom: 6px;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const actionSlots: import("lit-html").TemplateResult<1>;
|
|
1
|
+
export const actionSlots: import("lit-html", { with: { "resolution-mode": "import" } }).TemplateResult<1>;
|
|
2
2
|
export const actionSlotsPolymer: HTMLTemplateElement;
|
|
3
3
|
//# sourceMappingURL=cosmoz-omnitable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmoz-omnitable.d.ts","sourceRoot":"","sources":["../src/cosmoz-omnitable.js"],"names":[],"mappings":"AAgFa
|
|
1
|
+
{"version":3,"file":"cosmoz-omnitable.d.ts","sourceRoot":"","sources":["../src/cosmoz-omnitable.js"],"names":[],"mappings":"AAgFa,0GAA4D;AACxE,qDAA0E"}
|
package/dist/cosmoz-omnitable.js
CHANGED
|
@@ -1,37 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.actionSlotsPolymer = exports.actionSlots = void 0;
|
|
7
|
+
require("@neovici/cosmoz-bottom-bar");
|
|
8
|
+
require("@polymer/iron-icon/iron-icon");
|
|
9
|
+
require("@polymer/iron-icons/iron-icons");
|
|
10
|
+
require("./cosmoz-omnitable-column");
|
|
11
|
+
require("./cosmoz-omnitable-columns");
|
|
12
|
+
require("./cosmoz-omnitable-group-row");
|
|
13
|
+
require("./cosmoz-omnitable-header-row");
|
|
14
|
+
require("./cosmoz-omnitable-item-expand");
|
|
15
|
+
require("./cosmoz-omnitable-item-row");
|
|
16
|
+
const use_notify_property_1 = require("@neovici/cosmoz-utils/hooks/use-notify-property");
|
|
17
|
+
const pion_1 = require("@pionjs/pion");
|
|
18
|
+
const html_tag_1 = require("@polymer/polymer/lib/utils/html-tag");
|
|
19
|
+
const lit_html_1 = require("lit-html");
|
|
20
|
+
const guard_js_1 = require("lit-html/directives/guard.js");
|
|
21
|
+
const cosmoz_omnitable_styles_1 = __importDefault(require("./cosmoz-omnitable-styles"));
|
|
22
|
+
const render_footer_1 = require("./lib/render-footer");
|
|
23
|
+
const render_header_1 = require("./lib/render-header");
|
|
24
|
+
const render_list_1 = require("./lib/render-list");
|
|
25
|
+
const use_omnitable_1 = require("./lib/use-omnitable");
|
|
26
|
+
require("./grouped-list/index.js");
|
|
21
27
|
const shimCSS = (s) => window.ShadyCSS?.ApplyShim?.transformCssText?.(s) || s;
|
|
22
28
|
const Omnitable = (host) => {
|
|
23
|
-
const { header, list, footer } = useOmnitable(host);
|
|
24
|
-
return html `
|
|
29
|
+
const { header, list, footer } = (0, use_omnitable_1.useOmnitable)(host);
|
|
30
|
+
return (0, lit_html_1.html) `
|
|
25
31
|
<style>
|
|
26
|
-
${guard([], () => shimCSS(
|
|
32
|
+
${(0, guard_js_1.guard)([], () => shimCSS(cosmoz_omnitable_styles_1.default))}
|
|
27
33
|
</style>
|
|
28
34
|
|
|
29
35
|
<div class="mainContainer">
|
|
30
|
-
${renderHeader(header)}
|
|
36
|
+
${(0, render_header_1.renderHeader)(header)}
|
|
31
37
|
<div class="tableContent" id="tableContent">
|
|
32
|
-
${renderList(header, list)}
|
|
38
|
+
${(0, render_list_1.renderList)(header, list)}
|
|
33
39
|
</div>
|
|
34
|
-
${renderFooter(footer)}
|
|
40
|
+
${(0, render_footer_1.renderFooter)(footer)}
|
|
35
41
|
</div>
|
|
36
42
|
|
|
37
43
|
<div id="columns">
|
|
@@ -39,7 +45,7 @@ const Omnitable = (host) => {
|
|
|
39
45
|
</div>
|
|
40
46
|
`;
|
|
41
47
|
};
|
|
42
|
-
customElements.define('cosmoz-omnitable', class extends component(Omnitable, {
|
|
48
|
+
customElements.define('cosmoz-omnitable', class extends (0, pion_1.component)(Omnitable, {
|
|
43
49
|
observedAttributes: [
|
|
44
50
|
'hash-param',
|
|
45
51
|
'sort-on',
|
|
@@ -57,13 +63,13 @@ customElements.define('cosmoz-omnitable', class extends component(Omnitable, {
|
|
|
57
63
|
}) {
|
|
58
64
|
connectedCallback() {
|
|
59
65
|
super.connectedCallback();
|
|
60
|
-
notifyProperty(this, 'selectedItems', []);
|
|
61
|
-
notifyProperty(this, 'visibleData', []);
|
|
62
|
-
notifyProperty(this, 'sortedFilteredGroupedItems', []);
|
|
66
|
+
(0, use_notify_property_1.notifyProperty)(this, 'selectedItems', []);
|
|
67
|
+
(0, use_notify_property_1.notifyProperty)(this, 'visibleData', []);
|
|
68
|
+
(0, use_notify_property_1.notifyProperty)(this, 'sortedFilteredGroupedItems', []);
|
|
63
69
|
}
|
|
64
70
|
});
|
|
65
71
|
const tmplt = `
|
|
66
72
|
<slot name="actions" slot="actions"></slot>
|
|
67
73
|
`;
|
|
68
|
-
|
|
74
|
+
exports.actionSlots = (0, lit_html_1.html)(Object.assign([tmplt], { raw: [tmplt] })), exports.actionSlotsPolymer = (0, html_tag_1.html)(Object.assign([tmplt], { raw: [tmplt] }));
|
|
69
75
|
//# sourceMappingURL=cosmoz-omnitable.js.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lit_html_1 = require("lit-html");
|
|
2
4
|
customElements.define('cosmoz-grouped-list-row', class Element extends HTMLElement {
|
|
3
5
|
get item() {
|
|
4
6
|
return this._item;
|
|
@@ -25,7 +27,7 @@ customElements.define('cosmoz-grouped-list-row', class Element extends HTMLEleme
|
|
|
25
27
|
if (this._item == null || this._index == null || this._renderFn == null) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
|
-
render(this._renderFn(this._item, this._index), this);
|
|
30
|
+
(0, lit_html_1.render)(this._renderFn(this._item, this._index), this);
|
|
29
31
|
}
|
|
30
32
|
});
|
|
31
33
|
//# sourceMappingURL=cosmoz-grouped-list-row.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const use_cosmoz_grouped_list_js_1 = require("./use-cosmoz-grouped-list.js");
|
|
4
|
+
const pion_1 = require("@pionjs/pion");
|
|
5
|
+
const CosmozGroupedList = (host) => (0, use_cosmoz_grouped_list_js_1.renderCosmozGroupedList)((0, use_cosmoz_grouped_list_js_1.useCosmozGroupedList)(host));
|
|
6
|
+
customElements.define('cosmoz-grouped-list', (0, pion_1.component)(CosmozGroupedList, { useShadowDOM: false }));
|
|
5
7
|
//# sourceMappingURL=cosmoz-grouped-list.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function useCollapsibleItems(): {
|
|
2
|
-
state:
|
|
3
|
-
signal:
|
|
4
|
-
toggleFold:
|
|
5
|
-
toggleCollapse:
|
|
2
|
+
state: any;
|
|
3
|
+
signal: any;
|
|
4
|
+
toggleFold: any;
|
|
5
|
+
toggleCollapse: any;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=use-collapsible-items.d.ts.map
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCollapsibleItems = void 0;
|
|
4
|
+
const pion_1 = require("@pionjs/pion");
|
|
5
|
+
const use_weak_state_1 = require("./use-weak-state");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const useCollapsibleItems = () => {
|
|
8
|
+
const { setItemState, state, signal } = (0, use_weak_state_1.useWeakState)(), toggleFold = (0, pion_1.useCallback)((item, folded) => {
|
|
9
|
+
if (!(0, utils_1.isGroup)(item)) {
|
|
7
10
|
return;
|
|
8
11
|
}
|
|
9
12
|
setItemState(item, (state) => ({
|
|
10
13
|
folded: folded !== undefined ? folded : !state.folded,
|
|
11
14
|
}));
|
|
12
|
-
}, []), toggleCollapse = useCallback((item, collapsed) => {
|
|
13
|
-
if (isGroup(item)) {
|
|
15
|
+
}, []), toggleCollapse = (0, pion_1.useCallback)((item, collapsed) => {
|
|
16
|
+
if ((0, utils_1.isGroup)(item)) {
|
|
14
17
|
return;
|
|
15
18
|
}
|
|
16
19
|
setItemState(item, (state) => ({
|
|
@@ -24,4 +27,5 @@ export const useCollapsibleItems = () => {
|
|
|
24
27
|
toggleCollapse,
|
|
25
28
|
};
|
|
26
29
|
};
|
|
30
|
+
exports.useCollapsibleItems = useCollapsibleItems;
|
|
27
31
|
//# sourceMappingURL=use-collapsible-items.js.map
|
|
@@ -9,7 +9,7 @@ export function renderCosmozGroupedList({ renderRow, flatData }: {
|
|
|
9
9
|
flatData: any[];
|
|
10
10
|
}): any;
|
|
11
11
|
export function useCosmozGroupedList(host: any): {
|
|
12
|
-
renderRow:
|
|
12
|
+
renderRow: any;
|
|
13
13
|
flatData: any;
|
|
14
14
|
};
|
|
15
15
|
//# sourceMappingURL=use-cosmoz-grouped-list.d.ts.map
|
|
@@ -1,34 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCosmozGroupedList = exports.renderCosmozGroupedList = void 0;
|
|
4
|
+
const use_imperative_api_1 = require("@neovici/cosmoz-utils/hooks/use-imperative-api");
|
|
5
|
+
const use_notify_property_1 = require("@neovici/cosmoz-utils/hooks/use-notify-property");
|
|
6
|
+
const pion_1 = require("@pionjs/pion");
|
|
7
|
+
const lit_html_1 = require("lit-html");
|
|
8
|
+
require("./cosmoz-grouped-list-row");
|
|
9
|
+
const use_collapsible_items_1 = require("./use-collapsible-items");
|
|
10
|
+
const use_selected_items_1 = require("./use-selected-items");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const virtualize_js_1 = require("@lit-labs/virtualizer/virtualize.js");
|
|
10
13
|
const styles = {
|
|
11
14
|
host: { position: 'relative', display: 'flex', flexDirection: 'column' },
|
|
12
15
|
}, useCosmozGroupedList = (host) => {
|
|
13
|
-
const { data, renderItem, renderGroup, displayEmptyGroups, compareItemsFn = byReference, } = host, { toggleFold, toggleCollapse, state, signal } = useCollapsibleItems(),
|
|
16
|
+
const { data, renderItem, renderGroup, displayEmptyGroups, compareItemsFn = utils_1.byReference, } = host, { toggleFold, toggleCollapse, state, signal } = (0, use_collapsible_items_1.useCollapsibleItems)(),
|
|
14
17
|
// TODO: state changes trigger recalculation, which is slow (200ms with 10k items)
|
|
15
18
|
// it only makes sense to do it when a group is folded
|
|
16
19
|
// suggested fix: separate signal for item collapse and group fold
|
|
17
|
-
flatData = useMemo(() => prepareData(data, displayEmptyGroups, state), [data, displayEmptyGroups, signal]), { selectedItems, isItemSelected, isGroupSelected, isSelected, select, deselect, selectOnly, selectAll, deselectAll, toggleSelect, toggleSelectTo, } = useSelectedItems({ initial: [], compareItemsFn, data, flatData }), renderRow = useCallback((item, index) => Array.isArray(item.items)
|
|
20
|
+
flatData = (0, pion_1.useMemo)(() => (0, utils_1.prepareData)(data, displayEmptyGroups, state), [data, displayEmptyGroups, signal]), { selectedItems, isItemSelected, isGroupSelected, isSelected, select, deselect, selectOnly, selectAll, deselectAll, toggleSelect, toggleSelectTo, } = (0, use_selected_items_1.useSelectedItems)({ initial: [], compareItemsFn, data, flatData }), renderRow = (0, pion_1.useCallback)((item, index) => Array.isArray(item.items)
|
|
18
21
|
? renderGroup(item, index, {
|
|
19
22
|
selected: isGroupSelected(item, selectedItems),
|
|
20
|
-
folded: isFolded(item, state),
|
|
23
|
+
folded: (0, utils_1.isFolded)(item, state),
|
|
21
24
|
toggleSelect: (selected) => toggleSelect(item, typeof selected === 'boolean' ? selected : undefined),
|
|
22
25
|
toggleFold: () => toggleFold(item),
|
|
23
26
|
})
|
|
24
27
|
: renderItem(item, index, {
|
|
25
28
|
selected: selectedItems.includes(item),
|
|
26
|
-
expanded: isExpanded(item, state),
|
|
29
|
+
expanded: (0, utils_1.isExpanded)(item, state),
|
|
27
30
|
toggleSelect: (selected) => toggleSelect(item, typeof selected === 'boolean' ? selected : undefined),
|
|
28
31
|
toggleCollapse: () => toggleCollapse(item),
|
|
29
32
|
}), [renderItem, renderGroup, selectedItems, toggleSelect, signal]);
|
|
30
|
-
useLayoutEffect(() => Object.assign(host.style, styles.host), []);
|
|
31
|
-
useNotifyProperty('selectedItems', selectedItems);
|
|
33
|
+
(0, pion_1.useLayoutEffect)(() => Object.assign(host.style, styles.host), []);
|
|
34
|
+
(0, use_notify_property_1.useNotifyProperty)('selectedItems', selectedItems);
|
|
32
35
|
const api = {
|
|
33
36
|
toggleFold,
|
|
34
37
|
toggleCollapse,
|
|
@@ -43,9 +46,10 @@ const styles = {
|
|
|
43
46
|
toggleSelect,
|
|
44
47
|
toggleSelectTo,
|
|
45
48
|
};
|
|
46
|
-
useImperativeApi(api, Object.values(api));
|
|
49
|
+
(0, use_imperative_api_1.useImperativeApi)(api, Object.values(api));
|
|
47
50
|
return { renderRow, flatData };
|
|
48
51
|
};
|
|
52
|
+
exports.useCosmozGroupedList = useCosmozGroupedList;
|
|
49
53
|
/**
|
|
50
54
|
* @param {Object} params
|
|
51
55
|
* @param {Function} params.renderRow
|
|
@@ -53,14 +57,14 @@ const styles = {
|
|
|
53
57
|
* @returns {*}
|
|
54
58
|
*/
|
|
55
59
|
const renderCosmozGroupedList = ({ renderRow, flatData }) => {
|
|
56
|
-
return virtualize({
|
|
60
|
+
return (0, virtualize_js_1.virtualize)({
|
|
57
61
|
items: flatData,
|
|
58
|
-
renderItem: (item, index) => html `<cosmoz-grouped-list-row
|
|
62
|
+
renderItem: (item, index) => (0, lit_html_1.html) `<cosmoz-grouped-list-row
|
|
59
63
|
.item=${item}
|
|
60
64
|
.index=${index}
|
|
61
65
|
.renderFn=${renderRow}
|
|
62
66
|
></cosmoz-grouped-list-row>`,
|
|
63
67
|
});
|
|
64
68
|
};
|
|
65
|
-
|
|
69
|
+
exports.renderCosmozGroupedList = renderCosmozGroupedList;
|
|
66
70
|
//# sourceMappingURL=use-cosmoz-grouped-list.js.map
|
|
@@ -5,15 +5,15 @@ export function useSelectedItems({ initial, compareItemsFn, data, flatData, }: {
|
|
|
5
5
|
flatData: any;
|
|
6
6
|
}): {
|
|
7
7
|
selectedItems: any;
|
|
8
|
-
isItemSelected:
|
|
9
|
-
isGroupSelected:
|
|
10
|
-
isSelected:
|
|
11
|
-
select:
|
|
12
|
-
deselect:
|
|
13
|
-
selectOnly:
|
|
14
|
-
selectAll:
|
|
15
|
-
deselectAll:
|
|
16
|
-
toggleSelect:
|
|
17
|
-
toggleSelectTo:
|
|
8
|
+
isItemSelected: any;
|
|
9
|
+
isGroupSelected: any;
|
|
10
|
+
isSelected: any;
|
|
11
|
+
select: any;
|
|
12
|
+
deselect: any;
|
|
13
|
+
selectOnly: any;
|
|
14
|
+
selectAll: any;
|
|
15
|
+
deselectAll: any;
|
|
16
|
+
toggleSelect: any;
|
|
17
|
+
toggleSelectTo: any;
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=use-selected-items.d.ts.map
|
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSelectedItems = void 0;
|
|
4
|
+
const pion_1 = require("@pionjs/pion");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) => {
|
|
7
|
+
const [selectedItems, setSelectedItems] = (0, pion_1.useState)(initial), [lastSelection, setLastSelection] = (0, pion_1.useState)(),
|
|
5
8
|
/**
|
|
6
9
|
* Check if item is selected.
|
|
7
10
|
* @param {object} item Item.
|
|
8
11
|
* @returns {boolean} Whether item is selected.
|
|
9
12
|
*/
|
|
10
|
-
isItemSelected = useCallback((item) => selectedItems.includes(item), [selectedItems]),
|
|
13
|
+
isItemSelected = (0, pion_1.useCallback)((item) => selectedItems.includes(item), [selectedItems]),
|
|
11
14
|
/**
|
|
12
15
|
* Check if group is selected.
|
|
13
16
|
* @param {object} group Group.
|
|
14
17
|
* @returns {boolean} Whether group is selected.
|
|
15
18
|
*/
|
|
16
|
-
isGroupSelected = useCallback((group) => group?.items?.every(isItemSelected), [isItemSelected]),
|
|
19
|
+
isGroupSelected = (0, pion_1.useCallback)((group) => group?.items?.every(isItemSelected), [isItemSelected]),
|
|
17
20
|
/**
|
|
18
21
|
* Check if item.group is selected.
|
|
19
22
|
* @param {object} item Item.
|
|
20
23
|
* @returns {boolean} Whether item is selected.
|
|
21
24
|
*/
|
|
22
|
-
isSelected = useCallback((item) => isItemSelected(item) || isGroupSelected(item), [isItemSelected, isGroupSelected]),
|
|
25
|
+
isSelected = (0, pion_1.useCallback)((item) => isItemSelected(item) || isGroupSelected(item), [isItemSelected, isGroupSelected]),
|
|
23
26
|
/**
|
|
24
27
|
* Add an item/group to the list of selected items.
|
|
25
28
|
* @param {object} item Item to select.
|
|
26
29
|
* @returns {void}
|
|
27
30
|
*/
|
|
28
|
-
select = useCallback((item) => {
|
|
31
|
+
select = (0, pion_1.useCallback)((item) => {
|
|
29
32
|
const items = item.items ?? [item];
|
|
30
33
|
setSelectedItems((selection) => [
|
|
31
34
|
...selection,
|
|
@@ -38,11 +41,11 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
38
41
|
* @param {object} item Item to select.
|
|
39
42
|
* @returns {void}
|
|
40
43
|
*/
|
|
41
|
-
deselect = useCallback((item) => {
|
|
44
|
+
deselect = (0, pion_1.useCallback)((item) => {
|
|
42
45
|
const items = item.items ?? [item];
|
|
43
46
|
setSelectedItems((selection) => selection.filter((i) => !items.includes(i)));
|
|
44
47
|
setLastSelection(item);
|
|
45
|
-
}, []), selectOnly = useCallback((item) => {
|
|
48
|
+
}, []), selectOnly = (0, pion_1.useCallback)((item) => {
|
|
46
49
|
setSelectedItems(item.items?.slice() || [item]);
|
|
47
50
|
setLastSelection(item);
|
|
48
51
|
}, []),
|
|
@@ -50,7 +53,7 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
50
53
|
* Select all items.
|
|
51
54
|
* @returns {void}
|
|
52
55
|
*/
|
|
53
|
-
selectAll = useCallback(() => {
|
|
56
|
+
selectAll = (0, pion_1.useCallback)(() => {
|
|
54
57
|
setSelectedItems(data.flatMap((item) => item.items || item));
|
|
55
58
|
setLastSelection(undefined);
|
|
56
59
|
}, [data]),
|
|
@@ -58,7 +61,7 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
58
61
|
* Deselect all selected items.
|
|
59
62
|
* @returns {void}
|
|
60
63
|
*/
|
|
61
|
-
deselectAll = useCallback(() => {
|
|
64
|
+
deselectAll = (0, pion_1.useCallback)(() => {
|
|
62
65
|
setSelectedItems([]);
|
|
63
66
|
setLastSelection(undefined);
|
|
64
67
|
}, []),
|
|
@@ -68,7 +71,7 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
68
71
|
* @param {boolean=} selected Select or deselect, fallback to toggling.
|
|
69
72
|
* @returns {void}
|
|
70
73
|
*/
|
|
71
|
-
toggleSelect = useCallback((item, selected = !isSelected(item)) => selected ? select(item) : deselect(item), [isSelected]), toggleSelectTo = useCallback((item, selected) => {
|
|
74
|
+
toggleSelect = (0, pion_1.useCallback)((item, selected = !isSelected(item)) => selected ? select(item) : deselect(item), [isSelected]), toggleSelectTo = (0, pion_1.useCallback)((item, selected) => {
|
|
72
75
|
const last = lastSelection
|
|
73
76
|
? flatData.findIndex((i) => compareItemsFn(i, lastSelection))
|
|
74
77
|
: -1;
|
|
@@ -77,7 +80,7 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
77
80
|
}
|
|
78
81
|
const [from, to] = [last, flatData.indexOf(item)].sort((a, b) => a - b);
|
|
79
82
|
flatData.slice(from, to + 1).forEach((item, i, items) => {
|
|
80
|
-
if (i > 0 && i < items.length - 1 && isGroup(item)) {
|
|
83
|
+
if (i > 0 && i < items.length - 1 && (0, utils_1.isGroup)(item)) {
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
83
86
|
toggleSelect(item, selected);
|
|
@@ -85,7 +88,7 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
85
88
|
setLastSelection(item);
|
|
86
89
|
}, [flatData, compareItemsFn, toggleSelect]);
|
|
87
90
|
// keep selected items across data updates
|
|
88
|
-
useEffect(() => setSelectedItems((selectedItems) => selectedItems.length > 0
|
|
91
|
+
(0, pion_1.useEffect)(() => setSelectedItems((selectedItems) => selectedItems.length > 0
|
|
89
92
|
? flatData.filter((i) => selectedItems.find((item) => compareItemsFn(i, item)))
|
|
90
93
|
: selectedItems), [flatData]);
|
|
91
94
|
return {
|
|
@@ -102,4 +105,5 @@ export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) =
|
|
|
102
105
|
toggleSelectTo,
|
|
103
106
|
};
|
|
104
107
|
};
|
|
108
|
+
exports.useSelectedItems = useSelectedItems;
|
|
105
109
|
//# sourceMappingURL=use-selected-items.js.map
|