@sankhyalabs/sankhyablocks 8.0.2 → 8.1.0-rc.1

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 (138) hide show
  1. package/dist/cjs/{ConfigStorage-e044fff2.js → ConfigStorage-73e7afff.js} +4 -4
  2. package/dist/cjs/{DataFetcher-62b9b2c8.js → DataFetcher-004811c6.js} +13 -0
  3. package/dist/cjs/{SnkFormConfigManager-5d4b4765.js → SnkFormConfigManager-d1f1a222.js} +2 -2
  4. package/dist/cjs/auth-fetcher-58237931.js +34 -0
  5. package/dist/cjs/{dataunit-fetcher-2a3c86b1.js → dataunit-fetcher-029eafbd.js} +1 -1
  6. package/dist/cjs/{filter-bar-config-fetcher-71119171.js → filter-bar-config-fetcher-2b8ed9d0.js} +1 -1
  7. package/dist/cjs/{form-config-fetcher-2b32c782.js → form-config-fetcher-181767c9.js} +2 -2
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/{pesquisa-fetcher-ee74ae40.js → pesquisa-fetcher-9a97994a.js} +1 -1
  10. package/dist/cjs/{resource-fetcher-18c2d5ad.js → resource-fetcher-c0332609.js} +1 -1
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button.cjs.entry.js +3 -2
  13. package/dist/cjs/snk-application.cjs.entry.js +21 -38
  14. package/dist/cjs/snk-attach.cjs.entry.js +3 -3
  15. package/dist/cjs/snk-crud.cjs.entry.js +11 -4
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -2
  17. package/dist/cjs/{snk-data-unit-807a8684.js → snk-data-unit-cc7a7ed0.js} +5 -0
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +14 -10
  20. package/dist/cjs/snk-filter-bar.cjs.entry.js +6 -5
  21. package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -3
  22. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +6 -5
  23. package/dist/cjs/snk-form-config.cjs.entry.js +4 -3
  24. package/dist/cjs/snk-form.cjs.entry.js +7 -6
  25. package/dist/cjs/snk-grid-config.cjs.entry.js +6 -5
  26. package/dist/cjs/snk-grid.cjs.entry.js +9 -6
  27. package/dist/cjs/{snk-guides-viewer-263de371.js → snk-guides-viewer-27f87d90.js} +5 -4
  28. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -8
  29. package/dist/cjs/snk-personalized-filter.cjs.entry.js +6 -5
  30. package/dist/cjs/snk-print-selector.cjs.entry.js +2 -1
  31. package/dist/cjs/snk-simple-crud.cjs.entry.js +6 -4
  32. package/dist/collection/components/snk-application/snk-application.js +60 -0
  33. package/dist/collection/components/snk-crud/snk-crud.js +27 -3
  34. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +24 -2
  35. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +20 -1
  36. package/dist/collection/components/snk-data-unit/snk-data-unit.js +39 -0
  37. package/dist/collection/components/snk-grid/snk-grid.js +60 -1
  38. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +21 -2
  39. package/dist/collection/lib/http/data-fetcher/recaller/GraphQLRecaller.js +14 -0
  40. package/dist/components/DataFetcher.js +14 -1
  41. package/dist/components/auth-fetcher.js +32 -0
  42. package/dist/components/snk-application2.js +12 -29
  43. package/dist/components/snk-crud.js +9 -2
  44. package/dist/components/snk-data-unit2.js +6 -0
  45. package/dist/components/snk-detail-view2.js +10 -3
  46. package/dist/components/snk-grid2.js +7 -1
  47. package/dist/components/snk-simple-crud2.js +4 -2
  48. package/dist/esm/{ConfigStorage-6ec80135.js → ConfigStorage-19a7260b.js} +4 -4
  49. package/dist/esm/{DataFetcher-f7cf7302.js → DataFetcher-e0fc5549.js} +14 -1
  50. package/dist/esm/{SnkFormConfigManager-b8091dec.js → SnkFormConfigManager-1a42eb02.js} +2 -2
  51. package/dist/esm/auth-fetcher-83a946f8.js +32 -0
  52. package/dist/esm/{dataunit-fetcher-06e70d4c.js → dataunit-fetcher-6a695723.js} +1 -1
  53. package/dist/esm/{filter-bar-config-fetcher-efd7ab4e.js → filter-bar-config-fetcher-06e02851.js} +1 -1
  54. package/dist/esm/{form-config-fetcher-a5b23cd9.js → form-config-fetcher-9e167008.js} +2 -2
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/{pesquisa-fetcher-f06f4883.js → pesquisa-fetcher-9118eb7a.js} +1 -1
  57. package/dist/esm/{resource-fetcher-92640c2f.js → resource-fetcher-768d5556.js} +1 -1
  58. package/dist/esm/sankhyablocks.js +1 -1
  59. package/dist/esm/snk-actions-button.entry.js +3 -2
  60. package/dist/esm/snk-application.entry.js +19 -36
  61. package/dist/esm/snk-attach.entry.js +3 -3
  62. package/dist/esm/snk-crud.entry.js +11 -4
  63. package/dist/esm/snk-data-exporter.entry.js +3 -2
  64. package/dist/esm/{snk-data-unit-351ef08f.js → snk-data-unit-77508763.js} +5 -0
  65. package/dist/esm/snk-data-unit.entry.js +1 -1
  66. package/dist/esm/snk-detail-view.entry.js +14 -10
  67. package/dist/esm/snk-filter-bar.entry.js +6 -5
  68. package/dist/esm/snk-filter-detail.entry.js +4 -3
  69. package/dist/esm/snk-filter-modal-item.entry.js +6 -5
  70. package/dist/esm/snk-form-config.entry.js +4 -3
  71. package/dist/esm/snk-form.entry.js +7 -6
  72. package/dist/esm/snk-grid-config.entry.js +6 -5
  73. package/dist/esm/snk-grid.entry.js +9 -6
  74. package/dist/esm/{snk-guides-viewer-a6743bd9.js → snk-guides-viewer-c47cd45e.js} +5 -4
  75. package/dist/esm/snk-guides-viewer.entry.js +9 -8
  76. package/dist/esm/snk-personalized-filter.entry.js +6 -5
  77. package/dist/esm/snk-print-selector.entry.js +2 -1
  78. package/dist/esm/snk-simple-crud.entry.js +6 -4
  79. package/dist/sankhyablocks/{p-a54bdcc8.js → p-0a4c753d.js} +2 -2
  80. package/dist/sankhyablocks/{p-6785e5c9.entry.js → p-0ed0fc02.entry.js} +1 -1
  81. package/dist/sankhyablocks/p-22c6fe1a.entry.js +1 -0
  82. package/dist/sankhyablocks/{p-70b8e4a4.js → p-2ac9c585.js} +1 -1
  83. package/dist/sankhyablocks/p-34085ced.entry.js +1 -0
  84. package/dist/sankhyablocks/p-34a1357a.entry.js +1 -0
  85. package/dist/sankhyablocks/p-4721c3db.js +1 -0
  86. package/dist/sankhyablocks/p-6759adae.entry.js +1 -0
  87. package/dist/sankhyablocks/{p-49b24449.js → p-7b8b8ae9.js} +1 -1
  88. package/dist/sankhyablocks/p-7e285d6c.entry.js +11 -0
  89. package/dist/sankhyablocks/p-815a42c0.entry.js +1 -0
  90. package/dist/sankhyablocks/p-8a41172a.entry.js +1 -0
  91. package/dist/sankhyablocks/{p-bdcfbe10.js → p-8f8184ff.js} +1 -1
  92. package/dist/sankhyablocks/p-968741cc.js +1 -0
  93. package/dist/sankhyablocks/{p-e7aefd06.js → p-976e56e9.js} +1 -1
  94. package/dist/sankhyablocks/{p-10a1b3a6.js → p-98f9d076.js} +1 -1
  95. package/dist/sankhyablocks/p-bc735728.entry.js +1 -0
  96. package/dist/sankhyablocks/p-be684b38.entry.js +1 -0
  97. package/dist/sankhyablocks/p-c0f656af.entry.js +1 -0
  98. package/dist/sankhyablocks/p-c44f6aaf.entry.js +1 -0
  99. package/dist/sankhyablocks/p-c57bd935.entry.js +1 -0
  100. package/dist/sankhyablocks/p-cfd7da4a.entry.js +1 -0
  101. package/dist/sankhyablocks/{p-0d8f5882.js → p-d1b89765.js} +1 -1
  102. package/dist/sankhyablocks/p-df8621b4.js +1 -0
  103. package/dist/sankhyablocks/p-e28129aa.entry.js +1 -0
  104. package/dist/sankhyablocks/p-e7e54737.entry.js +1 -0
  105. package/dist/sankhyablocks/p-f31bfdee.entry.js +1 -0
  106. package/dist/sankhyablocks/p-f88c45bf.js +1 -0
  107. package/dist/sankhyablocks/p-fe010e54.entry.js +1 -0
  108. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  109. package/dist/types/components/snk-application/snk-application.d.ts +9 -1
  110. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  111. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +5 -0
  112. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -0
  113. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +8 -0
  114. package/dist/types/components/snk-grid/snk-grid.d.ts +13 -0
  115. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -0
  116. package/dist/types/components.d.ts +72 -1
  117. package/dist/types/lib/http/data-fetcher/recaller/GraphQLRecaller.d.ts +1 -0
  118. package/package.json +1 -1
  119. package/dist/sankhyablocks/p-0e8136f6.entry.js +0 -1
  120. package/dist/sankhyablocks/p-29683966.entry.js +0 -1
  121. package/dist/sankhyablocks/p-2a57f7e1.entry.js +0 -1
  122. package/dist/sankhyablocks/p-3940f1e9.entry.js +0 -1
  123. package/dist/sankhyablocks/p-3e8e3025.entry.js +0 -1
  124. package/dist/sankhyablocks/p-3ef191cf.entry.js +0 -1
  125. package/dist/sankhyablocks/p-424a673f.entry.js +0 -1
  126. package/dist/sankhyablocks/p-5438f093.entry.js +0 -1
  127. package/dist/sankhyablocks/p-5807b3aa.entry.js +0 -1
  128. package/dist/sankhyablocks/p-5932777e.entry.js +0 -1
  129. package/dist/sankhyablocks/p-610e2459.js +0 -1
  130. package/dist/sankhyablocks/p-75cfc68e.entry.js +0 -1
  131. package/dist/sankhyablocks/p-7a43351d.entry.js +0 -11
  132. package/dist/sankhyablocks/p-829ebd26.entry.js +0 -1
  133. package/dist/sankhyablocks/p-8cf9c9ce.entry.js +0 -1
  134. package/dist/sankhyablocks/p-a304b0f3.entry.js +0 -1
  135. package/dist/sankhyablocks/p-a63aedf3.entry.js +0 -1
  136. package/dist/sankhyablocks/p-b8350ecf.entry.js +0 -1
  137. package/dist/sankhyablocks/p-cbc28ca6.js +0 -1
  138. package/dist/sankhyablocks/p-d23356a6.js +0 -1
@@ -10,6 +10,7 @@ import { GuideBuilder } from '../GuideBuilder';
10
10
  export class SnkDetailView {
11
11
  constructor() {
12
12
  this._disabledButtons = undefined;
13
+ this._currentView = undefined;
13
14
  this.attachmentRegisterKey = undefined;
14
15
  this.formConfigManager = undefined;
15
16
  this.dataUnitName = undefined;
@@ -21,6 +22,7 @@ export class SnkDetailView {
21
22
  this.dataState = undefined;
22
23
  this.messagesBuilder = undefined;
23
24
  this.branchGuide = undefined;
25
+ this.canEdit = true;
24
26
  }
25
27
  observerDataState(newValue, oldValue) {
26
28
  const openInsertion = !(oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) && (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode);
@@ -134,7 +136,8 @@ export class SnkDetailView {
134
136
  updateViewStack(viewStack) {
135
137
  var _a, _b;
136
138
  this._viewStack = viewStack;
137
- (_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this.selectedForm ? 1 : 0);
139
+ this._currentView = this.selectedForm ? 1 : 0;
140
+ (_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this._currentView);
138
141
  }
139
142
  getFormFields() {
140
143
  if (this.selectedForm && this._formMetadata) {
@@ -189,7 +192,7 @@ export class SnkDetailView {
189
192
  render() {
190
193
  this.updateLabel();
191
194
  //const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
192
- return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
195
+ return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, canEdit: this.canEdit, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
193
196
  }
194
197
  static get is() { return "snk-detail-view"; }
195
198
  static get encapsulation() { return "scoped"; }
@@ -395,12 +398,31 @@ export class SnkDetailView {
395
398
  "tags": [],
396
399
  "text": ""
397
400
  }
401
+ },
402
+ "canEdit": {
403
+ "type": "boolean",
404
+ "mutable": false,
405
+ "complexType": {
406
+ "original": "boolean",
407
+ "resolved": "boolean",
408
+ "references": {}
409
+ },
410
+ "required": false,
411
+ "optional": false,
412
+ "docs": {
413
+ "tags": [],
414
+ "text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
415
+ },
416
+ "attribute": "can-edit",
417
+ "reflect": false,
418
+ "defaultValue": "true"
398
419
  }
399
420
  };
400
421
  }
401
422
  static get states() {
402
423
  return {
403
424
  "_disabledButtons": {},
425
+ "_currentView": {},
404
426
  "attachmentRegisterKey": {}
405
427
  };
406
428
  }
@@ -21,6 +21,7 @@ export class SnkGuidesViewer {
21
21
  this.selectedGuide = undefined;
22
22
  this.taskbarManager = undefined;
23
23
  this.messagesBuilder = undefined;
24
+ this.canEdit = true;
24
25
  this.presentationMode = undefined;
25
26
  this._breadcrumbItems = [];
26
27
  this._guides = undefined;
@@ -223,7 +224,7 @@ export class SnkGuidesViewer {
223
224
  else {
224
225
  detailBranch = this.selectedGuide;
225
226
  }
226
- content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail) }));
227
+ content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, canEdit: this.canEdit, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail) }));
227
228
  }
228
229
  else {
229
230
  const cardId = this.selectedGuide.id;
@@ -547,6 +548,24 @@ export class SnkGuidesViewer {
547
548
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
548
549
  }
549
550
  },
551
+ "canEdit": {
552
+ "type": "boolean",
553
+ "mutable": false,
554
+ "complexType": {
555
+ "original": "boolean",
556
+ "resolved": "boolean",
557
+ "references": {}
558
+ },
559
+ "required": false,
560
+ "optional": false,
561
+ "docs": {
562
+ "tags": [],
563
+ "text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
564
+ },
565
+ "attribute": "can-edit",
566
+ "reflect": false,
567
+ "defaultValue": "true"
568
+ },
550
569
  "presentationMode": {
551
570
  "type": "string",
552
571
  "mutable": false,
@@ -11,6 +11,9 @@ export class SnkDataUnit {
11
11
  const duState = this.buildDataState();
12
12
  this.dataState = duState;
13
13
  if (action.type === Action.DATA_SAVED) {
14
+ if (this.ignoreSaveMessage) {
15
+ return;
16
+ }
14
17
  const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
15
18
  if (msg != undefined) {
16
19
  this.showSuccessMessage(msg);
@@ -56,6 +59,8 @@ export class SnkDataUnit {
56
59
  this.beforeSave = undefined;
57
60
  this.afterSave = undefined;
58
61
  this.useCancelConfirm = true;
62
+ this.ignoreSaveMessage = undefined;
63
+ this.configName = undefined;
59
64
  this.configName = undefined;
60
65
  }
61
66
  observePageSize() {
@@ -587,6 +592,40 @@ export class SnkDataUnit {
587
592
  "reflect": false,
588
593
  "defaultValue": "true"
589
594
  },
595
+ "ignoreSaveMessage": {
596
+ "type": "boolean",
597
+ "mutable": false,
598
+ "complexType": {
599
+ "original": "boolean",
600
+ "resolved": "boolean",
601
+ "references": {}
602
+ },
603
+ "required": false,
604
+ "optional": false,
605
+ "docs": {
606
+ "tags": [],
607
+ "text": "Respons\u00E1vel por evitar a mensagem de sucesso ao salvar."
608
+ },
609
+ "attribute": "ignore-save-message",
610
+ "reflect": false
611
+ },
612
+ "configName": {
613
+ "type": "string",
614
+ "mutable": false,
615
+ "complexType": {
616
+ "original": "string",
617
+ "resolved": "string",
618
+ "references": {}
619
+ },
620
+ "required": false,
621
+ "optional": false,
622
+ "docs": {
623
+ "tags": [],
624
+ "text": "Usado para obter configura\u00E7\u00E3o de metadados."
625
+ },
626
+ "attribute": "config-name",
627
+ "reflect": false
628
+ },
590
629
  "configName": {
591
630
  "type": "string",
592
631
  "mutable": false,
@@ -36,6 +36,9 @@ export class SnkGrid {
36
36
  this.multipleSelection = undefined;
37
37
  this.presentationMode = PresentationMode.PRIMARY;
38
38
  this.messagesBuilder = undefined;
39
+ this.useEnterLikeTab = false;
40
+ this.recordsValidator = undefined;
41
+ this.canEdit = true;
39
42
  }
40
43
  /**
41
44
  * Exibe a janela de configurações da grade.
@@ -304,7 +307,7 @@ export class SnkGrid {
304
307
  return undefined;
305
308
  }
306
309
  return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
307
- h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, selectionToastConfig: this.selectionToastConfig }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
310
+ h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
308
311
  }
309
312
  static get is() { return "snk-grid"; }
310
313
  static get encapsulation() { return "scoped"; }
@@ -500,6 +503,62 @@ export class SnkGrid {
500
503
  "tags": [],
501
504
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
502
505
  }
506
+ },
507
+ "useEnterLikeTab": {
508
+ "type": "boolean",
509
+ "mutable": false,
510
+ "complexType": {
511
+ "original": "boolean",
512
+ "resolved": "boolean",
513
+ "references": {}
514
+ },
515
+ "required": false,
516
+ "optional": false,
517
+ "docs": {
518
+ "tags": [],
519
+ "text": "Quando verdadeiro, o ENTER far\u00E1 a navega\u00E7\u00E3o como se fosse a tecla TAB na grade."
520
+ },
521
+ "attribute": "use-enter-like-tab",
522
+ "reflect": false,
523
+ "defaultValue": "false"
524
+ },
525
+ "recordsValidator": {
526
+ "type": "unknown",
527
+ "mutable": false,
528
+ "complexType": {
529
+ "original": "IRecordValidator",
530
+ "resolved": "IRecordValidator",
531
+ "references": {
532
+ "IRecordValidator": {
533
+ "location": "import",
534
+ "path": "@sankhyalabs/ezui/dist/types/utils/form/interfaces"
535
+ }
536
+ }
537
+ },
538
+ "required": false,
539
+ "optional": false,
540
+ "docs": {
541
+ "tags": [],
542
+ "text": "Validador respons\u00E1vel por checar a integridade das informa\u00E7\u00F5es do registro."
543
+ }
544
+ },
545
+ "canEdit": {
546
+ "type": "boolean",
547
+ "mutable": false,
548
+ "complexType": {
549
+ "original": "boolean",
550
+ "resolved": "boolean",
551
+ "references": {}
552
+ },
553
+ "required": false,
554
+ "optional": false,
555
+ "docs": {
556
+ "tags": [],
557
+ "text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
558
+ },
559
+ "attribute": "can-edit",
560
+ "reflect": false,
561
+ "defaultValue": "true"
503
562
  }
504
563
  };
505
564
  }
@@ -29,6 +29,7 @@ export class SnkSimpleCrud {
29
29
  this.useCancelConfirm = true;
30
30
  this.taskbarManager = undefined;
31
31
  this.messagesBuilder = undefined;
32
+ this.useEnterLikeTab = false;
32
33
  }
33
34
  resolveInMemoryBtns(taskbarButtons) {
34
35
  const newTaskBarConfig = [...taskbarButtons];
@@ -173,9 +174,9 @@ export class SnkSimpleCrud {
173
174
  }
174
175
  render() {
175
176
  var _a;
176
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), 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: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
177
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, 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: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
177
178
  ? undefined
178
- : this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
179
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
179
180
  }
180
181
  static get is() { return "snk-simple-crud"; }
181
182
  static get encapsulation() { return "scoped"; }
@@ -368,6 +369,24 @@ export class SnkSimpleCrud {
368
369
  "tags": [],
369
370
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
370
371
  }
372
+ },
373
+ "useEnterLikeTab": {
374
+ "type": "boolean",
375
+ "mutable": false,
376
+ "complexType": {
377
+ "original": "boolean",
378
+ "resolved": "boolean",
379
+ "references": {}
380
+ },
381
+ "required": false,
382
+ "optional": false,
383
+ "docs": {
384
+ "tags": [],
385
+ "text": "Quando verdadeiro, o ENTER far\u00E1 a navega\u00E7\u00E3o como se fosse a tecla TAB na grade."
386
+ },
387
+ "attribute": "use-enter-like-tab",
388
+ "reflect": false,
389
+ "defaultValue": "false"
371
390
  }
372
391
  };
373
392
  }
@@ -1,4 +1,6 @@
1
+ import { DataType } from "@sankhyalabs/core";
1
2
  import { DataFetcher } from "../DataFetcher";
3
+ import { DataUnitTransient } from "@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";
2
4
  export class GraphQLRecaller {
3
5
  constructor(req, resolve, reject) {
4
6
  this.req = req;
@@ -11,4 +13,16 @@ export class GraphQLRecaller {
11
13
  reCall() {
12
14
  return DataFetcher.get().callGraphQL(this.req).then(this.resolve, this.reject);
13
15
  }
16
+ putTXPro(name, value) {
17
+ if (!this.req || !this.req.values)
18
+ return;
19
+ const changes = this.req.values.changes || [];
20
+ if (changes.length) {
21
+ this.req.values.changes[0].fields.push({
22
+ dataType: DataType.TEXT,
23
+ fieldName: `${DataUnitTransient.DATA_UNIT_TRANSIENT_PREFIX_NAME}${name}`,
24
+ value
25
+ });
26
+ }
27
+ }
14
28
  }
@@ -1,5 +1,6 @@
1
- import { StringUtils, ApplicationContext, ErrorException, WarningException, ObjectUtils } from '@sankhyalabs/core';
1
+ import { DataType, StringUtils, ApplicationContext, ErrorException, WarningException, ObjectUtils } from '@sankhyalabs/core';
2
2
  import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers.js';
3
+ import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
3
4
 
4
5
  var browserPonyfill = createCommonjsModule(function (module, exports) {
5
6
  var global = typeof self !== 'undefined' ? self : commonjsGlobal;
@@ -6462,6 +6463,18 @@ class GraphQLRecaller {
6462
6463
  reCall() {
6463
6464
  return DataFetcher.get().callGraphQL(this.req).then(this.resolve, this.reject);
6464
6465
  }
6466
+ putTXPro(name, value) {
6467
+ if (!this.req || !this.req.values)
6468
+ return;
6469
+ const changes = this.req.values.changes || [];
6470
+ if (changes.length) {
6471
+ this.req.values.changes[0].fields.push({
6472
+ dataType: DataType.TEXT,
6473
+ fieldName: `${DataUnitTransient.DATA_UNIT_TRANSIENT_PREFIX_NAME}${name}`,
6474
+ value
6475
+ });
6476
+ }
6477
+ }
6465
6478
  }
6466
6479
 
6467
6480
  class PrintUtils {
@@ -0,0 +1,32 @@
1
+ import { ObjectUtils } from '@sankhyalabs/core';
2
+ import { R as ResourceFetcher } from './resource-fetcher.js';
3
+
4
+ class AuthFetcher extends ResourceFetcher {
5
+ getData(resourceID) {
6
+ const completePath = `cfg://auth/${resourceID}`;
7
+ return new Promise((resolve, reject) => {
8
+ this.loadResource(completePath)
9
+ .then((loadedResource) => {
10
+ let auth = ObjectUtils.stringToObject(loadedResource);
11
+ if (auth && typeof (auth) === 'object') {
12
+ resolve(auth);
13
+ }
14
+ }).catch((error) => {
15
+ reject(error);
16
+ });
17
+ });
18
+ }
19
+ }
20
+ var AutorizationType;
21
+ (function (AutorizationType) {
22
+ AutorizationType["INSERT"] = "I";
23
+ AutorizationType["UPDATE"] = "A";
24
+ AutorizationType["REMOVE"] = "E";
25
+ AutorizationType["SHOW"] = "C";
26
+ AutorizationType["CONFIG"] = "F";
27
+ AutorizationType["CONFIG_NUMBER"] = "N";
28
+ AutorizationType["CLONE"] = "D";
29
+ AutorizationType["CONFIG_GRID"] = "G";
30
+ })(AutorizationType || (AutorizationType = {}));
31
+
32
+ export { AutorizationType as A, AuthFetcher as a };
@@ -5,7 +5,7 @@ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
5
5
  import { P as PesquisaFetcher } from './pesquisa-fetcher.js';
6
6
  import { G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage.js';
7
7
  import { D as DataUnitFetcher } from './dataunit-fetcher.js';
8
- import { R as ResourceFetcher } from './resource-fetcher.js';
8
+ import { A as AutorizationType, a as AuthFetcher } from './auth-fetcher.js';
9
9
  import { S as SnkMessageBuilder } from './SnkMessageBuilder.js';
10
10
  import { d as defineCustomElement$1 } from './snk-pesquisa2.js';
11
11
 
@@ -226,34 +226,6 @@ class ParametersFetcher {
226
226
 
227
227
  const _0x5b7870=_0x2202;(function(_0x42e134,_0x5d9727){const _0x185c97=_0x2202,_0x5854c7=_0x42e134();while(!![]){try{const _0x129d35=parseInt(_0x185c97(0x18f))/0x1*(-parseInt(_0x185c97(0x183))/0x2)+-parseInt(_0x185c97(0x191))/0x3+parseInt(_0x185c97(0x17d))/0x4*(-parseInt(_0x185c97(0x185))/0x5)+parseInt(_0x185c97(0x184))/0x6*(-parseInt(_0x185c97(0x182))/0x7)+parseInt(_0x185c97(0x17b))/0x8+parseInt(_0x185c97(0x18c))/0x9+parseInt(_0x185c97(0x17f))/0xa;if(_0x129d35===_0x5d9727)break;else _0x5854c7['push'](_0x5854c7['shift']());}catch(_0x4becb4){_0x5854c7['push'](_0x5854c7['shift']());}}}(_0xdfb1,0x44ac7));function _0x2202(_0x2eac1f,_0x170d27){const _0xdfb1b4=_0xdfb1();return _0x2202=function(_0x2202d7,_0x224df5){_0x2202d7=_0x2202d7-0x17a;let _0x4d54a9=_0xdfb1b4[_0x2202d7];return _0x4d54a9;},_0x2202(_0x2eac1f,_0x170d27);}function _0xdfb1(){const _0x2b9dc4=['true','863GKWjmo','parse','56355fjjjAm','isSup','putAccess','4324480sjuCdS','hasOwnProperty','239748okvJLB','name','6055770tXeRaU','actions','forEach','7RPRvzn','1042CHxkUw','2988126NIwRMm','20MTNzmH','authorizationSf','item','string','hasAccess','isArray','Objeto\x20não\x20pode\x20ser\x20indefinido.','3071943fWslZp','parseFromJSON'];_0xdfb1=function(){return _0x2b9dc4;};return _0xdfb1();}class MGEAuthorization{[_0x5b7870(0x18d)](_0x37e96b){const _0x580407=_0x5b7870;_0x37e96b=utxt(_0x37e96b[_0x580407(0x186)]);typeof _0x37e96b==_0x580407(0x188)&&(_0x37e96b=JSON[_0x580407(0x190)](_0x37e96b));if(_0x37e96b==undefined)throw Error(_0x580407(0x18b));const _0x291d34=new MGEAuthorizationData(_0x37e96b[_0x580407(0x192)]==='S'||_0x37e96b[_0x580407(0x192)]===!![]);return Array[_0x580407(0x18a)](_0x37e96b[_0x580407(0x187)])&&_0x37e96b[_0x580407(0x187)][_0x580407(0x181)](_0x58a748=>_0x291d34['putAccess'](_0x58a748[_0x580407(0x17e)],String(_0x58a748['status'])==_0x580407(0x18e))),_0x291d34;}}class MGEAuthorizationData{constructor(_0x51ec5d){const _0x2c8472=_0x5b7870;this['isSup']=_0x51ec5d,this[_0x2c8472(0x180)]={};}[_0x5b7870(0x17a)](_0x5bd0f2,_0x2ef465){const _0x40d701=_0x5b7870;this[_0x40d701(0x180)][_0x5bd0f2]=_0x2ef465;}[_0x5b7870(0x189)](_0x4fd772){const _0x3707c1=_0x5b7870;if(this[_0x3707c1(0x192)])return !![];let _0x25e60a=!![];return this[_0x3707c1(0x180)][_0x3707c1(0x17c)](_0x4fd772)&&(_0x25e60a=this['actions'][_0x4fd772]),_0x25e60a;}['isUserSup'](){return this['isSup'];}}
228
228
 
229
- class AuthFetcher extends ResourceFetcher {
230
- getData(resourceID) {
231
- const completePath = `cfg://auth/${resourceID}`;
232
- return new Promise((resolve, reject) => {
233
- this.loadResource(completePath)
234
- .then((loadedResource) => {
235
- let auth = ObjectUtils.stringToObject(loadedResource);
236
- if (auth && typeof (auth) === 'object') {
237
- resolve(auth);
238
- }
239
- }).catch((error) => {
240
- reject(error);
241
- });
242
- });
243
- }
244
- }
245
- var AutorizationType;
246
- (function (AutorizationType) {
247
- AutorizationType["INSERT"] = "I";
248
- AutorizationType["UPDATE"] = "A";
249
- AutorizationType["REMOVE"] = "E";
250
- AutorizationType["SHOW"] = "C";
251
- AutorizationType["CONFIG"] = "F";
252
- AutorizationType["CONFIG_NUMBER"] = "N";
253
- AutorizationType["CLONE"] = "D";
254
- AutorizationType["CONFIG_GRID"] = "G";
255
- })(AutorizationType || (AutorizationType = {}));
256
-
257
229
  const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
258
230
 
259
231
  const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
@@ -607,6 +579,16 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
607
579
  resolve(DataFetcher.hasClientEvent(eventID));
608
580
  });
609
581
  }
582
+ /**
583
+ * Realiza a chamada ao Service Broker conforme o nome do serviço.
584
+ *
585
+ * @param serviceName - Nome do serviço
586
+ * @param payload - Dados que serão processados na ação
587
+ * @param options - Parâmetros de URL
588
+ */
589
+ async callServiceBroker(serviceName, payload, options) {
590
+ return DataFetcher.get().callServiceBroker(serviceName, payload, options);
591
+ }
610
592
  /**
611
593
  * Obtém o resourceID da tela em questão.
612
594
  */
@@ -914,6 +896,7 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
914
896
  "addClientEvent": [64],
915
897
  "removeClientEvent": [64],
916
898
  "hasClientEvent": [64],
899
+ "callServiceBroker": [64],
917
900
  "getResourceID": [64],
918
901
  "getUserID": [64],
919
902
  "alert": [64],
@@ -5,6 +5,7 @@ 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 { A as AutorizationType } from './auth-fetcher.js';
8
9
  import { d as defineCustomElement$v } from './snk-actions-button2.js';
9
10
  import { d as defineCustomElement$u } from './snk-attach2.js';
10
11
  import { d as defineCustomElement$t } from './snk-config-options2.js';
@@ -48,6 +49,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
48
49
  this._dataState = undefined;
49
50
  this.attachmentRegisterKey = undefined;
50
51
  this._currentViewMode = VIEW_MODE.GRID;
52
+ this._canEdit = undefined;
51
53
  this.configName = undefined;
52
54
  this.selectionToastConfig = undefined;
53
55
  this.showActionButtons = false;
@@ -58,6 +60,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
58
60
  this.multipleSelection = true;
59
61
  this.presentationMode = PresentationMode.PRIMARY;
60
62
  this.messagesBuilder = undefined;
63
+ this.useEnterLikeTab = false;
61
64
  }
62
65
  /**
63
66
  * Usado para alternar a visão entre GRID e FORM externamente.
@@ -140,6 +143,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
140
143
  return joinedPrimaryKeys;
141
144
  }
142
145
  componentWillLoad() {
146
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
147
+ application.hasAccess(AutorizationType.UPDATE).then(canEdit => this._canEdit = canEdit);
143
148
  let parent = this._element.parentElement;
144
149
  while (parent) {
145
150
  if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
@@ -168,7 +173,6 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
168
173
  parent = parent.parentElement;
169
174
  }
170
175
  if (!this.configName) {
171
- const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
172
176
  this.configName = application.configName;
173
177
  }
174
178
  }
@@ -187,7 +191,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
187
191
  this.configuratorCancel.emit();
188
192
  }
189
193
  render() {
190
- 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, selectionToastConfig: this.selectionToastConfig }, 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, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.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), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
194
+ this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
195
+ 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, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit }, 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", canEdit: this._canEdit }, h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.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), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
191
196
  }
192
197
  get _element() { return this; }
193
198
  static get watchers() { return {
@@ -205,10 +210,12 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
205
210
  "multipleSelection": [4, "multiple-selection"],
206
211
  "presentationMode": [1, "presentation-mode"],
207
212
  "messagesBuilder": [1040],
213
+ "useEnterLikeTab": [4, "use-enter-like-tab"],
208
214
  "_dataUnit": [32],
209
215
  "_dataState": [32],
210
216
  "attachmentRegisterKey": [32],
211
217
  "_currentViewMode": [32],
218
+ "_canEdit": [32],
212
219
  "goToView": [64],
213
220
  "openConfigurator": [64],
214
221
  "closeConfigurator": [64],
@@ -21,6 +21,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
21
21
  const duState = this.buildDataState();
22
22
  this.dataState = duState;
23
23
  if (action.type === Action.DATA_SAVED) {
24
+ if (this.ignoreSaveMessage) {
25
+ return;
26
+ }
24
27
  const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
25
28
  if (msg != undefined) {
26
29
  this.showSuccessMessage(msg);
@@ -66,6 +69,8 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
66
69
  this.beforeSave = undefined;
67
70
  this.afterSave = undefined;
68
71
  this.useCancelConfirm = true;
72
+ this.ignoreSaveMessage = undefined;
73
+ this.configName = undefined;
69
74
  this.configName = undefined;
70
75
  }
71
76
  observePageSize() {
@@ -430,6 +435,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
430
435
  "beforeSave": [16],
431
436
  "afterSave": [16],
432
437
  "useCancelConfirm": [4, "use-cancel-confirm"],
438
+ "ignoreSaveMessage": [4, "ignore-save-message"],
433
439
  "configName": [1, "config-name"],
434
440
  "getDataUnit": [64],
435
441
  "getSelectedRecordsIDsInfo": [64]
@@ -58,6 +58,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
58
58
  this.selectedGuide = undefined;
59
59
  this.taskbarManager = undefined;
60
60
  this.messagesBuilder = undefined;
61
+ this.canEdit = true;
61
62
  this.presentationMode = undefined;
62
63
  this._breadcrumbItems = [];
63
64
  this._guides = undefined;
@@ -260,7 +261,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
260
261
  else {
261
262
  detailBranch = this.selectedGuide;
262
263
  }
263
- content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail) }));
264
+ content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, canEdit: this.canEdit, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail) }));
264
265
  }
265
266
  else {
266
267
  const cardId = this.selectedGuide.id;
@@ -367,6 +368,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
367
368
  "selectedGuide": [16],
368
369
  "taskbarManager": [16],
369
370
  "messagesBuilder": [1040],
371
+ "canEdit": [4, "can-edit"],
370
372
  "presentationMode": [1, "presentation-mode"],
371
373
  "_breadcrumbItems": [32],
372
374
  "_guides": [32],
@@ -585,6 +587,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
585
587
  this.snkDetailGuidesChange = createEvent(this, "snkDetailGuidesChange", 7);
586
588
  this.snkSwitchGuide = createEvent(this, "snkSwitchGuide", 7);
587
589
  this._disabledButtons = undefined;
590
+ this._currentView = undefined;
588
591
  this.attachmentRegisterKey = undefined;
589
592
  this.formConfigManager = undefined;
590
593
  this.dataUnitName = undefined;
@@ -596,6 +599,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
596
599
  this.dataState = undefined;
597
600
  this.messagesBuilder = undefined;
598
601
  this.branchGuide = undefined;
602
+ this.canEdit = true;
599
603
  }
600
604
  observerDataState(newValue, oldValue) {
601
605
  const openInsertion = !(oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) && (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode);
@@ -709,7 +713,8 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
709
713
  updateViewStack(viewStack) {
710
714
  var _a, _b;
711
715
  this._viewStack = viewStack;
712
- (_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this.selectedForm ? 1 : 0);
716
+ this._currentView = this.selectedForm ? 1 : 0;
717
+ (_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this._currentView);
713
718
  }
714
719
  getFormFields() {
715
720
  if (this.selectedForm && this._formMetadata) {
@@ -764,7 +769,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
764
769
  render() {
765
770
  this.updateLabel();
766
771
  //const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
767
- return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
772
+ return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, canEdit: this.canEdit, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
768
773
  }
769
774
  static get watchers() { return {
770
775
  "dataState": ["observerDataState"]
@@ -781,7 +786,9 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
781
786
  "dataState": [1040],
782
787
  "messagesBuilder": [1040],
783
788
  "branchGuide": [16],
789
+ "canEdit": [4, "can-edit"],
784
790
  "_disabledButtons": [32],
791
+ "_currentView": [32],
785
792
  "attachmentRegisterKey": [32],
786
793
  "changeViewMode": [64],
787
794
  "configGrid": [64],