@sankhyalabs/sankhyablocks 5.4.3 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/dist/cjs/{SnkMessageBuilder-115e8a80.js → SnkMessageBuilder-26da04f7.js} +35 -1
  2. package/dist/cjs/{constants-ae0ed870.js → constants-3787fa32.js} +1 -0
  3. package/dist/cjs/dataunit-fetcher-8f5ade55.js +319 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  6. package/dist/cjs/snk-application.cjs.entry.js +3 -315
  7. package/dist/cjs/snk-attach.cjs.entry.js +449 -0
  8. package/dist/cjs/snk-config-options.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  10. package/dist/cjs/snk-crud.cjs.entry.js +22 -13
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  12. package/dist/cjs/{snk-data-unit-aa613f3b.js → snk-data-unit-c43df27b.js} +4 -1
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -5
  15. package/dist/cjs/snk-field-config.cjs.entry.js +1 -1
  16. package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
  18. package/dist/cjs/snk-grid.cjs.entry.js +11 -4
  19. package/dist/cjs/{snk-guides-viewer-7db960c2.js → snk-guides-viewer-e6a65393.js} +2 -2
  20. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -4
  21. package/dist/cjs/snk-select-box.cjs.entry.js +1 -1
  22. package/dist/cjs/{snk-simple-crud.cjs.entry.js → snk-simple-bar_2.cjs.entry.js} +47 -5
  23. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  24. package/dist/cjs/snk-taskbar.cjs.entry.js +5 -4
  25. package/dist/cjs/taskbar-elements-80285601.js +313 -0
  26. package/dist/collection/collection-manifest.json +2 -1
  27. package/dist/collection/components/snk-attach/interfaces/index.js +1 -0
  28. package/dist/collection/components/snk-attach/snk-attach.css +8 -0
  29. package/dist/collection/components/snk-attach/snk-attach.js +202 -0
  30. package/dist/collection/components/snk-attach/structure/crud-config-builder.js +37 -0
  31. package/dist/collection/components/snk-attach/structure/data-unit-builder.js +106 -0
  32. package/dist/collection/components/snk-attach/structure/index.js +3 -0
  33. package/dist/collection/components/snk-attach/structure/taskbar-builder.js +47 -0
  34. package/dist/collection/components/snk-configurator/snk-configurator.js +3 -3
  35. package/dist/collection/components/snk-crud/snk-crud.js +22 -11
  36. package/dist/collection/components/snk-data-unit/snk-data-unit.js +21 -0
  37. package/dist/collection/components/snk-grid/snk-grid.js +11 -3
  38. package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +37 -2
  39. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +65 -2
  40. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +3 -0
  41. package/dist/collection/components/snk-taskbar/snk-taskbar.js +4 -2
  42. package/dist/collection/lib/http/data-fetcher/fetchers/attach-fetcher.js +136 -0
  43. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js +1 -0
  44. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js +1 -0
  45. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/ISave.js +6 -0
  46. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/index.js +3 -0
  47. package/dist/collection/lib/message/SnkMessageBuilder.js +5 -1
  48. package/dist/collection/lib/message/resources/snk-attach.msg.js +27 -0
  49. package/dist/collection/lib/message/resources/snk-simple-bar.msg.js +3 -0
  50. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -0
  51. package/dist/collection/lib/utils/constants.js +1 -0
  52. package/dist/components/SnkMessageBuilder.js +35 -1
  53. package/dist/components/constants.js +1 -0
  54. package/dist/components/dataunit-fetcher.js +317 -0
  55. package/dist/components/index.d.ts +1 -0
  56. package/dist/components/index.js +1 -0
  57. package/dist/components/snk-application2.js +2 -314
  58. package/dist/components/snk-attach.d.ts +11 -0
  59. package/dist/components/snk-attach.js +6 -0
  60. package/dist/components/snk-attach2.js +498 -0
  61. package/dist/components/snk-crud.js +77 -48
  62. package/dist/components/snk-data-unit2.js +4 -0
  63. package/dist/components/snk-grid2.js +11 -4
  64. package/dist/components/snk-simple-bar.js +1 -41
  65. package/dist/components/snk-simple-bar2.js +59 -0
  66. package/dist/components/snk-simple-crud.js +1 -328
  67. package/dist/{esm/snk-simple-crud.entry.js → components/snk-simple-crud2.js} +73 -18
  68. package/dist/components/snk-taskbar2.js +7 -2
  69. package/dist/esm/{SnkMessageBuilder-a15d22f8.js → SnkMessageBuilder-7a9392e6.js} +35 -1
  70. package/dist/esm/{constants-15617e7d.js → constants-e916ccc3.js} +1 -0
  71. package/dist/esm/dataunit-fetcher-d32c6a47.js +317 -0
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/esm/sankhyablocks.js +1 -1
  74. package/dist/esm/snk-application.entry.js +3 -315
  75. package/dist/esm/snk-attach.entry.js +445 -0
  76. package/dist/esm/snk-config-options.entry.js +1 -1
  77. package/dist/esm/snk-configurator.entry.js +1 -1
  78. package/dist/esm/snk-crud.entry.js +23 -14
  79. package/dist/esm/snk-data-exporter.entry.js +3 -3
  80. package/dist/esm/{snk-data-unit-5ed93c0e.js → snk-data-unit-f9e4c694.js} +4 -1
  81. package/dist/esm/snk-data-unit.entry.js +2 -2
  82. package/dist/esm/snk-detail-view.entry.js +4 -5
  83. package/dist/esm/snk-field-config.entry.js +1 -1
  84. package/dist/esm/snk-form-config.entry.js +1 -1
  85. package/dist/esm/snk-grid-config.entry.js +1 -1
  86. package/dist/esm/snk-grid.entry.js +11 -4
  87. package/dist/esm/{snk-guides-viewer-1e7c21f6.js → snk-guides-viewer-62a9f74d.js} +2 -2
  88. package/dist/esm/snk-guides-viewer.entry.js +3 -4
  89. package/dist/esm/snk-select-box.entry.js +1 -1
  90. package/dist/esm/snk-simple-bar_2.entry.js +324 -0
  91. package/dist/esm/snk-tab-config.entry.js +1 -1
  92. package/dist/esm/snk-taskbar.entry.js +5 -4
  93. package/dist/esm/taskbar-elements-055ba1ad.js +309 -0
  94. package/dist/sankhyablocks/p-17375123.js +1 -0
  95. package/dist/sankhyablocks/{p-b80cf644.entry.js → p-1c0ee011.entry.js} +1 -1
  96. package/dist/sankhyablocks/p-4512cc6c.entry.js +1 -0
  97. package/dist/sankhyablocks/p-5cbbe1f7.entry.js +1 -0
  98. package/dist/sankhyablocks/p-63d01871.entry.js +1 -0
  99. package/dist/sankhyablocks/{p-0a1e7f75.entry.js → p-6ac29569.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-f4d36823.entry.js → p-6f0b3cc0.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-741b00ef.entry.js +1 -0
  102. package/dist/sankhyablocks/{p-6516f35a.entry.js → p-86f75e7a.entry.js} +1 -1
  103. package/dist/sankhyablocks/{p-32599159.entry.js → p-8b02b276.entry.js} +1 -1
  104. package/dist/sankhyablocks/p-92a0fca4.js +1 -0
  105. package/dist/sankhyablocks/p-999d1953.entry.js +1 -0
  106. package/dist/sankhyablocks/{p-9bfa3cfb.entry.js → p-a412992c.entry.js} +1 -1
  107. package/dist/sankhyablocks/{p-703dddb9.js → p-aeffd219.js} +1 -1
  108. package/dist/sankhyablocks/p-b2523981.entry.js +11 -0
  109. package/dist/sankhyablocks/p-c3efd4eb.entry.js +1 -0
  110. package/dist/sankhyablocks/{p-3169584f.entry.js → p-e0b4aec3.entry.js} +1 -1
  111. package/dist/sankhyablocks/p-ebe876f5.entry.js +1 -0
  112. package/dist/sankhyablocks/p-ed438690.js +1 -0
  113. package/dist/sankhyablocks/p-f2223502.js +1 -0
  114. package/dist/sankhyablocks/p-f3d0c744.entry.js +1 -0
  115. package/dist/sankhyablocks/p-f821768b.js +74 -0
  116. package/dist/sankhyablocks/{p-f29caa0a.entry.js → p-f8c66aa3.entry.js} +1 -1
  117. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  118. package/dist/types/components/snk-attach/interfaces/index.d.ts +10 -0
  119. package/dist/types/components/snk-attach/snk-attach.d.ts +45 -0
  120. package/dist/types/components/snk-attach/structure/crud-config-builder.d.ts +7 -0
  121. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +16 -0
  122. package/dist/types/components/snk-attach/structure/index.d.ts +3 -0
  123. package/dist/types/components/snk-attach/structure/taskbar-builder.d.ts +8 -0
  124. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +5 -0
  125. package/dist/types/components/snk-simple-bar/snk-simple-bar.d.ts +14 -0
  126. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +2 -1
  127. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
  128. package/dist/types/components.d.ts +67 -0
  129. package/dist/types/global.d.ts +9 -0
  130. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +8 -2
  131. package/dist/types/lib/http/data-fetcher/fetchers/attach-fetcher.d.ts +14 -0
  132. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.d.ts +9 -0
  133. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.d.ts +13 -0
  134. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/ISave.d.ts +26 -0
  135. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/index.d.ts +3 -0
  136. package/dist/types/lib/message/resources/snk-attach.msg.d.ts +2 -0
  137. package/dist/types/lib/message/resources/snk-simple-bar.msg.d.ts +1 -0
  138. package/dist/types/lib/utils/constants.d.ts +2 -1
  139. package/package.json +1 -1
  140. package/react/components.d.ts +1 -0
  141. package/react/components.js +1 -0
  142. package/react/components.js.map +1 -1
  143. package/dist/cjs/index-fc7ca86c.js +0 -200
  144. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -30
  145. package/dist/cjs/taskbar-elements-5e87cf44.js +0 -115
  146. package/dist/esm/index-e467ade5.js +0 -198
  147. package/dist/esm/snk-simple-bar.entry.js +0 -26
  148. package/dist/esm/taskbar-elements-10d80c79.js +0 -112
  149. package/dist/sankhyablocks/p-1393dc00.entry.js +0 -1
  150. package/dist/sankhyablocks/p-1c17eecf.entry.js +0 -1
  151. package/dist/sankhyablocks/p-2ecf14ff.js +0 -1
  152. package/dist/sankhyablocks/p-340d6fb0.entry.js +0 -84
  153. package/dist/sankhyablocks/p-74724fa7.js +0 -1
  154. package/dist/sankhyablocks/p-79f01b63.entry.js +0 -1
  155. package/dist/sankhyablocks/p-81e85890.entry.js +0 -1
  156. package/dist/sankhyablocks/p-94e6fc90.entry.js +0 -1
  157. package/dist/sankhyablocks/p-98f7f796.js +0 -1
  158. package/dist/sankhyablocks/p-b3e71248.entry.js +0 -1
  159. package/dist/sankhyablocks/p-bc281de0.js +0 -1
  160. package/dist/sankhyablocks/p-d61759a5.entry.js +0 -1
  161. package/dist/sankhyablocks/p-d65809d5.entry.js +0 -1
  162. package/dist/sankhyablocks/p-f587a454.js +0 -1
  163. package/dist/types/components/snk-application/snk-application.d.ts +0 -259
  164. package/dist/types/components/snk-crud/snk-crud.d.ts +0 -73
  165. package/dist/types/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.d.ts +0 -40
  166. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +0 -27
  167. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +0 -23
  168. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +0 -23
  169. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +0 -29
  170. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +0 -25
  171. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +0 -19
  172. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +0 -38
  173. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +0 -74
  174. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +0 -53
  175. package/dist/types/components/snk-grid/snk-grid.d.ts +0 -95
  176. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +0 -59
@@ -1,28 +1,31 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
2
+ import { ElementIDUtils, ApplicationContext, VersionUtils } from '@sankhyalabs/core';
3
3
  import { T as TaskbarElement, d as defineCustomElement$2 } from './snk-taskbar2.js';
4
4
  import './DataFetcher.js';
5
5
  import './pesquisa-fetcher.js';
6
6
  import { P as PresentationMode } from './index2.js';
7
7
  import { V as VIEW_MODE } from './constants.js';
8
- import { d as defineCustomElement$m } from './snk-config-options2.js';
9
- import { d as defineCustomElement$l } from './snk-configurator2.js';
10
- import { d as defineCustomElement$k } from './snk-data-exporter2.js';
11
- import { d as defineCustomElement$j } from './snk-data-unit2.js';
12
- import { d as defineCustomElement$5, a as defineCustomElement$i } from './snk-detail-view2.js';
13
- import { d as defineCustomElement$h } from './snk-exporter-email-sender2.js';
14
- import { d as defineCustomElement$g } from './snk-field-config2.js';
15
- import { d as defineCustomElement$f } from './snk-filter-bar2.js';
16
- import { d as defineCustomElement$e } from './snk-filter-detail2.js';
17
- import { d as defineCustomElement$d } from './snk-filter-item2.js';
18
- import { d as defineCustomElement$c } from './snk-filter-list2.js';
19
- import { d as defineCustomElement$b } from './snk-filter-modal2.js';
20
- import { d as defineCustomElement$a } from './snk-form-config2.js';
21
- import { d as defineCustomElement$9 } from './snk-form-summary2.js';
22
- import { d as defineCustomElement$8 } from './snk-form-view2.js';
23
- import { d as defineCustomElement$7 } from './snk-grid2.js';
24
- import { d as defineCustomElement$6 } from './snk-grid-config2.js';
25
- import { d as defineCustomElement$4 } from './snk-select-box2.js';
8
+ import { d as defineCustomElement$p } from './snk-attach2.js';
9
+ import { d as defineCustomElement$o } from './snk-config-options2.js';
10
+ import { d as defineCustomElement$n } from './snk-configurator2.js';
11
+ import { d as defineCustomElement$m } from './snk-data-exporter2.js';
12
+ import { d as defineCustomElement$l } from './snk-data-unit2.js';
13
+ import { d as defineCustomElement$7, a as defineCustomElement$k } from './snk-detail-view2.js';
14
+ import { d as defineCustomElement$j } from './snk-exporter-email-sender2.js';
15
+ import { d as defineCustomElement$i } from './snk-field-config2.js';
16
+ import { d as defineCustomElement$h } from './snk-filter-bar2.js';
17
+ import { d as defineCustomElement$g } from './snk-filter-detail2.js';
18
+ import { d as defineCustomElement$f } from './snk-filter-item2.js';
19
+ import { d as defineCustomElement$e } from './snk-filter-list2.js';
20
+ import { d as defineCustomElement$d } from './snk-filter-modal2.js';
21
+ import { d as defineCustomElement$c } from './snk-form-config2.js';
22
+ import { d as defineCustomElement$b } from './snk-form-summary2.js';
23
+ import { d as defineCustomElement$a } from './snk-form-view2.js';
24
+ import { d as defineCustomElement$9 } from './snk-grid2.js';
25
+ import { d as defineCustomElement$8 } from './snk-grid-config2.js';
26
+ import { d as defineCustomElement$6 } from './snk-select-box2.js';
27
+ import { d as defineCustomElement$5 } from './snk-simple-bar2.js';
28
+ import { d as defineCustomElement$4 } from './snk-simple-crud2.js';
26
29
  import { d as defineCustomElement$3 } from './snk-tab-config2.js';
27
30
 
28
31
  const snkCrudCss = ".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";
@@ -34,6 +37,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
34
37
  this.actionClick = createEvent(this, "actionClick", 7);
35
38
  this._dataUnit = undefined;
36
39
  this._dataState = undefined;
40
+ this.attachmentRegisterKey = undefined;
37
41
  this._currentViewMode = VIEW_MODE.GRID;
38
42
  this.configName = undefined;
39
43
  this.actionsList = undefined;
@@ -55,15 +59,17 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
55
59
  this.setViewMode(VIEW_MODE.FORM);
56
60
  }
57
61
  async executeAction(act) {
58
- if (act === TaskbarElement.GRID_MODE) {
59
- this.setViewMode(VIEW_MODE.GRID);
60
- }
61
- else if (act === TaskbarElement.FORM_MODE || act === TaskbarElement.UPDATE) {
62
- this.gridToForm(act !== TaskbarElement.UPDATE);
63
- }
64
- else if (act === TaskbarElement.CONFIGURATOR) {
65
- this._snkConfigurator.open();
66
- }
62
+ if (act === TaskbarElement.GRID_MODE)
63
+ return this.setViewMode(VIEW_MODE.GRID);
64
+ if (act === TaskbarElement.FORM_MODE || act === TaskbarElement.UPDATE)
65
+ return this.gridToForm(act !== TaskbarElement.UPDATE);
66
+ if (act === TaskbarElement.CONFIGURATOR)
67
+ return this._snkConfigurator.open();
68
+ if (act === "ATTACH")
69
+ return this.setViewMode(VIEW_MODE.ATTACHMENT);
70
+ }
71
+ handleAttachBack() {
72
+ this.setViewMode(VIEW_MODE.GRID);
67
73
  }
68
74
  setViewMode(viewMode) {
69
75
  this._viewStack.show(viewMode);
@@ -126,8 +132,15 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
126
132
  this.messagesBuilder = this._snkDataUnit.messagesBuilder;
127
133
  }
128
134
  }
135
+ async canRenderAttachment() {
136
+ var _a, _b, _c, _d, _e;
137
+ const isValidVersion = VersionUtils.isRequiredVersion((_a = window.envContext) === null || _a === void 0 ? void 0 : _a.sysVersion, '4.22');
138
+ const recordCriteria = await ((_c = (_b = this._snkDataUnit) === null || _b === void 0 ? void 0 : _b.getSelectedRecordsIDsInfo) === null || _c === void 0 ? void 0 : _c.call(_b));
139
+ this.attachmentRegisterKey = (_d = recordCriteria.find(criteria => !!criteria.value)) === null || _d === void 0 ? void 0 : _d.value;
140
+ return isValidVersion && ((_e = this._dataState) === null || _e === void 0 ? void 0 : _e.selectedRecord) !== undefined;
141
+ }
129
142
  render() {
130
- return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form" }, h("slot", { name: "SnkFormTaskBar" }))), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
143
+ return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form" }, h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, this.canRenderAttachment() && (h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.handleAttachBack.bind(this) }))), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
131
144
  }
132
145
  get _element() { return this; }
133
146
  static get style() { return snkCrudCss; }
@@ -142,6 +155,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
142
155
  "messagesBuilder": [1040],
143
156
  "_dataUnit": [32],
144
157
  "_dataState": [32],
158
+ "attachmentRegisterKey": [32],
145
159
  "_currentViewMode": [32],
146
160
  "goToView": [64]
147
161
  }]);
@@ -149,104 +163,119 @@ function defineCustomElement$1() {
149
163
  if (typeof customElements === "undefined") {
150
164
  return;
151
165
  }
152
- const components = ["snk-crud", "snk-config-options", "snk-configurator", "snk-data-exporter", "snk-data-unit", "snk-detail-view", "snk-exporter-email-sender", "snk-field-config", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-form-config", "snk-form-summary", "snk-form-view", "snk-grid", "snk-grid-config", "snk-guides-viewer", "snk-select-box", "snk-tab-config", "snk-taskbar"];
166
+ const components = ["snk-crud", "snk-attach", "snk-config-options", "snk-configurator", "snk-data-exporter", "snk-data-unit", "snk-detail-view", "snk-exporter-email-sender", "snk-field-config", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-form-config", "snk-form-summary", "snk-form-view", "snk-grid", "snk-grid-config", "snk-guides-viewer", "snk-select-box", "snk-simple-bar", "snk-simple-crud", "snk-tab-config", "snk-taskbar"];
153
167
  components.forEach(tagName => { switch (tagName) {
154
168
  case "snk-crud":
155
169
  if (!customElements.get(tagName)) {
156
170
  customElements.define(tagName, SnkCrud$1);
157
171
  }
158
172
  break;
173
+ case "snk-attach":
174
+ if (!customElements.get(tagName)) {
175
+ defineCustomElement$p();
176
+ }
177
+ break;
159
178
  case "snk-config-options":
160
179
  if (!customElements.get(tagName)) {
161
- defineCustomElement$m();
180
+ defineCustomElement$o();
162
181
  }
163
182
  break;
164
183
  case "snk-configurator":
165
184
  if (!customElements.get(tagName)) {
166
- defineCustomElement$l();
185
+ defineCustomElement$n();
167
186
  }
168
187
  break;
169
188
  case "snk-data-exporter":
170
189
  if (!customElements.get(tagName)) {
171
- defineCustomElement$k();
190
+ defineCustomElement$m();
172
191
  }
173
192
  break;
174
193
  case "snk-data-unit":
175
194
  if (!customElements.get(tagName)) {
176
- defineCustomElement$j();
195
+ defineCustomElement$l();
177
196
  }
178
197
  break;
179
198
  case "snk-detail-view":
180
199
  if (!customElements.get(tagName)) {
181
- defineCustomElement$i();
200
+ defineCustomElement$k();
182
201
  }
183
202
  break;
184
203
  case "snk-exporter-email-sender":
185
204
  if (!customElements.get(tagName)) {
186
- defineCustomElement$h();
205
+ defineCustomElement$j();
187
206
  }
188
207
  break;
189
208
  case "snk-field-config":
190
209
  if (!customElements.get(tagName)) {
191
- defineCustomElement$g();
210
+ defineCustomElement$i();
192
211
  }
193
212
  break;
194
213
  case "snk-filter-bar":
195
214
  if (!customElements.get(tagName)) {
196
- defineCustomElement$f();
215
+ defineCustomElement$h();
197
216
  }
198
217
  break;
199
218
  case "snk-filter-detail":
200
219
  if (!customElements.get(tagName)) {
201
- defineCustomElement$e();
220
+ defineCustomElement$g();
202
221
  }
203
222
  break;
204
223
  case "snk-filter-item":
205
224
  if (!customElements.get(tagName)) {
206
- defineCustomElement$d();
225
+ defineCustomElement$f();
207
226
  }
208
227
  break;
209
228
  case "snk-filter-list":
210
229
  if (!customElements.get(tagName)) {
211
- defineCustomElement$c();
230
+ defineCustomElement$e();
212
231
  }
213
232
  break;
214
233
  case "snk-filter-modal":
215
234
  if (!customElements.get(tagName)) {
216
- defineCustomElement$b();
235
+ defineCustomElement$d();
217
236
  }
218
237
  break;
219
238
  case "snk-form-config":
220
239
  if (!customElements.get(tagName)) {
221
- defineCustomElement$a();
240
+ defineCustomElement$c();
222
241
  }
223
242
  break;
224
243
  case "snk-form-summary":
225
244
  if (!customElements.get(tagName)) {
226
- defineCustomElement$9();
245
+ defineCustomElement$b();
227
246
  }
228
247
  break;
229
248
  case "snk-form-view":
230
249
  if (!customElements.get(tagName)) {
231
- defineCustomElement$8();
250
+ defineCustomElement$a();
232
251
  }
233
252
  break;
234
253
  case "snk-grid":
235
254
  if (!customElements.get(tagName)) {
236
- defineCustomElement$7();
255
+ defineCustomElement$9();
237
256
  }
238
257
  break;
239
258
  case "snk-grid-config":
240
259
  if (!customElements.get(tagName)) {
241
- defineCustomElement$6();
260
+ defineCustomElement$8();
242
261
  }
243
262
  break;
244
263
  case "snk-guides-viewer":
245
264
  if (!customElements.get(tagName)) {
246
- defineCustomElement$5();
265
+ defineCustomElement$7();
247
266
  }
248
267
  break;
249
268
  case "snk-select-box":
269
+ if (!customElements.get(tagName)) {
270
+ defineCustomElement$6();
271
+ }
272
+ break;
273
+ case "snk-simple-bar":
274
+ if (!customElements.get(tagName)) {
275
+ defineCustomElement$5();
276
+ }
277
+ break;
278
+ case "snk-simple-crud":
250
279
  if (!customElements.get(tagName)) {
251
280
  defineCustomElement$4();
252
281
  }
@@ -65,6 +65,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
65
65
  this.dataUnit = undefined;
66
66
  this.beforeSave = undefined;
67
67
  this.afterSave = undefined;
68
+ this.useCancelConfirm = true;
68
69
  }
69
70
  observePageSize() {
70
71
  if (this.dataUnit) {
@@ -213,6 +214,8 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
213
214
  }
214
215
  break;
215
216
  case Action.EDITION_CANCELED:
217
+ if (!this.useCancelConfirm)
218
+ return resolve(action);
216
219
  if (this.dataState.hasDirtyRecords) {
217
220
  const cancelConfirmation = this.getMessage("snkDataUnit.cancelConfirmation");
218
221
  if ((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fromParent) {
@@ -424,6 +427,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
424
427
  "dataUnit": [1040],
425
428
  "beforeSave": [16],
426
429
  "afterSave": [16],
430
+ "useCancelConfirm": [4, "use-cancel-confirm"],
427
431
  "getDataUnit": [64],
428
432
  "getSelectedRecordsIDsInfo": [64]
429
433
  }]);
@@ -1,10 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
2
+ import { VersionUtils, ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
+ import { T as TaskbarElement, s as store, d as defineCustomElement$1 } from './snk-taskbar2.js';
4
5
  import { C as ConfigStorage } from './ConfigStorage.js';
5
6
  import { P as PresentationMode } from './index2.js';
6
7
  import { T as TaskbarProcessor } from './taskbar-processor.js';
7
- import { s as store, d as defineCustomElement$1 } from './snk-taskbar2.js';
8
8
  import { d as defineCustomElement$a } from './snk-data-exporter2.js';
9
9
  import { d as defineCustomElement$9 } from './snk-exporter-email-sender2.js';
10
10
  import { d as defineCustomElement$8 } from './snk-filter-bar2.js';
@@ -31,7 +31,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
31
31
  });
32
32
  this._headerTaskbarProcessor = new TaskbarProcessor({
33
33
  "snkGridHeaderTaskbar.unselected": ["REFRESH", "DATA_EXPORTER"],
34
- "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH", "DATA_EXPORTER"],
34
+ "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", this.getAttachAvailable(), "REFRESH", "DATA_EXPORTER"],
35
35
  "snkGridHeaderTaskbar.detail.unselected": ["REFRESH"],
36
36
  "snkGridHeaderTaskbar.detail.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
37
37
  });
@@ -72,6 +72,13 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
72
72
  async setConfig(config) {
73
73
  this.setGridConfig(config);
74
74
  }
75
+ getAttachAvailable() {
76
+ var _a;
77
+ const isValidVersion = VersionUtils.isRequiredVersion((_a = window.envContext) === null || _a === void 0 ? void 0 : _a.sysVersion, '4.22');
78
+ if (isValidVersion)
79
+ return TaskbarElement.ATTACH;
80
+ return "";
81
+ }
75
82
  openGridConfig() {
76
83
  this._grid.getColumnsState()
77
84
  .then((gridColumns) => {
@@ -241,7 +248,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
241
248
  const disabledButtons = [];
242
249
  if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
243
250
  if (this._dataState.selectionInfo.length > 1) {
244
- disabledButtons.push("CLONE");
251
+ disabledButtons.push(TaskbarElement.CLONE, "ATTACH");
245
252
  }
246
253
  if (this._dataState.selectionInfo.isAllRecords()) {
247
254
  disabledButtons.push("REMOVE");
@@ -1,44 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { ElementIDUtils } from '@sankhyalabs/core';
3
-
4
- const snkSimpleBarCss = ".sc-snk-simple-bar-h{display:flex;height:100%;width:100%}.simple-bar__container.sc-snk-simple-bar{flex:1;display:flex;align-items:stretch;gap:var(--space--small)}.simple-bar__left-slot.sc-snk-simple-bar{min-width:280px;flex:1;display:flex;align-items:center}.simple-bar__right-slot.sc-snk-simple-bar{flex:1;display:flex;align-items:center;justify-content:flex-end}.simple-bar__column.sc-snk-simple-bar{flex:1;display:flex;flex-direction:column}";
5
-
6
- const SnkSimpleBar$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
- constructor() {
8
- super();
9
- this.__registerHost();
10
- this.clickBreadcrumbItem = createEvent(this, "clickBreadcrumbItem", 3);
11
- this.exit = createEvent(this, "exit", 3);
12
- this.label = undefined;
13
- this.breadcrumbItens = undefined;
14
- }
15
- componentDidLoad() {
16
- if (!this._element)
17
- return;
18
- ElementIDUtils.addIDInfo(this._element);
19
- }
20
- render() {
21
- return (h("div", { class: "simple-bar__container ez-margin-vertical--medium ez-padding--extra-small" }, h("div", { class: "simple-bar__left-slot" }, h("ez-button", { class: "ez-padding-right--medium", mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), h("div", { class: "simple-bar__column" }, h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), h("div", { class: "simple-bar__right-slot" }, h("slot", { name: "rightSlot" }))));
22
- }
23
- get _element() { return this; }
24
- static get style() { return snkSimpleBarCss; }
25
- }, [6, "snk-simple-bar", {
26
- "label": [1],
27
- "breadcrumbItens": [16]
28
- }]);
29
- function defineCustomElement$1() {
30
- if (typeof customElements === "undefined") {
31
- return;
32
- }
33
- const components = ["snk-simple-bar"];
34
- components.forEach(tagName => { switch (tagName) {
35
- case "snk-simple-bar":
36
- if (!customElements.get(tagName)) {
37
- customElements.define(tagName, SnkSimpleBar$1);
38
- }
39
- break;
40
- } });
41
- }
1
+ import { S as SnkSimpleBar$1, d as defineCustomElement$1 } from './snk-simple-bar2.js';
42
2
 
43
3
  const SnkSimpleBar = SnkSimpleBar$1;
44
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,59 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
3
+
4
+ const snkSimpleBarCss = ".sc-snk-simple-bar-h{display:flex;height:100%;width:100%}.simple-bar__container.sc-snk-simple-bar{flex:1;display:flex;align-items:stretch;gap:var(--space--small)}.simple-bar__left-slot.sc-snk-simple-bar{min-width:280px;flex:1;display:flex;align-items:center}.simple-bar__right-slot.sc-snk-simple-bar{flex:1;display:flex;align-items:center;justify-content:flex-end}.simple-bar__column.sc-snk-simple-bar{flex:1;display:flex;flex-direction:column}";
5
+
6
+ const SnkSimpleBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.clickBreadcrumbItem = createEvent(this, "clickBreadcrumbItem", 3);
11
+ this.exit = createEvent(this, "exit", 3);
12
+ this.label = undefined;
13
+ this.breadcrumbItens = undefined;
14
+ this.messagesBuilder = undefined;
15
+ }
16
+ /**
17
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
18
+ * através de um pequeno modulo na estrutura da aplicação:
19
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
20
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-simple-bar.msg.ts"
21
+ */
22
+ getMessage(key, params) {
23
+ var _a;
24
+ if (this.messagesBuilder)
25
+ return this.messagesBuilder.getMessage(key, params);
26
+ if ((_a = this._application) === null || _a === void 0 ? void 0 : _a.messagesBuilder)
27
+ return this._application.messagesBuilder.getMessage(key, params);
28
+ }
29
+ componentDidLoad() {
30
+ if (!this._element)
31
+ return;
32
+ ElementIDUtils.addIDInfo(this._element);
33
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
34
+ }
35
+ render() {
36
+ return (h("div", { class: "simple-bar__container ez-margin-vertical--medium ez-padding--extra-small" }, h("div", { class: "simple-bar__left-slot" }, h("ez-button", { class: "ez-padding-right--medium", title: this.getMessage('snkSimpleBar.backTitle'), mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), h("div", { class: "simple-bar__column" }, h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), h("div", { class: "simple-bar__right-slot" }, h("slot", { name: "rightSlot" }))));
37
+ }
38
+ get _element() { return this; }
39
+ static get style() { return snkSimpleBarCss; }
40
+ }, [6, "snk-simple-bar", {
41
+ "label": [1],
42
+ "breadcrumbItens": [16],
43
+ "messagesBuilder": [1040]
44
+ }]);
45
+ function defineCustomElement() {
46
+ if (typeof customElements === "undefined") {
47
+ return;
48
+ }
49
+ const components = ["snk-simple-bar"];
50
+ components.forEach(tagName => { switch (tagName) {
51
+ case "snk-simple-bar":
52
+ if (!customElements.get(tagName)) {
53
+ customElements.define(tagName, SnkSimpleBar);
54
+ }
55
+ break;
56
+ } });
57
+ }
58
+
59
+ export { SnkSimpleBar as S, defineCustomElement as d };