@sankhyalabs/sankhyablocks 5.19.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/cjs/ConfigStorage-0a738cdc.js +304 -0
  2. package/dist/cjs/IExpressionItem-1090c3fd.js +7 -0
  3. package/dist/cjs/PersonalizedFilterUtils-7d959e91.js +229 -0
  4. package/dist/cjs/{SnkFormConfigManager-69df3f74.js → SnkFormConfigManager-a583f503.js} +1 -1
  5. package/dist/cjs/{SnkMessageBuilder-3b5b5614.js → SnkMessageBuilder-8a2d3f26.js} +65 -4
  6. package/dist/cjs/{filter-bar-config-fetcher-a14536bf.js → filter-bar-config-fetcher-75219599.js} +34 -11
  7. package/dist/cjs/{index-de79181a.js → index-59a3e2de.js} +1 -1
  8. package/dist/cjs/{index-f400b1d6.js → index-614af008.js} +2 -0
  9. package/dist/cjs/{index-21bd01e1.js → index-aaaa2af5.js} +6 -1
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/sankhyablocks.cjs.js +2 -2
  12. package/dist/cjs/snk-actions-button.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-actions-form.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-application.cjs.entry.js +4 -4
  15. package/dist/cjs/snk-attach.cjs.entry.js +4 -4
  16. package/dist/cjs/snk-client-confirm.cjs.entry.js +2 -2
  17. package/dist/cjs/snk-config-options.cjs.entry.js +1 -1
  18. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-crud.cjs.entry.js +4 -4
  20. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -4
  21. package/dist/cjs/{snk-data-unit-e9c20097.js → snk-data-unit-53fc9200.js} +2 -2
  22. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -10
  24. package/dist/cjs/snk-entity-list.cjs.entry.js +6 -4
  25. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  26. package/dist/cjs/snk-expression-group.cjs.entry.js +246 -0
  27. package/dist/cjs/{snk-filter-field-search_2.cjs.entry.js → snk-expression-item_3.cjs.entry.js} +327 -66
  28. package/dist/cjs/snk-field-config.cjs.entry.js +1 -1
  29. package/dist/cjs/snk-filter-bar.cjs.entry.js +161 -72
  30. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  31. package/dist/cjs/snk-filter-detail.cjs.entry.js +54 -69
  32. package/dist/cjs/snk-filter-item.cjs.entry.js +21 -7
  33. package/dist/cjs/snk-filter-list.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +57 -29
  35. package/dist/cjs/snk-filter-modal.cjs.entry.js +66 -12
  36. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  37. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  38. package/dist/cjs/snk-filter-period.cjs.entry.js +5 -3
  39. package/dist/cjs/snk-filter-personalized.cjs.entry.js +135 -55
  40. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  42. package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
  43. package/dist/cjs/snk-form-summary.cjs.entry.js +1 -1
  44. package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
  45. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  46. package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
  47. package/dist/cjs/snk-grid.cjs.entry.js +7 -7
  48. package/dist/cjs/{snk-guides-viewer-c8843478.js → snk-guides-viewer-10ffca10.js} +5 -5
  49. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -9
  50. package/dist/cjs/snk-personalized-filter.cjs.entry.js +166 -94
  51. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  52. package/dist/cjs/snk-select-box.cjs.entry.js +1 -1
  53. package/dist/cjs/snk-simple-bar.cjs.entry.js +45 -0
  54. package/dist/cjs/{snk-simple-bar_2.cjs.entry.js → snk-simple-crud.cjs.entry.js} +5 -43
  55. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  56. package/dist/cjs/snk-taskbar.cjs.entry.js +4 -4
  57. package/dist/cjs/{taskbar-elements-3be287d6.js → taskbar-elements-068aa945.js} +3 -3
  58. package/dist/cjs/{taskbar-processor-02f0fc84.js → taskbar-processor-6442c585.js} +1 -1
  59. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  60. package/dist/collection/collection-manifest.json +2 -1
  61. package/dist/collection/components/snk-actions-button/subcomponents/snk-client-confirm.js +1 -1
  62. package/dist/collection/components/snk-entity-list/snk-entity-list.js +6 -4
  63. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +34 -12
  64. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +4 -2
  65. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.css +66 -0
  66. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.js +370 -0
  67. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +52 -68
  68. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +20 -6
  69. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +1 -0
  70. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +110 -10
  71. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +98 -27
  72. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +21 -0
  73. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +100 -49
  74. package/dist/collection/components/snk-filter-bar/types/custom-element-filter.js +1 -0
  75. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +22 -3
  76. package/dist/collection/components/snk-filter-bar/utils/filters-mock.js +96 -0
  77. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.css +1 -1
  78. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +27 -6
  79. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +39 -2
  80. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +276 -30
  81. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.css +73 -0
  82. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +443 -0
  83. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.js +16 -24
  84. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.css +18 -4
  85. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +131 -21
  86. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionGroup.js +0 -0
  87. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionItem.js +5 -1
  88. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.js +1 -0
  89. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IPersonalizedFilter.js +1 -0
  90. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.js +3 -0
  91. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +1 -1
  92. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +184 -15
  93. package/dist/collection/lib/@types/index.js +2 -0
  94. package/dist/collection/lib/configs/ConfigStorage.js +15 -0
  95. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +36 -13
  96. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +106 -4
  97. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +15 -2
  98. package/dist/collection/lib/message/resources/snk-filter-field-search.msg.js +2 -0
  99. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +48 -2
  100. package/dist/components/ConfigStorage.js +180 -1
  101. package/dist/components/PersonalizedFilterUtils.js +227 -0
  102. package/dist/components/SnkMessageBuilder.js +65 -4
  103. package/dist/components/filter-bar-config-fetcher.js +34 -11
  104. package/dist/components/index.d.ts +2 -1
  105. package/dist/components/index.js +1 -0
  106. package/dist/components/index2.js +3 -1
  107. package/dist/components/snk-client-confirm.js +1 -1
  108. package/dist/components/snk-crud.js +65 -35
  109. package/dist/components/snk-data-exporter2.js +1 -1
  110. package/dist/components/snk-detail-view2.js +99 -44
  111. package/dist/components/snk-entity-list.js +6 -4
  112. package/dist/components/snk-expression-group.d.ts +11 -0
  113. package/dist/components/snk-expression-group.js +6 -0
  114. package/dist/components/snk-expression-group2.js +296 -0
  115. package/dist/components/snk-expression-item2.js +133 -46
  116. package/dist/components/snk-filter-bar2.js +195 -68
  117. package/dist/components/snk-filter-detail2.js +52 -68
  118. package/dist/components/snk-filter-field-search2.js +26 -5
  119. package/dist/components/snk-filter-item2.js +20 -6
  120. package/dist/components/snk-filter-modal-item2.js +54 -27
  121. package/dist/components/snk-filter-modal.js +68 -12
  122. package/dist/components/snk-filter-param-config2.js +3 -57
  123. package/dist/components/snk-filter-period.js +4 -2
  124. package/dist/components/snk-filter-personalized.js +139 -58
  125. package/dist/components/snk-grid2.js +52 -16
  126. package/dist/components/snk-personalized-filter.js +1 -153
  127. package/dist/components/snk-personalized-filter2.js +238 -0
  128. package/dist/esm/ConfigStorage-9f4d2e67.js +300 -0
  129. package/dist/esm/IExpressionItem-2e922b2c.js +7 -0
  130. package/dist/esm/PersonalizedFilterUtils-202cd721.js +227 -0
  131. package/dist/esm/{SnkFormConfigManager-e60367a0.js → SnkFormConfigManager-def999fe.js} +1 -1
  132. package/dist/esm/{SnkMessageBuilder-188a38bb.js → SnkMessageBuilder-cc4d1599.js} +65 -4
  133. package/dist/esm/{filter-bar-config-fetcher-edc48f4b.js → filter-bar-config-fetcher-bd2070a3.js} +34 -11
  134. package/dist/esm/{index-cfd4bb13.js → index-8c3d76a6.js} +6 -1
  135. package/dist/esm/{index-507e19ec.js → index-a255b326.js} +3 -1
  136. package/dist/esm/{index-8efbf198.js → index-d60ca0ac.js} +1 -1
  137. package/dist/esm/loader.js +3 -3
  138. package/dist/esm/sankhyablocks.js +3 -3
  139. package/dist/esm/snk-actions-button.entry.js +2 -2
  140. package/dist/esm/snk-actions-form.entry.js +1 -1
  141. package/dist/esm/snk-application.entry.js +4 -4
  142. package/dist/esm/snk-attach.entry.js +4 -4
  143. package/dist/esm/snk-client-confirm.entry.js +2 -2
  144. package/dist/esm/snk-config-options.entry.js +1 -1
  145. package/dist/esm/snk-configurator.entry.js +1 -1
  146. package/dist/esm/snk-crud.entry.js +4 -4
  147. package/dist/esm/snk-data-exporter.entry.js +4 -4
  148. package/dist/esm/{snk-data-unit-79b1583a.js → snk-data-unit-97824457.js} +2 -2
  149. package/dist/esm/snk-data-unit.entry.js +3 -3
  150. package/dist/esm/snk-detail-view.entry.js +10 -10
  151. package/dist/esm/snk-entity-list.entry.js +7 -5
  152. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  153. package/dist/esm/snk-expression-group.entry.js +242 -0
  154. package/dist/esm/{snk-filter-field-search_2.entry.js → snk-expression-item_3.entry.js} +326 -66
  155. package/dist/esm/snk-field-config.entry.js +1 -1
  156. package/dist/esm/snk-filter-bar.entry.js +156 -67
  157. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  158. package/dist/esm/snk-filter-detail.entry.js +55 -70
  159. package/dist/esm/snk-filter-item.entry.js +21 -7
  160. package/dist/esm/snk-filter-list.entry.js +1 -1
  161. package/dist/esm/snk-filter-modal-item.entry.js +57 -29
  162. package/dist/esm/snk-filter-modal.entry.js +66 -12
  163. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  164. package/dist/esm/snk-filter-number.entry.js +1 -1
  165. package/dist/esm/snk-filter-period.entry.js +5 -3
  166. package/dist/esm/snk-filter-personalized.entry.js +135 -55
  167. package/dist/esm/snk-filter-search.entry.js +1 -1
  168. package/dist/esm/snk-filter-text.entry.js +1 -1
  169. package/dist/esm/snk-form-config.entry.js +1 -1
  170. package/dist/esm/snk-form-summary.entry.js +1 -1
  171. package/dist/esm/snk-form-view.entry.js +1 -1
  172. package/dist/esm/snk-form.entry.js +4 -4
  173. package/dist/esm/snk-grid-config.entry.js +3 -3
  174. package/dist/esm/snk-grid.entry.js +7 -7
  175. package/dist/esm/{snk-guides-viewer-59d3a78c.js → snk-guides-viewer-0380f3df.js} +5 -5
  176. package/dist/esm/snk-guides-viewer.entry.js +9 -9
  177. package/dist/esm/snk-personalized-filter.entry.js +166 -94
  178. package/dist/esm/snk-pesquisa.entry.js +1 -1
  179. package/dist/esm/snk-select-box.entry.js +1 -1
  180. package/dist/esm/snk-simple-bar.entry.js +41 -0
  181. package/dist/esm/{snk-simple-bar_2.entry.js → snk-simple-crud.entry.js} +7 -44
  182. package/dist/esm/snk-tab-config.entry.js +1 -1
  183. package/dist/esm/snk-taskbar.entry.js +4 -4
  184. package/dist/esm/{taskbar-elements-8ff33c26.js → taskbar-elements-26d0fba3.js} +3 -3
  185. package/dist/esm/{taskbar-processor-20de6616.js → taskbar-processor-dfef41a8.js} +1 -1
  186. package/dist/esm/teste-pesquisa.entry.js +1 -1
  187. package/dist/sankhyablocks/{p-f27dc5e9.entry.js → p-00d1cac4.entry.js} +1 -1
  188. package/dist/sankhyablocks/{p-b9667fbe.js → p-066ee142.js} +2 -2
  189. package/dist/sankhyablocks/p-09a058ba.entry.js +1 -0
  190. package/dist/sankhyablocks/{p-82bc4666.entry.js → p-0dec4d29.entry.js} +1 -1
  191. package/dist/sankhyablocks/{p-1e6a95f5.entry.js → p-12632b8e.entry.js} +1 -1
  192. package/dist/sankhyablocks/{p-384c4a6b.js → p-18b34bb4.js} +1 -1
  193. package/dist/sankhyablocks/{p-538c057a.entry.js → p-2ad89e28.entry.js} +1 -1
  194. package/dist/sankhyablocks/p-2d5108b3.js +1 -0
  195. package/dist/sankhyablocks/{p-ff398057.entry.js → p-34cd4b39.entry.js} +1 -1
  196. package/dist/sankhyablocks/p-36ecb6ab.js +1 -0
  197. package/dist/sankhyablocks/p-372e0185.entry.js +1 -0
  198. package/dist/sankhyablocks/p-3be34bd1.entry.js +1 -0
  199. package/dist/sankhyablocks/p-3d45107f.js +1 -0
  200. package/dist/sankhyablocks/{p-28c12f65.js → p-463e0936.js} +1 -1
  201. package/dist/sankhyablocks/{p-e701646c.entry.js → p-49d628d1.entry.js} +1 -1
  202. package/dist/sankhyablocks/{p-e642bf7a.entry.js → p-50db4bc4.entry.js} +1 -1
  203. package/dist/sankhyablocks/{p-093febff.entry.js → p-5427566a.entry.js} +1 -1
  204. package/dist/sankhyablocks/{p-6a02e236.js → p-590d8900.js} +1 -1
  205. package/dist/sankhyablocks/p-5a6c090e.entry.js +1 -0
  206. package/dist/sankhyablocks/p-639be4aa.entry.js +1 -0
  207. package/dist/sankhyablocks/{p-e2bb9c9a.entry.js → p-67a19b48.entry.js} +1 -1
  208. package/dist/sankhyablocks/{p-19692f92.js → p-69770075.js} +1 -1
  209. package/dist/sankhyablocks/p-6d4169fc.entry.js +1 -0
  210. package/dist/sankhyablocks/{p-0b40c655.js → p-708ee8ee.js} +1 -1
  211. package/dist/sankhyablocks/{p-9af04fc7.entry.js → p-718cc24b.entry.js} +1 -1
  212. package/dist/sankhyablocks/{p-2d0fc912.entry.js → p-7946512f.entry.js} +1 -1
  213. package/dist/sankhyablocks/{p-900b2889.entry.js → p-7a5e1be7.entry.js} +1 -1
  214. package/dist/sankhyablocks/p-801b8858.js +68 -0
  215. package/dist/sankhyablocks/{p-80e52e85.entry.js → p-847b9506.entry.js} +1 -1
  216. package/dist/sankhyablocks/{p-56d70073.entry.js → p-8d541539.entry.js} +1 -1
  217. package/dist/sankhyablocks/{p-584a315a.entry.js → p-8e98a893.entry.js} +1 -1
  218. package/dist/sankhyablocks/p-9731180c.entry.js +1 -0
  219. package/dist/sankhyablocks/p-a6055eb9.entry.js +1 -0
  220. package/dist/sankhyablocks/{p-b680fa7a.entry.js → p-a655ea15.entry.js} +1 -1
  221. package/dist/sankhyablocks/{p-b75ce8b8.entry.js → p-a8b06801.entry.js} +1 -1
  222. package/dist/sankhyablocks/{p-b25450ab.js → p-a8e5ded0.js} +1 -1
  223. package/dist/sankhyablocks/{p-6ac29569.entry.js → p-b66b99d9.entry.js} +1 -1
  224. package/dist/sankhyablocks/p-b7efc49a.entry.js +1 -0
  225. package/dist/sankhyablocks/{p-9c7f7214.entry.js → p-b91ee370.entry.js} +1 -1
  226. package/dist/sankhyablocks/{p-e551b19a.entry.js → p-b940798f.entry.js} +1 -1
  227. package/dist/sankhyablocks/{p-72e78de0.entry.js → p-bbefb3b2.entry.js} +1 -1
  228. package/dist/sankhyablocks/p-bdd61fa8.entry.js +1 -0
  229. package/dist/sankhyablocks/{p-f8c66aa3.entry.js → p-c06973e7.entry.js} +1 -1
  230. package/dist/sankhyablocks/{p-257c71a7.entry.js → p-c17e19a2.entry.js} +1 -1
  231. package/dist/sankhyablocks/p-c6bf66e0.js +1 -0
  232. package/dist/sankhyablocks/p-cf90a195.entry.js +1 -0
  233. package/dist/sankhyablocks/{p-44c2ed16.entry.js → p-d11c5026.entry.js} +1 -1
  234. package/dist/sankhyablocks/p-d5145c3f.entry.js +1 -0
  235. package/dist/sankhyablocks/p-de328b00.entry.js +1 -0
  236. package/dist/sankhyablocks/{p-971abcc2.entry.js → p-e500863b.entry.js} +1 -1
  237. package/dist/sankhyablocks/{p-22e44b9d.entry.js → p-e824aef2.entry.js} +1 -1
  238. package/dist/sankhyablocks/{p-4ce96831.entry.js → p-eb24c092.entry.js} +1 -1
  239. package/dist/sankhyablocks/{p-4c2015a9.js → p-eb90de43.js} +1 -1
  240. package/dist/sankhyablocks/p-ebb8de34.entry.js +1 -0
  241. package/dist/sankhyablocks/{p-8652d177.entry.js → p-fc512cbe.entry.js} +1 -1
  242. package/dist/sankhyablocks/{p-786ae316.entry.js → p-fced1d89.entry.js} +1 -1
  243. package/dist/sankhyablocks/{p-e0b4aec3.entry.js → p-fdb43927.entry.js} +1 -1
  244. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  245. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.d.ts +85 -0
  246. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +6 -6
  247. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +2 -0
  248. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +18 -1
  249. package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.d.ts +14 -6
  250. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +10 -3
  251. package/dist/types/components/snk-filter-bar/types/custom-element-filter.d.ts +6 -0
  252. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +10 -1
  253. package/dist/types/components/snk-filter-bar/utils/filters-mock.d.ts +92 -15
  254. package/dist/types/components/snk-filter-field-search/interfaces/index.d.ts +5 -11
  255. package/dist/types/components/snk-filter-field-search/snk-filter-field-search.d.ts +3 -0
  256. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +39 -6
  257. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +82 -0
  258. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.d.ts +1 -1
  259. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +13 -1
  260. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionGroup.d.ts +0 -0
  261. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionItem.d.ts +23 -3
  262. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.d.ts +21 -0
  263. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IPersonalizedFilter.d.ts +11 -0
  264. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.d.ts +3 -0
  265. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +14 -2
  266. package/dist/types/components.d.ts +169 -10
  267. package/dist/types/lib/@types/index.d.ts +3 -1
  268. package/dist/types/lib/configs/ConfigStorage.d.ts +5 -0
  269. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +4 -2
  270. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +5 -0
  271. package/dist/types/lib/store/index.d.ts +1 -2
  272. package/package.json +5 -5
  273. package/react/components.d.ts +1 -0
  274. package/react/components.js +1 -0
  275. package/react/components.js.map +1 -1
  276. package/dist/cjs/ConfigStorage-f68c3607.js +0 -124
  277. package/dist/cjs/index-8d94b7e0.js +0 -7
  278. package/dist/cjs/snk-expression-item.cjs.entry.js +0 -213
  279. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +0 -214
  280. package/dist/esm/ConfigStorage-e6c17998.js +0 -121
  281. package/dist/esm/index-620ac460.js +0 -7
  282. package/dist/esm/snk-expression-item.entry.js +0 -209
  283. package/dist/sankhyablocks/p-0b6ddb67.entry.js +0 -1
  284. package/dist/sankhyablocks/p-0c2afa63.entry.js +0 -1
  285. package/dist/sankhyablocks/p-343699ad.entry.js +0 -1
  286. package/dist/sankhyablocks/p-471568c7.entry.js +0 -1
  287. package/dist/sankhyablocks/p-6c2c71ca.js +0 -1
  288. package/dist/sankhyablocks/p-8ce9ea9f.entry.js +0 -1
  289. package/dist/sankhyablocks/p-8efb0f47.entry.js +0 -1
  290. package/dist/sankhyablocks/p-9a448ff9.entry.js +0 -1
  291. package/dist/sankhyablocks/p-9e50681c.entry.js +0 -1
  292. package/dist/sankhyablocks/p-9f66bc54.entry.js +0 -1
  293. package/dist/sankhyablocks/p-b1c02726.js +0 -1
  294. package/dist/sankhyablocks/p-b34d23fa.js +0 -1
  295. package/dist/sankhyablocks/p-c20dd153.entry.js +0 -1
  296. package/dist/sankhyablocks/p-cbb5c440.entry.js +0 -1
  297. package/dist/sankhyablocks/p-f3241ada.entry.js +0 -1
  298. package/dist/sankhyablocks/p-f4184ce7.js +0 -1
  299. package/dist/sankhyablocks/p-ff96b509.entry.js +0 -27
  300. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.d.ts +0 -40
@@ -2,18 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-21bd01e1.js');
5
+ const index$1 = require('./index-aaaa2af5.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const EzScrollDirection = require('@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection');
8
- const ConfigStorage = require('./ConfigStorage-f68c3607.js');
8
+ const ConfigStorage = require('./ConfigStorage-0a738cdc.js');
9
9
  const DataType = require('@sankhyalabs/core/dist/dataunit/metadata/DataType');
10
10
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
11
+ const index = require('./index-614af008.js');
11
12
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
13
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-7d959e91.js');
12
14
  require('./form-config-fetcher-92bc8fe7.js');
13
15
  require('./DataFetcher-a9d0228f.js');
14
16
  require('./_commonjsHelpers-537d719a.js');
15
17
  require('./resource-fetcher-2979b54b.js');
16
- require('./filter-bar-config-fetcher-a14536bf.js');
18
+ require('./filter-bar-config-fetcher-75219599.js');
17
19
 
18
20
  const buildFilter = (item) => {
19
21
  switch (item.type) {
@@ -21,8 +23,8 @@ const buildFilter = (item) => {
21
23
  return buildDefault(item);
22
24
  case filterItemType_enum.FilterItemType.BINARY_SELECT:
23
25
  return buildBinary(item);
24
- case filterItemType_enum.FilterItemType.MULTI_SELECT:
25
- return buildMultSelect(item);
26
+ case filterItemType_enum.FilterItemType.MULTI_LIST:
27
+ return buildMultiList(item);
26
28
  case filterItemType_enum.FilterItemType.PERIOD:
27
29
  return buildPeriod(item);
28
30
  case filterItemType_enum.FilterItemType.SEARCH:
@@ -46,9 +48,25 @@ function buildBinary(item) {
46
48
  const selectedOption = options.find(opt => opt.name === value);
47
49
  return { name: id, expression: selectedOption.expression, params: [] };
48
50
  }
49
- function buildMultSelect(item) {
51
+ function buildMultiList(item) {
50
52
  const { id, value, props } = item;
51
- return { name: id, expression: props.expression, params: [{ name: id, dataType: core.DataType.TEXT, value }] };
53
+ const parsedValues = parseMultiListValues(value);
54
+ if (parsedValues.length > 0) {
55
+ return {
56
+ name: id,
57
+ expression: props.expression,
58
+ params: [{
59
+ name: id,
60
+ dataType: core.DataType.TEXT,
61
+ value: JSON.stringify(parsedValues)
62
+ }]
63
+ };
64
+ }
65
+ }
66
+ function parseMultiListValues(multiListValue) {
67
+ var _a, _b;
68
+ const value = (_b = (_a = multiListValue === null || multiListValue === void 0 ? void 0 : multiListValue.elements) !== null && _a !== void 0 ? _a : multiListValue === null || multiListValue === void 0 ? void 0 : multiListValue.members) !== null && _b !== void 0 ? _b : multiListValue;
69
+ return value.filter(item => item === null || item === void 0 ? void 0 : item.check).map(({ id }) => Number.isNaN(+id) ? String(id) : Number(id));
52
70
  }
53
71
  function buildPeriod(item) {
54
72
  const { id, value, props } = item;
@@ -93,12 +111,13 @@ function buildNumber(item) {
93
111
  return { name: id, expression, params: [{ name: id, dataType: core.DataType.NUMBER, value: DataType.toString(core.DataType.NUMBER, value) }] };
94
112
  }
95
113
  function buildPersonalized(item) {
96
- var _a;
97
- const { id, value, props } = item;
98
- const expression = props.expression;
99
- return {
100
- name: id, expression, params: (((_a = props.personalizedFilter) === null || _a === void 0 ? void 0 : _a.parameters) || []).map((param, index) => {
101
- const valuesArray = Array.from(value);
114
+ const { id, groupedItems = [] } = item;
115
+ const activeFilters = groupedItems.filter(groupItem => !!groupItem.visible);
116
+ const filters = activeFilters.map(item => {
117
+ var _a;
118
+ const expression = item.props.expression;
119
+ const params = (((_a = item.props.personalizedFilter) === null || _a === void 0 ? void 0 : _a.parameters) || []).map((param, index) => {
120
+ const valuesArray = Array.from(item.value || 0);
102
121
  const dataType = param.dataType;
103
122
  let paramValue = (index >= 0 && index < valuesArray.length ? valuesArray[index] : null);
104
123
  if (paramValue != undefined && typeof paramValue === "object" && "value" in paramValue) {
@@ -108,30 +127,49 @@ function buildPersonalized(item) {
108
127
  paramValue = false;
109
128
  }
110
129
  return { name: param.name, dataType, value: typeof paramValue === "string" ? paramValue : DataType.toString(dataType, paramValue) };
111
- })
112
- };
130
+ });
131
+ return { expression, name: item.id, params };
132
+ });
133
+ const expression = filters.map(filter => `(${filter.expression})`).join(` ${index.FilterOperand.AND} `);
134
+ const params = filters.flatMap(filter => filter.params);
135
+ return { name: id, expression, params };
113
136
  }
114
137
 
115
138
  class SnkFilterModalFactory {
116
- constructor({ filterConfig, onComplete, getMessage }) {
139
+ constructor({ filterConfig, configName, onComplete, getMessage, onAddPersonalizedFilter, onEditPersonalizedFilter }) {
117
140
  this._filterConfig = filterConfig;
141
+ this._configName = configName;
118
142
  this._onComplete = onComplete;
119
143
  this._getMessage = getMessage;
144
+ this._addPersonalizedFilterFn = onAddPersonalizedFilter;
145
+ this._editPersonalizedFilterFn = onEditPersonalizedFilter;
120
146
  }
121
147
  applyFilters(newFilterConfig) {
122
148
  this._onComplete(newFilterConfig);
123
149
  this._closeModal();
124
150
  }
125
151
  clearAll(filterConfigSnapshot) {
126
- return filterConfigSnapshot.map(filterItem => (Object.assign(Object.assign({}, filterItem), { value: undefined })));
152
+ return filterConfigSnapshot.map(filterItem => {
153
+ const copy = Object.assign({}, filterItem);
154
+ delete copy.value;
155
+ if (filterItem.type === filterItemType_enum.FilterItemType.PERSONALIZED) {
156
+ copy.visible = false;
157
+ }
158
+ if (copy.groupedItems) {
159
+ copy.groupedItems = this.clearAll(copy.groupedItems);
160
+ }
161
+ return copy;
162
+ });
127
163
  }
128
164
  buildFilterModal() {
129
165
  const filterModal = document.createElement("snk-filter-modal");
130
166
  filterModal.filters = this._filterConfig;
167
+ filterModal.configName = this._configName;
131
168
  filterModal.getMessage = this._getMessage.bind(this);
132
169
  filterModal.applyFilters = this.applyFilters.bind(this);
133
- filterModal.clearAll = this.clearAll.bind(this);
134
170
  filterModal.closeModal = () => this._closeModal();
171
+ filterModal.addPersonalizedFilter = () => this._addPersonalizedFilterFn();
172
+ filterModal.editPersonalizedFilter = (id) => this._editPersonalizedFilterFn(id);
135
173
  return filterModal;
136
174
  }
137
175
  async showModal() {
@@ -145,17 +183,21 @@ class SnkFilterModalFactory {
145
183
  };
146
184
  this._closeModal = await utils.ApplicationUtils.showModal(modalProps);
147
185
  }
186
+ async closeModal() {
187
+ this._closeModal();
188
+ }
148
189
  }
149
190
 
150
- const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:minmax(100px, 100%) 1fr 1fr}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;z-index:var(--most-visible, 3);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)}.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%}";
191
+ const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--more-visible, 2);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.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;z-index:var(--most-visible, 3);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)}.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%}";
151
192
 
152
193
  const SnkFilterBar = class {
153
194
  constructor(hostRef) {
154
- index.registerInstance(this, hostRef);
195
+ index$1.registerInstance(this, hostRef);
155
196
  this._updateSequence = [];
156
197
  this._loadingPending = false;
157
198
  this._configUpdated = false;
158
- this._pendingFilters = [];
199
+ this._pendingVariables = false;
200
+ this._customfiltersToBeUpdated = [];
159
201
  this._calculateSortIndex = (item) => {
160
202
  let index = item.hardFixed ? 1000000 : 0;
161
203
  //campos Hard Fixed não variam a ordem
@@ -175,6 +217,8 @@ const SnkFilterBar = class {
175
217
  this.messagesBuilder = undefined;
176
218
  this.allowDefault = undefined;
177
219
  this.scrollerLocked = false;
220
+ this.showPersonalizedFilter = false;
221
+ this.personalizedFilterId = undefined;
178
222
  }
179
223
  observeFilterConfig(newValue, oldValue) {
180
224
  if (oldValue != undefined && newValue == undefined) {
@@ -183,17 +227,28 @@ const SnkFilterBar = class {
183
227
  }
184
228
  else {
185
229
  const oldItems = new Map(oldValue ? oldValue.map(item => [item.id, item]) : undefined);
186
- newValue.forEach(newItem => {
187
- const oldItem = oldItems.get(newItem.id);
188
- if (oldItem != undefined) {
189
- this._configUpdated = this._configUpdated || core.ObjectUtils.objectToString(oldItem) != core.ObjectUtils.objectToString(newItem);
190
- this._loadingPending = this._loadingPending || core.ObjectUtils.objectToString(oldItem.value) !== core.ObjectUtils.objectToString(newItem.value);
191
- }
192
- else {
193
- this._configUpdated = true;
194
- this._loadingPending = this._loadingPending || newItem.value != undefined;
195
- }
196
- });
230
+ if (oldItems.size === 0 && newValue.length > 0) {
231
+ this._loadingPending = true;
232
+ this._configUpdated = false;
233
+ }
234
+ else {
235
+ newValue.forEach(newItem => {
236
+ const oldItem = oldItems.get(newItem.id);
237
+ if (oldItem != undefined) {
238
+ this._configUpdated = this._configUpdated || core.ObjectUtils.objectToString(oldItem) != core.ObjectUtils.objectToString(newItem);
239
+ this._loadingPending = this._loadingPending || core.ObjectUtils.objectToString(oldItem.value) !== core.ObjectUtils.objectToString(newItem.value);
240
+ if (!this._loadingPending) {
241
+ const groupedChanged = core.ObjectUtils.objectToString(oldItem.groupedItems) != core.ObjectUtils.objectToString(newItem.groupedItems);
242
+ this._configUpdated = this._configUpdated || groupedChanged;
243
+ this._loadingPending = this._loadingPending || groupedChanged;
244
+ }
245
+ }
246
+ else {
247
+ this._configUpdated = true;
248
+ this._loadingPending = this._loadingPending || newItem.value != undefined;
249
+ }
250
+ });
251
+ }
197
252
  }
198
253
  this.processAfterUpdateConfig();
199
254
  }
@@ -210,30 +265,31 @@ const SnkFilterBar = class {
210
265
  }
211
266
  }
212
267
  processPendingFilter() {
213
- if (this._pendingFilters.length > 0 && this._currentPendingFilter == undefined) {
214
- this._currentPendingFilter = this._element.querySelector("#filter-" + this._pendingFilters.pop());
215
- if (this._currentPendingFilter) {
216
- this._currentPendingFilter.showUp(true).then(() => {
217
- this._currentPendingFilter = undefined;
218
- this.processPendingFilter();
268
+ if (this._pendingVariables) {
269
+ const popUp = this._element.querySelector("#filter-PERSONALIZED_FILTER_GROUP");
270
+ if (popUp) {
271
+ popUp.showUp(true).then(() => {
272
+ this.processAfterUpdateConfig();
219
273
  });
220
274
  }
221
275
  }
222
- if (this._currentPendingFilter == undefined) {
276
+ else {
223
277
  this.processAfterUpdateConfig();
224
278
  }
225
279
  }
226
- processAfterUpdateConfig() {
227
- if (this._pendingFilters.length > 0) {
228
- return;
229
- }
280
+ async processAfterUpdateConfig() {
230
281
  if (this._loadingPending) {
231
- this._loadingPending = false;
232
- this._inProgressLoadFromConfig = new Promise((resolve) => {
233
- this.dataUnit.loadData().then(() => {
234
- resolve();
235
- });
282
+ const personalizedFilter = this.filterConfig.find(item => {
283
+ if (item.type === filterItemType_enum.FilterItemType.PERSONALIZED) {
284
+ return true;
285
+ }
236
286
  });
287
+ this._pendingVariables = !PersonalizedFilterUtils.PersonalizedFilterUtils.validateVariableValues(personalizedFilter);
288
+ if (this._pendingVariables) {
289
+ return;
290
+ }
291
+ this._loadingPending = false;
292
+ this.dataUnit.loadData();
237
293
  }
238
294
  if (this._configUpdated) {
239
295
  this._configUpdated = false;
@@ -262,7 +318,14 @@ const SnkFilterBar = class {
262
318
  return filters;
263
319
  }
264
320
  isActiveFilter(item) {
265
- return (item.visible && item.value != undefined) || item.type === filterItemType_enum.FilterItemType.DEFAULT_FILTER;
321
+ /*
322
+ - O filtro padrão também deve sempre ser condiderado ativo, pois, sempre deve
323
+ ser aplicado.
324
+ */
325
+ if (item.type === filterItemType_enum.FilterItemType.DEFAULT_FILTER) {
326
+ return true;
327
+ }
328
+ return item.visible && (item.groupedItems || item.value != undefined);
266
329
  }
267
330
  registryFilterProvider() {
268
331
  this.dataUnit.addFilterProvider(this);
@@ -282,14 +345,18 @@ const SnkFilterBar = class {
282
345
  }
283
346
  });
284
347
  }
348
+ filterActiveFilter(item) {
349
+ return item.visible || item.removalBlocked;
350
+ }
285
351
  getFilterItems() {
286
352
  const pinnedItems = [];
287
353
  const unpinnedItems = [];
288
354
  this.filterConfig
289
- .filter(item => item.visible)
290
- .forEach((item, index$1) => {
355
+ .filter(this.filterActiveFilter)
356
+ .forEach((item, index) => {
357
+ item = core.ObjectUtils.copy(item);
291
358
  const itemId = `filter-${item.id}`;
292
- const filterItem = (index.h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, class: index$1 > 0 ? "ez-padding-left--medium" : "", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
359
+ const filterItem = (index$1.h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, class: index > 0 ? "ez-padding-left--medium" : "", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
293
360
  if (item.fixed || item.hardFixed) {
294
361
  pinnedItems.push(filterItem);
295
362
  }
@@ -301,7 +368,7 @@ const SnkFilterBar = class {
301
368
  const elements = [];
302
369
  elements.push(...pinnedItems);
303
370
  if (pinnedItems.length > 0 && unpinnedItems.length > 0) {
304
- elements.push(index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider" }));
371
+ elements.push(index$1.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider" }));
305
372
  }
306
373
  elements.push(...unpinnedItems);
307
374
  return elements;
@@ -341,19 +408,16 @@ const SnkFilterBar = class {
341
408
  this._application.isUserSup().then(value => this.allowDefault = value);
342
409
  }
343
410
  loadConfigFromStorage() {
344
- ConfigStorage.ConfigStorage.get().then(instance => {
345
- instance.loadFilterBarConfig(this.configName)
346
- .then((filters) => {
347
- var _a;
348
- this.filterConfig = filters.map(item => this.normalizeItem(item));
349
- if (this._inProgressLoadFromConfig) {
350
- return;
351
- }
352
- (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.loadData(undefined, undefined, true);
353
- this._inProgressLoadFromConfig = undefined;
354
- })
355
- .catch(reason => {
356
- throw new core.ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
411
+ return new Promise(accept => {
412
+ ConfigStorage.ConfigStorage.get().then(instance => {
413
+ instance.loadFilterBarConfig(this.configName)
414
+ .then((filters) => {
415
+ accept();
416
+ this.filterConfig = filters.map(item => this.normalizeItem(item));
417
+ })
418
+ .catch(reason => {
419
+ throw new core.ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
420
+ });
357
421
  });
358
422
  });
359
423
  }
@@ -393,12 +457,34 @@ const SnkFilterBar = class {
393
457
  this.filterConfig = filters.map(this.normalizeItem).sort((a, b) => this._filtersComparator(a, b));
394
458
  };
395
459
  const factoryParams = {
396
- filterConfig: this.filterConfig,
460
+ filterConfig: core.ObjectUtils.copy(this.filterConfig),
461
+ configName: this.configName,
397
462
  onComplete: callbackOnApplyFilter,
398
- getMessage: (key, props) => this.getMessage(key, props)
463
+ getMessage: (key, props) => this.getMessage(key, props),
464
+ onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
465
+ onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id)
399
466
  };
400
- const factory = new SnkFilterModalFactory(factoryParams);
401
- await factory.showModal();
467
+ this._filterModalFactory = new SnkFilterModalFactory(factoryParams);
468
+ await this._filterModalFactory.showModal();
469
+ }
470
+ addPersonalizedFilter() {
471
+ this._filterModalFactory.closeModal();
472
+ this.personalizedFilterId = undefined;
473
+ this.showPersonalizedFilter = true;
474
+ window.requestAnimationFrame(() => {
475
+ this._elPersonalizedFilter.createPersonalizedFilter();
476
+ });
477
+ }
478
+ editPersonalizedFilter(id) {
479
+ this._filterModalFactory.closeModal();
480
+ this.showPersonalizedFilter = true;
481
+ this.personalizedFilterId = id;
482
+ }
483
+ hidePersonalizedFilter() {
484
+ this.loadConfigFromStorage().then(() => {
485
+ this.personalizedFilterId = undefined;
486
+ this.showPersonalizedFilter = false;
487
+ });
402
488
  }
403
489
  componentWillLoad() {
404
490
  this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -415,9 +501,12 @@ const SnkFilterBar = class {
415
501
  if (!this.dataUnit || !this.filterConfig || this.filterConfig.length === 0) {
416
502
  return undefined;
417
503
  }
418
- return (index.h(index.Host, null, index.h("ez-scroller", { direction: EzScrollDirection.EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, this.getFilterItems()), index.h("ez-button", { class: "ez-padding-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, index.h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
504
+ if (this.showPersonalizedFilter) {
505
+ return index$1.h("snk-personalized-filter", { class: "filter-bar__personalized-filter", filterId: this.personalizedFilterId, ref: (el) => this._elPersonalizedFilter = el, onEzCancel: () => this.hidePersonalizedFilter(), entityUri: this.dataUnit.name, configName: this.configName });
506
+ }
507
+ return index$1.h(index$1.Host, null, index$1.h("ez-scroller", { direction: EzScrollDirection.EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, this.getFilterItems()), index$1.h("ez-button", { class: "ez-padding-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, index$1.h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" })));
419
508
  }
420
- get _element() { return index.getElement(this); }
509
+ get _element() { return index$1.getElement(this); }
421
510
  static get watchers() { return {
422
511
  "filterConfig": ["observeFilterConfig"]
423
512
  }; }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-21bd01e1.js');
5
+ const index = require('./index-aaaa2af5.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
@@ -2,14 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-21bd01e1.js');
5
+ const index = require('./index-aaaa2af5.js');
6
6
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
7
7
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
8
8
  const core = require('@sankhyalabs/core');
9
- const filterBarConfigFetcher = require('./filter-bar-config-fetcher-a14536bf.js');
9
+ const filterBarConfigFetcher = require('./filter-bar-config-fetcher-75219599.js');
10
+ const presentationMode = require('./presentationMode-52ec3bdd.js');
11
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-7d959e91.js');
10
12
  require('./resource-fetcher-2979b54b.js');
11
13
  require('./DataFetcher-a9d0228f.js');
12
14
  require('./_commonjsHelpers-537d719a.js');
15
+ require('./index-614af008.js');
13
16
 
14
17
  const SnkFilterDetail = class {
15
18
  constructor(hostRef) {
@@ -25,8 +28,9 @@ const SnkFilterDetail = class {
25
28
  var _a, _b;
26
29
  (_b = (_a = this._editor) === null || _a === void 0 ? void 0 : _a["show"]) === null || _b === void 0 ? void 0 : _b.call(_a);
27
30
  }
28
- observeConfig() {
31
+ observeConfig(newValue) {
29
32
  var _a, _b;
33
+ this._editor && (this._editor["config"] = newValue);
30
34
  (_b = (_a = this._editor) === null || _a === void 0 ? void 0 : _a["reloadList"]) === null || _b === void 0 ? void 0 : _b.call(_a);
31
35
  }
32
36
  componentDidLoad() {
@@ -43,24 +47,37 @@ const SnkFilterDetail = class {
43
47
  getContentEditor() {
44
48
  switch (this.config.type) {
45
49
  case filterItemType_enum.FilterItemType.BINARY_SELECT:
46
- return "snk-filter-binary-select";
50
+ return { tag: "snk-filter-binary-select" };
47
51
  case filterItemType_enum.FilterItemType.MULTI_SELECT:
48
- return "snk-filter-multi-select";
52
+ return { tag: "snk-filter-multi-select" };
49
53
  case filterItemType_enum.FilterItemType.PERIOD:
50
- return "snk-filter-period";
54
+ return { tag: "snk-filter-period" };
51
55
  case filterItemType_enum.FilterItemType.SEARCH:
52
- return "snk-filter-search";
56
+ return { tag: "snk-filter-search" };
53
57
  case filterItemType_enum.FilterItemType.NUMBER:
54
- return "snk-filter-number";
58
+ return { tag: "snk-filter-number" };
55
59
  case filterItemType_enum.FilterItemType.PERSONALIZED:
56
- return "snk-filter-personalized";
60
+ const snkFilterPersonalizedProps = {
61
+ tag: "snk-filter-personalized", props: {
62
+ presentationMode: presentationMode.EPresentationMode.CHIP,
63
+ onValueChanged: ({ detail }) => {
64
+ const groupedItems = (detail === null || detail === void 0 ? void 0 : detail.items) || this.config.groupedItems;
65
+ this.config = Object.assign(Object.assign({}, this.config), { groupedItems, visible: (groupedItems || []).filter(item => item.visible).length > 0 });
66
+ }
67
+ }
68
+ };
69
+ return snkFilterPersonalizedProps;
57
70
  case filterItemType_enum.FilterItemType.MULTI_LIST:
58
- return "snk-entity-list";
71
+ return { tag: "snk-entity-list" };
59
72
  }
60
- return "snk-filter-text";
73
+ return { tag: "snk-filter-text" };
61
74
  }
62
75
  removeItem() {
63
- this.changeConfig(Object.assign(Object.assign({}, this.config), { visible: false, fixed: false, value: undefined }));
76
+ const removedConfig = Object.assign(Object.assign({}, this.config), { visible: false, fixed: false, value: undefined });
77
+ if (removedConfig.groupedItems != undefined) {
78
+ removedConfig.groupedItems = removedConfig.groupedItems.map(item => (Object.assign(Object.assign({}, item), { visible: false, fixed: false, value: undefined })));
79
+ }
80
+ this.changeConfig(removedConfig);
64
81
  }
65
82
  getPopUpHeaderButtons() {
66
83
  return (index.h(index.Fragment, null, !this.config.removalBlocked && this.buildIcon(this.getMessage("snkFilterBar.removeFilter"), "delete", () => this.removeItem()), !this.config.hardFixed && this.buildIcon(this.getMessage(this.config.fixed ? "snkFilterBar.unpinFilter" : "snkFilterBar.pinFilter"), this.config.fixed ? "un-pin" : "push-pin", () => this.changeConfig(Object.assign(Object.assign({}, this.config), { fixed: !this.config.fixed })))));
@@ -75,69 +92,34 @@ const SnkFilterDetail = class {
75
92
  buttonElement.removeAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
76
93
  core.ElementIDUtils.addIDInfoIfNotExists(buttonElement, "button", dataElement);
77
94
  }
78
- getNormalizedValue(params, value) {
79
- return params.reduce((arrayValues, currentParam, index) => {
80
- if (currentParam.dataType === core.DataType.BOOLEAN && (arrayValues == undefined || arrayValues[index] == undefined)) {
81
- arrayValues = arrayValues || [];
82
- arrayValues[index] = false;
83
- }
84
- return arrayValues;
85
- }, value);
86
- }
87
95
  apply() {
88
- var _a;
89
- let value = this._editor["value"];
90
- let isValid = true;
91
- if (this.config.type === filterItemType_enum.FilterItemType.PERSONALIZED) {
92
- const params = ((_a = this.config.props.personalizedFilter) === null || _a === void 0 ? void 0 : _a.parameters) || [];
93
- value = this.getNormalizedValue(params, value);
94
- const paramsCount = params.length;
95
- if (paramsCount === 0) {
96
- //Valor do filtro personalizado sem parametros deve ser um array vazio
97
- value = [];
98
- }
99
- else {
100
- isValid = this.validateAllFilled(paramsCount, value);
101
- }
102
- }
103
- if (isValid) {
104
- this.changeConfig(Object.assign(Object.assign({}, this.config), { value: value }));
96
+ const isValid = PersonalizedFilterUtils.PersonalizedFilterUtils.validateVariableValues(this.config, this._editor["value"]);
97
+ if (!isValid) {
98
+ return utils.ApplicationUtils.alert(this.getMessage('snkFilterBar.filterModal.validations.notFullFilled.title'), this.getMessage('snkFilterBar.filterModal.validations.notFullFilled.message'));
105
99
  }
100
+ const valuesArray = this._editor["value"] || this.config.value;
101
+ this.changeConfig(Object.assign(Object.assign({}, this.config), { visible: this.isVisible(), value: valuesArray }));
106
102
  }
107
- /* WARNING: Temporário. Isso só está sendo feito até desconsiderar os parametros não informados para PersonalizedFilter*/
108
- validateAllFilled(paramsCount, value) {
109
- let isValid = true;
110
- if (value != undefined && paramsCount > 1) {
111
- if (paramsCount > value.length) {
112
- isValid = false;
113
- }
114
- else {
115
- value.forEach(item => {
116
- if (item == undefined) {
117
- isValid = false;
118
- }
119
- });
120
- }
103
+ isVisible() {
104
+ if (this.config.groupedItems && this.config.groupedItems.length > 0) {
105
+ return this.config.groupedItems.filter(item => item.visible).length > 0;
121
106
  }
122
- if (!isValid) {
123
- utils.ApplicationUtils.alert("Filtro parcialmente preenchido", "Favor completar todas as informações do filtro.");
124
- }
125
- return isValid;
107
+ return true;
126
108
  }
127
- /* WARNING: Temporário.*/
128
109
  clear() {
129
- var _a, _b;
110
+ var _a;
130
111
  if (filterItemType_enum.FilterItemType.MULTI_LIST === this.config.type) {
131
- (_a = this.config.value) === null || _a === void 0 ? void 0 : _a.forEach(value => {
132
- if (!!value)
133
- value.check = false;
134
- });
135
- (_b = this._editor) === null || _b === void 0 ? void 0 : _b['reloadList']();
112
+ const configCopy = core.ObjectUtils.copy(this.config);
113
+ (_a = configCopy.value) === null || _a === void 0 ? void 0 : _a.forEach(value => !!value && (value.check = false));
114
+ this.config = core.ObjectUtils.copy(configCopy);
136
115
  }
137
116
  else {
138
117
  this.changeConfig(Object.assign(Object.assign({}, this.config), { value: undefined }));
139
118
  }
140
119
  }
120
+ filterCanBeCleared() {
121
+ return this.config.type !== filterItemType_enum.FilterItemType.PERSONALIZED;
122
+ }
141
123
  onKeyDonwListener(event) {
142
124
  if (event.key === "Enter") {
143
125
  this._applyButton.setFocus().then(() => this.apply());
@@ -147,10 +129,13 @@ const SnkFilterDetail = class {
147
129
  return index.h("ez-icon", { iconName: "delete", onClick: () => this.removeValueFromConfig(item) });
148
130
  }
149
131
  removeValueFromConfig(item) {
150
- var _a, _b, _c, _d, _e, _f;
151
- const index = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.findIndex(i => (i === null || i === void 0 ? void 0 : i.id) === item.id);
152
- (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.splice(index, 1);
153
- (_f = (_e = this._editor) === null || _e === void 0 ? void 0 : _e["reloadList"]) === null || _f === void 0 ? void 0 : _f.call(_e);
132
+ var _a, _b;
133
+ if (this.config) {
134
+ const configCopy = core.ObjectUtils.copy(this.config);
135
+ const index = (_a = configCopy.value) === null || _a === void 0 ? void 0 : _a.findIndex(i => (i === null || i === void 0 ? void 0 : i.id) === item.id);
136
+ (_b = configCopy.value) === null || _b === void 0 ? void 0 : _b.splice(index, 1);
137
+ this.config = core.ObjectUtils.copy(configCopy);
138
+ }
154
139
  }
155
140
  saveConfig(newConfig) {
156
141
  var _a;
@@ -161,8 +146,8 @@ const SnkFilterDetail = class {
161
146
  });
162
147
  }
163
148
  render() {
164
- const ContentEditor = this.getContentEditor();
165
- return (index.h(index.Host, null, index.h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, index.h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), index.h(ContentEditor, { maxHeightList: '240px', ref: ref => this._editor = ref, value: this.config.value, config: this.config, onKeyDown: evt => this.onKeyDonwListener(evt), "data-element-id": this._idContentEditor, getMessage: this.getMessage, onSaveConfig: evt => this.saveConfig(evt.detail), rightListSlotBuilder: item => this.buildRightSlot(item) }), index.h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), index.h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, index.h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.clear(), size: "small" }), index.h("ez-button", { ref: ref => this._applyButton = ref, label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.apply(), size: "small", class: "ez-button--primary ez-padding-left--medium" }))));
149
+ const { tag: CustomElement, props } = this.getContentEditor();
150
+ return (index.h(index.Host, null, index.h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, index.h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), index.h(CustomElement, Object.assign({ maxHeightList: '240px', ref: ref => this._editor = ref, value: this.config.value, config: this.config, onKeyDown: evt => this.onKeyDonwListener(evt), "data-element-id": this._idContentEditor, getMessage: this.getMessage, onSaveConfig: evt => this.saveConfig(evt.detail), rightListSlotBuilder: item => this.buildRightSlot(item) }, props)), index.h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), index.h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, this.filterCanBeCleared() && (index.h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.clear(), size: "small" })), index.h("ez-button", { ref: ref => this._applyButton = ref, label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.apply(), size: "small", class: "ez-button--primary ez-padding-left--medium" }))));
166
151
  }
167
152
  get _element() { return index.getElement(this); }
168
153
  static get watchers() { return {