@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
@@ -21,6 +21,9 @@ export class SnkSimpleCrud {
21
21
  this.dataState = undefined;
22
22
  this.dataUnit = undefined;
23
23
  this.mode = SIMPLE_CRUD_MODE.SERVER;
24
+ this.gridConfig = undefined;
25
+ this.formConfig = undefined;
26
+ this.useCancelConfirm = true;
24
27
  this.taskbarManager = undefined;
25
28
  this.messagesBuilder = undefined;
26
29
  }
@@ -125,7 +128,9 @@ export class SnkSimpleCrud {
125
128
  fieldMetadata.push(field);
126
129
  });
127
130
  if (fieldMetadata.length > 0) {
128
- this._config = formConfig;
131
+ if (!this.formConfig) {
132
+ this.formConfig = formConfig;
133
+ }
129
134
  this._metadata = {
130
135
  name: "SimpleCrud",
131
136
  label: "SimpleCrud",
@@ -149,7 +154,7 @@ export class SnkSimpleCrud {
149
154
  }
150
155
  render() {
151
156
  var _a;
152
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "simple-crud__taskbar ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), "no-header": true }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this._config }))))));
157
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "simple-crud__taskbar ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), config: this.gridConfig, "no-header": true }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
153
158
  }
154
159
  static get is() { return "snk-simple-crud"; }
155
160
  static get encapsulation() { return "scoped"; }
@@ -228,6 +233,64 @@ export class SnkSimpleCrud {
228
233
  "reflect": false,
229
234
  "defaultValue": "SIMPLE_CRUD_MODE.SERVER"
230
235
  },
236
+ "gridConfig": {
237
+ "type": "unknown",
238
+ "mutable": false,
239
+ "complexType": {
240
+ "original": "IGridConfig",
241
+ "resolved": "IGridConfig",
242
+ "references": {
243
+ "IGridConfig": {
244
+ "location": "import",
245
+ "path": "@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController"
246
+ }
247
+ }
248
+ },
249
+ "required": false,
250
+ "optional": false,
251
+ "docs": {
252
+ "tags": [],
253
+ "text": ""
254
+ }
255
+ },
256
+ "formConfig": {
257
+ "type": "unknown",
258
+ "mutable": false,
259
+ "complexType": {
260
+ "original": "IFormConfig",
261
+ "resolved": "IFormConfig",
262
+ "references": {
263
+ "IFormConfig": {
264
+ "location": "import",
265
+ "path": "@sankhyalabs/ezui/dist/types/utils/form/interfaces"
266
+ }
267
+ }
268
+ },
269
+ "required": false,
270
+ "optional": false,
271
+ "docs": {
272
+ "tags": [],
273
+ "text": ""
274
+ }
275
+ },
276
+ "useCancelConfirm": {
277
+ "type": "boolean",
278
+ "mutable": false,
279
+ "complexType": {
280
+ "original": "boolean",
281
+ "resolved": "boolean",
282
+ "references": {}
283
+ },
284
+ "required": false,
285
+ "optional": false,
286
+ "docs": {
287
+ "tags": [],
288
+ "text": ""
289
+ },
290
+ "attribute": "use-cancel-confirm",
291
+ "reflect": false,
292
+ "defaultValue": "true"
293
+ },
231
294
  "taskbarManager": {
232
295
  "type": "unknown",
233
296
  "mutable": false,
@@ -18,6 +18,7 @@ export var TaskbarElement;
18
18
  TaskbarElement["DIVIDER"] = "DIVIDER";
19
19
  TaskbarElement["CONFIGURATOR"] = "CONFIGURATOR";
20
20
  TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
21
+ TaskbarElement["ATTACH"] = "ATTACH";
21
22
  })(TaskbarElement || (TaskbarElement = {}));
22
23
  export var AuthorizationElements;
23
24
  (function (AuthorizationElements) {
@@ -90,6 +91,8 @@ export const buildElem = (element, className, dataElementId, getTitle, action, i
90
91
  case TaskbarElement.DATA_EXPORTER:
91
92
  const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
92
93
  return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
94
+ case TaskbarElement.ATTACH:
95
+ return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
93
96
  }
94
97
  };
95
98
  function textButton(name, className, dataElementId, text, title, action, isEnabled) {
@@ -18,7 +18,8 @@ export class SnkTaskbar {
18
18
  [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
19
19
  [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
20
20
  [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode",
21
- [TaskbarElement.CONFIGURATOR]: "snkTaskbar.titleConfigurator"
21
+ [TaskbarElement.CONFIGURATOR]: "snkTaskbar.titleConfigurator",
22
+ [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
22
23
  };
23
24
  this._permissions = undefined;
24
25
  this.configName = undefined;
@@ -125,7 +126,8 @@ export class SnkTaskbar {
125
126
  if (index > 1) {
126
127
  className += "ez-padding-left--medium";
127
128
  }
128
- if (TaskbarElement[def.toString()]) {
129
+ const taskbarElement = TaskbarElement[def.toString()];
130
+ if (taskbarElement) {
129
131
  return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList, this.configName, this.presentationMode);
130
132
  }
131
133
  else {
@@ -0,0 +1,136 @@
1
+ import { DataFetcher } from "../DataFetcher";
2
+ import { SaveErrorsEnum } from "./fecthAttach/interfaces";
3
+ export class AttachFetcher {
4
+ constructor(entityName, registerKey, dataUnitName) {
5
+ var _a;
6
+ this.entityName = entityName;
7
+ this.registerKey = registerKey;
8
+ this.dataUnitName = dataUnitName;
9
+ this.validateFields = (fields) => {
10
+ if (!!fields.LINK && !!fields.NOMEARQUIVO)
11
+ throw new Error(SaveErrorsEnum.LINK_AND_FILE_AT_THE_SAME_TIME);
12
+ if (!fields.LINK && !fields.NOMEARQUIVO)
13
+ throw new Error(SaveErrorsEnum.ANY_LINK_OR_FILE_FILLED);
14
+ if (!this.registerKey)
15
+ throw new Error('Register key can not be null');
16
+ };
17
+ this.resourceID = (window["resourceID"] || ((_a = window["workspace"]) === null || _a === void 0 ? void 0 : _a.resourceID));
18
+ }
19
+ async save(change) {
20
+ var _a, _b;
21
+ const serviceName = "AnexoSistemaSP.salvar";
22
+ let { updatingFields: fields } = change;
23
+ fields = Object.assign(Object.assign({}, fields), { NOMEARQUIVO: (_a = fields.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0] });
24
+ try {
25
+ this.validateFields(fields);
26
+ const fileInfo = !fields.LINK ? fields.NOMEARQUIVO : null;
27
+ const reqBody = {
28
+ serviceName,
29
+ requestBody: {
30
+ params: {
31
+ resourceID: this.resourceID,
32
+ description: fields.DESCRICAO,
33
+ fileSelect: fileInfo ? 1 : 0,
34
+ keySession: (_b = fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.properties) === null || _b === void 0 ? void 0 : _b.fileNameTmp,
35
+ nameAttach: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name,
36
+ link: fields.LINK,
37
+ nameEntity: this.entityName,
38
+ pkEntity: this.registerKey,
39
+ typeAcess: fields.TIPOACESSO,
40
+ typeApres: fields.TIPOAPRES,
41
+ }
42
+ }
43
+ };
44
+ const result = await DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody));
45
+ return Promise.resolve([Object.assign(Object.assign(Object.assign({}, result), fields), { ARQUIVOOULINK: !!fields.LINK ? fields.LINK : fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name, __owner__dataunit__name__: this.dataUnitName })]);
46
+ }
47
+ catch (error) {
48
+ return Promise.reject(error);
49
+ }
50
+ }
51
+ async edit(change) {
52
+ var _a, _b, _c;
53
+ const serviceName = "AnexoSistemaSP.salvar";
54
+ let { updatingFields: fields, record } = change;
55
+ const getFieldValue = (fieldValue) => {
56
+ if (fields[fieldValue] !== undefined)
57
+ return fields[fieldValue];
58
+ return record[fieldValue];
59
+ };
60
+ const attachField = getFieldValue('NOMEARQUIVO');
61
+ const hasNewAttachment = (_b = (_a = fields.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.downloadURL;
62
+ fields = Object.assign(Object.assign({}, fields), { DESCRICAO: getFieldValue('DESCRICAO'), LINK: getFieldValue('LINK'), TIPOACESSO: getFieldValue('TIPOACESSO'), TIPOAPRES: getFieldValue('TIPOAPRES'), CHAVEARQUIVO: record.CHAVEARQUIVO, NOMEARQUIVO: attachField === null || attachField === void 0 ? void 0 : attachField[0] });
63
+ const fileInfo = !fields.LINK ? fields.NOMEARQUIVO : null;
64
+ try {
65
+ this.validateFields(fields);
66
+ const reqBody = {
67
+ serviceName,
68
+ requestBody: {
69
+ params: {
70
+ resourceID: this.resourceID,
71
+ nuAttach: record === null || record === void 0 ? void 0 : record.NUATTACH,
72
+ description: fields.DESCRICAO,
73
+ fileSelect: hasNewAttachment ? 1 : 0,
74
+ keySession: (_c = fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.properties) === null || _c === void 0 ? void 0 : _c.fileNameTmp,
75
+ keyAttach: fields.CHAVEARQUIVO,
76
+ nameAttach: fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name,
77
+ link: fields.LINK,
78
+ nameEntity: this.entityName,
79
+ pkEntity: this.registerKey,
80
+ typeAcess: fields.TIPOACESSO,
81
+ typeApres: fields.TIPOAPRES,
82
+ }
83
+ }
84
+ };
85
+ const result = await DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody));
86
+ return Promise.resolve([Object.assign(Object.assign(Object.assign({}, result), fields), { ARQUIVOOULINK: !!fields.LINK ? fields.LINK : fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name, __owner__dataunit__name__: this.dataUnitName })]);
87
+ }
88
+ catch (error) {
89
+ return Promise.reject(error);
90
+ }
91
+ }
92
+ delete(record) {
93
+ var _a;
94
+ const serviceName = "AnexoSistemaSP.excluir";
95
+ const attachField = ((_a = record.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) || {};
96
+ const reqBody = {
97
+ serviceName,
98
+ requestBody: {
99
+ paramsDelete: {
100
+ keyAttach: record.CHAVEARQUIVO,
101
+ nameAttach: attachField === null || attachField === void 0 ? void 0 : attachField.name,
102
+ nameEntity: record.NOMEINSTANCIA,
103
+ nuAttach: record.NUATTACH,
104
+ pkEntity: record.PKREGISTRO
105
+ }
106
+ }
107
+ };
108
+ return new Promise((resolve, reject) => {
109
+ DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody))
110
+ .then(result => resolve(result))
111
+ .catch(error => reject(error));
112
+ });
113
+ }
114
+ getDownloadKey(record) {
115
+ var _a;
116
+ const serviceName = "AnexoSistemaSP.baixar";
117
+ const attachField = ((_a = record.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) || {};
118
+ const reqBody = {
119
+ serviceName,
120
+ requestBody: {
121
+ paramsDown: {
122
+ nameAttach: attachField === null || attachField === void 0 ? void 0 : attachField.name,
123
+ nameEntity: record.NOMEINSTANCIA,
124
+ nuAttach: record.NUATTACH,
125
+ pkEntity: record.PKREGISTRO,
126
+ keyAttach: record.CHAVEARQUIVO,
127
+ }
128
+ }
129
+ };
130
+ return new Promise((resolve, reject) => {
131
+ DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody))
132
+ .then(result => resolve(result))
133
+ .catch(error => reject(error));
134
+ });
135
+ }
136
+ }
@@ -0,0 +1,6 @@
1
+ export var SaveErrorsEnum;
2
+ (function (SaveErrorsEnum) {
3
+ SaveErrorsEnum["LINK_AND_FILE_AT_THE_SAME_TIME"] = "LINK_AND_FILE_AT_THE_SAME_TIME";
4
+ SaveErrorsEnum["ANY_LINK_OR_FILE_FILLED"] = "ANY_LINK_OR_FILE_FILLED";
5
+ SaveErrorsEnum["UNKNOWN"] = "UNKNOWN";
6
+ })(SaveErrorsEnum || (SaveErrorsEnum = {}));
@@ -0,0 +1,3 @@
1
+ export * from './ISave';
2
+ export * from './IDelete';
3
+ export * from './IDownloadKey';
@@ -11,6 +11,8 @@ import { snkGridMessages, snkGridConfigMessages } from "./resources/snk-grid.msg
11
11
  import { snkDataExporterMessages } from "./resources/snk-data-exporter.msg.js";
12
12
  import { snkFilterParamConfigMessages } from "./resources/snk-filter-param-config.msg.js";
13
13
  import { snkFilterFieldSearchMessages } from "./resources/snk-filter-field-search.msg.js";
14
+ import { snkSimpleBarMessages } from './resources/snk-simple-bar.msg.js';
15
+ import { snkAttachMessages } from "./resources/snk-attach.msg";
14
16
  export class SnkMessageBuilder {
15
17
  constructor(domainName) {
16
18
  this._defaults = {
@@ -30,7 +32,9 @@ export class SnkMessageBuilder {
30
32
  snkCrud: snkCrudMessages,
31
33
  fileViewer: fileViewerMessages,
32
34
  snkFilterParamConfig: snkFilterParamConfigMessages,
33
- snkFilterFieldSearch: snkFilterFieldSearchMessages
35
+ snkFilterFieldSearch: snkFilterFieldSearchMessages,
36
+ snkSimpleBar: snkSimpleBarMessages,
37
+ snkAttach: snkAttachMessages,
34
38
  };
35
39
  this._currentOperation = OperationMap.CLEAN;
36
40
  this._domainName = domainName;
@@ -0,0 +1,27 @@
1
+ export const snkAttachMessages = {
2
+ title: "Anexar arquivos",
3
+ description: "Faça o upload dos arquivos ou informe links que deseja anexar ao título",
4
+ attachHint: "Fazer download do arquivo",
5
+ breadcrumbTitle: "Anexar",
6
+ finishedMessage: "O anexo foi finalizado com sucesso",
7
+ finish: "Finalizar",
8
+ cancelConfirmation: {
9
+ title: "Atenção",
10
+ message: "As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>",
11
+ },
12
+ alertValidation: {
13
+ fileAndLinkAtTheSameTime: {
14
+ title: "Atenção",
15
+ message: "Não é permitido inserir o arquivo e o link ao mesmo tempo."
16
+ },
17
+ anyLinkOrFileFilled: {
18
+ title: "Atenção",
19
+ message: `É necessário preencher o campo "Link" ou anexar um arquivo.`
20
+ }
21
+ },
22
+ taskbar: {
23
+ titleDownload: "Fazer download",
24
+ titleLink: "Abrir link",
25
+ }
26
+ };
27
+ export default snkAttachMessages;
@@ -0,0 +1,3 @@
1
+ export const snkSimpleBarMessages = {
2
+ backTitle: "Voltar"
3
+ };
@@ -12,6 +12,7 @@ const snkTaskbarMessages = {
12
12
  titleGridMode: "Modo Grade",
13
13
  titleFormMode: "Modo Formulário",
14
14
  titleConfigurator: "Configurações",
15
+ titleAttach: "Anexar",
15
16
  forbidden: "Permissão não liberada"
16
17
  };
17
18
  export default snkTaskbarMessages;
@@ -5,6 +5,7 @@ export var VIEW_MODE;
5
5
  (function (VIEW_MODE) {
6
6
  VIEW_MODE[VIEW_MODE["GRID"] = 0] = "GRID";
7
7
  VIEW_MODE[VIEW_MODE["FORM"] = 1] = "FORM";
8
+ VIEW_MODE[VIEW_MODE["ATTACHMENT"] = 2] = "ATTACHMENT";
8
9
  })(VIEW_MODE || (VIEW_MODE = {}));
9
10
  ;
10
11
  export const ACTION_CONFIG = {
@@ -73,6 +73,7 @@ const snkTaskbarMessages = {
73
73
  titleGridMode: "Modo Grade",
74
74
  titleFormMode: "Modo Formulário",
75
75
  titleConfigurator: "Configurações",
76
+ titleAttach: "Anexar",
76
77
  forbidden: "Permissão não liberada"
77
78
  };
78
79
 
@@ -278,6 +279,37 @@ const snkFilterFieldSearchMessages = {
278
279
  linkLabel: "Categorias de {{link}}",
279
280
  };
280
281
 
282
+ const snkSimpleBarMessages = {
283
+ backTitle: "Voltar"
284
+ };
285
+
286
+ const snkAttachMessages = {
287
+ title: "Anexar arquivos",
288
+ description: "Faça o upload dos arquivos ou informe links que deseja anexar ao título",
289
+ attachHint: "Fazer download do arquivo",
290
+ breadcrumbTitle: "Anexar",
291
+ finishedMessage: "O anexo foi finalizado com sucesso",
292
+ finish: "Finalizar",
293
+ cancelConfirmation: {
294
+ title: "Atenção",
295
+ message: "As alterações realizadas não serão aplicadas.<br/><br/><b>Deseja mesmo continuar?</b>",
296
+ },
297
+ alertValidation: {
298
+ fileAndLinkAtTheSameTime: {
299
+ title: "Atenção",
300
+ message: "Não é permitido inserir o arquivo e o link ao mesmo tempo."
301
+ },
302
+ anyLinkOrFileFilled: {
303
+ title: "Atenção",
304
+ message: `É necessário preencher o campo "Link" ou anexar um arquivo.`
305
+ }
306
+ },
307
+ taskbar: {
308
+ titleDownload: "Fazer download",
309
+ titleLink: "Abrir link",
310
+ }
311
+ };
312
+
281
313
  class SnkMessageBuilder {
282
314
  constructor(domainName) {
283
315
  this._defaults = {
@@ -297,7 +329,9 @@ class SnkMessageBuilder {
297
329
  snkCrud: snkCrudMessages,
298
330
  fileViewer: fileViewerMessages,
299
331
  snkFilterParamConfig: snkFilterParamConfigMessages,
300
- snkFilterFieldSearch: snkFilterFieldSearchMessages
332
+ snkFilterFieldSearch: snkFilterFieldSearchMessages,
333
+ snkSimpleBar: snkSimpleBarMessages,
334
+ snkAttach: snkAttachMessages,
301
335
  };
302
336
  this._currentOperation = OperationMap.CLEAN;
303
337
  this._domainName = domainName;
@@ -4,6 +4,7 @@ var VIEW_MODE;
4
4
  (function (VIEW_MODE) {
5
5
  VIEW_MODE[VIEW_MODE["GRID"] = 0] = "GRID";
6
6
  VIEW_MODE[VIEW_MODE["FORM"] = 1] = "FORM";
7
+ VIEW_MODE[VIEW_MODE["ATTACHMENT"] = 2] = "ATTACHMENT";
7
8
  })(VIEW_MODE || (VIEW_MODE = {}));
8
9
  const ACTION_CONFIG = {
9
10
  add: 'ADD',