@sankhyalabs/sankhyablocks 10.1.0-dev.37 → 10.1.0-dev.39

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 (225) hide show
  1. package/dist/cjs/{ConfigStorage-e384fb7b.js → ConfigStorage-a1fab5ca.js} +2 -2
  2. package/dist/cjs/ContinuousInsertUtils-1ae0c6ac.js +41 -0
  3. package/dist/cjs/{DataFetcher-3a8ea521.js → DataFetcher-384d2ce8.js} +1 -1
  4. package/dist/cjs/{ISave-a66bb65e.js → ISave-ecbe9336.js} +1 -1
  5. package/dist/cjs/{ImageUtils-5e3f406b.js → ImageUtils-c46f2d11.js} +1 -1
  6. package/dist/cjs/{SnkFormConfigManager-73df0f8b.js → SnkFormConfigManager-44386305.js} +2 -2
  7. package/dist/cjs/{SnkMessageBuilder-d9558dba.js → SnkMessageBuilder-a9300ebe.js} +24 -0
  8. package/dist/cjs/{SnkMultiSelectionListDataSource-016393f3.js → SnkMultiSelectionListDataSource-b951ed91.js} +61 -47
  9. package/dist/cjs/{auth-fetcher-80e608b0.js → auth-fetcher-6b134ec4.js} +1 -1
  10. package/dist/cjs/{dataunit-fetcher-6febd6c4.js → dataunit-fetcher-93f53260.js} +2 -2
  11. package/dist/cjs/{form-config-fetcher-81cbd405.js → form-config-fetcher-45d1964c.js} +1 -1
  12. package/dist/cjs/index-1894343a.js +8 -8
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -5
  15. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  16. package/dist/cjs/{snk-actions-button_8.cjs.entry.js → snk-actions-button_9.cjs.entry.js} +52 -12
  17. package/dist/cjs/snk-application.cjs.entry.js +7 -7
  18. package/dist/cjs/snk-attach.cjs.entry.js +50 -24
  19. package/dist/cjs/snk-crud.cjs.entry.js +344 -109
  20. package/dist/cjs/snk-data-exporter.cjs.entry.js +8 -7
  21. package/dist/cjs/{snk-data-unit-94757628.js → snk-data-unit-6abc5efc.js} +2 -2
  22. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
  23. package/dist/cjs/snk-detail-view.cjs.entry.js +11 -16
  24. package/dist/cjs/snk-entity-search.cjs.entry.js +211 -0
  25. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  26. package/dist/cjs/{snk-filter-advanced-mode_2.cjs.entry.js → snk-filter-advanced-mode_3.cjs.entry.js} +39 -1
  27. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +106 -95
  28. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
  29. package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-form_2.cjs.entry.js +5 -5
  31. package/dist/cjs/snk-grid.cjs.entry.js +40 -17
  32. package/dist/cjs/{snk-guides-viewer-688c4398.js → snk-guides-viewer-b4ca3437.js} +37 -153
  33. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -17
  34. package/dist/cjs/snk-image-input.cjs.entry.js +2 -2
  35. package/dist/cjs/snk-layout-form-config.cjs.entry.js +5 -5
  36. package/dist/cjs/snk-personalized-filter.cjs.entry.js +5 -5
  37. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  38. package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -12
  39. package/dist/cjs/snk-taskbar.cjs.entry.js +181 -124
  40. package/dist/cjs/taskbar-elements-80eddec8.js +152 -0
  41. package/dist/collection/collection-manifest.json +2 -0
  42. package/dist/collection/components/snk-actions-button/snk-actions-button.js +27 -3
  43. package/dist/collection/components/snk-attach/snk-attach.css +29 -7
  44. package/dist/collection/components/snk-attach/snk-attach.js +81 -18
  45. package/dist/collection/components/snk-crud/snk-crud.css +46 -0
  46. package/dist/collection/components/snk-crud/snk-crud.js +143 -94
  47. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -5
  48. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.css +17 -0
  49. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.js +330 -0
  50. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +22 -8
  51. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +35 -144
  52. package/dist/collection/components/snk-crud/utils/taskbarUtils.js +144 -0
  53. package/dist/collection/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.js +1 -1
  54. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +20 -1
  55. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +2 -2
  56. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +23 -1
  57. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +6 -1
  58. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +8 -5
  59. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -6
  60. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +139 -84
  61. package/dist/collection/components/snk-grid/snk-grid.css +12 -3
  62. package/dist/collection/components/snk-grid/snk-grid.js +148 -4
  63. package/dist/collection/components/snk-image-input/utils/ImageUtils.js +1 -1
  64. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  65. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.css +8 -0
  66. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +38 -2
  67. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +51 -35
  68. package/dist/collection/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.js +27 -1
  69. package/dist/collection/components/snk-taskbar/processor/simple-taskbar-processor.js +55 -0
  70. package/dist/collection/components/snk-taskbar/snk-taskbar.css +44 -1
  71. package/dist/collection/components/snk-taskbar/snk-taskbar.js +248 -132
  72. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.css +12 -0
  73. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.js +19 -0
  74. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +8 -0
  75. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +8 -0
  76. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +8 -0
  77. package/dist/components/ContinuousInsertUtils.js +1 -1
  78. package/dist/components/SnkMessageBuilder.js +24 -0
  79. package/dist/components/index.d.ts +2 -0
  80. package/dist/components/index.js +2 -0
  81. package/dist/components/snk-actions-button2.js +6 -3
  82. package/dist/components/snk-attach2.js +56 -27
  83. package/dist/components/snk-crud.js +422 -175
  84. package/dist/components/snk-data-exporter2.js +3 -1
  85. package/dist/components/snk-detail-view2.js +158 -258
  86. package/dist/components/snk-entity-search.d.ts +11 -0
  87. package/dist/components/snk-entity-search.js +6 -0
  88. package/dist/components/snk-entity-search2.js +231 -0
  89. package/dist/components/snk-exporter-email-sender2.js +1 -1
  90. package/dist/components/snk-filter-bar2.js +94 -85
  91. package/dist/components/snk-filter-item2.js +4 -2
  92. package/dist/components/snk-filter-modal2.js +8 -5
  93. package/dist/components/snk-grid2.js +82 -47
  94. package/dist/components/snk-image-input2.js +1 -1
  95. package/dist/components/snk-personalized-filter2.js +1 -1
  96. package/dist/components/snk-simple-crud2.js +29 -23
  97. package/dist/components/snk-taskbar-skeleton.d.ts +11 -0
  98. package/dist/components/snk-taskbar-skeleton.js +6 -0
  99. package/dist/components/snk-taskbar-skeleton2.js +29 -0
  100. package/dist/components/snk-taskbar2.js +253 -174
  101. package/dist/components/taskbar-actions-button2.js +21 -2
  102. package/dist/components/taskbar-split-button2.js +10 -1
  103. package/dist/esm/{ConfigStorage-82ff76fb.js → ConfigStorage-76872695.js} +2 -2
  104. package/dist/esm/ContinuousInsertUtils-bce77dc1.js +39 -0
  105. package/dist/esm/{DataFetcher-1dd7e8c0.js → DataFetcher-e60f8d53.js} +1 -1
  106. package/dist/esm/{ISave-498c4831.js → ISave-4929c071.js} +1 -1
  107. package/dist/esm/{ImageUtils-8fc8d905.js → ImageUtils-7f3a4149.js} +1 -1
  108. package/dist/esm/{SnkFormConfigManager-e8ae1561.js → SnkFormConfigManager-83f6b22f.js} +2 -2
  109. package/dist/esm/{SnkMessageBuilder-c0bc4424.js → SnkMessageBuilder-1eb7a1af.js} +24 -0
  110. package/dist/esm/{SnkMultiSelectionListDataSource-ec783ded.js → SnkMultiSelectionListDataSource-7fe25a58.js} +55 -41
  111. package/dist/esm/{auth-fetcher-38a83f5e.js → auth-fetcher-1a31c1e4.js} +1 -1
  112. package/dist/esm/{dataunit-fetcher-21c43ec7.js → dataunit-fetcher-050b6d31.js} +2 -2
  113. package/dist/esm/{form-config-fetcher-24eb587c.js → form-config-fetcher-b44b2727.js} +1 -1
  114. package/dist/esm/index-04f73a26.js +8 -8
  115. package/dist/esm/loader.js +1 -1
  116. package/dist/esm/pesquisa-grid_2.entry.js +5 -5
  117. package/dist/esm/sankhyablocks.js +1 -1
  118. package/dist/esm/{snk-actions-button_8.entry.js → snk-actions-button_9.entry.js} +52 -13
  119. package/dist/esm/snk-application.entry.js +7 -7
  120. package/dist/esm/snk-attach.entry.js +50 -24
  121. package/dist/esm/snk-crud.entry.js +333 -98
  122. package/dist/esm/snk-data-exporter.entry.js +8 -7
  123. package/dist/esm/{snk-data-unit-3b06a0f3.js → snk-data-unit-ca2c9858.js} +2 -2
  124. package/dist/esm/snk-data-unit.entry.js +4 -4
  125. package/dist/esm/snk-detail-view.entry.js +11 -16
  126. package/dist/esm/snk-entity-search.entry.js +207 -0
  127. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  128. package/dist/esm/{snk-filter-advanced-mode_2.entry.js → snk-filter-advanced-mode_3.entry.js} +40 -3
  129. package/dist/esm/snk-filter-bar_4.entry.js +107 -96
  130. package/dist/esm/snk-filter-modal-item.entry.js +4 -4
  131. package/dist/esm/snk-form-view.entry.js +1 -1
  132. package/dist/esm/snk-form_2.entry.js +5 -5
  133. package/dist/esm/snk-grid.entry.js +37 -14
  134. package/dist/esm/{snk-guides-viewer-6ddc7e6a.js → snk-guides-viewer-cc37535b.js} +38 -154
  135. package/dist/esm/snk-guides-viewer.entry.js +9 -17
  136. package/dist/esm/snk-image-input.entry.js +2 -2
  137. package/dist/esm/snk-layout-form-config.entry.js +5 -5
  138. package/dist/esm/snk-personalized-filter.entry.js +5 -5
  139. package/dist/esm/snk-pesquisa.entry.js +5 -5
  140. package/dist/esm/snk-simple-crud.entry.js +10 -10
  141. package/dist/esm/snk-taskbar.entry.js +182 -125
  142. package/dist/esm/taskbar-elements-63651ca7.js +149 -0
  143. package/dist/sankhyablocks/p-09ba6bd4.js +1 -0
  144. package/dist/sankhyablocks/p-10f27dc6.entry.js +1 -0
  145. package/dist/sankhyablocks/{p-54f5c36d.entry.js → p-20af4b6a.entry.js} +1 -1
  146. package/dist/sankhyablocks/p-225f92cf.entry.js +1 -0
  147. package/dist/sankhyablocks/{p-605a2a99.entry.js → p-251aee41.entry.js} +1 -1
  148. package/dist/sankhyablocks/p-2af815bb.entry.js +1 -0
  149. package/dist/sankhyablocks/{p-bdf0077f.js → p-2af8aca3.js} +1 -1
  150. package/dist/sankhyablocks/p-3072136e.js +1 -0
  151. package/dist/sankhyablocks/p-33492640.entry.js +1 -0
  152. package/dist/sankhyablocks/{p-f208ec52.entry.js → p-35317d9a.entry.js} +1 -1
  153. package/dist/sankhyablocks/{p-6753f16e.js → p-3704bf1b.js} +1 -1
  154. package/dist/sankhyablocks/{p-2d606189.js → p-3870748a.js} +1 -1
  155. package/dist/sankhyablocks/{p-e057ecb6.js → p-3c990841.js} +1 -1
  156. package/dist/sankhyablocks/{p-4ff3b494.js → p-420b39b5.js} +1 -1
  157. package/dist/sankhyablocks/{p-8bb4e86b.entry.js → p-46f75667.entry.js} +1 -1
  158. package/dist/sankhyablocks/{p-32ad76cc.js → p-4f7adf97.js} +2 -2
  159. package/dist/sankhyablocks/p-554c0e54.js +1 -0
  160. package/dist/sankhyablocks/p-6ae7543b.entry.js +1 -0
  161. package/dist/sankhyablocks/p-771b137e.js +1 -0
  162. package/dist/sankhyablocks/p-77f608bc.entry.js +1 -0
  163. package/dist/sankhyablocks/p-7c8bf699.entry.js +1 -0
  164. package/dist/sankhyablocks/{p-d34a41ec.entry.js → p-8a8900a9.entry.js} +1 -1
  165. package/dist/sankhyablocks/{p-e484913b.entry.js → p-95af0bb1.entry.js} +1 -1
  166. package/dist/sankhyablocks/{p-10cad767.entry.js → p-98241c21.entry.js} +1 -1
  167. package/dist/sankhyablocks/{p-f5b929c2.entry.js → p-ab12f544.entry.js} +1 -1
  168. package/dist/sankhyablocks/{p-ef8cf0e2.js → p-ab5e12fa.js} +1 -1
  169. package/dist/sankhyablocks/p-ac384a1e.entry.js +1 -0
  170. package/dist/sankhyablocks/{p-3a98c337.entry.js → p-aff2d081.entry.js} +1 -1
  171. package/dist/sankhyablocks/p-b3b51693.entry.js +1 -0
  172. package/dist/sankhyablocks/{p-08415ef7.entry.js → p-bab4cde4.entry.js} +1 -1
  173. package/dist/sankhyablocks/p-ce3b284c.entry.js +1 -0
  174. package/dist/sankhyablocks/p-ce8ccd72.entry.js +1 -0
  175. package/dist/sankhyablocks/{p-b9970342.js → p-d972a9c1.js} +1 -1
  176. package/dist/sankhyablocks/p-e5a3711f.js +1 -0
  177. package/dist/sankhyablocks/{p-2b882835.entry.js → p-e737fd5a.entry.js} +1 -1
  178. package/dist/sankhyablocks/p-efd18bc2.entry.js +1 -0
  179. package/dist/sankhyablocks/{p-362e6e8c.js → p-f185d5ad.js} +1 -1
  180. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  181. package/dist/types/components/snk-actions-button/snk-actions-button.d.ts +4 -0
  182. package/dist/types/components/snk-attach/snk-attach.d.ts +20 -4
  183. package/dist/types/components/snk-crud/snk-crud.d.ts +28 -10
  184. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  185. package/dist/types/components/snk-crud/subcomponents/snk-entity-search.d.ts +62 -0
  186. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -18
  187. package/dist/types/components/snk-crud/utils/taskbarUtils.d.ts +13 -0
  188. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -0
  189. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +4 -0
  190. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +32 -20
  191. package/dist/types/components/snk-grid/snk-grid.d.ts +28 -1
  192. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +6 -0
  193. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -2
  194. package/dist/types/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.d.ts +5 -0
  195. package/dist/types/components/snk-taskbar/processor/simple-taskbar-processor.d.ts +31 -0
  196. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +32 -21
  197. package/dist/types/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.d.ts +3 -0
  198. package/dist/types/components.d.ts +197 -4
  199. package/package.json +2 -2
  200. package/react/components.d.ts +2 -0
  201. package/react/components.js +2 -0
  202. package/react/components.js.map +1 -1
  203. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -45
  204. package/dist/cjs/taskbar-elements-a94d4318.js +0 -133
  205. package/dist/cjs/taskbar-processor-2fba34a8.js +0 -53
  206. package/dist/esm/snk-simple-bar.entry.js +0 -41
  207. package/dist/esm/taskbar-elements-97541bdd.js +0 -130
  208. package/dist/esm/taskbar-processor-3436124c.js +0 -51
  209. package/dist/sankhyablocks/p-07aa8192.entry.js +0 -1
  210. package/dist/sankhyablocks/p-1a0caadb.js +0 -1
  211. package/dist/sankhyablocks/p-27aea149.entry.js +0 -1
  212. package/dist/sankhyablocks/p-27d6590e.js +0 -1
  213. package/dist/sankhyablocks/p-449e36d2.entry.js +0 -1
  214. package/dist/sankhyablocks/p-615655bd.entry.js +0 -1
  215. package/dist/sankhyablocks/p-62e17eea.entry.js +0 -1
  216. package/dist/sankhyablocks/p-6e1a7929.entry.js +0 -1
  217. package/dist/sankhyablocks/p-72d62f22.js +0 -1
  218. package/dist/sankhyablocks/p-9c1ff75e.entry.js +0 -1
  219. package/dist/sankhyablocks/p-a8c5ebf1.entry.js +0 -1
  220. package/dist/sankhyablocks/p-b25777fa.entry.js +0 -1
  221. package/dist/sankhyablocks/p-b6d47f08.entry.js +0 -1
  222. package/dist/sankhyablocks/p-b8453e18.js +0 -1
  223. package/dist/sankhyablocks/p-c8043a53.entry.js +0 -1
  224. package/dist/sankhyablocks/p-f0c9969e.entry.js +0 -1
  225. package/dist/sankhyablocks/p-fc5938fb.js +0 -1
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface SnkEntitySearch extends Components.SnkEntitySearch, HTMLElement {}
4
+ export const SnkEntitySearch: {
5
+ prototype: SnkEntitySearch;
6
+ new (): SnkEntitySearch;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { S as SnkEntitySearch$1, d as defineCustomElement$1 } from './snk-entity-search2.js';
2
+
3
+ const SnkEntitySearch = SnkEntitySearch$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { SnkEntitySearch, defineCustomElement };
@@ -0,0 +1,231 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { KeyboardManager, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
+
4
+ const snkEntitySearchCss = ".entity-search-popover{width:432px;font-family:var(--font-pattern, \"Roboto\");color:var(--color--gray-600, #1C1D22);text-shadow:0 0 var(--color--gray-500, #494A4E), 0 0 1px transparent;font-size:var(--font-size--large, 18px);padding:var(--space--24, 24px);max-width:430px;display:flex;flex-direction:column}.entity-search-popover label{margin-bottom:var(--space--16, 16px)}";
5
+
6
+ const SnkEntitySearch = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.loaded = createEvent(this, "loaded", 7);
11
+ this.SEARCH_DESCRIPTION_TIMEOUT = 300;
12
+ this._entityPKField = null;
13
+ this.searchEntitySelect = async (item) => {
14
+ if (!this._entityPKField || !item) {
15
+ return;
16
+ }
17
+ try {
18
+ const pk = [{ name: this._entityPKField, value: item.value }];
19
+ await this.closeSearchPopover();
20
+ await this.refreshDataUnitByPk(pk);
21
+ }
22
+ catch (error) {
23
+ console.error('Erro ao selecionar entidade:', error);
24
+ }
25
+ };
26
+ this.entityName = "";
27
+ this.dataUnit = undefined;
28
+ this.messagesBuilder = undefined;
29
+ this._searchInputValue = "";
30
+ this._showMoreOnSearch = false;
31
+ this.visibleOptions = [];
32
+ this.value = undefined;
33
+ this.showLoading = true;
34
+ }
35
+ async showUnder(element) {
36
+ await this._popoverSearchEntity.showUnder(element, { horizontalGap: 12, verticalGap: 4 });
37
+ }
38
+ buildSearchOptions(limit) {
39
+ return {
40
+ entity: this.entityName,
41
+ entityDescription: this.entityName,
42
+ executeOnOpen: true,
43
+ searchOptions: {
44
+ localEntityName: this.entityName,
45
+ limit,
46
+ }
47
+ };
48
+ }
49
+ async handlePredictiveSearch(argument) {
50
+ var _a, _b;
51
+ const response = await this._application.executePreparedSearchWithFullResponse(argument, this.buildSearchOptions(5));
52
+ this._showMoreOnSearch = (_a = response === null || response === void 0 ? void 0 : response.hasMore) !== null && _a !== void 0 ? _a : false;
53
+ this._entityPKField = response === null || response === void 0 ? void 0 : response.pkField;
54
+ return (_b = response === null || response === void 0 ? void 0 : response.data) !== null && _b !== void 0 ? _b : [];
55
+ }
56
+ async loadEntitySuggestions(argument) {
57
+ var _a;
58
+ const value = (_a = argument === null || argument === void 0 ? void 0 : argument.argument) !== null && _a !== void 0 ? _a : '';
59
+ const mode = (argument === null || argument === void 0 ? void 0 : argument.mode) || "PREDICTIVE";
60
+ if (!value || value.trim().length === 0) {
61
+ return [];
62
+ }
63
+ try {
64
+ this._showMoreOnSearch = false;
65
+ if (mode === "PREDICTIVE") {
66
+ return await this.handlePredictiveSearch(value);
67
+ }
68
+ const searchResult = await this._application.executePreparedSearch(mode, value, this.buildSearchOptions());
69
+ return Array.isArray(searchResult) ? searchResult : [searchResult];
70
+ }
71
+ catch (error) {
72
+ console.error('Erro ao carregar sugestões de entidades:', error);
73
+ return [];
74
+ }
75
+ }
76
+ async refreshDataUnitByPk(pks) {
77
+ try {
78
+ const pkField = pks[0].name;
79
+ const pkValue = pks[0].value;
80
+ // Criar filtro para a busca específica
81
+ const quickFilter = {
82
+ term: '',
83
+ filter: {
84
+ name: '',
85
+ params: [],
86
+ expression: `(${pkField} = ${pkValue})`
87
+ }
88
+ };
89
+ // Carregar dados com o filtro aplicado diretamente
90
+ await this.dataUnit.loadData(quickFilter);
91
+ this.loaded.emit(this.dataUnit.records);
92
+ }
93
+ catch (error) {
94
+ console.error('Erro ao atualizar dataset:', error);
95
+ }
96
+ }
97
+ async closeSearchPopover() {
98
+ if (this._popoverSearchEntity && this._popoverSearchEntity.opened) {
99
+ await this._popoverSearchEntity.hide();
100
+ }
101
+ }
102
+ async handleOnEzVisibilityChange(event) {
103
+ if (event.detail) {
104
+ await this._textInput.setFocus();
105
+ }
106
+ }
107
+ async handleSelectItem(evt) {
108
+ const currentOpt = evt.detail;
109
+ this.value = currentOpt;
110
+ await this._popoverListResult.hide();
111
+ await this.searchEntitySelect(currentOpt);
112
+ this._searchInputValue = "";
113
+ }
114
+ updateKeyOption(option) {
115
+ return (Object.assign(Object.assign({}, option), { presentationValue: option.value, presentationLabel: option.label }));
116
+ }
117
+ async handleInputChange(value) {
118
+ if (this._debounceSearch) {
119
+ clearTimeout(this._debounceSearch);
120
+ }
121
+ return new Promise((resolve) => {
122
+ this._debounceSearch = setTimeout(async () => {
123
+ var _a;
124
+ this.showLoading = true;
125
+ this._searchInputValue = value;
126
+ await this._popoverListResult.showUnder(this._textInput);
127
+ this.visibleOptions = (_a = (await this.loadEntitySuggestions({ argument: this._searchInputValue, mode: undefined }))) === null || _a === void 0 ? void 0 : _a.map(this.updateKeyOption);
128
+ this.showLoading = false;
129
+ resolve();
130
+ }, this.SEARCH_DESCRIPTION_TIMEOUT);
131
+ });
132
+ }
133
+ isOptionsVisible() {
134
+ return this._popoverListResult.opened;
135
+ }
136
+ async handleArrowUp() {
137
+ if (!this.isOptionsVisible()) {
138
+ return;
139
+ }
140
+ await this._searchList.previousOption();
141
+ }
142
+ async handleArrowDown() {
143
+ if (!this.isOptionsVisible()) {
144
+ return;
145
+ }
146
+ await this._searchList.nextOption();
147
+ }
148
+ async selectCurrentItem() {
149
+ var _a;
150
+ await ((_a = this._searchList) === null || _a === void 0 ? void 0 : _a.selectCurrentItem());
151
+ }
152
+ async cancelSelection() {
153
+ var _a, _b;
154
+ await ((_a = this._searchList) === null || _a === void 0 ? void 0 : _a.cancelSelection());
155
+ (_b = this._popoverListResult) === null || _b === void 0 ? void 0 : _b.hide();
156
+ }
157
+ async handleInputTab() {
158
+ await this.cancelSelection();
159
+ }
160
+ async handleInputEsc() {
161
+ await this.cancelSelection();
162
+ }
163
+ getMessage(key, params) {
164
+ if (this.messagesBuilder) {
165
+ return this.messagesBuilder.getMessage(key, params);
166
+ }
167
+ // Fallback para mensagens padrão em português
168
+ const messages = {
169
+ 'snkCrud.entitySearch.label': 'Busca por registros',
170
+ 'snkCrud.entitySearch.placeholder': 'Digite o que você procura aqui...'
171
+ };
172
+ return messages[key] || key;
173
+ }
174
+ async initKeyboardManager() {
175
+ this._keyboardManager = new KeyboardManager();
176
+ const defaultOpts = { element: this._elem, propagate: true };
177
+ this._keyboardManager
178
+ .bind("ArrowUp", () => this.handleArrowUp(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
179
+ .bind("ArrowDown", () => this.handleArrowDown(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
180
+ .bind("Enter", () => this.selectCurrentItem(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
181
+ .bind("Tab", () => this.handleInputTab(), defaultOpts)
182
+ .bind("Escape", () => this.handleInputEsc(), defaultOpts);
183
+ }
184
+ connectedCallback() {
185
+ this.initKeyboardManager();
186
+ }
187
+ componentWillLoad() {
188
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
189
+ }
190
+ componentDidLoad() {
191
+ ElementIDUtils.addIDInfoIfNotExists(this._elem, 'snk-entity-search');
192
+ }
193
+ disconnectedCallback() {
194
+ this._keyboardManager
195
+ .unbind("ArrowUp")
196
+ .unbind("ArrowDown")
197
+ .unbind("Enter")
198
+ .unbind("Tab")
199
+ .unbind("Escape");
200
+ }
201
+ render() {
202
+ return (h(Host, null, h("ez-popover-core", { ref: (ref) => this._popoverSearchEntity = ref, onEzVisibilityChange: (event) => this.handleOnEzVisibilityChange(event) }, h("div", { class: "entity-search-popover" }, h("label", null, this.getMessage('snkCrud.entitySearch.label')), h("ez-classic-input", { ref: (ref) => this._textInput = ref, placeholder: this.getMessage('snkCrud.entitySearch.placeholder'), rightIconClickable: true, size: "small", value: this._searchInputValue, onEzChange: (evt) => this.handleInputChange(evt.detail) }), h("ez-popover-core", { ref: elem => this._popoverListResult = elem, anchorElement: this._textInput, autoClose: true, boxWidth: 'fit-content', overlayType: 'none', useAnchorSize: true, onEzVisibilityChange: (event) => event.stopPropagation() }, h("ez-search-result-list", { ref: (ref) => this._searchList = ref, showLoading: this.showLoading, visibleOptions: this.visibleOptions, value: this.value, onChangeValue: (evt) => this.handleSelectItem(evt) }))))));
203
+ }
204
+ get _elem() { return this; }
205
+ static get style() { return snkEntitySearchCss; }
206
+ }, [0, "snk-entity-search", {
207
+ "entityName": [1, "entity-name"],
208
+ "dataUnit": [16],
209
+ "messagesBuilder": [16],
210
+ "_searchInputValue": [32],
211
+ "_showMoreOnSearch": [32],
212
+ "visibleOptions": [32],
213
+ "value": [32],
214
+ "showLoading": [32],
215
+ "showUnder": [64]
216
+ }]);
217
+ function defineCustomElement() {
218
+ if (typeof customElements === "undefined") {
219
+ return;
220
+ }
221
+ const components = ["snk-entity-search"];
222
+ components.forEach(tagName => { switch (tagName) {
223
+ case "snk-entity-search":
224
+ if (!customElements.get(tagName)) {
225
+ customElements.define(tagName, SnkEntitySearch);
226
+ }
227
+ break;
228
+ } });
229
+ }
230
+
231
+ export { SnkEntitySearch as S, defineCustomElement as d };
@@ -121,7 +121,7 @@ const SnkExporterEmailSender = /*@__PURE__*/ proxyCustomElement(class extends HT
121
121
  return (h("ez-popup", { useHeader: false, size: "x-small", heightMode: "auto", opened: this._opened }, h("ez-modal-container", { onEzModalAction: (evt) => {
122
122
  if (evt.detail === ModalAction.CLOSE)
123
123
  this.close();
124
- }, modalTitle: this.getMessage("snkExporter.emailSenderTitle"), modalSubTitle: this.getStepMessage("subTitle") }, h("ez-view-stack", { ref: ref => this._viewStack = ref }, h("stack-item", null, h(OptionsStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateConfigInfo(field, value) })), h("stack-item", null, h(EmailInfoStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateEmailInfo(field, value) }))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-button--tertiary ez-padding-right--medium", label: this.getStepMessage("firstButton"), onClick: () => this.executeButtonAction(true), enabled: this.checkButtonEnabled(true) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("firstButton")}` })), h("ez-button", Object.assign({ class: this.getSecondButtonClass(), label: this.getStepMessage("secondButton"), onClick: () => this.executeButtonAction(false), enabled: this.checkButtonEnabled(false) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("secondButton")}` }))))));
124
+ }, modalTitle: this.getMessage("snkExporter.emailSenderTitle"), modalSubTitle: this.getStepMessage("subTitle") }, h("ez-view-stack", { ref: ref => this._viewStack = ref }, h("stack-item", null, h(OptionsStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateConfigInfo(field, value) })), h("stack-item", null, h(EmailInfoStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateEmailInfo(field, value) }))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-padding-right--medium", label: this.getStepMessage("firstButton"), onClick: () => this.executeButtonAction(true), enabled: this.checkButtonEnabled(true) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("firstButton")}` }, { variant: "secondary", size: "medium" })), h("ez-button", Object.assign({ label: this.getStepMessage("secondButton"), onClick: () => this.executeButtonAction(false), enabled: this.checkButtonEnabled(false) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("secondButton")}` }, { variant: "primary", size: "medium" }))))));
125
125
  }
126
126
  get _element() { return this; }
127
127
  }, [0, "snk-exporter-email-sender", {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext, LockManager, LockManagerOperation } from '@sankhyalabs/core';
2
+ import { DataType, StringUtils, ObjectUtils, ErrorException, ApplicationContext, LockManager, LockManagerOperation, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
4
  import { C as ConfigStorage } from './ConfigStorage.js';
5
5
  import { a as FilterOperand, P as PersonalizedFilterUtils } from './PersonalizedFilterUtils.js';
@@ -210,7 +210,7 @@ function buildPersonalized(item) {
210
210
  return { name: id, expression, params };
211
211
  }
212
212
 
213
- const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:12px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small);height:80%}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start;margin:var(--space--2, 2px) 0}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
213
+ const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:12px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small);height:80%}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
214
214
 
215
215
  const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
216
216
  constructor() {
@@ -253,67 +253,19 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
253
253
  this.afterApplyConfig = undefined;
254
254
  this.filterCustomConfig = undefined;
255
255
  this.filterCustomConfigInterceptor = undefined;
256
+ this.hideFilterButton = false;
257
+ this.sizeChips = 'default';
256
258
  this.allowDefault = undefined;
257
259
  this.scrollerLocked = false;
258
260
  this.showPersonalizedFilter = false;
259
261
  this.personalizedFilterId = undefined;
260
262
  this.isFilterModalOpen = false;
261
263
  }
262
- hasValidValue(item) {
263
- var _a, _b;
264
- if (item.value === undefined || item.value === null) {
265
- return false;
266
- }
267
- if (item.type === FilterItemType.PERIOD) {
268
- return (!!((_a = item.value) === null || _a === void 0 ? void 0 : _a.start) || !!((_b = item.value) === null || _b === void 0 ? void 0 : _b.end));
269
- }
270
- if (item.groupedItems) {
271
- return true;
272
- }
273
- if (!Array.isArray(item.value)) {
274
- return true;
275
- }
276
- return item.value.some(filterItem => filterItem.check === true);
277
- }
278
264
  observeFilterConfig(newValue, oldValue) {
279
265
  if (ObjectUtils.equals(newValue, oldValue))
280
266
  return;
281
267
  this.handleFilterConfigsChanged(oldValue, newValue);
282
268
  }
283
- handleFilterConfigsChanged(oldValue, newValue) {
284
- if (oldValue != undefined && newValue == undefined) {
285
- this._loadingPending = true;
286
- this._configUpdated = true;
287
- }
288
- else {
289
- const oldItems = new Map(oldValue ? oldValue.map(item => [item.id, item]) : undefined);
290
- if (oldItems.size === 0 && newValue.length > 0) {
291
- this._loadingPending = true;
292
- this._configUpdated = false;
293
- }
294
- else {
295
- newValue.forEach(newItem => {
296
- const oldItem = oldItems.get(newItem.id);
297
- if (oldItem != undefined) {
298
- this._configUpdated = this._configUpdated || ObjectUtils.objectToString(oldItem) != ObjectUtils.objectToString(newItem);
299
- this._loadingPending = this._loadingPending || ObjectUtils.objectToString(oldItem.value) !== ObjectUtils.objectToString(newItem.value);
300
- if (!this._loadingPending) {
301
- const groupedChanged = ObjectUtils.objectToString(oldItem.groupedItems) != ObjectUtils.objectToString(newItem.groupedItems);
302
- this._configUpdated = this._configUpdated || groupedChanged;
303
- this._loadingPending = this._loadingPending || groupedChanged;
304
- }
305
- }
306
- else {
307
- this._configUpdated = true;
308
- this._loadingPending = this._loadingPending || newItem.value != undefined;
309
- }
310
- });
311
- }
312
- }
313
- if (this._loadingPending || this._configUpdated)
314
- this.configUpdated.emit(newValue);
315
- this.processAfterUpdateConfig();
316
- }
317
269
  /**
318
270
  * @description Faz o recarregamento da barra de filtros buscando o state no servidor.
319
271
  * @async
@@ -381,11 +333,84 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
381
333
  this.filterConfig = this.filterConfig.filter(item => item.id !== filterID);
382
334
  return Promise.resolve(itemToRemove);
383
335
  }
384
- componentDidLoad() {
385
- if (this._element) {
386
- const dataInfo = { dataUnit: this.dataUnit };
387
- ElementIDUtils.addIDInfo(this._element, null, dataInfo);
336
+ /**
337
+ * @description Retorna os filtros ativos na barra de filtros.
338
+ * @returns {Promise<Array<Filter>>} Retorna uma Promise que resolve com a lista de filtros ativos.
339
+ */
340
+ async getFilters() {
341
+ return this.getFilter(null);
342
+ }
343
+ /**
344
+ * @description Abre o modal de filtros.
345
+ * @async
346
+ */
347
+ async showFilterModal() {
348
+ if (this.isFilterModalOpen) {
349
+ return; // Evita abrir múltiplos modais
350
+ }
351
+ this.isFilterModalOpen = true;
352
+ }
353
+ /**
354
+ * Emitido quando acontece a alteração do estado do filtro.
355
+ */
356
+ filterChangeListener(evt) {
357
+ this.updateFilter(evt.detail);
358
+ }
359
+ /**
360
+ * Escuta quando há um filtro do tipo pesquisa retorna um valor vazio.
361
+ */
362
+ async emptySearchListener(_evt) {
363
+ await this.showPersonalizedFilterItem();
364
+ }
365
+ handleFilterConfigsChanged(oldValue, newValue) {
366
+ if (oldValue != undefined && newValue == undefined) {
367
+ this._loadingPending = true;
368
+ this._configUpdated = true;
369
+ }
370
+ else {
371
+ const oldItems = new Map(oldValue ? oldValue.map(item => [item.id, item]) : undefined);
372
+ if (oldItems.size === 0 && newValue.length > 0) {
373
+ this._loadingPending = true;
374
+ this._configUpdated = false;
375
+ }
376
+ else {
377
+ newValue.forEach(newItem => {
378
+ const oldItem = oldItems.get(newItem.id);
379
+ if (oldItem != undefined) {
380
+ this._configUpdated = this._configUpdated || ObjectUtils.objectToString(oldItem) != ObjectUtils.objectToString(newItem);
381
+ this._loadingPending = this._loadingPending || ObjectUtils.objectToString(oldItem.value) !== ObjectUtils.objectToString(newItem.value);
382
+ if (!this._loadingPending) {
383
+ const groupedChanged = ObjectUtils.objectToString(oldItem.groupedItems) != ObjectUtils.objectToString(newItem.groupedItems);
384
+ this._configUpdated = this._configUpdated || groupedChanged;
385
+ this._loadingPending = this._loadingPending || groupedChanged;
386
+ }
387
+ }
388
+ else {
389
+ this._configUpdated = true;
390
+ this._loadingPending = this._loadingPending || newItem.value != undefined;
391
+ }
392
+ });
393
+ }
388
394
  }
395
+ if (this._loadingPending || this._configUpdated)
396
+ this.configUpdated.emit(newValue);
397
+ this.processAfterUpdateConfig();
398
+ }
399
+ hasValidValue(item) {
400
+ var _a, _b;
401
+ if (item.value === undefined || item.value === null) {
402
+ return false;
403
+ }
404
+ if (item.type === FilterItemType.PERIOD) {
405
+ return (!!((_a = item.value) === null || _a === void 0 ? void 0 : _a.start) || !!((_b = item.value) === null || _b === void 0 ? void 0 : _b.end));
406
+ }
407
+ if (item.groupedItems) {
408
+ return true;
409
+ }
410
+ if (!Array.isArray(item.value)) {
411
+ return true;
412
+ }
413
+ return item.value.some(filterItem => filterItem.check === true);
389
414
  }
390
415
  processPendingFilter() {
391
416
  if (this._pendingVariables) {
@@ -452,9 +477,6 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
452
477
  }
453
478
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
454
479
  }
455
- async getFilters() {
456
- return this.getFilter(null);
457
- }
458
480
  getFilter(_dataUnit) {
459
481
  var _a;
460
482
  const filters = [];
@@ -505,7 +527,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
505
527
  .filter(this.filterPersonalizedItems)
506
528
  .map(item => {
507
529
  const itemId = `filter-${item.id}`;
508
- return (h("snk-filter-item", { key: item.id, id: itemId, config: Object.assign({}, item), onFocusin: () => this.itemFocused(itemId), onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), getMessage: (key, props) => this.getMessage(key, props), showChips: false }));
530
+ return (h("snk-filter-item", { key: item.id, id: itemId, config: Object.assign({}, item), onFocusin: () => this.itemFocused(itemId), onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), getMessage: (key, props) => this.getMessage(key, props), showChips: false, sizeChips: this.sizeChips }));
509
531
  });
510
532
  }
511
533
  getFilterItems() {
@@ -516,7 +538,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
516
538
  .forEach((item) => {
517
539
  item = ObjectUtils.copy(item);
518
540
  const itemId = `filter-${item.id}`;
519
- const filterItem = (h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, class: "ez-margin-horizontal--extra-small", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
541
+ const filterItem = (h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, getMessage: (key, props) => this.getMessage(key, props), key: item.id, sizeChips: this.sizeChips }));
520
542
  if (item.fixed || item.hardFixed || item.required) {
521
543
  pinnedItems.push(filterItem);
522
544
  }
@@ -634,28 +656,6 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
634
656
  await this.registryFilterProvider();
635
657
  }
636
658
  }
637
- /**
638
- * Emitido quando acontece a alteração do estado do filtro.
639
- */
640
- filterChangeListener(evt) {
641
- this.updateFilter(evt.detail);
642
- }
643
- /**
644
- * Escuta quando há um filtro do tipo pesquisa retorna um valor vazio.
645
- */
646
- async emptySearchListener(_evt) {
647
- await this.showPersonalizedFilterItem();
648
- }
649
- /**
650
- * @description Abre o modal de filtros.
651
- * @async
652
- */
653
- async showFilterModal() {
654
- if (this.isFilterModalOpen) {
655
- return; // Evita abrir múltiplos modais
656
- }
657
- this.isFilterModalOpen = true;
658
- }
659
659
  async showPersonalizedFilterItem() {
660
660
  const popUp = this._element.querySelector('#filter-PERSONALIZED_FILTER_GROUP');
661
661
  await (popUp === null || popUp === void 0 ? void 0 : popUp.showUp(true));
@@ -733,6 +733,12 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
733
733
  componentDidRender() {
734
734
  this.processPendingFilter();
735
735
  }
736
+ componentDidLoad() {
737
+ if (this._element) {
738
+ const dataInfo = { dataUnit: this.dataUnit };
739
+ ElementIDUtils.addIDInfo(this._element, null, dataInfo);
740
+ }
741
+ }
736
742
  render() {
737
743
  if (!this.dataUnit || !this.filterConfig || this.filterConfig.length === 0) {
738
744
  return undefined;
@@ -745,9 +751,10 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
745
751
  return itemA.originOrder - itemB.originOrder;
746
752
  });
747
753
  if (this.mode !== "regular") {
748
- return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium ez-margin-top--extra-small", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
754
+ return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), (this.mode === 'button' && !this.hideFilterButton) && (h("ez-button", { variant: "secondary", mode: "icon", iconName: "filter", class: "ez-margin-left--medium ez-margin-top--extra-small", size: "small", onClick: this.showFilterModal.bind(this) })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
749
755
  }
750
- return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium ez-margin-top--extra-small", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
756
+ return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked, scrollAmount: 100, navigationMode: "buttons" }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), !this.hideFilterButton &&
757
+ h("ez-button", { variant: "secondary", mode: "icon", iconName: "filter", class: "ez-padding-left--medium ez-margin-top--extra-small", size: "small", onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
751
758
  }
752
759
  get _element() { return this; }
753
760
  static get watchers() { return {
@@ -770,6 +777,8 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
770
777
  "afterApplyConfig": [16],
771
778
  "filterCustomConfig": [16],
772
779
  "filterCustomConfigInterceptor": [16],
780
+ "hideFilterButton": [4, "hide-filter-button"],
781
+ "sizeChips": [1, "size-chips"],
773
782
  "allowDefault": [32],
774
783
  "scrollerLocked": [32],
775
784
  "showPersonalizedFilter": [32],
@@ -4,7 +4,7 @@ import { F as FilterNumberVariation } from './filterNumberVariation.js';
4
4
  import { F as FilterItemType } from './filter-item-type.enum.js';
5
5
  import { d as defineCustomElement$1 } from './snk-filter-detail2.js';
6
6
 
7
- const snkFilterItemCss = "ez-popover-core.sc-snk-filter-item{--ez-popover__box--z-index:var(--elevation--20, 20);--ez-popover__box--overlay-z-index:var(--elevation--16, 16)}ez-chip.sc-snk-filter-item{--ez-label-chip__label__container--margin:var(--space--2, 2px)}";
7
+ const snkFilterItemCss = "ez-popover-core.sc-snk-filter-item{--ez-popover__box--z-index:var(--elevation--20, 20);--ez-popover__box--overlay-z-index:var(--elevation--16, 16)}ez-chip.sc-snk-filter-item{--ez-label-chip__label__container--margin:var(--space--4, 4px)}";
8
8
 
9
9
  const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
10
  constructor() {
@@ -17,6 +17,7 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
17
17
  this.config = undefined;
18
18
  this.getMessage = undefined;
19
19
  this.showChips = true;
20
+ this.sizeChips = 'default';
20
21
  }
21
22
  observeDetailIsVisible(value) {
22
23
  this.visibleChanged.emit(value);
@@ -302,7 +303,7 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
302
303
  render() {
303
304
  const leftIcon = this.getLeftIconName();
304
305
  const { type, message } = this.getTooltipMessage();
305
- return (h(Host, null, this.showChips && (h("ez-tooltip", { id: this.config.id, message: message, type: type, active: !this.detailIsVisible, strategy: "fixed" }, h("ez-chip", { id: this.config.id, ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.getEnabledChip(), onClick: (event) => this.togglePopover(event), disableAutoUpdateValue: true, type: this.getTypeChip(type), enabled: this.config.enabled }, leftIcon && (h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, slot: "leftIcon" })), h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getRightIconName(), slot: "rightIcon", id: "removeFilter", onClick: (event) => this.clearFilter(event) })))), h("ez-popover-core", { ref: elem => this._popover = elem, onEzVisibilityChange: (event) => this.handleVisibilityPopover(event) }, h("snk-filter-detail", { ref: ref => this._filterDetail = ref, key: this.config.id, config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--16", "data-element-id": this._idSnkFilterDetail, showHardFixed: this.showChips && !this.config.required, removalBlocked: this.config.required }))));
306
+ return (h(Host, null, this.showChips && (h("ez-tooltip", { id: this.config.id, message: message, type: type, active: !this.detailIsVisible, strategy: "fixed" }, h("ez-chip", { id: this.config.id, size: this.sizeChips, ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.getEnabledChip(), onClick: (event) => this.togglePopover(event), disableAutoUpdateValue: true, type: this.getTypeChip(type), enabled: this.config.enabled }, leftIcon && (h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, slot: "leftIcon" })), h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getRightIconName(), slot: "rightIcon", id: "removeFilter", onClick: (event) => this.clearFilter(event) })))), h("ez-popover-core", { ref: elem => this._popover = elem, onEzVisibilityChange: (event) => this.handleVisibilityPopover(event) }, h("snk-filter-detail", { ref: ref => this._filterDetail = ref, key: this.config.id, config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--16", "data-element-id": this._idSnkFilterDetail, showHardFixed: this.showChips && !this.config.required, removalBlocked: this.config.required }))));
306
307
  }
307
308
  get _filterItemElement() { return this; }
308
309
  static get watchers() { return {
@@ -313,6 +314,7 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
313
314
  "config": [1040],
314
315
  "getMessage": [16],
315
316
  "showChips": [4, "show-chips"],
317
+ "sizeChips": [1, "size-chips"],
316
318
  "detailIsVisible": [32],
317
319
  "showUp": [64],
318
320
  "hideDetail": [64]
@@ -33,7 +33,7 @@ function validateFilters(filters) {
33
33
  return notValidFilters.length === 0;
34
34
  }
35
35
 
36
- const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px;--ez-modal-content-min-width:370px}.snk-filter-modal__container{min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";
36
+ const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px;--ez-modal-content-min-width:370px}.snk-filter-modal__container{min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small\n);min-width:var(--space--small);max-width:var(--space--small)}.ez-padding-right--medium:nth-child(even){padding-right:0}";
37
37
 
38
38
  const SnkFilterModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
39
39
  constructor() {
@@ -229,7 +229,7 @@ const SnkFilterModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
229
229
  return false;
230
230
  }
231
231
  renderFilterItem(filterItem, fullRow) {
232
- return (h("snk-filter-modal-item", { key: `modal-item-${filterItem.id}`, class: fullRow ? 'ez-col ez-col--sd-12' : 'ez-col ez-col--sd-6 ez-padding--small', filterItem: filterItem, configName: this.configName, onFilterChange: (event) => this.handleFilterChange(event), onEditPersonalizedFilter: evt => this.editPersonalizedFilter(evt.detail), onAddPersonalizedFilter: () => this.addPersonalizedFilter() }));
232
+ return (h("snk-filter-modal-item", { key: `modal-item-${filterItem.id}`, class: fullRow ? 'ez-col ez-col--sd-12' : 'ez-size-width--full ez-padding-right--medium', filterItem: filterItem, configName: this.configName, onFilterChange: (event) => this.handleFilterChange(event), onEditPersonalizedFilter: evt => this.editPersonalizedFilter(evt.detail), onAddPersonalizedFilter: () => this.addPersonalizedFilter() }));
233
233
  }
234
234
  isDefaultFilterNumberVariation(filter) {
235
235
  var _a;
@@ -262,6 +262,9 @@ const SnkFilterModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
262
262
  }
263
263
  renderFilterLine(filters) {
264
264
  const fullLine = filters.length === 1;
265
+ if (!fullLine) {
266
+ return (h("div", { class: "ez-col ez-col--sd-12 hydrated", "data-element-id": "snkFilterModalItem" }, h("div", { class: "ez-flex ez-flex--column grow" }, h("div", { class: "ez-col ez-col--nowrap" }, filters.map(filter => this.renderFilterItem(filter, fullLine))))));
267
+ }
265
268
  return filters.map((filter) => this.renderFilterItem(filter, fullLine));
266
269
  }
267
270
  getIformedFiltersCount(listItems) {
@@ -295,13 +298,13 @@ const SnkFilterModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
295
298
  });
296
299
  return countInformedItens;
297
300
  }
298
- renderCollapsibleFilterBox(label, listItems, isSingleItem, shouldRenderFooter = true) {
301
+ renderCollapsibleFilterBox({ label, listItems, isSingleItem, shouldRenderFooter = true, initializeOpen = false }) {
299
302
  if (!listItems.length)
300
303
  return null;
301
304
  const appliedFilters = this.getIformedFiltersCount(listItems);
302
305
  const lines = this.mountFiltersLines(listItems);
303
306
  const countFiltersWithError = this.filtersWithError.filter(item => listItems.some(filter => filter.id === item)).length;
304
- return (h("ez-collapsible-box", { class: "snk-filter-modal__collapsible-box", headerSize: "medium", value: true, label: label }, h("div", { class: "ez-flex ez-flex--justify-end grow", slot: "rightSlot" }, !!appliedFilters && (h("ez-badge", { class: "ez-badge--primary-subtle", label: appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.toString() })), !!countFiltersWithError && (h("ez-badge", { class: "ez-badge--error-subtle", label: countFiltersWithError === null || countFiltersWithError === void 0 ? void 0 : countFiltersWithError.toString() }))), h("div", { class: "ez-row snk-filter-modal__rendered-items" }, lines.map(this.renderFilterLine.bind(this))), shouldRenderFooter && (h("div", { class: "ez-flex ez-flex--justify-end grow" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getCustomMessage("clearModal"), onClick: () => isSingleItem ? this.handleClearSigleFilter(listItems[0]) : this.handleClearFilterList(listItems) })))));
307
+ return (h("ez-collapsible-box", { class: "snk-filter-modal__collapsible-box", headerSize: "medium", value: !initializeOpen, label: label }, h("div", { class: "ez-flex ez-flex--justify-end grow", slot: "rightSlot" }, !!appliedFilters && (h("ez-badge", { class: "ez-badge--primary-subtle", label: appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.toString() })), !!countFiltersWithError && (h("ez-badge", { class: "ez-badge--error-subtle", label: countFiltersWithError === null || countFiltersWithError === void 0 ? void 0 : countFiltersWithError.toString() }))), h("div", { class: "ez-row snk-filter-modal__rendered-items" }, lines.map(this.renderFilterLine.bind(this))), shouldRenderFooter && (h("div", { class: "ez-flex ez-flex--justify-end grow" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getCustomMessage("clearModal"), onClick: () => isSingleItem ? this.handleClearSigleFilter(listItems[0]) : this.handleClearFilterList(listItems) })))));
305
308
  }
306
309
  handleDeleteFilter() {
307
310
  this._application.confirm(this.getMessage('snkPersonalizedFilter.deleteConfirm.title'), this.getMessage('snkPersonalizedFilter.info.deleteDefaultFilterConfirm'), "alert-circle-inverted", "critical").then((actionConfirmed) => {
@@ -352,7 +355,7 @@ const SnkFilterModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
352
355
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
353
356
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
354
357
  return (h("ez-modal", { opened: this.opened, modalSize: "col--sd-3", align: "right", heightMode: "full", closeEsc: true }, h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, this._isUserSup &&
355
- h("snk-default-filter", { getMessage: this.getCustomMessage.bind(this), hasDefaultFilter: !!this._defaultFilter, onActionSelected: this.handleActionSelectedDefaultFilter.bind(this) }), !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true))))));
358
+ h("snk-default-filter", { getMessage: this.getCustomMessage.bind(this), hasDefaultFilter: !!this._defaultFilter, onActionSelected: this.handleActionSelectedDefaultFilter.bind(this) }), !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox({ label: this.getCustomMessage('customFilters'), listItems: customFilters, isSingleItem: false, shouldRenderFooter: false }), this.renderCollapsibleFilterBox({ label: this.getCustomMessage('quickFilters'), listItems: quickFilters, isSingleItem: false, shouldRenderFooter: true, initializeOpen: true }), otherFilters.map(filter => this.renderCollapsibleFilterBox({ label: filter.label, listItems: [filter], isSingleItem: true, shouldRenderFooter: true }))))));
356
359
  }
357
360
  get _element() { return this; }
358
361
  static get watchers() { return {