@sankhyalabs/sankhyablocks 10.1.0-dev.4 → 10.1.0-dev.41

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 (448) hide show
  1. package/dist/cjs/{ConfigStorage-b29e31be.js → ConfigStorage-a1fab5ca.js} +19 -2
  2. package/dist/cjs/ContinuousInsertUtils-1ae0c6ac.js +41 -0
  3. package/dist/cjs/{DataFetcher-ed9d97ea.js → DataFetcher-384d2ce8.js} +2 -2733
  4. package/dist/cjs/{FormConfigHelper-ebb77625.js → FormConfigHelper-28fe4668.js} +44 -0
  5. package/dist/cjs/{ISave-81eb2fbc.js → ISave-ecbe9336.js} +1 -1
  6. package/dist/cjs/ImageUtils-c46f2d11.js +142 -0
  7. package/dist/cjs/{PersonalizedFilterUtils-7259cf65.js → PersonalizedFilterUtils-eccb267a.js} +13 -0
  8. package/dist/cjs/{SnkFormConfigManager-6838389c.js → SnkFormConfigManager-44386305.js} +7 -7
  9. package/dist/cjs/SnkMessageBuilder-a9300ebe.js +2833 -0
  10. package/dist/cjs/{SnkMultiSelectionListDataSource-1e804147.js → SnkMultiSelectionListDataSource-b951ed91.js} +61 -47
  11. package/dist/cjs/{auth-fetcher-cc28d847.js → auth-fetcher-6b134ec4.js} +1 -1
  12. package/dist/cjs/config-header.cjs.entry.js +1 -1
  13. package/dist/cjs/configs-button.cjs.entry.js +1 -1
  14. package/dist/cjs/css-shim-a27d231b.js +6 -0
  15. package/dist/cjs/{dataunit-fetcher-ab1cc071.js → dataunit-fetcher-93f53260.js} +26 -3
  16. package/dist/cjs/dom-ff96a4bc.js +75 -0
  17. package/dist/cjs/field-config_2.cjs.entry.js +3 -3
  18. package/dist/cjs/fields-layout.cjs.entry.js +8 -5
  19. package/dist/cjs/fields-selector.cjs.entry.js +3 -3
  20. package/dist/cjs/{form-config-fetcher-f0897eb5.js → form-config-fetcher-45d1964c.js} +19 -1
  21. package/dist/cjs/guides-configurator.cjs.entry.js +6 -4
  22. package/dist/cjs/{index-1cf293c1.js → index-1894343a.js} +1529 -177
  23. package/dist/cjs/{index-13d05f03.js → index-f0fe7e6e.js} +90 -21
  24. package/dist/cjs/loader.cjs.js +16 -2
  25. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +6 -5
  26. package/dist/cjs/sankhyablocks.cjs.js +132 -4
  27. package/dist/cjs/shadow-css-7e3e0ab1.js +389 -0
  28. package/dist/cjs/snk-actions-button_9.cjs.entry.js +160 -113
  29. package/dist/cjs/snk-actions-form.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-application.cjs.entry.js +29 -9
  31. package/dist/cjs/snk-attach.cjs.entry.js +53 -26
  32. package/dist/cjs/snk-client-confirm.cjs.entry.js +1 -1
  33. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-crud.cjs.entry.js +351 -108
  35. package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +1 -1
  36. package/dist/cjs/snk-custom-slot-guide.cjs.entry.js +40 -0
  37. package/dist/cjs/snk-data-exporter.cjs.entry.js +9 -7
  38. package/dist/cjs/{snk-data-unit-68992932.js → snk-data-unit-6abc5efc.js} +21 -12
  39. package/dist/cjs/snk-data-unit.cjs.entry.js +5 -4
  40. package/dist/cjs/snk-default-filter.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-detail-view.cjs.entry.js +19 -20
  42. package/dist/cjs/snk-entity-list.cjs.entry.js +1 -1
  43. package/dist/cjs/snk-entity-search.cjs.entry.js +211 -0
  44. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +2 -2
  45. package/dist/cjs/snk-expression-group_2.cjs.entry.js +2 -2
  46. package/dist/cjs/{snk-filter-advanced-mode_2.cjs.entry.js → snk-filter-advanced-mode_3.cjs.entry.js} +41 -3
  47. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +147 -94
  48. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  49. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  50. package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
  51. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
  52. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +5 -4
  53. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  54. package/dist/cjs/snk-filter-number.cjs.entry.js +11 -7
  55. package/dist/cjs/snk-filter-period.cjs.entry.js +14 -7
  56. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  57. package/dist/cjs/snk-filter-text.cjs.entry.js +2 -2
  58. package/dist/cjs/snk-form-summary.cjs.entry.js +1 -1
  59. package/dist/cjs/snk-form-view.cjs.entry.js +70 -8
  60. package/dist/cjs/snk-form_2.cjs.entry.js +34 -10
  61. package/dist/cjs/snk-grid.cjs.entry.js +63 -30
  62. package/dist/cjs/{snk-guides-viewer-8b841753.js → snk-guides-viewer-b4ca3437.js} +114 -188
  63. package/dist/cjs/snk-guides-viewer.cjs.entry.js +11 -18
  64. package/dist/cjs/snk-image-input.cjs.entry.js +148 -0
  65. package/dist/cjs/snk-layout-form-config.cjs.entry.js +72 -0
  66. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  67. package/dist/cjs/snk-personalized-filter.cjs.entry.js +8 -7
  68. package/dist/cjs/snk-pesquisa.cjs.entry.js +6 -6
  69. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  70. package/dist/cjs/snk-simple-crud.cjs.entry.js +30 -35
  71. package/dist/cjs/snk-taskbar.cjs.entry.js +237 -168
  72. package/dist/cjs/{sortable.esm-9a110bb7.js → sortable.esm-b87669ab.js} +76 -90
  73. package/dist/cjs/taskbar-elements-80eddec8.js +152 -0
  74. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  75. package/dist/collection/collection-manifest.json +10 -1
  76. package/dist/collection/components/snk-actions-button/snk-actions-button.js +27 -3
  77. package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +1 -0
  78. package/dist/collection/components/snk-application/snk-application.js +20 -2
  79. package/dist/collection/components/snk-attach/snk-attach.css +29 -7
  80. package/dist/collection/components/snk-attach/snk-attach.js +82 -19
  81. package/dist/collection/components/snk-crud/snk-crud.css +46 -0
  82. package/dist/collection/components/snk-crud/snk-crud.js +190 -96
  83. package/dist/collection/components/snk-crud/subcomponents/GuideBuilder.js +1 -1
  84. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +5 -5
  85. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.css +17 -0
  86. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.js +330 -0
  87. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +90 -8
  88. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +22 -8
  89. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +165 -179
  90. package/dist/collection/components/snk-crud/utils/taskbarUtils.js +144 -0
  91. package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.css +3 -0
  92. package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.js +95 -0
  93. package/dist/collection/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.js +1 -1
  94. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +20 -1
  95. package/dist/collection/components/snk-data-unit/snk-data-unit.js +9 -0
  96. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +13 -9
  97. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +14 -7
  98. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +1 -1
  99. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +1 -1
  100. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +5 -1
  101. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +28 -2
  102. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +7 -1
  103. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +22 -8
  104. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -6
  105. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +166 -78
  106. package/dist/collection/components/snk-form-config/FormConfigHelper.js +42 -0
  107. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +6 -6
  108. package/dist/collection/components/snk-form-config/field-item/field-config/field-config.css +1 -0
  109. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.css +16 -0
  110. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.js +6 -3
  111. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.css +3 -4
  112. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js +5 -3
  113. package/dist/collection/components/snk-form-config/snk-form-config.js +53 -6
  114. package/dist/collection/components/snk-grid/snk-grid.css +24 -3
  115. package/dist/collection/components/snk-grid/snk-grid.js +170 -18
  116. package/dist/collection/components/snk-grid-config/snk-grid-config.js +153 -51
  117. package/dist/collection/components/snk-image-input/snk-image-input.css +3 -0
  118. package/dist/collection/components/snk-image-input/snk-image-input.js +326 -0
  119. package/dist/collection/components/snk-image-input/utils/ImageUtils.js +133 -0
  120. package/dist/collection/components/snk-layout-form-config/snk-layout-form-config.js +1 -1
  121. package/dist/collection/components/snk-layout-form-config/snk-view-representation/snk-view-representation.js +1 -1
  122. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  123. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +13 -0
  124. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +0 -4
  125. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +35 -23
  126. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.css +8 -0
  127. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +38 -2
  128. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +54 -37
  129. package/dist/collection/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.js +27 -1
  130. package/dist/collection/components/snk-taskbar/processor/simple-taskbar-processor.js +55 -0
  131. package/dist/collection/components/snk-taskbar/snk-taskbar.css +44 -1
  132. package/dist/collection/components/snk-taskbar/snk-taskbar.js +304 -174
  133. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.css +12 -0
  134. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.js +19 -0
  135. package/dist/collection/lib/configs/ConfigStorage.js +5 -0
  136. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +24 -2
  137. package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +12 -0
  138. package/dist/collection/lib/http/data-fetcher/fetchers/resource-fetcher.js +18 -0
  139. package/dist/collection/lib/message/SnkMessageBuilder.js +11 -2
  140. package/dist/collection/lib/message/messageResourceEnUSUtils.js +2 -0
  141. package/dist/collection/lib/message/messageResourceEsESUtils.js +2 -0
  142. package/dist/collection/lib/message/messageResourcePtBRUtils.js +2 -0
  143. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +9 -1
  144. package/dist/collection/lib/message/resources/en-us/snk-form.msg.js +7 -0
  145. package/dist/collection/lib/message/resources/en-us/snk-image-input.msg.js +11 -0
  146. package/dist/collection/lib/message/resources/en-us/snk-layout-form-config.msg.js +10 -2
  147. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +9 -1
  148. package/dist/collection/lib/message/resources/es-es/snk-form.msg.js +7 -0
  149. package/dist/collection/lib/message/resources/es-es/snk-image-input.msg.js +11 -0
  150. package/dist/collection/lib/message/resources/es-es/snk-layout-form-config.msg.js +8 -0
  151. package/dist/collection/lib/message/resources/pt-br/snk-configurator.msg.js +1 -1
  152. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +9 -1
  153. package/dist/collection/lib/message/resources/pt-br/snk-form.msg.js +8 -1
  154. package/dist/collection/lib/message/resources/pt-br/snk-image-input.msg.js +11 -0
  155. package/dist/collection/lib/message/resources/pt-br/snk-layout-form-config.msg.js +10 -2
  156. package/dist/components/ConfigStorage.js +17 -0
  157. package/dist/components/ContinuousInsertUtils.js +1 -1
  158. package/dist/components/DataFetcher.js +3 -2713
  159. package/dist/components/PersonalizedFilterUtils.js +13 -0
  160. package/dist/components/SnkFormConfigManager.js +6 -6
  161. package/dist/components/SnkMessageBuilder.js +2831 -0
  162. package/dist/components/dataunit-fetcher.js +25 -2
  163. package/dist/components/field-config2.js +44 -2
  164. package/dist/components/fields-layout2.js +6 -3
  165. package/dist/components/form-config-fetcher.js +18 -0
  166. package/dist/components/guides-configurator2.js +5 -3
  167. package/dist/components/index.d.ts +4 -0
  168. package/dist/components/index.js +4 -0
  169. package/dist/components/index2.js +90 -21
  170. package/dist/components/snk-actions-button2.js +6 -3
  171. package/dist/components/snk-application2.js +22 -2
  172. package/dist/components/snk-attach2.js +59 -29
  173. package/dist/components/snk-crud.js +435 -174
  174. package/dist/components/snk-custom-slot-guide.d.ts +11 -0
  175. package/dist/components/snk-custom-slot-guide.js +55 -0
  176. package/dist/components/snk-data-exporter2.js +3 -1
  177. package/dist/components/snk-data-unit2.js +10 -1
  178. package/dist/components/snk-detail-view2.js +250 -292
  179. package/dist/components/snk-entity-search.d.ts +11 -0
  180. package/dist/components/snk-entity-search.js +6 -0
  181. package/dist/components/snk-entity-search2.js +231 -0
  182. package/dist/components/snk-exporter-email-sender2.js +1 -1
  183. package/dist/components/snk-filter-bar2.js +116 -80
  184. package/dist/components/snk-filter-detail2.js +1 -1
  185. package/dist/components/snk-filter-item2.js +9 -3
  186. package/dist/components/snk-filter-modal2.js +22 -9
  187. package/dist/components/snk-filter-number.js +12 -8
  188. package/dist/components/snk-filter-period.js +13 -6
  189. package/dist/components/snk-filter-text.js +1 -1
  190. package/dist/components/snk-form-config2.js +29 -5
  191. package/dist/components/snk-form-view2.js +79 -10
  192. package/dist/components/snk-grid-config2.js +109 -50
  193. package/dist/components/snk-grid2.js +103 -59
  194. package/dist/components/snk-image-input.d.ts +11 -0
  195. package/dist/components/snk-image-input.js +6 -0
  196. package/dist/components/snk-image-input2.js +302 -0
  197. package/dist/components/snk-layout-form-config2.js +1 -1
  198. package/dist/components/snk-personalized-filter2.js +1 -1
  199. package/dist/components/snk-pesquisa2.js +0 -1
  200. package/dist/components/snk-simple-crud2.js +47 -46
  201. package/dist/components/snk-taskbar-skeleton.d.ts +11 -0
  202. package/dist/components/snk-taskbar-skeleton.js +6 -0
  203. package/dist/components/snk-taskbar-skeleton2.js +29 -0
  204. package/dist/components/snk-taskbar2.js +310 -218
  205. package/dist/components/snk-view-representation2.js +1 -1
  206. package/dist/components/sortable.esm.js +76 -90
  207. package/dist/components/taskbar-actions-button2.js +21 -2
  208. package/dist/components/taskbar-split-button2.js +10 -1
  209. package/dist/esm/{ConfigStorage-13d80e36.js → ConfigStorage-76872695.js} +19 -2
  210. package/dist/esm/ContinuousInsertUtils-bce77dc1.js +39 -0
  211. package/dist/esm/{DataFetcher-f4ccd9f3.js → DataFetcher-e60f8d53.js} +3 -2713
  212. package/dist/esm/{FormConfigHelper-4e42f0b6.js → FormConfigHelper-d09669f3.js} +43 -1
  213. package/dist/esm/{ISave-288fa9df.js → ISave-4929c071.js} +1 -1
  214. package/dist/esm/ImageUtils-7f3a4149.js +136 -0
  215. package/dist/esm/{PersonalizedFilterUtils-2db38ff2.js → PersonalizedFilterUtils-d2439a9a.js} +13 -0
  216. package/dist/esm/{SnkFormConfigManager-3ee2937b.js → SnkFormConfigManager-83f6b22f.js} +7 -7
  217. package/dist/esm/SnkMessageBuilder-1eb7a1af.js +2831 -0
  218. package/dist/esm/{SnkMultiSelectionListDataSource-5d3a93f2.js → SnkMultiSelectionListDataSource-7fe25a58.js} +55 -41
  219. package/dist/esm/{auth-fetcher-59ab0c67.js → auth-fetcher-1a31c1e4.js} +1 -1
  220. package/dist/esm/config-header.entry.js +1 -1
  221. package/dist/esm/configs-button.entry.js +1 -1
  222. package/dist/esm/css-shim-9f2d321e.js +4 -0
  223. package/dist/esm/{dataunit-fetcher-c4f9f222.js → dataunit-fetcher-050b6d31.js} +25 -2
  224. package/dist/esm/dom-64053c71.js +73 -0
  225. package/dist/esm/field-config_2.entry.js +3 -3
  226. package/dist/esm/fields-layout.entry.js +8 -5
  227. package/dist/esm/fields-selector.entry.js +3 -3
  228. package/dist/esm/{form-config-fetcher-6a00fe9e.js → form-config-fetcher-b44b2727.js} +19 -1
  229. package/dist/esm/guides-configurator.entry.js +6 -4
  230. package/dist/esm/{index-479e1293.js → index-04f73a26.js} +1521 -177
  231. package/dist/esm/{index-446f9341.js → index-ea250be6.js} +90 -21
  232. package/dist/esm/loader.js +17 -3
  233. package/dist/esm/pesquisa-grid_2.entry.js +6 -5
  234. package/dist/esm/sankhyablocks.js +133 -5
  235. package/dist/esm/shadow-css-98135883.js +387 -0
  236. package/dist/esm/snk-actions-button_9.entry.js +161 -114
  237. package/dist/esm/snk-actions-form.entry.js +1 -1
  238. package/dist/esm/snk-application.entry.js +28 -8
  239. package/dist/esm/snk-attach.entry.js +52 -25
  240. package/dist/esm/snk-client-confirm.entry.js +1 -1
  241. package/dist/esm/snk-configurator.entry.js +1 -1
  242. package/dist/esm/snk-crud.entry.js +343 -100
  243. package/dist/esm/snk-custom-slot-elements.entry.js +1 -1
  244. package/dist/esm/snk-custom-slot-guide.entry.js +36 -0
  245. package/dist/esm/snk-data-exporter.entry.js +9 -7
  246. package/dist/esm/{snk-data-unit-0edeb967.js → snk-data-unit-ca2c9858.js} +12 -3
  247. package/dist/esm/snk-data-unit.entry.js +5 -4
  248. package/dist/esm/snk-default-filter.entry.js +1 -1
  249. package/dist/esm/snk-detail-view.entry.js +17 -18
  250. package/dist/esm/snk-entity-list.entry.js +1 -1
  251. package/dist/esm/snk-entity-search.entry.js +207 -0
  252. package/dist/esm/snk-exporter-email-sender.entry.js +2 -2
  253. package/dist/esm/snk-expression-group_2.entry.js +2 -2
  254. package/dist/esm/{snk-filter-advanced-mode_2.entry.js → snk-filter-advanced-mode_3.entry.js} +41 -4
  255. package/dist/esm/snk-filter-bar_4.entry.js +148 -95
  256. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  257. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  258. package/dist/esm/snk-filter-detail.entry.js +3 -3
  259. package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
  260. package/dist/esm/snk-filter-modal-item.entry.js +5 -4
  261. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  262. package/dist/esm/snk-filter-number.entry.js +11 -7
  263. package/dist/esm/snk-filter-period.entry.js +14 -7
  264. package/dist/esm/snk-filter-search.entry.js +1 -1
  265. package/dist/esm/snk-filter-text.entry.js +2 -2
  266. package/dist/esm/snk-form-summary.entry.js +1 -1
  267. package/dist/esm/snk-form-view.entry.js +71 -9
  268. package/dist/esm/snk-form_2.entry.js +34 -10
  269. package/dist/esm/snk-grid.entry.js +60 -27
  270. package/dist/esm/{snk-guides-viewer-9cd4d20f.js → snk-guides-viewer-cc37535b.js} +115 -189
  271. package/dist/esm/snk-guides-viewer.entry.js +11 -18
  272. package/dist/esm/snk-image-input.entry.js +144 -0
  273. package/dist/esm/snk-layout-form-config.entry.js +68 -0
  274. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  275. package/dist/esm/snk-personalized-filter.entry.js +8 -7
  276. package/dist/esm/snk-pesquisa.entry.js +6 -6
  277. package/dist/esm/snk-print-selector.entry.js +1 -1
  278. package/dist/esm/snk-simple-crud.entry.js +28 -33
  279. package/dist/esm/snk-taskbar.entry.js +238 -169
  280. package/dist/esm/{sortable.esm-842f85a3.js → sortable.esm-bc277c12.js} +76 -90
  281. package/dist/esm/taskbar-elements-63651ca7.js +149 -0
  282. package/dist/esm/teste-pesquisa.entry.js +1 -1
  283. package/dist/sankhyablocks/p-09ba6bd4.js +1 -0
  284. package/dist/sankhyablocks/{p-7f7fe6c4.entry.js → p-0a160fb5.entry.js} +1 -1
  285. package/dist/sankhyablocks/p-10f27dc6.entry.js +1 -0
  286. package/dist/sankhyablocks/{p-162bddae.entry.js → p-175c9576.entry.js} +1 -1
  287. package/dist/sankhyablocks/p-20af4b6a.entry.js +1 -0
  288. package/dist/sankhyablocks/p-251aee41.entry.js +11 -0
  289. package/dist/sankhyablocks/{p-c4fcf1fb.entry.js → p-27e0cd68.entry.js} +1 -1
  290. package/dist/sankhyablocks/p-2af815bb.entry.js +1 -0
  291. package/dist/sankhyablocks/p-2af8aca3.js +1 -0
  292. package/dist/sankhyablocks/p-2b3c284c.entry.js +1 -0
  293. package/dist/sankhyablocks/p-2c9d0870.js +2 -0
  294. package/dist/sankhyablocks/{p-cb4343c4.entry.js → p-2cc2526e.entry.js} +1 -1
  295. package/dist/sankhyablocks/{p-75af335e.entry.js → p-2ebda226.entry.js} +1 -1
  296. package/dist/sankhyablocks/p-3072136e.js +1 -0
  297. package/dist/sankhyablocks/p-33492640.entry.js +1 -0
  298. package/dist/sankhyablocks/p-35317d9a.entry.js +1 -0
  299. package/dist/sankhyablocks/{p-1c2971e4.js → p-3704bf1b.js} +1 -1
  300. package/dist/sankhyablocks/p-3870748a.js +28 -0
  301. package/dist/sankhyablocks/p-3a35917e.entry.js +1 -0
  302. package/dist/sankhyablocks/{p-78ff8734.js → p-3c990841.js} +2 -2
  303. package/dist/sankhyablocks/p-420b39b5.js +1 -0
  304. package/dist/sankhyablocks/{p-49ddc27a.entry.js → p-438a225f.entry.js} +1 -1
  305. package/dist/sankhyablocks/p-46f75667.entry.js +1 -0
  306. package/dist/sankhyablocks/{p-53599b26.js → p-4f7adf97.js} +2 -2
  307. package/dist/sankhyablocks/p-554c0e54.js +1 -0
  308. package/dist/sankhyablocks/{p-27482793.entry.js → p-5aae5c74.entry.js} +1 -1
  309. package/dist/sankhyablocks/p-68c1a093.js +1 -0
  310. package/dist/sankhyablocks/p-6ae7543b.entry.js +1 -0
  311. package/dist/sankhyablocks/{p-825098c1.entry.js → p-752c57f4.entry.js} +1 -1
  312. package/dist/sankhyablocks/{p-e258de96.entry.js → p-76729994.entry.js} +1 -1
  313. package/dist/sankhyablocks/p-771b137e.js +1 -0
  314. package/dist/sankhyablocks/p-77f608bc.entry.js +1 -0
  315. package/dist/sankhyablocks/p-7c8bf699.entry.js +1 -0
  316. package/dist/sankhyablocks/p-855ccf64.entry.js +1 -0
  317. package/dist/sankhyablocks/p-8a8900a9.entry.js +1 -0
  318. package/dist/sankhyablocks/p-8b4d6719.js +1 -0
  319. package/dist/sankhyablocks/{p-3d41f5a8.entry.js → p-8d946600.entry.js} +1 -1
  320. package/dist/sankhyablocks/{p-96d45943.entry.js → p-90ae6c2e.entry.js} +1 -1
  321. package/dist/sankhyablocks/p-95af0bb1.entry.js +1 -0
  322. package/dist/sankhyablocks/{p-7b3ca294.entry.js → p-9742ea0e.entry.js} +1 -1
  323. package/dist/sankhyablocks/p-98241c21.entry.js +1 -0
  324. package/dist/sankhyablocks/{p-2fdac5e6.entry.js → p-9e109f5e.entry.js} +1 -1
  325. package/dist/sankhyablocks/p-9e7dc97d.entry.js +1 -0
  326. package/dist/sankhyablocks/p-a2a9f520.entry.js +1 -0
  327. package/dist/sankhyablocks/p-a46ac091.js +1 -0
  328. package/dist/sankhyablocks/p-a73b6b00.js +1 -0
  329. package/dist/sankhyablocks/p-ab12f544.entry.js +1 -0
  330. package/dist/sankhyablocks/p-ab5e12fa.js +1 -0
  331. package/dist/sankhyablocks/p-ac384a1e.entry.js +1 -0
  332. package/dist/sankhyablocks/{p-180716b2.entry.js → p-ae326d06.entry.js} +1 -1
  333. package/dist/sankhyablocks/p-aff2d081.entry.js +1 -0
  334. package/dist/sankhyablocks/p-b3b51693.entry.js +1 -0
  335. package/dist/sankhyablocks/p-b555ce38.entry.js +1 -0
  336. package/dist/sankhyablocks/p-bab4cde4.entry.js +1 -0
  337. package/dist/sankhyablocks/p-c3ec6642.js +19 -0
  338. package/dist/sankhyablocks/p-cbb8e351.js +7 -0
  339. package/dist/sankhyablocks/{p-c3dbf441.entry.js → p-cc64239c.entry.js} +1 -1
  340. package/dist/sankhyablocks/{p-471b34f4.entry.js → p-cd00a3d1.entry.js} +1 -1
  341. package/dist/sankhyablocks/p-ce3b284c.entry.js +1 -0
  342. package/dist/sankhyablocks/p-ce8ccd72.entry.js +1 -0
  343. package/dist/sankhyablocks/{p-4c763b10.entry.js → p-d657f71f.entry.js} +1 -1
  344. package/dist/sankhyablocks/p-d972a9c1.js +60 -0
  345. package/dist/sankhyablocks/p-da455c82.js +12 -0
  346. package/dist/sankhyablocks/p-e5a3711f.js +1 -0
  347. package/dist/sankhyablocks/{p-9a63f3f7.entry.js → p-e737fd5a.entry.js} +1 -1
  348. package/dist/sankhyablocks/p-ee56dda6.entry.js +1 -0
  349. package/dist/sankhyablocks/p-ef9343c3.entry.js +1 -0
  350. package/dist/sankhyablocks/p-efd18bc2.entry.js +1 -0
  351. package/dist/sankhyablocks/{p-667cab42.entry.js → p-f152ef98.entry.js} +1 -1
  352. package/dist/sankhyablocks/p-f185d5ad.js +1 -0
  353. package/dist/sankhyablocks/{p-7e250432.entry.js → p-f7170e10.entry.js} +1 -1
  354. package/dist/sankhyablocks/{p-7345782c.entry.js → p-f921270b.entry.js} +1 -1
  355. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  356. package/dist/types/components/snk-actions-button/snk-actions-button.d.ts +4 -0
  357. package/dist/types/components/snk-application/snk-application.d.ts +1 -1
  358. package/dist/types/components/snk-attach/snk-attach.d.ts +20 -4
  359. package/dist/types/components/snk-crud/snk-crud.d.ts +37 -9
  360. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  361. package/dist/types/components/snk-crud/subcomponents/snk-entity-search.d.ts +62 -0
  362. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +12 -0
  363. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +28 -18
  364. package/dist/types/components/snk-crud/utils/taskbarUtils.d.ts +13 -0
  365. package/dist/types/components/snk-custom-slot-guide/snk-custom-slot-guide.d.ts +16 -0
  366. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -0
  367. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  368. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +1 -1
  369. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +1 -0
  370. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +5 -1
  371. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +2 -1
  372. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +33 -16
  373. package/dist/types/components/snk-form-config/FormConfigHelper.d.ts +6 -1
  374. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +1 -1
  375. package/dist/types/components/snk-form-config/fields-layout/fields-layout.d.ts +2 -2
  376. package/dist/types/components/snk-form-config/guides-configurator/guides-configurator.d.ts +1 -1
  377. package/dist/types/components/snk-form-config/snk-form-config.d.ts +9 -2
  378. package/dist/types/components/snk-grid/snk-grid.d.ts +29 -1
  379. package/dist/types/components/snk-grid-config/snk-grid-config.d.ts +11 -0
  380. package/dist/types/components/snk-image-input/snk-image-input.d.ts +56 -0
  381. package/dist/types/components/snk-image-input/utils/ImageUtils.d.ts +15 -0
  382. package/dist/types/components/snk-personalized-filter/interfaces/IParameter.d.ts +1 -0
  383. package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +0 -1
  384. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -1
  385. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +6 -0
  386. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -2
  387. package/dist/types/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.d.ts +5 -0
  388. package/dist/types/components/snk-taskbar/processor/simple-taskbar-processor.d.ts +31 -0
  389. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +37 -23
  390. package/dist/types/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.d.ts +3 -0
  391. package/dist/types/components.d.ts +377 -5
  392. package/dist/types/lib/configs/ConfigStorage.d.ts +1 -0
  393. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -1
  394. package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +1 -0
  395. package/dist/types/lib/http/data-fetcher/fetchers/resource-fetcher.d.ts +1 -0
  396. package/dist/types/lib/message/resources/en-us/snk-image-input.msg.d.ts +1 -0
  397. package/dist/types/lib/message/resources/es-es/snk-image-input.msg.d.ts +1 -0
  398. package/dist/types/lib/message/resources/pt-br/snk-image-input.msg.d.ts +1 -0
  399. package/package.json +6 -7
  400. package/react/components.d.ts +4 -0
  401. package/react/components.js +4 -0
  402. package/react/components.js.map +1 -1
  403. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -45
  404. package/dist/cjs/taskbar-elements-fb5d1e08.js +0 -132
  405. package/dist/cjs/taskbar-processor-2fba34a8.js +0 -53
  406. package/dist/esm/snk-simple-bar.entry.js +0 -41
  407. package/dist/esm/taskbar-elements-faaf5d8f.js +0 -129
  408. package/dist/esm/taskbar-processor-3436124c.js +0 -51
  409. package/dist/sankhyablocks/p-093f58fa.entry.js +0 -1
  410. package/dist/sankhyablocks/p-0e279e7a.js +0 -1
  411. package/dist/sankhyablocks/p-11346b8d.entry.js +0 -1
  412. package/dist/sankhyablocks/p-1858c023.entry.js +0 -1
  413. package/dist/sankhyablocks/p-1a0caadb.js +0 -1
  414. package/dist/sankhyablocks/p-21107f0d.entry.js +0 -1
  415. package/dist/sankhyablocks/p-26e0f63c.entry.js +0 -1
  416. package/dist/sankhyablocks/p-34df7eca.entry.js +0 -1
  417. package/dist/sankhyablocks/p-34f447ba.entry.js +0 -1
  418. package/dist/sankhyablocks/p-38e56b68.entry.js +0 -1
  419. package/dist/sankhyablocks/p-3abeeefa.entry.js +0 -1
  420. package/dist/sankhyablocks/p-3d021bef.entry.js +0 -1
  421. package/dist/sankhyablocks/p-3ed04f0d.entry.js +0 -1
  422. package/dist/sankhyablocks/p-44939a0e.entry.js +0 -1
  423. package/dist/sankhyablocks/p-51833248.js +0 -7
  424. package/dist/sankhyablocks/p-5304753a.js +0 -60
  425. package/dist/sankhyablocks/p-557368df.entry.js +0 -1
  426. package/dist/sankhyablocks/p-55798617.js +0 -1
  427. package/dist/sankhyablocks/p-583151c5.entry.js +0 -1
  428. package/dist/sankhyablocks/p-60dd1d27.entry.js +0 -1
  429. package/dist/sankhyablocks/p-6180de07.entry.js +0 -1
  430. package/dist/sankhyablocks/p-80014119.entry.js +0 -1
  431. package/dist/sankhyablocks/p-8f73da95.js +0 -1
  432. package/dist/sankhyablocks/p-91a9abb6.entry.js +0 -1
  433. package/dist/sankhyablocks/p-9317942f.js +0 -26
  434. package/dist/sankhyablocks/p-988afe78.js +0 -1
  435. package/dist/sankhyablocks/p-a2ed1ebd.entry.js +0 -1
  436. package/dist/sankhyablocks/p-a5108625.entry.js +0 -1
  437. package/dist/sankhyablocks/p-a644a956.js +0 -1
  438. package/dist/sankhyablocks/p-ae108ffd.entry.js +0 -11
  439. package/dist/sankhyablocks/p-b4322b87.entry.js +0 -1
  440. package/dist/sankhyablocks/p-b7e891cc.entry.js +0 -1
  441. package/dist/sankhyablocks/p-b987e15d.js +0 -1
  442. package/dist/sankhyablocks/p-bb2f5f38.js +0 -1
  443. package/dist/sankhyablocks/p-d8d8169b.js +0 -2
  444. package/dist/sankhyablocks/p-d9c54991.js +0 -1
  445. package/dist/sankhyablocks/p-dc851b6e.entry.js +0 -1
  446. package/dist/sankhyablocks/p-e9021f79.entry.js +0 -1
  447. package/dist/sankhyablocks/p-f15478a1.js +0 -1
  448. package/dist/sankhyablocks/p-f8f29e1a.entry.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,58 +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
- if (item.value === undefined || item.value === null)
264
- return false;
265
- if (!Array.isArray(item.value))
266
- return true;
267
- return item.value.some(filterItem => filterItem.check === true);
268
- }
269
264
  observeFilterConfig(newValue, oldValue) {
270
265
  if (ObjectUtils.equals(newValue, oldValue))
271
266
  return;
272
267
  this.handleFilterConfigsChanged(oldValue, newValue);
273
268
  }
274
- handleFilterConfigsChanged(oldValue, newValue) {
275
- if (oldValue != undefined && newValue == undefined) {
276
- this._loadingPending = true;
277
- this._configUpdated = true;
278
- }
279
- else {
280
- const oldItems = new Map(oldValue ? oldValue.map(item => [item.id, item]) : undefined);
281
- if (oldItems.size === 0 && newValue.length > 0) {
282
- this._loadingPending = true;
283
- this._configUpdated = false;
284
- }
285
- else {
286
- newValue.forEach(newItem => {
287
- const oldItem = oldItems.get(newItem.id);
288
- if (oldItem != undefined) {
289
- this._configUpdated = this._configUpdated || ObjectUtils.objectToString(oldItem) != ObjectUtils.objectToString(newItem);
290
- this._loadingPending = this._loadingPending || ObjectUtils.objectToString(oldItem.value) !== ObjectUtils.objectToString(newItem.value);
291
- if (!this._loadingPending) {
292
- const groupedChanged = ObjectUtils.objectToString(oldItem.groupedItems) != ObjectUtils.objectToString(newItem.groupedItems);
293
- this._configUpdated = this._configUpdated || groupedChanged;
294
- this._loadingPending = this._loadingPending || groupedChanged;
295
- }
296
- }
297
- else {
298
- this._configUpdated = true;
299
- this._loadingPending = this._loadingPending || newItem.value != undefined;
300
- }
301
- });
302
- }
303
- }
304
- if (this._loadingPending || this._configUpdated)
305
- this.configUpdated.emit(newValue);
306
- this.processAfterUpdateConfig();
307
- }
308
269
  /**
309
270
  * @description Faz o recarregamento da barra de filtros buscando o state no servidor.
310
271
  * @async
@@ -372,11 +333,84 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
372
333
  this.filterConfig = this.filterConfig.filter(item => item.id !== filterID);
373
334
  return Promise.resolve(itemToRemove);
374
335
  }
375
- componentDidLoad() {
376
- if (this._element) {
377
- const dataInfo = { dataUnit: this.dataUnit };
378
- 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
+ }
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;
379
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);
380
414
  }
381
415
  processPendingFilter() {
382
416
  if (this._pendingVariables) {
@@ -443,9 +477,6 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
443
477
  }
444
478
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
445
479
  }
446
- async getFilters() {
447
- return this.getFilter(null);
448
- }
449
480
  getFilter(_dataUnit) {
450
481
  var _a;
451
482
  const filters = [];
@@ -465,7 +496,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
465
496
  if (item.type === FilterItemType.DEFAULT_FILTER) {
466
497
  return true;
467
498
  }
468
- return this.filterActiveFilter(item) && (item.groupedItems || item.value != undefined);
499
+ return this.filterActiveFilter(item) && this.hasValidValue(item);
469
500
  }
470
501
  async registryFilterProvider() {
471
502
  this.dataUnit.addFilterProvider(this);
@@ -496,7 +527,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
496
527
  .filter(this.filterPersonalizedItems)
497
528
  .map(item => {
498
529
  const itemId = `filter-${item.id}`;
499
- 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 }));
500
531
  });
501
532
  }
502
533
  getFilterItems() {
@@ -507,7 +538,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
507
538
  .forEach((item) => {
508
539
  item = ObjectUtils.copy(item);
509
540
  const itemId = `filter-${item.id}`;
510
- 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 }));
511
542
  if (item.fixed || item.hardFixed || item.required) {
512
543
  pinnedItems.push(filterItem);
513
544
  }
@@ -532,27 +563,35 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
532
563
  }
533
564
  normalizeItem(item) {
534
565
  const normalized = Object.assign({}, item);
566
+ const isPersonalizedFilter = item.type === FilterItemType.PERSONALIZED;
567
+ const hasNormalizedGroupedItems = (normalized.value === undefined && normalized.groupedItems);
568
+ if (isPersonalizedFilter && hasNormalizedGroupedItems) {
569
+ normalized.value = normalized.groupedItems.filter(groupItem => !!groupItem.visible).length;
570
+ }
535
571
  const optionals = ["props", "value", "hardFixed", "fixed"];
536
572
  optionals.forEach(prop => {
573
+ if (prop === "value" && isPersonalizedFilter) {
574
+ return;
575
+ }
537
576
  if (normalized[prop] == undefined) {
538
577
  delete normalized[prop];
539
578
  }
540
579
  });
541
- if (item.value === "") {
542
- delete item.value;
580
+ if (normalized.value === "" && !isPersonalizedFilter) {
581
+ delete normalized.value;
543
582
  }
544
583
  return normalized;
545
584
  }
546
585
  updateFilter(newItem) {
586
+ const normalizedNewItem = this.normalizeItem(newItem);
547
587
  let config = this.filterConfig.map(item => {
548
- newItem = this.normalizeItem(newItem);
549
- if (item.id === newItem.id) {
550
- if (ObjectUtils.objectToString(item) != ObjectUtils.objectToString(newItem)) {
551
- this.calculateUpdateSequence(newItem);
552
- }
553
- return newItem;
588
+ if (item.id !== normalizedNewItem.id) {
589
+ return item;
554
590
  }
555
- return item;
591
+ if (ObjectUtils.objectToString(item) == ObjectUtils.objectToString(normalizedNewItem)) {
592
+ this.calculateUpdateSequence(normalizedNewItem);
593
+ }
594
+ return normalizedNewItem;
556
595
  }).sort((a, b) => this._filtersComparator(a, b));
557
596
  if (this.filterCustomConfigInterceptor) {
558
597
  config = this.filterCustomConfigInterceptor(config);
@@ -617,21 +656,9 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
617
656
  await this.registryFilterProvider();
618
657
  }
619
658
  }
620
- /**
621
- * Emitido quando acontece a alteração do estado do filtro.
622
- */
623
- filterChangeListener(evt) {
624
- this.updateFilter(evt.detail);
625
- }
626
- /**
627
- * @description Abre o modal de filtros.
628
- * @async
629
- */
630
- async showFilterModal() {
631
- if (this.isFilterModalOpen) {
632
- return; // Evita abrir múltiplos modais
633
- }
634
- this.isFilterModalOpen = true;
659
+ async showPersonalizedFilterItem() {
660
+ const popUp = this._element.querySelector('#filter-PERSONALIZED_FILTER_GROUP');
661
+ await (popUp === null || popUp === void 0 ? void 0 : popUp.showUp(true));
635
662
  }
636
663
  addPersonalizedFilter(isDefault = false) {
637
664
  this.isFilterModalOpen = false;
@@ -706,6 +733,12 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
706
733
  componentDidRender() {
707
734
  this.processPendingFilter();
708
735
  }
736
+ componentDidLoad() {
737
+ if (this._element) {
738
+ const dataInfo = { dataUnit: this.dataUnit };
739
+ ElementIDUtils.addIDInfo(this._element, null, dataInfo);
740
+ }
741
+ }
709
742
  render() {
710
743
  if (!this.dataUnit || !this.filterConfig || this.filterConfig.length === 0) {
711
744
  return undefined;
@@ -718,9 +751,10 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
718
751
  return itemA.originOrder - itemB.originOrder;
719
752
  });
720
753
  if (this.mode !== "regular") {
721
- return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium", 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 })));
722
755
  }
723
- 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 })));
724
758
  }
725
759
  get _element() { return this; }
726
760
  static get watchers() { return {
@@ -743,6 +777,8 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
743
777
  "afterApplyConfig": [16],
744
778
  "filterCustomConfig": [16],
745
779
  "filterCustomConfigInterceptor": [16],
780
+ "hideFilterButton": [4, "hide-filter-button"],
781
+ "sizeChips": [1, "size-chips"],
746
782
  "allowDefault": [32],
747
783
  "scrollerLocked": [32],
748
784
  "showPersonalizedFilter": [32],
@@ -755,7 +791,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
755
791
  "removeFilterItem": [64],
756
792
  "getFilters": [64],
757
793
  "showFilterModal": [64]
758
- }, [[0, "filterChange", "filterChangeListener"]]]);
794
+ }, [[0, "filterChange", "filterChangeListener"], [8, "ezEmptySearch", "emptySearchListener"]]]);
759
795
  function defineCustomElement() {
760
796
  if (typeof customElements === "undefined") {
761
797
  return;
@@ -162,7 +162,7 @@ const SnkFilterDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
162
162
  }
163
163
  onKeyDonwListener(event) {
164
164
  if (event.key === "Enter") {
165
- this._applyButton.setFocus().then(() => this.apply());
165
+ this.apply();
166
166
  }
167
167
  }
168
168
  buildRightSlot(item) {