@sankhyalabs/sankhyablocks 8.15.0-dev.3 → 8.15.0-dev.31

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 (301) hide show
  1. package/dist/cjs/{ConfigStorage-0d507a8f.js → ConfigStorage-d4c99a5e.js} +27 -17
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
  3. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  4. package/dist/cjs/{SnkFormConfigManager-467907f6.js → SnkFormConfigManager-0ffd098d.js} +2 -2
  5. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-e7dcf408.js} +13 -0
  6. package/dist/cjs/SnkMultiSelectionListDataSource-5213120b.js +140 -0
  7. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-5161d082.js} +1 -1
  8. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-9f1a13ca.js} +1 -1
  9. package/dist/cjs/{index-0e663819.js → index-0922807b.js} +1 -0
  10. package/dist/cjs/index-f9e81701.js +2 -10
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/{dataunit-fetcher-de65b9fc.js → pesquisa-fetcher-94f6b316.js} +472 -46
  13. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  14. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +539 -9
  15. package/dist/cjs/snk-application.cjs.entry.js +98 -10
  16. package/dist/cjs/snk-attach.cjs.entry.js +398 -61
  17. package/dist/cjs/snk-crud.cjs.entry.js +15 -13
  18. package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -5
  19. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-82c08a8c.js} +1 -1
  20. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-detail-view.cjs.entry.js +11 -13
  22. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  23. package/dist/cjs/snk-filter-bar.cjs.entry.js +68 -11
  24. package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
  25. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -4
  26. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -1
  27. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  28. package/dist/cjs/snk-form-config.cjs.entry.js +8 -2
  29. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  30. package/dist/cjs/snk-grid.cjs.entry.js +53 -37
  31. package/dist/cjs/{snk-guides-viewer-7e87ffce.js → snk-guides-viewer-c7293cfa.js} +11 -13
  32. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -11
  33. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  34. package/dist/cjs/snk-personalized-filter.cjs.entry.js +4 -4
  35. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  36. package/dist/cjs/snk-simple-crud.cjs.entry.js +166 -24
  37. package/dist/cjs/snk-taskbar.cjs.entry.js +91 -7
  38. package/dist/cjs/{taskbar-elements-b8c428a9.js → taskbar-elements-1e4fb2e0.js} +9 -9
  39. package/dist/collection/collection-manifest.json +7 -7
  40. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  41. package/dist/collection/components/snk-application/snk-application.js +111 -5
  42. package/dist/collection/components/snk-attach/snk-attach.js +194 -38
  43. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  44. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  45. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  46. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  47. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  48. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
  49. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  50. package/dist/collection/components/snk-crud/snk-crud.js +42 -4
  51. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  52. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  53. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +5 -5
  54. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +1 -1
  55. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  56. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  57. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  58. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
  59. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +84 -2
  60. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +0 -1
  61. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +23 -1
  62. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +175 -6
  63. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +5 -1
  64. package/dist/collection/components/snk-form/snk-form.js +1 -1
  65. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +11 -5
  66. package/dist/collection/components/snk-grid/snk-grid.js +79 -31
  67. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  68. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  69. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  70. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  71. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +5 -0
  72. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +279 -15
  73. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +18 -2
  74. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +8 -8
  75. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  76. package/dist/collection/components/snk-taskbar/snk-taskbar.js +129 -7
  77. package/dist/collection/lib/@types/index.js +1 -0
  78. package/dist/collection/lib/configs/ConfigStorage.js +24 -14
  79. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  80. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
  81. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  82. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  83. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  84. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  85. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  86. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  87. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  88. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +31 -3
  89. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +48 -29
  90. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +1 -1
  91. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  92. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +11 -12
  93. package/dist/collection/lib/index.js +1 -1
  94. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  95. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  96. package/dist/components/ConfigStorage.js +25 -15
  97. package/dist/components/DataFetcher.js +5 -3
  98. package/dist/components/SnkMessageBuilder.js +13 -0
  99. package/dist/components/dataunit-fetcher.js +91 -45
  100. package/dist/components/field-search.js +93 -3
  101. package/dist/components/index.d.ts +6 -6
  102. package/dist/components/index2.js +1 -0
  103. package/dist/components/snk-actions-button2.js +1 -0
  104. package/dist/components/snk-application2.js +94 -3
  105. package/dist/components/snk-attach2.js +454 -68
  106. package/dist/components/snk-crud.js +9 -3
  107. package/dist/components/snk-data-exporter2.js +1 -1
  108. package/dist/components/snk-detail-view2.js +33 -8
  109. package/dist/components/snk-entity-list.js +5 -3
  110. package/dist/components/snk-filter-bar2.js +71 -9
  111. package/dist/components/snk-filter-item2.js +3 -0
  112. package/dist/components/snk-filter-modal-item2.js +0 -1
  113. package/dist/components/snk-filter-modal.js +21 -3
  114. package/dist/components/snk-filter-multi-select.js +2 -1
  115. package/dist/components/snk-form-config2.js +7 -1
  116. package/dist/components/snk-grid-config2.js +128 -102
  117. package/dist/components/snk-grid2.js +51 -31
  118. package/dist/components/snk-personalized-filter-editor.js +3 -1
  119. package/dist/components/snk-personalized-filter2.js +1 -1
  120. package/dist/components/snk-pesquisa2.js +1 -1
  121. package/dist/components/snk-simple-crud2.js +219 -25
  122. package/dist/components/snk-taskbar2.js +103 -15
  123. package/dist/components/taskbar-actions-button2.js +18 -2
  124. package/dist/esm/{ConfigStorage-379a9cba.js → ConfigStorage-39ed8aeb.js} +27 -17
  125. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
  126. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  127. package/dist/esm/{SnkFormConfigManager-587e9030.js → SnkFormConfigManager-dd450734.js} +2 -2
  128. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0fb796b9.js} +13 -0
  129. package/dist/esm/SnkMultiSelectionListDataSource-7e7eada5.js +133 -0
  130. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-17dc5b5e.js} +1 -1
  131. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-f121f880.js} +1 -1
  132. package/dist/esm/{index-1564817d.js → index-0ece87a6.js} +1 -0
  133. package/dist/esm/index-a7d3d3f1.js +2 -10
  134. package/dist/esm/loader.js +1 -1
  135. package/dist/esm/{dataunit-fetcher-e218c6d2.js → pesquisa-fetcher-f05a12ca.js} +462 -38
  136. package/dist/esm/sankhyablocks.js +1 -1
  137. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +538 -10
  138. package/dist/esm/snk-application.entry.js +98 -10
  139. package/dist/esm/snk-attach.entry.js +398 -61
  140. package/dist/esm/snk-crud.entry.js +15 -13
  141. package/dist/esm/snk-data-exporter.entry.js +5 -5
  142. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-5d201fb3.js} +1 -1
  143. package/dist/esm/snk-data-unit.entry.js +2 -2
  144. package/dist/esm/snk-detail-view.entry.js +11 -13
  145. package/dist/esm/snk-entity-list.entry.js +5 -3
  146. package/dist/esm/snk-filter-bar.entry.js +68 -11
  147. package/dist/esm/snk-filter-item.entry.js +3 -0
  148. package/dist/esm/snk-filter-modal-item.entry.js +3 -4
  149. package/dist/esm/snk-filter-modal.entry.js +16 -1
  150. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  151. package/dist/esm/snk-form-config.entry.js +9 -3
  152. package/dist/esm/snk-form.entry.js +4 -4
  153. package/dist/esm/snk-grid.entry.js +54 -38
  154. package/dist/esm/{snk-guides-viewer-2134aba2.js → snk-guides-viewer-47443f7c.js} +11 -13
  155. package/dist/esm/snk-guides-viewer.entry.js +9 -11
  156. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  157. package/dist/esm/snk-personalized-filter.entry.js +4 -4
  158. package/dist/esm/snk-pesquisa.entry.js +1 -1
  159. package/dist/esm/snk-simple-crud.entry.js +166 -24
  160. package/dist/esm/snk-taskbar.entry.js +92 -8
  161. package/dist/esm/{taskbar-elements-26c981af.js → taskbar-elements-846c027c.js} +9 -9
  162. package/dist/sankhyablocks/{p-ff6064e7.js → p-05243555.js} +1 -1
  163. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  164. package/dist/sankhyablocks/p-2897fb8c.js +1 -0
  165. package/dist/sankhyablocks/p-30735d1e.entry.js +1 -0
  166. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  167. package/dist/sankhyablocks/p-38289a55.js +1 -0
  168. package/dist/sankhyablocks/p-3c5b7cfc.entry.js +1 -0
  169. package/dist/sankhyablocks/p-3e2e2424.entry.js +1 -0
  170. package/dist/sankhyablocks/p-50783a8b.js +1 -0
  171. package/dist/sankhyablocks/p-67aedbe0.js +56 -0
  172. package/dist/sankhyablocks/p-6ae58da0.js +1 -0
  173. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  174. package/dist/sankhyablocks/{p-729f5f5b.entry.js → p-746fc99e.entry.js} +1 -1
  175. package/dist/sankhyablocks/p-827e4b01.entry.js +1 -0
  176. package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
  177. package/dist/sankhyablocks/p-8c13d8d6.entry.js +1 -0
  178. package/dist/sankhyablocks/p-8c49760e.js +1 -0
  179. package/dist/sankhyablocks/p-99b1926b.entry.js +1 -0
  180. package/dist/sankhyablocks/p-9d608b62.entry.js +1 -0
  181. package/dist/sankhyablocks/{p-2028633c.js → p-9ea14b61.js} +1 -1
  182. package/dist/sankhyablocks/p-9fb97691.entry.js +1 -0
  183. package/dist/sankhyablocks/{p-0d7863ed.js → p-a13ccb86.js} +1 -1
  184. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  185. package/dist/sankhyablocks/p-b281e9e9.entry.js +1 -0
  186. package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
  187. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  188. package/dist/sankhyablocks/p-c4874327.entry.js +1 -0
  189. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  190. package/dist/sankhyablocks/p-d78d4062.js +65 -0
  191. package/dist/sankhyablocks/p-ec18c04e.entry.js +11 -0
  192. package/dist/sankhyablocks/p-eefe9954.entry.js +1 -0
  193. package/dist/sankhyablocks/{p-32f0935f.js → p-f3d1c48e.js} +1 -1
  194. package/dist/sankhyablocks/p-fca66dda.entry.js +1 -0
  195. package/dist/sankhyablocks/{p-35fe6e61.entry.js → p-fdc4cb9b.entry.js} +1 -1
  196. package/dist/sankhyablocks/p-fe741404.entry.js +1 -0
  197. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  198. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  199. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  200. package/dist/types/components/snk-application/snk-application.d.ts +12 -2
  201. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  202. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  203. package/dist/types/components/snk-attach/snk-attach.d.ts +28 -6
  204. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  205. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
  206. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  207. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  208. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  209. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
  210. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  211. package/dist/types/components/snk-crud/snk-crud.d.ts +9 -0
  212. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  213. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +1 -1
  214. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  215. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +19 -1
  216. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +30 -1
  217. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +7 -1
  218. package/dist/types/components/snk-form/snk-form.d.ts +1 -1
  219. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +4 -3
  220. package/dist/types/components/snk-grid/snk-grid.d.ts +10 -1
  221. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  222. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  223. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +56 -2
  224. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +1 -0
  225. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +27 -1
  226. package/dist/types/components/snk-taskbar/subcomponents/field-search.d.ts +1 -0
  227. package/dist/types/components.d.ts +203 -23
  228. package/dist/types/lib/@types/index.d.ts +2 -1
  229. package/dist/types/lib/configs/ConfigStorage.d.ts +4 -0
  230. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  231. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  232. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  233. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  234. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  235. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  236. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  237. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +2 -0
  238. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  239. package/dist/types/lib/index.d.ts +1 -1
  240. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  241. package/package.json +15 -6
  242. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  243. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  244. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  245. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  246. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  247. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  248. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  249. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  250. package/dist/esm/snk-grid-config.entry.js +0 -479
  251. package/dist/esm/snk-select-box.entry.js +0 -21
  252. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  253. package/dist/sankhyablocks/p-0cd2e986.entry.js +0 -1
  254. package/dist/sankhyablocks/p-145c4434.js +0 -1
  255. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  256. package/dist/sankhyablocks/p-4396d1a6.js +0 -56
  257. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  258. package/dist/sankhyablocks/p-4b0ea83f.entry.js +0 -1
  259. package/dist/sankhyablocks/p-5534e08c.js +0 -1
  260. package/dist/sankhyablocks/p-58218eb7.entry.js +0 -1
  261. package/dist/sankhyablocks/p-78777ae0.entry.js +0 -1
  262. package/dist/sankhyablocks/p-7915c452.entry.js +0 -1
  263. package/dist/sankhyablocks/p-953346b9.entry.js +0 -1
  264. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  265. package/dist/sankhyablocks/p-a037f5b4.entry.js +0 -1
  266. package/dist/sankhyablocks/p-a49b1019.entry.js +0 -1
  267. package/dist/sankhyablocks/p-a7923832.entry.js +0 -1
  268. package/dist/sankhyablocks/p-aaa1438e.entry.js +0 -1
  269. package/dist/sankhyablocks/p-b52c2175.js +0 -1
  270. package/dist/sankhyablocks/p-ba627e85.js +0 -60
  271. package/dist/sankhyablocks/p-bf9b7149.entry.js +0 -11
  272. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  273. package/dist/sankhyablocks/p-c259545b.entry.js +0 -1
  274. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  275. package/dist/sankhyablocks/p-ca8e7da0.entry.js +0 -1
  276. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  277. package/dist/sankhyablocks/p-d1677df0.entry.js +0 -1
  278. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  279. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  280. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  281. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  282. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  283. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  284. /package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +0 -0
  285. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  286. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  287. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  288. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  289. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  290. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  291. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  292. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  293. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  294. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  295. /package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +0 -0
  296. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  297. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  298. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
  299. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  300. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  301. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -1,26 +1,26 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
- import { ObjectUtils, ApplicationContext, DataType, UserInterface, StringUtils, JSUtils, FloatingManager } from '@sankhyalabs/core';
2
+ import { StringUtils, ApplicationContext, ObjectUtils, DataType, UserInterface, JSUtils, FloatingManager, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { d as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-8457af36.js';
4
- import { T as TaskbarElement } from './taskbar-elements-26c981af.js';
5
- import './DataFetcher-aa159c5a.js';
6
- import './pesquisa-fetcher-dd3ca0a5.js';
7
- import { P as PresentationMode } from './index-1564817d.js';
8
- import './ISave-4412b20c.js';
4
+ import { T as TaskbarElement } from './taskbar-elements-846c027c.js';
5
+ import './DataFetcher-a650ae58.js';
6
+ import { I as InMemoryLoader } from './pesquisa-fetcher-f05a12ca.js';
7
+ import { S as SnkMultiSelectionListDataSource, C as CrudUtils } from './SnkMultiSelectionListDataSource-7e7eada5.js';
8
+ import { P as PresentationMode } from './index-0ece87a6.js';
9
+ import './ISave-d8c8bc59.js';
9
10
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
10
11
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
- import { I as InMemoryLoader } from './dataunit-fetcher-e218c6d2.js';
12
- import './PreloadManager-c1c2f2b4.js';
13
12
  import './filter-item-type.enum-d45e026f.js';
14
- import './form-config-fetcher-36219cd3.js';
13
+ import './form-config-fetcher-f121f880.js';
15
14
  import { T as TaskbarProcessor, b as buildFieldSearch, o as openFieldSearch } from './field-search-efbe307f.js';
16
- import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-44494b0e.js';
15
+ import { C as ConfigStorage } from './ConfigStorage-39ed8aeb.js';
16
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-dd450734.js';
17
17
  import './index-bdf75557.js';
18
18
  import './PrintUtils-3e4ff0f5.js';
19
- import './ResourceIDUtils-a114189a.js';
20
19
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
20
+ import './ResourceIDUtils-a114189a.js';
21
21
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
22
22
 
23
- const snkSimpleCrudCss = ".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:max-content;row-gap:12px;height:100%;width:100%}.simple-crud__container-section.sc-snk-simple-crud{flex-wrap:unset;flex-direction:column}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";
23
+ const snkSimpleCrudCss = ".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:max-content;row-gap:12px;height:100%;width:100%}.simple-crud__container-section.sc-snk-simple-crud{flex-wrap:unset;flex-direction:column}.simple-crud__form--hidden.sc-snk-simple-crud{display:none}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";
24
24
 
25
25
  const SnkSimpleCrud = class {
26
26
  constructor(hostRef) {
@@ -29,20 +29,25 @@ const SnkSimpleCrud = class {
29
29
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
30
30
  this.actionClick = createEvent(this, "actionClick", 7);
31
31
  this.formItemsReady = createEvent(this, "formItemsReady", 7);
32
+ this.configuratorSave = createEvent(this, "configuratorSave", 7);
33
+ this.configuratorCancel = createEvent(this, "configuratorCancel", 7);
32
34
  this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "MORE_OPTIONS"];
33
35
  this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER", "MORE_OPTIONS"];
34
36
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
35
37
  this._keyDownHandler = (event) => this.keyDownListener(event);
36
38
  this._taskbarProcessor = new TaskbarProcessor({
37
- "snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
38
- "snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
39
- "snkSimpleCrudTaskbar.form_selected": this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(TaskbarElement.GRID_MODE),
40
- "snkSimpleCrudTaskbar.grid_selected": this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(TaskbarElement.FORM_MODE),
39
+ "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, TaskbarElement.GRID_MODE),
40
+ "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, TaskbarElement.FORM_MODE),
41
+ "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, TaskbarElement.GRID_MODE),
42
+ "snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, TaskbarElement.FORM_MODE),
41
43
  "snkSimpleCrudTaskbar.finish_edition": ["CANCEL", "SAVE"]
42
44
  });
45
+ this._showPopUpGridConfig = false;
46
+ this._showFormConfig = false;
43
47
  this._currentViewMode = VIEW_MODE.GRID;
44
48
  this._config = undefined;
45
49
  this._fieldToGetFocus = undefined;
50
+ this._customContainerId = `SNK-SIMPLE-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
46
51
  this.dataState = undefined;
47
52
  this.dataUnit = undefined;
48
53
  this.mode = SIMPLE_CRUD_MODE.SERVER;
@@ -54,6 +59,22 @@ const SnkSimpleCrud = class {
54
59
  this.taskbarManager = undefined;
55
60
  this.messagesBuilder = undefined;
56
61
  this.useEnterLikeTab = false;
62
+ this.actionsList = undefined;
63
+ this.configName = undefined;
64
+ this.showConfiguratorButtons = undefined;
65
+ }
66
+ getButtons(selected, changeModeBtn) {
67
+ return this.addConfigButton(this.resolveInMemoryBtns(selected ? this.REGULAR_DEFAULT_BTNS : this.REGULAR_SELECTED_BTNS)
68
+ .concat(changeModeBtn));
69
+ }
70
+ addConfigButton(buttons) {
71
+ if (this.configName === undefined) {
72
+ return buttons;
73
+ }
74
+ return buttons.concat(TaskbarElement.CONFIGURATOR);
75
+ }
76
+ get application() {
77
+ return ApplicationContext.getContextValue("__SNK__APPLICATION__");
57
78
  }
58
79
  resolveInMemoryBtns(taskbarButtons) {
59
80
  const newTaskBarConfig = [...taskbarButtons];
@@ -73,7 +94,10 @@ const SnkSimpleCrud = class {
73
94
  }
74
95
  actionClickListener(evt) {
75
96
  const act = evt.detail;
76
- if (act === TaskbarElement.GRID_MODE) {
97
+ if (act === TaskbarElement.CONFIGURATOR) {
98
+ this._snkConfigurator.open();
99
+ }
100
+ else if (act === TaskbarElement.GRID_MODE) {
77
101
  this.goToView(VIEW_MODE.GRID);
78
102
  }
79
103
  else if (act === TaskbarElement.FORM_MODE) {
@@ -91,8 +115,64 @@ const SnkSimpleCrud = class {
91
115
  this.dataStateChange.emit(newValue);
92
116
  }
93
117
  }
94
- componentWillRender() {
118
+ openConfig(viewMode) {
119
+ this._snkConfigurator.close();
120
+ if (viewMode === VIEW_MODE.GRID) {
121
+ this.openGridConfig();
122
+ }
123
+ else if (viewMode === VIEW_MODE.FORM) {
124
+ this.openFormConfig();
125
+ }
126
+ }
127
+ openGridConfig() {
128
+ this._grid.getColumnsState()
129
+ .then((gridColumns) => {
130
+ this._snkGridConfig.columns = gridColumns.filter(c => c.name);
131
+ this._snkGridConfig.selectedIndex = 0;
132
+ this._showPopUpGridConfig = true;
133
+ });
134
+ }
135
+ openFormConfig() {
136
+ this._showFormConfig = true;
137
+ }
138
+ loadGridConfig() {
139
+ if (this.gridConfig != undefined || this._gridConfigAlreadyLoaded) {
140
+ return;
141
+ }
142
+ this._gridConfigAlreadyLoaded = true;
143
+ return new Promise((accept, reject) => {
144
+ ConfigStorage.loadGridConfig(this.configName, this._resourceID)
145
+ .then(config => {
146
+ this.setGridConfig(config);
147
+ accept();
148
+ })
149
+ .catch(reason => {
150
+ reject(reason);
151
+ });
152
+ });
153
+ }
154
+ async loadFormConfig() {
155
+ if (this._formConfigManager == undefined) {
156
+ this._formConfigManager = new SnkFormConfigManager(this.configName, this._resourceID);
157
+ this._formConfigManager.setConfig(this.formConfig);
158
+ }
159
+ if (this.formConfig != undefined || this._formConfigAlreadyLoaded) {
160
+ return;
161
+ }
162
+ this._formConfigAlreadyLoaded = true;
163
+ this.setFormConfig(await this._formConfigManager.loadConfig());
164
+ }
165
+ async componentWillRender() {
166
+ this._resourceID = await this.application.getResourceID();
95
167
  this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
168
+ if (this.configName === undefined) {
169
+ return;
170
+ }
171
+ if (this.gridConfig != undefined || this._gridConfigAlreadyLoaded) {
172
+ return;
173
+ }
174
+ this.loadGridConfig();
175
+ this.loadFormConfig();
96
176
  }
97
177
  componentWillLoad() {
98
178
  this.processMetadata();
@@ -100,8 +180,7 @@ const SnkSimpleCrud = class {
100
180
  this.configDatasource();
101
181
  }
102
182
  configDatasource() {
103
- const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
104
- this._multiSelectionListDataSource.setApplication(application);
183
+ this._multiSelectionListDataSource.setApplication(this.application);
105
184
  this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
106
185
  }
107
186
  getTaskBarId() {
@@ -142,6 +221,20 @@ const SnkSimpleCrud = class {
142
221
  getRecords() {
143
222
  return Promise.resolve(this.dataUnit.records);
144
223
  }
224
+ /**
225
+ * Usado para abrir o configurator do CRUD
226
+ */
227
+ async openConfigurator() {
228
+ var _a;
229
+ (_a = this._snkConfigurator) === null || _a === void 0 ? void 0 : _a.open();
230
+ }
231
+ /**
232
+ * Usado para fechar o configurator do CRUD
233
+ */
234
+ async closeConfigurator() {
235
+ var _a;
236
+ (_a = this._snkConfigurator) === null || _a === void 0 ? void 0 : _a.close();
237
+ }
145
238
  processMetadata() {
146
239
  const fieldsMetadataElem = this._element.querySelectorAll("snk-field-metadata");
147
240
  const fieldMetadata = [];
@@ -196,6 +289,14 @@ const SnkSimpleCrud = class {
196
289
  this.dataUnit.clearSelection();
197
290
  }
198
291
  }
292
+ handleConfiguratorEvent(evt, type) {
293
+ evt.stopImmediatePropagation();
294
+ if (type === 'SAVE') {
295
+ this.configuratorSave.emit();
296
+ return;
297
+ }
298
+ this.configuratorCancel.emit();
299
+ }
199
300
  getColumnSearch(actionButton, item) {
200
301
  if (this._columnSearch != undefined) {
201
302
  return this._columnSearch;
@@ -252,7 +353,7 @@ const SnkSimpleCrud = class {
252
353
  }
253
354
  getActionsList() {
254
355
  var _a, _b;
255
- return [{
356
+ const hardList = [{
256
357
  value: StringUtils.generateUUID(),
257
358
  label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
258
359
  disableCloseOnSelect: true,
@@ -261,6 +362,16 @@ const SnkSimpleCrud = class {
261
362
  ? this.getColumnSearch(actionButton, item)
262
363
  : this.getFieldSearch(actionButton, item)
263
364
  }];
365
+ if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
366
+ const taskbarID = this.getTopTaskBarId();
367
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
368
+ }
369
+ return hardList.concat(this.actionsList);
370
+ }
371
+ getTopTaskBarId() {
372
+ var _a;
373
+ return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${PresentationMode.PRIMARY}` :
374
+ `snkGridTopTaskbar.regular${PresentationMode.PRIMARY}`;
264
375
  }
265
376
  async keyDownListener(event) {
266
377
  if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
@@ -299,11 +410,42 @@ const SnkSimpleCrud = class {
299
410
  disconnectedCallback() {
300
411
  window.removeEventListener("keydown", this._keyDownHandler);
301
412
  }
413
+ gridConfigChangeHandler(evt) {
414
+ const config = evt.detail;
415
+ ConfigStorage.saveGridConfig(config, this.configName, this._resourceID);
416
+ evt.stopPropagation();
417
+ }
418
+ modalConfigChangeHandler(evt) {
419
+ const config = evt.detail;
420
+ this._grid.setColumnsState(config.columns)
421
+ .then(() => {
422
+ this.setGridConfig(config);
423
+ this.closeGridConfig();
424
+ });
425
+ evt.stopPropagation();
426
+ }
427
+ setGridConfig(config) {
428
+ this.gridConfig = config;
429
+ CrudUtils.assertDefaultSorting(this.gridConfig, this.dataUnit);
430
+ }
431
+ setFormConfig(config) {
432
+ this.formConfig = config;
433
+ }
434
+ closeGridConfig() {
435
+ this._showPopUpGridConfig = false;
436
+ }
437
+ closeFormConfig() {
438
+ this._showFormConfig = false;
439
+ }
440
+ /* istanbul ignore next */
302
441
  render() {
303
- var _a;
304
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
442
+ var _a, _b, _c;
443
+ if (this.dataUnit == undefined) {
444
+ return;
445
+ }
446
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
305
447
  ? undefined
306
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig, fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }))))));
448
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this._showFormConfig ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this._showFormConfig && h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this._customContainerId })), h("div", { id: `${this._customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }))), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this._resourceID }))));
307
449
  }
308
450
  get _element() { return getElement(this); }
309
451
  static get watchers() { return {
@@ -1,17 +1,20 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
- import { StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
2
+ import { StringUtils, ApplicationContext, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
4
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-26c981af.js';
5
- import { P as PresentationMode } from './index-1564817d.js';
4
+ import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-846c027c.js';
5
+ import { P as PresentationMode } from './index-0ece87a6.js';
6
6
  import './index-bdf75557.js';
7
7
 
8
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
8
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex;flex-wrap:wrap}.no-wrap.sc-snk-taskbar-h{flex-wrap:nowrap}.full-width.sc-snk-taskbar-h{width:100%}.align-right.sc-snk-taskbar-h{justify-content:flex-end}.overflowed.sc-snk-taskbar{display:none}";
9
9
 
10
10
  const SnkTaskbar = class {
11
11
  constructor(hostRef) {
12
12
  registerInstance(this, hostRef);
13
13
  this.actionClick = createEvent(this, "actionClick", 7);
14
14
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
15
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
16
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
17
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
15
18
  this._titleKeyByElement = {
16
19
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
17
20
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -29,11 +32,15 @@ const SnkTaskbar = class {
29
32
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
30
33
  };
31
34
  this._permissions = undefined;
35
+ this._overFlowedElements = [];
32
36
  this._customElements = undefined;
33
37
  this._customElementsId = undefined;
34
38
  this._slotContainer = undefined;
39
+ this._hiddenActionsList = [];
40
+ this.alignRigth = false;
35
41
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
36
42
  this.customContainerId = undefined;
43
+ this.overflowStrategy = 'hiddenItems';
37
44
  this.configName = undefined;
38
45
  this.resourceID = undefined;
39
46
  this.buttons = undefined;
@@ -47,6 +54,7 @@ const SnkTaskbar = class {
47
54
  }
48
55
  observeButtons() {
49
56
  this._definitions = undefined;
57
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
50
58
  }
51
59
  // Internal methods
52
60
  elementsFromString(strButtons) {
@@ -142,12 +150,19 @@ const SnkTaskbar = class {
142
150
  }
143
151
  const taskbarElement = TaskbarElement[def.toString()];
144
152
  if (taskbarElement) {
145
- return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList, this.configName, this.presentationMode);
153
+ return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), this.configName, this.presentationMode);
146
154
  }
147
155
  else {
148
156
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
149
157
  }
150
158
  }
159
+ buildDynamicActionsList() {
160
+ var _a;
161
+ if (this._hiddenActionsList.length) {
162
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
163
+ }
164
+ return this.actionsList;
165
+ }
151
166
  getIdElemBtnNative(taskbarElem) {
152
167
  return StringUtils.toCamelCase(taskbarElem);
153
168
  }
@@ -188,9 +203,11 @@ const SnkTaskbar = class {
188
203
  });
189
204
  }
190
205
  addCustomElementContainer(elem) {
206
+ var _a;
191
207
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
192
208
  if (!this._customElementsId.includes(elementId)) {
193
209
  this._customElementsId.push(elementId);
210
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
194
211
  }
195
212
  return h("span", { key: elementId, id: elementId });
196
213
  }
@@ -227,15 +244,76 @@ const SnkTaskbar = class {
227
244
  }
228
245
  this.validatePresentationMode();
229
246
  }
247
+ handleOverFlow(overFlowingElements) {
248
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
249
+ this.resetOverFlowedElements();
250
+ this.doOverFlowElements(elementsToHandle);
251
+ }
252
+ resetOverFlowedElements() {
253
+ this._overFlowedElements.forEach(element => {
254
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
255
+ });
256
+ this._hiddenActionsList = [];
257
+ this._overFlowedElements = [];
258
+ }
259
+ doOverFlowElements(overFlowedElements) {
260
+ overFlowedElements.forEach(element => {
261
+ element.classList.add(OVERFLOWED_CLASS_NAME);
262
+ this._overFlowedElements.push(element);
263
+ this.addItemToActionList(element);
264
+ });
265
+ }
266
+ addItemToActionList(element) {
267
+ const taskbarElement = this.getTaskbarElementName(element);
268
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
269
+ const optionItem = {
270
+ value: taskbarElement,
271
+ label: this.getTaskbarElementLabel(element),
272
+ iconName: this.getTaskbarElementIcon(element)
273
+ };
274
+ this._hiddenActionsList.push(optionItem);
275
+ }
276
+ }
277
+ getTaskbarElementName(element) {
278
+ var _a;
279
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
280
+ }
281
+ getTaskbarElementIcon(element) {
282
+ var _a;
283
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
284
+ }
285
+ getTaskbarElementLabel(element) {
286
+ var _a;
287
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
288
+ }
289
+ hasToIgnoreOverFlow(element) {
290
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
291
+ }
292
+ handleOverFlowStrategy() {
293
+ if (this.overflowStrategy === 'hiddenItems') {
294
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
295
+ }
296
+ }
297
+ buildOverFlowWatcherParams() {
298
+ return {
299
+ element: this._element,
300
+ callback: this.handleOverFlow.bind(this),
301
+ overFlowDirection: OverflowDirection.HORIZONTAL,
302
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
303
+ };
304
+ }
230
305
  componentDidLoad() {
231
306
  const dataInfo = { dataUnit: this.dataUnit };
232
307
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
308
+ this.handleOverFlowStrategy();
233
309
  }
234
310
  componentDidRender() {
235
311
  this.appendCustomElementsInTaskbar();
236
312
  }
237
313
  disconnectedCallback() {
314
+ var _a;
238
315
  this.unlinkAllCustomElements();
316
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
239
317
  }
240
318
  unlinkAllCustomElements() {
241
319
  var _a;
@@ -253,8 +331,8 @@ const SnkTaskbar = class {
253
331
  return undefined;
254
332
  }
255
333
  let index = 0;
256
- return (h(Host, null, this.removeEmpty(this._definitions.map((elem) => {
257
- var _a;
334
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
335
+ var _a, _b;
258
336
  if (elem === TaskbarElement.DIVIDER) {
259
337
  index = 0;
260
338
  }
@@ -270,8 +348,14 @@ const SnkTaskbar = class {
270
348
  if (this._customElements.has(elem)) {
271
349
  return this.addCustomElementContainer(elem);
272
350
  }
351
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
273
352
  return h("slot", { name: elem });
274
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
353
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
354
+ }
355
+ getHostClasses() {
356
+ if (this.overflowStrategy !== 'hiddenItems')
357
+ return 'no-wrap';
358
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
275
359
  }
276
360
  get _element() { return getElement(this); }
277
361
  static get watchers() { return {
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-a7d3d3f1.js';
2
- import { P as PresentationMode } from './index-1564817d.js';
2
+ import { P as PresentationMode } from './index-0ece87a6.js';
3
3
  import { s as store } from './index-bdf75557.js';
4
4
 
5
5
  var TaskbarElement;
@@ -87,31 +87,31 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
87
87
  case TaskbarElement.CONFIGURATOR:
88
88
  return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
89
89
  case TaskbarElement.MORE_OPTIONS:
90
- return actionButton(element, dataElementId, title, isEnabled, actions, action);
90
+ return actionButton(element, className, dataElementId, title, isEnabled, actions, action);
91
91
  case TaskbarElement.DIVIDER:
92
92
  return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium", "data-taskbar-divider": true });
93
93
  case TaskbarElement.DATA_EXPORTER:
94
94
  const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
95
- return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
95
+ return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element });
96
96
  case TaskbarElement.ATTACH:
97
97
  return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
98
98
  case TaskbarElement.ACTIONS_BUTTON:
99
- return h("snk-actions-button", { "data-element-id": dataElementId });
99
+ return h("snk-actions-button", { "data-element-id": dataElementId, "data-taskbar-element": element });
100
100
  }
101
101
  };
102
102
  function textButton(name, className, dataElementId, text, title, action, isEnabled) {
103
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
103
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
104
104
  }
105
105
  function iconButton(iconName, name, className, dataElementId, title, action, isEnabled) {
106
- return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
106
+ return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-taskbar-label": title, "data-taskbar-element": name, "data-taskbar-icon": iconName, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
107
107
  }
108
108
  function iconTextButton(iconName, name, className, dataElementId, text, title, action, isEnabled) {
109
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
109
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-icon": iconName, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
110
110
  h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
111
111
  }
112
- function actionButton(element, dataElementId, title, isEnabled, actions, action) {
112
+ function actionButton(element, className, dataElementId, title, isEnabled, actions, action) {
113
113
  return actions && actions.length > 0
114
- ? h("taskbar-actions-button", { key: dataElementId, title: title, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
114
+ ? h("taskbar-actions-button", { class: className, key: dataElementId, title: title, "data-taskbar-element": element, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
115
115
  : undefined;
116
116
  }
117
117
 
@@ -1 +1 @@
1
- import{ApplicationContext as e}from"@sankhyalabs/core";const a={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Alteração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},confirm:{cancel:"Cancelar",delete:"Excluir",yes:"Sim",no:"Não"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Aviso",removeConfirmation:"Deseja realmente excluir o registro atual?",forbidden:"Sem permissão",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso.",removeAllConfirmation:"Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>",removeAllInfo:"Os {{size}} registros foram removidos com sucesso!"},o={addFilter:"Adicionar filtro",pinFilter:"Fixar filtro",unpinFilter:"Desfixar filtro",removeFilter:"Remover filtro",cleanFilter:"Limpar",applyFilter:"Aplicar",findFilter:"Buscar filtros...",findField:"Buscar filtros...",modalFindFilter:"Buscar filtro",emptyFiltersList:"Não há filtros disponíveis",emptyAppliedFiltersList:"Não há filtros aplicados",customFilter:"Filtro personalizado",defaultFilter:"Filtro padrão",failToLoadConfig:"Falha ao buscar configuração de filtros",clearAllFilters:"Limpar todos os filtros",successfullyCleaned:"Filtro limpo com sucesso!",activeFilter:"{{ACTIVE_FILTERS}} filtro aplicado",activeFilters:"{{ACTIVE_FILTERS}} filtros aplicados",noActiveFilters:"Nenhum filtro aplicado",modalDefaultFilterTitle:"Filtro padrão",modalInfoTextEditDefault:"Use o layout antigo para editar o seu filtro padrão, em breve traremos uma nova experiência.",modalInfoTextCreateDefault:"Use o layout antigo para criar o seu filtro padrão, em breve traremos uma nova experiência.",modalPersonalizedFilterTitle:"Filtro personalizado",modalPersonalizedFilterSubTitle:"Gerencie seus filtros",modalInfoTextCreateEditPersonalized:"Use o layout antigo para criar ou editar filtros, em breve traremos uma nova experiência",modalInfoTextCreateFilter:"Criar filtro personalizado",modalInfoTextNoFilterRegister:"Você não possui filtros cadastrados.",modalOkButtonLabel:"Aplicar",modalCancelButtonLabel:"Limpar",binarySelectTooltip:"Exibindo registros",multiListToltip:"selecionado(a)s",onlyStartToltip:"A partir de",onlyEndToltip:"Até",fullPeriodTooltip:"Data de {{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",labelStart:"Inicial",labelEnd:"Final",fullIntervalTooltip:"{{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",filters:"Filtros",personalizedCount:"{{activeCount}} selecionado(s)",filterModal:{title:"Filtros",okButtonLabel:"Aplicar",cancelButtonLabel:"Limpar tudo",customFilters:"Filtros personalizados",quickFilters:"Filtros rápidos",validations:{notFullFilled:{title:"Filtro parcialmente preenchido",message:"Favor completar todas as informações do filtro."},notSaved:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"}}}},r={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigurator:"Configurações",titleAttach:"Anexar",forbidden:"Permissão não liberada"},i={errorArray:"CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula."},s={emailSenderTitle:"Enviar por email",emailSenderBackButton:"Voltar",emailSenderNextButton:"Avançar",emailSenderCancelButton:"Cancelar",emailSenderSendButton:"Enviar",emailSenderOptStep_subtitle:"Primeiro, escolha o formato do arquivo",emailSenderOptStep_lblFormat:"Formato:",emailSenderOptStep_formatPDF:"PDF (.pdf)",emailSenderOptStep_formatXLSX:"Planilha (.xlsx)",emailSenderOptStep_export:"Exportar:",emailSenderOptStep_allData:"Toda a grade",emailSenderOptStep_currentPage:"Somente a página atual",emailSenderOptStep_someRecords:"{{SELECTION_COUNT}} linhas selecionadas",emailSenderOptStep_oneRecord:"Somente a linha selecionada",emailSenderInfoStep_subtitle:"Informações de email",emailSenderInfoStep_sendTo:"Enviar para",emailSenderInfoStep_subject:"Assunto",emailSenderInfoStep_message:"Mensagem"},t={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},findColumn:"Buscar campos",goBackTitle:"Voltar"},l={findColumn:"Busca de colunas"},n={error:{title:"Erro na Exportação",message:"O usuário não possui permissão para exportar o arquivo."},message:{exportSuccess:"Exportado com sucesso!"}},d={newVersionPopup:{title:"Boas vindas à nova interface da tela {{screenName}}",info:"Com uma jornada mais moderna, simples e intuitiva, a performance aprimorada da nova interface impulsionará a sua produtividade.",okButton:"Quero experimentar!",cancelButton:"Voltar à interface anterior"}},c={label:{nameField:"Nome do Campo *",typeValueDefault:"Tipo de valor padrão *",valueDefault:"Valor Padrão",clearDuplicate:"Limpar ao Duplicar",requiredField:"Campo Obrigatório",protectedField:"Campo Protegido"},options:{valueFixed:"Valor Fixo",variable:"Variável"}},m={title:"Configuração do formulário",goBackTitle:"Voltar",applyConfig:"Aplicar configuração",availableFields:{title:"Campos disponíveis",labelNoFields:"Nenhum campo disponível",labelOneField:"1 campo disponível",labelAvailableFields:"Campos disponíveis",labelSearchField:"Procurar campo"},form:{subTitleInfo:"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário!",labelDropField:"Arraste e solte um campo aqui",labelNewGroup:"Adicionar novo grupo",mainArea:"Área principal",tabGeneral:"Geral"},confirm:{title:"Aviso",deleteTab:"Você realmente deseja excluir a aba",cancel:"As alterações realizadas serão descartadas.<br/><br/><b>Gostaria de continuar?</b>",exit:"Ao sair as alterações serão descartadas.<br/><br/><b>Você realmente gostaria de sair?</b>",apply:"A <b>{0}</b> irá substituir a sua configuração {1}!<br/><br/><b>Deseja continuar?</b>",group:"Não é possível salvar as configurações com um grupo vazio!",labelCancel:"Cancelar",labelDelete:"Excluir"},alert:{titleGroupExists:"Já existe um grupo com título",infoValidTitle:"Por favor, digite um título válido.",inTab:"na aba"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"}},p={titleRemove:"Remover",titleConfigurations:"Configurações",titleAdd:"Adicionar"},u={labelRename:"Renomear",labelHide:"Ocultar",labelShow:"Exibir",labelDelete:"Excluir"},f={titleConfigurations:"Configurações",subTitleModeConfig:"Modo de visualização",labelConfigGrid:"Configurar grade",labelConfigForm:"Configurar formulário",labelGrid:"Grade",labelForm:"Formulário"},b={findColumn:"Busca de colunas"},v={gridConfiguration:"Configuração da Grade",columnVisibilityOrder:"Defina visibilidade e ordem das colunas.",sortingSequence:"Sequência da ordenação",findColumn:"Localizar coluna",cancel:"Cancelar",complete:"Concluir",tab:{columns:"Colunas",lineOrdering:"Ordenação das linhas"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"},confirm:{cancel:"Descartar",save:"Salvar",alert:"Aviso",msgCancel:"As alterações realizadas serão descartadas. Gostaria de salvar antes de sair?"},group:{visible:"Visíveis",hidden:"Ocultas"}},g={group:{export:{default:"Exportar para",multiSelected:"Exportar {0} linhas selecionadas",selectedLine:"Exportar somente 1 linha selecionada",title:"Exportar"},custom:"Personalizado"},label:{currentPage:"Somente a página atual",spreadsheet:"Planilha",cube:"Cubo",sendByEmail:"Enviar por email"},message:{emailSuccess:"E-mail enviado com sucesso",exportError:"Usuário sem permissão",exportPermission:"O usuário não possui permissão para exportar o arquivo."},title:{error:"Erro"},limitExceeded:{title:"Atenção",description:"Apenas os {{limit}} primeiros registros serão exportados. Deseja continuar?",subdescription:"Caso seja necessária uma quantidade maior de registros exportados, utilize o Extrator de Dados através de um Relatório Personalizado.",cancel:"Cancelar",continue:"Continuar"}},A={modalTitle:"Configuração de valor variável",labelSystemConfig:"Usar definições do sistema",labelUserConfig:"Usar definições personalizadas",labelInstance:"Categoria",labelField:"Campo",labelDescription:"Descrição (obrigatório) *",labelType:"Tipo (obrigatório) *",labelTypeValues:{date:"Data",text:"Texto",integer:"Número Inteiro",decimal:"Número com Decimal"},labelExpression:"Expressão",labelCancel:"Cancelar",labelSave:"Salvar"},C={searchLabel:"Buscar campo",fieldLabel:"Campos de {{link}}",linkLabel:"Categorias de {{link}}",groupEmpty:"Não há categorias para seleção",searchEmpty:"Nenhum resultado encontrado"},F={backTitle:"Voltar"},S={title:"Anexar arquivos",description:"Faça o upload dos arquivos ou informe links que deseja anexar ao título",attachHint:"Fazer download do arquivo",breadcrumbTitle:"Anexar",finishedMessage:"O anexo foi finalizado com sucesso",finish:"Finalizar",cancelConfirmation:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"},alertValidation:{fileAndLinkAtTheSameTime:{title:"Atenção",message:"Não é permitido inserir o arquivo e o link ao mesmo tempo."},anyLinkOrFileFilled:{title:"Atenção",message:'É necessário preencher o campo "Link" ou anexar um arquivo.'}},taskbar:{titleDownload:"Fazer download",titleLink:"Abrir link"}},x={info:{titleEdit:"Editar filtro personalizado",titleAdd:"Criar filtro personalizado",titleCollapsible:"Expressão a ser aplicada (gerada pelo assistente)",labelSearchField:"Buscar campo",labelOperator:"Operador",labelValueVarible:"Valor variável",titleTooltip:"Ao ativar um valor variável, é possível inserir um valor diferente sempre que o filtro for aplicado",labelAddNewExpression:"Adicionar nova linha de expressão",labelDeleteExpression:"Remover expressão",labelDeleteItem:"Remover item",labelDisabledAddGroupButton:"Filtros Personalizados possuem um limite de {{LIMIT_GROUP_LEVEL}} Grupos de Condições e Valores",labelDisabledAddExpressionButton:"Preencha campos obrigatórios ou indique valores variáveis nas expressões do grupo antes de adicionar mais itens",labelCancel:"Cancelar",labelSave:"Salvar",labelNameFilter:"Nome do filtro",labelExpression:"Expressão",badgeVariable:"variável",noDataFound:"Nenhum filtro encontrado",condition:"Condição",addGroup:"Adicionar grupo",addField:"Adicionar campo",applyExpression:"Expressão a ser aplicada:",tooltipDisabledAssistentMode:"Expressão não suportada pelo assistente.",activeModeAdvanced:"Ativar modo avançado",activeModeAssistent:"Ativar modo assistente"},confirmExpression:{title:"Aviso",description:"As informações da condição serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmGroup:{title:"Aviso",description:"As informações do Grupo e suas Condições serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmCancel:{title:"Aviso",description:"As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmChangeModeAssistent:{title:"Aviso",description:"Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>"},confirmChangeModeAdvanced:{title:"Aviso",description:"Ao retornar ao modo assistente suas alterações serão perdidas.</br></br><b>Gostaria de continuar?</b>"},confirmSaveModeAdvanced:{title:"Aviso",description:"Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>"},operador:{firstLevel:"A seleção será habilitada a partir da adição da segunda linha de regras.",and:"Será verdadeiro se todas as condições forem obedecidas.",or:"Será verdadeiro se qualquer uma das condições for obedecida."},error:{title:"Atenção",description:"Há pelo menos um campo obrigatório não preenchido."},errorValidation:{title:"Erro na expressão"},confirmSave:{title:"Filtro criado com sucesso!"},confirmEdit:{title:"Filtro atualizado com sucesso!"},deleteConfirm:{title:"Aviso",message:"Deseja realmente excluir o filtro '{{filterName}}'?"},listActions:{edit:"Editar",delete:"Excluir"},footerActions:{clear:"Limpar",create:"Criar filtro"}},E={selected:"Selecionados:"},h={title:{actions:"Ações",error:"Erro",warning:"Aviso"},action:{incorrectAction:'A ação "{{description}}" não pode ser executada porque ela não foi salva corretamente.',emptyParamName:"<b>Regra Personalizada:</b><br/><br/>É necessário informar o atributo 'paramName'",nonExistentType:"Tipo de ação não implementada: {{this.actionType}}"},launchScreen:{emptyField:'A ação "{{description}}" não pôde ser executada porque o campo "{{localFieldLabel}}" está vazio.'},form:{fillParams:"Informe os parâmetros"},clientEvent:{cancelMessage:"Caso queira cancelar, feche esta mensagem."},buttons:{apply:"Aplicar",cancel:"Cancelar",yes:"Sim",no:"Não"}},T={title:{warning:"Aviso",printerSelection:"Seleção de impressora",remotePrintersTab:"Impressoras remotas",localPrintersTab:"Impressoras locais"},subtitle:{document:"Documento:",jobs:"Trabalhos:"},message:{canceledPrint:"A impressão será cancelada. Deseja mesmo continuar?",noPrinters:"Não há impressoras para seleção",savePrinter:"Usar sempre esta seleção"},button:{print:"Imprimir",cancel:"Cancelar",yes:"Sim",no:"Não"}};class D{constructor(D){this._defaults={snkApplication:d,snkDataUnit:a,snkFormConfig:m,snkConfigOptions:c,snkTaskbar:r,snkFieldConfig:p,snkFilterBar:o,snkConfigurator:f,snkTabConfig:u,crudUtils:i,snkGrid:b,snkGridConfig:v,snkExporter:s,snkDataExporter:g,snkCrud:t,snkSimpleCrud:l,fileViewer:n,snkFilterParamConfig:A,snkFilterFieldSearch:C,snkSimpleBar:F,snkAttach:S,snkPersonalizedFilter:x,snkEntityList:E,snkActionsButton:h,snkPrintSelector:T},this._currentOperation=L.CLEAN,this._domainName=D,this._application=e.getContextValue("__SNK__APPLICATION__"),this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,a){if(null==e)return;var o=e.split(".");let r=this.resolveMessage(o,this.getDomainMessages());if(null==r&&(r=this.resolveMessage(o,this._defaults)),this.customMessageBuilder){const o=this.customMessageBuilder(e,r,a);r=o.message,a=o.params}return this.postProcess(r,a)}getDomainMessages(){if(this._appMessages)return this._domainName?this._appMessages[this._domainName]:this._appMessages.Global||this._appMessages}resolveMessage(e,a){if(null==a)return;const o=a[e[0]];return o?this.isOperationSensitive(o)?o[this._currentOperation]:1===e.length||null==o||"string"==typeof o?o:this.resolveMessage(e.slice(1),o):void 0}isOperationSensitive(e){return null!=e[L.CLONE]||null!=e[L.INSERT]||null!=e[L.UPDATE]||null!=e[L.CLEAN]}postProcess(e,a){if(e){const o=/(.*?)\{\{(.+?)\}\}/g;let r,i="",s=e;for(;null!==(r=o.exec(e));){const[o,t,l]=r,n=r.index+o.length;s=n<e.length?e.substring(n):"";let d=a?a[l]:void 0;null==d&&(d=""),i+=t+d}return i+s}return e}loadAppMessages(){return new Promise((async(e,a)=>{const o=await this._application.getApplicationPath();import(`${o}/messages/appmessages.js`).then((a=>{e(a.default)})).catch((e=>{a(e)}))}))}}var L;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(L||(L={}));export{L as O,D as S}
1
+ import{ApplicationContext as e}from"@sankhyalabs/core";const a={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Alteração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},confirm:{cancel:"Cancelar",delete:"Excluir",yes:"Sim",no:"Não"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Aviso",removeConfirmation:"Deseja realmente excluir o registro atual?",forbidden:"Sem permissão",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso.",removeAllConfirmation:"Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>",removeAllInfo:"Os {{size}} registros foram removidos com sucesso!"},o={addFilter:"Adicionar filtro",pinFilter:"Fixar filtro",unpinFilter:"Desfixar filtro",removeFilter:"Remover filtro",cleanFilter:"Limpar",applyFilter:"Aplicar",findFilter:"Buscar filtros...",findField:"Buscar filtros...",modalFindFilter:"Buscar filtro",emptyFiltersList:"Não há filtros disponíveis",emptyAppliedFiltersList:"Não há filtros aplicados",customFilter:"Filtro personalizado",defaultFilter:"Filtro padrão",failToLoadConfig:"Falha ao buscar configuração de filtros",clearAllFilters:"Limpar todos os filtros",successfullyCleaned:"Filtro limpo com sucesso!",activeFilter:"{{ACTIVE_FILTERS}} filtro aplicado",activeFilters:"{{ACTIVE_FILTERS}} filtros aplicados",noActiveFilters:"Nenhum filtro aplicado",modalDefaultFilterTitle:"Filtro padrão",modalInfoTextEditDefault:"Use o layout antigo para editar o seu filtro padrão, em breve traremos uma nova experiência.",modalInfoTextCreateDefault:"Use o layout antigo para criar o seu filtro padrão, em breve traremos uma nova experiência.",modalPersonalizedFilterTitle:"Filtro personalizado",modalPersonalizedFilterSubTitle:"Gerencie seus filtros",modalInfoTextCreateEditPersonalized:"Use o layout antigo para criar ou editar filtros, em breve traremos uma nova experiência",modalInfoTextCreateFilter:"Criar filtro personalizado",modalInfoTextNoFilterRegister:"Você não possui filtros cadastrados.",modalOkButtonLabel:"Aplicar",modalCancelButtonLabel:"Limpar",binarySelectTooltip:"Exibindo registros",multiListToltip:"selecionado(a)s",onlyStartToltip:"A partir de",onlyEndToltip:"Até",fullPeriodTooltip:"Data de {{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",labelStart:"Inicial",labelEnd:"Final",fullIntervalTooltip:"{{LABEL}}: {{START_LABEL}} até {{END_LABEL}}",filters:"Filtros",personalizedCount:"{{activeCount}} selecionado(s)",filterModal:{title:"Filtros",okButtonLabel:"Aplicar",cancelButtonLabel:"Limpar tudo",customFilters:"Filtros personalizados",quickFilters:"Filtros rápidos",validations:{notFullFilled:{title:"Filtro parcialmente preenchido",message:"Favor completar todas as informações do filtro."},notSaved:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"}}}},r={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigurator:"Configurações",titleAttach:"Anexar",forbidden:"Permissão não liberada"},i={errorArray:"CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula."},s={emailSenderTitle:"Enviar por email",emailSenderBackButton:"Voltar",emailSenderNextButton:"Avançar",emailSenderCancelButton:"Cancelar",emailSenderSendButton:"Enviar",emailSenderOptStep_subtitle:"Primeiro, escolha o formato do arquivo",emailSenderOptStep_lblFormat:"Formato:",emailSenderOptStep_formatPDF:"PDF (.pdf)",emailSenderOptStep_formatXLSX:"Planilha (.xlsx)",emailSenderOptStep_export:"Exportar:",emailSenderOptStep_allData:"Toda a grade",emailSenderOptStep_currentPage:"Somente a página atual",emailSenderOptStep_someRecords:"{{SELECTION_COUNT}} linhas selecionadas",emailSenderOptStep_oneRecord:"Somente a linha selecionada",emailSenderInfoStep_subtitle:"Informações de email",emailSenderInfoStep_sendTo:"Enviar para",emailSenderInfoStep_subject:"Assunto",emailSenderInfoStep_message:"Mensagem"},t={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},findColumn:"Buscar campos",goBackTitle:"Voltar"},l={findColumn:"Busca de colunas"},n={error:{title:"Erro na Exportação",message:"O usuário não possui permissão para exportar o arquivo."},message:{exportSuccess:"Exportado com sucesso!"}},d={newVersionPopup:{title:"Boas vindas à nova interface da tela {{screenName}}",info:"Com uma jornada mais moderna, simples e intuitiva, a performance aprimorada da nova interface impulsionará a sua produtividade.",okButton:"Quero experimentar!",cancelButton:"Voltar à interface anterior"}},c={label:{nameField:"Nome do Campo *",typeValueDefault:"Tipo de valor padrão *",valueDefault:"Valor Padrão",clearDuplicate:"Limpar ao Duplicar",requiredField:"Campo Obrigatório",protectedField:"Campo Protegido"},options:{valueFixed:"Valor Fixo",variable:"Variável"}},m={title:"Configuração do formulário",goBackTitle:"Voltar",applyConfig:"Aplicar configuração",availableFields:{title:"Campos disponíveis",labelNoFields:"Nenhum campo disponível",labelOneField:"1 campo disponível",labelAvailableFields:"Campos disponíveis",labelSearchField:"Procurar campo"},form:{subTitleInfo:"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário!",labelDropField:"Arraste e solte um campo aqui",labelNewGroup:"Adicionar novo grupo",mainArea:"Área principal",tabGeneral:"Geral"},confirm:{title:"Aviso",deleteTab:"Você realmente deseja excluir a aba",cancel:"As alterações realizadas serão descartadas.<br/><br/><b>Gostaria de continuar?</b>",exit:"Ao sair as alterações serão descartadas.<br/><br/><b>Você realmente gostaria de sair?</b>",apply:"A <b>{0}</b> irá substituir a sua configuração {1}!<br/><br/><b>Deseja continuar?</b>",group:"Não é possível salvar as configurações com um grupo vazio!",labelCancel:"Cancelar",labelDelete:"Excluir"},alert:{titleGroupExists:"Já existe um grupo com título",infoValidTitle:"Por favor, digite um título válido.",inTab:"na aba"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"}},p={titleRemove:"Remover",titleConfigurations:"Configurações",titleAdd:"Adicionar"},u={labelRename:"Renomear",labelHide:"Ocultar",labelShow:"Exibir",labelDelete:"Excluir"},f={titleConfigurations:"Configurações",subTitleModeConfig:"Modo de visualização",labelConfigGrid:"Configurar grade",labelConfigForm:"Configurar formulário",labelGrid:"Grade",labelForm:"Formulário"},b={findColumn:"Busca de colunas"},v={gridConfiguration:"Configuração da Grade",columnVisibilityOrder:"Defina visibilidade e ordem das colunas.",sortingSequence:"Sequência da ordenação",findColumn:"Localizar coluna",cancel:"Cancelar",complete:"Concluir",tab:{columns:"Colunas",lineOrdering:"Ordenação das linhas"},info:{successfullyConfigSaved:"As configurações foram salvas com sucesso!"},confirm:{cancel:"Descartar",save:"Salvar",alert:"Aviso",msgCancel:"As alterações realizadas serão descartadas. Gostaria de salvar antes de sair?"},group:{visible:"Visíveis",hidden:"Ocultas"}},g={group:{export:{default:"Exportar para",multiSelected:"Exportar {0} linhas selecionadas",selectedLine:"Exportar somente 1 linha selecionada",title:"Exportar"},custom:"Personalizado"},label:{currentPage:"Somente a página atual",spreadsheet:"Planilha",cube:"Cubo",sendByEmail:"Enviar por email"},message:{emailSuccess:"E-mail enviado com sucesso",exportError:"Usuário sem permissão",exportPermission:"O usuário não possui permissão para exportar o arquivo."},title:{error:"Erro"},limitExceeded:{title:"Atenção",description:"Apenas os {{limit}} primeiros registros serão exportados. Deseja continuar?",subdescription:"Caso seja necessária uma quantidade maior de registros exportados, utilize o Extrator de Dados através de um Relatório Personalizado.",cancel:"Cancelar",continue:"Continuar"}},A={modalTitle:"Configuração de valor variável",labelSystemConfig:"Usar definições do sistema",labelUserConfig:"Usar definições personalizadas",labelInstance:"Categoria",labelField:"Campo",labelDescription:"Descrição (obrigatório) *",labelType:"Tipo (obrigatório) *",labelTypeValues:{date:"Data",text:"Texto",integer:"Número Inteiro",decimal:"Número com Decimal"},labelExpression:"Expressão",labelCancel:"Cancelar",labelSave:"Salvar"},C={searchLabel:"Buscar campo",fieldLabel:"Campos de {{link}}",linkLabel:"Categorias de {{link}}",groupEmpty:"Não há categorias para seleção",searchEmpty:"Nenhum resultado encontrado"},F={backTitle:"Voltar"},S={title:"Anexar arquivos",description:"Faça o upload dos arquivos ou informe links que deseja anexar ao título",attachHint:"Fazer download do arquivo",breadcrumbTitle:"Anexar",finishedMessage:"O anexo foi finalizado com sucesso",finish:"Finalizar",cancelConfirmation:{title:"Atenção",message:"As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>"},alertValidation:{fileAndLinkAtTheSameTime:{title:"Atenção",message:"Não é permitido inserir o arquivo e o link ao mesmo tempo."},anyLinkOrFileFilled:{title:"Atenção",message:'É necessário preencher o campo "Link" ou anexar um arquivo.'},descriptionCannotBeChanged:{title:"Atenção",message:"O campo 'Descrição' não pode ser alterado."}},taskbar:{titleDownload:"Fazer download",titleLink:"Abrir link"},attachMetadata:{lblCode:"Código",lblDescription:"Descrição",lblFileOrLink:"Arquivo / Link",lblUser:"Usuário",lblDate:"Data de alteração",lblFile:"Arquivo",lblSubTitle:"Clique para selecionar um arquivo"}},x={info:{titleEdit:"Editar filtro personalizado",titleAdd:"Criar filtro personalizado",titleCollapsible:"Expressão a ser aplicada (gerada pelo assistente)",labelSearchField:"Buscar campo",labelOperator:"Operador",labelValueVarible:"Valor variável",titleTooltip:"Ao ativar um valor variável, é possível inserir um valor diferente sempre que o filtro for aplicado",labelAddNewExpression:"Adicionar nova linha de expressão",labelDeleteExpression:"Remover expressão",labelDeleteItem:"Remover item",labelDisabledAddGroupButton:"Filtros Personalizados possuem um limite de {{LIMIT_GROUP_LEVEL}} Grupos de Condições e Valores",labelDisabledAddExpressionButton:"Preencha campos obrigatórios ou indique valores variáveis nas expressões do grupo antes de adicionar mais itens",labelCancel:"Cancelar",labelSave:"Salvar",labelNameFilter:"Nome do filtro",labelExpression:"Expressão",badgeVariable:"variável",noDataFound:"Nenhum filtro encontrado",condition:"Condição",addGroup:"Adicionar grupo",addField:"Adicionar campo",applyExpression:"Expressão a ser aplicada:",tooltipDisabledAssistentMode:"Expressão não suportada pelo assistente.",activeModeAdvanced:"Ativar modo avançado",activeModeAssistent:"Ativar modo assistente"},confirmExpression:{title:"Aviso",description:"As informações da condição serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmGroup:{title:"Aviso",description:"As informações do Grupo e suas Condições serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmCancel:{title:"Aviso",description:"As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>"},confirmChangeModeAssistent:{title:"Aviso",description:"Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>"},confirmChangeModeAdvanced:{title:"Aviso",description:"Ao retornar ao modo assistente suas alterações serão perdidas.</br></br><b>Gostaria de continuar?</b>"},confirmSaveModeAdvanced:{title:"Aviso",description:"Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>"},operador:{firstLevel:"A seleção será habilitada a partir da adição da segunda linha de regras.",and:"Será verdadeiro se todas as condições forem obedecidas.",or:"Será verdadeiro se qualquer uma das condições for obedecida."},error:{title:"Atenção",description:"Há pelo menos um campo obrigatório não preenchido."},errorValidation:{title:"Erro na expressão"},confirmSave:{title:"Filtro criado com sucesso!"},confirmEdit:{title:"Filtro atualizado com sucesso!"},deleteConfirm:{title:"Aviso",message:"Deseja realmente excluir o filtro '{{filterName}}'?"},listActions:{edit:"Editar",delete:"Excluir"},footerActions:{clear:"Limpar",create:"Criar filtro"}},E={selected:"Selecionados:"},h={title:{actions:"Ações",error:"Erro",warning:"Aviso"},action:{incorrectAction:'A ação "{{description}}" não pode ser executada porque ela não foi salva corretamente.',emptyParamName:"<b>Regra Personalizada:</b><br/><br/>É necessário informar o atributo 'paramName'",nonExistentType:"Tipo de ação não implementada: {{this.actionType}}"},launchScreen:{emptyField:'A ação "{{description}}" não pôde ser executada porque o campo "{{localFieldLabel}}" está vazio.'},form:{fillParams:"Informe os parâmetros"},clientEvent:{cancelMessage:"Caso queira cancelar, feche esta mensagem."},buttons:{apply:"Aplicar",cancel:"Cancelar",yes:"Sim",no:"Não"}},T={title:{warning:"Aviso",printerSelection:"Seleção de impressora",remotePrintersTab:"Impressoras remotas",localPrintersTab:"Impressoras locais"},subtitle:{document:"Documento:",jobs:"Trabalhos:"},message:{canceledPrint:"A impressão será cancelada. Deseja mesmo continuar?",noPrinters:"Não há impressoras para seleção",savePrinter:"Usar sempre esta seleção"},button:{print:"Imprimir",cancel:"Cancelar",yes:"Sim",no:"Não"}};class D{constructor(D){this._defaults={snkApplication:d,snkDataUnit:a,snkFormConfig:m,snkConfigOptions:c,snkTaskbar:r,snkFieldConfig:p,snkFilterBar:o,snkConfigurator:f,snkTabConfig:u,crudUtils:i,snkGrid:b,snkGridConfig:v,snkExporter:s,snkDataExporter:g,snkCrud:t,snkSimpleCrud:l,fileViewer:n,snkFilterParamConfig:A,snkFilterFieldSearch:C,snkSimpleBar:F,snkAttach:S,snkPersonalizedFilter:x,snkEntityList:E,snkActionsButton:h,snkPrintSelector:T},this._currentOperation=L.CLEAN,this._domainName=D,this._application=e.getContextValue("__SNK__APPLICATION__"),this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,a){if(null==e)return;var o=e.split(".");let r=this.resolveMessage(o,this.getDomainMessages());if(null==r&&(r=this.resolveMessage(o,this._defaults)),this.customMessageBuilder){const o=this.customMessageBuilder(e,r,a);r=o.message,a=o.params}return this.postProcess(r,a)}getDomainMessages(){if(this._appMessages)return this._domainName?this._appMessages[this._domainName]:this._appMessages.Global||this._appMessages}resolveMessage(e,a){if(null==a)return;const o=a[e[0]];return o?this.isOperationSensitive(o)?o[this._currentOperation]:1===e.length||null==o||"string"==typeof o?o:this.resolveMessage(e.slice(1),o):void 0}isOperationSensitive(e){return null!=e[L.CLONE]||null!=e[L.INSERT]||null!=e[L.UPDATE]||null!=e[L.CLEAN]}postProcess(e,a){if(e){const o=/(.*?)\{\{(.+?)\}\}/g;let r,i="",s=e;for(;null!==(r=o.exec(e));){const[o,t,l]=r,n=r.index+o.length;s=n<e.length?e.substring(n):"";let d=a?a[l]:void 0;null==d&&(d=""),i+=t+d}return i+s}return e}loadAppMessages(){return new Promise((async(e,a)=>{const o=await this._application.getApplicationPath();import(`${o}/messages/appmessages.js`).then((a=>{e(a.default)})).catch((e=>{a(e)}))}))}}var L;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(L||(L={}));export{L as O,D as S}
@@ -1 +1 @@
1
- var _;!function(_){_.LINK_AND_FILE_AT_THE_SAME_TIME="LINK_AND_FILE_AT_THE_SAME_TIME",_.ANY_LINK_OR_FILE_FILLED="ANY_LINK_OR_FILE_FILLED",_.UNKNOWN="UNKNOWN"}(_||(_={}));export{_ as S}
1
+ var _;!function(_){_.LINK_AND_FILE_AT_THE_SAME_TIME="LINK_AND_FILE_AT_THE_SAME_TIME",_.ANY_LINK_OR_FILE_FILLED="ANY_LINK_OR_FILE_FILLED",_.UNKNOWN="UNKNOWN",_.DESCRIPTION_CANNOT_BE_CHANGED="DESCRIPTION_CANNOT_BE_CHANGED"}(_||(_={}));export{_ as S}
@@ -0,0 +1 @@
1
+ import{D as t}from"./p-be75153c.js";import{a as e}from"./p-d78d4062.js";import{SortMode as i,ApplicationContext as r,UserInterface as a,DateUtils as s}from"@sankhyalabs/core";import"./p-38289a55.js";import"./p-21749402.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-ff1990ad.js";import"./p-a13ccb86.js";import o from"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource";class n{static assertDefaultSorting(t,e){t&&e&&(e.defaultSorting=t.columns.filter((t=>null!=t.ascending)).sort(((t,e)=>t.orderIndex-e.orderIndex)).map((({name:t,ascending:r})=>{const{dataType:a}=e.getField(t);return{field:t,dataType:a,mode:r?i.ASC:i.DESC}})))}static find(e,i,a,s=!0,o,n){let l=[],c=[],m={},d=r.getContextValue("__SNK__APPLICATION__");if(i){if(!Array.isArray(i))throw new Error(d.messagesBuilder.getMessage("crudUtils.errorArray",null));i.forEach((t=>{l.push({name:t})}))}if(a)for(const t in a)a.hasOwnProperty(t)&&c.push({nome:t,valor:a[t]});o&&(m={expression:{$:o}});let p={requestBody:{entity:{name:e,criterio:c,fields:{field:l},literalCriteria:m,orderby:n}}};return new Promise((e=>{t.get().callServiceBroker("mge@crud.find",JSON.stringify(p)).then((t=>{var i;let r=null===(i=t.entidades)||void 0===i?void 0:i.entidade;if(null!=r){let t={fields:new Map};for(let e in r){let i=r[e];if(i.hasOwnProperty("$")&&t.fields.set(e,i.$),s)break}e(t)}else e(null)}))}))}}class l{setDataUnit(t){this._dataUnit=t}setApplication(t){this._application=t}formatLabel(t,e){const{userInterface:i}=this._dataUnit.getField(t);return i===a.DATETIME?s.formatDate(this._dataUnit.valueFromString(t,e)):String(this._dataUnit.getFormattedValue(t,e))}async getStaticOptions(t){return Promise.resolve(null==t?void 0:await e.getDistinct(this._dataUnit,t))}fetchData(t,e){return new Promise((i=>{this._application.executeSelectDistinct(this._dataUnit,e,t).then((t=>{i(t.map((t=>this._dataUnit.getField(e).userInterface===a.SEARCH?Object.assign(Object.assign({},JSON.parse(t)),{check:!0}):{value:t,label:this.formatLabel(e,t),check:!0})))}))}))}sortItems(t,e){return o.defaultSorterMultSelectionOption(this._dataUnit,t,e)}}export{n as C,l as S}