@sankhyalabs/sankhyablocks 1.3.31-beta.12 → 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 (32) hide show
  1. package/dist/cjs/{SnkMessageBuilder-13239761.js → SnkMessageBuilder-bb55d4c4.js} +2 -1
  2. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  3. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  4. package/dist/cjs/snk-form_2.cjs.entry.js +1 -1
  5. package/dist/cjs/snk-taskbar.cjs.entry.js +27 -30
  6. package/dist/cjs/{taskbar-elements-73d524e5.js → taskbar-elements-2888ceb6.js} +4 -0
  7. package/dist/collection/components/snk-application/snk-application.js +1 -1
  8. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +4 -0
  9. package/dist/collection/components/snk-taskbar/snk-taskbar.js +29 -30
  10. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +2 -1
  11. package/dist/components/SnkMessageBuilder.js +2 -1
  12. package/dist/components/snk-application2.js +1 -1
  13. package/dist/components/snk-taskbar2.js +30 -29
  14. package/dist/esm/{SnkMessageBuilder-3835f9d8.js → SnkMessageBuilder-17d91b88.js} +2 -1
  15. package/dist/esm/snk-application.entry.js +2 -2
  16. package/dist/esm/snk-data-unit.entry.js +1 -1
  17. package/dist/esm/snk-form_2.entry.js +1 -1
  18. package/dist/esm/snk-taskbar.entry.js +27 -30
  19. package/dist/esm/{taskbar-elements-6d01a640.js → taskbar-elements-5ea74223.js} +5 -1
  20. package/dist/sankhyablocks/p-ab694dbc.js +1 -0
  21. package/dist/sankhyablocks/p-b559117b.js +1 -0
  22. package/dist/sankhyablocks/{p-962d9bdd.entry.js → p-b7e029cd.entry.js} +2 -2
  23. package/dist/sankhyablocks/{p-2df33095.entry.js → p-ce2d1214.entry.js} +1 -1
  24. package/dist/sankhyablocks/p-d25803a1.entry.js +1 -0
  25. package/dist/sankhyablocks/{p-9b427c4c.entry.js → p-edf81d2c.entry.js} +1 -1
  26. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  27. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -0
  28. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +15 -0
  29. package/package.json +1 -1
  30. package/dist/sankhyablocks/p-72bccbb6.js +0 -1
  31. package/dist/sankhyablocks/p-bab507ad.entry.js +0 -1
  32. package/dist/sankhyablocks/p-dd10a5e3.js +0 -1
@@ -64,8 +64,9 @@ const snkTaskbarMessages = {
64
64
  titleCancel: "Cancelar",
65
65
  titleSave: "Salvar",
66
66
  titleGridMode: "Modo Grade",
67
+ titleFormMode: "Modo Formulário",
67
68
  titleConfigGrid: "Configuração da grade",
68
- titleFormMode: "Modo Formulário"
69
+ forbidden: "Permissão não liberada"
69
70
  };
70
71
 
71
72
  class SnkMessageBuilder {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-c6671817.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
- const SnkMessageBuilder = require('./SnkMessageBuilder-13239761.js');
8
+ const SnkMessageBuilder = require('./SnkMessageBuilder-bb55d4c4.js');
9
9
 
10
10
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
11
11
 
@@ -7318,7 +7318,7 @@ const SnkApplication = class {
7318
7318
  const waitingAuth = this._authPromises.length > 0;
7319
7319
  this._authPromises.push(new PendingPromise(resolve, reject));
7320
7320
  if (!waitingAuth) {
7321
- this.authFetcher.getData(this._resourceID).then((authList) => {
7321
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7322
7322
  this._auth = authList;
7323
7323
  while (this._authPromises.length > 0) {
7324
7324
  this._authPromises.pop().resolve(this._auth);
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-c6671817.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
- const SnkMessageBuilder = require('./SnkMessageBuilder-13239761.js');
8
+ const SnkMessageBuilder = require('./SnkMessageBuilder-bb55d4c4.js');
9
9
 
10
10
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";
11
11
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c6671817.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const taskbarElements = require('./taskbar-elements-73d524e5.js');
7
+ const taskbarElements = require('./taskbar-elements-2888ceb6.js');
8
8
 
9
9
  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))}";
10
10
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c6671817.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const taskbarElements = require('./taskbar-elements-73d524e5.js');
7
+ const taskbarElements = require('./taskbar-elements-2888ceb6.js');
8
8
 
9
9
  const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
10
10
 
@@ -12,6 +12,21 @@ const SnkTaskbar = class {
12
12
  constructor(hostRef) {
13
13
  index.registerInstance(this, hostRef);
14
14
  this.actionClick = index.createEvent(this, "actionClick", 7);
15
+ this._titleKeyByElement = {
16
+ [taskbarElements.TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
17
+ [taskbarElements.TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
18
+ [taskbarElements.TaskbarElement.NEXT]: "snkTaskbar.titleNext",
19
+ [taskbarElements.TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
20
+ [taskbarElements.TaskbarElement.CLONE]: "snkTaskbar.titleClone",
21
+ [taskbarElements.TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
22
+ [taskbarElements.TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
23
+ [taskbarElements.TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
24
+ [taskbarElements.TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
25
+ [taskbarElements.TaskbarElement.SAVE]: "snkTaskbar.titleSave",
26
+ [taskbarElements.TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
27
+ [taskbarElements.TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
28
+ [taskbarElements.TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
29
+ };
15
30
  }
16
31
  observeButtons() {
17
32
  this._definitions = undefined;
@@ -22,7 +37,7 @@ const SnkTaskbar = class {
22
37
  if (strButtons) {
23
38
  strButtons.split(",").forEach(buttonName => {
24
39
  buttonName = buttonName.trim();
25
- if (this.isAllowed(buttonName)) {
40
+ if (taskbarElements.VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
26
41
  elements.push(buttonName.trim());
27
42
  }
28
43
  });
@@ -42,35 +57,14 @@ const SnkTaskbar = class {
42
57
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
43
58
  */
44
59
  getTitle(element) {
45
- switch (element) {
46
- case taskbarElements.TaskbarElement.UPDATE:
47
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleUpdate", {});
48
- case taskbarElements.TaskbarElement.PREVIOUS:
49
- return this._application.messagesBuilder.getMessage("snkTaskbar.titlePrevious", {});
50
- case taskbarElements.TaskbarElement.NEXT:
51
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleNext", {});
52
- case taskbarElements.TaskbarElement.REFRESH:
53
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRefresh", {});
54
- case taskbarElements.TaskbarElement.CLONE:
55
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleClone", {});
56
- case taskbarElements.TaskbarElement.REMOVE:
57
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRemove", {});
58
- case taskbarElements.TaskbarElement.MORE_OPTIONS:
59
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleMoreOptions", {});
60
- case taskbarElements.TaskbarElement.INSERT:
61
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleInsert", {});
62
- case taskbarElements.TaskbarElement.CANCEL:
63
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleCancel", {});
64
- case taskbarElements.TaskbarElement.SAVE:
65
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleSave", {});
66
- case taskbarElements.TaskbarElement.GRID_MODE:
67
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleGridMode", {});
68
- case taskbarElements.TaskbarElement.CONFIG_GRID:
69
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleConfigGrid", {});
70
- case taskbarElements.TaskbarElement.FORM_MODE:
71
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleFormMode", {});
60
+ let key;
61
+ if (this.isAllowed(element)) {
62
+ key = this._titleKeyByElement[element];
72
63
  }
73
- return "";
64
+ else {
65
+ key = "snkTaskbar.forbidden";
66
+ }
67
+ return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
74
68
  }
75
69
  elementClick(elem) {
76
70
  if (this.dataUnit) {
@@ -104,6 +98,9 @@ const SnkTaskbar = class {
104
98
  this.actionClick.emit(elem);
105
99
  }
106
100
  isEnabled(elem) {
101
+ if (!this.isAllowed(elem)) {
102
+ return false;
103
+ }
107
104
  return !(this.disabledButtons && this.disabledButtons.includes(elem));
108
105
  }
109
106
  getElement(index, def) {
@@ -27,6 +27,10 @@ exports.AuthorizationElements = void 0;
27
27
  AuthorizationElements["INSERT"] = "INSERT";
28
28
  AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
29
29
  })(exports.AuthorizationElements || (exports.AuthorizationElements = {}));
30
+ exports.VisibleWhenForbidden = void 0;
31
+ (function (VisibleWhenForbidden) {
32
+ VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
33
+ })(exports.VisibleWhenForbidden || (exports.VisibleWhenForbidden = {}));
30
34
  const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
31
35
  switch (element) {
32
36
  case exports.TaskbarElement.PREVIOUS:
@@ -52,7 +52,7 @@ export class SnkApplication {
52
52
  const waitingAuth = this._authPromises.length > 0;
53
53
  this._authPromises.push(new PendingPromise(resolve, reject));
54
54
  if (!waitingAuth) {
55
- this.authFetcher.getData(this._resourceID).then((authList) => {
55
+ this.authFetcher.getData(this.resourceID).then((authList) => {
56
56
  this._auth = authList;
57
57
  while (this._authPromises.length > 0) {
58
58
  this._authPromises.pop().resolve(this._auth);
@@ -24,6 +24,10 @@ export var AuthorizationElements;
24
24
  AuthorizationElements["INSERT"] = "INSERT";
25
25
  AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
26
26
  })(AuthorizationElements || (AuthorizationElements = {}));
27
+ export var VisibleWhenForbidden;
28
+ (function (VisibleWhenForbidden) {
29
+ VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
30
+ })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
27
31
  export const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
28
32
  switch (element) {
29
33
  case TaskbarElement.PREVIOUS:
@@ -1,7 +1,24 @@
1
1
  import { ApplicationContext } from '@sankhyalabs/core';
2
2
  import { Component, Event, h, Host, Prop, State, Watch } from '@stencil/core';
3
- import { TaskbarElement, buildElem, AuthorizationElements } from './elements/taskbar-elements';
3
+ import { TaskbarElement, buildElem, AuthorizationElements, VisibleWhenForbidden } from './elements/taskbar-elements';
4
4
  export class SnkTaskbar {
5
+ constructor() {
6
+ this._titleKeyByElement = {
7
+ [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
8
+ [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
9
+ [TaskbarElement.NEXT]: "snkTaskbar.titleNext",
10
+ [TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
11
+ [TaskbarElement.CLONE]: "snkTaskbar.titleClone",
12
+ [TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
13
+ [TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
14
+ [TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
15
+ [TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
16
+ [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
17
+ [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
18
+ [TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
19
+ [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
20
+ };
21
+ }
5
22
  observeButtons() {
6
23
  this._definitions = undefined;
7
24
  }
@@ -11,7 +28,7 @@ export class SnkTaskbar {
11
28
  if (strButtons) {
12
29
  strButtons.split(",").forEach(buttonName => {
13
30
  buttonName = buttonName.trim();
14
- if (this.isAllowed(buttonName)) {
31
+ if (VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
15
32
  elements.push(buttonName.trim());
16
33
  }
17
34
  });
@@ -31,35 +48,14 @@ export class SnkTaskbar {
31
48
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
32
49
  */
33
50
  getTitle(element) {
34
- switch (element) {
35
- case TaskbarElement.UPDATE:
36
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleUpdate", {});
37
- case TaskbarElement.PREVIOUS:
38
- return this._application.messagesBuilder.getMessage("snkTaskbar.titlePrevious", {});
39
- case TaskbarElement.NEXT:
40
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleNext", {});
41
- case TaskbarElement.REFRESH:
42
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRefresh", {});
43
- case TaskbarElement.CLONE:
44
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleClone", {});
45
- case TaskbarElement.REMOVE:
46
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleRemove", {});
47
- case TaskbarElement.MORE_OPTIONS:
48
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleMoreOptions", {});
49
- case TaskbarElement.INSERT:
50
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleInsert", {});
51
- case TaskbarElement.CANCEL:
52
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleCancel", {});
53
- case TaskbarElement.SAVE:
54
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleSave", {});
55
- case TaskbarElement.GRID_MODE:
56
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleGridMode", {});
57
- case TaskbarElement.CONFIG_GRID:
58
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleConfigGrid", {});
59
- case TaskbarElement.FORM_MODE:
60
- return this._application.messagesBuilder.getMessage("snkTaskbar.titleFormMode", {});
51
+ let key;
52
+ if (this.isAllowed(element)) {
53
+ key = this._titleKeyByElement[element];
54
+ }
55
+ else {
56
+ key = "snkTaskbar.forbidden";
61
57
  }
62
- return "";
58
+ return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
63
59
  }
64
60
  elementClick(elem) {
65
61
  if (this.dataUnit) {
@@ -93,6 +89,9 @@ export class SnkTaskbar {
93
89
  this.actionClick.emit(elem);
94
90
  }
95
91
  isEnabled(elem) {
92
+ if (!this.isAllowed(elem)) {
93
+ return false;
94
+ }
96
95
  return !(this.disabledButtons && this.disabledButtons.includes(elem));
97
96
  }
98
97
  getElement(index, def) {
@@ -10,7 +10,8 @@ const snkTaskbarMessages = {
10
10
  titleCancel: "Cancelar",
11
11
  titleSave: "Salvar",
12
12
  titleGridMode: "Modo Grade",
13
+ titleFormMode: "Modo Formulário",
13
14
  titleConfigGrid: "Configuração da grade",
14
- titleFormMode: "Modo Formulário"
15
+ forbidden: "Permissão não liberada"
15
16
  };
16
17
  export default snkTaskbarMessages;
@@ -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 {
@@ -7316,7 +7316,7 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
7316
7316
  const waitingAuth = this._authPromises.length > 0;
7317
7317
  this._authPromises.push(new PendingPromise(resolve, reject));
7318
7318
  if (!waitingAuth) {
7319
- this.authFetcher.getData(this._resourceID).then((authList) => {
7319
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7320
7320
  this._auth = authList;
7321
7321
  while (this._authPromises.length > 0) {
7322
7322
  this._authPromises.pop().resolve(this._auth);
@@ -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 {
@@ -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
 
@@ -7314,7 +7314,7 @@ const SnkApplication = class {
7314
7314
  const waitingAuth = this._authPromises.length > 0;
7315
7315
  this._authPromises.push(new PendingPromise(resolve, reject));
7316
7316
  if (!waitingAuth) {
7317
- this.authFetcher.getData(this._resourceID).then((authList) => {
7317
+ this.authFetcher.getData(this.resourceID).then((authList) => {
7318
7318
  this._auth = authList;
7319
7319
  while (this._authPromises.length > 0) {
7320
7320
  this._authPromises.pop().resolve(this._auth);
@@ -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 };
@@ -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}