@sankhyalabs/sankhyablocks 8.15.0-rc.1 → 8.15.0-rc.3

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 (83) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{pesquisa-fetcher-e4a7c4c3.js → pesquisa-fetcher-c790ffb7.js} +3 -3
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-actions-button_2.cjs.entry.js +1 -1
  5. package/dist/cjs/snk-application.cjs.entry.js +22 -1
  6. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  7. package/dist/cjs/snk-crud.cjs.entry.js +8 -5
  8. package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
  9. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  10. package/dist/cjs/snk-filter-bar.cjs.entry.js +17 -2
  11. package/dist/cjs/snk-grid.cjs.entry.js +3 -2
  12. package/dist/cjs/{snk-guides-viewer-d32c096f.js → snk-guides-viewer-89d08958.js} +5 -5
  13. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  14. package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -2
  15. package/dist/cjs/snk-taskbar.cjs.entry.js +90 -6
  16. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-e8062d32.js} +6 -6
  17. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  18. package/dist/collection/components/snk-application/snk-application.js +9 -9
  19. package/dist/collection/components/snk-crud/snk-crud.js +23 -3
  20. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  21. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +2 -2
  22. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  23. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +17 -2
  24. package/dist/collection/components/snk-grid/snk-grid.js +19 -1
  25. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +6 -6
  26. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  27. package/dist/collection/components/snk-taskbar/snk-taskbar.js +128 -6
  28. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  29. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +3 -3
  30. package/dist/components/dataunit-fetcher.js +3 -3
  31. package/dist/components/snk-application2.js +21 -0
  32. package/dist/components/snk-crud.js +7 -3
  33. package/dist/components/snk-detail-view2.js +3 -3
  34. package/dist/components/snk-entity-list.js +5 -3
  35. package/dist/components/snk-filter-bar2.js +17 -2
  36. package/dist/components/snk-grid2.js +3 -1
  37. package/dist/components/snk-taskbar2.js +101 -13
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/esm/{pesquisa-fetcher-fa0c2540.js → pesquisa-fetcher-4000d0b8.js} +3 -3
  40. package/dist/esm/sankhyablocks.js +1 -1
  41. package/dist/esm/snk-actions-button_2.entry.js +1 -1
  42. package/dist/esm/snk-application.entry.js +22 -1
  43. package/dist/esm/snk-attach.entry.js +2 -2
  44. package/dist/esm/snk-crud.entry.js +8 -5
  45. package/dist/esm/snk-detail-view.entry.js +3 -3
  46. package/dist/esm/snk-entity-list.entry.js +5 -3
  47. package/dist/esm/snk-filter-bar.entry.js +17 -2
  48. package/dist/esm/snk-grid.entry.js +3 -2
  49. package/dist/esm/{snk-guides-viewer-f49613c6.js → snk-guides-viewer-9052331a.js} +5 -5
  50. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  51. package/dist/esm/snk-simple-crud.entry.js +2 -2
  52. package/dist/esm/snk-taskbar.entry.js +91 -7
  53. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-1e667ab6.js} +6 -6
  54. package/dist/sankhyablocks/{p-282789a6.entry.js → p-0574c231.entry.js} +1 -1
  55. package/dist/sankhyablocks/{p-3b0e4e08.js → p-0eb1ff03.js} +1 -1
  56. package/dist/sankhyablocks/{p-02e3a45b.entry.js → p-2180fd6c.entry.js} +1 -1
  57. package/dist/sankhyablocks/p-2495e6a9.entry.js +1 -0
  58. package/dist/sankhyablocks/{p-ac384baf.entry.js → p-2a663ce7.entry.js} +1 -1
  59. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  60. package/dist/sankhyablocks/{p-9b5944a4.entry.js → p-455372c5.entry.js} +1 -1
  61. package/dist/sankhyablocks/{p-9bdbc7d8.entry.js → p-683f6726.entry.js} +1 -1
  62. package/dist/sankhyablocks/p-96ef14f9.entry.js +1 -0
  63. package/dist/sankhyablocks/{p-0ec5b2e5.js → p-a53ebcdb.js} +1 -1
  64. package/dist/sankhyablocks/p-b82ad89f.entry.js +1 -0
  65. package/dist/sankhyablocks/p-d24863c4.js +1 -0
  66. package/dist/sankhyablocks/{p-e817f254.entry.js → p-db4edd06.entry.js} +3 -3
  67. package/dist/sankhyablocks/p-f2689647.entry.js +1 -0
  68. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  69. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  70. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  71. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  72. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +2 -0
  73. package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
  74. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +27 -1
  75. package/dist/types/components.d.ts +32 -0
  76. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  77. package/package.json +9 -2
  78. package/dist/sankhyablocks/p-2582537c.entry.js +0 -1
  79. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  80. package/dist/sankhyablocks/p-62896624.entry.js +0 -1
  81. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  82. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  83. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { ApplicationContext, ElementIDUtils, StringUtils } from '@sankhyalabs/core';
1
+ import { ApplicationContext, ElementIDUtils, OverflowDirection, OverflowWatcher, StringUtils, OVERFLOWED_CLASS_NAME } from '@sankhyalabs/core';
2
2
  import { h, Host } from '@stencil/core';
3
3
  import { AuthorizationConfig } from '../snk-configurator/AuthorizationConfig';
4
4
  import { AuthorizationElements, buildCustomButton, buildElem, TaskbarElement, VisibleWhenForbidden, } from './elements/taskbar-elements';
@@ -6,6 +6,9 @@ import { PresentationMode } from '../../lib/@types';
6
6
  export class SnkTaskbar {
7
7
  constructor() {
8
8
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
9
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
10
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
11
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
9
12
  this._titleKeyByElement = {
10
13
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
11
14
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -23,11 +26,15 @@ export class SnkTaskbar {
23
26
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
24
27
  };
25
28
  this._permissions = undefined;
29
+ this._overFlowedElements = [];
26
30
  this._customElements = undefined;
27
31
  this._customElementsId = undefined;
28
32
  this._slotContainer = undefined;
33
+ this._hiddenActionsList = [];
34
+ this.alignRigth = false;
29
35
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
30
36
  this.customContainerId = undefined;
37
+ this.overflowStrategy = 'hiddenItems';
31
38
  this.configName = undefined;
32
39
  this.resourceID = undefined;
33
40
  this.buttons = undefined;
@@ -41,6 +48,7 @@ export class SnkTaskbar {
41
48
  }
42
49
  observeButtons() {
43
50
  this._definitions = undefined;
51
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
44
52
  }
45
53
  // Internal methods
46
54
  elementsFromString(strButtons) {
@@ -136,12 +144,19 @@ export class SnkTaskbar {
136
144
  }
137
145
  const taskbarElement = TaskbarElement[def.toString()];
138
146
  if (taskbarElement) {
139
- return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList, this.configName, this.presentationMode);
147
+ return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), this.configName, this.presentationMode);
140
148
  }
141
149
  else {
142
150
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
143
151
  }
144
152
  }
153
+ buildDynamicActionsList() {
154
+ var _a;
155
+ if (this._hiddenActionsList.length) {
156
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
157
+ }
158
+ return this.actionsList;
159
+ }
145
160
  getIdElemBtnNative(taskbarElem) {
146
161
  return StringUtils.toCamelCase(taskbarElem);
147
162
  }
@@ -182,9 +197,11 @@ export class SnkTaskbar {
182
197
  });
183
198
  }
184
199
  addCustomElementContainer(elem) {
200
+ var _a;
185
201
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
186
202
  if (!this._customElementsId.includes(elementId)) {
187
203
  this._customElementsId.push(elementId);
204
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
188
205
  }
189
206
  return h("span", { key: elementId, id: elementId });
190
207
  }
@@ -221,15 +238,76 @@ export class SnkTaskbar {
221
238
  }
222
239
  this.validatePresentationMode();
223
240
  }
241
+ handleOverFlow(overFlowingElements) {
242
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
243
+ this.resetOverFlowedElements();
244
+ this.doOverFlowElements(elementsToHandle);
245
+ }
246
+ resetOverFlowedElements() {
247
+ this._overFlowedElements.forEach(element => {
248
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
249
+ });
250
+ this._hiddenActionsList = [];
251
+ this._overFlowedElements = [];
252
+ }
253
+ doOverFlowElements(overFlowedElements) {
254
+ overFlowedElements.forEach(element => {
255
+ element.classList.add(OVERFLOWED_CLASS_NAME);
256
+ this._overFlowedElements.push(element);
257
+ this.addItemToActionList(element);
258
+ });
259
+ }
260
+ addItemToActionList(element) {
261
+ const taskbarElement = this.getTaskbarElementName(element);
262
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
263
+ const optionItem = {
264
+ value: taskbarElement,
265
+ label: this.getTaskbarElementLabel(element),
266
+ iconName: this.getTaskbarElementIcon(element)
267
+ };
268
+ this._hiddenActionsList.push(optionItem);
269
+ }
270
+ }
271
+ getTaskbarElementName(element) {
272
+ var _a;
273
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
274
+ }
275
+ getTaskbarElementIcon(element) {
276
+ var _a;
277
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
278
+ }
279
+ getTaskbarElementLabel(element) {
280
+ var _a;
281
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
282
+ }
283
+ hasToIgnoreOverFlow(element) {
284
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
285
+ }
286
+ handleOverFlowStrategy() {
287
+ if (this.overflowStrategy === 'hiddenItems') {
288
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
289
+ }
290
+ }
291
+ buildOverFlowWatcherParams() {
292
+ return {
293
+ element: this._element,
294
+ callback: this.handleOverFlow.bind(this),
295
+ overFlowDirection: OverflowDirection.HORIZONTAL,
296
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
297
+ };
298
+ }
224
299
  componentDidLoad() {
225
300
  const dataInfo = { dataUnit: this.dataUnit };
226
301
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
302
+ this.handleOverFlowStrategy();
227
303
  }
228
304
  componentDidRender() {
229
305
  this.appendCustomElementsInTaskbar();
230
306
  }
231
307
  disconnectedCallback() {
308
+ var _a;
232
309
  this.unlinkAllCustomElements();
310
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
233
311
  }
234
312
  unlinkAllCustomElements() {
235
313
  var _a;
@@ -247,8 +325,8 @@ export class SnkTaskbar {
247
325
  return undefined;
248
326
  }
249
327
  let index = 0;
250
- return (h(Host, null, this.removeEmpty(this._definitions.map((elem) => {
251
- var _a;
328
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
329
+ var _a, _b;
252
330
  if (elem === TaskbarElement.DIVIDER) {
253
331
  index = 0;
254
332
  }
@@ -264,8 +342,14 @@ export class SnkTaskbar {
264
342
  if (this._customElements.has(elem)) {
265
343
  return this.addCustomElementContainer(elem);
266
344
  }
345
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
267
346
  return h("slot", { name: elem });
268
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
347
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
348
+ }
349
+ getHostClasses() {
350
+ if (this.overflowStrategy !== 'hiddenItems')
351
+ return 'no-wrap';
352
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
269
353
  }
270
354
  static get is() { return "snk-taskbar"; }
271
355
  static get encapsulation() { return "scoped"; }
@@ -281,6 +365,24 @@ export class SnkTaskbar {
281
365
  }
282
366
  static get properties() {
283
367
  return {
368
+ "alignRigth": {
369
+ "type": "boolean",
370
+ "mutable": false,
371
+ "complexType": {
372
+ "original": "boolean",
373
+ "resolved": "boolean",
374
+ "references": {}
375
+ },
376
+ "required": false,
377
+ "optional": false,
378
+ "docs": {
379
+ "tags": [],
380
+ "text": "Usado para determinar O alinhamento dos items na taskbar."
381
+ },
382
+ "attribute": "align-rigth",
383
+ "reflect": false,
384
+ "defaultValue": "false"
385
+ },
284
386
  "customSlotId": {
285
387
  "type": "string",
286
388
  "mutable": false,
@@ -316,6 +418,24 @@ export class SnkTaskbar {
316
418
  "attribute": "custom-container-id",
317
419
  "reflect": false
318
420
  },
421
+ "overflowStrategy": {
422
+ "type": "string",
423
+ "mutable": false,
424
+ "complexType": {
425
+ "original": "'hiddenItems' | 'none'",
426
+ "resolved": "\"hiddenItems\" | \"none\"",
427
+ "references": {}
428
+ },
429
+ "required": false,
430
+ "optional": false,
431
+ "docs": {
432
+ "tags": [],
433
+ "text": "Define como ser\u00E1 o comportamento da taskbar quando ocorrer overflow"
434
+ },
435
+ "attribute": "overflow-strategy",
436
+ "reflect": false,
437
+ "defaultValue": "'hiddenItems'"
438
+ },
319
439
  "configName": {
320
440
  "type": "string",
321
441
  "mutable": false,
@@ -515,9 +635,11 @@ export class SnkTaskbar {
515
635
  static get states() {
516
636
  return {
517
637
  "_permissions": {},
638
+ "_overFlowedElements": {},
518
639
  "_customElements": {},
519
640
  "_customElementsId": {},
520
- "_slotContainer": {}
641
+ "_slotContainer": {},
642
+ "_hiddenActionsList": {}
521
643
  };
522
644
  }
523
645
  static get events() {
@@ -3,7 +3,22 @@ import { DateUtils, StringUtils, ObjectUtils } from "@sankhyalabs/core";
3
3
  import { DataFetcher } from "../DataFetcher";
4
4
  export default class ParametersFetcher {
5
5
  constructor() {
6
+ this._embeddedParams = new Map();
6
7
  this.templateByQuery = new Map();
8
+ try {
9
+ if (window["MGE_PARAMS"] != undefined) {
10
+ const source = atob(window['MGE_PARAMS']);
11
+ const params = source.split('__;__');
12
+ params.forEach(param => {
13
+ const [key, value] = param.split("__=__");
14
+ this._embeddedParams.set(key, value);
15
+ });
16
+ }
17
+ }
18
+ catch (error) {
19
+ console.error("Problemas ao obter parâmetros embarcados");
20
+ console.error(error);
21
+ }
7
22
  this.buldTemplates();
8
23
  }
9
24
  buldTemplates() {
@@ -15,6 +30,9 @@ export default class ParametersFetcher {
15
30
  }`);
16
31
  }
17
32
  async getParam(name) {
33
+ if (this._embeddedParams.has(name)) {
34
+ return Promise.resolve(this._embeddedParams.get(name));
35
+ }
18
36
  const completPath = `param://application?params=${name}`;
19
37
  return DataFetcher.get().callGraphQL({
20
38
  values: { name: completPath },
@@ -52,6 +70,9 @@ export default class ParametersFetcher {
52
70
  if (Array.isArray(obj) && obj.length > 0) {
53
71
  obj = obj[0];
54
72
  }
73
+ if (typeof obj === "string") {
74
+ return obj;
75
+ }
55
76
  if (StringUtils.isEmpty(obj.resource))
56
77
  return "";
57
78
  try {
@@ -50,7 +50,7 @@ export class PesquisaFetcher {
50
50
  });
51
51
  }
52
52
  loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
53
- var _a, _b, _c;
53
+ var _a, _b, _c, _d;
54
54
  const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
55
55
  const values = {
56
56
  argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
@@ -63,7 +63,7 @@ export class PesquisaFetcher {
63
63
  $: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
64
64
  }
65
65
  };
66
- if (((_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params.length) > 0) {
66
+ if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
67
67
  externalCriteria.params = {
68
68
  param: values.criteria.params.map(param => {
69
69
  let value = param.value;
@@ -97,7 +97,7 @@ export class PesquisaFetcher {
97
97
  const reqBody = {
98
98
  "serviceName": serviceName,
99
99
  "requestBody": {
100
- "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_c = values.searchOptions) === null || _c === void 0 ? void 0 : _c.rootEntity }, { options }),
100
+ "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
101
101
  "clientEventList": {
102
102
  "clientEvent": []
103
103
  }
@@ -54,7 +54,7 @@ class PesquisaFetcher {
54
54
  });
55
55
  }
56
56
  loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
57
- var _a, _b, _c;
57
+ var _a, _b, _c, _d;
58
58
  const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
59
59
  const values = {
60
60
  argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
@@ -67,7 +67,7 @@ class PesquisaFetcher {
67
67
  $: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
68
68
  }
69
69
  };
70
- if (((_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params.length) > 0) {
70
+ if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
71
71
  externalCriteria.params = {
72
72
  param: values.criteria.params.map(param => {
73
73
  let value = param.value;
@@ -101,7 +101,7 @@ class PesquisaFetcher {
101
101
  const reqBody = {
102
102
  "serviceName": serviceName,
103
103
  "requestBody": {
104
- "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_c = values.searchOptions) === null || _c === void 0 ? void 0 : _c.rootEntity }, { options }),
104
+ "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
105
105
  "clientEventList": {
106
106
  "clientEvent": []
107
107
  }
@@ -72,7 +72,22 @@ class TotalsFetcher {
72
72
 
73
73
  class ParametersFetcher {
74
74
  constructor() {
75
+ this._embeddedParams = new Map();
75
76
  this.templateByQuery = new Map();
77
+ try {
78
+ if (window["MGE_PARAMS"] != undefined) {
79
+ const source = atob(window['MGE_PARAMS']);
80
+ const params = source.split('__;__');
81
+ params.forEach(param => {
82
+ const [key, value] = param.split("__=__");
83
+ this._embeddedParams.set(key, value);
84
+ });
85
+ }
86
+ }
87
+ catch (error) {
88
+ console.error("Problemas ao obter parâmetros embarcados");
89
+ console.error(error);
90
+ }
76
91
  this.buldTemplates();
77
92
  }
78
93
  buldTemplates() {
@@ -84,6 +99,9 @@ class ParametersFetcher {
84
99
  }`);
85
100
  }
86
101
  async getParam(name) {
102
+ if (this._embeddedParams.has(name)) {
103
+ return Promise.resolve(this._embeddedParams.get(name));
104
+ }
87
105
  const completPath = `param://application?params=${name}`;
88
106
  return DataFetcher.get().callGraphQL({
89
107
  values: { name: completPath },
@@ -121,6 +139,9 @@ class ParametersFetcher {
121
139
  if (Array.isArray(obj) && obj.length > 0) {
122
140
  obj = obj[0];
123
141
  }
142
+ if (typeof obj === "string") {
143
+ return obj;
144
+ }
124
145
  if (StringUtils.isEmpty(obj.resource))
125
146
  return "";
126
147
  try {
@@ -69,6 +69,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
69
69
  this.presentationMode = PresentationMode.PRIMARY;
70
70
  this.messagesBuilder = undefined;
71
71
  this.useEnterLikeTab = false;
72
+ this.disablePersonalizedFilter = undefined;
72
73
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
73
74
  }
74
75
  /**
@@ -201,7 +202,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
201
202
  window.removeEventListener("keydown", this._keyDownHandler);
202
203
  }
203
204
  async initKeyboardManager() {
204
- const keyboardManager = await this._application.getKeyboardManager();
205
+ var _a;
206
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
205
207
  if (keyboardManager) {
206
208
  const dataUnit = this._dataUnit || await this._snkDataUnit.getDataUnit();
207
209
  async function saveDataUnitHandlingFocus() {
@@ -250,7 +252,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
250
252
  }
251
253
  }
252
254
  async removeShortcuts() {
253
- const keyboardManager = await this._application.getKeyboardManager();
255
+ var _a;
256
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
254
257
  if (keyboardManager) {
255
258
  keyboardManager
256
259
  .unbind("F6")
@@ -317,7 +320,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
317
320
  return;
318
321
  }
319
322
  this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
320
- return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
323
+ return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
321
324
  }
322
325
  get _element() { return this; }
323
326
  static get watchers() { return {
@@ -336,6 +339,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
336
339
  "presentationMode": [1, "presentation-mode"],
337
340
  "messagesBuilder": [1040],
338
341
  "useEnterLikeTab": [4, "use-enter-like-tab"],
342
+ "disablePersonalizedFilter": [4, "disable-personalized-filter"],
339
343
  "_dataUnit": [32],
340
344
  "_dataState": [32],
341
345
  "attachmentRegisterKey": [32],
@@ -43,7 +43,7 @@ import { d as defineCustomElement$l } from './snk-field-config2.js';
43
43
  import { d as defineCustomElement$d } from './snk-form-config2.js';
44
44
  import { d as defineCustomElement$4 } from './snk-tab-config2.js';
45
45
 
46
- const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
46
+ const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
47
47
 
48
48
  const FORM_NAME_PREFIX = "__FORM:";
49
49
  const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
@@ -425,7 +425,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
425
425
  }
426
426
  buildTaskBar() {
427
427
  var _a;
428
- return h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
428
+ return h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
429
429
  }
430
430
  async dataUnitActionHandler(action) {
431
431
  var _a;
@@ -484,7 +484,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
484
484
  }
485
485
  this.loadTaskbarProcessor();
486
486
  const showGuides = this._guides && (this._guides.length > 1);
487
- return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
487
+ return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
488
488
  h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: "snk-guides-viewer__container" }, showGuides ?
489
489
  h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzSelectionChange: evt => this.updateSelectedGuideHandler(evt.detail) })
490
490
  :
@@ -62,16 +62,18 @@ const SnkEntityList$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
62
62
  this.loadListSource();
63
63
  }
64
64
  optionLoader(searchArgument) {
65
- var _a, _b, _c, _d;
65
+ var _a, _b, _c, _d, _e, _f;
66
66
  const { mode, argument } = searchArgument;
67
67
  if (this._application === undefined) {
68
68
  return;
69
69
  }
70
70
  const searchOptions = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.searchContext) === null || _c === void 0 ? void 0 : _c.searchOptions;
71
+ const criteria = (_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.props) === null || _e === void 0 ? void 0 : _e.criteria;
71
72
  const options = {
72
- entityDescription: (_d = this.config) === null || _d === void 0 ? void 0 : _d.label,
73
+ entityDescription: (_f = this.config) === null || _f === void 0 ? void 0 : _f.label,
73
74
  entity: this._entityName,
74
- searchOptions: searchOptions
75
+ searchOptions: searchOptions,
76
+ criteria,
75
77
  };
76
78
  return this._application.executePreparedSearch(mode, argument, options);
77
79
  }
@@ -263,6 +263,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
263
263
  this._updateSequence = [];
264
264
  this._loadingPending = false;
265
265
  this._configUpdated = false;
266
+ this._firstLoad = true;
266
267
  this._pendingVariables = false;
267
268
  this._customfiltersToBeUpdated = [];
268
269
  this._calculateSortIndex = (item) => {
@@ -416,13 +417,27 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
416
417
  return;
417
418
  }
418
419
  this._loadingPending = false;
419
- this.dataUnit.loadData(undefined, undefined, true);
420
+ this.doLoadData(this.dataUnit.getLastLoadRequest() != undefined);
420
421
  }
421
422
  if (this._configUpdated) {
422
423
  this._configUpdated = false;
423
424
  ConfigStorage.saveFilterBarConfig(this.filterConfig, this.configName, this.resourceID);
424
425
  }
425
426
  }
427
+ async doLoadData(forceReload = false) {
428
+ try {
429
+ if (this._firstLoad && !forceReload) {
430
+ let autoLoad = await this._application.getBooleanParam("global.carregar.registros.iniciar.tela");
431
+ if (!autoLoad) {
432
+ return;
433
+ }
434
+ }
435
+ this.dataUnit.loadData(undefined, undefined, true);
436
+ }
437
+ finally {
438
+ this._firstLoad = false;
439
+ }
440
+ }
426
441
  /**
427
442
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
428
443
  * através de um pequeno modulo na estrutura da aplicação:
@@ -460,7 +475,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
460
475
  registryFilterProvider() {
461
476
  this.dataUnit.addFilterProvider(this);
462
477
  if (this.filterConfig) {
463
- this.dataUnit.loadData(undefined, undefined, true);
478
+ this.doLoadData();
464
479
  }
465
480
  }
466
481
  itemFocused(selectedItem) {
@@ -74,6 +74,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
74
74
  this.taskbarCustomContainerId = undefined;
75
75
  this.gridHeaderCustomSlotId = 'GRID_HEADER_CUSTOM_ELEMENTS';
76
76
  this.topTaskbarCustomSlotId = 'GRID_TASKBAR_CUSTOM_ELEMENTS';
77
+ this.disablePersonalizedFilter = undefined;
77
78
  }
78
79
  /**
79
80
  * Exibe a janela de configurações da grade.
@@ -421,7 +422,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
421
422
  return undefined;
422
423
  }
423
424
  return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
424
- h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail) }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
425
+ h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
425
426
  }
426
427
  get _element() { return this; }
427
428
  static get style() { return snkGridCss; }
@@ -443,6 +444,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
443
444
  "taskbarCustomContainerId": [1, "taskbar-custom-container-id"],
444
445
  "gridHeaderCustomSlotId": [1, "grid-header-custom-slot-id"],
445
446
  "topTaskbarCustomSlotId": [1, "top-taskbar-custom-slot-id"],
447
+ "disablePersonalizedFilter": [4, "disable-personalized-filter"],
446
448
  "_dataUnit": [32],
447
449
  "_dataState": [32],
448
450
  "_gridConfig": [32],