@sankhyalabs/sankhyablocks 10.1.0-dev.37 → 10.1.0-dev.39

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 (225) hide show
  1. package/dist/cjs/{ConfigStorage-e384fb7b.js → ConfigStorage-a1fab5ca.js} +2 -2
  2. package/dist/cjs/ContinuousInsertUtils-1ae0c6ac.js +41 -0
  3. package/dist/cjs/{DataFetcher-3a8ea521.js → DataFetcher-384d2ce8.js} +1 -1
  4. package/dist/cjs/{ISave-a66bb65e.js → ISave-ecbe9336.js} +1 -1
  5. package/dist/cjs/{ImageUtils-5e3f406b.js → ImageUtils-c46f2d11.js} +1 -1
  6. package/dist/cjs/{SnkFormConfigManager-73df0f8b.js → SnkFormConfigManager-44386305.js} +2 -2
  7. package/dist/cjs/{SnkMessageBuilder-d9558dba.js → SnkMessageBuilder-a9300ebe.js} +24 -0
  8. package/dist/cjs/{SnkMultiSelectionListDataSource-016393f3.js → SnkMultiSelectionListDataSource-b951ed91.js} +61 -47
  9. package/dist/cjs/{auth-fetcher-80e608b0.js → auth-fetcher-6b134ec4.js} +1 -1
  10. package/dist/cjs/{dataunit-fetcher-6febd6c4.js → dataunit-fetcher-93f53260.js} +2 -2
  11. package/dist/cjs/{form-config-fetcher-81cbd405.js → form-config-fetcher-45d1964c.js} +1 -1
  12. package/dist/cjs/index-1894343a.js +8 -8
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -5
  15. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  16. package/dist/cjs/{snk-actions-button_8.cjs.entry.js → snk-actions-button_9.cjs.entry.js} +52 -12
  17. package/dist/cjs/snk-application.cjs.entry.js +7 -7
  18. package/dist/cjs/snk-attach.cjs.entry.js +50 -24
  19. package/dist/cjs/snk-crud.cjs.entry.js +344 -109
  20. package/dist/cjs/snk-data-exporter.cjs.entry.js +8 -7
  21. package/dist/cjs/{snk-data-unit-94757628.js → snk-data-unit-6abc5efc.js} +2 -2
  22. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
  23. package/dist/cjs/snk-detail-view.cjs.entry.js +11 -16
  24. package/dist/cjs/snk-entity-search.cjs.entry.js +211 -0
  25. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  26. package/dist/cjs/{snk-filter-advanced-mode_2.cjs.entry.js → snk-filter-advanced-mode_3.cjs.entry.js} +39 -1
  27. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +106 -95
  28. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
  29. package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-form_2.cjs.entry.js +5 -5
  31. package/dist/cjs/snk-grid.cjs.entry.js +40 -17
  32. package/dist/cjs/{snk-guides-viewer-688c4398.js → snk-guides-viewer-b4ca3437.js} +37 -153
  33. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -17
  34. package/dist/cjs/snk-image-input.cjs.entry.js +2 -2
  35. package/dist/cjs/snk-layout-form-config.cjs.entry.js +5 -5
  36. package/dist/cjs/snk-personalized-filter.cjs.entry.js +5 -5
  37. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  38. package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -12
  39. package/dist/cjs/snk-taskbar.cjs.entry.js +181 -124
  40. package/dist/cjs/taskbar-elements-80eddec8.js +152 -0
  41. package/dist/collection/collection-manifest.json +2 -0
  42. package/dist/collection/components/snk-actions-button/snk-actions-button.js +27 -3
  43. package/dist/collection/components/snk-attach/snk-attach.css +29 -7
  44. package/dist/collection/components/snk-attach/snk-attach.js +81 -18
  45. package/dist/collection/components/snk-crud/snk-crud.css +46 -0
  46. package/dist/collection/components/snk-crud/snk-crud.js +143 -94
  47. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -5
  48. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.css +17 -0
  49. package/dist/collection/components/snk-crud/subcomponents/snk-entity-search.js +330 -0
  50. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +22 -8
  51. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +35 -144
  52. package/dist/collection/components/snk-crud/utils/taskbarUtils.js +144 -0
  53. package/dist/collection/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.js +1 -1
  54. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +20 -1
  55. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +2 -2
  56. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +23 -1
  57. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +6 -1
  58. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +8 -5
  59. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -6
  60. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +139 -84
  61. package/dist/collection/components/snk-grid/snk-grid.css +12 -3
  62. package/dist/collection/components/snk-grid/snk-grid.js +148 -4
  63. package/dist/collection/components/snk-image-input/utils/ImageUtils.js +1 -1
  64. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  65. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.css +8 -0
  66. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +38 -2
  67. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +51 -35
  68. package/dist/collection/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.js +27 -1
  69. package/dist/collection/components/snk-taskbar/processor/simple-taskbar-processor.js +55 -0
  70. package/dist/collection/components/snk-taskbar/snk-taskbar.css +44 -1
  71. package/dist/collection/components/snk-taskbar/snk-taskbar.js +248 -132
  72. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.css +12 -0
  73. package/dist/collection/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.js +19 -0
  74. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +8 -0
  75. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +8 -0
  76. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +8 -0
  77. package/dist/components/ContinuousInsertUtils.js +1 -1
  78. package/dist/components/SnkMessageBuilder.js +24 -0
  79. package/dist/components/index.d.ts +2 -0
  80. package/dist/components/index.js +2 -0
  81. package/dist/components/snk-actions-button2.js +6 -3
  82. package/dist/components/snk-attach2.js +56 -27
  83. package/dist/components/snk-crud.js +422 -175
  84. package/dist/components/snk-data-exporter2.js +3 -1
  85. package/dist/components/snk-detail-view2.js +158 -258
  86. package/dist/components/snk-entity-search.d.ts +11 -0
  87. package/dist/components/snk-entity-search.js +6 -0
  88. package/dist/components/snk-entity-search2.js +231 -0
  89. package/dist/components/snk-exporter-email-sender2.js +1 -1
  90. package/dist/components/snk-filter-bar2.js +94 -85
  91. package/dist/components/snk-filter-item2.js +4 -2
  92. package/dist/components/snk-filter-modal2.js +8 -5
  93. package/dist/components/snk-grid2.js +82 -47
  94. package/dist/components/snk-image-input2.js +1 -1
  95. package/dist/components/snk-personalized-filter2.js +1 -1
  96. package/dist/components/snk-simple-crud2.js +29 -23
  97. package/dist/components/snk-taskbar-skeleton.d.ts +11 -0
  98. package/dist/components/snk-taskbar-skeleton.js +6 -0
  99. package/dist/components/snk-taskbar-skeleton2.js +29 -0
  100. package/dist/components/snk-taskbar2.js +253 -174
  101. package/dist/components/taskbar-actions-button2.js +21 -2
  102. package/dist/components/taskbar-split-button2.js +10 -1
  103. package/dist/esm/{ConfigStorage-82ff76fb.js → ConfigStorage-76872695.js} +2 -2
  104. package/dist/esm/ContinuousInsertUtils-bce77dc1.js +39 -0
  105. package/dist/esm/{DataFetcher-1dd7e8c0.js → DataFetcher-e60f8d53.js} +1 -1
  106. package/dist/esm/{ISave-498c4831.js → ISave-4929c071.js} +1 -1
  107. package/dist/esm/{ImageUtils-8fc8d905.js → ImageUtils-7f3a4149.js} +1 -1
  108. package/dist/esm/{SnkFormConfigManager-e8ae1561.js → SnkFormConfigManager-83f6b22f.js} +2 -2
  109. package/dist/esm/{SnkMessageBuilder-c0bc4424.js → SnkMessageBuilder-1eb7a1af.js} +24 -0
  110. package/dist/esm/{SnkMultiSelectionListDataSource-ec783ded.js → SnkMultiSelectionListDataSource-7fe25a58.js} +55 -41
  111. package/dist/esm/{auth-fetcher-38a83f5e.js → auth-fetcher-1a31c1e4.js} +1 -1
  112. package/dist/esm/{dataunit-fetcher-21c43ec7.js → dataunit-fetcher-050b6d31.js} +2 -2
  113. package/dist/esm/{form-config-fetcher-24eb587c.js → form-config-fetcher-b44b2727.js} +1 -1
  114. package/dist/esm/index-04f73a26.js +8 -8
  115. package/dist/esm/loader.js +1 -1
  116. package/dist/esm/pesquisa-grid_2.entry.js +5 -5
  117. package/dist/esm/sankhyablocks.js +1 -1
  118. package/dist/esm/{snk-actions-button_8.entry.js → snk-actions-button_9.entry.js} +52 -13
  119. package/dist/esm/snk-application.entry.js +7 -7
  120. package/dist/esm/snk-attach.entry.js +50 -24
  121. package/dist/esm/snk-crud.entry.js +333 -98
  122. package/dist/esm/snk-data-exporter.entry.js +8 -7
  123. package/dist/esm/{snk-data-unit-3b06a0f3.js → snk-data-unit-ca2c9858.js} +2 -2
  124. package/dist/esm/snk-data-unit.entry.js +4 -4
  125. package/dist/esm/snk-detail-view.entry.js +11 -16
  126. package/dist/esm/snk-entity-search.entry.js +207 -0
  127. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  128. package/dist/esm/{snk-filter-advanced-mode_2.entry.js → snk-filter-advanced-mode_3.entry.js} +40 -3
  129. package/dist/esm/snk-filter-bar_4.entry.js +107 -96
  130. package/dist/esm/snk-filter-modal-item.entry.js +4 -4
  131. package/dist/esm/snk-form-view.entry.js +1 -1
  132. package/dist/esm/snk-form_2.entry.js +5 -5
  133. package/dist/esm/snk-grid.entry.js +37 -14
  134. package/dist/esm/{snk-guides-viewer-6ddc7e6a.js → snk-guides-viewer-cc37535b.js} +38 -154
  135. package/dist/esm/snk-guides-viewer.entry.js +9 -17
  136. package/dist/esm/snk-image-input.entry.js +2 -2
  137. package/dist/esm/snk-layout-form-config.entry.js +5 -5
  138. package/dist/esm/snk-personalized-filter.entry.js +5 -5
  139. package/dist/esm/snk-pesquisa.entry.js +5 -5
  140. package/dist/esm/snk-simple-crud.entry.js +10 -10
  141. package/dist/esm/snk-taskbar.entry.js +182 -125
  142. package/dist/esm/taskbar-elements-63651ca7.js +149 -0
  143. package/dist/sankhyablocks/p-09ba6bd4.js +1 -0
  144. package/dist/sankhyablocks/p-10f27dc6.entry.js +1 -0
  145. package/dist/sankhyablocks/{p-54f5c36d.entry.js → p-20af4b6a.entry.js} +1 -1
  146. package/dist/sankhyablocks/p-225f92cf.entry.js +1 -0
  147. package/dist/sankhyablocks/{p-605a2a99.entry.js → p-251aee41.entry.js} +1 -1
  148. package/dist/sankhyablocks/p-2af815bb.entry.js +1 -0
  149. package/dist/sankhyablocks/{p-bdf0077f.js → p-2af8aca3.js} +1 -1
  150. package/dist/sankhyablocks/p-3072136e.js +1 -0
  151. package/dist/sankhyablocks/p-33492640.entry.js +1 -0
  152. package/dist/sankhyablocks/{p-f208ec52.entry.js → p-35317d9a.entry.js} +1 -1
  153. package/dist/sankhyablocks/{p-6753f16e.js → p-3704bf1b.js} +1 -1
  154. package/dist/sankhyablocks/{p-2d606189.js → p-3870748a.js} +1 -1
  155. package/dist/sankhyablocks/{p-e057ecb6.js → p-3c990841.js} +1 -1
  156. package/dist/sankhyablocks/{p-4ff3b494.js → p-420b39b5.js} +1 -1
  157. package/dist/sankhyablocks/{p-8bb4e86b.entry.js → p-46f75667.entry.js} +1 -1
  158. package/dist/sankhyablocks/{p-32ad76cc.js → p-4f7adf97.js} +2 -2
  159. package/dist/sankhyablocks/p-554c0e54.js +1 -0
  160. package/dist/sankhyablocks/p-6ae7543b.entry.js +1 -0
  161. package/dist/sankhyablocks/p-771b137e.js +1 -0
  162. package/dist/sankhyablocks/p-77f608bc.entry.js +1 -0
  163. package/dist/sankhyablocks/p-7c8bf699.entry.js +1 -0
  164. package/dist/sankhyablocks/{p-d34a41ec.entry.js → p-8a8900a9.entry.js} +1 -1
  165. package/dist/sankhyablocks/{p-e484913b.entry.js → p-95af0bb1.entry.js} +1 -1
  166. package/dist/sankhyablocks/{p-10cad767.entry.js → p-98241c21.entry.js} +1 -1
  167. package/dist/sankhyablocks/{p-f5b929c2.entry.js → p-ab12f544.entry.js} +1 -1
  168. package/dist/sankhyablocks/{p-ef8cf0e2.js → p-ab5e12fa.js} +1 -1
  169. package/dist/sankhyablocks/p-ac384a1e.entry.js +1 -0
  170. package/dist/sankhyablocks/{p-3a98c337.entry.js → p-aff2d081.entry.js} +1 -1
  171. package/dist/sankhyablocks/p-b3b51693.entry.js +1 -0
  172. package/dist/sankhyablocks/{p-08415ef7.entry.js → p-bab4cde4.entry.js} +1 -1
  173. package/dist/sankhyablocks/p-ce3b284c.entry.js +1 -0
  174. package/dist/sankhyablocks/p-ce8ccd72.entry.js +1 -0
  175. package/dist/sankhyablocks/{p-b9970342.js → p-d972a9c1.js} +1 -1
  176. package/dist/sankhyablocks/p-e5a3711f.js +1 -0
  177. package/dist/sankhyablocks/{p-2b882835.entry.js → p-e737fd5a.entry.js} +1 -1
  178. package/dist/sankhyablocks/p-efd18bc2.entry.js +1 -0
  179. package/dist/sankhyablocks/{p-362e6e8c.js → p-f185d5ad.js} +1 -1
  180. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  181. package/dist/types/components/snk-actions-button/snk-actions-button.d.ts +4 -0
  182. package/dist/types/components/snk-attach/snk-attach.d.ts +20 -4
  183. package/dist/types/components/snk-crud/snk-crud.d.ts +28 -10
  184. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  185. package/dist/types/components/snk-crud/subcomponents/snk-entity-search.d.ts +62 -0
  186. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -18
  187. package/dist/types/components/snk-crud/utils/taskbarUtils.d.ts +13 -0
  188. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -0
  189. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +4 -0
  190. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +32 -20
  191. package/dist/types/components/snk-grid/snk-grid.d.ts +28 -1
  192. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +6 -0
  193. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -2
  194. package/dist/types/components/snk-taskbar/elements/taskbar-split-button/taskbar-split-button.d.ts +5 -0
  195. package/dist/types/components/snk-taskbar/processor/simple-taskbar-processor.d.ts +31 -0
  196. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +32 -21
  197. package/dist/types/components/snk-taskbar/subcomponents/snk-taskbar-skeleton.d.ts +3 -0
  198. package/dist/types/components.d.ts +197 -4
  199. package/package.json +2 -2
  200. package/react/components.d.ts +2 -0
  201. package/react/components.js +2 -0
  202. package/react/components.js.map +1 -1
  203. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -45
  204. package/dist/cjs/taskbar-elements-a94d4318.js +0 -133
  205. package/dist/cjs/taskbar-processor-2fba34a8.js +0 -53
  206. package/dist/esm/snk-simple-bar.entry.js +0 -41
  207. package/dist/esm/taskbar-elements-97541bdd.js +0 -130
  208. package/dist/esm/taskbar-processor-3436124c.js +0 -51
  209. package/dist/sankhyablocks/p-07aa8192.entry.js +0 -1
  210. package/dist/sankhyablocks/p-1a0caadb.js +0 -1
  211. package/dist/sankhyablocks/p-27aea149.entry.js +0 -1
  212. package/dist/sankhyablocks/p-27d6590e.js +0 -1
  213. package/dist/sankhyablocks/p-449e36d2.entry.js +0 -1
  214. package/dist/sankhyablocks/p-615655bd.entry.js +0 -1
  215. package/dist/sankhyablocks/p-62e17eea.entry.js +0 -1
  216. package/dist/sankhyablocks/p-6e1a7929.entry.js +0 -1
  217. package/dist/sankhyablocks/p-72d62f22.js +0 -1
  218. package/dist/sankhyablocks/p-9c1ff75e.entry.js +0 -1
  219. package/dist/sankhyablocks/p-a8c5ebf1.entry.js +0 -1
  220. package/dist/sankhyablocks/p-b25777fa.entry.js +0 -1
  221. package/dist/sankhyablocks/p-b6d47f08.entry.js +0 -1
  222. package/dist/sankhyablocks/p-b8453e18.js +0 -1
  223. package/dist/sankhyablocks/p-c8043a53.entry.js +0 -1
  224. package/dist/sankhyablocks/p-f0c9969e.entry.js +0 -1
  225. package/dist/sankhyablocks/p-fc5938fb.js +0 -1
@@ -1,11 +1,11 @@
1
1
  import { r as registerInstance, e as createEvent, h, f as Host, g as getElement } from './index-04f73a26.js';
2
- import { Action, ElementIDUtils, LockManager, LockManagerOperation, SilentException, StringUtils, ApplicationContext, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection } from '@sankhyalabs/core';
2
+ import { Action, ElementIDUtils, LockManager, LockManagerOperation, SilentException, StringUtils, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { P as PresentationMode } from './index-b40568ff.js';
4
4
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
5
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-97541bdd.js';
5
+ import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-63651ca7.js';
6
6
  import './index-ea250be6.js';
7
7
 
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}";
8
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex;flex-wrap:nowrap}.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}.taskbar-element.sc-snk-taskbar{width:auto}.space-between-item.sc-snk-taskbar{margin-left:var(--space--8, 8px)}.icon-button--small.sc-snk-taskbar{width:32px;height:32px}.icon-button--medium.sc-snk-taskbar{width:42px;height:42px}.icon-button--large.sc-snk-taskbar{width:46px;height:46px}.taskbar-spacer.sc-snk-taskbar{flex:1}.taskbar-group.sc-snk-taskbar{display:flex;flex-wrap:wrap;min-width:0}.taskbar-group--start.sc-snk-taskbar{flex:1 1 auto;justify-content:flex-start}.taskbar-group--end.sc-snk-taskbar{flex:0 0 auto;justify-content:flex-end}";
9
9
 
10
10
  const SnkTaskbar = class {
11
11
  constructor(hostRef) {
@@ -20,6 +20,10 @@ const SnkTaskbar = class {
20
20
  this.TASKBAR_ADDITIONAL_SLOT_CONTAINER_CLASS_NAME = 'taskbar-additional-slot-container';
21
21
  this.TASKBAR_ADDITIONAL_SLOT = 'taskbar-additional-slot-container';
22
22
  this._dataUnitInitialized = false;
23
+ this._permissions = {};
24
+ this._customElements = new Map();
25
+ this._customElementsId = [];
26
+ this._overFlowedElements = [];
23
27
  this._titleKeyByElement = {
24
28
  [TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
25
29
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
@@ -51,15 +55,9 @@ const SnkTaskbar = class {
51
55
  break;
52
56
  }
53
57
  };
54
- this._permissions = undefined;
55
- this._overFlowedElements = [];
56
- this._customElements = undefined;
57
- this._customElementsId = undefined;
58
- this._slotContainer = undefined;
59
58
  this._hiddenActionsList = [];
60
- this._lastWidth = undefined;
61
- this._hasToUpdateOverFlow = false;
62
59
  this._isWaitingForSave = false;
60
+ this._isLoading = true;
63
61
  this.alignRigth = false;
64
62
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
65
63
  this.additionalSlotId = "TASKBAR_ADDITIONAL_SLOT";
@@ -71,11 +69,14 @@ const SnkTaskbar = class {
71
69
  this.customButtons = undefined;
72
70
  this.actionsList = undefined;
73
71
  this.actionsSettingsList = undefined;
72
+ this.customActionsList = undefined;
74
73
  this.primaryButton = undefined;
75
74
  this.disabledButtons = undefined;
76
75
  this.dataUnit = undefined;
77
76
  this.presentationMode = PresentationMode.PRIMARY;
78
77
  this.messagesBuilder = undefined;
78
+ this.disableSkeleton = false;
79
+ this.sizeButtons = 'small';
79
80
  }
80
81
  handleCustomSlotElementsLoaded(event) {
81
82
  if (this.hasToSearchCustomElements(event)) {
@@ -96,19 +97,10 @@ const SnkTaskbar = class {
96
97
  return this.customSlotId === event.detail && !this._slotContainer;
97
98
  }
98
99
  observeButtons() {
99
- this._definitions = undefined;
100
- requestAnimationFrame(() => {
101
- requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
102
- });
100
+ this.handleDefinitions();
103
101
  }
104
102
  observeDisabledButtons() {
105
- var _a;
106
- (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
107
- }
108
- observeLastWidth(newValue, oldValue) {
109
- if (oldValue === 0 && newValue !== 0) {
110
- this._hasToUpdateOverFlow = true;
111
- }
103
+ this.handleDefinitions();
112
104
  }
113
105
  observeIsWaitingForSave(newValue, oldValue) {
114
106
  if (newValue == true && oldValue == false) {
@@ -121,7 +113,7 @@ const SnkTaskbar = class {
121
113
  observeDataUnit(newValue) {
122
114
  this.initializeDataUnit(newValue);
123
115
  }
124
- initializeDataUnit(dataUnit) {
116
+ initializeDataUnit(dataUnit = this.dataUnit) {
125
117
  if (!!dataUnit && !this._dataUnitInitialized) {
126
118
  this._dataUnitInitialized = true;
127
119
  const dataInfo = { dataUnit: this.dataUnit };
@@ -129,7 +121,6 @@ const SnkTaskbar = class {
129
121
  this.dataUnit.subscribe(this.onSaveEvent);
130
122
  }
131
123
  }
132
- // Internal methods
133
124
  elementsFromString(strButtons) {
134
125
  const elements = [];
135
126
  if (strButtons == null)
@@ -143,15 +134,17 @@ const SnkTaskbar = class {
143
134
  return elements;
144
135
  }
145
136
  isAllowed(buttonName) {
137
+ if (!this._permissions) {
138
+ return false;
139
+ }
140
+ if (this._permissions.isSup) {
141
+ return true;
142
+ }
146
143
  if (buttonName === AuthorizationElements.CONFIGURATOR) {
147
- return this._permissions
148
- ? this._permissions.isSup
149
- || this._permissions[AuthorizationConfig.CONFIG_GRID]
150
- || this._permissions[AuthorizationConfig.CONFIG]
151
- : false;
144
+ return this._permissions[AuthorizationConfig.CONFIG_GRID] || this._permissions[AuthorizationConfig.CONFIG];
152
145
  }
153
146
  if (AuthorizationElements[buttonName]) {
154
- return this._permissions ? this._permissions.isSup || this._permissions[buttonName] : false;
147
+ return this._permissions[buttonName];
155
148
  }
156
149
  return true;
157
150
  }
@@ -225,32 +218,54 @@ const SnkTaskbar = class {
225
218
  }
226
219
  return !(this.disabledButtons && this.disabledButtons.includes(elem));
227
220
  }
228
- validatePresentationMode() {
229
- if (Object.values(PresentationMode).includes(this.presentationMode)) {
230
- return;
231
- }
232
- this.presentationMode = PresentationMode.PRIMARY;
233
- }
234
221
  getElement(index, def) {
235
- let className = def === this.primaryButton ? "ez-button--primary " : "";
236
- if (index > 1) {
237
- className += "ez-padding-left--medium";
238
- }
222
+ const className = {
223
+ "taskbar-element": true,
224
+ "space-between-item": index > 0
225
+ };
239
226
  const taskbarElement = TaskbarElement[def.toString()];
240
227
  const dataExporterStoreKey = this._element.dataset.exporterStoreKey || this.configName;
241
228
  if (taskbarElement) {
242
- return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), def !== TaskbarElement.CONFIGURATOR ? this.buildDynamicActionsList() : this.buildActionsSettingsList(), dataExporterStoreKey, this.presentationMode);
229
+ return buildElem({
230
+ element: def,
231
+ className,
232
+ dataElementId: this.getIdElemBtnNative(def),
233
+ getTitle: elem => this.getTitle(elem),
234
+ action: elem => this.elementClick(elem),
235
+ isEnabled: elem => this.isEnabled(elem),
236
+ actions: def !== TaskbarElement.CONFIGURATOR ? this.buildDynamicActionsList() : this.buildActionsSettingsList(),
237
+ dataExporterStoreKey,
238
+ presentationMode: this.presentationMode,
239
+ variant: def === this.primaryButton ? "primary" : "secondary",
240
+ size: this.sizeButtons,
241
+ });
243
242
  }
244
243
  else {
245
- return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
244
+ return buildCustomButton({
245
+ def: def,
246
+ className,
247
+ dataElementId: this.getIdElemBtnCustom(def),
248
+ action: elem => this.elementClick(elem),
249
+ isEnabled: elem => this.isEnabled(elem),
250
+ size: this.sizeButtons
251
+ });
246
252
  }
247
253
  }
254
+ buildDivider() {
255
+ return { value: '', label: '', type: 'divider' };
256
+ }
248
257
  buildDynamicActionsList() {
249
- var _a;
258
+ var _a, _b;
259
+ const customActions = [...((_a = this.customActionsList) !== null && _a !== void 0 ? _a : [])].filter(a => a !== undefined);
260
+ const defaultActionsList = [...((_b = this.actionsList) !== null && _b !== void 0 ? _b : [])].filter(a => a !== undefined);
261
+ if (customActions.length > 0 && defaultActionsList.length > 0) {
262
+ customActions.push(this.buildDivider());
263
+ }
264
+ const combinedList = [...customActions, ...defaultActionsList];
250
265
  if (this._hiddenActionsList.length) {
251
- return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), ...this._hiddenActionsList];
266
+ return [...combinedList, ...this._hiddenActionsList];
252
267
  }
253
- return this.actionsList;
268
+ return combinedList;
254
269
  }
255
270
  buildActionsSettingsList() {
256
271
  return this.actionsSettingsList;
@@ -320,38 +335,12 @@ const SnkTaskbar = class {
320
335
  else {
321
336
  slotContainer = this._element.querySelector(`#${this.customSlotId}`);
322
337
  }
323
- // Caso nõa encontre o slot container dentro do próprio elemento, tenta buscar na DOM do document.
338
+ // Caso não encontre o slot container dentro do próprio elemento, tenta buscar na DOM do document.
324
339
  if (searchOnDocument && !slotContainer) {
325
340
  slotContainer = document.querySelector(`#${this.customSlotId}`);
326
341
  }
327
342
  return slotContainer;
328
343
  }
329
- componentWillLoad() {
330
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
331
- if (this._application) {
332
- this._application.getAllAccess(this.resourceID).then(access => this._permissions = access);
333
- }
334
- else {
335
- this._permissions = {};
336
- }
337
- this.getCustomElements();
338
- }
339
- componentWillRender() {
340
- this.handleDefinitions();
341
- this.validatePresentationMode();
342
- this.updateOverFlowIfNeeded();
343
- }
344
- handleDefinitions() {
345
- if (this._definitions == undefined && this._permissions) {
346
- this._definitions = this.elementsFromString(this.buttons);
347
- }
348
- }
349
- updateOverFlowIfNeeded() {
350
- if (this._hasToUpdateOverFlow) {
351
- requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
352
- this._hasToUpdateOverFlow = false;
353
- }
354
- }
355
344
  handleOverFlow(overFlowingElements) {
356
345
  const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
357
346
  this.resetOverFlowedElements();
@@ -371,28 +360,38 @@ const SnkTaskbar = class {
371
360
  this.addItemToActionList(element);
372
361
  });
373
362
  }
363
+ getAttributeFromName(element, attributeName) {
364
+ var _a;
365
+ if (!element) {
366
+ console.warn(`[snk-taskbar] Tentativa de acessar atributo "${attributeName}" em elemento nulo.`);
367
+ return "";
368
+ }
369
+ let attributeValue = element.getAttribute(attributeName);
370
+ if (!attributeValue && ((_a = element.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'ez-tooltip') {
371
+ const innerButton = element.querySelector('ez-button');
372
+ if (innerButton) {
373
+ attributeValue = innerButton.getAttribute(attributeName);
374
+ }
375
+ }
376
+ return attributeValue !== null && attributeValue !== void 0 ? attributeValue : "";
377
+ }
374
378
  addItemToActionList(element) {
375
- const taskbarElement = this.getTaskbarElementName(element);
379
+ const taskbarElement = this.getAttributeFromName(element, 'data-taskbar-element');
376
380
  if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
377
381
  const optionItem = {
378
382
  value: taskbarElement,
379
- label: this.getTaskbarElementLabel(element),
380
- iconName: this.getTaskbarElementIcon(element)
383
+ label: this.getAttributeFromName(element, 'data-taskbar-label'),
384
+ iconName: this.getIconName(element)
381
385
  };
382
386
  this._hiddenActionsList.push(optionItem);
383
387
  }
384
388
  }
385
- getTaskbarElementName(element) {
386
- var _a;
387
- return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
388
- }
389
- getTaskbarElementIcon(element) {
390
- var _a;
391
- return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
392
- }
393
- getTaskbarElementLabel(element) {
394
- var _a;
395
- return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
389
+ getIconName(element) {
390
+ const taskbarElement = this.getAttributeFromName(element, 'data-taskbar-element');
391
+ if (taskbarElement === TaskbarElement.INSERT) {
392
+ return "plus";
393
+ }
394
+ return this.getAttributeFromName(element, 'data-taskbar-icon');
396
395
  }
397
396
  hasToIgnoreOverFlow(element) {
398
397
  return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME) ||
@@ -411,22 +410,34 @@ const SnkTaskbar = class {
411
410
  notOverFlow: this.NOT_OVERFLOW_ELEMENTS
412
411
  };
413
412
  }
414
- componentDidLoad() {
415
- this.initializeDataUnit(this.dataUnit);
416
- this.handleOverFlowStrategy();
417
- }
418
- componentDidRender() {
419
- this.appendCustomElementsInTaskbar();
420
- this.updateLastWidth();
421
- }
422
- updateLastWidth() {
423
- this._lastWidth = this._element.getBoundingClientRect().width;
413
+ handleDefinitions() {
414
+ if (!this._permissions) {
415
+ return;
416
+ }
417
+ this._definitions = this.elementsFromString(this.buttons);
418
+ requestAnimationFrame(() => {
419
+ requestAnimationFrame(() => {
420
+ var _a;
421
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
422
+ });
423
+ });
424
424
  }
425
- disconnectedCallback() {
426
- var _a, _b;
427
- (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.unsubscribe(this.onSaveEvent);
428
- this.unlinkAllCustomElements();
429
- (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.destroy();
425
+ async getAccess() {
426
+ if (!this._application) {
427
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
428
+ }
429
+ if (!this._application) {
430
+ console.warn('[snk-taskbar] Application context não encontrado. Permissões serão vazias.');
431
+ this._permissions = {};
432
+ return;
433
+ }
434
+ try {
435
+ this._permissions = await this._application.getAllAccess(this.resourceID);
436
+ }
437
+ catch (error) {
438
+ console.error('[snk-taskbar] Erro ao obter permissões:', error);
439
+ this._permissions = {};
440
+ }
430
441
  }
431
442
  unlinkAllCustomElements() {
432
443
  var _a;
@@ -439,40 +450,86 @@ const SnkTaskbar = class {
439
450
  unlinkCustomElementFromTaskbar(customElement) {
440
451
  this._slotContainer.appendChild(customElement);
441
452
  }
442
- render() {
443
- var _a, _b;
444
- if (this._definitions === undefined) {
445
- return undefined;
446
- }
447
- let index = 0;
448
- return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
449
- var _a, _b;
450
- index++;
451
- if (TaskbarElement[elem]) {
452
- return this.getElement(index, TaskbarElement[elem]);
453
- }
454
- if ((_a = this.customButtons) === null || _a === void 0 ? void 0 : _a.has(elem)) {
455
- return this.getElement(index, this.customButtons.get(elem));
456
- }
457
- if (this._customElements.has(elem)) {
458
- return this.addCustomElementContainer(elem);
459
- }
460
- (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
461
- return h("slot", { name: elem });
462
- })), h("div", { id: this.TASKBAR_CUSTOM_ELEMENTS, class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }), (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 :
463
- _a.addNotOverFlowElement(this.TASKBAR_CUSTOM_ELEMENTS)), h("div", { id: this.TASKBAR_ADDITIONAL_SLOT, class: this.TASKBAR_ADDITIONAL_SLOT_CONTAINER_CLASS_NAME }, h("slot", { name: this.additionalSlotId }), (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 :
464
- _b.addNotOverFlowElement(this.TASKBAR_ADDITIONAL_SLOT))));
465
- }
466
453
  getHostClasses() {
467
454
  if (this.overflowStrategy !== 'hiddenItems')
468
455
  return 'no-wrap';
469
456
  return `full-width ${this.alignRigth ? 'align-right' : ""}`;
470
457
  }
458
+ connectedCallback() {
459
+ this.initializeDataUnit();
460
+ this.handleOverFlowStrategy();
461
+ this.getCustomElements();
462
+ }
463
+ async componentWillLoad() {
464
+ this._isLoading = true;
465
+ try {
466
+ await this.getAccess();
467
+ this.handleDefinitions();
468
+ }
469
+ catch (error) {
470
+ console.error('[snk-taskbar] Erro ao obter permissões de acesso:', error);
471
+ }
472
+ finally {
473
+ this._isLoading = false;
474
+ }
475
+ }
476
+ componentDidRender() {
477
+ this.appendCustomElementsInTaskbar();
478
+ }
479
+ disconnectedCallback() {
480
+ var _a, _b;
481
+ (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.unsubscribe(this.onSaveEvent);
482
+ this.unlinkAllCustomElements();
483
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.destroy();
484
+ }
485
+ renderTaskbarElement(elem, index) {
486
+ var _a, _b;
487
+ if (TaskbarElement[elem]) {
488
+ return this.getElement(index, TaskbarElement[elem]);
489
+ }
490
+ if ((_a = this.customButtons) === null || _a === void 0 ? void 0 : _a.has(elem)) {
491
+ return this.getElement(index, this.customButtons.get(elem));
492
+ }
493
+ if (this._customElements.has(elem)) {
494
+ return this.addCustomElementContainer(elem);
495
+ }
496
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
497
+ return h("slot", { name: elem });
498
+ }
499
+ renderElements() {
500
+ var _a, _b;
501
+ const spacerIndex = (_a = this._definitions) === null || _a === void 0 ? void 0 : _a.indexOf(TaskbarElement.SPACER);
502
+ const hasSpacerElement = spacerIndex !== undefined && spacerIndex !== -1;
503
+ if (!hasSpacerElement) {
504
+ const arrayOfElements = (_b = this._definitions) === null || _b === void 0 ? void 0 : _b.map((elem, index) => this.renderTaskbarElement(elem, index));
505
+ return this.removeEmpty(arrayOfElements);
506
+ }
507
+ // Split elements into before and after spacer
508
+ const elementsBeforeSpacer = this._definitions.slice(0, spacerIndex);
509
+ const elementsAfterSpacer = this._definitions.slice(spacerIndex + 1);
510
+ const beforeElements = elementsBeforeSpacer.map((elem, index) => this.renderTaskbarElement(elem, index));
511
+ const afterElements = elementsAfterSpacer.map((elem, index) => this.renderTaskbarElement(elem, index + spacerIndex + 1));
512
+ return [
513
+ h("div", { class: "taskbar-group taskbar-group--start" }, this.removeEmpty(beforeElements)),
514
+ h("div", { class: "taskbar-group taskbar-group--end" }, this.removeEmpty(afterElements))
515
+ ];
516
+ }
517
+ render() {
518
+ var _a, _b;
519
+ if (!this._definitions) {
520
+ return;
521
+ }
522
+ if (this._isLoading && !this.disableSkeleton) {
523
+ return (h(Host, { class: this.getHostClasses() }, h("snk-taskbar-skeleton", null)));
524
+ }
525
+ return (h(Host, { class: this.getHostClasses() }, this.renderElements(), h("div", { id: this.TASKBAR_CUSTOM_ELEMENTS, class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }), (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 :
526
+ _a.addNotOverFlowElement(this.TASKBAR_CUSTOM_ELEMENTS)), h("div", { id: this.TASKBAR_ADDITIONAL_SLOT, class: this.TASKBAR_ADDITIONAL_SLOT_CONTAINER_CLASS_NAME }, h("slot", { name: this.additionalSlotId }), (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 :
527
+ _b.addNotOverFlowElement(this.TASKBAR_ADDITIONAL_SLOT))));
528
+ }
471
529
  get _element() { return getElement(this); }
472
530
  static get watchers() { return {
473
531
  "buttons": ["observeButtons"],
474
532
  "disabledButtons": ["observeDisabledButtons"],
475
- "_lastWidth": ["observeLastWidth"],
476
533
  "_isWaitingForSave": ["observeIsWaitingForSave"],
477
534
  "dataUnit": ["observeDataUnit"]
478
535
  }; }
@@ -0,0 +1,149 @@
1
+ import { h } from './index-04f73a26.js';
2
+ import { P as PresentationMode } from './index-b40568ff.js';
3
+ import { s as store } from './index-ea250be6.js';
4
+
5
+ var TaskbarElement;
6
+ (function (TaskbarElement) {
7
+ TaskbarElement["PREVIOUS"] = "PREVIOUS";
8
+ TaskbarElement["NEXT"] = "NEXT";
9
+ TaskbarElement["REFRESH"] = "REFRESH";
10
+ TaskbarElement["UPDATE"] = "UPDATE";
11
+ TaskbarElement["CLONE"] = "CLONE";
12
+ TaskbarElement["REMOVE"] = "REMOVE";
13
+ TaskbarElement["INSERT"] = "INSERT";
14
+ TaskbarElement["CANCEL"] = "CANCEL";
15
+ TaskbarElement["SAVE"] = "SAVE";
16
+ TaskbarElement["GRID_MODE"] = "GRID_MODE";
17
+ TaskbarElement["FORM_MODE"] = "FORM_MODE";
18
+ TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
19
+ TaskbarElement["DIVIDER"] = "DIVIDER";
20
+ TaskbarElement["SPACER"] = "SPACER";
21
+ TaskbarElement["CONFIGURATOR"] = "CONFIGURATOR";
22
+ TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
23
+ TaskbarElement["ATTACH"] = "ATTACH";
24
+ TaskbarElement["ACTIONS_BUTTON"] = "ACTIONS_BUTTON";
25
+ TaskbarElement["UPDATE_MULTIPLE"] = "UPDATE_MULTIPLE";
26
+ })(TaskbarElement || (TaskbarElement = {}));
27
+ var AuthorizationElements;
28
+ (function (AuthorizationElements) {
29
+ AuthorizationElements["UPDATE"] = "UPDATE";
30
+ AuthorizationElements["CLONE"] = "CLONE";
31
+ AuthorizationElements["REMOVE"] = "REMOVE";
32
+ AuthorizationElements["INSERT"] = "INSERT";
33
+ AuthorizationElements["CONFIGURATOR"] = "CONFIGURATOR";
34
+ })(AuthorizationElements || (AuthorizationElements = {}));
35
+ var VisibleWhenForbidden;
36
+ (function (VisibleWhenForbidden) {
37
+ VisibleWhenForbidden["CONFIGURATOR"] = "CONFIGURATOR";
38
+ })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
39
+ const buildCustomButton = ({ def, className, dataElementId, action, isEnabled, size }) => {
40
+ const { hint, text, iconName } = def;
41
+ if (iconName) {
42
+ if (text) {
43
+ return iconTextButton({ iconName, element: def.name, className, dataElementId, title: hint, action, isEnabled, size });
44
+ }
45
+ else {
46
+ return iconButton({ iconName, element: def.name, className, dataElementId, title: hint, action, isEnabled, size });
47
+ }
48
+ }
49
+ else {
50
+ return textButton({ element: def.name, className, dataElementId, title: hint, action, isEnabled, size });
51
+ }
52
+ };
53
+ const buildElem = ({ element, className, dataElementId, getTitle, action, isEnabled, actions, dataExporterStoreKey, presentationMode, variant, size }) => {
54
+ var _a, _b;
55
+ const title = getTitle(element);
56
+ const propertiesItem = {
57
+ element, className, dataElementId, title, action, isEnabled, actions, variant, size
58
+ };
59
+ switch (element) {
60
+ case TaskbarElement.PREVIOUS:
61
+ return iconButton(Object.assign({ iconName: "chevron-left" }, propertiesItem));
62
+ case TaskbarElement.NEXT:
63
+ return iconButton(Object.assign({ iconName: "chevron-right" }, propertiesItem));
64
+ case TaskbarElement.REFRESH:
65
+ return iconButton(Object.assign({ iconName: "sync" }, propertiesItem));
66
+ case TaskbarElement.UPDATE:
67
+ return iconButton(Object.assign({ iconName: "edit" }, propertiesItem));
68
+ case TaskbarElement.UPDATE_MULTIPLE:
69
+ return iconButton(Object.assign({ iconName: "edit-table" }, propertiesItem));
70
+ case TaskbarElement.CLONE:
71
+ return iconButton(Object.assign({ iconName: "copy" }, propertiesItem));
72
+ case TaskbarElement.REMOVE:
73
+ return iconButton(Object.assign({ iconName: "delete" }, propertiesItem));
74
+ case TaskbarElement.INSERT:
75
+ if (presentationMode === PresentationMode.PRIMARY) {
76
+ return textButton(Object.assign({}, propertiesItem));
77
+ }
78
+ else {
79
+ return iconButton(Object.assign({ iconName: "plus" }, propertiesItem));
80
+ }
81
+ case TaskbarElement.CANCEL:
82
+ return textButton(Object.assign({}, propertiesItem));
83
+ case TaskbarElement.SAVE:
84
+ if (presentationMode === PresentationMode.PRIMARY) {
85
+ return iconTextButton(Object.assign(Object.assign({ iconName: "save" }, propertiesItem), { variant: "primary" }));
86
+ }
87
+ else {
88
+ return iconButton(Object.assign(Object.assign({ iconName: "save" }, propertiesItem), { variant: "primary" }));
89
+ }
90
+ case TaskbarElement.GRID_MODE:
91
+ return iconButton(Object.assign({ iconName: "table" }, propertiesItem));
92
+ case TaskbarElement.FORM_MODE:
93
+ return iconButton(Object.assign({ iconName: "list" }, propertiesItem));
94
+ case TaskbarElement.CONFIGURATOR:
95
+ if ((actions === null || actions === void 0 ? void 0 : actions.length) > 0) {
96
+ return splitButton(Object.assign({ iconName: "settings-inverted" }, propertiesItem));
97
+ }
98
+ return iconButton(Object.assign({ iconName: "settings-inverted" }, propertiesItem));
99
+ case TaskbarElement.MORE_OPTIONS:
100
+ const definedActions = (_a = actions === null || actions === void 0 ? void 0 : actions.filter(a => a !== undefined)) !== null && _a !== void 0 ? _a : [];
101
+ return actionButton(Object.assign(Object.assign({}, propertiesItem), { actions: definedActions }));
102
+ case TaskbarElement.DIVIDER:
103
+ return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin--none ez-margin-left--medium", "data-taskbar-divider": true });
104
+ case TaskbarElement.DATA_EXPORTER:
105
+ const provider = (_b = store.get("exporterProviders")) === null || _b === void 0 ? void 0 : _b[dataExporterStoreKey];
106
+ return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element, size: size });
107
+ case TaskbarElement.ATTACH:
108
+ return iconButton(Object.assign({ iconName: "anexo" }, propertiesItem));
109
+ case TaskbarElement.ACTIONS_BUTTON:
110
+ return h("snk-actions-button", { "data-element-id": dataElementId, "data-taskbar-element": element, class: className, size: size });
111
+ }
112
+ };
113
+ function textButton({ action, className, dataElementId, title, element, isEnabled, variant, size }) {
114
+ return (h("ez-tooltip", { key: dataElementId, message: title, class: className },
115
+ h("ez-button", { label: title, "data-taskbar-label": title, "data-taskbar-element": element, "data-element-id": dataElementId, isDisabled: !isEnabled(element), onClick: () => action(element), variant: variant, size: size })));
116
+ }
117
+ function concatClass(className) {
118
+ if (typeof className === "string") {
119
+ return className;
120
+ }
121
+ else {
122
+ return Object.keys(className).filter(key => className[key]).join(" ");
123
+ }
124
+ }
125
+ function iconButton({ iconName, element, className, dataElementId, title, action, isEnabled, variant, size }) {
126
+ return (h("ez-tooltip", { key: dataElementId, message: title, class: {
127
+ [concatClass(className)]: true,
128
+ [`icon-button--${size}`]: true
129
+ } },
130
+ h("ez-button", { mode: "icon", "data-taskbar-label": title, "data-taskbar-element": element, "data-taskbar-icon": iconName, "data-element-id": dataElementId, iconName: iconName, isDisabled: !isEnabled(element), onClick: () => action(element), variant: variant, size: size })));
131
+ }
132
+ function iconTextButton({ iconName, element, className, dataElementId, title, action, isEnabled, variant, size }) {
133
+ return (h("ez-tooltip", { key: dataElementId, message: title, class: className },
134
+ h("ez-button", { label: title, "data-taskbar-label": title, "data-taskbar-icon": iconName, "data-taskbar-element": element, "data-element-id": dataElementId, isDisabled: !isEnabled(element), onClick: () => action(element), variant: variant, size: size },
135
+ h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }))));
136
+ }
137
+ function splitButton({ iconName, element, className, title, dataElementId, isEnabled, actions, action, size }) {
138
+ return actions && actions.length > 0
139
+ ?
140
+ h("taskbar-split-button", { key: dataElementId, class: className, iconName: iconName, "data-taskbar-icon": iconName, "data-taskbar-label": title, title: title, "data-taskbar-element": element, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, action: () => action(element), size: size })
141
+ : undefined;
142
+ }
143
+ function actionButton({ element, className, dataElementId, title, isEnabled, actions, action, size }) {
144
+ return actions && actions.length > 0
145
+ ? 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), size: size })
146
+ : undefined;
147
+ }
148
+
149
+ export { AuthorizationElements as A, TaskbarElement as T, VisibleWhenForbidden as V, buildCustomButton as a, buildElem as b };
@@ -0,0 +1 @@
1
+ import{D as t}from"./p-2af8aca3.js";import"./p-4f7adf97.js";import{SortMode as i,ApplicationContext as s,ObjectUtils as e,StringUtils as r,NumberUtils as o,DataType as n,UserInterface as l,DateUtils as a}from"@sankhyalabs/core";import{D as d}from"./p-0f3698af.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import{UserInterface as u}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{P as c}from"./p-d972a9c1.js";import"./p-ff1990ad.js";import"./p-3870748a.js";import"./p-9019a32f.js";import{g as h}from"./p-7dd49d15.js";import{I as f}from"./p-8f3f2306.js";import v from"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource";class m{static assertDefaultSorting(t,s){t&&s&&(s.defaultSorting=t.columns.filter((t=>null!=t.ascending)).sort(((t,i)=>t.orderIndex-i.orderIndex)).map((({name:t,ascending:e})=>{const{dataType:r}=s.getField(t);return{field:t,dataType:r,mode:e?i.ASC:i.DESC}})))}static parseCrudResults(t,i){Array.isArray(t)||(t=[t]);const s=[];for(const e of t){let t={fields:new Map};for(let s in e){let r=e[s];if(r.hasOwnProperty("$")&&t.fields.set(s,r.$),i)break}s.push(t)}return s.length>1?s:s[0]}static find(i,e,r,o=!0,n,l){let a=[],d=[],u={},c=s.getContextValue("__SNK__APPLICATION__");if(e){if(!Array.isArray(e))throw new Error(c.messagesBuilder.getMessage("crudUtils.errorArray",null));e.forEach((t=>{a.push({name:t})}))}if(r)for(const t in r)r.hasOwnProperty(t)&&d.push({nome:t,valor:r[t]});n&&(u={expression:{$:n}});let h={requestBody:{entity:{name:i,criterio:d,fields:{field:a},literalCriteria:u,orderby:l}}};return new Promise((i=>{t.get().callServiceBroker("mge@crud.find",JSON.stringify(h)).then((t=>{var s;let e=null===(s=t.entidades)||void 0===s?void 0:s.entidade;e||i(null);const r=this.parseCrudResults(e,o);i(r)}))}))}}class p{setGrid(t){this._grid||(this._grid=t,this.refreshSelectedRows())}setDataState(t){this._dataState&&e.equals(null==t?void 0:t.metadataByRow,this._dataState.metadataByRow)||(this._dataState=t,this.refreshSelectedRows())}format(t,i,s){var e;if(r.isEmpty(t))return t;const n=null===(e=this._dataState)||void 0===e?void 0:e.metadataByRow.get(s),l=null==n?void 0:n.getProp("rm_precision",i.name);if(l||0===l)return o.format(t,l,l);if(null==i?void 0:i.props){const s=null==i?void 0:i.props.get("precision"),e=null==i?void 0:i.props.get("prettyPrecision");if(void 0!==s&&void 0!==e)return o.format(t,s,e)}return t}refreshSelectedRows(){var t;null===(t=this._grid)||void 0===t||t.refreshSelectedRows()}}class y{constructor(t,i){this.MAX_WIDTH_COD=60,this.MIN_WIDTH_COD=10,this.DEFAULT_FONT_SIZE=13,this.dataUnit=t,this.grid=i}async getColumnsMetadata(){var t;return this.columnsState=await(null===(t=this.grid)||void 0===t?void 0:t.getColumnsState())||[],await this.buildColumnsMetadata(this.columnsState)}getColumnsState(){return this.columnsState}async buildColumnsMetadata(t){var i,s,e;const r=[];for(const o of t){if(o.hidden&&"RECDESP"!==o.name)continue;const t=null===(i=this.dataUnit)||void 0===i?void 0:i.getField(o.name),l=await this.grid.getCustomValueFormatter(o.name),a=(null==t?void 0:t.userInterface)===u.SEARCH,d=a?"Cód. ":o.label;let c,h={id:o.name,label:d,width:a?d.length*this.DEFAULT_FONT_SIZE:o.width,type:null==t?void 0:t.dataType,userInterface:null==t?void 0:t.userInterface,customFormatter:l};if(a&&null!=(null===(s=null==t?void 0:t.properties)||void 0===s?void 0:s.DESCRIPTIONFIELD)){const i=null===(e=null==t?void 0:t.properties)||void 0===e?void 0:e.DESCRIPTIONENTITY,s=t.properties.mergedFrom;c={id:`${s?s+".":""}${t.properties.ENTITYNAME}.${t.properties.DESCRIPTIONFIELD}`,label:i,width:a&&i?i.length*this.DEFAULT_FONT_SIZE-60:o.width,type:n.TEXT,userInterface:u.LONGTEXT,descriptionFrom:t.name};const r=this.getWidthByMetaData(null==o?void 0:o.width,null==h?void 0:h.width,null==c?void 0:c.width);h=Object.assign(Object.assign({},h),{width:null==r?void 0:r.codWidth}),c=Object.assign(Object.assign({},c),{width:null==r?void 0:r.descWidth,label:(null==c?void 0:c.label)||(null==o?void 0:o.label)})}r.push(h),c&&r.push(c)}return r||[]}getWidthByMetaData(t,i,s){const e=i+s,r=s/e;let o=Math.round(t*(i/e)),n=Math.round(t*r);return o>this.MAX_WIDTH_COD?(o=this.MAX_WIDTH_COD,n=t-this.MAX_WIDTH_COD):o<this.MIN_WIDTH_COD&&(o=this.MIN_WIDTH_COD,n=t-this.MIN_WIDTH_COD),{codWidth:o,descWidth:n}}}class b extends y{getSelectedNumber(){return this.dataUnit.getSelectionInfo().length}getTotalRecords(){var t,i,s;const{total:e}=(null===(t=this.dataUnit)||void 0===t?void 0:t.getPaginationInfo())||{};return null!=e?e:null===(s=null===(i=this.dataUnit)||void 0===i?void 0:i.records)||void 0===s?void 0:s.length}getSelectedIDs(){return h(this.dataUnit)}getRecordID(){var t,i,s;return null===(s=null===(i=null===(t=this.dataUnit)||void 0===t?void 0:t.records)||void 0===i?void 0:i[0])||void 0===s?void 0:s.__record__id__}async getRecords(t){if(0===this.dataUnit.records.length)return[];switch(t){case f.ALL:return this.dataUnit.getSelectionInfo().getAllRecords();case f.SELECTION:return this.resolveRecordsFromSelection();case f.PAGE:return this.dataUnit.records;default:return this.resolveRecordsFromSelection()}}resolveRecordsFromSelection(){const t=this.dataUnit.getSelectionInfo();if(t.isEmpty())return this.dataUnit.records;const i=t.isAllRecords()?t.getAllRecords():t.records;return i.length?i:this.dataUnit.records}getHiddenOptions(){return[d.EXPORT_BY_EMAIL,d.EXPORT_PDF_TO_EMAIL,d.EXPORT_XLS_TO_EMAIL,d.EXPORT_PAGE_TO_PDF,d.EXPORT_PAGE_TO_XLS]}formatValue(t,i){const{id:s,descriptionFrom:e}=i,r=t[e||s];if(null==r)return"";if(null!=e)return r.label;if(this.dataUnit.getField(s).userInterface===l.SEARCH)return r.value;if(i.customFormatter){const s=this.getColumnsState().find((t=>i.id===t.name));return i.customFormatter.format(r,s,t.__record__id__)}return this.dataUnit.getFormattedValue(s,r)}}class g{constructor(t){this._defaultButtons=t}process(t,i,s,e=[],r=[]){var o;this.customButtons=new Map,this.buttons="",this.disabledButtons=[].concat(e),null===(o=this.getButtonsArray(t,i,s))||void 0===o||o.forEach((o=>{let n;if("string"==typeof o)n=o;else{const t=o;this.customButtons.set(t.name,t),n=t.name}r.includes(n)||(this.isEnabled(t,i,n,s,e)||this.disabledButtons.push(n),this.buttons.length>0&&(this.buttons+=","),this.buttons+=n)}))}getButtonsArray(t,i,s){const e=this.getButtonsFromKey(t);return i?i.getButtons(t,s,[...e]):e}getButtonsFromKey(t){const i=this._defaultButtons[t];return"function"==typeof i?i():i}isEnabled(t,i,s,e,r){const o=!r.includes(s);return i&&i.isEnabled?i.isEnabled(t,e,s,o):o}}class w{setDataUnit(t){this._dataUnit=t}setApplication(t){this._application=t}formatLabel(t,i){const{userInterface:s}=this._dataUnit.getField(t);return s===l.DATETIME?a.formatDate(this._dataUnit.valueFromString(t,i)):String(this._dataUnit.getFormattedValue(t,i))}async getStaticOptions(t,i){return Promise.resolve(null==t?void 0:await c.getDistinct(this._dataUnit,t,null==i?void 0:i.onlyLabel))}fetchData(t,i){return new Promise((s=>{this._application.executeSelectDistinct(this._dataUnit,i,t).then((t=>{s(t.map((t=>this._dataUnit.getField(i).userInterface===l.SEARCH?Object.assign(Object.assign({},JSON.parse(t)),{check:!0}):{value:t,label:this.formatLabel(i,t),check:!0})))}))}))}sortItems(t,i){return v.defaultSorterMultSelectionOption(this._dataUnit,t,i)}}export{y as C,p as R,w as S,g as T,m as a,b}