@sankhyalabs/sankhyablocks 1.3.34 → 1.4.0-beta.2

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 (239) hide show
  1. package/dist/cjs/SnkMessageBuilder-d8215915.js +221 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  3. package/dist/cjs/css-shim-b8158822.js +6 -0
  4. package/dist/cjs/dom-36862b77.js +75 -0
  5. package/dist/cjs/filter-item-type.enum-3daf58d3.js +16 -0
  6. package/dist/cjs/index-84fe3b86.js +20 -0
  7. package/dist/cjs/index-93965c41.js +141 -0
  8. package/dist/cjs/index-b0b676c5.js +3298 -0
  9. package/dist/cjs/index-e90ae303.js +2408 -0
  10. package/dist/cjs/loader.cjs.js +19 -3
  11. package/dist/cjs/sankhyablocks.cjs.js +117 -5
  12. package/dist/cjs/shadow-css-346c0795.js +389 -0
  13. package/dist/cjs/snk-application.cjs.entry.js +744 -174
  14. package/dist/cjs/snk-crud.cjs.entry.js +70 -0
  15. package/dist/cjs/snk-data-unit.cjs.entry.js +272 -0
  16. package/dist/cjs/snk-filter-bar.cjs.entry.js +466 -0
  17. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +47 -0
  18. package/dist/cjs/snk-filter-detail.cjs.entry.js +84 -0
  19. package/dist/cjs/snk-filter-item.cjs.entry.js +177 -0
  20. package/dist/cjs/snk-filter-list.cjs.entry.js +91 -0
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +37 -0
  22. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +23 -0
  23. package/dist/cjs/snk-filter-number.cjs.entry.js +24 -0
  24. package/dist/cjs/snk-filter-period.cjs.entry.js +37 -0
  25. package/dist/cjs/snk-filter-personalized.cjs.entry.js +89 -0
  26. package/dist/cjs/snk-filter-search.cjs.entry.js +44 -0
  27. package/dist/cjs/snk-filter-text.cjs.entry.js +22 -0
  28. package/dist/cjs/snk-form.cjs.entry.js +133 -0
  29. package/dist/cjs/snk-grid.cjs.entry.js +79 -0
  30. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +160 -0
  32. package/dist/cjs/taskbar-elements-283c737e.js +93 -0
  33. package/dist/cjs/taskbar-processor-6bd0d35c.js +47 -0
  34. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  35. package/dist/collection/collection-manifest.json +19 -2
  36. package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +9 -2
  37. package/dist/collection/components/snk-application/snk-application.js +1179 -627
  38. package/dist/collection/components/snk-crud/snk-crud.css +6 -0
  39. package/dist/collection/components/snk-crud/snk-crud.js +201 -0
  40. package/dist/collection/components/snk-data-unit/snk-data-unit.css +6 -0
  41. package/dist/collection/components/snk-data-unit/snk-data-unit.js +517 -0
  42. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +100 -0
  43. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +88 -0
  44. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +64 -0
  45. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +65 -0
  46. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +78 -0
  47. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +161 -0
  48. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +118 -0
  49. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +63 -0
  50. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +12 -0
  51. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +153 -0
  52. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +278 -0
  53. package/dist/collection/components/snk-filter-bar/filter-list/snk-filter-list.js +233 -0
  54. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +196 -0
  55. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +136 -0
  56. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +452 -0
  57. package/dist/collection/components/snk-form/snk-form.css +34 -0
  58. package/dist/collection/components/snk-form/snk-form.js +258 -0
  59. package/dist/collection/components/snk-grid/snk-grid.css +18 -0
  60. package/dist/collection/components/snk-grid/snk-grid.js +203 -0
  61. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +80 -79
  62. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +86 -0
  63. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +43 -0
  64. package/dist/collection/components/snk-taskbar/snk-taskbar.css +3 -0
  65. package/dist/collection/components/snk-taskbar/snk-taskbar.js +307 -0
  66. package/dist/collection/components/teste-pesquisa/teste-pesquisa.js +12 -9
  67. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +37 -12
  68. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +52 -21
  69. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +62 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +4 -3
  71. package/dist/collection/lib/http/data-fetcher/fetchers/totals-fetcher.js +47 -0
  72. package/dist/collection/lib/index.js +1 -0
  73. package/dist/collection/lib/message/SnkMessageBuilder.js +121 -0
  74. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +23 -0
  75. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +30 -0
  76. package/dist/collection/lib/message/resources/snk-form.msg.js +10 -0
  77. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +17 -0
  78. package/dist/components/SnkMessageBuilder.js +199 -0
  79. package/dist/components/filter-item-type.enum.js +14 -0
  80. package/dist/components/index.d.ts +20 -5
  81. package/dist/components/index.js +24 -0
  82. package/dist/components/index2.js +2394 -0
  83. package/dist/components/index3.js +139 -0
  84. package/dist/components/snk-application2.js +727 -146
  85. package/dist/components/snk-crud.d.ts +11 -0
  86. package/dist/components/snk-crud.js +139 -0
  87. package/dist/components/snk-data-unit.d.ts +11 -0
  88. package/dist/components/snk-data-unit.js +294 -0
  89. package/dist/components/snk-filter-bar.d.ts +11 -0
  90. package/dist/components/snk-filter-bar.js +6 -0
  91. package/dist/components/snk-filter-bar2.js +504 -0
  92. package/dist/components/snk-filter-binary-select.d.ts +11 -0
  93. package/dist/components/snk-filter-binary-select.js +63 -0
  94. package/dist/components/snk-filter-detail.d.ts +11 -0
  95. package/dist/components/snk-filter-detail.js +6 -0
  96. package/dist/components/snk-filter-detail2.js +98 -0
  97. package/dist/components/snk-filter-item.d.ts +11 -0
  98. package/dist/components/snk-filter-item.js +6 -0
  99. package/dist/components/snk-filter-item2.js +198 -0
  100. package/dist/components/snk-filter-list.d.ts +11 -0
  101. package/dist/components/snk-filter-list.js +6 -0
  102. package/dist/components/snk-filter-list2.js +111 -0
  103. package/dist/components/snk-filter-modal.d.ts +11 -0
  104. package/dist/components/snk-filter-modal.js +6 -0
  105. package/dist/components/snk-filter-modal2.js +73 -0
  106. package/dist/components/snk-filter-multi-select.d.ts +11 -0
  107. package/dist/components/snk-filter-multi-select.js +39 -0
  108. package/dist/components/snk-filter-number.d.ts +11 -0
  109. package/dist/components/snk-filter-number.js +40 -0
  110. package/dist/components/snk-filter-period.d.ts +11 -0
  111. package/dist/components/snk-filter-period.js +53 -0
  112. package/dist/components/snk-filter-personalized.d.ts +11 -0
  113. package/dist/components/snk-filter-personalized.js +107 -0
  114. package/dist/components/snk-filter-search.d.ts +11 -0
  115. package/dist/components/snk-filter-search.js +62 -0
  116. package/dist/components/snk-filter-text.d.ts +11 -0
  117. package/dist/components/snk-filter-text.js +38 -0
  118. package/dist/components/snk-form.d.ts +11 -0
  119. package/dist/components/snk-form.js +6 -0
  120. package/dist/components/snk-form2.js +159 -0
  121. package/dist/components/snk-grid.d.ts +11 -0
  122. package/dist/components/snk-grid.js +6 -0
  123. package/dist/components/snk-grid2.js +133 -0
  124. package/dist/components/snk-pesquisa2.js +1 -1
  125. package/dist/components/snk-taskbar.d.ts +11 -0
  126. package/dist/components/snk-taskbar.js +6 -0
  127. package/dist/components/snk-taskbar2.js +264 -0
  128. package/dist/components/taskbar-processor.js +45 -0
  129. package/dist/components/teste-pesquisa.js +1 -1
  130. package/dist/esm/SnkMessageBuilder-35a20271.js +199 -0
  131. package/dist/esm/app-globals-0f993ce5.js +3 -0
  132. package/dist/esm/css-shim-b3f2ee8d.js +4 -0
  133. package/dist/esm/dom-665d6011.js +73 -0
  134. package/dist/esm/filter-item-type.enum-a79b2fa8.js +14 -0
  135. package/dist/esm/index-2b4d2d14.js +3262 -0
  136. package/dist/esm/index-5992b7e6.js +139 -0
  137. package/dist/esm/index-c683b2b0.js +2394 -0
  138. package/dist/esm/index-c71285cb.js +17 -0
  139. package/dist/esm/loader.js +19 -3
  140. package/dist/esm/polyfills/css-shim.js +1 -1
  141. package/dist/esm/sankhyablocks.js +117 -5
  142. package/dist/esm/shadow-css-b18e99d7.js +387 -0
  143. package/dist/esm/snk-application.entry.js +717 -147
  144. package/dist/esm/snk-crud.entry.js +66 -0
  145. package/dist/esm/snk-data-unit.entry.js +268 -0
  146. package/dist/esm/snk-filter-bar.entry.js +462 -0
  147. package/dist/esm/snk-filter-binary-select.entry.js +43 -0
  148. package/dist/esm/snk-filter-detail.entry.js +80 -0
  149. package/dist/esm/snk-filter-item.entry.js +173 -0
  150. package/dist/esm/snk-filter-list.entry.js +87 -0
  151. package/dist/esm/snk-filter-modal.entry.js +33 -0
  152. package/dist/esm/snk-filter-multi-select.entry.js +19 -0
  153. package/dist/esm/snk-filter-number.entry.js +20 -0
  154. package/dist/esm/snk-filter-period.entry.js +33 -0
  155. package/dist/esm/snk-filter-personalized.entry.js +85 -0
  156. package/dist/esm/snk-filter-search.entry.js +40 -0
  157. package/dist/esm/snk-filter-text.entry.js +18 -0
  158. package/dist/esm/snk-form.entry.js +129 -0
  159. package/dist/esm/snk-grid.entry.js +75 -0
  160. package/dist/esm/snk-pesquisa.entry.js +2 -2
  161. package/dist/esm/snk-taskbar.entry.js +156 -0
  162. package/dist/esm/taskbar-elements-35d64ff9.js +90 -0
  163. package/dist/esm/taskbar-processor-aa6772c9.js +45 -0
  164. package/dist/esm/teste-pesquisa.entry.js +2 -2
  165. package/dist/sankhyablocks/SnkMessageBuilder-35a20271.js +199 -0
  166. package/dist/sankhyablocks/app-globals-0f993ce5.js +3 -0
  167. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +4 -0
  168. package/dist/sankhyablocks/dom-665d6011.js +73 -0
  169. package/dist/sankhyablocks/filter-item-type.enum-a79b2fa8.js +14 -0
  170. package/dist/sankhyablocks/index-2b4d2d14.js +3262 -0
  171. package/dist/sankhyablocks/index-5992b7e6.js +139 -0
  172. package/dist/sankhyablocks/index-c683b2b0.js +2394 -0
  173. package/dist/sankhyablocks/index-c71285cb.js +17 -0
  174. package/dist/sankhyablocks/index.esm.js +1 -0
  175. package/dist/sankhyablocks/sankhyablocks.esm.js +129 -1
  176. package/dist/sankhyablocks/shadow-css-b18e99d7.js +387 -0
  177. package/dist/sankhyablocks/snk-application.entry.js +8166 -0
  178. package/dist/sankhyablocks/snk-crud.entry.js +66 -0
  179. package/dist/sankhyablocks/snk-data-unit.entry.js +268 -0
  180. package/dist/sankhyablocks/snk-filter-bar.entry.js +462 -0
  181. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +43 -0
  182. package/dist/sankhyablocks/snk-filter-detail.entry.js +80 -0
  183. package/dist/sankhyablocks/snk-filter-item.entry.js +173 -0
  184. package/dist/sankhyablocks/snk-filter-list.entry.js +87 -0
  185. package/dist/sankhyablocks/snk-filter-modal.entry.js +33 -0
  186. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +19 -0
  187. package/dist/sankhyablocks/snk-filter-number.entry.js +20 -0
  188. package/dist/sankhyablocks/snk-filter-period.entry.js +33 -0
  189. package/dist/sankhyablocks/snk-filter-personalized.entry.js +85 -0
  190. package/dist/sankhyablocks/snk-filter-search.entry.js +40 -0
  191. package/dist/sankhyablocks/snk-filter-text.entry.js +18 -0
  192. package/dist/sankhyablocks/snk-form.entry.js +129 -0
  193. package/dist/sankhyablocks/snk-grid.entry.js +75 -0
  194. package/dist/sankhyablocks/snk-pesquisa.entry.js +311 -0
  195. package/dist/sankhyablocks/snk-taskbar.entry.js +156 -0
  196. package/dist/sankhyablocks/taskbar-elements-35d64ff9.js +90 -0
  197. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +45 -0
  198. package/dist/sankhyablocks/teste-pesquisa.entry.js +33 -0
  199. package/dist/types/components/snk-application/errorhandler/snk-error-handler.d.ts +1 -0
  200. package/dist/types/components/snk-application/snk-application.d.ts +149 -16
  201. package/dist/types/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.d.ts +4 -0
  202. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +12 -0
  203. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +7 -0
  204. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +7 -0
  205. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +14 -0
  206. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.d.ts +23 -0
  207. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +12 -0
  208. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +7 -0
  209. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +11 -0
  210. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +16 -0
  211. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +40 -0
  212. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +23 -0
  213. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +29 -0
  214. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +12 -0
  215. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +84 -0
  216. package/dist/types/components.d.ts +744 -8
  217. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +7 -6
  218. package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +2 -0
  219. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +6 -0
  220. package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +1 -1
  221. package/dist/types/lib/http/data-fetcher/fetchers/totals-fetcher.d.ts +8 -0
  222. package/dist/types/lib/index.d.ts +1 -0
  223. package/dist/types/lib/message/SnkMessageBuilder.d.ts +42 -0
  224. package/dist/types/lib/message/resources/snk-data-unit.msg.d.ts +2 -0
  225. package/dist/types/lib/message/resources/snk-filter-bar.msg.d.ts +2 -0
  226. package/dist/types/lib/message/resources/snk-form.msg.d.ts +2 -0
  227. package/dist/types/lib/message/resources/snk-taskbar.msg.d.ts +2 -0
  228. package/dist/types/stencil-public-runtime.d.ts +15 -4
  229. package/loader/package.json +1 -0
  230. package/package.json +5 -5
  231. package/react/components.d.ts +0 -2
  232. package/react/components.js +0 -2
  233. package/react/components.js.map +1 -1
  234. package/dist/cjs/index-1133bc2a.js +0 -1235
  235. package/dist/esm/index-ffda6382.js +0 -1208
  236. package/dist/sankhyablocks/p-2a7b4cb3.entry.js +0 -1
  237. package/dist/sankhyablocks/p-9520d78a.entry.js +0 -1
  238. package/dist/sankhyablocks/p-98e8490d.entry.js +0 -69
  239. package/dist/sankhyablocks/p-edcb9d8e.js +0 -2
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-b0b676c5.js');
6
+ const index$1 = require('./index-e90ae303.js');
7
+ const taskbarProcessor = require('./taskbar-processor-6bd0d35c.js');
8
+
9
+ const snkFormCss = ".sc-snk-form-h{display:block}.snk-form.sc-snk-form{position:relative;padding:var(--space--large);padding-top:var(--space--medium)}.snk-form__header.sc-snk-form{position:relative;padding-top:var(--space--medium);padding-bottom:var(--space--medium);margin-bottom:var(--space--medium)}.snk-form__header--fixed.sc-snk-form{position:sticky;top:0;background:var(--background--body);z-index:var(--more-visible, 2);padding-left:var(--space--large);padding-right:var(--space--large);margin-left:calc(var(--space--large) * -1);margin-right:calc(var(--space--large) * -1);width:calc(100% + (var(--space--large) * 2))}";
10
+
11
+ const SnkForm = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ this.exit = index.createEvent(this, "exit", 7);
15
+ this.actionClick = index.createEvent(this, "actionClick", 7);
16
+ this._taskbarProcessor = new taskbarProcessor.TaskbarProcessor({
17
+ "snkForm.regular": ["PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "GRID_MODE", "INSERT"],
18
+ "snkForm.finish_edition": ["CANCEL", "SAVE"]
19
+ });
20
+ }
21
+ getFormConfig() {
22
+ return (this._dataState && this._dataState.insertionMode ? this._insertionFormConfig : this._editionFormConfig);
23
+ }
24
+ getInsertionHiddenFields(formConfig) {
25
+ const hiddenFields = [];
26
+ formConfig === null || formConfig === void 0 ? void 0 : formConfig.forEach(cfg => {
27
+ const def = this._dataUnit.getField(cfg.name);
28
+ if (def === null || def === void 0 ? void 0 : def.readOnly) {
29
+ hiddenFields.push(cfg.name);
30
+ }
31
+ });
32
+ return hiddenFields;
33
+ }
34
+ exitForm() {
35
+ if (this._dataUnit.isDirty()) {
36
+ this._dataUnit.cancelEdition({ after: () => this.exit.emit() });
37
+ }
38
+ else {
39
+ this.exit.emit();
40
+ }
41
+ }
42
+ getDisabledButtons() {
43
+ const disabled = [];
44
+ if (!this._dataState.hasPrevious) {
45
+ disabled.push("PREVIOUS");
46
+ }
47
+ if (!this._dataState.hasNext) {
48
+ disabled.push("NEXT");
49
+ }
50
+ return disabled;
51
+ }
52
+ loadInsertionConfig() {
53
+ if (this._dataUnit && this._configLoaded) {
54
+ this._insertionFormConfig = this._editionFormConfig.filter(fieldCfg => {
55
+ const def = this._dataUnit.getField(fieldCfg.name);
56
+ if (def === null || def === void 0 ? void 0 : def.readOnly) {
57
+ return false;
58
+ }
59
+ return true;
60
+ });
61
+ }
62
+ }
63
+ /**
64
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
65
+ * através de um pequeno modulo na estrutura da aplicação:
66
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
67
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts"
68
+ */
69
+ getMessage(key) {
70
+ return this._application.messagesBuilder.getMessage(key, this.getMessageParams());
71
+ }
72
+ getMessageParams() {
73
+ var _a;
74
+ return ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectedRecords) ? this._dataState.selectedRecords[0] : undefined;
75
+ }
76
+ componentWillLoad() {
77
+ this._application = index$1.ApplicationContext.getContextValue("__SNK__APPLICATION__");
78
+ if (this._application) {
79
+ this._application.loadFormConfig(this.configName).then(cfg => {
80
+ this._configLoaded = true;
81
+ this._editionFormConfig = cfg;
82
+ this.loadInsertionConfig();
83
+ });
84
+ //Forçamos a carga dos acessos pra aproveitar a request inicial.
85
+ this._application.getAllAccess();
86
+ }
87
+ let parent = this._element.parentElement;
88
+ while (parent) {
89
+ if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
90
+ this._snkDataUnit = parent;
91
+ this._dataUnit = this._snkDataUnit.dataUnit;
92
+ this._dataState = this._snkDataUnit.dataState;
93
+ if (this._dataUnit) {
94
+ this.loadInsertionConfig();
95
+ }
96
+ else {
97
+ this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
98
+ this._dataUnit = evt.detail;
99
+ this.loadInsertionConfig();
100
+ });
101
+ }
102
+ this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
103
+ this._dataState = evt.detail;
104
+ });
105
+ break;
106
+ }
107
+ parent = parent.parentElement;
108
+ }
109
+ }
110
+ componentWillRender() {
111
+ var _a;
112
+ const taskbarId = ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkForm.finish_edition" : "snkForm.regular";
113
+ const disabledButtons = [];
114
+ if (!this._dataState || !this._dataState.hasPrevious) {
115
+ disabledButtons.push("PREVIOUS");
116
+ }
117
+ if (!this._dataState || !this._dataState.hasNext) {
118
+ disabledButtons.push("NEXT");
119
+ }
120
+ this._taskbarProcessor.process(taskbarId, this.taskbarManager, this._dataState, disabledButtons);
121
+ }
122
+ render() {
123
+ var _a;
124
+ if (!this._configLoaded || !this._dataUnit || !this._dataState) {
125
+ return undefined;
126
+ }
127
+ return (index.h("section", { class: "snk-form" }, index.h("div", { class: "snk-form__header snk-form__header--fixed ez-row" }, index.h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6", key: "formHeader" }, index.h("ez-button", { title: this.getMessage("snkForm.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small", onClick: () => this.exitForm() }), index.h("h1", { class: "ez-title ez-title--primary ez-title--xlarge ez-align--middle" }, this.getMessage("snkForm.title"))), index.h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right" }, index.h("snk-taskbar", { key: "formTaskbar", buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.actionsList, primaryButton: ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", dataUnit: this._dataUnit }))), index.h("section", null, index.h("div", { class: "ez-row" }, index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, dataUnit: this._dataUnit, config: this.getFormConfig(), recordsValidator: this.recordsValidator }))))));
128
+ }
129
+ get _element() { return index.getElement(this); }
130
+ };
131
+ SnkForm.style = snkFormCss;
132
+
133
+ exports.snk_form = SnkForm;
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-b0b676c5.js');
6
+ const index$1 = require('./index-e90ae303.js');
7
+ const taskbarElements = require('./taskbar-elements-283c737e.js');
8
+ const taskbarProcessor = require('./taskbar-processor-6bd0d35c.js');
9
+
10
+ const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--small)}";
11
+
12
+ const SnkGrid = class {
13
+ constructor(hostRef) {
14
+ index.registerInstance(this, hostRef);
15
+ this.actionClick = index.createEvent(this, "actionClick", 7);
16
+ this.gridDoubleClick = index.createEvent(this, "gridDoubleClick", 7);
17
+ this._topTaskbarProcessor = new taskbarProcessor.TaskbarProcessor({
18
+ "snkGridTopTaskbar": ["FORM_MODE", "CONFIG_GRID", "INSERT"]
19
+ });
20
+ this._headerTaskbarProcessor = new taskbarProcessor.TaskbarProcessor({
21
+ "snkGridHeaderTaskbar.unselected": ["REFRESH"],
22
+ "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
23
+ });
24
+ }
25
+ actionClickHandler(evt) {
26
+ if (evt.detail === taskbarElements.TaskbarElement.CONFIG_GRID && this._grid) {
27
+ this._grid.openGridConfig();
28
+ }
29
+ }
30
+ saveConfig(config) {
31
+ const snkApplication = index$1.ApplicationContext.getContextValue("__SNK__APPLICATION__");
32
+ if (snkApplication) {
33
+ snkApplication.saveGridConfig(config);
34
+ }
35
+ }
36
+ componentWillLoad() {
37
+ const snkApplication = index$1.ApplicationContext.getContextValue("__SNK__APPLICATION__");
38
+ if (snkApplication) {
39
+ snkApplication.loadGridConfig(this.configName).then(cfg => {
40
+ this._gridConfig = cfg;
41
+ this._configLoaded = true;
42
+ });
43
+ //Forçamos a carga dos acessos pra aproveitar a request inicial.
44
+ snkApplication.getAllAccess();
45
+ }
46
+ let parent = this._element.parentElement;
47
+ while (parent) {
48
+ if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
49
+ this._snkDataUnit = parent;
50
+ this._dataUnit = this._snkDataUnit.dataUnit;
51
+ if (!this._dataUnit) {
52
+ this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
53
+ this._dataUnit = evt.detail;
54
+ });
55
+ }
56
+ this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
57
+ this._dataState = evt.detail;
58
+ });
59
+ break;
60
+ }
61
+ parent = parent.parentElement;
62
+ }
63
+ }
64
+ componentWillRender() {
65
+ const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
66
+ this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState);
67
+ this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState);
68
+ }
69
+ render() {
70
+ if (!this._configLoaded || !this._dataUnit) {
71
+ return undefined;
72
+ }
73
+ return (index.h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, index.h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, index.h("snk-filter-bar", { dataUnit: this._dataUnit, class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), index.h("snk-taskbar", { class: "ez-padding-left--medium", onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), index.h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver }, index.h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" }))));
74
+ }
75
+ get _element() { return index.getElement(this); }
76
+ };
77
+ SnkGrid.style = snkGridCss;
78
+
79
+ exports.snk_grid = SnkGrid;
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-1133bc2a.js');
6
- const core = require('@sankhyalabs/core');
5
+ const index = require('./index-b0b676c5.js');
6
+ const index$1 = require('./index-e90ae303.js');
7
7
 
8
8
  const snkPesquisaCss = ".sc-snk-pesquisa-h{--snk-pesquisa--font-size:var(--text--medium, 14px);--snk-pesquisa--font-family:var(--font-pattern, Arial);--snk-pesquisa--font-weight:var(--text-weight--medium, 400);--snk-pesquisa__records--color:var(--text--primary, #626e82);--snk-pesquisa__records--padding-vertical:var(--space--medium, 12px);--snk-pesquisa__content--padding-right:var(--space--small, 6px);--snk-pesquisa__content-scrollbar--background-color-primary:var(--scrollbar--primary, #2B3A54);--snk-pesquisa__content-scrollbar--background-color-secondary:var(--scrollbar--secondary, #E5EAF0);--snk-pesquisa__content-scrollbar--border-radius:var(--border--radius-small, 6px);--snk-pesquisa__content-scrollbar--width:var(--space--medium, 12px);--snk-pesquisa__btn--color:var(--title--primary, #2B3A54);--snk-pesquisa__btn-disabled--color:var(--text--disable, #AFB6C0);--snk-pesquisa__btn-hover--color:var(--color--primary, #4e4e4e);max-height:100%;height:100%;display:flex;flex-direction:column;overflow-y:auto}.snk-pesquisa.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%}.snk-pesquisa__input.sc-snk-pesquisa{display:flex;width:100%;box-sizing:border-box;padding-top:4px;padding-right:4px}.snk-pesquisa__input.sc-snk-pesquisa ez-icon.sc-snk-pesquisa{--ez-icon--color:inherit;font-weight:var(--text-weight--large, 600)}.snk-pesquisa__content.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-pesquisa__content-scrollbar--background-color-primary) var(--snk-pesquisa__content-scrollbar--background-color-secondary);padding-right:var(--snk-pesquisa__content--padding-right)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-track{background-color:var(--snk-pesquisa__content-scrollbar--background-color-secondary);border-radius:var(--snk-pesquisa__content-scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb{background-color:var(--snk-pesquisa__content-scrollbar--background-color-primary);border-radius:var(--snk-pesquisa__content-scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar{background-color:var(--snk-pesquisa__content-scrollbar--background-color-secondary);width:var(--snk-pesquisa__content-scrollbar--width);max-width:var(--snk-pesquisa__content-scrollbar--width);min-width:var(--snk-pesquisa__content-scrollbar--width)}.snk-pesquisa__records.sc-snk-pesquisa{font-family:var(--snk-pesquisa--font-family);font-weight:var(--snk-pesquisa--font-weight);font-size:var(--snk-pesquisa--font-size);color:var(--snk-pesquisa__records--color);padding-bottom:var(--snk-pesquisa__records--padding-vertical);padding-top:var(--snk-pesquisa__records--padding-vertical)}.snk-pesquisa__btn.sc-snk-pesquisa{outline:none;border:none;background:none;cursor:pointer;color:var(--snk-pesquisa__btn--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled:hover{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:hover{color:var(--snk-pesquisa__btn-hover--color)}";
9
9
 
@@ -59,7 +59,7 @@ const SnkPesquisa = class {
59
59
  .then((resp) => {
60
60
  this._startLoading = false;
61
61
  if (resp) {
62
- resp = core.ObjectUtils.stringToObject(resp.json.$);
62
+ resp = index$1.ObjectUtils.stringToObject(resp.json.$);
63
63
  let descriptionField = resp.descriptionField;
64
64
  let pkField = resp.pkField;
65
65
  if (descriptionField && pkField) {
@@ -87,7 +87,7 @@ const SnkPesquisa = class {
87
87
  }
88
88
  filterFieldsMetadata(resp, item) {
89
89
  let fieldsMetadata = resp.fieldsMetadata.filter((field) => {
90
- let accept = !core.StringUtils.isEmpty(item[field.fieldName]) &&
90
+ let accept = !index$1.StringUtils.isEmpty(item[field.fieldName]) &&
91
91
  field.visible !== false &&
92
92
  field.type !== 'B' &&
93
93
  resp.pkField !== field.fieldName &&
@@ -125,7 +125,7 @@ const SnkPesquisa = class {
125
125
  return index;
126
126
  }
127
127
  equals(obj1, obj2) {
128
- return core.ObjectUtils.objectToString(obj1) === core.ObjectUtils.objectToString(obj2);
128
+ return index$1.ObjectUtils.objectToString(obj1) === index$1.ObjectUtils.objectToString(obj2);
129
129
  }
130
130
  find(arr, checkerFn) {
131
131
  if (arr) {
@@ -0,0 +1,160 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-b0b676c5.js');
6
+ const index$1 = require('./index-e90ae303.js');
7
+ const taskbarElements = require('./taskbar-elements-283c737e.js');
8
+
9
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
10
+
11
+ const SnkTaskbar = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ this.actionClick = index.createEvent(this, "actionClick", 7);
15
+ this._titleKeyByElement = {
16
+ [taskbarElements.TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
17
+ [taskbarElements.TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
18
+ [taskbarElements.TaskbarElement.NEXT]: "snkTaskbar.titleNext",
19
+ [taskbarElements.TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
20
+ [taskbarElements.TaskbarElement.CLONE]: "snkTaskbar.titleClone",
21
+ [taskbarElements.TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
22
+ [taskbarElements.TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
23
+ [taskbarElements.TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
24
+ [taskbarElements.TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
25
+ [taskbarElements.TaskbarElement.SAVE]: "snkTaskbar.titleSave",
26
+ [taskbarElements.TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
27
+ [taskbarElements.TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
28
+ [taskbarElements.TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
29
+ };
30
+ }
31
+ observeButtons() {
32
+ this._definitions = undefined;
33
+ }
34
+ // Internal methods
35
+ elementsFromString(strButtons) {
36
+ const elements = [];
37
+ if (strButtons) {
38
+ strButtons.split(",").forEach(buttonName => {
39
+ buttonName = buttonName.trim();
40
+ if (taskbarElements.VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
41
+ elements.push(buttonName.trim());
42
+ }
43
+ });
44
+ }
45
+ return elements;
46
+ }
47
+ isAllowed(buttonName) {
48
+ if (taskbarElements.AuthorizationElements[buttonName]) {
49
+ return this._permissions ? this._permissions.isSup || this._permissions[buttonName] : false;
50
+ }
51
+ return true;
52
+ }
53
+ /**
54
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
55
+ * através de um pequeno modulo na estrutura da aplicação:
56
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
57
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
58
+ */
59
+ getTitle(element) {
60
+ let key;
61
+ if (this.isAllowed(element)) {
62
+ key = this._titleKeyByElement[element];
63
+ }
64
+ else {
65
+ key = "snkTaskbar.forbidden";
66
+ }
67
+ return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
68
+ }
69
+ elementClick(elem) {
70
+ if (this.dataUnit) {
71
+ switch (elem) {
72
+ case taskbarElements.TaskbarElement.PREVIOUS:
73
+ this.dataUnit.previousRecord();
74
+ break;
75
+ case taskbarElements.TaskbarElement.NEXT:
76
+ this.dataUnit.nextRecord();
77
+ break;
78
+ case taskbarElements.TaskbarElement.REFRESH:
79
+ this.dataUnit.loadData();
80
+ break;
81
+ case taskbarElements.TaskbarElement.CLONE:
82
+ this.dataUnit.copySelected();
83
+ break;
84
+ case taskbarElements.TaskbarElement.REMOVE:
85
+ this.dataUnit.removeSelectedRecords();
86
+ break;
87
+ case taskbarElements.TaskbarElement.INSERT:
88
+ this.dataUnit.addRecord();
89
+ break;
90
+ case taskbarElements.TaskbarElement.CANCEL:
91
+ this.dataUnit.cancelEdition();
92
+ break;
93
+ case taskbarElements.TaskbarElement.SAVE:
94
+ this.dataUnit.saveData();
95
+ break;
96
+ }
97
+ }
98
+ this.actionClick.emit(elem);
99
+ }
100
+ isEnabled(elem) {
101
+ if (!this.isAllowed(elem)) {
102
+ return false;
103
+ }
104
+ return !(this.disabledButtons && this.disabledButtons.includes(elem));
105
+ }
106
+ getElement(index, def) {
107
+ let className = def === this.primaryButton ? "ez-button--primary " : "";
108
+ if (index > 1) {
109
+ className += "ez-padding-left--medium";
110
+ }
111
+ if (taskbarElements.TaskbarElement[def.toString()]) {
112
+ return taskbarElements.buildElem(def, className, elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList);
113
+ }
114
+ else {
115
+ return taskbarElements.buildCustomButton(def, className, elem => this.elementClick(elem), elem => this.isEnabled(elem));
116
+ }
117
+ }
118
+ // Lifecycle
119
+ componentWillLoad() {
120
+ this._application = index$1.ApplicationContext.getContextValue("__SNK__APPLICATION__");
121
+ if (this._application) {
122
+ this._application.getAllAccess().then(access => this._permissions = access);
123
+ }
124
+ else {
125
+ this._permissions = {};
126
+ }
127
+ }
128
+ componentWillRender() {
129
+ if (this._definitions == undefined && this._permissions) {
130
+ this._definitions = this.elementsFromString(this.buttons);
131
+ }
132
+ }
133
+ render() {
134
+ if (this._definitions === undefined) {
135
+ return undefined;
136
+ }
137
+ let index$1 = 0;
138
+ return (index.h(index.Host, null, this._definitions.map((elem) => {
139
+ if (elem === taskbarElements.TaskbarElement.DIVIDER) {
140
+ index$1 = 0;
141
+ }
142
+ else {
143
+ index$1++;
144
+ }
145
+ if (taskbarElements.TaskbarElement[elem]) {
146
+ return this.getElement(index$1, taskbarElements.TaskbarElement[elem]);
147
+ }
148
+ if (this.customButtons.has(elem)) {
149
+ return this.getElement(index$1, this.customButtons.get(elem));
150
+ }
151
+ return index.h("slot", { name: elem });
152
+ })));
153
+ }
154
+ static get watchers() { return {
155
+ "buttons": ["observeButtons"]
156
+ }; }
157
+ };
158
+ SnkTaskbar.style = snkTaskbarCss;
159
+
160
+ exports.snk_taskbar = SnkTaskbar;
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ const index = require('./index-b0b676c5.js');
4
+
5
+ exports.TaskbarElement = void 0;
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["CONFIG_GRID"] = "CONFIG_GRID";
19
+ TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
20
+ TaskbarElement["DIVIDER"] = "DIVIDER";
21
+ })(exports.TaskbarElement || (exports.TaskbarElement = {}));
22
+ exports.AuthorizationElements = void 0;
23
+ (function (AuthorizationElements) {
24
+ AuthorizationElements["UPDATE"] = "UPDATE";
25
+ AuthorizationElements["CLONE"] = "CLONE";
26
+ AuthorizationElements["REMOVE"] = "REMOVE";
27
+ AuthorizationElements["INSERT"] = "INSERT";
28
+ AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
29
+ })(exports.AuthorizationElements || (exports.AuthorizationElements = {}));
30
+ exports.VisibleWhenForbidden = void 0;
31
+ (function (VisibleWhenForbidden) {
32
+ VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
33
+ })(exports.VisibleWhenForbidden || (exports.VisibleWhenForbidden = {}));
34
+ const buildCustomButton = (def, className, action, isEnabled) => {
35
+ const { hint, text, iconName } = def;
36
+ if (iconName) {
37
+ if (text) {
38
+ return iconTextButton(iconName, def.name, className, hint, text, action, isEnabled);
39
+ }
40
+ else {
41
+ return iconButton(iconName, def.name, className, hint, action, isEnabled);
42
+ }
43
+ }
44
+ else {
45
+ return textButton(def.name, className, text, hint, action, isEnabled);
46
+ }
47
+ };
48
+ const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
49
+ const title = getTitle(element);
50
+ switch (element) {
51
+ case exports.TaskbarElement.PREVIOUS:
52
+ return iconButton("chevron-left", element, className, title, action, isEnabled);
53
+ case exports.TaskbarElement.NEXT:
54
+ return iconButton("chevron-right", element, className, title, action, isEnabled);
55
+ case exports.TaskbarElement.REFRESH:
56
+ return iconButton("sync", element, className, title, action, isEnabled);
57
+ case exports.TaskbarElement.UPDATE:
58
+ return iconButton("edit", element, className, title, action, isEnabled);
59
+ case exports.TaskbarElement.CLONE:
60
+ return iconButton("copy", element, className, title, action, isEnabled);
61
+ case exports.TaskbarElement.REMOVE:
62
+ return iconButton("delete", element, className, title, action, isEnabled);
63
+ case exports.TaskbarElement.INSERT:
64
+ return iconTextButton("plus", element, className, title, title, action, isEnabled);
65
+ case exports.TaskbarElement.CANCEL:
66
+ return textButton(element, className, title, title, action, isEnabled);
67
+ case exports.TaskbarElement.SAVE:
68
+ return iconTextButton("save", element, className, title, title, action, isEnabled);
69
+ case exports.TaskbarElement.GRID_MODE:
70
+ return iconButton("table", element, className, title, action, isEnabled);
71
+ case exports.TaskbarElement.FORM_MODE:
72
+ return iconButton("list", element, className, title, action, isEnabled);
73
+ case exports.TaskbarElement.CONFIG_GRID:
74
+ return iconButton("settings-inverted", element, className, title, action, isEnabled);
75
+ case exports.TaskbarElement.MORE_OPTIONS:
76
+ return actions && actions.length > 0 ? index.h("ez-actions-button", { title: title, size: "small", class: className, enabled: isEnabled(element), onEzAction: (evt) => action(evt.detail.value), actions: actions }) : undefined;
77
+ case exports.TaskbarElement.DIVIDER:
78
+ return index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium" });
79
+ }
80
+ };
81
+ function textButton(name, className, text, title, action, isEnabled) {
82
+ return index.h("ez-button", { title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) });
83
+ }
84
+ function iconButton(iconName, name, className, title, action, isEnabled) {
85
+ return index.h("ez-button", { name: iconName, title: title, mode: "icon", size: "small", class: className, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
86
+ }
87
+ function iconTextButton(iconName, name, className, text, title, action, isEnabled) {
88
+ return index.h("ez-button", { name: iconName, title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) },
89
+ index.h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
90
+ }
91
+
92
+ exports.buildCustomButton = buildCustomButton;
93
+ exports.buildElem = buildElem;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ class TaskbarProcessor {
4
+ constructor(defaultButtons) {
5
+ this._defaultButtons = defaultButtons;
6
+ }
7
+ process(taskbarId, taskbarManager, dataState, disabledButtons = []) {
8
+ var _a;
9
+ this.customButtons = new Map();
10
+ this.buttons = "";
11
+ this.disabledButtons = [];
12
+ (_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
13
+ let buttonName;
14
+ if (typeof btnDef === "string") {
15
+ buttonName = btnDef;
16
+ }
17
+ else {
18
+ const customBtn = btnDef;
19
+ this.customButtons.set(customBtn.name, customBtn);
20
+ buttonName = customBtn.name;
21
+ }
22
+ if (!this.isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabledButtons)) {
23
+ this.disabledButtons.push(buttonName);
24
+ }
25
+ if (this.buttons.length > 0) {
26
+ this.buttons += ",";
27
+ }
28
+ this.buttons += buttonName;
29
+ });
30
+ }
31
+ getButtonsArray(taskbarId, taskbarManager, dataState) {
32
+ const defaults = this._defaultButtons[taskbarId];
33
+ if (taskbarManager) {
34
+ return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
35
+ }
36
+ return defaults;
37
+ }
38
+ isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
39
+ const originalValue = disabled.includes(buttonName) ? false : true;
40
+ if (taskbarManager && taskbarManager.isEnabled) {
41
+ return taskbarManager.isEnabled(taskbarId, dataState, buttonName, originalValue);
42
+ }
43
+ return originalValue;
44
+ }
45
+ }
46
+
47
+ exports.TaskbarProcessor = TaskbarProcessor;
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-1133bc2a.js');
6
- const core = require('@sankhyalabs/core');
5
+ const index = require('./index-b0b676c5.js');
6
+ const index$1 = require('./index-e90ae303.js');
7
7
 
8
8
  const testePesquisaCss = ":host{display:block}";
9
9
 
@@ -12,7 +12,7 @@ const TestePesquisa = class {
12
12
  index.registerInstance(this, hostRef);
13
13
  }
14
14
  componentWillLoad() {
15
- this.dataUnit = new core.DataUnit("testes_com_formulario");
15
+ this.dataUnit = new index$1.DataUnit("testes_com_formulario");
16
16
  this.dataUnit.metadata = {
17
17
  name: "dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",
18
18
  label: "Parceiro",
@@ -20,8 +20,8 @@ const TestePesquisa = class {
20
20
  {
21
21
  name: "CODPARC",
22
22
  label: "Parceiro",
23
- dataType: core.DataType.NUMBER,
24
- userInterface: core.UserInterface.SEARCH,
23
+ dataType: index$1.DataType.NUMBER,
24
+ userInterface: index$1.UserInterface.SEARCH,
25
25
  required: true,
26
26
  properties: { ENTITYNAME: "Parceiro" }
27
27
  }
@@ -1,13 +1,30 @@
1
1
  {
2
2
  "entries": [
3
+ "./components/snk-filter-bar/filter-item/snk-filter-item.js",
3
4
  "./components/snk-application/snk-application.js",
5
+ "./components/snk-data-unit/snk-data-unit.js",
6
+ "./components/snk-taskbar/snk-taskbar.js",
7
+ "./components/snk-crud/snk-crud.js",
8
+ "./components/snk-filter-bar/filter-list/snk-filter-list.js",
9
+ "./components/snk-filter-bar/filter-modal/snk-filter-modal.js",
10
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js",
11
+ "./components/snk-filter-bar/snk-filter-bar.js",
12
+ "./components/snk-filter-bar/filter-item/snk-filter-detail.js",
13
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js",
14
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js",
15
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-number.js",
16
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-period.js",
17
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-search.js",
18
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-text.js",
19
+ "./components/snk-form/snk-form.js",
20
+ "./components/snk-grid/snk-grid.js",
4
21
  "./components/snk-pesquisa/snk-pesquisa.js",
5
22
  "./components/teste-pesquisa/teste-pesquisa.js"
6
23
  ],
7
24
  "compiler": {
8
25
  "name": "@stencil/core",
9
- "version": "2.16.1",
10
- "typescriptVersion": "4.5.4"
26
+ "version": "2.18.1",
27
+ "typescriptVersion": "4.7.4"
11
28
  },
12
29
  "collections": [],
13
30
  "bundles": [
@@ -1,4 +1,4 @@
1
- import { WarningException, WaitingChangeException, ErrorException } from "@sankhyalabs/core";
1
+ import { WarningException, WaitingChangeException, ErrorException, ObjectUtils } from "@sankhyalabs/core";
2
2
  export class SnkErrorHandler {
3
3
  constructor(app) {
4
4
  this._app = app;
@@ -25,7 +25,14 @@ export class SnkErrorHandler {
25
25
  errorHandler(evt) {
26
26
  this.processException(evt.error);
27
27
  }
28
+ buildErrorCodeHTML(exception) {
29
+ const onclick = 'try{window.workspace.openHelp(\'_tbcode:' + exception.errorCode + '\')} catch(e){alert(\'Não é possível abrir a ajuda fora do workspace Sankhya\');}';
30
+ return '<br><a href="#" onclick="' + onclick + '">Código: ' + exception.errorCode + '</a>';
31
+ }
28
32
  processException(exception) {
33
+ if (exception.errorCode != "") {
34
+ exception.message += this.buildErrorCodeHTML(exception);
35
+ }
29
36
  if (exception instanceof WaitingChangeException) {
30
37
  this._app.alert(exception.title, exception.message);
31
38
  }
@@ -43,7 +50,7 @@ export class SnkErrorHandler {
43
50
  }
44
51
  else {
45
52
  const title = (exception === null || exception === void 0 ? void 0 : exception.title) || "Erro detectado";
46
- const message = (typeof exception === "string") ? exception : exception.message || `Erro interno "${exception}"`;
53
+ const message = (typeof exception === "string") ? exception : exception.message || `Erro interno "${ObjectUtils.objectToString(exception)}"`;
47
54
  this._app.error(title, message);
48
55
  }
49
56
  }