@sankhyalabs/sankhyablocks 5.19.1 → 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 (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 +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-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 +1 -0
  69. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +110 -10
  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 +22 -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 +195 -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 +68 -12
  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 +156 -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 +66 -12
  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-639be4aa.entry.js +1 -0
  205. package/dist/sankhyablocks/{p-e2bb9c9a.entry.js → p-67a19b48.entry.js} +1 -1
  206. package/dist/sankhyablocks/{p-19692f92.js → p-69770075.js} +1 -1
  207. package/dist/sankhyablocks/p-6d4169fc.entry.js +1 -0
  208. package/dist/sankhyablocks/{p-0b40c655.js → p-708ee8ee.js} +1 -1
  209. package/dist/sankhyablocks/{p-9af04fc7.entry.js → p-718cc24b.entry.js} +1 -1
  210. package/dist/sankhyablocks/{p-2d0fc912.entry.js → p-7946512f.entry.js} +1 -1
  211. package/dist/sankhyablocks/{p-900b2889.entry.js → p-7a5e1be7.entry.js} +1 -1
  212. package/dist/sankhyablocks/p-801b8858.js +68 -0
  213. package/dist/sankhyablocks/{p-80e52e85.entry.js → p-847b9506.entry.js} +1 -1
  214. package/dist/sankhyablocks/{p-56d70073.entry.js → p-8d541539.entry.js} +1 -1
  215. package/dist/sankhyablocks/{p-584a315a.entry.js → p-8e98a893.entry.js} +1 -1
  216. package/dist/sankhyablocks/p-9731180c.entry.js +1 -0
  217. package/dist/sankhyablocks/p-a6055eb9.entry.js +1 -0
  218. package/dist/sankhyablocks/{p-b680fa7a.entry.js → p-a655ea15.entry.js} +1 -1
  219. package/dist/sankhyablocks/{p-eae124e3.entry.js → p-a8b06801.entry.js} +1 -1
  220. package/dist/sankhyablocks/{p-b25450ab.js → p-a8e5ded0.js} +1 -1
  221. package/dist/sankhyablocks/{p-6ac29569.entry.js → p-b66b99d9.entry.js} +1 -1
  222. package/dist/sankhyablocks/p-b7efc49a.entry.js +1 -0
  223. package/dist/sankhyablocks/{p-9c7f7214.entry.js → p-b91ee370.entry.js} +1 -1
  224. package/dist/sankhyablocks/{p-e551b19a.entry.js → p-b940798f.entry.js} +1 -1
  225. package/dist/sankhyablocks/{p-72e78de0.entry.js → p-bbefb3b2.entry.js} +1 -1
  226. package/dist/sankhyablocks/p-bdd61fa8.entry.js +1 -0
  227. package/dist/sankhyablocks/{p-f8c66aa3.entry.js → p-c06973e7.entry.js} +1 -1
  228. package/dist/sankhyablocks/{p-257c71a7.entry.js → p-c17e19a2.entry.js} +1 -1
  229. package/dist/sankhyablocks/p-c6bf66e0.js +1 -0
  230. package/dist/sankhyablocks/p-cf90a195.entry.js +1 -0
  231. package/dist/sankhyablocks/{p-44c2ed16.entry.js → p-d11c5026.entry.js} +1 -1
  232. package/dist/sankhyablocks/p-d5145c3f.entry.js +1 -0
  233. package/dist/sankhyablocks/p-de328b00.entry.js +1 -0
  234. package/dist/sankhyablocks/{p-971abcc2.entry.js → p-e500863b.entry.js} +1 -1
  235. package/dist/sankhyablocks/{p-22e44b9d.entry.js → p-e824aef2.entry.js} +1 -1
  236. package/dist/sankhyablocks/{p-4ce96831.entry.js → p-eb24c092.entry.js} +1 -1
  237. package/dist/sankhyablocks/{p-4c2015a9.js → p-eb90de43.js} +1 -1
  238. package/dist/sankhyablocks/p-ebb8de34.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
@@ -1,8 +1,304 @@
1
- import { h, r as registerInstance, c as createEvent, g as getElement } from './index-cfd4bb13.js';
2
- import { S as SelectedItemType } from './index-620ac460.js';
3
- import { UserInterface, JSUtils, ElementIDUtils, ApplicationContext, StringUtils, DataType } from '@sankhyalabs/core';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8c3d76a6.js';
2
+ import { UserInterface, ApplicationContext, ElementIDUtils, JSUtils, StringUtils, DataType } from '@sankhyalabs/core';
3
+ import { ApplicationUtils, CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
4
+ import { fieldBuilder } from '@sankhyalabs/ezui/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder';
5
+ import { F as FilterOperand, c as FilterConfigType, d as FilterEntities, e as FilterUserConfigTypes } from './index-a255b326.js';
6
+ import { s as store } from './index-d60ca0ac.js';
7
+ import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
4
8
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
5
- import { c as FilterOperand, d as FilterConfigType, e as FilterEntities, F as FilterUserConfigTypes } from './index-507e19ec.js';
9
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
10
+ import './filter-item-type.enum-5028ed3f.js';
11
+
12
+ var SelectedItemType;
13
+ (function (SelectedItemType) {
14
+ SelectedItemType["LINK"] = "LINK";
15
+ SelectedItemType["FIELD"] = "FIELD";
16
+ })(SelectedItemType || (SelectedItemType = {}));
17
+
18
+ const defaultsOperand = [
19
+ { label: "Igual (=)", value: "EQUAL" },
20
+ { label: "Diferente (<>)", value: "DIFFERENT" },
21
+ { label: "Contendo (LIKE)", value: "LIKE" },
22
+ { label: "Contido em (IN)", value: "IN" },
23
+ { label: "Iniciado com (%?)", value: "START_WITH" },
24
+ { label: "Terminado com (?%)", value: "FINISHED_WITH" },
25
+ { label: "Vazio (NULL)", value: "NULL" },
26
+ { label: "Não Vazio (NOT NULL)", value: "NOT_NULL" },
27
+ ];
28
+ const FilterOperandDefault = defaultsOperand.concat([
29
+ { label: "Maior (>)", value: "LARGER" },
30
+ { label: "Maior ou Igual (>=)", value: "LARGER_EQUAL" },
31
+ { label: "Menor (<)", value: "SMALLER" },
32
+ { label: "Menor ou Igual (<=)", value: "SMALLER_EQUAL" }
33
+ ]);
34
+ const FilterOperandTypeTextSearch = defaultsOperand;
35
+ const FIELD_TYPE_SEARCH_AND_TEXT = [
36
+ UserInterface.SEARCH,
37
+ UserInterface.SHORTTEXT,
38
+ UserInterface.PASSWORD,
39
+ UserInterface.MASKEDTEXT,
40
+ UserInterface.LONGTEXT,
41
+ UserInterface.HTML
42
+ ];
43
+
44
+ const snkExpressionItemCss = ".sc-snk-expression-item-h{display:flex;width:100%;--snk-expression-item--background-color:var(--background--xlight, #fff);--snk-expression-item__itens--padding:var(--space--small, 6px);--snk-expression-item__width--input-operator:220px;--snk-expression-item__width--input-value:240px;--snk-expression-item__width--input-value-variable:176px;--snk-expression-item--border-radius:var(--border--radius-medium, 12px);--snk-expression-item--border-color:var(--color--strokes, #DCE0E8);--snk-expression-item--border-style:var(--border--small, 1px solid);--snk-expression-item__background-color-dashed:var(--background--body, #fafcff)}.box.sc-snk-expression-item{width:100%;height:56px;background:var(--snk-expression-item--background-color);border:var(--snk-expression-item--border-color) var(--snk-expression-item--border-style);border-radius:var(--snk-expression-item--border-radius)}.box__container.sc-snk-expression-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;margin:var(--space--small, 6px)}.box__container--input-filter.sc-snk-expression-item{width:100%}.box__container--input-operator.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-operator);min-width:var(--snk-expression-item__width--input-operator)}.box__container--input-value.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-value);min-width:var(--snk-expression-item__width--input-value)}.box__container--input-value-variable.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-value-variable);min-width:var(--snk-expression-item__width--input-value-variable)}.box__container--button-delete.sc-snk-expression-item{display:flex}.box__container.sc-snk-expression-item>div.sc-snk-expression-item{padding-left:var(--snk-expression-item__itens--padding);padding-right:var(--snk-expression-item__itens--padding)}.box__container--button-delete--icon.sc-snk-expression-item{width:42px;min-width:42px}.box__container--input-value-variable--icon.sc-snk-expression-item{cursor:pointer}.dashes.sc-snk-expression-item{z-index:var(--more-visible, 2);background:var(--snk-expression-item__background-color-dashed);border-bottom:2px dashed var(--text-secondary, #A2ABB9);border-left:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:62px;margin-left:-15px;margin-top:-33.5px}";
45
+
46
+ const DEFAULT_FIELD_NAME = 'NOT_DEFINED';
47
+ const SnkExpressionItem = class {
48
+ constructor(hostRef) {
49
+ registerInstance(this, hostRef);
50
+ this.ezFilterItemChange = createEvent(this, "ezFilterItemChange", 7);
51
+ this.ezFilterItemRemove = createEvent(this, "ezFilterItemRemove", 7);
52
+ this.application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
53
+ this.filterOperandDefault = FilterOperandDefault;
54
+ this.filterOperandTypeTextSearch = FilterOperandTypeTextSearch;
55
+ this._showValueVariable = false;
56
+ this._fieldSelected = undefined;
57
+ this._optionNotNull = false;
58
+ this.expression = undefined;
59
+ this.canRemove = true;
60
+ this.messagesBuilder = undefined;
61
+ this.entityURI = undefined;
62
+ }
63
+ expressionChanged(newValue, oldValue) {
64
+ if (newValue !== oldValue) {
65
+ this.ezFilterItemChange.emit(newValue);
66
+ this.updateFieldSelected();
67
+ }
68
+ }
69
+ componentWillLoad() {
70
+ this._dataSourceFetcher = store.get(`filterFieldsDataSource.${this.entityURI}`);
71
+ store.onChange(`filterFieldsDataSource.${this.entityURI}`, () => {
72
+ this._dataSourceFetcher = store.get(`filterFieldsDataSource.${this.entityURI}`);
73
+ });
74
+ if (this.expression) {
75
+ this.updateFieldSelected();
76
+ this._optionNotNull = this.expression.operand === 'NULL' || this.expression.operand === 'NOT_NULL';
77
+ }
78
+ }
79
+ componentDidRender() {
80
+ this._showValueVariable = this._elValueVariable.value;
81
+ }
82
+ updateFieldSelected() {
83
+ const field = {
84
+ dataType: this.expression.type,
85
+ description: this.expression.description,
86
+ name: this.expression.fieldName,
87
+ label: this.expression.fieldLabel,
88
+ entityName: this.expression.entityName,
89
+ onlyDate: false,
90
+ path: this.expression.description,
91
+ properties: this.expressionPropsToFieldProps(this.expression.props),
92
+ type: SelectedItemType.FIELD,
93
+ uri: "",
94
+ userInterface: this.expression.userInterface
95
+ };
96
+ this._fieldSelected = field;
97
+ }
98
+ buildExpression(entityName, fieldName, entityPath) {
99
+ if (entityPath.length > 0) {
100
+ entityPath.shift();
101
+ }
102
+ return entityPath.length > 0 ? `${entityPath.join("->")}->${fieldName}` : `${entityName}.${fieldName}`;
103
+ }
104
+ setValueExpression(key, value) {
105
+ if (key === "fieldName") {
106
+ this.expression.description = value.path;
107
+ this.expression.expression = this.buildExpression(value.entityName, value.name, value.entityPath);
108
+ this.expression.fieldName = value.name;
109
+ this.expression.fieldLabel = value.label;
110
+ this.expression.type = value.dataType;
111
+ this.expression.userInterface = value.userInterface;
112
+ this.expression.entityName = value.entityName;
113
+ this.expression.value = undefined;
114
+ this.expression.props = this.fieldPropsToExpressionProps(value.properties);
115
+ }
116
+ else {
117
+ this.expression[key] = value;
118
+ }
119
+ this.expressionChanged(this.expression);
120
+ }
121
+ fieldPropsToExpressionProps(properties) {
122
+ const parsedProps = [];
123
+ if (!properties) {
124
+ return parsedProps;
125
+ }
126
+ for (const key in properties) {
127
+ let propValue = properties[key];
128
+ if (typeof propValue == "object") {
129
+ propValue = JSON.stringify(propValue);
130
+ }
131
+ parsedProps.push({ name: key, value: propValue });
132
+ }
133
+ return parsedProps;
134
+ }
135
+ expressionPropsToFieldProps(properties) {
136
+ const parsedProps = {};
137
+ if (!properties) {
138
+ return parsedProps;
139
+ }
140
+ properties.forEach(prop => {
141
+ try {
142
+ parsedProps[prop.name] = JSON.parse(prop.value);
143
+ }
144
+ catch (_a) {
145
+ parsedProps[prop.name] = prop.value;
146
+ }
147
+ });
148
+ return parsedProps;
149
+ }
150
+ getMessage(key, params) {
151
+ return this.application.messagesBuilder.getMessage(key, params);
152
+ }
153
+ handleSelectItem(filterField) {
154
+ if (filterField.name === this.expression.fieldName) {
155
+ this._elFilterInput.value = filterField.path;
156
+ return;
157
+ }
158
+ if (filterField.type === SelectedItemType.FIELD) {
159
+ const field = filterField;
160
+ this._fieldSelected = field;
161
+ this.setValueExpression("fieldName", field);
162
+ }
163
+ }
164
+ handleFocus() {
165
+ if (this._elFilterFieldSearch)
166
+ this._elFilterFieldSearch.show();
167
+ }
168
+ handleChangeFilterInput(evt) {
169
+ this._elFilterFieldSearch.applyFilter(evt.detail);
170
+ }
171
+ handleChangeValueVariable(showValueVariable) {
172
+ this._showValueVariable = showValueVariable;
173
+ if (this._elFieldDynamic) {
174
+ this._elFieldDynamic.value = undefined;
175
+ this._elFieldDynamic.enabled = !showValueVariable;
176
+ }
177
+ this.expression["paramVariable"] = showValueVariable;
178
+ this.expressionChanged(this.expression);
179
+ }
180
+ openSnkFilterParamConfig() {
181
+ var _a;
182
+ (_a = this._elFilterParamConfigRef) === null || _a === void 0 ? void 0 : _a.open(this.expression).then(this.onOpenPromiseReady.bind(this)).catch(error => {
183
+ console.error(error);
184
+ });
185
+ }
186
+ onOpenPromiseReady(changes) {
187
+ this.expression = changes;
188
+ }
189
+ buildOptionsOperator() {
190
+ var _a;
191
+ if (FIELD_TYPE_SEARCH_AND_TEXT.includes((_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.userInterface)) {
192
+ return this.filterOperandTypeTextSearch;
193
+ }
194
+ else {
195
+ return this.filterOperandDefault;
196
+ }
197
+ }
198
+ handleChangeOperator(optionSelected) {
199
+ this.checkOptionIsNull(optionSelected);
200
+ this.setValueExpression("operand", optionSelected);
201
+ }
202
+ checkOptionIsNull(optionSelected) {
203
+ const filterOperandValue = FilterOperand[optionSelected];
204
+ if ([FilterOperand.NULL, FilterOperand.NOT_NULL].includes(filterOperandValue)) {
205
+ this._optionNotNull = true;
206
+ if (this._elFieldDynamic) {
207
+ this._elFieldDynamic.enabled = false;
208
+ this._elFieldDynamic.value = undefined;
209
+ }
210
+ }
211
+ else {
212
+ this._optionNotNull = false;
213
+ if (this._elFieldDynamic) {
214
+ this._elFieldDynamic.enabled = this._showValueVariable ? false : true;
215
+ }
216
+ }
217
+ }
218
+ confirmRemove(evt) {
219
+ evt.preventDefault();
220
+ evt.stopPropagation();
221
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmExpression.title"), this.getMessage("snkPersonalizedFilter.confirmExpression.description"))
222
+ .then((canRemove) => {
223
+ if (canRemove) {
224
+ this.ezFilterItemRemove.emit(this.expression);
225
+ }
226
+ });
227
+ }
228
+ buildFieldByType() {
229
+ var _a, _b, _c;
230
+ if (!this._fieldSelected)
231
+ return;
232
+ const inputFieldData = (_a = fieldBuilder(this.configureFieldByType())) === null || _a === void 0 ? void 0 : _a.$children$.shift();
233
+ if (this._optionNotNull && inputFieldData || ((_b = this._elValueVariable) === null || _b === void 0 ? void 0 : _b.value) && inputFieldData || this.expression.paramVariable || this._showValueVariable || !((_c = this._fieldSelected) === null || _c === void 0 ? void 0 : _c.dataType)) {
234
+ inputFieldData.$attrs$.enabled = false;
235
+ }
236
+ if (this.expression.value) {
237
+ inputFieldData.$attrs$.value = this.getExpressiontValue(this.expression);
238
+ }
239
+ inputFieldData.$attrs$.onEzChange = (event) => {
240
+ this.setValueExpression("value", event.target.value);
241
+ };
242
+ if (this.expression.userInterface === 'SWITCH' && this.expression.value == undefined) {
243
+ this.setValueExpression("value", false);
244
+ }
245
+ return h(inputFieldData.$tag$, Object.assign(Object.assign({}, inputFieldData.$attrs$), { ref: (el) => {
246
+ this._elFieldDynamic = el;
247
+ }, label: this.expression.fieldLabel || this._fieldSelected.label }));
248
+ }
249
+ getExpressiontValue(expression) {
250
+ return convertType(expression.type, expression.value);
251
+ }
252
+ configureFieldByType() {
253
+ var _a, _b;
254
+ const field = {
255
+ userInterface: this._fieldSelected.userInterface,
256
+ name: this._fieldSelected.name,
257
+ label: this._fieldSelected.label,
258
+ canShowError: false
259
+ };
260
+ switch (field.userInterface) {
261
+ case UserInterface.OPTIONSELECTOR:
262
+ field.props = {
263
+ options: (_b = (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.options,
264
+ };
265
+ break;
266
+ case UserInterface.LONGTEXT:
267
+ field.rows = 1;
268
+ break;
269
+ case UserInterface.SEARCH:
270
+ field.optionLoader = searchArgument => this.setCriteriaSearch(searchArgument, this.application);
271
+ break;
272
+ }
273
+ return field;
274
+ }
275
+ setCriteriaSearch({ mode, argument }, application) {
276
+ var _a, _b;
277
+ if (application == undefined)
278
+ return;
279
+ const searchOptions = {
280
+ showInactives: false
281
+ };
282
+ const options = {
283
+ entity: (_b = (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.ENTITYNAME,
284
+ searchOptions,
285
+ entityDescription: this._fieldSelected.description
286
+ };
287
+ return application.executePreparedSearch(mode, argument, options);
288
+ }
289
+ render() {
290
+ var _a;
291
+ return (h(Host, null, h("div", { class: "dashes" }), h("div", { class: "box" }, h("div", { class: "box__container" }, h("div", { class: "box__container--input-filter" }, h("ez-filter-input", Object.assign({ ref: ref => this._elFilterInput = ref, value: (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.path, label: this.getMessage("snkPersonalizedFilter.info.labelSearchField"), canShowError: false, onEzChange: (evt) => this.handleChangeFilterInput(evt), onFocus: () => this.handleFocus() }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `expressionFilterInput_${this.expression.fieldName || DEFAULT_FIELD_NAME}` })), h("snk-filter-field-search", { ref: ref => this._elFilterFieldSearch = ref, searchable: false, onEzSelectFilterItem: (ev) => this.handleSelectItem(ev.detail), fieldsDataSource: this._dataSourceFetcher })), h("div", { class: "box__container--input-operator" }, h("ez-combo-box", Object.assign({ label: this.getMessage("snkPersonalizedFilter.info.labelOperator"), value: this.expression.operand, canShowError: false, options: this.buildOptionsOperator(), onEzChange: (evt) => { var _a; return this.handleChangeOperator((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); }, suppressEmptyOption: true }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `comboBoxOperand_${this.expression.fieldName || DEFAULT_FIELD_NAME}` }))), h("div", { class: "box__container--input-value" }, !this._fieldSelected ?
292
+ h("ez-number-input", { label: "Valor", canShowError: false, enabled: (!this._showValueVariable && !this._optionNotNull) }) :
293
+ this.buildFieldByType()), h("div", { class: "box__container--input-value-variable", title: this.getMessage("snkPersonalizedFilter.info.titleTooltip") }, !this._optionNotNull &&
294
+ h("ez-check", { ref: ref => this._elValueVariable = ref, value: this.expression.paramVariable, label: this.getMessage("snkPersonalizedFilter.info.labelValueVarible"), mode: CheckMode.SWITCH, onEzChange: (evt) => this.handleChangeValueVariable(evt.detail) }), (this._showValueVariable && !this._optionNotNull) &&
295
+ h("ez-icon", Object.assign({ class: "box__container--input-value-variable--icon", size: "large", iconName: "settings-inverted" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: 'iconConfig' }, { onClick: () => this.openSnkFilterParamConfig() })), h("snk-filter-param-config", { ref: (el) => this._elFilterParamConfigRef = el, messagesBuilder: this.messagesBuilder })), h("div", { class: "box__container--button-delete" }, h("div", { class: "box__container--button-delete--icon" }, h("ez-button", { mode: "icon", iconName: "delete", enabled: this.canRemove, label: this.getMessage("snkPersonalizedFilter.info.labelDeleteItem"), onClick: (evt) => this.confirmRemove(evt) })))))));
296
+ }
297
+ static get watchers() { return {
298
+ "expression": ["expressionChanged"]
299
+ }; }
300
+ };
301
+ SnkExpressionItem.style = snkExpressionItemCss;
6
302
 
7
303
  const ICON_MODES = {
8
304
  [UserInterface.SHORTTEXT]: 'text',
@@ -30,6 +326,7 @@ const ListItem = ({ userInterface, description }) => {
30
326
  const snkFilterFieldSearchCss = ".sc-snk-filter-field-search-h{--snk-filter-field-search--container-width:468px;--snk-filter-field-search--container-height:322px}.snk-filter-field-search__container.sc-snk-filter-field-search{display:flex;flex-direction:column;padding:var(--space--medium);width:var(--snk-filter-field-search--container-width);height:var(--snk-filter-field-search--container-height)}.snk-filter-field-search__section.sc-snk-filter-field-search{display:grid;grid-template-columns:1fr 1fr;place-items:flex-start;overflow:hidden;gap:var(--space--small)}.snk-filter-field-search__input.sc-snk-filter-field-search{margin-bottom:var(--space--medium)}.snk-filter-field-search__list_container.sc-snk-filter-field-search{display:flex;flex-direction:column}.snk-filter-field-search__list.sc-snk-filter-field-search{overflow-y:auto}";
31
327
 
32
328
  const SNK_CONTEXT_KEY = "__SNK__APPLICATION__";
329
+ const ENTITY_NAME_PATTERN = /\w+:\/\/(\w+)/;
33
330
  const SnkFilterFieldSearch = class {
34
331
  constructor(hostRef) {
35
332
  registerInstance(this, hostRef);
@@ -43,6 +340,8 @@ const SnkFilterFieldSearch = class {
43
340
  this.breadcrumbItems = [];
44
341
  this.linkItems = [];
45
342
  this.fieldItems = [];
343
+ this.searchEmpty = false;
344
+ this.groupEmpty = false;
46
345
  }
47
346
  /**
48
347
  * Realiza a abertura do componente e faz a primeira carga
@@ -64,6 +363,7 @@ const SnkFilterFieldSearch = class {
64
363
  this.handleFilterChange(filterText);
65
364
  }
66
365
  async loadData() {
366
+ var _a, _b;
67
367
  this._isLoading = true;
68
368
  let metadata;
69
369
  if (this._currentLink != undefined) {
@@ -81,14 +381,15 @@ const SnkFilterFieldSearch = class {
81
381
  this.mapDataSourceToLinkItems();
82
382
  this.mapDataSourceToFieldItems();
83
383
  this._isLoading = false;
84
- this._ezFieldList.scrollToTop();
85
- this._ezLinkList.scrollToTop();
384
+ (_a = this._ezFieldList) === null || _a === void 0 ? void 0 : _a.scrollToTop();
385
+ (_b = this._ezLinkList) === null || _b === void 0 ? void 0 : _b.scrollToTop();
86
386
  }
87
387
  mapDataSourceToLinkItems() {
88
388
  var _a;
89
389
  const { links } = this._currentMetadata;
90
390
  const filterLinkLabelMessage = this.getMessage('snkFilterFieldSearch.linkLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
91
391
  const items = links.map(link => (Object.assign({ label: link.description }, link)));
392
+ this.groupEmpty = Boolean(items.length === 0);
92
393
  this.linkItems = [{
93
394
  group: filterLinkLabelMessage,
94
395
  items,
@@ -99,7 +400,7 @@ const SnkFilterFieldSearch = class {
99
400
  }
100
401
  mapDataSourceToFieldItems() {
101
402
  var _a;
102
- const { fields } = this._currentMetadata;
403
+ const fields = this._currentMetadata.fields;
103
404
  const filterFieldLabelMessage = this.getMessage('snkFilterFieldSearch.fieldLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
104
405
  const filteredFields = fields.filter(field => {
105
406
  if (!this._currentLink)
@@ -109,6 +410,7 @@ const SnkFilterFieldSearch = class {
109
410
  return searchableByDescription || searchableByName;
110
411
  });
111
412
  const items = filteredFields.map(field => (Object.assign({ label: field.description }, field)));
413
+ this.searchEmpty = Boolean(this._filterText && items.length === 0);
112
414
  this.fieldItems = [{
113
415
  group: filterFieldLabelMessage,
114
416
  items
@@ -136,10 +438,17 @@ const SnkFilterFieldSearch = class {
136
438
  this.ezSelectFilterItem.emit(selectedItem);
137
439
  this.loadData();
138
440
  }
441
+ getEntityFromBreadCrumbItem(item) {
442
+ const result = ENTITY_NAME_PATTERN.exec(item.uri);
443
+ if (!result) {
444
+ return undefined;
445
+ }
446
+ return result[1];
447
+ }
139
448
  handleSelectField({ detail: item }) {
140
449
  var _a;
141
450
  const breadcrumbPath = this.breadcrumbItems.map(breadcrumbItem => breadcrumbItem.label).join('>>');
142
- const selectedField = Object.assign(Object.assign({}, item), { type: SelectedItemType.FIELD, path: `${breadcrumbPath} >> ${item.description}` });
451
+ const selectedField = Object.assign(Object.assign({}, item), { type: SelectedItemType.FIELD, entityPath: this.breadcrumbItems.map(item => this.getEntityFromBreadCrumbItem(item)).filter(item => item != undefined), path: `${breadcrumbPath} >> ${item.description}` });
143
452
  this.ezSelectFilterItem.emit(selectedField);
144
453
  (_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.hide();
145
454
  }
@@ -175,66 +484,17 @@ const SnkFilterFieldSearch = class {
175
484
  render() {
176
485
  var _a;
177
486
  const searchLabelMessage = this.getMessage('snkFilterFieldSearch.searchLabel');
178
- return (h("ez-popover", Object.assign({ ref: (el) => this._ezPopover = el, role: "dialog", overlayType: "none", "aria-hidden": !((_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.opened) }, this.getElementID('EzPopover')), h("div", { class: "snk-filter-field-search__container" }, h("header", { class: "snk-filter-field-search__header" }, this.searchable && !!searchLabelMessage && (h("ez-filter-input", Object.assign({ class: "snk-filter-field-search__input", label: searchLabelMessage, asyncSearch: true, canShowError: false, onEzSearching: (event) => this.handleFilterChange.bind(this)(event.detail), "aria-label": searchLabelMessage, "aria-required": "false", "aria-invalid": "false" }, this.getElementID('EzFilterInput')))), this.breadcrumbItems.length > 0 && (h("ez-breadcrumb", Object.assign({ items: this.breadcrumbItems, onSelectedItem: this.handleSelectLink.bind(this), role: "navigation", "aria-current": "step" }, this.getElementID('EzBreadcrumb')))), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" })), h("section", { class: "snk-filter-field-search__section" }, h("ez-list", Object.assign({ ref: (el) => this._ezLinkList = el, class: "snk-filter-field-search__list", id: "filterLinkList", useGroups: true, dataSource: this.linkItems, onEzSelectItem: this.handleSelectLink.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: listItem => h("ez-badge", { label: listItem.fieldCount }), "aria-describedby": "filterLinkLabel" }, this.getElementID('EzListLinks'))), h("ez-list", Object.assign({ ref: (el) => this._ezFieldList = el, class: "snk-filter-field-search__list", id: "filterFieldList", useGroups: true, dataSource: this.fieldItems, onEzSelectItem: this.handleSelectField.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ListItem, "aria-describedby": "filterFieldLabel" }, this.getElementID('EzListFields')))))));
487
+ return (h("ez-popover", Object.assign({ ref: (el) => this._ezPopover = el, role: "dialog", overlayType: "none", "aria-hidden": !((_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.opened) }, this.getElementID('EzPopover')), h("div", { class: "snk-filter-field-search__container" }, h("header", { class: "snk-filter-field-search__header" }, this.searchable && !!searchLabelMessage && (h("ez-filter-input", Object.assign({ class: "snk-filter-field-search__input", label: searchLabelMessage, asyncSearch: true, canShowError: false, onEzSearching: (event) => this.handleFilterChange.bind(this)(event.detail), "aria-label": searchLabelMessage, "aria-required": "false", "aria-invalid": "false" }, this.getElementID('EzFilterInput')))), this.breadcrumbItems.length > 0 && (h("ez-breadcrumb", Object.assign({ items: this.breadcrumbItems, onSelectedItem: this.handleSelectLink.bind(this), role: "navigation", "aria-current": "step" }, this.getElementID('EzBreadcrumb')))), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" })), h("section", { class: `snk-filter-field-search__section ${(this.groupEmpty && this.searchEmpty) && " ez-margin--auto"}` }, this.groupEmpty ?
488
+ h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--medium" }, this.getMessage('snkFilterFieldSearch.groupEmpty')))
489
+ :
490
+ h("ez-list", Object.assign({ ref: (el) => this._ezLinkList = el, class: "snk-filter-field-search__list", id: "filterLinkList", useGroups: true, dataSource: this.linkItems, onEzSelectItem: this.handleSelectLink.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: listItem => h("ez-badge", { label: listItem.fieldCount }), "aria-describedby": "filterLinkLabel" }, this.getElementID('EzListLinks'))), this.searchEmpty ?
491
+ h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--medium" }, this.getMessage('snkFilterFieldSearch.searchEmpty')))
492
+ :
493
+ h("ez-list", Object.assign({ ref: (el) => this._ezFieldList = el, class: "snk-filter-field-search__list", id: "filterFieldList", useGroups: true, dataSource: this.fieldItems, onEzSelectItem: this.handleSelectField.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ListItem, "aria-describedby": "filterFieldLabel" }, this.getElementID('EzListFields')))))));
179
494
  }
180
495
  };
181
496
  SnkFilterFieldSearch.style = snkFilterFieldSearchCss;
182
497
 
183
- class PersonalizedFilterUtils {
184
- /**
185
- * Cria uma expressão de filtro a partir de um IExpressionItem.
186
- * @param expressionItem - Objeto com os parâmetros necessários para montar a expressão.
187
- * @returns Retorna a expressão de filtro.
188
- */
189
- static buildFilterExpression(expressionItem) {
190
- if (expressionItem == undefined) {
191
- return;
192
- }
193
- const value = this.buildVariableParameterValue(expressionItem);
194
- let expression = expressionItem.expression || "";
195
- switch (expressionItem.operand) {
196
- case FilterOperand.IN:
197
- expression += ` ${expressionItem.operand} (${value})`;
198
- break;
199
- case FilterOperand.NULL:
200
- case FilterOperand.NOT_NULL:
201
- expression += ` IS ${value}`;
202
- break;
203
- case FilterOperand.LIKE:
204
- expression += ` LIKE '%${value}%'`;
205
- break;
206
- case FilterOperand.START_WITH:
207
- expression += ` LIKE '${value}%'`;
208
- break;
209
- case FilterOperand.FINISHED_WITH:
210
- expression += ` LIKE '%${value}'`;
211
- break;
212
- default:
213
- expression += ` ${expressionItem.operand} ${value}`;
214
- }
215
- return expression;
216
- }
217
- /**
218
- * Obtém o valor do parâmetro a partir de um IExpressionItem.
219
- * @param expressionItem - Objeto com os parâmetros necessários para montar a expressão.
220
- * @returns Retorna o valor do parâmetro.
221
- */
222
- static buildVariableParameterValue(expressionItem) {
223
- if (expressionItem == undefined) {
224
- return;
225
- }
226
- if (expressionItem.systemConfig != undefined) {
227
- const systemConfig = expressionItem.systemConfig;
228
- return `?:{entidade=${systemConfig.entity || ""};campo=${systemConfig.fieldName || ""}}`;
229
- }
230
- if (expressionItem.userConfig != undefined) {
231
- const userConfig = expressionItem.userConfig;
232
- return `?:{desc=${userConfig.description || ""};tipo=${userConfig.type || ""}}`;
233
- }
234
- return `?:{entidade=${expressionItem.entityName || ""};campo=${expressionItem.fieldName || ""}}`;
235
- }
236
- }
237
-
238
498
  const snkFilterParamConfigCss = ":host{--snk-filter-param-config__expression--color:var(--title--primary, #2b3a54);display:flex;position:relative}.snk-filter-param-config__expression{--text-area__input--disabled--color:var(--snk-filter-param-config__expression--color)}";
239
499
 
240
500
  const SnkFilterParamConfig = class {
@@ -377,7 +637,7 @@ const SnkFilterParamConfig = class {
377
637
  };
378
638
  }
379
639
  onSearch({ mode, argument }, entity) {
380
- if (this._application == undefined) {
640
+ if (this._application == undefined || !this._opened) {
381
641
  return;
382
642
  }
383
643
  const isField = entity === FilterEntities.FIELD;
@@ -429,4 +689,4 @@ const SnkFilterParamConfig = class {
429
689
  };
430
690
  SnkFilterParamConfig.style = snkFilterParamConfigCss;
431
691
 
432
- export { SnkFilterFieldSearch as snk_filter_field_search, SnkFilterParamConfig as snk_filter_param_config };
692
+ export { SnkExpressionItem as snk_expression_item, SnkFilterFieldSearch as snk_filter_field_search, SnkFilterParamConfig as snk_filter_param_config };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-cfd4bb13.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8c3d76a6.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as ACTION_CONFIG } from './constants-e916ccc3.js';
4
4