@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.
Files changed (141) hide show
  1. package/dist/cosmoz-omnitable-column-amount.js +29 -27
  2. package/dist/cosmoz-omnitable-column-autocomplete.d.ts +1 -1
  3. package/dist/cosmoz-omnitable-column-autocomplete.d.ts.map +1 -1
  4. package/dist/cosmoz-omnitable-column-autocomplete.js +28 -24
  5. package/dist/cosmoz-omnitable-column-boolean.d.ts +4 -1
  6. package/dist/cosmoz-omnitable-column-boolean.d.ts.map +1 -1
  7. package/dist/cosmoz-omnitable-column-boolean.js +25 -17
  8. package/dist/cosmoz-omnitable-column-date.js +28 -26
  9. package/dist/cosmoz-omnitable-column-datetime.js +28 -26
  10. package/dist/cosmoz-omnitable-column-list-data.js +8 -6
  11. package/dist/cosmoz-omnitable-column-list-horizontal.js +17 -15
  12. package/dist/cosmoz-omnitable-column-list-mixin.d.ts +6 -6
  13. package/dist/cosmoz-omnitable-column-list-mixin.d.ts.map +1 -1
  14. package/dist/cosmoz-omnitable-column-list-mixin.js +28 -15
  15. package/dist/cosmoz-omnitable-column-list.js +21 -19
  16. package/dist/cosmoz-omnitable-column-mixin.js +12 -8
  17. package/dist/cosmoz-omnitable-column-number.js +29 -27
  18. package/dist/cosmoz-omnitable-column-time.js +26 -24
  19. package/dist/cosmoz-omnitable-column.js +13 -11
  20. package/dist/cosmoz-omnitable-columns.js +11 -9
  21. package/dist/cosmoz-omnitable-group-row.js +6 -4
  22. package/dist/cosmoz-omnitable-header-row.js +17 -15
  23. package/dist/cosmoz-omnitable-item-expand-line.js +7 -5
  24. package/dist/cosmoz-omnitable-item-expand.js +8 -6
  25. package/dist/cosmoz-omnitable-item-row.js +7 -5
  26. package/dist/cosmoz-omnitable-skeleton.js +8 -6
  27. package/dist/cosmoz-omnitable-styles.js +7 -4
  28. package/dist/cosmoz-omnitable.d.ts +1 -1
  29. package/dist/cosmoz-omnitable.d.ts.map +1 -1
  30. package/dist/cosmoz-omnitable.js +37 -31
  31. package/dist/grouped-list/cosmoz-grouped-list-row.js +4 -2
  32. package/dist/grouped-list/cosmoz-grouped-list.js +6 -4
  33. package/dist/grouped-list/index.js +3 -1
  34. package/dist/grouped-list/use-collapsible-items.d.ts +4 -4
  35. package/dist/grouped-list/use-collapsible-items.js +12 -8
  36. package/dist/grouped-list/use-cosmoz-grouped-list.d.ts +1 -1
  37. package/dist/grouped-list/use-cosmoz-grouped-list.js +23 -19
  38. package/dist/grouped-list/use-selected-items.d.ts +10 -10
  39. package/dist/grouped-list/use-selected-items.js +19 -15
  40. package/dist/grouped-list/use-weak-state.d.ts +3 -3
  41. package/dist/grouped-list/use-weak-state.js +10 -6
  42. package/dist/grouped-list/utils.js +11 -1
  43. package/dist/lib/compute-layout.js +10 -6
  44. package/dist/lib/cosmoz-omnitable-amount-range-input.js +16 -14
  45. package/dist/lib/cosmoz-omnitable-date-input-mixin.js +9 -5
  46. package/dist/lib/cosmoz-omnitable-date-range-input.js +14 -12
  47. package/dist/lib/cosmoz-omnitable-datetime-range-input.js +15 -13
  48. package/dist/lib/cosmoz-omnitable-number-range-input.js +14 -12
  49. package/dist/lib/cosmoz-omnitable-range-input-mixin.js +12 -8
  50. package/dist/lib/cosmoz-omnitable-resize-nub.js +7 -5
  51. package/dist/lib/cosmoz-omnitable-time-range-input.js +14 -12
  52. package/dist/lib/generic-sorter.js +5 -1
  53. package/dist/lib/icons.d.ts +4 -4
  54. package/dist/lib/icons.d.ts.map +1 -1
  55. package/dist/lib/icons.js +8 -5
  56. package/dist/lib/layout.js +5 -2
  57. package/dist/lib/polymer-haunted-render-mixin.js +10 -6
  58. package/dist/lib/render-footer.d.ts +1 -1
  59. package/dist/lib/render-footer.d.ts.map +1 -1
  60. package/dist/lib/render-footer.js +16 -12
  61. package/dist/lib/render-header.d.ts +1 -1
  62. package/dist/lib/render-header.d.ts.map +1 -1
  63. package/dist/lib/render-header.js +9 -5
  64. package/dist/lib/render-list.d.ts +1 -1
  65. package/dist/lib/render-list.d.ts.map +1 -1
  66. package/dist/lib/render-list.js +18 -14
  67. package/dist/lib/save-as-csv-action.js +7 -3
  68. package/dist/lib/save-as-xlsx-action.js +9 -5
  69. package/dist/lib/settings/cosmoz-omnitable-settings.js +71 -33
  70. package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts +3 -3
  71. package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts.map +1 -1
  72. package/dist/lib/settings/cosmoz-omnitable-sort-group.js +19 -12
  73. package/dist/lib/settings/drivers/context.d.ts +2 -10
  74. package/dist/lib/settings/drivers/context.d.ts.map +1 -1
  75. package/dist/lib/settings/drivers/context.js +13 -6
  76. package/dist/lib/settings/drivers/index.js +25 -3
  77. package/dist/lib/settings/drivers/local.js +3 -1
  78. package/dist/lib/settings/drivers/remote.js +3 -1
  79. package/dist/lib/settings/index.js +9 -2
  80. package/dist/lib/settings/normalize.js +15 -10
  81. package/dist/lib/settings/style.css.js +8 -5
  82. package/dist/lib/settings/use-saved-settings.d.ts +2 -2
  83. package/dist/lib/settings/use-saved-settings.js +11 -9
  84. package/dist/lib/settings/use-settings-ui.js +14 -12
  85. package/dist/lib/settings/use-settings.d.ts +6 -12
  86. package/dist/lib/settings/use-settings.d.ts.map +1 -1
  87. package/dist/lib/settings/use-settings.js +46 -8
  88. package/dist/lib/types.d.ts +20 -0
  89. package/dist/lib/types.d.ts.map +1 -0
  90. package/dist/lib/types.js +3 -0
  91. package/dist/lib/use-canvas-width.js +9 -5
  92. package/dist/lib/use-dom-columns.d.ts +1 -1
  93. package/dist/lib/use-dom-columns.d.ts.map +1 -1
  94. package/dist/lib/use-dom-columns.js +11 -7
  95. package/dist/lib/use-fast-layout.d.ts +1 -1
  96. package/dist/lib/use-fast-layout.js +22 -18
  97. package/dist/lib/use-footer.js +5 -1
  98. package/dist/lib/use-hash-state.js +15 -11
  99. package/dist/lib/use-header.js +9 -5
  100. package/dist/lib/use-layout.js +8 -4
  101. package/dist/lib/use-list.d.ts +2 -10
  102. package/dist/lib/use-list.d.ts.map +1 -1
  103. package/dist/lib/use-list.js +25 -21
  104. package/dist/lib/use-mini.d.ts +1 -1
  105. package/dist/lib/use-mini.js +9 -5
  106. package/dist/lib/use-omnitable.d.ts +2 -10
  107. package/dist/lib/use-omnitable.d.ts.map +1 -1
  108. package/dist/lib/use-omnitable.js +22 -18
  109. package/dist/lib/use-processed-items.d.ts +3 -5
  110. package/dist/lib/use-processed-items.d.ts.map +1 -1
  111. package/dist/lib/use-processed-items.js +27 -23
  112. package/dist/lib/use-public-interface.js +20 -16
  113. package/dist/lib/use-resizable-columns.js +8 -4
  114. package/dist/lib/use-sort-and-group-options.d.ts +2 -25
  115. package/dist/lib/use-sort-and-group-options.d.ts.map +1 -1
  116. package/dist/lib/use-sort-and-group-options.js +16 -12
  117. package/dist/lib/use-track-size.d.ts +1 -1
  118. package/dist/lib/use-track-size.d.ts.map +1 -1
  119. package/dist/lib/use-track-size.js +6 -2
  120. package/dist/lib/use-tween-array.d.ts +1 -1
  121. package/dist/lib/use-tween-array.d.ts.map +1 -1
  122. package/dist/lib/use-tween-array.js +14 -10
  123. package/dist/lib/utils-amount.d.ts +1 -1
  124. package/dist/lib/utils-amount.d.ts.map +1 -1
  125. package/dist/lib/utils-amount.js +25 -29
  126. package/dist/lib/utils-data.js +12 -8
  127. package/dist/lib/utils-date.d.ts +4 -4
  128. package/dist/lib/utils-date.d.ts.map +1 -1
  129. package/dist/lib/utils-date.js +58 -35
  130. package/dist/lib/utils-datetime.d.ts +2 -2
  131. package/dist/lib/utils-datetime.d.ts.map +1 -1
  132. package/dist/lib/utils-datetime.js +20 -16
  133. package/dist/lib/utils-number.d.ts +11 -18
  134. package/dist/lib/utils-number.d.ts.map +1 -1
  135. package/dist/lib/utils-number.js +44 -36
  136. package/dist/lib/utils-time.d.ts +2 -2
  137. package/dist/lib/utils-time.d.ts.map +1 -1
  138. package/dist/lib/utils-time.js +37 -24
  139. package/dist/lib/utils.js +6 -2
  140. package/dist/ui-helpers/cosmoz-clear-button.js +7 -5
  141. package/package.json +1 -1
@@ -1,11 +1,13 @@
1
- import { html, component, useContext } from '@pionjs/pion';
2
- import { repeat } from 'lit-html/directives/repeat.js';
3
- import './lib/cosmoz-omnitable-resize-nub';
4
- import { render } from './lib/settings/cosmoz-omnitable-sort-group';
5
- import { when } from 'lit-html/directives/when.js';
6
- import { SortAndGroupContext } from './lib/use-sort-and-group-options';
7
- const renderHeaderRow = ({ data, columns, groupOnColumn, filters, setFilterState, sortAndGroup: { sortOn: on, setSortOn: setOn, descending, setDescending, } = {}, }) => repeat(columns, (column) => column.name, (column) => [
8
- html `<div
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
- import { component, html } from '@pionjs/pion';
2
- import { css, sheet } from '@neovici/cosmoz-utils';
3
- const style = css `
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
- import { component } from '@pionjs/pion';
2
- import { html } from 'lit-html';
3
- import { map } from 'lit-html/directives/map.js';
4
- import './cosmoz-omnitable-item-expand-line';
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
- import { component, html } from '@pionjs/pion';
2
- import { repeat } from 'lit-html/directives/repeat.js';
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
- import { html, css, component } from '@pionjs/pion';
2
- const styles = css `
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
- import { tagged as css } from '@neovici/cosmoz-utils';
3
- export const checkbox = css `
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
- export default css `
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,+DAA4D;AACxE,qDAA0E"}
1
+ {"version":3,"file":"cosmoz-omnitable.d.ts","sourceRoot":"","sources":["../src/cosmoz-omnitable.js"],"names":[],"mappings":"AAgFa,0GAA4D;AACxE,qDAA0E"}
@@ -1,37 +1,43 @@
1
- import '@neovici/cosmoz-bottom-bar';
2
- import '@polymer/iron-icon/iron-icon';
3
- import '@polymer/iron-icons/iron-icons';
4
- import './cosmoz-omnitable-column';
5
- import './cosmoz-omnitable-columns';
6
- import './cosmoz-omnitable-group-row';
7
- import './cosmoz-omnitable-header-row';
8
- import './cosmoz-omnitable-item-expand';
9
- import './cosmoz-omnitable-item-row';
10
- import { notifyProperty } from '@neovici/cosmoz-utils/hooks/use-notify-property';
11
- import { component } from '@pionjs/pion';
12
- import { html as polymerHtml } from '@polymer/polymer/lib/utils/html-tag';
13
- import { html } from 'lit-html';
14
- import { guard } from 'lit-html/directives/guard.js';
15
- import styles from './cosmoz-omnitable-styles';
16
- import { renderFooter } from './lib/render-footer';
17
- import { renderHeader } from './lib/render-header';
18
- import { renderList } from './lib/render-list';
19
- import { useOmnitable } from './lib/use-omnitable';
20
- import './grouped-list/index.js';
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(styles))}
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
- export const actionSlots = html(Object.assign([tmplt], { raw: [tmplt] })), actionSlotsPolymer = polymerHtml(Object.assign([tmplt], { raw: [tmplt] }));
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
- import { render } from 'lit-html';
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
- import { renderCosmozGroupedList, useCosmozGroupedList, } from './use-cosmoz-grouped-list.js';
2
- import { component } from '@pionjs/pion';
3
- const CosmozGroupedList = (host) => renderCosmozGroupedList(useCosmozGroupedList(host));
4
- customElements.define('cosmoz-grouped-list', component(CosmozGroupedList, { useShadowDOM: false }));
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,2 +1,4 @@
1
- import './cosmoz-grouped-list.js';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./cosmoz-grouped-list.js");
2
4
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  export function useCollapsibleItems(): {
2
- state: WeakMap<object, any>;
3
- signal: WeakMap<object, any>[];
4
- toggleFold: (item: any, folded: any) => void;
5
- toggleCollapse: (item: any, collapsed: any) => void;
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
- import { useCallback } from '@pionjs/pion';
2
- import { useWeakState } from './use-weak-state';
3
- import { isGroup } from './utils';
4
- export const useCollapsibleItems = () => {
5
- const { setItemState, state, signal } = useWeakState(), toggleFold = useCallback((item, folded) => {
6
- if (!isGroup(item)) {
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: (item: any, index: any) => any;
12
+ renderRow: any;
13
13
  flatData: any;
14
14
  };
15
15
  //# sourceMappingURL=use-cosmoz-grouped-list.d.ts.map
@@ -1,34 +1,37 @@
1
- import { useImperativeApi } from '@neovici/cosmoz-utils/hooks/use-imperative-api';
2
- import { useNotifyProperty } from '@neovici/cosmoz-utils/hooks/use-notify-property';
3
- import { useCallback, useLayoutEffect, useMemo } from '@pionjs/pion';
4
- import { html } from 'lit-html';
5
- import './cosmoz-grouped-list-row';
6
- import { useCollapsibleItems } from './use-collapsible-items';
7
- import { useSelectedItems } from './use-selected-items';
8
- import { byReference, isExpanded, isFolded, prepareData } from './utils';
9
- import { virtualize } from '@lit-labs/virtualizer/virtualize.js';
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
- export { renderCosmozGroupedList, useCosmozGroupedList };
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: (item: any) => any;
9
- isGroupSelected: (group: any) => any;
10
- isSelected: (item: any) => any;
11
- select: (item: any) => void;
12
- deselect: (item: any) => void;
13
- selectOnly: (item: any) => void;
14
- selectAll: () => void;
15
- deselectAll: () => void;
16
- toggleSelect: (item: any, selected?: boolean) => void;
17
- toggleSelectTo: (item: any, selected: any) => void;
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
- import { useCallback, useEffect, useState } from '@pionjs/pion';
2
- import { isGroup } from './utils';
3
- export const useSelectedItems = ({ initial, compareItemsFn, data, flatData, }) => {
4
- const [selectedItems, setSelectedItems] = useState(initial), [lastSelection, setLastSelection] = useState(),
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
@@ -1,6 +1,6 @@
1
1
  export function useWeakState(): {
2
- setItemState: (item: any, newItemState: any) => void;
3
- state: WeakMap<object, any>;
4
- signal: WeakMap<object, any>[];
2
+ setItemState: any;
3
+ state: any;
4
+ signal: any;
5
5
  };
6
6
  //# sourceMappingURL=use-weak-state.d.ts.map