@sankhyalabs/sankhyablocks 5.19.1 → 6.0.1

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 (298) 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 +1 -1
  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 +162 -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 +67 -13
  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-entity-list/snk-entity-list.js +6 -4
  62. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +34 -12
  63. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +4 -2
  64. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.css +66 -0
  65. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.js +370 -0
  66. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +52 -68
  67. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +20 -6
  68. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +15 -15
  69. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +111 -11
  70. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +98 -27
  71. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +21 -0
  72. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +100 -49
  73. package/dist/collection/components/snk-filter-bar/types/custom-element-filter.js +1 -0
  74. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +23 -3
  75. package/dist/collection/components/snk-filter-bar/utils/filters-mock.js +96 -0
  76. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.css +1 -1
  77. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +27 -6
  78. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +39 -2
  79. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +276 -30
  80. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.css +73 -0
  81. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +443 -0
  82. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.js +16 -24
  83. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.css +18 -4
  84. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +131 -21
  85. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionGroup.js +0 -0
  86. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionItem.js +5 -1
  87. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.js +1 -0
  88. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IPersonalizedFilter.js +1 -0
  89. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.js +3 -0
  90. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +1 -1
  91. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +184 -15
  92. package/dist/collection/lib/@types/index.js +2 -0
  93. package/dist/collection/lib/configs/ConfigStorage.js +15 -0
  94. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +36 -13
  95. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +106 -4
  96. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +15 -2
  97. package/dist/collection/lib/message/resources/snk-filter-field-search.msg.js +2 -0
  98. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +48 -2
  99. package/dist/components/ConfigStorage.js +180 -1
  100. package/dist/components/PersonalizedFilterUtils.js +227 -0
  101. package/dist/components/SnkMessageBuilder.js +65 -4
  102. package/dist/components/filter-bar-config-fetcher.js +34 -11
  103. package/dist/components/index.d.ts +2 -1
  104. package/dist/components/index.js +1 -0
  105. package/dist/components/index2.js +3 -1
  106. package/dist/components/snk-crud.js +65 -35
  107. package/dist/components/snk-data-exporter2.js +1 -1
  108. package/dist/components/snk-detail-view2.js +99 -44
  109. package/dist/components/snk-entity-list.js +6 -4
  110. package/dist/components/snk-expression-group.d.ts +11 -0
  111. package/dist/components/snk-expression-group.js +6 -0
  112. package/dist/components/snk-expression-group2.js +296 -0
  113. package/dist/components/snk-expression-item2.js +133 -46
  114. package/dist/components/snk-filter-bar2.js +196 -68
  115. package/dist/components/snk-filter-detail2.js +52 -68
  116. package/dist/components/snk-filter-field-search2.js +26 -5
  117. package/dist/components/snk-filter-item2.js +20 -6
  118. package/dist/components/snk-filter-modal-item2.js +54 -27
  119. package/dist/components/snk-filter-modal.js +69 -13
  120. package/dist/components/snk-filter-param-config2.js +3 -57
  121. package/dist/components/snk-filter-period.js +4 -2
  122. package/dist/components/snk-filter-personalized.js +139 -58
  123. package/dist/components/snk-grid2.js +52 -16
  124. package/dist/components/snk-personalized-filter.js +1 -153
  125. package/dist/components/snk-personalized-filter2.js +238 -0
  126. package/dist/esm/ConfigStorage-9f4d2e67.js +300 -0
  127. package/dist/esm/IExpressionItem-2e922b2c.js +7 -0
  128. package/dist/esm/PersonalizedFilterUtils-202cd721.js +227 -0
  129. package/dist/esm/{SnkFormConfigManager-e60367a0.js → SnkFormConfigManager-def999fe.js} +1 -1
  130. package/dist/esm/{SnkMessageBuilder-188a38bb.js → SnkMessageBuilder-cc4d1599.js} +65 -4
  131. package/dist/esm/{filter-bar-config-fetcher-edc48f4b.js → filter-bar-config-fetcher-bd2070a3.js} +34 -11
  132. package/dist/esm/{index-cfd4bb13.js → index-8c3d76a6.js} +6 -1
  133. package/dist/esm/{index-507e19ec.js → index-a255b326.js} +3 -1
  134. package/dist/esm/{index-8efbf198.js → index-d60ca0ac.js} +1 -1
  135. package/dist/esm/loader.js +3 -3
  136. package/dist/esm/sankhyablocks.js +3 -3
  137. package/dist/esm/snk-actions-button.entry.js +2 -2
  138. package/dist/esm/snk-actions-form.entry.js +1 -1
  139. package/dist/esm/snk-application.entry.js +4 -4
  140. package/dist/esm/snk-attach.entry.js +4 -4
  141. package/dist/esm/snk-client-confirm.entry.js +1 -1
  142. package/dist/esm/snk-config-options.entry.js +1 -1
  143. package/dist/esm/snk-configurator.entry.js +1 -1
  144. package/dist/esm/snk-crud.entry.js +4 -4
  145. package/dist/esm/snk-data-exporter.entry.js +4 -4
  146. package/dist/esm/{snk-data-unit-79b1583a.js → snk-data-unit-97824457.js} +2 -2
  147. package/dist/esm/snk-data-unit.entry.js +3 -3
  148. package/dist/esm/snk-detail-view.entry.js +10 -10
  149. package/dist/esm/snk-entity-list.entry.js +7 -5
  150. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  151. package/dist/esm/snk-expression-group.entry.js +242 -0
  152. package/dist/esm/{snk-filter-field-search_2.entry.js → snk-expression-item_3.entry.js} +326 -66
  153. package/dist/esm/snk-field-config.entry.js +1 -1
  154. package/dist/esm/snk-filter-bar.entry.js +157 -67
  155. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  156. package/dist/esm/snk-filter-detail.entry.js +55 -70
  157. package/dist/esm/snk-filter-item.entry.js +21 -7
  158. package/dist/esm/snk-filter-list.entry.js +1 -1
  159. package/dist/esm/snk-filter-modal-item.entry.js +57 -29
  160. package/dist/esm/snk-filter-modal.entry.js +67 -13
  161. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  162. package/dist/esm/snk-filter-number.entry.js +1 -1
  163. package/dist/esm/snk-filter-period.entry.js +5 -3
  164. package/dist/esm/snk-filter-personalized.entry.js +135 -55
  165. package/dist/esm/snk-filter-search.entry.js +1 -1
  166. package/dist/esm/snk-filter-text.entry.js +1 -1
  167. package/dist/esm/snk-form-config.entry.js +1 -1
  168. package/dist/esm/snk-form-summary.entry.js +1 -1
  169. package/dist/esm/snk-form-view.entry.js +1 -1
  170. package/dist/esm/snk-form.entry.js +4 -4
  171. package/dist/esm/snk-grid-config.entry.js +3 -3
  172. package/dist/esm/snk-grid.entry.js +7 -7
  173. package/dist/esm/{snk-guides-viewer-59d3a78c.js → snk-guides-viewer-0380f3df.js} +5 -5
  174. package/dist/esm/snk-guides-viewer.entry.js +9 -9
  175. package/dist/esm/snk-personalized-filter.entry.js +166 -94
  176. package/dist/esm/snk-pesquisa.entry.js +1 -1
  177. package/dist/esm/snk-select-box.entry.js +1 -1
  178. package/dist/esm/snk-simple-bar.entry.js +41 -0
  179. package/dist/esm/{snk-simple-bar_2.entry.js → snk-simple-crud.entry.js} +7 -44
  180. package/dist/esm/snk-tab-config.entry.js +1 -1
  181. package/dist/esm/snk-taskbar.entry.js +4 -4
  182. package/dist/esm/{taskbar-elements-8ff33c26.js → taskbar-elements-26d0fba3.js} +3 -3
  183. package/dist/esm/{taskbar-processor-20de6616.js → taskbar-processor-dfef41a8.js} +1 -1
  184. package/dist/esm/teste-pesquisa.entry.js +1 -1
  185. package/dist/sankhyablocks/{p-f27dc5e9.entry.js → p-00d1cac4.entry.js} +1 -1
  186. package/dist/sankhyablocks/{p-b9667fbe.js → p-066ee142.js} +2 -2
  187. package/dist/sankhyablocks/p-09a058ba.entry.js +1 -0
  188. package/dist/sankhyablocks/{p-82bc4666.entry.js → p-0dec4d29.entry.js} +1 -1
  189. package/dist/sankhyablocks/{p-1e6a95f5.entry.js → p-12632b8e.entry.js} +1 -1
  190. package/dist/sankhyablocks/{p-384c4a6b.js → p-18b34bb4.js} +1 -1
  191. package/dist/sankhyablocks/{p-538c057a.entry.js → p-2ad89e28.entry.js} +1 -1
  192. package/dist/sankhyablocks/p-2d5108b3.js +1 -0
  193. package/dist/sankhyablocks/{p-ff398057.entry.js → p-34cd4b39.entry.js} +1 -1
  194. package/dist/sankhyablocks/p-36ecb6ab.js +1 -0
  195. package/dist/sankhyablocks/p-372e0185.entry.js +1 -0
  196. package/dist/sankhyablocks/p-3be34bd1.entry.js +1 -0
  197. package/dist/sankhyablocks/p-3d45107f.js +1 -0
  198. package/dist/sankhyablocks/{p-28c12f65.js → p-463e0936.js} +1 -1
  199. package/dist/sankhyablocks/{p-e701646c.entry.js → p-49d628d1.entry.js} +1 -1
  200. package/dist/sankhyablocks/{p-e642bf7a.entry.js → p-50db4bc4.entry.js} +1 -1
  201. package/dist/sankhyablocks/{p-093febff.entry.js → p-5427566a.entry.js} +1 -1
  202. package/dist/sankhyablocks/{p-6a02e236.js → p-590d8900.js} +1 -1
  203. package/dist/sankhyablocks/p-5a6c090e.entry.js +1 -0
  204. package/dist/sankhyablocks/{p-e2bb9c9a.entry.js → p-67a19b48.entry.js} +1 -1
  205. package/dist/sankhyablocks/{p-19692f92.js → p-69770075.js} +1 -1
  206. package/dist/sankhyablocks/p-6d4169fc.entry.js +1 -0
  207. package/dist/sankhyablocks/{p-0b40c655.js → p-708ee8ee.js} +1 -1
  208. package/dist/sankhyablocks/{p-9af04fc7.entry.js → p-718cc24b.entry.js} +1 -1
  209. package/dist/sankhyablocks/{p-2d0fc912.entry.js → p-7946512f.entry.js} +1 -1
  210. package/dist/sankhyablocks/{p-900b2889.entry.js → p-7a5e1be7.entry.js} +1 -1
  211. package/dist/sankhyablocks/p-801b8858.js +68 -0
  212. package/dist/sankhyablocks/{p-80e52e85.entry.js → p-847b9506.entry.js} +1 -1
  213. package/dist/sankhyablocks/{p-56d70073.entry.js → p-8d541539.entry.js} +1 -1
  214. package/dist/sankhyablocks/{p-584a315a.entry.js → p-8e98a893.entry.js} +1 -1
  215. package/dist/sankhyablocks/p-9731180c.entry.js +1 -0
  216. package/dist/sankhyablocks/{p-b680fa7a.entry.js → p-a655ea15.entry.js} +1 -1
  217. package/dist/sankhyablocks/{p-eae124e3.entry.js → p-a8b06801.entry.js} +1 -1
  218. package/dist/sankhyablocks/{p-b25450ab.js → p-a8e5ded0.js} +1 -1
  219. package/dist/sankhyablocks/{p-6ac29569.entry.js → p-b66b99d9.entry.js} +1 -1
  220. package/dist/sankhyablocks/p-b7efc49a.entry.js +1 -0
  221. package/dist/sankhyablocks/{p-9c7f7214.entry.js → p-b91ee370.entry.js} +1 -1
  222. package/dist/sankhyablocks/{p-e551b19a.entry.js → p-b940798f.entry.js} +1 -1
  223. package/dist/sankhyablocks/{p-72e78de0.entry.js → p-bbefb3b2.entry.js} +1 -1
  224. package/dist/sankhyablocks/p-bdd61fa8.entry.js +1 -0
  225. package/dist/sankhyablocks/{p-f8c66aa3.entry.js → p-c06973e7.entry.js} +1 -1
  226. package/dist/sankhyablocks/{p-257c71a7.entry.js → p-c17e19a2.entry.js} +1 -1
  227. package/dist/sankhyablocks/p-c6bf66e0.js +1 -0
  228. package/dist/sankhyablocks/p-cdfddb41.entry.js +1 -0
  229. package/dist/sankhyablocks/p-cf90a195.entry.js +1 -0
  230. package/dist/sankhyablocks/{p-44c2ed16.entry.js → p-d11c5026.entry.js} +1 -1
  231. package/dist/sankhyablocks/p-d5145c3f.entry.js +1 -0
  232. package/dist/sankhyablocks/p-de328b00.entry.js +1 -0
  233. package/dist/sankhyablocks/{p-971abcc2.entry.js → p-e500863b.entry.js} +1 -1
  234. package/dist/sankhyablocks/{p-22e44b9d.entry.js → p-e824aef2.entry.js} +1 -1
  235. package/dist/sankhyablocks/{p-4ce96831.entry.js → p-eb24c092.entry.js} +1 -1
  236. package/dist/sankhyablocks/{p-4c2015a9.js → p-eb90de43.js} +1 -1
  237. package/dist/sankhyablocks/p-ebb8de34.entry.js +1 -0
  238. package/dist/sankhyablocks/p-f55450d5.entry.js +1 -0
  239. package/dist/sankhyablocks/{p-8652d177.entry.js → p-fc512cbe.entry.js} +1 -1
  240. package/dist/sankhyablocks/{p-786ae316.entry.js → p-fced1d89.entry.js} +1 -1
  241. package/dist/sankhyablocks/{p-e0b4aec3.entry.js → p-fdb43927.entry.js} +1 -1
  242. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  243. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized/snk-filter-personalized.d.ts +85 -0
  244. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +6 -6
  245. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +2 -0
  246. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +18 -1
  247. package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.d.ts +14 -6
  248. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +10 -3
  249. package/dist/types/components/snk-filter-bar/types/custom-element-filter.d.ts +6 -0
  250. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +10 -1
  251. package/dist/types/components/snk-filter-bar/utils/filters-mock.d.ts +92 -15
  252. package/dist/types/components/snk-filter-field-search/interfaces/index.d.ts +5 -11
  253. package/dist/types/components/snk-filter-field-search/snk-filter-field-search.d.ts +3 -0
  254. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +39 -6
  255. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +82 -0
  256. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.d.ts +1 -1
  257. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +13 -1
  258. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionGroup.d.ts +0 -0
  259. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionItem.d.ts +23 -3
  260. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.d.ts +21 -0
  261. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IPersonalizedFilter.d.ts +11 -0
  262. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.d.ts +3 -0
  263. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +14 -2
  264. package/dist/types/components.d.ts +169 -10
  265. package/dist/types/lib/@types/index.d.ts +3 -1
  266. package/dist/types/lib/configs/ConfigStorage.d.ts +5 -0
  267. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +4 -2
  268. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +5 -0
  269. package/dist/types/lib/store/index.d.ts +1 -2
  270. package/package.json +5 -5
  271. package/react/components.d.ts +1 -0
  272. package/react/components.js +1 -0
  273. package/react/components.js.map +1 -1
  274. package/dist/cjs/ConfigStorage-f68c3607.js +0 -124
  275. package/dist/cjs/index-8d94b7e0.js +0 -7
  276. package/dist/cjs/snk-expression-item.cjs.entry.js +0 -213
  277. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +0 -214
  278. package/dist/esm/ConfigStorage-e6c17998.js +0 -121
  279. package/dist/esm/index-620ac460.js +0 -7
  280. package/dist/esm/snk-expression-item.entry.js +0 -209
  281. package/dist/sankhyablocks/p-0b6ddb67.entry.js +0 -1
  282. package/dist/sankhyablocks/p-0c2afa63.entry.js +0 -1
  283. package/dist/sankhyablocks/p-343699ad.entry.js +0 -1
  284. package/dist/sankhyablocks/p-471568c7.entry.js +0 -1
  285. package/dist/sankhyablocks/p-6c2c71ca.js +0 -1
  286. package/dist/sankhyablocks/p-8ce9ea9f.entry.js +0 -1
  287. package/dist/sankhyablocks/p-8efb0f47.entry.js +0 -1
  288. package/dist/sankhyablocks/p-9a448ff9.entry.js +0 -1
  289. package/dist/sankhyablocks/p-9e50681c.entry.js +0 -1
  290. package/dist/sankhyablocks/p-9f66bc54.entry.js +0 -1
  291. package/dist/sankhyablocks/p-b1c02726.js +0 -1
  292. package/dist/sankhyablocks/p-b34d23fa.js +0 -1
  293. package/dist/sankhyablocks/p-c20dd153.entry.js +0 -1
  294. package/dist/sankhyablocks/p-cbb5c440.entry.js +0 -1
  295. package/dist/sankhyablocks/p-f3241ada.entry.js +0 -1
  296. package/dist/sankhyablocks/p-f4184ce7.js +0 -1
  297. package/dist/sankhyablocks/p-ff96b509.entry.js +0 -27
  298. 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,50 @@ 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");
166
+ filterModal.className = "ez-size-height--full";
130
167
  filterModal.filters = this._filterConfig;
168
+ filterModal.configName = this._configName;
131
169
  filterModal.getMessage = this._getMessage.bind(this);
132
170
  filterModal.applyFilters = this.applyFilters.bind(this);
133
- filterModal.clearAll = this.clearAll.bind(this);
134
171
  filterModal.closeModal = () => this._closeModal();
172
+ filterModal.addPersonalizedFilter = () => this._addPersonalizedFilterFn();
173
+ filterModal.editPersonalizedFilter = (id) => this._editPersonalizedFilterFn(id);
135
174
  return filterModal;
136
175
  }
137
176
  async showModal() {
@@ -145,17 +184,21 @@ class SnkFilterModalFactory {
145
184
  };
146
185
  this._closeModal = await utils.ApplicationUtils.showModal(modalProps);
147
186
  }
187
+ async closeModal() {
188
+ this._closeModal();
189
+ }
148
190
  }
149
191
 
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%}";
192
+ 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
193
 
152
194
  const SnkFilterBar = class {
153
195
  constructor(hostRef) {
154
- index.registerInstance(this, hostRef);
196
+ index$1.registerInstance(this, hostRef);
155
197
  this._updateSequence = [];
156
198
  this._loadingPending = false;
157
199
  this._configUpdated = false;
158
- this._pendingFilters = [];
200
+ this._pendingVariables = false;
201
+ this._customfiltersToBeUpdated = [];
159
202
  this._calculateSortIndex = (item) => {
160
203
  let index = item.hardFixed ? 1000000 : 0;
161
204
  //campos Hard Fixed não variam a ordem
@@ -175,6 +218,8 @@ const SnkFilterBar = class {
175
218
  this.messagesBuilder = undefined;
176
219
  this.allowDefault = undefined;
177
220
  this.scrollerLocked = false;
221
+ this.showPersonalizedFilter = false;
222
+ this.personalizedFilterId = undefined;
178
223
  }
179
224
  observeFilterConfig(newValue, oldValue) {
180
225
  if (oldValue != undefined && newValue == undefined) {
@@ -183,17 +228,28 @@ const SnkFilterBar = class {
183
228
  }
184
229
  else {
185
230
  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
- });
231
+ if (oldItems.size === 0 && newValue.length > 0) {
232
+ this._loadingPending = true;
233
+ this._configUpdated = false;
234
+ }
235
+ else {
236
+ newValue.forEach(newItem => {
237
+ const oldItem = oldItems.get(newItem.id);
238
+ if (oldItem != undefined) {
239
+ this._configUpdated = this._configUpdated || core.ObjectUtils.objectToString(oldItem) != core.ObjectUtils.objectToString(newItem);
240
+ this._loadingPending = this._loadingPending || core.ObjectUtils.objectToString(oldItem.value) !== core.ObjectUtils.objectToString(newItem.value);
241
+ if (!this._loadingPending) {
242
+ const groupedChanged = core.ObjectUtils.objectToString(oldItem.groupedItems) != core.ObjectUtils.objectToString(newItem.groupedItems);
243
+ this._configUpdated = this._configUpdated || groupedChanged;
244
+ this._loadingPending = this._loadingPending || groupedChanged;
245
+ }
246
+ }
247
+ else {
248
+ this._configUpdated = true;
249
+ this._loadingPending = this._loadingPending || newItem.value != undefined;
250
+ }
251
+ });
252
+ }
197
253
  }
198
254
  this.processAfterUpdateConfig();
199
255
  }
@@ -210,30 +266,31 @@ const SnkFilterBar = class {
210
266
  }
211
267
  }
212
268
  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();
269
+ if (this._pendingVariables) {
270
+ const popUp = this._element.querySelector("#filter-PERSONALIZED_FILTER_GROUP");
271
+ if (popUp) {
272
+ popUp.showUp(true).then(() => {
273
+ this.processAfterUpdateConfig();
219
274
  });
220
275
  }
221
276
  }
222
- if (this._currentPendingFilter == undefined) {
277
+ else {
223
278
  this.processAfterUpdateConfig();
224
279
  }
225
280
  }
226
- processAfterUpdateConfig() {
227
- if (this._pendingFilters.length > 0) {
228
- return;
229
- }
281
+ async processAfterUpdateConfig() {
230
282
  if (this._loadingPending) {
231
- this._loadingPending = false;
232
- this._inProgressLoadFromConfig = new Promise((resolve) => {
233
- this.dataUnit.loadData().then(() => {
234
- resolve();
235
- });
283
+ const personalizedFilter = this.filterConfig.find(item => {
284
+ if (item.type === filterItemType_enum.FilterItemType.PERSONALIZED) {
285
+ return true;
286
+ }
236
287
  });
288
+ this._pendingVariables = !PersonalizedFilterUtils.PersonalizedFilterUtils.validateVariableValues(personalizedFilter);
289
+ if (this._pendingVariables) {
290
+ return;
291
+ }
292
+ this._loadingPending = false;
293
+ this.dataUnit.loadData();
237
294
  }
238
295
  if (this._configUpdated) {
239
296
  this._configUpdated = false;
@@ -262,7 +319,14 @@ const SnkFilterBar = class {
262
319
  return filters;
263
320
  }
264
321
  isActiveFilter(item) {
265
- return (item.visible && item.value != undefined) || item.type === filterItemType_enum.FilterItemType.DEFAULT_FILTER;
322
+ /*
323
+ - O filtro padrão também deve sempre ser condiderado ativo, pois, sempre deve
324
+ ser aplicado.
325
+ */
326
+ if (item.type === filterItemType_enum.FilterItemType.DEFAULT_FILTER) {
327
+ return true;
328
+ }
329
+ return item.visible && (item.groupedItems || item.value != undefined);
266
330
  }
267
331
  registryFilterProvider() {
268
332
  this.dataUnit.addFilterProvider(this);
@@ -282,14 +346,18 @@ const SnkFilterBar = class {
282
346
  }
283
347
  });
284
348
  }
349
+ filterActiveFilter(item) {
350
+ return item.visible || item.removalBlocked;
351
+ }
285
352
  getFilterItems() {
286
353
  const pinnedItems = [];
287
354
  const unpinnedItems = [];
288
355
  this.filterConfig
289
- .filter(item => item.visible)
290
- .forEach((item, index$1) => {
356
+ .filter(this.filterActiveFilter)
357
+ .forEach((item, index) => {
358
+ item = core.ObjectUtils.copy(item);
291
359
  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 }));
360
+ 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
361
  if (item.fixed || item.hardFixed) {
294
362
  pinnedItems.push(filterItem);
295
363
  }
@@ -301,7 +369,7 @@ const SnkFilterBar = class {
301
369
  const elements = [];
302
370
  elements.push(...pinnedItems);
303
371
  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" }));
372
+ elements.push(index$1.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider" }));
305
373
  }
306
374
  elements.push(...unpinnedItems);
307
375
  return elements;
@@ -341,19 +409,16 @@ const SnkFilterBar = class {
341
409
  this._application.isUserSup().then(value => this.allowDefault = value);
342
410
  }
343
411
  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);
412
+ return new Promise(accept => {
413
+ ConfigStorage.ConfigStorage.get().then(instance => {
414
+ instance.loadFilterBarConfig(this.configName)
415
+ .then((filters) => {
416
+ accept();
417
+ this.filterConfig = filters.map(item => this.normalizeItem(item));
418
+ })
419
+ .catch(reason => {
420
+ throw new core.ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
421
+ });
357
422
  });
358
423
  });
359
424
  }
@@ -393,12 +458,34 @@ const SnkFilterBar = class {
393
458
  this.filterConfig = filters.map(this.normalizeItem).sort((a, b) => this._filtersComparator(a, b));
394
459
  };
395
460
  const factoryParams = {
396
- filterConfig: this.filterConfig,
461
+ filterConfig: core.ObjectUtils.copy(this.filterConfig),
462
+ configName: this.configName,
397
463
  onComplete: callbackOnApplyFilter,
398
- getMessage: (key, props) => this.getMessage(key, props)
464
+ getMessage: (key, props) => this.getMessage(key, props),
465
+ onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
466
+ onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id)
399
467
  };
400
- const factory = new SnkFilterModalFactory(factoryParams);
401
- await factory.showModal();
468
+ this._filterModalFactory = new SnkFilterModalFactory(factoryParams);
469
+ await this._filterModalFactory.showModal();
470
+ }
471
+ addPersonalizedFilter() {
472
+ this._filterModalFactory.closeModal();
473
+ this.personalizedFilterId = undefined;
474
+ this.showPersonalizedFilter = true;
475
+ window.requestAnimationFrame(() => {
476
+ this._elPersonalizedFilter.createPersonalizedFilter();
477
+ });
478
+ }
479
+ editPersonalizedFilter(id) {
480
+ this._filterModalFactory.closeModal();
481
+ this.showPersonalizedFilter = true;
482
+ this.personalizedFilterId = id;
483
+ }
484
+ hidePersonalizedFilter() {
485
+ this.loadConfigFromStorage().then(() => {
486
+ this.personalizedFilterId = undefined;
487
+ this.showPersonalizedFilter = false;
488
+ });
402
489
  }
403
490
  componentWillLoad() {
404
491
  this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -415,9 +502,12 @@ const SnkFilterBar = class {
415
502
  if (!this.dataUnit || !this.filterConfig || this.filterConfig.length === 0) {
416
503
  return undefined;
417
504
  }
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" }))));
505
+ if (this.showPersonalizedFilter) {
506
+ 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 });
507
+ }
508
+ 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
509
  }
420
- get _element() { return index.getElement(this); }
510
+ get _element() { return index$1.getElement(this); }
421
511
  static get watchers() { return {
422
512
  "filterConfig": ["observeFilterConfig"]
423
513
  }; }
@@ -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 {