@sankhyalabs/sankhyablocks 1.3.31-beta.11 → 1.3.31-beta.13

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 (55) hide show
  1. package/dist/cjs/{SnkMessageBuilder-13239761.js → SnkMessageBuilder-bb55d4c4.js} +2 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-application.cjs.entry.js +17 -8
  5. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  6. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  7. package/dist/cjs/snk-form_2.cjs.entry.js +2 -2
  8. package/dist/cjs/snk-taskbar.cjs.entry.js +27 -30
  9. package/dist/cjs/{taskbar-elements-73d524e5.js → taskbar-elements-2888ceb6.js} +4 -0
  10. package/dist/collection/components/snk-application/snk-application.js +46 -4
  11. package/dist/collection/components/snk-crud/snk-crud.css +1 -0
  12. package/dist/collection/components/snk-crud/snk-crud.js +4 -5
  13. package/dist/collection/components/snk-data-unit/snk-data-unit.js +2 -2
  14. package/dist/collection/components/snk-form/snk-form.js +2 -4
  15. package/dist/collection/components/snk-grid/snk-grid.js +4 -2
  16. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +4 -0
  17. package/dist/collection/components/snk-taskbar/snk-taskbar.js +29 -30
  18. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +7 -4
  19. package/dist/collection/lib/index.js +1 -0
  20. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +2 -1
  21. package/dist/components/SnkMessageBuilder.js +2 -1
  22. package/dist/components/snk-application2.js +17 -7
  23. package/dist/components/snk-crud.js +3 -3
  24. package/dist/components/snk-data-unit.js +2 -2
  25. package/dist/components/snk-form2.js +1 -1
  26. package/dist/components/snk-grid2.js +1 -1
  27. package/dist/components/snk-taskbar2.js +30 -29
  28. package/dist/esm/{SnkMessageBuilder-3835f9d8.js → SnkMessageBuilder-17d91b88.js} +2 -1
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/esm/sankhyablocks.js +1 -1
  31. package/dist/esm/snk-application.entry.js +17 -8
  32. package/dist/esm/snk-crud.entry.js +2 -2
  33. package/dist/esm/snk-data-unit.entry.js +3 -3
  34. package/dist/esm/snk-form_2.entry.js +2 -2
  35. package/dist/esm/snk-taskbar.entry.js +27 -30
  36. package/dist/esm/{taskbar-elements-6d01a640.js → taskbar-elements-5ea74223.js} +5 -1
  37. package/dist/sankhyablocks/{p-5e1b7e51.entry.js → p-56a32417.entry.js} +1 -1
  38. package/dist/sankhyablocks/p-ab694dbc.js +1 -0
  39. package/dist/sankhyablocks/p-b559117b.js +1 -0
  40. package/dist/sankhyablocks/{p-e942c604.entry.js → p-b7e029cd.entry.js} +2 -2
  41. package/dist/sankhyablocks/{p-f4d0394b.entry.js → p-ce2d1214.entry.js} +1 -1
  42. package/dist/sankhyablocks/p-d25803a1.entry.js +1 -0
  43. package/dist/sankhyablocks/p-edf81d2c.entry.js +1 -0
  44. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  45. package/dist/types/components/snk-application/snk-application.d.ts +6 -2
  46. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -0
  47. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +15 -0
  48. package/dist/types/components.d.ts +6 -2
  49. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +5 -6
  50. package/dist/types/lib/index.d.ts +1 -0
  51. package/package.json +2 -2
  52. package/dist/sankhyablocks/p-72bccbb6.js +0 -1
  53. package/dist/sankhyablocks/p-8c74d163.entry.js +0 -1
  54. package/dist/sankhyablocks/p-bab507ad.entry.js +0 -1
  55. package/dist/sankhyablocks/p-dd10a5e3.js +0 -1
@@ -6512,20 +6512,23 @@ class DataFetcher {
6512
6512
  resolveURL() {
6513
6513
  return UrlUtils.getUrlBase();
6514
6514
  }
6515
- getContext() {
6515
+ getContext(module) {
6516
6516
  const urlParams = UrlUtils.getQueryParams(location.search);
6517
6517
  return {
6518
- baseUrl: `${this.resolveURL()}/mge/service.sbr`,
6518
+ baseUrl: `${this.resolveURL()}/${module}/service.sbr`,
6519
6519
  appName: "SankhyaBlocks",
6520
6520
  mgeSession: `${window['skw_session'] || urlParams.mgeSession}`,
6521
6521
  globalID: "85C0093DFA240EAB699B4E47A10215BD",
6522
+ //FIXME: Precisamos ajustar para buscar o resourceId pela aplicação
6522
6523
  resourceID: "br.com.sankhya.mov.bancaria"
6523
6524
  };
6524
6525
  }
6525
6526
  async callServiceBroker(serviceName, payload) {
6526
6527
  return new Promise((accept, reject) => {
6527
- const ctx = this.getContext();
6528
- const url = `${ctx.baseUrl}?serviceName=${serviceName}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
6528
+ const parts = serviceName.split("@");
6529
+ const [module, name] = parts.length === 2 ? parts : ['mge', serviceName];
6530
+ const ctx = this.getContext(module);
6531
+ const url = `${ctx.baseUrl}?serviceName=${name}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
6529
6532
  document.cookie = `JSESSIONID=${ctx.mgeSession};`;
6530
6533
  const http = new XMLHttpRequest();
6531
6534
  DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url }));
@@ -7313,7 +7316,7 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
7313
7316
  const waitingAuth = this._authPromises.length > 0;
7314
7317
  this._authPromises.push(new PendingPromise(resolve, reject));
7315
7318
  if (!waitingAuth) {
7316
- this.authFetcher.getData(this._resourceID).then((authList) => {
7319
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7317
7320
  this._auth = authList;
7318
7321
  while (this._authPromises.length > 0) {
7319
7322
  this._authPromises.pop().resolve(this._auth);
@@ -7564,11 +7567,17 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
7564
7567
  async error(title, message, icon, options) {
7565
7568
  return ApplicationUtils.error(title, message, icon, options);
7566
7569
  }
7570
+ /**
7571
+ * Exibe um diálogo de mensagem comum
7572
+ */
7573
+ async message(title, message, icon, options) {
7574
+ return ApplicationUtils.message(title, message, icon, options);
7575
+ }
7567
7576
  /**
7568
7577
  * Exibe um diálogo de confirmação
7569
7578
  */
7570
- async confirm(title, message, icon, critical, options) {
7571
- return ApplicationUtils.confirm(title, message, icon, critical, options);
7579
+ async confirm(title, message, icon, dialogType, options) {
7580
+ return ApplicationUtils.confirm(title, message, icon, dialogType, options);
7572
7581
  }
7573
7582
  /**
7574
7583
  * Mostra uma informação efêmera (de segundo plano).
@@ -7753,6 +7762,7 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
7753
7762
  "getResourceID": [64],
7754
7763
  "alert": [64],
7755
7764
  "error": [64],
7765
+ "message": [64],
7756
7766
  "confirm": [64],
7757
7767
  "info": [64],
7758
7768
  "loadFormConfig": [64],
@@ -3,7 +3,7 @@ import { d as defineCustomElement$4 } from './snk-form2.js';
3
3
  import { d as defineCustomElement$3 } from './snk-grid2.js';
4
4
  import { d as defineCustomElement$2 } from './snk-taskbar2.js';
5
5
 
6
- const snkCrudCss = ".sc-snk-crud-h{display:flex;height:100%;width:100%}";
6
+ const snkCrudCss = ".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";
7
7
 
8
8
  const GRID_MODE = 0;
9
9
  const FORM_MODE = 1;
@@ -55,14 +55,14 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
55
55
  }
56
56
  }
57
57
  render() {
58
- return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", null))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
58
+ return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
59
59
  }
60
60
  get _element() { return this; }
61
61
  static get style() { return snkCrudCss; }
62
62
  }, [6, "snk-crud", {
63
63
  "configName": [1, "config-name"],
64
64
  "actionsList": [16],
65
- "recordsValidator": [8, "records-validator"],
65
+ "recordsValidator": [16],
66
66
  "_dataUnit": [32],
67
67
  "_dataState": [32]
68
68
  }]);
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { Action, ApplicationContext } from '@sankhyalabs/core';
3
- import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
+ import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { O as OperationMap } from './SnkMessageBuilder.js';
5
5
 
6
6
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";
@@ -181,7 +181,7 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
181
181
  }
182
182
  else {
183
183
  const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
184
- ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, "delete", true, { btnConfirmDanger: true })
184
+ ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, "delete", DialogType.CRITICAL, { btnConfirmDanger: true })
185
185
  .then((result) => resolve(result ? action : undefined));
186
186
  }
187
187
  }
@@ -110,7 +110,7 @@ const SnkForm = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
110
110
  static get style() { return snkFormCss; }
111
111
  }, [2, "snk-form", {
112
112
  "configName": [1, "config-name"],
113
- "recordsValidator": [8, "records-validator"],
113
+ "recordsValidator": [16],
114
114
  "actionsList": [16],
115
115
  "_dataUnit": [32],
116
116
  "_configLoaded": [32],
@@ -57,7 +57,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
57
57
  if (!this._configLoaded || !this._dataUnit) {
58
58
  return undefined;
59
59
  }
60
- return (h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, h("slot", null)), h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList }))));
60
+ return (h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, h("slot", { name: "SnkGridHeader" })), h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" }))));
61
61
  }
62
62
  get _element() { return this; }
63
63
  static get style() { return snkGridCss; }
@@ -26,6 +26,10 @@ var AuthorizationElements;
26
26
  AuthorizationElements["INSERT"] = "INSERT";
27
27
  AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
28
28
  })(AuthorizationElements || (AuthorizationElements = {}));
29
+ var VisibleWhenForbidden;
30
+ (function (VisibleWhenForbidden) {
31
+ VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
32
+ })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
29
33
  const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
30
34
  switch (element) {
31
35
  case TaskbarElement.PREVIOUS:
@@ -73,6 +77,21 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
73
77
  super();
74
78
  this.__registerHost();
75
79
  this.actionClick = createEvent(this, "actionClick", 7);
80
+ this._titleKeyByElement = {
81
+ [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
82
+ [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
83
+ [TaskbarElement.NEXT]: "snkTaskbar.titleNext",
84
+ [TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
85
+ [TaskbarElement.CLONE]: "snkTaskbar.titleClone",
86
+ [TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
87
+ [TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
88
+ [TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
89
+ [TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
90
+ [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
91
+ [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
92
+ [TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
93
+ [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
94
+ };
76
95
  }
77
96
  observeButtons() {
78
97
  this._definitions = undefined;
@@ -83,7 +102,7 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
83
102
  if (strButtons) {
84
103
  strButtons.split(",").forEach(buttonName => {
85
104
  buttonName = buttonName.trim();
86
- if (this.isAllowed(buttonName)) {
105
+ if (VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
87
106
  elements.push(buttonName.trim());
88
107
  }
89
108
  });
@@ -103,35 +122,14 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
103
122
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
104
123
  */
105
124
  getTitle(element) {
106
- switch (element) {
107
- case TaskbarElement.UPDATE:
108
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleUpdate", {});
109
- case TaskbarElement.PREVIOUS:
110
- return this._application.messagesBuilder.getMessage("snkTaskbar.titlePrevious", {});
111
- case TaskbarElement.NEXT:
112
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleNext", {});
113
- case TaskbarElement.REFRESH:
114
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRefresh", {});
115
- case TaskbarElement.CLONE:
116
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleClone", {});
117
- case TaskbarElement.REMOVE:
118
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRemove", {});
119
- case TaskbarElement.MORE_OPTIONS:
120
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleMoreOptions", {});
121
- case TaskbarElement.INSERT:
122
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleInsert", {});
123
- case TaskbarElement.CANCEL:
124
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleCancel", {});
125
- case TaskbarElement.SAVE:
126
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleSave", {});
127
- case TaskbarElement.GRID_MODE:
128
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleGridMode", {});
129
- case TaskbarElement.CONFIG_GRID:
130
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleConfigGrid", {});
131
- case TaskbarElement.FORM_MODE:
132
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleFormMode", {});
125
+ let key;
126
+ if (this.isAllowed(element)) {
127
+ key = this._titleKeyByElement[element];
133
128
  }
134
- return "";
129
+ else {
130
+ key = "snkTaskbar.forbidden";
131
+ }
132
+ return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
135
133
  }
136
134
  elementClick(elem) {
137
135
  if (this.dataUnit) {
@@ -165,6 +163,9 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
165
163
  this.actionClick.emit(elem);
166
164
  }
167
165
  isEnabled(elem) {
166
+ if (!this.isAllowed(elem)) {
167
+ return false;
168
+ }
168
169
  return !(this.disabledButtons && this.disabledButtons.includes(elem));
169
170
  }
170
171
  getElement(index, def) {
@@ -42,8 +42,9 @@ const snkTaskbarMessages = {
42
42
  titleCancel: "Cancelar",
43
43
  titleSave: "Salvar",
44
44
  titleGridMode: "Modo Grade",
45
+ titleFormMode: "Modo Formulário",
45
46
  titleConfigGrid: "Configuração da grade",
46
- titleFormMode: "Modo Formulário"
47
+ forbidden: "Permissão não liberada"
47
48
  };
48
49
 
49
50
  class SnkMessageBuilder {
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["snk-crud",[[6,"snk-crud",{"configName":[1,"config-name"],"actionsList":[16],"recordsValidator":[8,"records-validator"],"_dataUnit":[32],"_dataState":[32]}]]],["teste-pesquisa",[[1,"teste-pesquisa"]]],["snk-data-unit",[[2,"snk-data-unit",{"dataState":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"autoLoad":[4,"auto-load"],"getDataUnit":[64]}]]],["snk-application",[[2,"snk-application",{"messagesBuilder":[1040],"isUserSup":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getDataUnit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64],"loadGridConfig":[64],"saveGridConfig":[64],"executeSearch":[64],"isDebugMode":[64]}]]],["snk-form_2",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[8,"records-validator"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_editionFormConfig":[32],"_insertionFormConfig":[32]}],[6,"snk-grid",{"configName":[1,"config-name"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_gridConfig":[32]}]]],["snk-pesquisa",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["snk-taskbar",[[6,"snk-taskbar",{"buttons":[1],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"_permissions":[32]}]]]], options);
13
+ return bootstrapLazy([["snk-crud",[[6,"snk-crud",{"configName":[1,"config-name"],"actionsList":[16],"recordsValidator":[16],"_dataUnit":[32],"_dataState":[32]}]]],["teste-pesquisa",[[1,"teste-pesquisa"]]],["snk-data-unit",[[2,"snk-data-unit",{"dataState":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"autoLoad":[4,"auto-load"],"getDataUnit":[64]}]]],["snk-application",[[2,"snk-application",{"messagesBuilder":[1040],"isUserSup":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getDataUnit":[64],"getResourceID":[64],"alert":[64],"error":[64],"message":[64],"confirm":[64],"info":[64],"loadFormConfig":[64],"loadGridConfig":[64],"saveGridConfig":[64],"executeSearch":[64],"isDebugMode":[64]}]]],["snk-form_2",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[16],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_editionFormConfig":[32],"_insertionFormConfig":[32]}],[6,"snk-grid",{"configName":[1,"config-name"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_gridConfig":[32]}]]],["snk-pesquisa",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["snk-taskbar",[[6,"snk-taskbar",{"buttons":[1],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"_permissions":[32]}]]]], options);
14
14
  });
15
15
  };
16
16
 
@@ -13,5 +13,5 @@ const patchBrowser = () => {
13
13
  };
14
14
 
15
15
  patchBrowser().then(options => {
16
- return bootstrapLazy([["snk-crud",[[6,"snk-crud",{"configName":[1,"config-name"],"actionsList":[16],"recordsValidator":[8,"records-validator"],"_dataUnit":[32],"_dataState":[32]}]]],["teste-pesquisa",[[1,"teste-pesquisa"]]],["snk-data-unit",[[2,"snk-data-unit",{"dataState":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"autoLoad":[4,"auto-load"],"getDataUnit":[64]}]]],["snk-application",[[2,"snk-application",{"messagesBuilder":[1040],"isUserSup":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getDataUnit":[64],"getResourceID":[64],"alert":[64],"error":[64],"confirm":[64],"info":[64],"loadFormConfig":[64],"loadGridConfig":[64],"saveGridConfig":[64],"executeSearch":[64],"isDebugMode":[64]}]]],["snk-form_2",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[8,"records-validator"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_editionFormConfig":[32],"_insertionFormConfig":[32]}],[6,"snk-grid",{"configName":[1,"config-name"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_gridConfig":[32]}]]],["snk-pesquisa",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["snk-taskbar",[[6,"snk-taskbar",{"buttons":[1],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"_permissions":[32]}]]]], options);
16
+ return bootstrapLazy([["snk-crud",[[6,"snk-crud",{"configName":[1,"config-name"],"actionsList":[16],"recordsValidator":[16],"_dataUnit":[32],"_dataState":[32]}]]],["teste-pesquisa",[[1,"teste-pesquisa"]]],["snk-data-unit",[[2,"snk-data-unit",{"dataState":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"autoLoad":[4,"auto-load"],"getDataUnit":[64]}]]],["snk-application",[[2,"snk-application",{"messagesBuilder":[1040],"isUserSup":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"createDataunit":[64],"getDataUnit":[64],"getResourceID":[64],"alert":[64],"error":[64],"message":[64],"confirm":[64],"info":[64],"loadFormConfig":[64],"loadGridConfig":[64],"saveGridConfig":[64],"executeSearch":[64],"isDebugMode":[64]}]]],["snk-form_2",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[16],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_editionFormConfig":[32],"_insertionFormConfig":[32]}],[6,"snk-grid",{"configName":[1,"config-name"],"actionsList":[16],"_dataUnit":[32],"_configLoaded":[32],"_dataState":[32],"_gridConfig":[32]}]]],["snk-pesquisa",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["snk-taskbar",[[6,"snk-taskbar",{"buttons":[1],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"_permissions":[32]}]]]], options);
17
17
  });
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-6a83ac96.js';
2
2
  import { ErrorException, StringUtils, DataUnit, DataType, ChangeOperation, DateUtils, ObjectUtils, WaitingChangeException, WarningException, DependencyType, ApplicationContext, ErrorTracking } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { S as SnkMessageBuilder } from './SnkMessageBuilder-3835f9d8.js';
4
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder-17d91b88.js';
5
5
 
6
6
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
7
7
 
@@ -6511,20 +6511,23 @@ class DataFetcher {
6511
6511
  resolveURL() {
6512
6512
  return UrlUtils.getUrlBase();
6513
6513
  }
6514
- getContext() {
6514
+ getContext(module) {
6515
6515
  const urlParams = UrlUtils.getQueryParams(location.search);
6516
6516
  return {
6517
- baseUrl: `${this.resolveURL()}/mge/service.sbr`,
6517
+ baseUrl: `${this.resolveURL()}/${module}/service.sbr`,
6518
6518
  appName: "SankhyaBlocks",
6519
6519
  mgeSession: `${window['skw_session'] || urlParams.mgeSession}`,
6520
6520
  globalID: "85C0093DFA240EAB699B4E47A10215BD",
6521
+ //FIXME: Precisamos ajustar para buscar o resourceId pela aplicação
6521
6522
  resourceID: "br.com.sankhya.mov.bancaria"
6522
6523
  };
6523
6524
  }
6524
6525
  async callServiceBroker(serviceName, payload) {
6525
6526
  return new Promise((accept, reject) => {
6526
- const ctx = this.getContext();
6527
- const url = `${ctx.baseUrl}?serviceName=${serviceName}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
6527
+ const parts = serviceName.split("@");
6528
+ const [module, name] = parts.length === 2 ? parts : ['mge', serviceName];
6529
+ const ctx = this.getContext(module);
6530
+ const url = `${ctx.baseUrl}?serviceName=${name}&counter=21&application=${ctx.appName}&outputType=json&preventTransform=false&mgeSession=${ctx.mgeSession}&resourceID=${ctx.resourceID}&globalID=${ctx.globalID}&allowConcurrentCalls=true`;
6528
6531
  document.cookie = `JSESSIONID=${ctx.mgeSession};`;
6529
6532
  const http = new XMLHttpRequest();
6530
6533
  DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url }));
@@ -7311,7 +7314,7 @@ const SnkApplication = class {
7311
7314
  const waitingAuth = this._authPromises.length > 0;
7312
7315
  this._authPromises.push(new PendingPromise(resolve, reject));
7313
7316
  if (!waitingAuth) {
7314
- this.authFetcher.getData(this._resourceID).then((authList) => {
7317
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7315
7318
  this._auth = authList;
7316
7319
  while (this._authPromises.length > 0) {
7317
7320
  this._authPromises.pop().resolve(this._auth);
@@ -7562,11 +7565,17 @@ const SnkApplication = class {
7562
7565
  async error(title, message, icon, options) {
7563
7566
  return ApplicationUtils.error(title, message, icon, options);
7564
7567
  }
7568
+ /**
7569
+ * Exibe um diálogo de mensagem comum
7570
+ */
7571
+ async message(title, message, icon, options) {
7572
+ return ApplicationUtils.message(title, message, icon, options);
7573
+ }
7565
7574
  /**
7566
7575
  * Exibe um diálogo de confirmação
7567
7576
  */
7568
- async confirm(title, message, icon, critical, options) {
7569
- return ApplicationUtils.confirm(title, message, icon, critical, options);
7577
+ async confirm(title, message, icon, dialogType, options) {
7578
+ return ApplicationUtils.confirm(title, message, icon, dialogType, options);
7570
7579
  }
7571
7580
  /**
7572
7581
  * Mostra uma informação efêmera (de segundo plano).
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-6a83ac96.js';
2
2
 
3
- const snkCrudCss = ".sc-snk-crud-h{display:flex;height:100%;width:100%}";
3
+ const snkCrudCss = ".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";
4
4
 
5
5
  const GRID_MODE = 0;
6
6
  const FORM_MODE = 1;
@@ -51,7 +51,7 @@ const SnkCrud = class {
51
51
  }
52
52
  }
53
53
  render() {
54
- return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", null))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
54
+ return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }))), h("stack-item", null, h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
55
55
  }
56
56
  get _element() { return getElement(this); }
57
57
  };
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-6a83ac96.js';
2
2
  import { Action, ApplicationContext } from '@sankhyalabs/core';
3
- import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { O as OperationMap } from './SnkMessageBuilder-3835f9d8.js';
3
+ import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
+ import { O as OperationMap } from './SnkMessageBuilder-17d91b88.js';
5
5
 
6
6
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";
7
7
 
@@ -180,7 +180,7 @@ const SnkDataUnit = class {
180
180
  }
181
181
  else {
182
182
  const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
183
- ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, "delete", true, { btnConfirmDanger: true })
183
+ ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, "delete", DialogType.CRITICAL, { btnConfirmDanger: true })
184
184
  .then((result) => resolve(result ? action : undefined));
185
185
  }
186
186
  }
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-6a83ac96.js';
2
2
  import { ApplicationContext } from '@sankhyalabs/core';
3
- import { T as TaskbarElement } from './taskbar-elements-6d01a640.js';
3
+ import { T as TaskbarElement } from './taskbar-elements-5ea74223.js';
4
4
 
5
5
  const snkFormCss = ".sc-snk-form-h{display:block}.snk-form.sc-snk-form{position:relative;padding:var(--space--large);padding-top:var(--space--medium)}.snk-form__header.sc-snk-form{position:relative;padding-top:var(--space--medium);padding-bottom:var(--space--medium);margin-bottom:var(--space--medium)}.snk-form__header--fixed.sc-snk-form{position:sticky;top:0;background:var(--background--body);z-index:var(--more-visible, 2);padding-left:var(--space--large);padding-right:var(--space--large);margin-left:calc(var(--space--large) * -1);margin-right:calc(var(--space--large) * -1);width:calc(100% + (var(--space--large) * 2))}";
6
6
 
@@ -163,7 +163,7 @@ const SnkGrid = class {
163
163
  if (!this._configLoaded || !this._dataUnit) {
164
164
  return undefined;
165
165
  }
166
- return (h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, h("slot", null)), h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList }))));
166
+ return (h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, h("slot", { name: "SnkGridHeader" })), h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" }))));
167
167
  }
168
168
  get _element() { return getElement(this); }
169
169
  };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-6a83ac96.js';
2
2
  import { ApplicationContext } from '@sankhyalabs/core';
3
- import { A as AuthorizationElements, T as TaskbarElement, b as buildElem } from './taskbar-elements-6d01a640.js';
3
+ import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem } from './taskbar-elements-5ea74223.js';
4
4
 
5
5
  const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
6
6
 
@@ -8,6 +8,21 @@ const SnkTaskbar = class {
8
8
  constructor(hostRef) {
9
9
  registerInstance(this, hostRef);
10
10
  this.actionClick = createEvent(this, "actionClick", 7);
11
+ this._titleKeyByElement = {
12
+ [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
13
+ [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
14
+ [TaskbarElement.NEXT]: "snkTaskbar.titleNext",
15
+ [TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
16
+ [TaskbarElement.CLONE]: "snkTaskbar.titleClone",
17
+ [TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
18
+ [TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
19
+ [TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
20
+ [TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
21
+ [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
22
+ [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
23
+ [TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
24
+ [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
25
+ };
11
26
  }
12
27
  observeButtons() {
13
28
  this._definitions = undefined;
@@ -18,7 +33,7 @@ const SnkTaskbar = class {
18
33
  if (strButtons) {
19
34
  strButtons.split(",").forEach(buttonName => {
20
35
  buttonName = buttonName.trim();
21
- if (this.isAllowed(buttonName)) {
36
+ if (VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
22
37
  elements.push(buttonName.trim());
23
38
  }
24
39
  });
@@ -38,35 +53,14 @@ const SnkTaskbar = class {
38
53
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
39
54
  */
40
55
  getTitle(element) {
41
- switch (element) {
42
- case TaskbarElement.UPDATE:
43
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleUpdate", {});
44
- case TaskbarElement.PREVIOUS:
45
- return this._application.messagesBuilder.getMessage("snkTaskbar.titlePrevious", {});
46
- case TaskbarElement.NEXT:
47
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleNext", {});
48
- case TaskbarElement.REFRESH:
49
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRefresh", {});
50
- case TaskbarElement.CLONE:
51
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleClone", {});
52
- case TaskbarElement.REMOVE:
53
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRemove", {});
54
- case TaskbarElement.MORE_OPTIONS:
55
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleMoreOptions", {});
56
- case TaskbarElement.INSERT:
57
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleInsert", {});
58
- case TaskbarElement.CANCEL:
59
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleCancel", {});
60
- case TaskbarElement.SAVE:
61
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleSave", {});
62
- case TaskbarElement.GRID_MODE:
63
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleGridMode", {});
64
- case TaskbarElement.CONFIG_GRID:
65
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleConfigGrid", {});
66
- case TaskbarElement.FORM_MODE:
67
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleFormMode", {});
56
+ let key;
57
+ if (this.isAllowed(element)) {
58
+ key = this._titleKeyByElement[element];
68
59
  }
69
- return "";
60
+ else {
61
+ key = "snkTaskbar.forbidden";
62
+ }
63
+ return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
70
64
  }
71
65
  elementClick(elem) {
72
66
  if (this.dataUnit) {
@@ -100,6 +94,9 @@ const SnkTaskbar = class {
100
94
  this.actionClick.emit(elem);
101
95
  }
102
96
  isEnabled(elem) {
97
+ if (!this.isAllowed(elem)) {
98
+ return false;
99
+ }
103
100
  return !(this.disabledButtons && this.disabledButtons.includes(elem));
104
101
  }
105
102
  getElement(index, def) {
@@ -25,6 +25,10 @@ var AuthorizationElements;
25
25
  AuthorizationElements["INSERT"] = "INSERT";
26
26
  AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
27
27
  })(AuthorizationElements || (AuthorizationElements = {}));
28
+ var VisibleWhenForbidden;
29
+ (function (VisibleWhenForbidden) {
30
+ VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
31
+ })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
28
32
  const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
29
33
  switch (element) {
30
34
  case TaskbarElement.PREVIOUS:
@@ -65,4 +69,4 @@ function iconTextButton(iconName, element, className, getTitle, action, isEnable
65
69
  h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
66
70
  }
67
71
 
68
- export { AuthorizationElements as A, TaskbarElement as T, buildElem as b };
72
+ export { AuthorizationElements as A, TaskbarElement as T, VisibleWhenForbidden as V, buildElem as b };
@@ -1 +1 @@
1
- import{r as t,h as i,g as s}from"./p-cd1dc099.js";const h=class{constructor(i){t(this,i)}async gridToForm(t=!1){this._backToGrid=!t&&0===await this._viewStack.getSelectedIndex(),this._viewStack.show(1)}async executeAction(t){"GRID_MODE"===t?this._viewStack.show(0):"FORM_MODE"!==t&&"UPDATE"!==t||this.gridToForm("UPDATE"!==t)}insertionModeHandler(){this.gridToForm()}cancelHandler(){this._backToGrid&&this._viewStack.show(0)}componentWillLoad(){let t=this._element.parentElement;for(;t;){if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){this._snkDataUnit=t,this._snkDataUnit.addEventListener("insertionMode",(()=>this.insertionModeHandler())),this._snkDataUnit.addEventListener("cancelEdition",(()=>this.cancelHandler())),this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit||this._snkDataUnit.addEventListener("dataUnitReady",(t=>{this._dataUnit=t.detail})),this._snkDataUnit.addEventListener("dataStateChange",(t=>{this._dataState=t.detail}));break}t=t.parentElement}}render(){return i("ez-view-stack",{ref:t=>this._viewStack=t},i("stack-item",null,i("snk-grid",{configName:this.configName,onGridDoubleClick:()=>this.gridToForm(!0),onActionClick:t=>this.executeAction(t.detail),actionsList:this.actionsList},i("slot",null))),i("stack-item",null,i("snk-form",{configName:this.configName,actionsList:this.actionsList,onExit:()=>this._viewStack.show(0),recordsValidator:this.recordsValidator,onActionClick:t=>this.executeAction(t.detail)})))}get _element(){return s(this)}};h.style=".sc-snk-crud-h{display:flex;height:100%;width:100%}";export{h as snk_crud}
1
+ import{r as t,h as i,g as s}from"./p-cd1dc099.js";const e=class{constructor(i){t(this,i)}async gridToForm(t=!1){this._backToGrid=!t&&0===await this._viewStack.getSelectedIndex(),this._viewStack.show(1)}async executeAction(t){"GRID_MODE"===t?this._viewStack.show(0):"FORM_MODE"!==t&&"UPDATE"!==t||this.gridToForm("UPDATE"!==t)}insertionModeHandler(){this.gridToForm()}cancelHandler(){this._backToGrid&&this._viewStack.show(0)}componentWillLoad(){let t=this._element.parentElement;for(;t;){if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){this._snkDataUnit=t,this._snkDataUnit.addEventListener("insertionMode",(()=>this.insertionModeHandler())),this._snkDataUnit.addEventListener("cancelEdition",(()=>this.cancelHandler())),this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit||this._snkDataUnit.addEventListener("dataUnitReady",(t=>{this._dataUnit=t.detail})),this._snkDataUnit.addEventListener("dataStateChange",(t=>{this._dataState=t.detail}));break}t=t.parentElement}}render(){return i("ez-view-stack",{ref:t=>this._viewStack=t},i("stack-item",null,i("snk-grid",{configName:this.configName,onGridDoubleClick:()=>this.gridToForm(!0),onActionClick:t=>this.executeAction(t.detail),actionsList:this.actionsList},i("slot",{name:"SnkGridHeader"}),i("slot",{name:"SnkGridFooter"}))),i("stack-item",null,i("snk-form",{configName:this.configName,actionsList:this.actionsList,onExit:()=>this._viewStack.show(0),recordsValidator:this.recordsValidator,onActionClick:t=>this.executeAction(t.detail)})))}get _element(){return s(this)}};e.style=".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";export{e as snk_crud}
@@ -0,0 +1 @@
1
+ const e={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Aleração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Excluir",removeConfirmation:"Deseja realmente excluir o registro atual?",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso."},s={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},goBackTitle:"Voltar"},r={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigGrid:"Configuração da grade",forbidden:"Permissão não liberada"};class a{constructor(){this._defaults={snkDataUnit:e,snkForm:s,snkTaskbar:r},this._currentOperation=i.CLEAN,this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,s){if(null==e)return;var r=e.split(".");let a=this.resolveMessage(r,this._appMessages);if(null==a&&(a=this.resolveMessage(r,this._defaults)),this.customMessageBuilder){const r=this.customMessageBuilder(e,a,s);a=r.message,s=r.params}return this.postProcess(a,s)}resolveMessage(e,s){if(null==s)return;const r=s[e[0]];return r?this.isOperationSensitive(r)?r[this._currentOperation]:1===e.length||null==r||"string"==typeof r?r:this.resolveMessage(e.slice(1),r):void 0}isOperationSensitive(e){return null!=e[i.CLONE]||null!=e[i.INSERT]||null!=e[i.UPDATE]||null!=e[i.CLEAN]}postProcess(e,s){if(e){const r=/(.*?)\{\{(.+?)\}\}/g;let a,i="",t=e;for(;null!==(a=r.exec(e));){const[r,o,n]=a,l=a.index+r.length;t=l<e.length?e.substring(l):"";let d=s?s[n]:void 0;null==d&&(d=""),i+=o+d}return i+t}return e}loadAppMessages(){return new Promise(((e,s)=>{const r="dev"!==window.applicationenv?`/${window.MGE_MODULE_NAME}/labsApps/${window.APPLICATION_NAME}/messages/appmessages.js`:"/messages/appmessages.js";import(r).then((s=>{e(s.default)})).catch((e=>{s(e)}))}))}}var i;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(i||(i={}));export{i as O,a as S}
@@ -0,0 +1 @@
1
+ import{h as e}from"./p-cd1dc099.js";var t,n,s;!function(e){e.PREVIOUS="PREVIOUS",e.NEXT="NEXT",e.REFRESH="REFRESH",e.UPDATE="UPDATE",e.CLONE="CLONE",e.REMOVE="REMOVE",e.INSERT="INSERT",e.CANCEL="CANCEL",e.SAVE="SAVE",e.GRID_MODE="GRID_MODE",e.FORM_MODE="FORM_MODE",e.CONFIG_GRID="CONFIG_GRID",e.MORE_OPTIONS="MORE_OPTIONS",e.DIVIDER="DIVIDER"}(t||(t={})),function(e){e.UPDATE="UPDATE",e.CLONE="CLONE",e.REMOVE="REMOVE",e.INSERT="INSERT",e.CONFIG_GRID="CONFIG_GRID"}(n||(n={})),function(e){e.CONFIG_GRID="CONFIG_GRID"}(s||(s={}));const r=(n,s,r,i,l,o)=>{switch(n){case t.PREVIOUS:return a("chevron-left",n,s,r,i,l);case t.NEXT:return a("chevron-right",n,s,r,i,l);case t.REFRESH:return a("sync",n,s,r,i,l);case t.UPDATE:return a("edit",n,s,r,i,l);case t.CLONE:return a("copy",n,s,r,i,l);case t.REMOVE:return a("delete",n,s,r,i,l);case t.INSERT:return c("plus",n,s,r,i,l);case t.CANCEL:return e("ez-button",{title:r(n),label:r(n),size:"small",enabled:l(n),onClick:()=>i(n)});case t.SAVE:return c("save",n,s,r,i,l);case t.GRID_MODE:return a("table",n,s,r,i,l);case t.FORM_MODE:return a("list",n,s,r,i,l);case t.CONFIG_GRID:return a("settings-inverted",n,s,r,i,l);case t.MORE_OPTIONS:return o&&o.length>0?e("ez-actions-button",{title:r(n),size:"small",class:s,enabled:l(n),onEzAction:e=>i(e.detail.value),actions:o}):void 0;case t.DIVIDER:return e("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium"})}};function a(t,n,s,r,a,c){return e("ez-button",{key:t,title:r(n),mode:"icon",size:"small",class:s,iconName:t,enabled:c(n),onClick:()=>a(n)})}function c(t,n,s,r,a,c){return e("ez-button",{key:t,title:r(n),label:r(n),size:"small",class:s,enabled:c(n),onClick:()=>a(n)},e("ez-icon",{class:"ez-padding-right--small",slot:"leftIcon",iconName:t}))}export{n as A,t as T,s as V,r as b}