@sankhyalabs/sankhyablocks 8.9.4 → 8.10.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 (138) hide show
  1. package/dist/cjs/{ConfigStorage-90552fe8.js → ConfigStorage-49d4681c.js} +1 -1
  2. package/dist/cjs/{PersonalizedFilterUtils-2f7823fc.js → PersonalizedFilterUtils-0184ffbb.js} +1 -1
  3. package/dist/cjs/{SnkFormConfigManager-0561602d.js → SnkFormConfigManager-d4184bfa.js} +1 -1
  4. package/dist/cjs/{filter-item-type.enum-aa823a00.js → filter-item-type.enum-a7ffdaa6.js} +1 -0
  5. package/dist/cjs/index-f9e81701.js +4 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  8. package/dist/cjs/snk-actions-button.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  10. package/dist/cjs/snk-crud.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  12. package/dist/cjs/{snk-data-unit-b949160d.js → snk-data-unit-04d76538.js} +1 -1
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  15. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-filter-bar.cjs.entry.js +27 -4
  17. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  18. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +52 -0
  19. package/dist/cjs/snk-filter-detail.cjs.entry.js +9 -2
  20. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-filter-item.cjs.entry.js +25 -14
  22. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +5 -3
  23. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -5
  24. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  26. package/dist/cjs/snk-filter-period.cjs.entry.js +1 -1
  27. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  28. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  29. package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
  30. package/dist/cjs/snk-grid.cjs.entry.js +2 -2
  31. package/dist/cjs/{snk-guides-viewer-676dd526.js → snk-guides-viewer-0d5aad6b.js} +2 -2
  32. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  33. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  35. package/dist/cjs/snk-simple-crud.cjs.entry.js +1 -1
  36. package/dist/collection/collection-manifest.json +1 -0
  37. package/dist/collection/components/snk-data-unit/snk-data-unit.js +1 -1
  38. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +19 -0
  39. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +95 -0
  40. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +1 -0
  41. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +7 -0
  42. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +24 -13
  43. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +14 -3
  44. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +3 -1
  45. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +5 -1
  46. package/dist/components/filter-item-type.enum.js +1 -0
  47. package/dist/components/index.d.ts +1 -0
  48. package/dist/components/index.js +1 -0
  49. package/dist/components/snk-data-unit2.js +1 -1
  50. package/dist/components/snk-filter-bar2.js +24 -1
  51. package/dist/components/snk-filter-checkbox-list.d.ts +11 -0
  52. package/dist/components/snk-filter-checkbox-list.js +68 -0
  53. package/dist/components/snk-filter-detail2.js +7 -0
  54. package/dist/components/snk-filter-item2.js +24 -13
  55. package/dist/components/snk-filter-modal-item2.js +3 -1
  56. package/dist/components/snk-filter-modal.js +14 -3
  57. package/dist/esm/{ConfigStorage-84abda58.js → ConfigStorage-9a086412.js} +1 -1
  58. package/dist/esm/{PersonalizedFilterUtils-49a5dcb7.js → PersonalizedFilterUtils-e2b38ef7.js} +1 -1
  59. package/dist/esm/{SnkFormConfigManager-655943d0.js → SnkFormConfigManager-709e68a2.js} +1 -1
  60. package/dist/esm/{filter-item-type.enum-5028ed3f.js → filter-item-type.enum-d45e026f.js} +1 -0
  61. package/dist/esm/index-a7d3d3f1.js +4 -0
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/sankhyablocks.js +1 -1
  64. package/dist/esm/snk-actions-button.entry.js +1 -1
  65. package/dist/esm/snk-application.entry.js +2 -2
  66. package/dist/esm/snk-crud.entry.js +1 -1
  67. package/dist/esm/snk-data-exporter.entry.js +1 -1
  68. package/dist/esm/{snk-data-unit-ca945bf5.js → snk-data-unit-ad5cf70c.js} +1 -1
  69. package/dist/esm/snk-data-unit.entry.js +1 -1
  70. package/dist/esm/snk-detail-view.entry.js +4 -4
  71. package/dist/esm/snk-filter-advanced-mode_2.entry.js +2 -2
  72. package/dist/esm/snk-filter-bar.entry.js +27 -4
  73. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  74. package/dist/esm/snk-filter-checkbox-list.entry.js +48 -0
  75. package/dist/esm/snk-filter-detail.entry.js +9 -2
  76. package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
  77. package/dist/esm/snk-filter-item.entry.js +25 -14
  78. package/dist/esm/snk-filter-modal-item.entry.js +5 -3
  79. package/dist/esm/snk-filter-modal.entry.js +16 -5
  80. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  81. package/dist/esm/snk-filter-number.entry.js +1 -1
  82. package/dist/esm/snk-filter-period.entry.js +1 -1
  83. package/dist/esm/snk-filter-search.entry.js +1 -1
  84. package/dist/esm/snk-form.entry.js +3 -3
  85. package/dist/esm/snk-grid-config.entry.js +2 -2
  86. package/dist/esm/snk-grid.entry.js +2 -2
  87. package/dist/esm/{snk-guides-viewer-746e2547.js → snk-guides-viewer-9c50ebea.js} +2 -2
  88. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  89. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  90. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  91. package/dist/esm/snk-simple-crud.entry.js +1 -1
  92. package/dist/sankhyablocks/{p-29529c8f.entry.js → p-01ba23cd.entry.js} +1 -1
  93. package/dist/sankhyablocks/{p-43b2aad5.js → p-057fad05.js} +1 -1
  94. package/dist/sankhyablocks/{p-c6800fd4.entry.js → p-1626c58f.entry.js} +1 -1
  95. package/dist/sankhyablocks/{p-6e32de4b.entry.js → p-1b7105ae.entry.js} +1 -1
  96. package/dist/sankhyablocks/{p-cb37982f.entry.js → p-20726710.entry.js} +1 -1
  97. package/dist/sankhyablocks/{p-8f307ef2.entry.js → p-29ffb7d7.entry.js} +1 -1
  98. package/dist/sankhyablocks/{p-a3fbded7.entry.js → p-2e1a8609.entry.js} +1 -1
  99. package/dist/sankhyablocks/{p-c78a80ae.entry.js → p-3ab6df3d.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-5eb3ac18.js → p-3fd145ac.js} +1 -1
  101. package/dist/sankhyablocks/{p-eb636e15.entry.js → p-41f8bfa3.entry.js} +1 -1
  102. package/dist/sankhyablocks/{p-d7665a57.entry.js → p-57196255.entry.js} +1 -1
  103. package/dist/sankhyablocks/{p-a9b6acf1.js → p-5cff2f60.js} +1 -1
  104. package/dist/sankhyablocks/p-6977a26c.entry.js +1 -0
  105. package/dist/sankhyablocks/{p-fc257290.entry.js → p-7e2ded86.entry.js} +1 -1
  106. package/dist/sankhyablocks/{p-c0931902.entry.js → p-8002dcd0.entry.js} +1 -1
  107. package/dist/sankhyablocks/p-84a53f61.entry.js +1 -0
  108. package/dist/sankhyablocks/{p-1a991d41.entry.js → p-97277eae.entry.js} +1 -1
  109. package/dist/sankhyablocks/{p-f3479d53.entry.js → p-9a2b18c4.entry.js} +1 -1
  110. package/dist/sankhyablocks/p-9be1dfd5.entry.js +1 -0
  111. package/dist/sankhyablocks/p-a037f5b4.entry.js +1 -0
  112. package/dist/sankhyablocks/p-aaa3ee68.entry.js +1 -0
  113. package/dist/sankhyablocks/{p-26ad62b9.entry.js → p-c758265f.entry.js} +1 -1
  114. package/dist/sankhyablocks/{p-fe49067d.entry.js → p-c8622597.entry.js} +1 -1
  115. package/dist/sankhyablocks/{p-210b4794.js → p-cd2a285d.js} +1 -1
  116. package/dist/sankhyablocks/p-d05d3e37.entry.js +1 -0
  117. package/dist/sankhyablocks/p-d6317851.entry.js +1 -0
  118. package/dist/sankhyablocks/{p-718ecd01.entry.js → p-df841828.entry.js} +1 -1
  119. package/dist/sankhyablocks/{p-a4401f5f.entry.js → p-e1aec599.entry.js} +1 -1
  120. package/dist/sankhyablocks/{p-1ae31937.entry.js → p-e45ecb8a.entry.js} +1 -1
  121. package/dist/sankhyablocks/{p-b54e06ca.js → p-fad0a721.js} +1 -1
  122. package/dist/sankhyablocks/{p-584d7212.js → p-ff1990ad.js} +1 -1
  123. package/dist/sankhyablocks/{p-0d5e8a37.entry.js → p-ff90e0e6.entry.js} +1 -1
  124. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  125. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.d.ts +27 -0
  126. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +2 -1
  127. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +2 -0
  128. package/dist/types/components.d.ts +29 -0
  129. package/package.json +1 -1
  130. package/react/components.d.ts +1 -0
  131. package/react/components.js +1 -0
  132. package/react/components.js.map +1 -1
  133. package/dist/sankhyablocks/p-25df73bf.entry.js +0 -1
  134. package/dist/sankhyablocks/p-2640ba03.entry.js +0 -1
  135. package/dist/sankhyablocks/p-993e27ad.entry.js +0 -1
  136. package/dist/sankhyablocks/p-c606c748.entry.js +0 -1
  137. package/dist/sankhyablocks/p-cd024328.entry.js +0 -1
  138. package/dist/sankhyablocks/p-d4c72815.entry.js +0 -1
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
- import { C as ConfigStorage } from './ConfigStorage-84abda58.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
5
5
  import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
6
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
6
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
7
7
  import { F as FilterOperand } from './index-ae591a44.js';
8
8
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
9
9
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
10
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-49a5dcb7.js';
10
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
11
11
  import './form-config-fetcher-24f43afd.js';
12
12
  import './DataFetcher-7814568f.js';
13
13
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
@@ -33,6 +33,8 @@ const buildFilter = (item) => {
33
33
  return buildNumber(item);
34
34
  case FilterItemType.PERSONALIZED:
35
35
  return buildPersonalized(item);
36
+ case FilterItemType.CHECK_BOX_LIST:
37
+ return buildCheckboxList(item);
36
38
  default:
37
39
  return undefined;
38
40
  }
@@ -65,6 +67,23 @@ function buildMultiList(item) {
65
67
  };
66
68
  }
67
69
  }
70
+ function buildCheckboxList(item) {
71
+ var _a;
72
+ const { id, value, props } = item;
73
+ const selectedOptionNames = Object.entries(value !== null && value !== void 0 ? value : {})
74
+ .filter(([_, valueChecked]) => valueChecked === true)
75
+ .map(([key, _]) => key);
76
+ const selectedOptionsObject = (_a = props.options) === null || _a === void 0 ? void 0 : _a.filter(option => selectedOptionNames.includes(option.name));
77
+ return { name: id, expression: buildCheckboxListExpression(selectedOptionsObject), params: [] };
78
+ }
79
+ function buildCheckboxListExpression(options) {
80
+ let expression = "";
81
+ options.forEach((option, index) => {
82
+ var _a;
83
+ expression += ` ${index > 0 ? ((_a = option.operand) !== null && _a !== void 0 ? _a : 'OR') : ''} ${option.expression}`;
84
+ });
85
+ return expression.trim();
86
+ }
68
87
  function parseMultiListValues(multiListValue) {
69
88
  var _a, _b;
70
89
  const value = (_b = (_a = multiListValue === null || multiListValue === void 0 ? void 0 : multiListValue.elements) !== null && _a !== void 0 ? _a : multiListValue === null || multiListValue === void 0 ? void 0 : multiListValue.members) !== null && _b !== void 0 ? _b : multiListValue;
@@ -534,8 +553,12 @@ const SnkFilterBar = class {
534
553
  const callbackOnApplyFilter = (filters) => {
535
554
  this.filterConfig = filters.map(this.normalizeItem).sort((a, b) => this._filtersComparator(a, b));
536
555
  };
556
+ let filtersConfigCopy = ObjectUtils.copy(this.filterConfig);
557
+ filtersConfigCopy = filtersConfigCopy.sort((itemA, itemB) => {
558
+ return itemA.originOrder - itemB.originOrder;
559
+ });
537
560
  const factoryParams = {
538
- filterConfig: ObjectUtils.copy(this.filterConfig),
561
+ filterConfig: filtersConfigCopy,
539
562
  configName: this.configName,
540
563
  onComplete: callbackOnApplyFilter,
541
564
  getMessage: (key, props) => this.getMessage(key, props),
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
 
6
6
  const SnkFilterBinarySelect = class {
@@ -0,0 +1,48 @@
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
+
5
+ const SnkFilterCheckboxList = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.valueChanged = createEvent(this, "valueChanged", 7);
9
+ this.config = undefined;
10
+ this.optionsList = [];
11
+ }
12
+ componentDidLoad() {
13
+ if (this._element) {
14
+ ElementIDUtils.addIDInfo(this._element, 'filterContentEditor');
15
+ }
16
+ }
17
+ handleToggleCheck(itemChanged, checked) {
18
+ var _a, _b;
19
+ let configValueMap = (_a = this.config.value) !== null && _a !== void 0 ? _a : {};
20
+ configValueMap[itemChanged.name] = checked;
21
+ this.config = Object.assign(Object.assign({}, this.config), { value: configValueMap });
22
+ this.valueChanged.emit((_b = this.config) === null || _b === void 0 ? void 0 : _b.value);
23
+ }
24
+ renderOptions() {
25
+ return this.optionsList.map(option => (h("ez-check", { label: option.label, compact: true, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
26
+ }
27
+ isChecked(itemName) {
28
+ var _a;
29
+ return (_a = this.config.value) === null || _a === void 0 ? void 0 : _a[itemName];
30
+ }
31
+ buidOptions() {
32
+ var _a, _b, _c;
33
+ const propsOptions = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.options) !== null && _c !== void 0 ? _c : [];
34
+ this.optionsList = [...propsOptions];
35
+ }
36
+ componentWillRender() {
37
+ this.buidOptions();
38
+ }
39
+ render() {
40
+ if (!this.config || this.config.type !== FilterItemType.CHECK_BOX_LIST) {
41
+ return undefined;
42
+ }
43
+ return (h("div", { class: 'ez-flex ez-flex--column' }, this.renderOptions()));
44
+ }
45
+ get _element() { return getElement(this); }
46
+ };
47
+
48
+ export { SnkFilterCheckboxList as snk_filter_checkbox_list };
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
5
5
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
6
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-49a5dcb7.js';
6
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
7
7
  import './index-ae591a44.js';
8
8
 
9
9
  const SnkFilterDetail = class {
@@ -55,6 +55,13 @@ const SnkFilterDetail = class {
55
55
  }
56
56
  };
57
57
  return snkFilterPersonalizedProps;
58
+ case FilterItemType.CHECK_BOX_LIST:
59
+ return {
60
+ tag: "snk-filter-checkbox-list",
61
+ props: {
62
+ onValueChanged: evt => this.config = Object.assign(Object.assign({}, this.config), { value: evt.detail })
63
+ }
64
+ };
58
65
  case FilterItemType.MULTI_LIST:
59
66
  return {
60
67
  tag: "snk-entity-list",
@@ -3,8 +3,8 @@ import { S as SelectedItemType } from './index-620ac460.js';
3
3
  import { UserInterface, JSUtils, ElementIDUtils, ApplicationContext, StringUtils, DataType } from '@sankhyalabs/core';
4
4
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
5
5
  import { b as FilterConfigType, c as FilterEntities, d as FilterUserConfigTypes } from './index-ae591a44.js';
6
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-49a5dcb7.js';
7
- import './filter-item-type.enum-5028ed3f.js';
6
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
7
+ import './filter-item-type.enum-d45e026f.js';
8
8
 
9
9
  const ICON_MODES = {
10
10
  [UserInterface.SHORTTEXT]: 'text',
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { FloatingManager, DateUtils, ElementIDUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
5
5
 
6
6
  const SnkFilterItem = class {
@@ -128,7 +128,7 @@ const SnkFilterItem = class {
128
128
  }
129
129
  }
130
130
  getLabel(isTooltipLabel = false) {
131
- var _a;
131
+ var _a, _b;
132
132
  const { type, value, label, props, groupedItems = [] } = this.config;
133
133
  if (value || groupedItems.length) {
134
134
  if (type === FilterItemType.BINARY_SELECT) {
@@ -189,18 +189,15 @@ const SnkFilterItem = class {
189
189
  }
190
190
  if (type === FilterItemType.MULTI_LIST) {
191
191
  const selectedOptions = ((_a = value.elements) !== null && _a !== void 0 ? _a : value).filter(item => item === null || item === void 0 ? void 0 : item.check);
192
- const checkedAmount = selectedOptions.length;
193
- if (checkedAmount === 0) {
194
- return `${label}`;
195
- }
196
- if (checkedAmount > 1) {
197
- if (isTooltipLabel) {
198
- const selectedOptionsDescrptions = selectedOptions.map(item => item.label);
199
- return `${label}: ${selectedOptionsDescrptions.join(',')}`;
200
- }
201
- return `${label}: ${checkedAmount} ${this.getMessage('snkFilterBar.multiListToltip')}`;
202
- }
203
- return `${label}: ${selectedOptions[0].label}`;
192
+ return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
193
+ }
194
+ if (type === FilterItemType.CHECK_BOX_LIST) {
195
+ const selectedValues = Object.entries(value !== null && value !== void 0 ? value : {})
196
+ .filter(([_, value]) => value === true)
197
+ .map(([key, _]) => key);
198
+ const options = (_b = props.options) !== null && _b !== void 0 ? _b : [];
199
+ const selectedOptions = options.filter(option => selectedValues.includes(option.name));
200
+ return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
204
201
  }
205
202
  if (type === FilterItemType.NUMBER && props.variation === FilterNumberVariation.INTERVAL) {
206
203
  const { start, end } = value;
@@ -218,6 +215,20 @@ const SnkFilterItem = class {
218
215
  }
219
216
  return label;
220
217
  }
218
+ getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel) {
219
+ const checkedAmount = selectedOptions.length;
220
+ if (checkedAmount === 0) {
221
+ return `${label}`;
222
+ }
223
+ if (checkedAmount > 1) {
224
+ if (isTooltipLabel) {
225
+ const selectedOptionsDescrptions = selectedOptions.map(item => item.label);
226
+ return `${label}: ${selectedOptionsDescrptions.join(',')}`;
227
+ }
228
+ return `${label}: ${checkedAmount} ${this.getMessage('snkFilterBar.multiListToltip')}`;
229
+ }
230
+ return `${label}: ${selectedOptions[0].label}`;
231
+ }
221
232
  calculateActiveCount(groupedItems) {
222
233
  return groupedItems.reduce((total, item) => {
223
234
  if (!!item.visible)
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
- import { C as ConfigStorage } from './ConfigStorage-84abda58.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
6
6
  import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
7
7
  import './form-config-fetcher-24f43afd.js';
8
8
  import './DataFetcher-7814568f.js';
@@ -42,6 +42,8 @@ const SnkFilterModalItem = class {
42
42
  return { tag: "snk-filter-number", props };
43
43
  case FilterItemType.PERSONALIZED:
44
44
  return this.buildSnkFilterPersonalizedProps();
45
+ case FilterItemType.CHECK_BOX_LIST:
46
+ return { tag: "snk-filter-checkbox-list", props };
45
47
  case FilterItemType.MULTI_LIST:
46
48
  return { tag: "snk-entity-list", props: { maxHeightList: "640px", rightListSlotBuilder: item => this.buildRightSlot(item) } };
47
49
  }
@@ -65,7 +67,7 @@ const SnkFilterModalItem = class {
65
67
  this.filterItem = Object.assign(Object.assign({}, this.filterItem), { visible: newValue > 0, value: newValue, groupedItems: data.items });
66
68
  }
67
69
  else {
68
- this.filterItem = Object.assign(Object.assign({}, this.filterItem), { value: this.filterItem.type === FilterItemType.SEARCH ? data : newValue, visible: this.isVisible(newValue) });
70
+ this.filterItem = Object.assign(Object.assign({}, this.filterItem), { value: this.filterItem.type === (FilterItemType.SEARCH || FilterItemType.CHECK_BOX_LIST) ? data : newValue, visible: this.isVisible(newValue) });
69
71
  }
70
72
  }
71
73
  handleDeleteFilter(filter, filterItemType) {
@@ -2,9 +2,9 @@ import { r as registerInstance, h } from './index-a7d3d3f1.js';
2
2
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
3
3
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
5
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
5
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
6
6
  import { ObjectUtils } from '@sankhyalabs/core';
7
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-49a5dcb7.js';
7
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
8
8
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
9
9
  import './index-ae591a44.js';
10
10
 
@@ -124,10 +124,15 @@ const SnkFilterModal = class {
124
124
  const index = filterListCopy.findIndex(item => item.id === filterItem.id);
125
125
  filterListCopy.splice(index, 1, filterItemCopy);
126
126
  this.filters = ObjectUtils.copy(filterListCopy);
127
+ return;
127
128
  }
128
- else {
129
- this.filters.find(filter => filter.id === filterItem.id).value = undefined;
129
+ if (FilterItemType.CHECK_BOX_LIST === filterItem.type) {
130
+ const filterListCopy = ObjectUtils.copy(this.filters);
131
+ filterListCopy.find(filter => filter.id === filterItem.id).value = undefined;
132
+ this.filters = ObjectUtils.copy(filterListCopy);
133
+ return;
130
134
  }
135
+ this.filters.find(filter => filter.id === filterItem.id).value = undefined;
131
136
  }
132
137
  uncheckFilterValues(valueList) {
133
138
  valueList.forEach(value => {
@@ -176,11 +181,17 @@ const SnkFilterModal = class {
176
181
  getIformedFiltersCount(listItems) {
177
182
  let countInformedItens = 0;
178
183
  listItems.forEach(item => {
179
- var _a, _b, _c, _d, _e;
184
+ var _a, _b, _c, _d, _e, _f;
180
185
  if (FilterItemType.MULTI_LIST === item.type) {
181
186
  countInformedItens += (_e = (_d = (_c = ((_b = (_a = item.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : item.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
182
187
  return;
183
188
  }
189
+ if (FilterItemType.CHECK_BOX_LIST === item.type) {
190
+ countInformedItens += Object.entries((_f = item.value) !== null && _f !== void 0 ? _f : {})
191
+ .filter(([_, value]) => value === true)
192
+ .map(([key, _]) => key).length;
193
+ return;
194
+ }
184
195
  if (item.groupedItems != undefined) {
185
196
  countInformedItens = item.groupedItems.filter(item => item.visible).length;
186
197
  return;
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
 
5
5
  const SnkFilterMultiSelect = class {
6
6
  constructor(hostRef) {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
 
6
6
  const SnkFilterPeriod = class {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
 
5
5
  const SnkFilterSearch = class {
6
6
  constructor(hostRef) {
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-655943d0.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-709e68a2.js';
4
4
  import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
5
- import './ConfigStorage-84abda58.js';
5
+ import './ConfigStorage-9a086412.js';
6
6
  import './form-config-fetcher-24f43afd.js';
7
7
  import './DataFetcher-7814568f.js';
8
8
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
9
9
  import './PrintUtils-3e4ff0f5.js';
10
- import './filter-item-type.enum-5028ed3f.js';
10
+ import './filter-item-type.enum-d45e026f.js';
11
11
 
12
12
  const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
13
13
 
@@ -2,13 +2,13 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode';
5
- import { C as ConfigStorage } from './ConfigStorage-84abda58.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
6
6
  import { O as ORDER_VALUES } from './constants-8457af36.js';
7
7
  import './form-config-fetcher-24f43afd.js';
8
8
  import './DataFetcher-7814568f.js';
9
9
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
10
  import './PrintUtils-3e4ff0f5.js';
11
- import './filter-item-type.enum-5028ed3f.js';
11
+ import './filter-item-type.enum-d45e026f.js';
12
12
 
13
13
  const snkGridConfigCss = ".sc-snk-grid-config-h{--snk-grid-config__footer--padding-top:var(--space--medium, 12px);--snk-grid-config__main--padding-right:var(--space--medium, 12px);--snk-grid-config__tabselector-container--padding:var(--space--medium, 12px);--snk-grid-config__button-close--padding-left:var(--space--medium, 12px);--snk-grid-config__title--color:var(--title--primary, #2B3A54);--snk-grid-config__title--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__title--font-size:var(--title--large, 20px);--snk-grid-config__title--font-weight:var(--text-weight--extra-large, 700);--snk-grid-config__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__subtitle--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__group--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-weight:var(--text-weight--large, 600);--snk-grid-config__group--padding-bottom:var(--space-small, 6px);--snk-grid-config__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-grid-config__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-grid-config__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-grid-config__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-grid-config__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-grid-config__scrollbar--width:var(--space--medium, 12px);display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.sc-snk-grid-config-h{width:359px;max-width:359px}}.padding-right--medium.sc-snk-grid-config{padding-right:var(--space--medium)}ez-list.sc-snk-grid-config{height:100%}.height-calc.sc-snk-grid-config{max-height:calc(100% - 24px)}.grid-config__footer.sc-snk-grid-config{display:flex;justify-content:flex-end;width:100%;padding-top:var(--snk-grid-config__footer--padding-top)}.hidden.sc-snk-grid-config{display:none}.tabselector-container.sc-snk-grid-config{padding:var(--snk-grid-config__tabselector-container--padding) 0}.button-close.sc-snk-grid-config{padding-left:var(--snk-grid-config__button-close--padding-left)}.title-container.sc-snk-grid-config{display:flex;justify-content:space-between;align-items:center;width:100%}.title.sc-snk-grid-config{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-grid-config__title--color);font-size:var(--snk-grid-config__title--font-size);font-family:var(--snk-grid-config__title--font-family);font-weight:var(--snk-grid-config__title--font-weight)}.subtitle.sc-snk-grid-config{color:var(--text--primary);font-size:var(--snk-grid-config__subtitle--font-size);font-family:var(--snk-grid-config__subtitle--font-family)}.grid-config__main.sc-snk-grid-config{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-grid-config__scrollbar--color-clicked) var(--snk-grid-config__scrollbar--color-background);padding-right:var(--snk-grid-config__main--padding-right)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar{width:var(--snk-grid-config__scrollbar--width);max-width:var(--snk-grid-config__scrollbar--width);min-width:var(--snk-grid-config__scrollbar--width);background-color:var(--snk-grid-config__scrollbar--color-background)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-track{background-color:var(--snk-grid-config__scrollbar--color-background);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb{background-color:var(--snk-grid-config__scrollbar--color-default);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:hover,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-grid-config__scrollbar--color-hover)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:active,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-grid-config__scrollbar--color-clicked)}.group-name.sc-snk-grid-config{font-family:var(--snk-grid-config__group--font-family);font-size:var(--snk-grid-config__group--font-size);font-weight:var(--snk-grid-config__group--font-weight);padding-bottom:var(--snk-grid-config__group--padding-bottom)}";
14
14
 
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElem
2
2
  import { SortMode, ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
4
  import { T as TaskbarElement } from './taskbar-elements-0a6b8b95.js';
5
- import { C as ConfigStorage } from './ConfigStorage-84abda58.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
6
6
  import { P as PresentationMode } from './index-1564817d.js';
7
7
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
8
8
  import { s as store } from './index-bdf75557.js';
@@ -11,7 +11,7 @@ import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
11
11
  import './form-config-fetcher-24f43afd.js';
12
12
  import './DataFetcher-7814568f.js';
13
13
  import './PrintUtils-3e4ff0f5.js';
14
- import './filter-item-type.enum-5028ed3f.js';
14
+ import './filter-item-type.enum-d45e026f.js';
15
15
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
16
16
  import './PreloadManager-c1c2f2b4.js';
17
17
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-a7d3d3f1.js';
2
2
  import { Action, ElementIDUtils } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-655943d0.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-709e68a2.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
6
6
  import { T as TaskbarElement } from './taskbar-elements-0a6b8b95.js';
@@ -13,7 +13,7 @@ import '@sankhyalabs/ezui/dist/collection/utils/constants';
13
13
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
14
14
  import './dataunit-fetcher-aa70ea72.js';
15
15
  import './PreloadManager-c1c2f2b4.js';
16
- import './filter-item-type.enum-5028ed3f.js';
16
+ import './filter-item-type.enum-d45e026f.js';
17
17
  import './form-config-fetcher-24f43afd.js';
18
18
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
19
19
 
@@ -1,13 +1,13 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-746e2547.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-9c50ebea.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
- import './SnkFormConfigManager-655943d0.js';
5
- import './ConfigStorage-84abda58.js';
4
+ import './SnkFormConfigManager-709e68a2.js';
5
+ import './ConfigStorage-9a086412.js';
6
6
  import './form-config-fetcher-24f43afd.js';
7
7
  import './DataFetcher-7814568f.js';
8
8
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
9
9
  import './PrintUtils-3e4ff0f5.js';
10
- import './filter-item-type.enum-5028ed3f.js';
10
+ import './filter-item-type.enum-d45e026f.js';
11
11
  import '@sankhyalabs/ezui/dist/collection/utils/form';
12
12
  import './taskbar-processor-94402e6e.js';
13
13
  import './taskbar-elements-0a6b8b95.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils, UserInterface, ApplicationContext } from '@sankhyalabs/core';
3
- import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
3
+ import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
6
6
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
@@ -1,11 +1,11 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ObjectUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-49a5dcb7.js';
4
- import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-84abda58.js';
3
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
4
+ import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-9a086412.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
6
  import { a as FilterGroupCondition } from './index-ae591a44.js';
7
7
  import { s as store } from './index-bdf75557.js';
8
- import './filter-item-type.enum-5028ed3f.js';
8
+ import './filter-item-type.enum-d45e026f.js';
9
9
  import './form-config-fetcher-24f43afd.js';
10
10
  import './DataFetcher-7814568f.js';
11
11
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
@@ -10,7 +10,7 @@ import '@sankhyalabs/ezui/dist/collection/utils/constants';
10
10
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
11
  import { I as InMemoryLoader } from './dataunit-fetcher-aa70ea72.js';
12
12
  import './PreloadManager-c1c2f2b4.js';
13
- import './filter-item-type.enum-5028ed3f.js';
13
+ import './filter-item-type.enum-d45e026f.js';
14
14
  import './form-config-fetcher-24f43afd.js';
15
15
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
16
16
  import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-44494b0e.js';
@@ -1 +1 @@
1
- import{r as i,c as t,h as s,g as e}from"./p-d2d301a6.js";import{ElementIDUtils as r}from"@sankhyalabs/core";import{F as h}from"./p-584d7212.js";import{E as l}from"./p-1a68fb59.js";import{F as a}from"./p-fa80e546.js";const n=class{constructor(s){i(this,s),this.valueChanged=t(this,"valueChanged",7),this._startIntervalLabel="Inicial",this._endIntervalLabel="Final",this.config=void 0,this.getMessage=void 0,this.value=void 0,this.presentationMode=l.CHIP}ezChangeListener(i){if(this.getVariation()===a.INTERVAL){const i=this._startInterval.value,t=this._endInterval.value;return this.value=i||t?{start:i,end:t}:void 0,void this.valueChanged.emit(this.value)}this.value=i.detail,this.valueChanged.emit(this.value)}async show(){this.getVariation()!==a.INTERVAL?this._numberElement.setFocus():this._startInterval.setFocus()}getIntervalValue(i){const t=this.value?this.value[i]:null;return null!=t?t:null}buildLabel(){if(this.presentationMode===l.CHIP)return s("label",{class:"ez-text ez-text--medium ez-text--primary ez-margin--medium"},"até")}getVariation(){var i,t;return null!==(t=null===(i=this.config.props)||void 0===i?void 0:i.variation)&&void 0!==t?t:a.DEFAULT}componentWillLoad(){this.getMessage&&(this._startIntervalLabel=this.getMessage("snkFilterBar.labelStart"),this._endIntervalLabel=this.getMessage("snkFilterBar.labelEnd"))}componentDidLoad(){this._element&&r.addIDInfo(this._element,"filterContentEditor")}render(){var i,t,e;if(this.config&&this.config.type===h.NUMBER)return this.getVariation()===a.INTERVAL?s("div",{class:"ez-col ez-col--nowrap"},s("ez-number-input",{id:`${this.config.id}_start`,class:this.presentationMode===l.MODAL?"ez-padding--small":"",label:this._startIntervalLabel,ref:i=>this._startInterval=i,value:this.getIntervalValue("start"),precision:null===(i=this.config.props)||void 0===i?void 0:i.precision}),this.buildLabel(),s("ez-number-input",{id:`${this.config.id}_end`,class:this.presentationMode===l.MODAL?"ez-padding--small":"",label:this._endIntervalLabel,ref:i=>this._endInterval=i,value:this.getIntervalValue("end"),precision:null===(t=this.config.props)||void 0===t?void 0:t.precision})):s("ez-number-input",{id:this.config.id,ref:i=>this._numberElement=i,label:this.config.label,value:this.config.value,precision:null===(e=this.config.props)||void 0===e?void 0:e.precision})}get _element(){return e(this)}};export{n as snk_filter_number}
1
+ import{r as i,c as t,h as s,g as e}from"./p-d2d301a6.js";import{ElementIDUtils as r}from"@sankhyalabs/core";import{F as h}from"./p-ff1990ad.js";import{E as a}from"./p-1a68fb59.js";import{F as l}from"./p-fa80e546.js";const n=class{constructor(s){i(this,s),this.valueChanged=t(this,"valueChanged",7),this._startIntervalLabel="Inicial",this._endIntervalLabel="Final",this.config=void 0,this.getMessage=void 0,this.value=void 0,this.presentationMode=a.CHIP}ezChangeListener(i){if(this.getVariation()===l.INTERVAL){const i=this._startInterval.value,t=this._endInterval.value;return this.value=i||t?{start:i,end:t}:void 0,void this.valueChanged.emit(this.value)}this.value=i.detail,this.valueChanged.emit(this.value)}async show(){this.getVariation()!==l.INTERVAL?this._numberElement.setFocus():this._startInterval.setFocus()}getIntervalValue(i){const t=this.value?this.value[i]:null;return null!=t?t:null}buildLabel(){if(this.presentationMode===a.CHIP)return s("label",{class:"ez-text ez-text--medium ez-text--primary ez-margin--medium"},"até")}getVariation(){var i,t;return null!==(t=null===(i=this.config.props)||void 0===i?void 0:i.variation)&&void 0!==t?t:l.DEFAULT}componentWillLoad(){this.getMessage&&(this._startIntervalLabel=this.getMessage("snkFilterBar.labelStart"),this._endIntervalLabel=this.getMessage("snkFilterBar.labelEnd"))}componentDidLoad(){this._element&&r.addIDInfo(this._element,"filterContentEditor")}render(){var i,t,e;if(this.config&&this.config.type===h.NUMBER)return this.getVariation()===l.INTERVAL?s("div",{class:"ez-col ez-col--nowrap"},s("ez-number-input",{id:`${this.config.id}_start`,class:this.presentationMode===a.MODAL?"ez-padding--small":"",label:this._startIntervalLabel,ref:i=>this._startInterval=i,value:this.getIntervalValue("start"),precision:null===(i=this.config.props)||void 0===i?void 0:i.precision}),this.buildLabel(),s("ez-number-input",{id:`${this.config.id}_end`,class:this.presentationMode===a.MODAL?"ez-padding--small":"",label:this._endIntervalLabel,ref:i=>this._endInterval=i,value:this.getIntervalValue("end"),precision:null===(t=this.config.props)||void 0===t?void 0:t.precision})):s("ez-number-input",{id:this.config.id,ref:i=>this._numberElement=i,label:this.config.label,value:this.config.value,precision:null===(e=this.config.props)||void 0===e?void 0:e.precision})}get _element(){return e(this)}};export{n as snk_filter_number}
@@ -1 +1 @@
1
- import{DataType as r,NumberUtils as t,DateUtils as e,UserInterface as i}from"@sankhyalabs/core";import{F as a}from"./p-584d7212.js";import{F as n}from"./p-933c0c0b.js";class l{static buildFilterExpression(r){var t;if(null==r)return;let e=null!==(t=this.buildVariableParameterValue(r))&&void 0!==t?t:void 0,i=r.expression||"",a="'";switch(r.paramVariable&&(a=""),r.operand){case"IN":i+=` ${n[r.operand]} (${e})`;break;case"NULL":case"NOT_NULL":i+=` IS ${n[r.operand]}`;break;case"LIKE":i+=` LIKE '%${e}%'`;break;case"START_WITH":i+=` LIKE '${e}%'`;break;case"FINISHED_WITH":i+=` LIKE '%${e}'`;break;default:r.operand&&(i+=` ${n[r.operand]}`),["string","number"].includes(typeof e)&&(e=isNaN(e)?`${a}${e}${a}`:e,i+=` ${e}`)}return i}static buildVariableParameterValue(e){var a;if(null!=e){if(e.paramVariable)return this.proccessVarialbeParameter(e);if(e.operand!==n.NULL&&"NOT_NULL"!==e.operand){let n=e.value;const l=e.type;return i.SEARCH!==e.userInterface&&e.userInterface!==i.OPTIONSELECTOR&&r.OBJECT!=l||(n=null!==(a=null==n?void 0:n.value)&&void 0!==a?a:n),r.NUMBER==l&&null!=n?(n=t.stringToNumber(n),this.checkIsValidNumber(n)):r.DATE==l?n=this.convertDataValue(n):r.BOOLEAN==l&&(n=n?"S":"N"),n}return e.operand}}static checkIsValidNumber(r){if(isNaN(r))throw new Error("O valor informado não é um número válido.")}static proccessVarialbeParameter(r){if(null!=r.systemConfig){const t=r.systemConfig;return`?:{entidade=${t.entity||""};campo=${t.fieldName||""}}`}if(null!=r.userConfig){const t=r.userConfig;return`?:{desc=${t.description||""};tipo=${t.type||""}}`}return`?:{entidade=${r.entityName||""};campo=${r.fieldName||""}}`}static convertDataValue(r){return"string"==typeof r&&(r=new Date(r)),e.formatDate(r)}static buildGroupExpression(r){var t,e;if(!(null===(t=null==r?void 0:r.items)||void 0===t?void 0:t.length))return"";const i=r.items.map((r=>this.buildFilterExpression(r))).join(` ${r.operand} `);if((null===(e=null==r?void 0:r.childrenGroups)||void 0===e?void 0:e.length)>0){const t=r.childrenGroups.map((r=>this.buildGroupExpression(r))).join(` ${r.operand} `);return`(${i} ${r.operand} (${t}))`}return`(${i})`}static validateFields(r){const t=this.buildPlainExpressionItems(r);for(const r of t)if(!this.validateExpressionItem(r))return!1;return!0}static buildPlainExpressionItems(r){const{items:t=[],childrenGroups:e=[]}=r||{},i=r=>r.reduce(((r,t)=>{var e;return t.items&&(r=r.concat(t.items)),(null===(e=t.childrenGroups)||void 0===e?void 0:e.length)&&(r=r.concat(i(t.childrenGroups))),r}),[]);return t.concat(i(e))}static validateExpressionItem(r){return Object.entries({fieldName:r=>!!r,value:(r,t)=>!!t||null!=r,operand:r=>!!r}).every((t=>{const[e,i]=t,a=r.paramVariable||"SWITCH"===r.userInterface||["NULL","NOT_NULL"].includes(r.operand);return i(r[e],a)}))}static getNormalizedValue(t,e){return t.reduce(((t,e,i)=>(e.dataType!==r.BOOLEAN||null!=t&&null!=t[i]||((t=t&&!Array.isArray(t)?[t]:t||[])[i]=!1),t)),e)}static validateVariableValues(t,e){if(!t)return!0;let i=e||t.value,n=!0;if(t.type===a.PERSONALIZED){const e=(t.groupedItems||[]).filter((r=>r.visible)).filter((r=>{var t,e,i;return!!(null===(i=null===(e=null===(t=r.props)||void 0===t?void 0:t.personalizedFilter)||void 0===e?void 0:e.parameters)||void 0===i?void 0:i.length)})),a=e.flatMap((r=>{var t;return null===(t=r.props.personalizedFilter)||void 0===t?void 0:t.parameters})),l=e.flatMap((t=>t.props.personalizedFilter.parameters.flatMap(((e,i)=>t.value?(void 0!==t.value[i]||e.dataType!==r.BOOLEAN)&&t.value[i]:null))));i=this.getNormalizedValue(a,i),n=a.length===l.length&&l.every((r=>null!=r))}return n}static buildVariableParameters(r){const t=this.buildPlainExpressionItems(r),e=[];for(const r of t)r.paramVariable&&e.push({entityName:r.entityName,fieldName:r.fieldName});return e}}export{l as P}
1
+ import{DataType as r,NumberUtils as t,DateUtils as e,UserInterface as i}from"@sankhyalabs/core";import{F as a}from"./p-ff1990ad.js";import{F as n}from"./p-933c0c0b.js";class l{static buildFilterExpression(r){var t;if(null==r)return;let e=null!==(t=this.buildVariableParameterValue(r))&&void 0!==t?t:void 0,i=r.expression||"",a="'";switch(r.paramVariable&&(a=""),r.operand){case"IN":i+=` ${n[r.operand]} (${e})`;break;case"NULL":case"NOT_NULL":i+=` IS ${n[r.operand]}`;break;case"LIKE":i+=` LIKE '%${e}%'`;break;case"START_WITH":i+=` LIKE '${e}%'`;break;case"FINISHED_WITH":i+=` LIKE '%${e}'`;break;default:r.operand&&(i+=` ${n[r.operand]}`),["string","number"].includes(typeof e)&&(e=isNaN(e)?`${a}${e}${a}`:e,i+=` ${e}`)}return i}static buildVariableParameterValue(e){var a;if(null!=e){if(e.paramVariable)return this.proccessVarialbeParameter(e);if(e.operand!==n.NULL&&"NOT_NULL"!==e.operand){let n=e.value;const l=e.type;return i.SEARCH!==e.userInterface&&e.userInterface!==i.OPTIONSELECTOR&&r.OBJECT!=l||(n=null!==(a=null==n?void 0:n.value)&&void 0!==a?a:n),r.NUMBER==l&&null!=n?(n=t.stringToNumber(n),this.checkIsValidNumber(n)):r.DATE==l?n=this.convertDataValue(n):r.BOOLEAN==l&&(n=n?"S":"N"),n}return e.operand}}static checkIsValidNumber(r){if(isNaN(r))throw new Error("O valor informado não é um número válido.")}static proccessVarialbeParameter(r){if(null!=r.systemConfig){const t=r.systemConfig;return`?:{entidade=${t.entity||""};campo=${t.fieldName||""}}`}if(null!=r.userConfig){const t=r.userConfig;return`?:{desc=${t.description||""};tipo=${t.type||""}}`}return`?:{entidade=${r.entityName||""};campo=${r.fieldName||""}}`}static convertDataValue(r){return"string"==typeof r&&(r=new Date(r)),e.formatDate(r)}static buildGroupExpression(r){var t,e;if(!(null===(t=null==r?void 0:r.items)||void 0===t?void 0:t.length))return"";const i=r.items.map((r=>this.buildFilterExpression(r))).join(` ${r.operand} `);if((null===(e=null==r?void 0:r.childrenGroups)||void 0===e?void 0:e.length)>0){const t=r.childrenGroups.map((r=>this.buildGroupExpression(r))).join(` ${r.operand} `);return`(${i} ${r.operand} (${t}))`}return`(${i})`}static validateFields(r){const t=this.buildPlainExpressionItems(r);for(const r of t)if(!this.validateExpressionItem(r))return!1;return!0}static buildPlainExpressionItems(r){const{items:t=[],childrenGroups:e=[]}=r||{},i=r=>r.reduce(((r,t)=>{var e;return t.items&&(r=r.concat(t.items)),(null===(e=t.childrenGroups)||void 0===e?void 0:e.length)&&(r=r.concat(i(t.childrenGroups))),r}),[]);return t.concat(i(e))}static validateExpressionItem(r){return Object.entries({fieldName:r=>!!r,value:(r,t)=>!!t||null!=r,operand:r=>!!r}).every((t=>{const[e,i]=t,a=r.paramVariable||"SWITCH"===r.userInterface||["NULL","NOT_NULL"].includes(r.operand);return i(r[e],a)}))}static getNormalizedValue(t,e){return t.reduce(((t,e,i)=>(e.dataType!==r.BOOLEAN||null!=t&&null!=t[i]||((t=t&&!Array.isArray(t)?[t]:t||[])[i]=!1),t)),e)}static validateVariableValues(t,e){if(!t)return!0;let i=e||t.value,n=!0;if(t.type===a.PERSONALIZED){const e=(t.groupedItems||[]).filter((r=>r.visible)).filter((r=>{var t,e,i;return!!(null===(i=null===(e=null===(t=r.props)||void 0===t?void 0:t.personalizedFilter)||void 0===e?void 0:e.parameters)||void 0===i?void 0:i.length)})),a=e.flatMap((r=>{var t;return null===(t=r.props.personalizedFilter)||void 0===t?void 0:t.parameters})),l=e.flatMap((t=>t.props.personalizedFilter.parameters.flatMap(((e,i)=>t.value?(void 0!==t.value[i]||e.dataType!==r.BOOLEAN)&&t.value[i]:null))));i=this.getNormalizedValue(a,i),n=a.length===l.length&&l.every((r=>null!=r))}return n}static buildVariableParameters(r){const t=this.buildPlainExpressionItems(r),e=[];for(const r of t)r.paramVariable&&e.push({entityName:r.entityName,fieldName:r.fieldName});return e}}export{l as P}
@@ -1 +1 @@
1
- import{r as i,c as t,h as s,F as e,g as r}from"./p-d2d301a6.js";import{SortMode as n,ElementIDUtils as a,ApplicationContext as o,DataType as d}from"@sankhyalabs/core";import{UserInterface as h}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{T as l}from"./p-c9841939.js";import{C as c}from"./p-a9b6acf1.js";import{P as u}from"./p-5534e08c.js";import{T as g}from"./p-c2beb95c.js";import{s as v}from"./p-6dc031de.js";import{S as m}from"./p-094c30cb.js";import{SelectionMode as f}from"@sankhyalabs/core/dist/dataunit/DataUnit";import"./p-e47d966c.js";import"./p-88039a7f.js";import"./p-8d884fab.js";import"./p-584d7212.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource";import"./p-c22c1d8e.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";const T=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._topTaskbarProcessor=new g({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new g({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER","ACTIONS_BUTTON","MORE_OPTIONS"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","ATTACH","REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.detail.unselected":["REFRESH","MORE_OPTIONS"],"snkGridHeaderTaskbar.detail.selected":["UPDATE","ATTACH","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this._showSnkFilterBar=!0,this.columnFilterDataSource=new m,this.configName=void 0,this.resourceID=void 0,this.selectionToastConfig=void 0,this.actionsList=void 0,this.isDetail=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=u.PRIMARY,this.messagesBuilder=void 0,this.useEnterLikeTab=!1,this.recordsValidator=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0,this.gridHeaderCustomSlotId="GRID_HEADER_CUSTOM_ELEMENTS",this.topTaskbarCustomSlotId="GRID_TASKBAR_CUSTOM_ELEMENTS"}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}async reloadFilterBar(){var i;null===(i=this._snkFilterBar)||void 0===i||i.reload()}async getFilterBar(){return this._snkFilterBar}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i,this.assertDefaultSorting()}assertDefaultSorting(){this._gridConfig&&this._dataUnit&&(this._dataUnit.defaultSorting=this._gridConfig.columns.filter((i=>null!=i.ascending)).sort(((i,t)=>i.orderIndex-t.orderIndex)).map((({name:i,ascending:t})=>{const{dataType:s}=this._dataUnit.getField(i);return{field:i,dataType:s,mode:t?n.ASC:n.DESC}})))}loadConfig(){c.loadGridConfig(this.configName,this.resourceID).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}gridConfigChangeHandler(i){c.saveGridConfig(i.detail,this.configName,this.resourceID),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i){const t=[];return null==i||i.forEach((i=>{var s,e;if(i.hidden&&"RECDESP"!==i.name)return;const r=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(i.name);if(t.push({label:i.label,id:i.name,width:i.width,type:null==r?void 0:r.dataType,userInterface:null==r?void 0:r.userInterface}),null!=(null===(e=null==r?void 0:r.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const i=r.properties.mergedFrom;t.push({label:r.properties.DESCRIPTIONENTITY,id:`${i?i+".":""}${r.properties.ENTITYNAME}.${r.properties.DESCRIPTIONFIELD}`,width:200,type:d.TEXT,userInterface:h.LONGTEXT})}})),t||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i;const t=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo()),s={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:async()=>{var i;const t=await(null===(i=this._grid)||void 0===i?void 0:i.getColumnsState());return this.buildColumnsMetadata(t)},getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>t||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};v.set("exporterProviders",Object.assign(Object.assign({},v.get("exporterProviders")),{[this.configName]:s}))}addElementID(){a.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}finshLoading(){this.assertDefaultSorting(),this.addElementID(),null!=this.columnFilterDataSource&&(this.columnFilterDataSource.setApplication(this._application),this.columnFilterDataSource.setDataUnit(this._dataUnit))}componentWillLoad(){this._application=o.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?this.finshLoading():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.finshLoading()})),this.messagesBuilder||(this.messagesBuilder=this._snkDataUnit.messagesBuilder),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail})),this._snkDataUnit.addEventListener("cancelEdition",(()=>{var i;(null===(i=this._dataState)||void 0===i?void 0:i.recordsIsEmpty)&&this._dataUnit.clearSelection()}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push(l.CLONE,"ATTACH"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}getInvisibleButtons(){let i=[];return this._dataUnit&&0!==this._dataUnit.records.length||i.push("DATA_EXPORTER"),this._dataState&&this._dataState.selectionInfo.mode===f.ALL_RECORDS&&i.push("ACTIONS_BUTTON"),i}componentWillRender(){var i;const t=this.getInvisibleButtons();let s;s=this._dataState&&(null===(i=this._dataState.selectionInfo)||void 0===i?void 0:i.length)?this.isDetail?"snkGridHeaderTaskbar.detail.selected":"snkGridHeaderTaskbar.selected":this.isDetail?"snkGridHeaderTaskbar.detail.unselected":"snkGridHeaderTaskbar.unselected",this._headerTaskbarProcessor.process(s,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),t),this._topTaskbarProcessor.process(this.getTopTaskBarId(),this.taskbarManager,this._dataState,void 0,t),this.dataExporterProviderStore()}getTopTaskBarId(){var i;const t=this.presentationMode===u.SECONDARY?".secondary":"";return(null===(i=this._dataState)||void 0===i?void 0:i.isDirty)?`snkGridTopTaskbar.finish_edition${t}`:`snkGridTopTaskbar.regular${t}`}getPrimaryButton(){return this.presentationMode===u.PRIMARY?"INSERT":""}getActionsList(){if(null!=this.taskbarManager&&null!=this.taskbarManager.getMoreOptions){const i=this.getTopTaskBarId();return this.taskbarManager.getMoreOptions(i,this.configName,this._dataState,this.actionsList)}return this.actionsList}handleFilterConfigUpdated(i){this._showSnkFilterBar=!!i.length&&(1!==i.length||"PERSONALIZED_FILTER_GROUP"!==i[0].id||i[0].groupedItems.length>0)}render(){if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},this._showSnkFilterBar&&s(e,null,s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName,messagesBuilder:this.messagesBuilder,resourceID:this.resourceID,onConfigUpdated:i=>this.handleFilterConfigUpdated(i.detail)}),s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"})),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,messagesBuilder:this.messagesBuilder,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton(),resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:this.topTaskbarCustomSlotId},s("slot",{name:this.topTaskbarCustomSlotId}))),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===u.SECONDARY?"snk-grid-container__without-shadow ":"")+"snk-grid__table","data-element-id":"embedded",dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,columnfilterDataSource:this.columnFilterDataSource,selectionToastConfig:this.selectionToastConfig,useEnterLikeTab:this.useEnterLikeTab,recordsValidator:this.recordsValidator,canEdit:this.canEdit},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,messagesBuilder:this.messagesBuilder,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.getActionsList(),resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:this.gridHeaderCustomSlotId},s("slot",{name:this.gridHeaderCustomSlotId}))),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(a.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig(),resourceID:this.resourceID})))}get _element(){return r(this)}};T.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{T as snk_grid}
1
+ import{r as i,c as t,h as s,F as e,g as r}from"./p-d2d301a6.js";import{SortMode as n,ElementIDUtils as a,ApplicationContext as o,DataType as d}from"@sankhyalabs/core";import{UserInterface as h}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{T as l}from"./p-c9841939.js";import{C as c}from"./p-5cff2f60.js";import{P as u}from"./p-5534e08c.js";import{T as g}from"./p-c2beb95c.js";import{s as v}from"./p-6dc031de.js";import{S as m}from"./p-094c30cb.js";import{SelectionMode as f}from"@sankhyalabs/core/dist/dataunit/DataUnit";import"./p-e47d966c.js";import"./p-88039a7f.js";import"./p-8d884fab.js";import"./p-ff1990ad.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource";import"./p-c22c1d8e.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";const T=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._topTaskbarProcessor=new g({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new g({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER","ACTIONS_BUTTON","MORE_OPTIONS"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","ATTACH","REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.detail.unselected":["REFRESH","MORE_OPTIONS"],"snkGridHeaderTaskbar.detail.selected":["UPDATE","ATTACH","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this._showSnkFilterBar=!0,this.columnFilterDataSource=new m,this.configName=void 0,this.resourceID=void 0,this.selectionToastConfig=void 0,this.actionsList=void 0,this.isDetail=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=u.PRIMARY,this.messagesBuilder=void 0,this.useEnterLikeTab=!1,this.recordsValidator=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0,this.gridHeaderCustomSlotId="GRID_HEADER_CUSTOM_ELEMENTS",this.topTaskbarCustomSlotId="GRID_TASKBAR_CUSTOM_ELEMENTS"}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}async reloadFilterBar(){var i;null===(i=this._snkFilterBar)||void 0===i||i.reload()}async getFilterBar(){return this._snkFilterBar}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i,this.assertDefaultSorting()}assertDefaultSorting(){this._gridConfig&&this._dataUnit&&(this._dataUnit.defaultSorting=this._gridConfig.columns.filter((i=>null!=i.ascending)).sort(((i,t)=>i.orderIndex-t.orderIndex)).map((({name:i,ascending:t})=>{const{dataType:s}=this._dataUnit.getField(i);return{field:i,dataType:s,mode:t?n.ASC:n.DESC}})))}loadConfig(){c.loadGridConfig(this.configName,this.resourceID).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}gridConfigChangeHandler(i){c.saveGridConfig(i.detail,this.configName,this.resourceID),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i){const t=[];return null==i||i.forEach((i=>{var s,e;if(i.hidden&&"RECDESP"!==i.name)return;const r=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(i.name);if(t.push({label:i.label,id:i.name,width:i.width,type:null==r?void 0:r.dataType,userInterface:null==r?void 0:r.userInterface}),null!=(null===(e=null==r?void 0:r.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const i=r.properties.mergedFrom;t.push({label:r.properties.DESCRIPTIONENTITY,id:`${i?i+".":""}${r.properties.ENTITYNAME}.${r.properties.DESCRIPTIONFIELD}`,width:200,type:d.TEXT,userInterface:h.LONGTEXT})}})),t||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i;const t=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo()),s={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:async()=>{var i;const t=await(null===(i=this._grid)||void 0===i?void 0:i.getColumnsState());return this.buildColumnsMetadata(t)},getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>t||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};v.set("exporterProviders",Object.assign(Object.assign({},v.get("exporterProviders")),{[this.configName]:s}))}addElementID(){a.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}finshLoading(){this.assertDefaultSorting(),this.addElementID(),null!=this.columnFilterDataSource&&(this.columnFilterDataSource.setApplication(this._application),this.columnFilterDataSource.setDataUnit(this._dataUnit))}componentWillLoad(){this._application=o.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?this.finshLoading():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.finshLoading()})),this.messagesBuilder||(this.messagesBuilder=this._snkDataUnit.messagesBuilder),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail})),this._snkDataUnit.addEventListener("cancelEdition",(()=>{var i;(null===(i=this._dataState)||void 0===i?void 0:i.recordsIsEmpty)&&this._dataUnit.clearSelection()}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push(l.CLONE,"ATTACH"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}getInvisibleButtons(){let i=[];return this._dataUnit&&0!==this._dataUnit.records.length||i.push("DATA_EXPORTER"),this._dataState&&this._dataState.selectionInfo.mode===f.ALL_RECORDS&&i.push("ACTIONS_BUTTON"),i}componentWillRender(){var i;const t=this.getInvisibleButtons();let s;s=this._dataState&&(null===(i=this._dataState.selectionInfo)||void 0===i?void 0:i.length)?this.isDetail?"snkGridHeaderTaskbar.detail.selected":"snkGridHeaderTaskbar.selected":this.isDetail?"snkGridHeaderTaskbar.detail.unselected":"snkGridHeaderTaskbar.unselected",this._headerTaskbarProcessor.process(s,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),t),this._topTaskbarProcessor.process(this.getTopTaskBarId(),this.taskbarManager,this._dataState,void 0,t),this.dataExporterProviderStore()}getTopTaskBarId(){var i;const t=this.presentationMode===u.SECONDARY?".secondary":"";return(null===(i=this._dataState)||void 0===i?void 0:i.isDirty)?`snkGridTopTaskbar.finish_edition${t}`:`snkGridTopTaskbar.regular${t}`}getPrimaryButton(){return this.presentationMode===u.PRIMARY?"INSERT":""}getActionsList(){if(null!=this.taskbarManager&&null!=this.taskbarManager.getMoreOptions){const i=this.getTopTaskBarId();return this.taskbarManager.getMoreOptions(i,this.configName,this._dataState,this.actionsList)}return this.actionsList}handleFilterConfigUpdated(i){this._showSnkFilterBar=!!i.length&&(1!==i.length||"PERSONALIZED_FILTER_GROUP"!==i[0].id||i[0].groupedItems.length>0)}render(){if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},this._showSnkFilterBar&&s(e,null,s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName,messagesBuilder:this.messagesBuilder,resourceID:this.resourceID,onConfigUpdated:i=>this.handleFilterConfigUpdated(i.detail)}),s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"})),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,messagesBuilder:this.messagesBuilder,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton(),resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:this.topTaskbarCustomSlotId},s("slot",{name:this.topTaskbarCustomSlotId}))),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===u.SECONDARY?"snk-grid-container__without-shadow ":"")+"snk-grid__table","data-element-id":"embedded",dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,columnfilterDataSource:this.columnFilterDataSource,selectionToastConfig:this.selectionToastConfig,useEnterLikeTab:this.useEnterLikeTab,recordsValidator:this.recordsValidator,canEdit:this.canEdit},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,messagesBuilder:this.messagesBuilder,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.getActionsList(),resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:this.gridHeaderCustomSlotId},s("slot",{name:this.gridHeaderCustomSlotId}))),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(a.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig(),resourceID:this.resourceID})))}get _element(){return r(this)}};T.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{T as snk_grid}