@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-131882.2 → 0.0.0-bugfix-dev-KB-174860.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 (443) hide show
  1. package/LICENSE +4 -1
  2. package/dist/cjs/{ConfigStorage-d9d24844.js → ConfigStorage-156bfcac.js} +19 -2
  3. package/dist/cjs/ContinuousInsertUtils-1ae0c6ac.js +41 -0
  4. package/dist/cjs/{DataFetcher-3a8ea521.js → DataFetcher-d13b4637.js} +2803 -2
  5. package/dist/cjs/FormConfigHelper-c5f5473a.js +342 -0
  6. package/dist/cjs/{ISave-a66bb65e.js → ISave-55d9dcc3.js} +1 -1
  7. package/dist/cjs/{ImageUtils-5e3f406b.js → ImageUtils-d6139911.js} +5 -3
  8. package/dist/cjs/{PersonalizedFilterUtils-eccb267a.js → PersonalizedFilterUtils-263e4d24.js} +52 -5
  9. package/dist/cjs/{SnkFormConfigManager-c88cf1e9.js → SnkFormConfigManager-5cb9a39c.js} +2 -2
  10. package/dist/cjs/{SnkMultiSelectionListDataSource-f53b60c4.js → SnkMultiSelectionListDataSource-5c5badfc.js} +146 -74
  11. package/dist/cjs/{auth-fetcher-faa61f64.js → auth-fetcher-d1715459.js} +1 -1
  12. package/dist/cjs/{dataunit-fetcher-6febd6c4.js → dataunit-fetcher-fae710c5.js} +68 -110
  13. package/dist/cjs/fields-layout.cjs.entry.js +1 -1
  14. package/dist/cjs/fields-selector.cjs.entry.js +1 -1
  15. package/dist/cjs/{filter-type.enum-2bb46d2a.js → filter-type.enum-b3b388af.js} +7 -0
  16. package/dist/cjs/{form-config-fetcher-72cf0e3d.js → form-config-fetcher-bbebdcb8.js} +41 -5
  17. package/dist/cjs/guides-configurator.cjs.entry.js +2 -2
  18. package/dist/cjs/index-1894343a.js +28 -40
  19. package/dist/cjs/{index-e3e39724.js → index-bc950921.js} +6 -0
  20. package/dist/cjs/loader.cjs.js +1 -1
  21. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -6
  22. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  23. package/dist/cjs/{snk-actions-button_8.cjs.entry.js → snk-actions-button_9.cjs.entry.js} +151 -63
  24. package/dist/cjs/snk-application.cjs.entry.js +8 -9
  25. package/dist/cjs/snk-attach_11.cjs.entry.js +2958 -0
  26. package/dist/cjs/snk-configurator.cjs.entry.js +2 -0
  27. package/dist/cjs/snk-crud.cjs.entry.js +140 -99
  28. package/dist/cjs/snk-data-exporter.cjs.entry.js +61 -16
  29. package/dist/cjs/{snk-data-unit-94757628.js → snk-data-unit-32237a2d.js} +11 -11
  30. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -4
  31. package/dist/cjs/snk-detail-view.cjs.entry.js +28 -20
  32. package/dist/cjs/snk-dynaform-config-header_5.cjs.entry.js +739 -0
  33. package/dist/cjs/snk-dynaform-detail-view_2.cjs.entry.js +961 -0
  34. package/dist/cjs/snk-dynaform-field-config_2.cjs.entry.js +327 -0
  35. package/dist/cjs/snk-dynaform-guides-view-2c7c6ce4.js +1094 -0
  36. package/dist/cjs/snk-dynaform-guides-view.cjs.entry.js +23 -0
  37. package/dist/cjs/snk-dynaform.cjs.entry.js +679 -0
  38. package/dist/cjs/snk-entity-search.cjs.entry.js +211 -0
  39. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  40. package/dist/cjs/{snk-expression-group_2.cjs.entry.js → snk-expression-group_4.cjs.entry.js} +421 -18
  41. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +137 -121
  42. package/dist/cjs/snk-filter-search.cjs.entry.js +10 -0
  43. package/dist/cjs/snk-form-view.cjs.entry.js +1 -4
  44. package/dist/cjs/snk-form_2.cjs.entry.js +4 -5
  45. package/dist/cjs/snk-grid.cjs.entry.js +53 -21
  46. package/dist/cjs/{snk-guides-viewer-315f8580.js → snk-guides-viewer-67b9cca9.js} +38 -161
  47. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -17
  48. package/dist/cjs/snk-layout-form-config.cjs.entry.js +5 -6
  49. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -6
  50. package/dist/cjs/snk-taskbar.cjs.entry.js +182 -125
  51. package/dist/cjs/{sortable.esm-9a110bb7.js → sortable.esm-b87669ab.js} +76 -90
  52. package/dist/cjs/taskbar-elements-25f800b3.js +152 -0
  53. package/dist/cjs/taskbarUtils-99aaa01f.js +236 -0
  54. package/dist/collection/collection-manifest.json +19 -0
  55. package/dist/collection/components/snk-actions-button/actions/executor/launch-screen.executor.js +6 -3
  56. package/dist/collection/components/snk-actions-button/snk-actions-button.js +30 -6
  57. package/dist/collection/components/snk-attach/snk-attach.css +29 -7
  58. package/dist/collection/components/snk-attach/snk-attach.js +93 -18
  59. package/dist/collection/components/snk-configurator/snk-configurator.js +2 -0
  60. package/dist/collection/components/snk-crud/snk-crud.css +55 -0
  61. package/dist/collection/components/snk-crud/snk-crud.js +147 -94
  62. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.css +4 -1
  63. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +18 -7
  64. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.css +17 -0
  65. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.js +330 -0
  66. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +0 -3
  67. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +22 -8
  68. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +36 -152
  69. package/dist/collection/components/snk-crud/utils/taskbarUtils.js +163 -0
  70. package/dist/collection/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.js +1 -1
  71. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +2 -2
  72. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +78 -23
  73. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +28 -5
  74. package/dist/collection/components/snk-data-exporter/structure/ItemBuilder.js +43 -2
  75. package/dist/collection/components/snk-dynaform/interfaces/PropsCustomEditor.js +1 -0
  76. package/dist/collection/components/snk-dynaform/interfaces/PropsCustomRender.js +1 -0
  77. package/dist/collection/components/snk-dynaform/snk-dynaform.css +69 -0
  78. package/dist/collection/components/snk-dynaform/snk-dynaform.js +1661 -0
  79. package/dist/collection/components/snk-dynaform/subcomponents/CardFormResizeObserver.js +26 -0
  80. package/dist/collection/components/snk-dynaform/subcomponents/GuideBuilder.js +51 -0
  81. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.css +182 -0
  82. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.js +1015 -0
  83. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.css +98 -0
  84. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.js +590 -0
  85. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-guides-view/snk-dynaform-guides-view.css +321 -0
  86. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-guides-view/snk-dynaform-guides-view.js +1587 -0
  87. package/dist/collection/components/snk-dynaform-form-config/FormConfigHelper.js +325 -0
  88. package/dist/collection/components/snk-dynaform-form-config/SnkFormConfigManager.js +219 -0
  89. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.css +17 -0
  90. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.js +236 -0
  91. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.css +41 -0
  92. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.js +170 -0
  93. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.css +22 -0
  94. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.js +408 -0
  95. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-item.css +88 -0
  96. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-item.js +209 -0
  97. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.css +167 -0
  98. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.js +655 -0
  99. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.css +42 -0
  100. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.js +171 -0
  101. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-form-config.css +66 -0
  102. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-form-config.js +557 -0
  103. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.css +80 -0
  104. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.js +326 -0
  105. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +30 -0
  106. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +9 -3
  107. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +2 -2
  108. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +24 -4
  109. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +6 -1
  110. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +8 -5
  111. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -6
  112. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +148 -77
  113. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.css +0 -1
  114. package/dist/collection/components/snk-grid/snk-grid.css +21 -5
  115. package/dist/collection/components/snk-grid/snk-grid.js +161 -7
  116. package/dist/collection/components/snk-grid-config/snk-grid-config.js +111 -44
  117. package/dist/collection/components/snk-image-input/snk-image-input.js +15 -3
  118. package/dist/collection/components/snk-image-input/utils/ImageUtils.js +5 -3
  119. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  120. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.css +8 -0
  121. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +38 -2
  122. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +51 -35
  123. package/dist/collection/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.js +27 -1
  124. package/dist/collection/components/snk-taskbar/processor/simple-taskbar-processor.js +55 -0
  125. package/dist/collection/components/snk-taskbar/snk-taskbar.css +44 -1
  126. package/dist/collection/components/snk-taskbar/snk-taskbar.js +248 -132
  127. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.css +12 -0
  128. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.js +19 -0
  129. package/dist/collection/lib/@types/index.js +6 -0
  130. package/dist/collection/lib/configs/ConfigStorage.js +5 -0
  131. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +1 -1
  132. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +51 -4
  133. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/helpers/DataUnitDataLoaderHelper.js +15 -104
  134. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +22 -4
  135. package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +12 -0
  136. package/dist/collection/lib/http/data-fetcher/fetchers/resource-fetcher.js +18 -0
  137. package/dist/collection/lib/message/resources/en-us/dataUnitDataLoaderHelper.msg.js +0 -13
  138. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +12 -0
  139. package/dist/collection/lib/message/resources/es-es/dataUnitDataLoaderHelper.msg.js +0 -13
  140. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +12 -0
  141. package/dist/collection/lib/message/resources/pt-br/dataUnitDataLoaderHelper.msg.js +0 -13
  142. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +12 -0
  143. package/dist/collection/lib/utils/CrudUtils.js +7 -4
  144. package/dist/components/ConfigStorage.js +17 -0
  145. package/dist/components/ContinuousInsertUtils.js +86 -28
  146. package/dist/components/ISave.js +6 -0
  147. package/dist/components/SnkMessageBuilder.js +36 -39
  148. package/dist/components/dataunit-fetcher.js +67 -109
  149. package/dist/components/form-config-fetcher.js +40 -4
  150. package/dist/components/guides-configurator2.js +1 -1
  151. package/dist/components/index.d.ts +14 -0
  152. package/dist/components/index.js +14 -0
  153. package/dist/components/snk-actions-button2.js +15 -9
  154. package/dist/components/snk-attach2.js +67 -26
  155. package/dist/components/snk-configurator2.js +2 -0
  156. package/dist/components/snk-crud.js +229 -175
  157. package/dist/components/snk-data-exporter2.js +56 -9
  158. package/dist/components/snk-detail-view2.js +174 -267
  159. package/dist/components/snk-dynaform-config-header.d.ts +11 -0
  160. package/dist/components/snk-dynaform-config-header.js +6 -0
  161. package/dist/components/snk-dynaform-config-header2.js +103 -0
  162. package/dist/components/snk-dynaform-configs-button.d.ts +11 -0
  163. package/dist/components/snk-dynaform-configs-button.js +6 -0
  164. package/dist/components/snk-dynaform-configs-button2.js +76 -0
  165. package/dist/components/snk-dynaform-detail-view.d.ts +11 -0
  166. package/dist/components/snk-dynaform-detail-view.js +6 -0
  167. package/dist/components/snk-dynaform-detail-view2.js +2213 -0
  168. package/dist/components/snk-dynaform-field-config.d.ts +11 -0
  169. package/dist/components/snk-dynaform-field-config.js +6 -0
  170. package/dist/components/snk-dynaform-field-config2.js +605 -0
  171. package/dist/components/snk-dynaform-field-item.d.ts +11 -0
  172. package/dist/components/snk-dynaform-field-item.js +6 -0
  173. package/dist/components/snk-dynaform-field-item2.js +96 -0
  174. package/dist/components/snk-dynaform-fields-layout.d.ts +11 -0
  175. package/dist/components/snk-dynaform-fields-layout.js +6 -0
  176. package/dist/components/snk-dynaform-fields-layout2.js +428 -0
  177. package/dist/components/snk-dynaform-fields-selector.d.ts +11 -0
  178. package/dist/components/snk-dynaform-fields-selector.js +6 -0
  179. package/dist/components/snk-dynaform-fields-selector2.js +104 -0
  180. package/dist/components/snk-dynaform-form-config.d.ts +11 -0
  181. package/dist/components/snk-dynaform-form-config.js +6 -0
  182. package/dist/components/snk-dynaform-form-config2.js +430 -0
  183. package/dist/components/snk-dynaform-form-view.d.ts +11 -0
  184. package/dist/components/snk-dynaform-form-view.js +6 -0
  185. package/dist/components/snk-dynaform-form-view2.js +272 -0
  186. package/dist/components/snk-dynaform-guides-configurator.d.ts +11 -0
  187. package/dist/components/snk-dynaform-guides-configurator.js +6 -0
  188. package/dist/components/snk-dynaform-guides-configurator2.js +173 -0
  189. package/dist/components/snk-dynaform-guides-view.d.ts +11 -0
  190. package/dist/components/snk-dynaform-guides-view.js +6 -0
  191. package/dist/components/snk-dynaform.d.ts +11 -0
  192. package/dist/components/snk-dynaform.js +1007 -0
  193. package/dist/components/snk-entity-search.d.ts +11 -0
  194. package/dist/components/snk-entity-search.js +6 -0
  195. package/dist/components/snk-entity-search2.js +231 -0
  196. package/dist/components/snk-exporter-email-sender2.js +1 -1
  197. package/dist/components/snk-filter-bar2.js +98 -79
  198. package/dist/components/snk-filter-detail2.js +9 -3
  199. package/dist/components/snk-filter-item2.js +5 -5
  200. package/dist/components/snk-filter-modal2.js +8 -5
  201. package/dist/components/snk-filter-search.js +12 -1
  202. package/dist/components/snk-form-view2.js +0 -3
  203. package/dist/components/snk-grid-config2.js +92 -44
  204. package/dist/components/snk-grid2.js +95 -50
  205. package/dist/components/snk-image-input2.js +20 -6
  206. package/dist/components/snk-personalized-filter2.js +1 -1
  207. package/dist/components/snk-simple-crud2.js +29 -23
  208. package/dist/components/snk-taskbar-skeleton.d.ts +11 -0
  209. package/dist/components/snk-taskbar-skeleton.js +6 -0
  210. package/dist/components/snk-taskbar-skeleton2.js +29 -0
  211. package/dist/components/snk-taskbar2.js +253 -174
  212. package/dist/components/sortable.esm.js +76 -90
  213. package/dist/components/taskbar-actions-button2.js +21 -2
  214. package/dist/components/taskbar-split-button2.js +10 -1
  215. package/dist/components/taskbarUtils.js +229 -0
  216. package/dist/esm/{ConfigStorage-d15d2014.js → ConfigStorage-0d1c0695.js} +19 -2
  217. package/dist/esm/ContinuousInsertUtils-bce77dc1.js +39 -0
  218. package/dist/esm/{DataFetcher-1dd7e8c0.js → DataFetcher-70de9419.js} +2803 -3
  219. package/dist/esm/FormConfigHelper-efc29480.js +328 -0
  220. package/dist/esm/{ISave-498c4831.js → ISave-f5704813.js} +1 -1
  221. package/dist/esm/{ImageUtils-8fc8d905.js → ImageUtils-efbea0e4.js} +5 -3
  222. package/dist/esm/{PersonalizedFilterUtils-d2439a9a.js → PersonalizedFilterUtils-45b5803c.js} +49 -2
  223. package/dist/esm/{SnkFormConfigManager-86befa68.js → SnkFormConfigManager-e7f05f79.js} +2 -2
  224. package/dist/esm/{SnkMultiSelectionListDataSource-6e9496f0.js → SnkMultiSelectionListDataSource-6ac291a9.js} +141 -69
  225. package/dist/esm/{auth-fetcher-69cbda8d.js → auth-fetcher-e34880e5.js} +1 -1
  226. package/dist/esm/{dataunit-fetcher-21c43ec7.js → dataunit-fetcher-d26e4a08.js} +68 -110
  227. package/dist/esm/fields-layout.entry.js +1 -1
  228. package/dist/esm/fields-selector.entry.js +1 -1
  229. package/dist/esm/{filter-type.enum-f6a8fe23.js → filter-type.enum-62b7fe88.js} +8 -1
  230. package/dist/esm/{form-config-fetcher-fcc7b62f.js → form-config-fetcher-98c42169.js} +41 -5
  231. package/dist/esm/guides-configurator.entry.js +2 -2
  232. package/dist/esm/index-04f73a26.js +28 -40
  233. package/dist/esm/{index-b40568ff.js → index-c6721886.js} +6 -0
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/pesquisa-grid_2.entry.js +5 -6
  236. package/dist/esm/sankhyablocks.js +1 -1
  237. package/dist/esm/{snk-actions-button_8.entry.js → snk-actions-button_9.entry.js} +152 -65
  238. package/dist/esm/snk-application.entry.js +7 -8
  239. package/dist/esm/snk-attach_11.entry.js +2944 -0
  240. package/dist/esm/snk-configurator.entry.js +2 -0
  241. package/dist/esm/snk-crud.entry.js +140 -99
  242. package/dist/esm/snk-data-exporter.entry.js +61 -16
  243. package/dist/esm/{snk-data-unit-3b06a0f3.js → snk-data-unit-ff57ac90.js} +2 -2
  244. package/dist/esm/snk-data-unit.entry.js +3 -4
  245. package/dist/esm/snk-detail-view.entry.js +26 -18
  246. package/dist/esm/snk-dynaform-config-header_5.entry.js +731 -0
  247. package/dist/esm/snk-dynaform-detail-view_2.entry.js +956 -0
  248. package/dist/esm/snk-dynaform-field-config_2.entry.js +322 -0
  249. package/dist/esm/snk-dynaform-guides-view-0dfbefc1.js +1091 -0
  250. package/dist/esm/snk-dynaform-guides-view.entry.js +15 -0
  251. package/dist/esm/snk-dynaform.entry.js +675 -0
  252. package/dist/esm/snk-entity-search.entry.js +207 -0
  253. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  254. package/dist/esm/{snk-expression-group_2.entry.js → snk-expression-group_4.entry.js} +405 -4
  255. package/dist/esm/snk-filter-bar_4.entry.js +112 -96
  256. package/dist/esm/snk-filter-search.entry.js +10 -0
  257. package/dist/esm/snk-form-view.entry.js +1 -4
  258. package/dist/esm/snk-form_2.entry.js +4 -5
  259. package/dist/esm/snk-grid.entry.js +50 -18
  260. package/dist/esm/{snk-guides-viewer-a4e31f63.js → snk-guides-viewer-31a0a23d.js} +39 -162
  261. package/dist/esm/snk-guides-viewer.entry.js +8 -17
  262. package/dist/esm/snk-layout-form-config.entry.js +5 -6
  263. package/dist/esm/snk-pesquisa.entry.js +5 -6
  264. package/dist/esm/snk-taskbar.entry.js +183 -126
  265. package/dist/esm/{sortable.esm-842f85a3.js → sortable.esm-bc277c12.js} +76 -90
  266. package/dist/esm/taskbar-elements-ba9d6889.js +149 -0
  267. package/dist/esm/taskbarUtils-cb9db0d9.js +230 -0
  268. package/dist/sankhyablocks/{p-32ad76cc.js → p-097d75b3.js} +2 -2
  269. package/dist/sankhyablocks/p-0dbd53d9.js +1 -0
  270. package/dist/sankhyablocks/p-12579574.entry.js +1 -0
  271. package/dist/sankhyablocks/p-1d31aec3.entry.js +1 -0
  272. package/dist/sankhyablocks/{p-2cc2526e.entry.js → p-1d7d5814.entry.js} +1 -1
  273. package/dist/sankhyablocks/p-24b059ee.entry.js +1 -0
  274. package/dist/sankhyablocks/p-250b273e.entry.js +1 -0
  275. package/dist/sankhyablocks/p-26f1919e.entry.js +1 -0
  276. package/dist/sankhyablocks/p-2a83f20e.entry.js +1 -0
  277. package/dist/sankhyablocks/p-2c4f7fdd.entry.js +1 -0
  278. package/dist/sankhyablocks/p-2ec98523.js +1 -0
  279. package/dist/sankhyablocks/p-449dfe55.entry.js +1 -0
  280. package/dist/sankhyablocks/p-46d7e2de.js +1 -0
  281. package/dist/sankhyablocks/p-4dd574d6.js +1 -0
  282. package/dist/sankhyablocks/p-541c72ec.entry.js +1 -0
  283. package/dist/sankhyablocks/p-58709cf9.js +1 -0
  284. package/dist/sankhyablocks/p-5aeae67f.js +1 -0
  285. package/dist/sankhyablocks/p-5d50f59a.entry.js +1 -0
  286. package/dist/sankhyablocks/p-5ef0e9a8.entry.js +1 -0
  287. package/dist/sankhyablocks/p-6d3bcabf.entry.js +1 -0
  288. package/dist/sankhyablocks/p-6f60df43.js +1 -0
  289. package/dist/sankhyablocks/p-846d8f79.entry.js +1 -0
  290. package/dist/sankhyablocks/{p-e30acdca.entry.js → p-855ccf64.entry.js} +1 -1
  291. package/dist/sankhyablocks/p-885262ce.entry.js +1 -0
  292. package/dist/sankhyablocks/p-8d1ef77a.js +60 -0
  293. package/dist/sankhyablocks/{p-9114e869.js → p-8d81c8d3.js} +2 -2
  294. package/dist/sankhyablocks/p-8f5dd87d.entry.js +1 -0
  295. package/dist/sankhyablocks/p-90037547.js +1 -0
  296. package/dist/sankhyablocks/{p-7150eacf.entry.js → p-9742ea0e.entry.js} +1 -1
  297. package/dist/sankhyablocks/p-9e02a785.js +1 -0
  298. package/dist/sankhyablocks/{p-6564180d.entry.js → p-9e7dc97d.entry.js} +1 -1
  299. package/dist/sankhyablocks/p-a25ab2ff.entry.js +1 -0
  300. package/dist/sankhyablocks/p-a696bbcd.entry.js +1 -0
  301. package/dist/sankhyablocks/{p-88b0797e.entry.js → p-a9012341.entry.js} +2 -2
  302. package/dist/sankhyablocks/p-abcb646d.js +1 -0
  303. package/dist/sankhyablocks/{p-4ff3b494.js → p-af673291.js} +1 -1
  304. package/dist/sankhyablocks/p-bd2a845c.js +1 -0
  305. package/dist/sankhyablocks/p-c4b34e2b.entry.js +1 -0
  306. package/dist/sankhyablocks/{p-7e9f8fa4.js → p-c9440c8a.js} +1 -1
  307. package/dist/sankhyablocks/p-ca3728c0.entry.js +1 -0
  308. package/dist/sankhyablocks/p-cbb8e351.js +7 -0
  309. package/dist/sankhyablocks/p-cd153f71.entry.js +1 -0
  310. package/dist/sankhyablocks/p-ce8ccd72.entry.js +1 -0
  311. package/dist/sankhyablocks/p-ddb160eb.entry.js +1 -0
  312. package/dist/sankhyablocks/p-e5a3711f.js +1 -0
  313. package/dist/sankhyablocks/{p-2b882835.entry.js → p-e737fd5a.entry.js} +1 -1
  314. package/dist/sankhyablocks/{p-362e6e8c.js → p-eac48627.js} +1 -1
  315. package/dist/sankhyablocks/p-ec7c87bb.js +28 -0
  316. package/dist/sankhyablocks/p-fb6e3c65.entry.js +1 -0
  317. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  318. package/dist/types/components/snk-actions-button/snk-actions-button.d.ts +4 -0
  319. package/dist/types/components/snk-attach/snk-attach.d.ts +22 -4
  320. package/dist/types/components/snk-crud/snk-crud.d.ts +28 -10
  321. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +3 -2
  322. package/dist/types/components/snk-crud/subcomponents/snk-entity-search.d.ts +62 -0
  323. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -18
  324. package/dist/types/components/snk-crud/utils/taskbarUtils.d.ts +13 -0
  325. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +8 -0
  326. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -0
  327. package/dist/types/components/snk-data-exporter/structure/ItemBuilder.d.ts +16 -0
  328. package/dist/types/components/snk-dynaform/interfaces/PropsCustomEditor.d.ts +4 -0
  329. package/dist/types/components/snk-dynaform/interfaces/PropsCustomRender.d.ts +4 -0
  330. package/dist/types/components/snk-dynaform/subcomponents/CardFormResizeObserver.d.ts +1 -0
  331. package/dist/types/components/snk-dynaform/subcomponents/GuideBuilder.d.ts +14 -0
  332. package/dist/types/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.d.ts +169 -0
  333. package/dist/types/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.d.ts +108 -0
  334. package/dist/types/components/snk-dynaform-form-config/FormConfigHelper.d.ts +36 -0
  335. package/dist/types/components/snk-dynaform-form-config/SnkFormConfigManager.d.ts +35 -0
  336. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.d.ts +23 -0
  337. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.d.ts +19 -0
  338. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.d.ts +56 -0
  339. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.d.ts +74 -0
  340. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.d.ts +21 -0
  341. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-form-config.d.ts +95 -0
  342. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.d.ts +35 -0
  343. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +1 -0
  344. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +1 -1
  345. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +5 -1
  346. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +33 -16
  347. package/dist/types/components/snk-grid/snk-grid.d.ts +29 -1
  348. package/dist/types/components/snk-grid-config/snk-grid-config.d.ts +7 -0
  349. package/dist/types/components/snk-image-input/snk-image-input.d.ts +1 -0
  350. package/dist/types/components/snk-image-input/utils/ImageUtils.d.ts +1 -1
  351. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +6 -0
  352. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -2
  353. package/dist/types/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.d.ts +5 -0
  354. package/dist/types/components/snk-taskbar/processor/simple-taskbar-processor.d.ts +31 -0
  355. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +32 -21
  356. package/dist/types/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.d.ts +3 -0
  357. package/dist/types/components.d.ts +2503 -1188
  358. package/dist/types/lib/@types/index.d.ts +6 -0
  359. package/dist/types/lib/configs/ConfigStorage.d.ts +1 -0
  360. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  361. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/helpers/DataUnitDataLoaderHelper.d.ts +3 -1
  362. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +2 -0
  363. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +1 -0
  364. package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +1 -0
  365. package/dist/types/lib/http/data-fetcher/fetchers/resource-fetcher.d.ts +1 -0
  366. package/package.json +11 -8
  367. package/react/components.d.ts +14 -0
  368. package/react/components.js +14 -0
  369. package/react/components.js.map +1 -1
  370. package/dist/cjs/SnkMessageBuilder-d9558dba.js +0 -2809
  371. package/dist/cjs/default-filters-a09bf82b.js +0 -8
  372. package/dist/cjs/index-62760a9c.js +0 -49
  373. package/dist/cjs/index-8d94b7e0.js +0 -7
  374. package/dist/cjs/snk-attach.cjs.entry.js +0 -911
  375. package/dist/cjs/snk-default-filter.cjs.entry.js +0 -77
  376. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +0 -61
  377. package/dist/cjs/snk-filter-detail.cjs.entry.js +0 -198
  378. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +0 -408
  379. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +0 -109
  380. package/dist/cjs/snk-image-input.cjs.entry.js +0 -148
  381. package/dist/cjs/snk-personalized-filter.cjs.entry.js +0 -358
  382. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -45
  383. package/dist/cjs/snk-simple-crud.cjs.entry.js +0 -865
  384. package/dist/cjs/taskbar-elements-a94d4318.js +0 -133
  385. package/dist/cjs/taskbar-processor-2fba34a8.js +0 -53
  386. package/dist/esm/SnkMessageBuilder-c0bc4424.js +0 -2807
  387. package/dist/esm/default-filters-50105e43.js +0 -8
  388. package/dist/esm/index-620ac460.js +0 -7
  389. package/dist/esm/index-8acbae97.js +0 -49
  390. package/dist/esm/snk-attach.entry.js +0 -907
  391. package/dist/esm/snk-default-filter.entry.js +0 -73
  392. package/dist/esm/snk-filter-advanced-mode_2.entry.js +0 -56
  393. package/dist/esm/snk-filter-detail.entry.js +0 -194
  394. package/dist/esm/snk-filter-field-search_2.entry.js +0 -403
  395. package/dist/esm/snk-filter-modal-item.entry.js +0 -105
  396. package/dist/esm/snk-image-input.entry.js +0 -144
  397. package/dist/esm/snk-personalized-filter.entry.js +0 -354
  398. package/dist/esm/snk-simple-bar.entry.js +0 -41
  399. package/dist/esm/snk-simple-crud.entry.js +0 -861
  400. package/dist/esm/taskbar-elements-97541bdd.js +0 -130
  401. package/dist/esm/taskbar-processor-3436124c.js +0 -51
  402. package/dist/sankhyablocks/p-07619e85.entry.js +0 -1
  403. package/dist/sankhyablocks/p-0d15b109.entry.js +0 -1
  404. package/dist/sankhyablocks/p-0f3698af.js +0 -1
  405. package/dist/sankhyablocks/p-10cad767.entry.js +0 -1
  406. package/dist/sankhyablocks/p-17653b22.entry.js +0 -1
  407. package/dist/sankhyablocks/p-1a0caadb.js +0 -1
  408. package/dist/sankhyablocks/p-25540da8.js +0 -1
  409. package/dist/sankhyablocks/p-27d6590e.js +0 -1
  410. package/dist/sankhyablocks/p-27e0cd68.entry.js +0 -1
  411. package/dist/sankhyablocks/p-2a356340.entry.js +0 -1
  412. package/dist/sankhyablocks/p-438a225f.entry.js +0 -1
  413. package/dist/sankhyablocks/p-45a830d9.js +0 -1
  414. package/dist/sankhyablocks/p-48c580b9.entry.js +0 -1
  415. package/dist/sankhyablocks/p-4a8d0917.entry.js +0 -1
  416. package/dist/sankhyablocks/p-4cdfa0e4.entry.js +0 -1
  417. package/dist/sankhyablocks/p-4fe8380b.entry.js +0 -1
  418. package/dist/sankhyablocks/p-51833248.js +0 -7
  419. package/dist/sankhyablocks/p-68c1a093.js +0 -1
  420. package/dist/sankhyablocks/p-6a4b21dd.js +0 -1
  421. package/dist/sankhyablocks/p-72d62f22.js +0 -1
  422. package/dist/sankhyablocks/p-73b455e1.entry.js +0 -1
  423. package/dist/sankhyablocks/p-84345e7a.js +0 -1
  424. package/dist/sankhyablocks/p-8bb4e86b.entry.js +0 -1
  425. package/dist/sankhyablocks/p-9c1ff75e.entry.js +0 -1
  426. package/dist/sankhyablocks/p-a9839628.js +0 -26
  427. package/dist/sankhyablocks/p-b25777fa.entry.js +0 -1
  428. package/dist/sankhyablocks/p-b568c1d4.js +0 -1
  429. package/dist/sankhyablocks/p-b9970342.js +0 -60
  430. package/dist/sankhyablocks/p-bdf0077f.js +0 -1
  431. package/dist/sankhyablocks/p-c8043a53.entry.js +0 -1
  432. package/dist/sankhyablocks/p-c860552e.entry.js +0 -1
  433. package/dist/sankhyablocks/p-cc64239c.entry.js +0 -1
  434. package/dist/sankhyablocks/p-cd00a3d1.entry.js +0 -1
  435. package/dist/sankhyablocks/p-e0a6818c.js +0 -1
  436. package/dist/sankhyablocks/p-e0e3914e.entry.js +0 -1
  437. package/dist/sankhyablocks/p-ebce5394.entry.js +0 -1
  438. package/dist/sankhyablocks/p-ef9343c3.entry.js +0 -1
  439. package/dist/sankhyablocks/p-f1110b78.entry.js +0 -1
  440. package/dist/sankhyablocks/p-f1bf7248.entry.js +0 -1
  441. package/dist/sankhyablocks/p-f1d541e9.entry.js +0 -1
  442. package/dist/sankhyablocks/p-f2472d12.entry.js +0 -1
  443. package/dist/sankhyablocks/p-f4184ce7.js +0 -1
@@ -0,0 +1,207 @@
1
+ import { r as registerInstance, e as createEvent, h, f as Host, g as getElement } from './index-04f73a26.js';
2
+ import { KeyboardManager, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
+
4
+ const snkEntitySearchCss = ".entity-search-popover{width:432px;font-family:var(--font-pattern, \"Roboto\");color:var(--color--gray-600, #1C1D22);text-shadow:0 0 var(--color--gray-500, #494A4E), 0 0 1px transparent;font-size:var(--font-size--large, 18px);padding:var(--space--24, 24px);max-width:430px;display:flex;flex-direction:column}.entity-search-popover label{margin-bottom:var(--space--16, 16px)}";
5
+
6
+ const SnkEntitySearch = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.loaded = createEvent(this, "loaded", 7);
10
+ this.SEARCH_DESCRIPTION_TIMEOUT = 300;
11
+ this._entityPKField = null;
12
+ this.searchEntitySelect = async (item) => {
13
+ if (!this._entityPKField || !item) {
14
+ return;
15
+ }
16
+ try {
17
+ const pk = [{ name: this._entityPKField, value: item.value }];
18
+ await this.closeSearchPopover();
19
+ await this.refreshDataUnitByPk(pk);
20
+ }
21
+ catch (error) {
22
+ console.error('Erro ao selecionar entidade:', error);
23
+ }
24
+ };
25
+ this.entityName = "";
26
+ this.dataUnit = undefined;
27
+ this.messagesBuilder = undefined;
28
+ this._searchInputValue = "";
29
+ this._showMoreOnSearch = false;
30
+ this.visibleOptions = [];
31
+ this.value = undefined;
32
+ this.showLoading = true;
33
+ }
34
+ async showUnder(element) {
35
+ await this._popoverSearchEntity.showUnder(element, { horizontalGap: 12, verticalGap: 4 });
36
+ }
37
+ buildSearchOptions(limit) {
38
+ return {
39
+ entity: this.entityName,
40
+ entityDescription: this.entityName,
41
+ executeOnOpen: true,
42
+ searchOptions: {
43
+ localEntityName: this.entityName,
44
+ limit,
45
+ }
46
+ };
47
+ }
48
+ async handlePredictiveSearch(argument) {
49
+ var _a, _b;
50
+ const response = await this._application.executePreparedSearchWithFullResponse(argument, this.buildSearchOptions(5));
51
+ this._showMoreOnSearch = (_a = response === null || response === void 0 ? void 0 : response.hasMore) !== null && _a !== void 0 ? _a : false;
52
+ this._entityPKField = response === null || response === void 0 ? void 0 : response.pkField;
53
+ return (_b = response === null || response === void 0 ? void 0 : response.data) !== null && _b !== void 0 ? _b : [];
54
+ }
55
+ async loadEntitySuggestions(argument) {
56
+ var _a;
57
+ const value = (_a = argument === null || argument === void 0 ? void 0 : argument.argument) !== null && _a !== void 0 ? _a : '';
58
+ const mode = (argument === null || argument === void 0 ? void 0 : argument.mode) || "PREDICTIVE";
59
+ if (!value || value.trim().length === 0) {
60
+ return [];
61
+ }
62
+ try {
63
+ this._showMoreOnSearch = false;
64
+ if (mode === "PREDICTIVE") {
65
+ return await this.handlePredictiveSearch(value);
66
+ }
67
+ const searchResult = await this._application.executePreparedSearch(mode, value, this.buildSearchOptions());
68
+ return Array.isArray(searchResult) ? searchResult : [searchResult];
69
+ }
70
+ catch (error) {
71
+ console.error('Erro ao carregar sugestões de entidades:', error);
72
+ return [];
73
+ }
74
+ }
75
+ async refreshDataUnitByPk(pks) {
76
+ try {
77
+ const pkField = pks[0].name;
78
+ const pkValue = pks[0].value;
79
+ // Criar filtro para a busca específica
80
+ const quickFilter = {
81
+ term: '',
82
+ filter: {
83
+ name: '',
84
+ params: [],
85
+ expression: `(${pkField} = ${pkValue})`
86
+ }
87
+ };
88
+ // Carregar dados com o filtro aplicado diretamente
89
+ await this.dataUnit.loadData(quickFilter);
90
+ this.loaded.emit(this.dataUnit.records);
91
+ }
92
+ catch (error) {
93
+ console.error('Erro ao atualizar dataset:', error);
94
+ }
95
+ }
96
+ async closeSearchPopover() {
97
+ if (this._popoverSearchEntity && this._popoverSearchEntity.opened) {
98
+ await this._popoverSearchEntity.hide();
99
+ }
100
+ }
101
+ async handleOnEzVisibilityChange(event) {
102
+ if (event.detail) {
103
+ await this._textInput.setFocus();
104
+ }
105
+ }
106
+ async handleSelectItem(evt) {
107
+ const currentOpt = evt.detail;
108
+ this.value = currentOpt;
109
+ await this._popoverListResult.hide();
110
+ await this.searchEntitySelect(currentOpt);
111
+ this._searchInputValue = "";
112
+ }
113
+ updateKeyOption(option) {
114
+ return (Object.assign(Object.assign({}, option), { presentationValue: option.value, presentationLabel: option.label }));
115
+ }
116
+ async handleInputChange(value) {
117
+ if (this._debounceSearch) {
118
+ clearTimeout(this._debounceSearch);
119
+ }
120
+ return new Promise((resolve) => {
121
+ this._debounceSearch = setTimeout(async () => {
122
+ var _a;
123
+ this.showLoading = true;
124
+ this._searchInputValue = value;
125
+ await this._popoverListResult.showUnder(this._textInput);
126
+ this.visibleOptions = (_a = (await this.loadEntitySuggestions({ argument: this._searchInputValue, mode: undefined }))) === null || _a === void 0 ? void 0 : _a.map(this.updateKeyOption);
127
+ this.showLoading = false;
128
+ resolve();
129
+ }, this.SEARCH_DESCRIPTION_TIMEOUT);
130
+ });
131
+ }
132
+ isOptionsVisible() {
133
+ return this._popoverListResult.opened;
134
+ }
135
+ async handleArrowUp() {
136
+ if (!this.isOptionsVisible()) {
137
+ return;
138
+ }
139
+ await this._searchList.previousOption();
140
+ }
141
+ async handleArrowDown() {
142
+ if (!this.isOptionsVisible()) {
143
+ return;
144
+ }
145
+ await this._searchList.nextOption();
146
+ }
147
+ async selectCurrentItem() {
148
+ var _a;
149
+ await ((_a = this._searchList) === null || _a === void 0 ? void 0 : _a.selectCurrentItem());
150
+ }
151
+ async cancelSelection() {
152
+ var _a, _b;
153
+ await ((_a = this._searchList) === null || _a === void 0 ? void 0 : _a.cancelSelection());
154
+ (_b = this._popoverListResult) === null || _b === void 0 ? void 0 : _b.hide();
155
+ }
156
+ async handleInputTab() {
157
+ await this.cancelSelection();
158
+ }
159
+ async handleInputEsc() {
160
+ await this.cancelSelection();
161
+ }
162
+ getMessage(key, params) {
163
+ if (this.messagesBuilder) {
164
+ return this.messagesBuilder.getMessage(key, params);
165
+ }
166
+ // Fallback para mensagens padrão em português
167
+ const messages = {
168
+ 'snkCrud.entitySearch.label': 'Busca por registros',
169
+ 'snkCrud.entitySearch.placeholder': 'Digite o que você procura aqui...'
170
+ };
171
+ return messages[key] || key;
172
+ }
173
+ async initKeyboardManager() {
174
+ this._keyboardManager = new KeyboardManager();
175
+ const defaultOpts = { element: this._elem, propagate: true };
176
+ this._keyboardManager
177
+ .bind("ArrowUp", () => this.handleArrowUp(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
178
+ .bind("ArrowDown", () => this.handleArrowDown(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
179
+ .bind("Enter", () => this.selectCurrentItem(), Object.assign(Object.assign({}, defaultOpts), { propagate: false }))
180
+ .bind("Tab", () => this.handleInputTab(), defaultOpts)
181
+ .bind("Escape", () => this.handleInputEsc(), defaultOpts);
182
+ }
183
+ connectedCallback() {
184
+ this.initKeyboardManager();
185
+ }
186
+ componentWillLoad() {
187
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
188
+ }
189
+ componentDidLoad() {
190
+ ElementIDUtils.addIDInfoIfNotExists(this._elem, 'snk-entity-search');
191
+ }
192
+ disconnectedCallback() {
193
+ this._keyboardManager
194
+ .unbind("ArrowUp")
195
+ .unbind("ArrowDown")
196
+ .unbind("Enter")
197
+ .unbind("Tab")
198
+ .unbind("Escape");
199
+ }
200
+ render() {
201
+ return (h(Host, null, h("ez-popover-core", { ref: (ref) => this._popoverSearchEntity = ref, onEzVisibilityChange: (event) => this.handleOnEzVisibilityChange(event) }, h("div", { class: "entity-search-popover" }, h("label", null, this.getMessage('snkCrud.entitySearch.label')), h("ez-classic-input", { ref: (ref) => this._textInput = ref, placeholder: this.getMessage('snkCrud.entitySearch.placeholder'), rightIconClickable: true, size: "small", value: this._searchInputValue, onEzChange: (evt) => this.handleInputChange(evt.detail) }), h("ez-popover-core", { ref: elem => this._popoverListResult = elem, anchorElement: this._textInput, autoClose: true, boxWidth: 'fit-content', overlayType: 'none', useAnchorSize: true, onEzVisibilityChange: (event) => event.stopPropagation() }, h("ez-search-result-list", { ref: (ref) => this._searchList = ref, showLoading: this.showLoading, visibleOptions: this.visibleOptions, value: this.value, onChangeValue: (evt) => this.handleSelectItem(evt) }))))));
202
+ }
203
+ get _elem() { return getElement(this); }
204
+ };
205
+ SnkEntitySearch.style = snkEntitySearchCss;
206
+
207
+ export { SnkEntitySearch as snk_entity_search };
@@ -120,7 +120,7 @@ const SnkExporterEmailSender = class {
120
120
  return (h("ez-popup", { useHeader: false, size: "x-small", heightMode: "auto", opened: this._opened }, h("ez-modal-container", { onEzModalAction: (evt) => {
121
121
  if (evt.detail === ModalAction.CLOSE)
122
122
  this.close();
123
- }, modalTitle: this.getMessage("snkExporter.emailSenderTitle"), modalSubTitle: this.getStepMessage("subTitle") }, h("ez-view-stack", { ref: ref => this._viewStack = ref }, h("stack-item", null, h(OptionsStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateConfigInfo(field, value) })), h("stack-item", null, h(EmailInfoStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateEmailInfo(field, value) }))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-button--tertiary ez-padding-right--medium", label: this.getStepMessage("firstButton"), onClick: () => this.executeButtonAction(true), enabled: this.checkButtonEnabled(true) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("firstButton")}` })), h("ez-button", Object.assign({ class: this.getSecondButtonClass(), label: this.getStepMessage("secondButton"), onClick: () => this.executeButtonAction(false), enabled: this.checkButtonEnabled(false) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("secondButton")}` }))))));
123
+ }, modalTitle: this.getMessage("snkExporter.emailSenderTitle"), modalSubTitle: this.getStepMessage("subTitle") }, h("ez-view-stack", { ref: ref => this._viewStack = ref }, h("stack-item", null, h(OptionsStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateConfigInfo(field, value) })), h("stack-item", null, h(EmailInfoStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateEmailInfo(field, value) }))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-padding-right--medium", label: this.getStepMessage("firstButton"), onClick: () => this.executeButtonAction(true), enabled: this.checkButtonEnabled(true) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("firstButton")}` }, { variant: "secondary", size: "medium" })), h("ez-button", Object.assign({ label: this.getStepMessage("secondButton"), onClick: () => this.executeButtonAction(false), enabled: this.checkButtonEnabled(false) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("secondButton")}` }, { variant: "primary", size: "medium" }))))));
124
124
  }
125
125
  get _element() { return getElement(this); }
126
126
  };
@@ -1,11 +1,12 @@
1
1
  import { r as registerInstance, e as createEvent, h, i as forceUpdate, f as Host, g as getElement } from './index-04f73a26.js';
2
- import { a as FilterGroupCondition, F as FilterOperand } from './index-8acbae97.js';
2
+ import { a as FilterGroupCondition, F as FilterOperand, b as FilterConfigType, P as PersonalizedFilterUtils, c as FilterEntities, d as FilterUserConfigTypes } from './PersonalizedFilterUtils-45b5803c.js';
3
3
  import { ApplicationUtils, CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { ApplicationContext, StringUtils, ElementIDUtils, UserInterface } from '@sankhyalabs/core';
5
- import { S as SelectedItemType } from './index-620ac460.js';
4
+ import { ApplicationContext, StringUtils, ElementIDUtils, UserInterface, JSUtils, DataType } from '@sankhyalabs/core';
6
5
  import { fieldBuilder } from '@sankhyalabs/ezui/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder';
7
6
  import { s as store } from './index-ea250be6.js';
8
7
  import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
8
+ import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
9
+ import './filter-item-type.enum-d45e026f.js';
9
10
 
10
11
  const snkExpressionGroupCss = ".sc-snk-expression-group-h{display:block;--snk-expression-group--container-condition--width:184px;--snk-expression-group--container-condition--height:38px;--snk-expression-group--container-condition--border-radius:var(--border--radius-medium, 12px);--snk-expression-group--container-option--width:85px;--snk-expression-group__container-condition--background-and:#66B6A0;--snk-expression-group__container-condition--background-or:#EBC65E;--snk-expression-group__container-expression--padding-left:26px;--snk-expression-group__background-color-dashed:var(--background--body, #fafcff);--ez-text-input__margin-bottom:0px}.snk-expression-group__container-condition.sc-snk-expression-group{width:var(--snk-expression-group--container-condition--width);height:var(--snk-expression-group--container-condition--height);border-radius:var(--snk-expression-group--container-condition--border-radius);z-index:var(--more-visible--2x, 3);padding:var(--space--nano, 2px)}.snk-expression-group__container-option.sc-snk-expression-group{width:var(--snk-expression-group--container-option--width)}.snk-expression-group__container-condition[data-condition=\"AND\"].sc-snk-expression-group{background-color:var(--snk-expression-group__container-condition--background-and)}.snk-expression-group__container-condition[data-condition=\"OR\"].sc-snk-expression-group{background-color:var(--snk-expression-group__container-condition--background-or)}.snk-expression-group__container-expression.sc-snk-expression-group{padding-left:var(--snk-expression-group__container-expression--padding-left)}.dashes.sc-snk-expression-group{z-index:var(--visible, 1);background:var(--snk-expression-group__background-color-dashed);border-left:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:58px;margin-left:-15px;margin-top:-36.5px}.horizontal-dashes.sc-snk-expression-group{z-index:var(--more-visible, 2);border-bottom:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:54px;margin-left:-15px;margin-top:-33.5px}.hidden.sc-snk-expression-group{display:none}";
11
12
 
@@ -249,6 +250,12 @@ const SnkExpressionGroup = class {
249
250
  };
250
251
  SnkExpressionGroup.style = snkExpressionGroupCss;
251
252
 
253
+ var SelectedItemType;
254
+ (function (SelectedItemType) {
255
+ SelectedItemType["LINK"] = "LINK";
256
+ SelectedItemType["FIELD"] = "FIELD";
257
+ })(SelectedItemType || (SelectedItemType = {}));
258
+
252
259
  const defaultsOperand = [
253
260
  { label: "snkPersonalizedFilter.operands.equal", value: "EQUAL" },
254
261
  { label: "snkPersonalizedFilter.operands.different", value: "DIFFERENT" },
@@ -540,4 +547,398 @@ const SnkExpressionItem = class {
540
547
  };
541
548
  SnkExpressionItem.style = snkExpressionItemCss;
542
549
 
543
- export { SnkExpressionGroup as snk_expression_group, SnkExpressionItem as snk_expression_item };
550
+ const ICON_MODES = {
551
+ [UserInterface.SHORTTEXT]: 'text',
552
+ [UserInterface.LONGTEXT]: 'text',
553
+ [UserInterface.INTEGERNUMBER]: 'number',
554
+ [UserInterface.DECIMALNUMBER]: 'number',
555
+ [UserInterface.DATE]: 'calendar',
556
+ [UserInterface.DATETIME]: 'calendar',
557
+ [UserInterface.SWITCH]: 'boolean',
558
+ [UserInterface.CHECKBOX]: 'check-circle-inverted',
559
+ [UserInterface.OPTIONSELECTOR]: 'list',
560
+ [UserInterface.SEARCH]: 'search',
561
+ [UserInterface.HTML]: 'tag_code',
562
+ [UserInterface.IMAGE]: 'png',
563
+ [UserInterface.FILE]: 'edit-file',
564
+ [UserInterface.TIME]: 'timer-outline',
565
+ [UserInterface.ELAPSEDTIME]: 'timer',
566
+ [UserInterface.MASKEDTEXT]: 'text',
567
+ [UserInterface.PASSWORD]: 'email',
568
+ };
569
+ const ListItem = ({ userInterface, description }) => {
570
+ return (h("ez-icon", { iconName: ICON_MODES[userInterface], class: "ez-padding-left--small", title: description }));
571
+ };
572
+
573
+ 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}";
574
+
575
+ const SNK_CONTEXT_KEY = "__SNK__APPLICATION__";
576
+ const ENTITY_NAME_PATTERN = /\w+:\/\/(\w+)/;
577
+ const SnkFilterFieldSearch = class {
578
+ constructor(hostRef) {
579
+ registerInstance(this, hostRef);
580
+ this.ezSelectFilterItem = createEvent(this, "ezSelectFilterItem", 7);
581
+ this._currentMetadata = null;
582
+ this._filterText = "";
583
+ this._isLoading = false;
584
+ this.searchable = true;
585
+ this.fieldsDataSource = undefined;
586
+ this.breadcrumbItems = [];
587
+ this.linkItems = [];
588
+ this.fieldItems = [];
589
+ this.searchEmpty = false;
590
+ this.groupEmpty = false;
591
+ }
592
+ /**
593
+ * /**
594
+ * Realiza a abertura do componente abaixo do elemento HTML informado
595
+ * e faz a primeira carga de dados.
596
+ *
597
+ * @param {HTMLElement} element - Elemento HTML onde o snk-filter-field-search irá se posicionar abaixo.
598
+ * @param {IEzPopoverAnchorOptions} options - opções para regular o posicionamento do componente.
599
+ */
600
+ async show(element, options) {
601
+ var _a;
602
+ if (element) {
603
+ (_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.showUnder(element, options);
604
+ }
605
+ else {
606
+ this._ezPopover.show();
607
+ }
608
+ return this.loadData();
609
+ }
610
+ /**
611
+ * Filtra a fonte de dados do componente.
612
+ * @param {string} filterText - Texto para filtrar a fonte de dados.
613
+ * @throws {Error} - Quando o componente estiver com a propriedade searchable como true.
614
+ */
615
+ async applyFilter(filterText) {
616
+ if (this.searchable)
617
+ throw new Error('This method is not available when searchable is true');
618
+ this.handleFilterChange(filterText);
619
+ }
620
+ async loadData() {
621
+ var _a, _b;
622
+ this._isLoading = true;
623
+ let metadata = await this.fieldsDataSource.fetchData(this._currentLink);
624
+ this._currentLink = metadata.currentLink;
625
+ const { fields, links } = metadata || {};
626
+ if (!Array.isArray(fields) || !Array.isArray(links))
627
+ throw new Error('Invalid metadata');
628
+ this._currentMetadata = metadata;
629
+ this.mapDataSourceToLinkItems();
630
+ this.mapDataSourceToFieldItems();
631
+ this._isLoading = false;
632
+ (_a = this._ezFieldList) === null || _a === void 0 ? void 0 : _a.scrollToTop();
633
+ (_b = this._ezLinkList) === null || _b === void 0 ? void 0 : _b.scrollToTop();
634
+ }
635
+ mapDataSourceToLinkItems() {
636
+ var _a;
637
+ const { links } = this._currentMetadata;
638
+ const filterLinkLabelMessage = this.getMessage('snkFilterFieldSearch.linkLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
639
+ const items = links.map(link => (Object.assign({ label: link.description }, link)));
640
+ this.groupEmpty = Boolean(items.length === 0);
641
+ this.linkItems = [{
642
+ group: filterLinkLabelMessage,
643
+ items,
644
+ }];
645
+ if (this.breadcrumbItems.length === 0) {
646
+ this.breadcrumbItems = [Object.assign({ id: JSUtils.generateUUID(), label: this._currentLink.description }, this._currentLink)];
647
+ }
648
+ }
649
+ mapDataSourceToFieldItems() {
650
+ var _a;
651
+ const fields = this._currentMetadata.fields;
652
+ const filterFieldLabelMessage = this.getMessage('snkFilterFieldSearch.fieldLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
653
+ const filteredFields = fields.filter(field => {
654
+ if (!this._currentLink)
655
+ return true;
656
+ const searchableByDescription = field.description.toLowerCase().includes(this._filterText.toLowerCase());
657
+ const searchableByName = field.name.toLowerCase().includes(this._filterText.toLowerCase());
658
+ return searchableByDescription || searchableByName;
659
+ });
660
+ const items = filteredFields.map(field => (Object.assign({ label: field.description }, field)));
661
+ this.searchEmpty = Boolean(this._filterText && items.length === 0);
662
+ this.fieldItems = [{
663
+ group: filterFieldLabelMessage,
664
+ items
665
+ }];
666
+ }
667
+ handleFilterChange(filterText) {
668
+ if (this._isLoading)
669
+ return;
670
+ this._filterText = filterText;
671
+ this.mapDataSourceToFieldItems();
672
+ }
673
+ handleSelectLink({ detail: item }) {
674
+ if (this._isLoading)
675
+ return;
676
+ const breadcrumbByIndex = this.breadcrumbItems.findIndex(breadcrumbItem => breadcrumbItem.id === item.id);
677
+ if (breadcrumbByIndex > -1) {
678
+ this.breadcrumbItems = this.breadcrumbItems.slice(0, (breadcrumbByIndex + 1));
679
+ }
680
+ else {
681
+ this.breadcrumbItems = [...this.breadcrumbItems, Object.assign({ id: JSUtils.generateUUID(), label: item.description }, item)];
682
+ }
683
+ const selectedItem = Object.assign(Object.assign({}, item), { type: SelectedItemType.LINK });
684
+ this._currentLink = selectedItem;
685
+ this.ezSelectFilterItem.emit(selectedItem);
686
+ this.loadData();
687
+ }
688
+ getEntityFromBreadCrumbItem(item) {
689
+ const result = ENTITY_NAME_PATTERN.exec(item.uri);
690
+ if (!result) {
691
+ return undefined;
692
+ }
693
+ return result[1];
694
+ }
695
+ handleSelectField({ detail: item }) {
696
+ var _a;
697
+ const breadcrumbPath = this.breadcrumbItems.map(breadcrumbItem => breadcrumbItem.label).join('>>');
698
+ 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}` });
699
+ this.ezSelectFilterItem.emit(selectedField);
700
+ (_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.hide();
701
+ }
702
+ getElementID(sufix) {
703
+ return {
704
+ [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(sufix)
705
+ };
706
+ }
707
+ /**
708
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
709
+ * através de um pequeno modulo na estrutura da aplicação:
710
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
711
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-field-search.msg.ts"
712
+ */
713
+ getMessage(key, params) {
714
+ var _a, _b, _c;
715
+ if (!this._application)
716
+ this._application = ApplicationContext.getContextValue(SNK_CONTEXT_KEY);
717
+ return (_c = (_b = (_a = this._application) === null || _a === void 0 ? void 0 : _a.messagesBuilder) === null || _b === void 0 ? void 0 : _b.getMessage) === null || _c === void 0 ? void 0 : _c.call(_b, key, params);
718
+ }
719
+ ;
720
+ componentWillLoad() {
721
+ this._application = ApplicationContext.getContextValue(SNK_CONTEXT_KEY);
722
+ }
723
+ componentDidLoad() {
724
+ ElementIDUtils.addIDInfoIfNotExists(this._ezPopover, 'popover');
725
+ }
726
+ disconnectedCallback() {
727
+ var _a;
728
+ (_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.hide();
729
+ }
730
+ render() {
731
+ var _a;
732
+ const searchLabelMessage = this.getMessage('snkFilterFieldSearch.searchLabel');
733
+ 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 ?
734
+ h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--medium" }, this.getMessage('snkFilterFieldSearch.groupEmpty')))
735
+ :
736
+ 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 ?
737
+ h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--medium" }, this.getMessage('snkFilterFieldSearch.searchEmpty')))
738
+ :
739
+ 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')))))));
740
+ }
741
+ };
742
+ SnkFilterFieldSearch.style = snkFilterFieldSearchCss;
743
+
744
+ 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)}";
745
+
746
+ const SnkFilterParamConfig = class {
747
+ constructor(hostRef) {
748
+ registerInstance(this, hostRef);
749
+ this._opened = false;
750
+ this._configType = FilterConfigType.SYSTEM_CONFIG;
751
+ this._expressionItem = undefined;
752
+ this._informedInstance = false;
753
+ this._canSave = false;
754
+ this.messagesBuilder = undefined;
755
+ }
756
+ /**
757
+ * Abre o modal de configuração de valor variável
758
+ */
759
+ open(expressionItem) {
760
+ this._opened = true;
761
+ this._expressionItem = expressionItem;
762
+ this.loadValues();
763
+ return new Promise(accept => {
764
+ this._promiseResolver = accept;
765
+ });
766
+ }
767
+ /**
768
+ * Fecha o modal de configuração de valor variável
769
+ */
770
+ close() {
771
+ this._opened = false;
772
+ return new Promise(accept => {
773
+ this._promiseResolver = accept;
774
+ });
775
+ }
776
+ /**
777
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
778
+ * através de um pequeno modulo na estrutura da aplicação:
779
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
780
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-param-config.msg.ts"
781
+ */
782
+ getMessage(key, params) {
783
+ var _a;
784
+ return (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params);
785
+ }
786
+ getConfigValue(configName, inputName, inputAlias = "") {
787
+ var _a, _b, _c;
788
+ return ((_b = (_a = this._expressionItem) === null || _a === void 0 ? void 0 : _a[configName]) === null || _b === void 0 ? void 0 : _b[inputName])
789
+ || ((_c = this._expressionItem) === null || _c === void 0 ? void 0 : _c[inputAlias || inputName]);
790
+ }
791
+ loadValues() {
792
+ var _a;
793
+ const entityName = this.getConfigValue("systemConfig", "entity", "entityName");
794
+ const fieldName = this.getConfigValue("systemConfig", "fieldName");
795
+ const description = this.getConfigValue("userConfig", "description");
796
+ const type = this.getConfigValue("userConfig", "type");
797
+ if (((_a = this._expressionItem) === null || _a === void 0 ? void 0 : _a.userConfig) != undefined) {
798
+ this._configType = FilterConfigType.USER_CONFIG;
799
+ }
800
+ else {
801
+ this._configType = FilterConfigType.SYSTEM_CONFIG;
802
+ }
803
+ if (!StringUtils.isEmpty(entityName) && !StringUtils.isEmpty(fieldName)) {
804
+ this._instanceElement.value = { value: entityName, label: "" };
805
+ this._fieldElement.value = { value: fieldName, label: "" };
806
+ }
807
+ if (!StringUtils.isEmpty(description) && !StringUtils.isEmpty(type)) {
808
+ this._descriptionElement.value = description;
809
+ this._typeElement.value = type;
810
+ }
811
+ this.buildFilterExpression();
812
+ }
813
+ changeDefinitionUsed(option) {
814
+ this._configType = option !== null && option !== void 0 ? option : FilterConfigType.SYSTEM_CONFIG;
815
+ if (this._configType === FilterConfigType.SYSTEM_CONFIG) {
816
+ const entityName = this.getConfigValue("systemConfig", "entity", "entityName");
817
+ const fieldName = this.getConfigValue("systemConfig", "fieldName");
818
+ this._instanceElement.value = this._instanceElement.value || { value: entityName, label: "" };
819
+ this._fieldElement.value = this._fieldElement.value || { value: fieldName, label: "" };
820
+ }
821
+ else if (this._configType === FilterConfigType.USER_CONFIG) {
822
+ const description = this.getConfigValue("userConfig", "description");
823
+ const type = this.getConfigValue("userConfig", "type");
824
+ this._descriptionElement.value = this._descriptionElement.value || description;
825
+ this._typeElement.value = this._typeElement.value || type;
826
+ }
827
+ this.buildFilterExpression();
828
+ }
829
+ getTypeValue() {
830
+ var _a;
831
+ const value = (_a = this._typeElement) === null || _a === void 0 ? void 0 : _a.value;
832
+ return ((value === null || value === void 0 ? void 0 : value.value) || value);
833
+ }
834
+ getExpressionValues() {
835
+ var _a, _b, _c, _d, _e;
836
+ let systemConfig;
837
+ let userConfig;
838
+ if (this._configType === FilterConfigType.SYSTEM_CONFIG) {
839
+ const entity = (_b = (_a = this._instanceElement) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.value;
840
+ const fieldName = (_d = (_c = this._fieldElement) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.value;
841
+ systemConfig = { entity, fieldName };
842
+ }
843
+ else if (this._configType === FilterConfigType.USER_CONFIG) {
844
+ const description = (_e = this._descriptionElement) === null || _e === void 0 ? void 0 : _e.value;
845
+ const type = this.getTypeValue();
846
+ userConfig = { description, type };
847
+ }
848
+ return Object.assign(Object.assign(Object.assign({}, this._expressionItem), { systemConfig }), { userConfig });
849
+ }
850
+ isEnabled(value) {
851
+ return this._configType === value;
852
+ }
853
+ isInformedInstance() {
854
+ var _a, _b;
855
+ return !StringUtils.isEmpty((_b = (_a = this._instanceElement) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.value);
856
+ }
857
+ save() {
858
+ var _a;
859
+ this._expressionItem = Object.assign(Object.assign({}, this.getExpressionValues()), { expression: (_a = this._expressionElement) === null || _a === void 0 ? void 0 : _a.value });
860
+ this._promiseResolver(this._expressionItem);
861
+ this._opened = false;
862
+ }
863
+ buildFilterExpression() {
864
+ var _a;
865
+ this._informedInstance = this.isInformedInstance();
866
+ const expression = PersonalizedFilterUtils.buildFilterExpression(this.getExpressionValues());
867
+ this._expressionElement.value = expression || ((_a = this._expressionItem) === null || _a === void 0 ? void 0 : _a.expression);
868
+ this._canSave = this.getCanSave();
869
+ }
870
+ handleChangeInstance() {
871
+ this._informedInstance = this.isInformedInstance();
872
+ if (this._fieldElement != undefined && !StringUtils.isEmpty(this._fieldElement.value)) {
873
+ this._fieldElement.value = null;
874
+ }
875
+ this.buildFilterExpression();
876
+ }
877
+ getInstanceCriteria() {
878
+ var _a, _b;
879
+ const value = (_b = (_a = this._instanceElement) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.value;
880
+ return {
881
+ expression: "this.NOMETAB = (SELECT NOMETAB FROM TDDINS WHERE NOMEINSTANCIA = ?)",
882
+ params: [
883
+ {
884
+ name: "NOMEINSTANCIA",
885
+ dataType: DataType.TEXT,
886
+ value
887
+ }
888
+ ]
889
+ };
890
+ }
891
+ onSearch({ mode, argument }, entity) {
892
+ if (this._application == undefined || !this._opened) {
893
+ return;
894
+ }
895
+ const isField = entity === FilterEntities.FIELD;
896
+ const criteria = isField ? this.getInstanceCriteria() : undefined;
897
+ const messageKey = `snkFilterParamConfig.label${isField ? "Field" : "Instance"}`;
898
+ const entityDescription = this.getMessage(messageKey);
899
+ const searchOptions = {
900
+ descriptionFieldName: isField ? "DESCRCAMPO" : "DESCRINSTANCIA",
901
+ codeFieldName: isField ? "NOMECAMPO" : "NOMEINSTANCIA",
902
+ showInactives: false
903
+ };
904
+ const options = {
905
+ entity,
906
+ entityDescription,
907
+ criteria,
908
+ searchOptions
909
+ };
910
+ return new Promise((resolve) => {
911
+ this._application.executePreparedSearch(mode, argument, options).then(res => resolve(res));
912
+ });
913
+ }
914
+ getElementID(sufix) {
915
+ return {
916
+ [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(sufix)
917
+ };
918
+ }
919
+ getCanSave() {
920
+ var _a;
921
+ if (this._configType === FilterConfigType.USER_CONFIG) {
922
+ const description = (_a = this._descriptionElement) === null || _a === void 0 ? void 0 : _a.value;
923
+ const type = this.getTypeValue();
924
+ return !StringUtils.isEmpty(description) && !StringUtils.isEmpty(type);
925
+ }
926
+ return true;
927
+ }
928
+ componentWillLoad() {
929
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
930
+ }
931
+ render() {
932
+ ElementIDUtils.addIDInfoIfNotExists(this._element, 'snkFilterParamConfig');
933
+ return (h("ez-popup", Object.assign({ useHeader: false, size: "small", heightMode: "auto", opened: this._opened }, this.getElementID("popup")), h("ez-modal-container", Object.assign({ onEzModalAction: (evt) => {
934
+ if (evt.detail === ModalAction.CLOSE)
935
+ this.close();
936
+ }, modalTitle: this.getMessage("snkFilterParamConfig.modalTitle") }, this.getElementID("modalContainer")), h("div", { class: "ez-flex" }, h("div", { class: "ez-col ez-col--sd-6 ez-flex--column" }, h("ez-radio-button", Object.assign({ value: this._configType, onEzChange: (evt) => this.changeDefinitionUsed(evt.detail) }, this.getElementID("systemConfigOption")), h("ez-radio-button-option", { label: this.getMessage("snkFilterParamConfig.labelSystemConfig"), value: FilterConfigType.SYSTEM_CONFIG })), h("ez-search", Object.assign({ ref: (ref) => this._instanceElement = ref, label: this.getMessage("snkFilterParamConfig.labelInstance"), enabled: this.isEnabled(FilterConfigType.SYSTEM_CONFIG), suppressEmptyOption: true, showOptionValue: false, showSelectedValue: false, onEzChange: () => this.handleChangeInstance(), optionLoader: (searchArgument) => this.onSearch(searchArgument, FilterEntities.INSTANCE) }, this.getElementID("configFindEntity"))), h("ez-search", Object.assign({ ref: (ref) => this._fieldElement = ref, label: this.getMessage("snkFilterParamConfig.labelField"), enabled: this.isEnabled(FilterConfigType.SYSTEM_CONFIG) && this._informedInstance, suppressEmptyOption: true, showOptionValue: false, showSelectedValue: false, onEzChange: () => this.buildFilterExpression(), optionLoader: (searchArgument) => this.onSearch(searchArgument, FilterEntities.FIELD) }, this.getElementID("configFindField")))), h("div", { class: "ez-flex ez-padding--medium" }, h("hr", { class: "ez-divider-vertical" })), h("div", { class: "ez-col ez-col--sd-6 ez-flex--column" }, h("ez-radio-button", Object.assign({ value: this._configType, onEzChange: (evt) => this.changeDefinitionUsed(evt.detail) }, this.getElementID("userConfigOption")), h("ez-radio-button-option", { label: this.getMessage("snkFilterParamConfig.labelUserConfig"), value: FilterConfigType.USER_CONFIG })), h("ez-text-input", Object.assign({ ref: (ref) => this._descriptionElement = ref, label: this.getMessage("snkFilterParamConfig.labelDescription"), enabled: this.isEnabled(FilterConfigType.USER_CONFIG), onEzChange: () => this.buildFilterExpression() }, this.getElementID("configParamLabel"))), h("ez-combo-box", Object.assign({ ref: (ref) => this._typeElement = ref, label: this.getMessage("snkFilterParamConfig.labelType"), enabled: this.isEnabled(FilterConfigType.USER_CONFIG), suppressEmptyOption: true, onEzChange: () => this.buildFilterExpression() }, this.getElementID("configParamType")), Object.keys(FilterUserConfigTypes).map((configType) => {
937
+ return (h("option", { value: FilterUserConfigTypes[configType] }, this.getMessage(`snkFilterParamConfig.labelTypeValues.${configType.toLowerCase()}`)));
938
+ })))), h("ez-text-area", Object.assign({ ref: (ref) => this._expressionElement = ref, class: "snk-filter-param-config__expression", label: this.getMessage("snkFilterParamConfig.labelExpression"), enabled: false }, this.getElementID("presentationExpression"))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-padding-right--medium", label: this.getMessage("snkFilterParamConfig.labelCancel"), onClick: () => this.close() }, this.getElementID("cancelEditParam"))), h("ez-button", Object.assign({ class: "ez-button--primary", label: this.getMessage("snkFilterParamConfig.labelSave"), onClick: () => this.save(), enabled: this._canSave }, this.getElementID("saveEditParam")))))));
939
+ }
940
+ get _element() { return getElement(this); }
941
+ };
942
+ SnkFilterParamConfig.style = snkFilterParamConfigCss;
943
+
944
+ export { SnkExpressionGroup as snk_expression_group, SnkExpressionItem as snk_expression_item, SnkFilterFieldSearch as snk_filter_field_search, SnkFilterParamConfig as snk_filter_param_config };