@sankhyalabs/sankhyablocks 5.4.2 → 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 (181) 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-filter-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
  18. package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-grid.cjs.entry.js +11 -4
  20. package/dist/cjs/{snk-guides-viewer-7db960c2.js → snk-guides-viewer-e6a65393.js} +2 -2
  21. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -4
  22. package/dist/cjs/snk-select-box.cjs.entry.js +1 -1
  23. package/dist/cjs/{snk-simple-crud.cjs.entry.js → snk-simple-bar_2.cjs.entry.js} +47 -5
  24. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-taskbar.cjs.entry.js +5 -4
  26. package/dist/cjs/taskbar-elements-80285601.js +313 -0
  27. package/dist/collection/collection-manifest.json +2 -1
  28. package/dist/collection/components/snk-attach/interfaces/index.js +1 -0
  29. package/dist/collection/components/snk-attach/snk-attach.css +8 -0
  30. package/dist/collection/components/snk-attach/snk-attach.js +202 -0
  31. package/dist/collection/components/snk-attach/structure/crud-config-builder.js +37 -0
  32. package/dist/collection/components/snk-attach/structure/data-unit-builder.js +106 -0
  33. package/dist/collection/components/snk-attach/structure/index.js +3 -0
  34. package/dist/collection/components/snk-attach/structure/taskbar-builder.js +47 -0
  35. package/dist/collection/components/snk-configurator/snk-configurator.js +3 -3
  36. package/dist/collection/components/snk-crud/snk-crud.js +22 -11
  37. package/dist/collection/components/snk-data-unit/snk-data-unit.js +21 -0
  38. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
  39. package/dist/collection/components/snk-grid/snk-grid.js +11 -3
  40. package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +37 -2
  41. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +65 -2
  42. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +3 -0
  43. package/dist/collection/components/snk-taskbar/snk-taskbar.js +4 -2
  44. package/dist/collection/lib/http/data-fetcher/fetchers/attach-fetcher.js +136 -0
  45. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js +1 -0
  46. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js +1 -0
  47. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/ISave.js +6 -0
  48. package/dist/collection/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/index.js +3 -0
  49. package/dist/collection/lib/message/SnkMessageBuilder.js +5 -1
  50. package/dist/collection/lib/message/resources/snk-attach.msg.js +27 -0
  51. package/dist/collection/lib/message/resources/snk-simple-bar.msg.js +3 -0
  52. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -0
  53. package/dist/collection/lib/utils/constants.js +1 -0
  54. package/dist/components/SnkMessageBuilder.js +35 -1
  55. package/dist/components/constants.js +1 -0
  56. package/dist/components/dataunit-fetcher.js +317 -0
  57. package/dist/components/index.d.ts +1 -0
  58. package/dist/components/index.js +1 -0
  59. package/dist/components/snk-application2.js +2 -314
  60. package/dist/components/snk-attach.d.ts +11 -0
  61. package/dist/components/snk-attach.js +6 -0
  62. package/dist/components/snk-attach2.js +498 -0
  63. package/dist/components/snk-crud.js +77 -48
  64. package/dist/components/snk-data-unit2.js +4 -0
  65. package/dist/components/snk-filter-bar2.js +1 -1
  66. package/dist/components/snk-grid2.js +11 -4
  67. package/dist/components/snk-simple-bar.js +1 -41
  68. package/dist/components/snk-simple-bar2.js +59 -0
  69. package/dist/components/snk-simple-crud.js +1 -328
  70. package/dist/{esm/snk-simple-crud.entry.js → components/snk-simple-crud2.js} +73 -18
  71. package/dist/components/snk-taskbar2.js +7 -2
  72. package/dist/esm/{SnkMessageBuilder-a15d22f8.js → SnkMessageBuilder-7a9392e6.js} +35 -1
  73. package/dist/esm/{constants-15617e7d.js → constants-e916ccc3.js} +1 -0
  74. package/dist/esm/dataunit-fetcher-d32c6a47.js +317 -0
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/esm/sankhyablocks.js +1 -1
  77. package/dist/esm/snk-application.entry.js +3 -315
  78. package/dist/esm/snk-attach.entry.js +445 -0
  79. package/dist/esm/snk-config-options.entry.js +1 -1
  80. package/dist/esm/snk-configurator.entry.js +1 -1
  81. package/dist/esm/snk-crud.entry.js +23 -14
  82. package/dist/esm/snk-data-exporter.entry.js +3 -3
  83. package/dist/esm/{snk-data-unit-5ed93c0e.js → snk-data-unit-f9e4c694.js} +4 -1
  84. package/dist/esm/snk-data-unit.entry.js +2 -2
  85. package/dist/esm/snk-detail-view.entry.js +4 -5
  86. package/dist/esm/snk-field-config.entry.js +1 -1
  87. package/dist/esm/snk-filter-bar.entry.js +1 -1
  88. package/dist/esm/snk-form-config.entry.js +1 -1
  89. package/dist/esm/snk-grid-config.entry.js +1 -1
  90. package/dist/esm/snk-grid.entry.js +11 -4
  91. package/dist/esm/{snk-guides-viewer-1e7c21f6.js → snk-guides-viewer-62a9f74d.js} +2 -2
  92. package/dist/esm/snk-guides-viewer.entry.js +3 -4
  93. package/dist/esm/snk-select-box.entry.js +1 -1
  94. package/dist/esm/snk-simple-bar_2.entry.js +324 -0
  95. package/dist/esm/snk-tab-config.entry.js +1 -1
  96. package/dist/esm/snk-taskbar.entry.js +5 -4
  97. package/dist/esm/taskbar-elements-055ba1ad.js +309 -0
  98. package/dist/sankhyablocks/p-17375123.js +1 -0
  99. package/dist/sankhyablocks/{p-b80cf644.entry.js → p-1c0ee011.entry.js} +1 -1
  100. package/dist/sankhyablocks/p-4512cc6c.entry.js +1 -0
  101. package/dist/sankhyablocks/p-5cbbe1f7.entry.js +1 -0
  102. package/dist/sankhyablocks/p-63d01871.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-0a1e7f75.entry.js → p-6ac29569.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-f4d36823.entry.js → p-6f0b3cc0.entry.js} +1 -1
  105. package/dist/sankhyablocks/p-741b00ef.entry.js +1 -0
  106. package/dist/sankhyablocks/{p-6516f35a.entry.js → p-86f75e7a.entry.js} +1 -1
  107. package/dist/sankhyablocks/{p-32599159.entry.js → p-8b02b276.entry.js} +1 -1
  108. package/dist/sankhyablocks/p-92a0fca4.js +1 -0
  109. package/dist/sankhyablocks/p-999d1953.entry.js +1 -0
  110. package/dist/sankhyablocks/{p-9bfa3cfb.entry.js → p-a412992c.entry.js} +1 -1
  111. package/dist/sankhyablocks/{p-703dddb9.js → p-aeffd219.js} +1 -1
  112. package/dist/sankhyablocks/p-b2523981.entry.js +11 -0
  113. package/dist/sankhyablocks/p-c3efd4eb.entry.js +1 -0
  114. package/dist/sankhyablocks/{p-3169584f.entry.js → p-e0b4aec3.entry.js} +1 -1
  115. package/dist/sankhyablocks/p-ebe876f5.entry.js +1 -0
  116. package/dist/sankhyablocks/p-ed438690.js +1 -0
  117. package/dist/sankhyablocks/p-f2223502.js +1 -0
  118. package/dist/sankhyablocks/p-f3d0c744.entry.js +1 -0
  119. package/dist/sankhyablocks/p-f821768b.js +74 -0
  120. package/dist/sankhyablocks/{p-f29caa0a.entry.js → p-f8c66aa3.entry.js} +1 -1
  121. package/dist/sankhyablocks/{p-adf50831.entry.js → p-fac37198.entry.js} +1 -1
  122. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  123. package/dist/types/components/snk-attach/interfaces/index.d.ts +10 -0
  124. package/dist/types/components/snk-attach/snk-attach.d.ts +45 -0
  125. package/dist/types/components/snk-attach/structure/crud-config-builder.d.ts +7 -0
  126. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +16 -0
  127. package/dist/types/components/snk-attach/structure/index.d.ts +3 -0
  128. package/dist/types/components/snk-attach/structure/taskbar-builder.d.ts +8 -0
  129. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +5 -0
  130. package/dist/types/components/snk-simple-bar/snk-simple-bar.d.ts +14 -0
  131. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +2 -1
  132. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
  133. package/dist/types/components.d.ts +67 -0
  134. package/dist/types/global.d.ts +9 -0
  135. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +8 -2
  136. package/dist/types/lib/http/data-fetcher/fetchers/attach-fetcher.d.ts +14 -0
  137. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.d.ts +9 -0
  138. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.d.ts +13 -0
  139. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/ISave.d.ts +26 -0
  140. package/dist/types/lib/http/data-fetcher/fetchers/fecthAttach/interfaces/index.d.ts +3 -0
  141. package/dist/types/lib/message/resources/snk-attach.msg.d.ts +2 -0
  142. package/dist/types/lib/message/resources/snk-simple-bar.msg.d.ts +1 -0
  143. package/dist/types/lib/utils/constants.d.ts +2 -1
  144. package/package.json +1 -1
  145. package/react/components.d.ts +1 -0
  146. package/react/components.js +1 -0
  147. package/react/components.js.map +1 -1
  148. package/dist/cjs/index-fc7ca86c.js +0 -200
  149. package/dist/cjs/snk-simple-bar.cjs.entry.js +0 -30
  150. package/dist/cjs/taskbar-elements-5e87cf44.js +0 -115
  151. package/dist/esm/index-e467ade5.js +0 -198
  152. package/dist/esm/snk-simple-bar.entry.js +0 -26
  153. package/dist/esm/taskbar-elements-10d80c79.js +0 -112
  154. package/dist/sankhyablocks/p-1393dc00.entry.js +0 -1
  155. package/dist/sankhyablocks/p-1c17eecf.entry.js +0 -1
  156. package/dist/sankhyablocks/p-2ecf14ff.js +0 -1
  157. package/dist/sankhyablocks/p-340d6fb0.entry.js +0 -84
  158. package/dist/sankhyablocks/p-74724fa7.js +0 -1
  159. package/dist/sankhyablocks/p-79f01b63.entry.js +0 -1
  160. package/dist/sankhyablocks/p-81e85890.entry.js +0 -1
  161. package/dist/sankhyablocks/p-94e6fc90.entry.js +0 -1
  162. package/dist/sankhyablocks/p-98f7f796.js +0 -1
  163. package/dist/sankhyablocks/p-b3e71248.entry.js +0 -1
  164. package/dist/sankhyablocks/p-bc281de0.js +0 -1
  165. package/dist/sankhyablocks/p-d61759a5.entry.js +0 -1
  166. package/dist/sankhyablocks/p-d65809d5.entry.js +0 -1
  167. package/dist/sankhyablocks/p-f587a454.js +0 -1
  168. package/dist/types/components/snk-application/snk-application.d.ts +0 -259
  169. package/dist/types/components/snk-crud/snk-crud.d.ts +0 -73
  170. package/dist/types/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.d.ts +0 -40
  171. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +0 -27
  172. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +0 -23
  173. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +0 -23
  174. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +0 -29
  175. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +0 -25
  176. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +0 -19
  177. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +0 -38
  178. package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +0 -74
  179. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +0 -53
  180. package/dist/types/components/snk-grid/snk-grid.d.ts +0 -95
  181. 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
  }]);
@@ -405,7 +405,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
405
405
  instance.loadFilterBarConfig(this.configName)
406
406
  .then((filters) => {
407
407
  this.filterConfig = filters.map(item => this.normalizeItem(item));
408
- if (this.dataUnit && this._loadingPending) {
408
+ if (this.dataUnit) {
409
409
  this.dataUnit.loadData(undefined, undefined, true);
410
410
  }
411
411
  })
@@ -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 };