@sankhyalabs/sankhyablocks 1.3.31-beta.12 → 1.3.31-beta.14

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 (40) 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 +60 -2
  5. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  6. package/dist/cjs/snk-form_2.cjs.entry.js +1 -1
  7. package/dist/cjs/snk-taskbar.cjs.entry.js +27 -30
  8. package/dist/cjs/{taskbar-elements-73d524e5.js → taskbar-elements-2888ceb6.js} +4 -0
  9. package/dist/collection/components/snk-application/snk-application.js +49 -1
  10. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +4 -0
  11. package/dist/collection/components/snk-taskbar/snk-taskbar.js +29 -30
  12. package/dist/collection/lib/http/data-fetcher/fetchers/totals-fetcher.js +47 -0
  13. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +2 -1
  14. package/dist/components/SnkMessageBuilder.js +2 -1
  15. package/dist/components/snk-application2.js +60 -1
  16. package/dist/components/snk-taskbar2.js +30 -29
  17. package/dist/esm/{SnkMessageBuilder-3835f9d8.js → SnkMessageBuilder-17d91b88.js} +2 -1
  18. package/dist/esm/loader.js +1 -1
  19. package/dist/esm/sankhyablocks.js +1 -1
  20. package/dist/esm/snk-application.entry.js +60 -2
  21. package/dist/esm/snk-data-unit.entry.js +1 -1
  22. package/dist/esm/snk-form_2.entry.js +1 -1
  23. package/dist/esm/snk-taskbar.entry.js +27 -30
  24. package/dist/esm/{taskbar-elements-6d01a640.js → taskbar-elements-5ea74223.js} +5 -1
  25. package/dist/sankhyablocks/{p-962d9bdd.entry.js → p-825d2c38.entry.js} +7 -2
  26. package/dist/sankhyablocks/p-ab694dbc.js +1 -0
  27. package/dist/sankhyablocks/p-b559117b.js +1 -0
  28. package/dist/sankhyablocks/{p-2df33095.entry.js → p-ce2d1214.entry.js} +1 -1
  29. package/dist/sankhyablocks/p-d25803a1.entry.js +1 -0
  30. package/dist/sankhyablocks/{p-9b427c4c.entry.js → p-edf81d2c.entry.js} +1 -1
  31. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  32. package/dist/types/components/snk-application/snk-application.d.ts +8 -0
  33. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -0
  34. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +15 -0
  35. package/dist/types/components.d.ts +5 -1
  36. package/dist/types/lib/http/data-fetcher/fetchers/totals-fetcher.d.ts +8 -0
  37. package/package.json +1 -1
  38. package/dist/sankhyablocks/p-72bccbb6.js +0 -1
  39. package/dist/sankhyablocks/p-bab507ad.entry.js +0 -1
  40. package/dist/sankhyablocks/p-dd10a5e3.js +0 -1
@@ -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":[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);
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],"loadTotals":[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":[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);
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],"loadTotals":[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
 
@@ -7278,6 +7278,52 @@ class SnkErrorHandler {
7278
7278
 
7279
7279
  function _0x53e1(){const _0x340df8=['2909523kXwted','CompanyName=Sankhya\x20Jiva\x20Tecnologia\x20e\x20Inovao\x20Ltda,LicensedApplication=Sankhya\x20Gestao,LicenseType=SingleApplication,LicensedConcurrentDeveloperCount=2,LicensedProductionInstancesCount=0,AssetReference=AG-019460,ExpiryDate=9_November_2022_[v2]_MTY2Nzk1MjAwMDAwMA==10487151e296ee4360f80961ca960869','1131048CARoeW','502909mLEPmu','447255iQEXuN','428UHbJwW','270AFTxAV','194369jhGqTI','1540nWuTrj','2044062GicUQI','30CkXPWg'];_0x53e1=function(){return _0x340df8;};return _0x53e1();}const _0xc7632f=_0x15c2;function _0x15c2(_0x353a9c,_0x3e4a5a){const _0x53e110=_0x53e1();return _0x15c2=function(_0x15c2aa,_0x219858){_0x15c2aa=_0x15c2aa-0x188;let _0x307231=_0x53e110[_0x15c2aa];return _0x307231;},_0x15c2(_0x353a9c,_0x3e4a5a);}(function(_0x42617e,_0x57debe){const _0x31061a=_0x15c2,_0x128d7d=_0x42617e();while(!![]){try{const _0x1c9bb1=-parseInt(_0x31061a(0x18e))/0x1+-parseInt(_0x31061a(0x189))/0x2+parseInt(_0x31061a(0x18b))/0x3+-parseInt(_0x31061a(0x190))/0x4*(parseInt(_0x31061a(0x188))/0x5)+-parseInt(_0x31061a(0x191))/0x6*(-parseInt(_0x31061a(0x192))/0x7)+parseInt(_0x31061a(0x18d))/0x8+-parseInt(_0x31061a(0x18f))/0x9*(-parseInt(_0x31061a(0x18a))/0xa);if(_0x1c9bb1===_0x57debe)break;else _0x128d7d['push'](_0x128d7d['shift']());}catch(_0x1bd816){_0x128d7d['push'](_0x128d7d['shift']());}}}(_0x53e1,0xe8676));const agGridLicense=_0xc7632f(0x18c);
7280
7280
 
7281
+ class TotalsFetcher {
7282
+ constructor() {
7283
+ this.templateByQuery = new Map();
7284
+ this.buldTemplates();
7285
+ }
7286
+ buldTemplates() {
7287
+ this.templateByQuery.set("fetchTotals", dist.gql `query($filters: [InputFilter!] $name: String!) {
7288
+ $queryAlias$: fetchTotals(name: $name, filters: $filters ){
7289
+ name
7290
+ value
7291
+ }
7292
+ }`);
7293
+ }
7294
+ async getTotals(name, resourceID, filters) {
7295
+ const path = `totals://${name}/${resourceID}`;
7296
+ let variables = {
7297
+ name: path,
7298
+ filters: filters
7299
+ };
7300
+ return DataFetcher.get().callGraphQL({
7301
+ values: variables,
7302
+ query: this.templateByQuery.get("fetchTotals"),
7303
+ });
7304
+ }
7305
+ fetchTotals(name, resourceID, filters = []) {
7306
+ return new Promise((accept, reject) => {
7307
+ this.getTotals(name, resourceID, filters)
7308
+ .then((result) => {
7309
+ if (result.length > 0) {
7310
+ const totalsData = new Map();
7311
+ result.forEach(total => {
7312
+ totalsData.set(total.name, parseFloat(total.value));
7313
+ });
7314
+ accept(totalsData);
7315
+ }
7316
+ else {
7317
+ reject(`Não foi possível recuperar os totalizadores`);
7318
+ }
7319
+ })
7320
+ .catch((error) => {
7321
+ reject(error);
7322
+ });
7323
+ });
7324
+ }
7325
+ }
7326
+
7281
7327
  const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
7282
7328
 
7283
7329
  const SnkApplication = class {
@@ -7314,7 +7360,7 @@ const SnkApplication = class {
7314
7360
  const waitingAuth = this._authPromises.length > 0;
7315
7361
  this._authPromises.push(new PendingPromise(resolve, reject));
7316
7362
  if (!waitingAuth) {
7317
- this.authFetcher.getData(this._resourceID).then((authList) => {
7363
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7318
7364
  this._auth = authList;
7319
7365
  while (this._authPromises.length > 0) {
7320
7366
  this._authPromises.pop().resolve(this._auth);
@@ -7595,6 +7641,12 @@ const SnkApplication = class {
7595
7641
  async loadGridConfig(name) {
7596
7642
  return this.gridConfigFetcher.getConfig(name, this.resourceID);
7597
7643
  }
7644
+ /**
7645
+ * Busca os totalizadores da grade.
7646
+ */
7647
+ async loadTotals(name, resourceID, filters) {
7648
+ return this.totalsFetcher.fetchTotals(name, resourceID, filters);
7649
+ }
7598
7650
  /**
7599
7651
  * Salva a configuração de grade.
7600
7652
  */
@@ -7628,6 +7680,12 @@ const SnkApplication = class {
7628
7680
  }
7629
7681
  return this._gridConfigFetcher;
7630
7682
  }
7683
+ get totalsFetcher() {
7684
+ if (!this._totalsFetcher) {
7685
+ this._totalsFetcher = new TotalsFetcher();
7686
+ }
7687
+ return this._totalsFetcher;
7688
+ }
7631
7689
  get pesquisaFetcher() {
7632
7690
  if (!this._pesquisaFetcher) {
7633
7691
  this._pesquisaFetcher = new PesquisaFetcher();
@@ -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
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { O as OperationMap } from './SnkMessageBuilder-3835f9d8.js';
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
 
@@ -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
 
@@ -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 };