@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-38407.0 → 0.0.0-bugfix-dev-KB-39469.0

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 (137) hide show
  1. package/dist/cjs/{ConfigStorage-302bbbd4.js → ConfigStorage-d4c99a5e.js} +2 -2
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
  3. package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-3621bfc4.js} +2 -2
  4. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-5161d082.js} +1 -1
  5. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-9f1a13ca.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{pesquisa-fetcher-977c90b1.js → pesquisa-fetcher-c416a6b7.js} +22 -8
  8. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  9. package/dist/cjs/snk-actions-button_2.cjs.entry.js +6 -4
  10. package/dist/cjs/snk-application.cjs.entry.js +26 -5
  11. package/dist/cjs/snk-attach.cjs.entry.js +4 -4
  12. package/dist/cjs/snk-crud.cjs.entry.js +10 -7
  13. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +6 -6
  15. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  16. package/dist/cjs/snk-filter-bar.cjs.entry.js +28 -6
  17. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  18. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  19. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  20. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  22. package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-grid.cjs.entry.js +5 -4
  24. package/dist/cjs/{snk-guides-viewer-5803fe92.js → snk-guides-viewer-3ab9623e.js} +7 -7
  25. package/dist/cjs/snk-guides-viewer.cjs.entry.js +6 -6
  26. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  27. package/dist/cjs/snk-simple-crud.cjs.entry.js +16 -4
  28. package/dist/cjs/snk-taskbar.cjs.entry.js +51 -3
  29. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  30. package/dist/collection/components/snk-crud/snk-crud.js +23 -3
  31. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  32. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +2 -2
  33. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  34. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  35. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  36. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +39 -2
  37. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  38. package/dist/collection/components/snk-grid/snk-grid.js +19 -1
  39. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +53 -1
  40. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +3 -1
  41. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  42. package/dist/collection/components/snk-taskbar/snk-taskbar.js +88 -3
  43. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  44. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
  45. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +17 -3
  46. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  47. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +3 -3
  48. package/dist/components/DataFetcher.js +5 -3
  49. package/dist/components/dataunit-fetcher.js +21 -7
  50. package/dist/components/snk-application2.js +21 -0
  51. package/dist/components/snk-crud.js +7 -3
  52. package/dist/components/snk-detail-view2.js +3 -3
  53. package/dist/components/snk-entity-list.js +5 -3
  54. package/dist/components/snk-filter-bar2.js +26 -3
  55. package/dist/components/snk-filter-modal.js +4 -2
  56. package/dist/components/snk-filter-multi-select.js +2 -1
  57. package/dist/components/snk-grid2.js +3 -1
  58. package/dist/components/snk-simple-crud2.js +15 -1
  59. package/dist/components/snk-taskbar2.js +55 -4
  60. package/dist/components/taskbar-actions-button2.js +3 -1
  61. package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-39ed8aeb.js} +2 -2
  62. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
  63. package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-692e20c7.js} +2 -2
  64. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-17dc5b5e.js} +1 -1
  65. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-f121f880.js} +1 -1
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/esm/{pesquisa-fetcher-5e228b5a.js → pesquisa-fetcher-ab16a2e8.js} +22 -8
  68. package/dist/esm/sankhyablocks.js +1 -1
  69. package/dist/esm/snk-actions-button_2.entry.js +6 -4
  70. package/dist/esm/snk-application.entry.js +26 -5
  71. package/dist/esm/snk-attach.entry.js +4 -4
  72. package/dist/esm/snk-crud.entry.js +10 -7
  73. package/dist/esm/snk-data-exporter.entry.js +1 -1
  74. package/dist/esm/snk-detail-view.entry.js +6 -6
  75. package/dist/esm/snk-entity-list.entry.js +5 -3
  76. package/dist/esm/snk-filter-bar.entry.js +28 -6
  77. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  78. package/dist/esm/snk-filter-modal.entry.js +2 -1
  79. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  80. package/dist/esm/snk-form-config.entry.js +2 -2
  81. package/dist/esm/snk-form.entry.js +4 -4
  82. package/dist/esm/snk-grid-config.entry.js +3 -3
  83. package/dist/esm/snk-grid.entry.js +5 -4
  84. package/dist/esm/{snk-guides-viewer-c77e1c8f.js → snk-guides-viewer-462b4c9e.js} +7 -7
  85. package/dist/esm/snk-guides-viewer.entry.js +6 -6
  86. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  87. package/dist/esm/snk-simple-crud.entry.js +16 -4
  88. package/dist/esm/snk-taskbar.entry.js +52 -4
  89. package/dist/sankhyablocks/p-007f1026.entry.js +1 -0
  90. package/dist/sankhyablocks/p-0264dba5.entry.js +1 -0
  91. package/dist/sankhyablocks/{p-2dd38000.entry.js → p-0ae89faa.entry.js} +1 -1
  92. package/dist/sankhyablocks/{p-cb7419e0.entry.js → p-0b0b36ac.entry.js} +1 -1
  93. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  94. package/dist/sankhyablocks/{p-59ce706a.entry.js → p-33bc44a6.entry.js} +1 -1
  95. package/dist/sankhyablocks/{p-3efca291.entry.js → p-48afb1d3.entry.js} +1 -1
  96. package/dist/sankhyablocks/p-50783a8b.js +1 -0
  97. package/dist/sankhyablocks/{p-aa95fb2c.js → p-67aedbe0.js} +1 -1
  98. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  99. package/dist/sankhyablocks/{p-573a07c5.js → p-725d04ba.js} +1 -1
  100. package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-827e4b01.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-88c7dd9a.entry.js +1 -0
  102. package/dist/sankhyablocks/p-93d7e848.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-9d608b62.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-0d7863ed.js → p-a13ccb86.js} +1 -1
  105. package/dist/sankhyablocks/{p-ce4bca21.js → p-a3a9d37d.js} +1 -1
  106. package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
  107. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  108. package/dist/sankhyablocks/{p-34156b41.entry.js → p-c093edc7.entry.js} +1 -1
  109. package/dist/sankhyablocks/p-c6247955.js +65 -0
  110. package/dist/sankhyablocks/{p-761ed32f.entry.js → p-e3bd000e.entry.js} +1 -1
  111. package/dist/sankhyablocks/p-ed2dce4b.entry.js +1 -0
  112. package/dist/sankhyablocks/{p-1d75d9f9.entry.js → p-fcdcb0e2.entry.js} +1 -1
  113. package/dist/sankhyablocks/{p-86164061.entry.js → p-fd0a8d68.entry.js} +3 -3
  114. package/dist/sankhyablocks/{p-40915359.entry.js → p-fdc4cb9b.entry.js} +1 -1
  115. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  116. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  117. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  118. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  119. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +7 -0
  120. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  121. package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
  122. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  123. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +20 -1
  124. package/dist/types/components.d.ts +64 -0
  125. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +1 -0
  126. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  127. package/package.json +9 -2
  128. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  129. package/dist/sankhyablocks/p-25c77ddb.js +0 -65
  130. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  131. package/dist/sankhyablocks/p-7d8d7fe9.entry.js +0 -1
  132. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  133. package/dist/sankhyablocks/p-ab568a2e.entry.js +0 -1
  134. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  135. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  136. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  137. package/dist/sankhyablocks/p-f39f48c2.entry.js +0 -1
@@ -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
  }
@@ -6786,7 +6786,6 @@ class DataFetcher {
6786
6786
  if (http.readyState == 4 && http.status == 200) {
6787
6787
  try {
6788
6788
  const jsonResp = JSON.parse(http.responseText);
6789
- await this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6790
6789
  /**
6791
6790
  * Este trecho difere do projeto HTML5 devido à decisão de adotar uma abordagem síncrona para esta chamada. Isso é justificado pelo fato de que, no cenário em questão, a abordagem assíncrona teria impactos negativos.
6792
6791
  *
@@ -6797,8 +6796,10 @@ class DataFetcher {
6797
6796
  if (this.isServiceBrokerError(jsonResp)) {
6798
6797
  reject(this.processServiceBrokerErrorInfo(jsonResp));
6799
6798
  }
6800
- else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED && jsonResp.statusMessage) {
6801
- console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6799
+ else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED) {
6800
+ if (jsonResp.statusMessage) {
6801
+ console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6802
+ }
6802
6803
  }
6803
6804
  else {
6804
6805
  accept(jsonResp.responseBody);
@@ -6806,6 +6807,7 @@ class DataFetcher {
6806
6807
  (_a = this.application) === null || _a === void 0 ? void 0 : _a.info(jsonResp.statusMessage);
6807
6808
  }
6808
6809
  }
6810
+ this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6809
6811
  }
6810
6812
  catch (err) {
6811
6813
  console.warn(`Erro ao executar serviço: ${err}`);
@@ -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
  }
@@ -402,7 +402,7 @@ class InMemoryLoader {
402
402
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
403
403
  }
404
404
  getRecordsToLoad() {
405
- if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
405
+ if (this._initialRecords == undefined || this.dataUnit.records.length > 0) {
406
406
  this._initialRecords = this.dataUnit.records;
407
407
  }
408
408
  return this._initialRecords;
@@ -1005,15 +1005,29 @@ class DataUnitFetcher {
1005
1005
  });
1006
1006
  return updatingFields;
1007
1007
  }
1008
+ getUpdatingFields(dataUnit, originalUpdatingFields) {
1009
+ if (originalUpdatingFields == undefined) {
1010
+ return;
1011
+ }
1012
+ const updatingFields = Object.assign({}, originalUpdatingFields);
1013
+ Object.keys(updatingFields).forEach(key => {
1014
+ const descriptor = dataUnit.getField(key);
1015
+ if (descriptor != undefined && descriptor.standAlone) {
1016
+ delete updatingFields[key];
1017
+ }
1018
+ });
1019
+ return this.addTransientProperties(dataUnit, updatingFields);
1020
+ }
1008
1021
  saveData(dataUnit, duChanges) {
1009
1022
  const updatedRecordsIds = [];
1010
1023
  const addedRecordsIds = [];
1011
1024
  const changes = duChanges.map((change) => {
1012
- const { dataUnit: changeDU, record, updatingFields, operation } = change;
1025
+ const { dataUnit: changeDU, record, operation } = change;
1013
1026
  const dataUnitInstance = DataUnitStorage.get(changeDU);
1027
+ const updatingFields = this.getUpdatingFields(dataUnitInstance, change.updatingFields);
1014
1028
  let parsedUpdatingFields;
1015
- if (updatingFields) {
1016
- parsedUpdatingFields = Object.entries(this.addTransientProperties(dataUnit, updatingFields)).map(([fieldName, value]) => {
1029
+ if (updatingFields != undefined) {
1030
+ parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
1017
1031
  const descriptor = dataUnitInstance.getField(fieldName);
1018
1032
  const dataType = descriptor ? descriptor.dataType : DataType.TEXT;
1019
1033
  return { fieldName, dataType, value: dataUnitInstance.valueToString(fieldName, value) };
@@ -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
  }
@@ -209,11 +209,12 @@ function buildPersonalized(item) {
209
209
  }
210
210
 
211
211
  class SnkFilterModalFactory {
212
- constructor({ filterConfig, configName, onComplete, getMessage, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
212
+ constructor({ filterConfig, configName, onComplete, getMessage, disablePersonalizedFilter, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
213
213
  this._filterConfig = filterConfig;
214
214
  this._configName = configName;
215
215
  this._onComplete = onComplete;
216
216
  this._getMessage = getMessage;
217
+ this._disablePersonalizedFilter = disablePersonalizedFilter;
217
218
  this._addPersonalizedFilterFn = onAddPersonalizedFilter;
218
219
  this._editPersonalizedFilterFn = onEditPersonalizedFilter;
219
220
  this._onDeletePersonalizedFilter = onDeletePersonalizedFilter;
@@ -227,6 +228,7 @@ class SnkFilterModalFactory {
227
228
  filterModal.className = "ez-size-height--full";
228
229
  filterModal.filters = this._filterConfig;
229
230
  filterModal.configName = this._configName;
231
+ filterModal.disablePersonalizedFilter = this._disablePersonalizedFilter;
230
232
  filterModal.getMessage = this._getMessage.bind(this);
231
233
  filterModal.applyFilters = this.applyFilters.bind(this);
232
234
  filterModal.closeModal = () => this._closeModal();
@@ -261,6 +263,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
261
263
  this._updateSequence = [];
262
264
  this._loadingPending = false;
263
265
  this._configUpdated = false;
266
+ this._firstLoad = true;
264
267
  this._pendingVariables = false;
265
268
  this._customfiltersToBeUpdated = [];
266
269
  this._calculateSortIndex = (item) => {
@@ -281,6 +284,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
281
284
  this.resourceID = undefined;
282
285
  this.filterConfig = undefined;
283
286
  this.messagesBuilder = undefined;
287
+ this.disablePersonalizedFilter = undefined;
284
288
  this.allowDefault = undefined;
285
289
  this.scrollerLocked = false;
286
290
  this.showPersonalizedFilter = false;
@@ -413,13 +417,27 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
413
417
  return;
414
418
  }
415
419
  this._loadingPending = false;
416
- this.dataUnit.loadData(undefined, undefined, true);
420
+ this.doLoadData(this.dataUnit.getLastLoadRequest() != undefined);
417
421
  }
418
422
  if (this._configUpdated) {
419
423
  this._configUpdated = false;
420
424
  ConfigStorage.saveFilterBarConfig(this.filterConfig, this.configName, this.resourceID);
421
425
  }
422
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
+ }
423
441
  /**
424
442
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
425
443
  * através de um pequeno modulo na estrutura da aplicação:
@@ -428,6 +446,9 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
428
446
  */
429
447
  getMessage(key, params, defaultValue) {
430
448
  var _a;
449
+ if (this.messagesBuilder == undefined && this._application) {
450
+ this.messagesBuilder = this._application.messagesBuilder;
451
+ }
431
452
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
432
453
  }
433
454
  getFilter(_dataUnit) {
@@ -454,7 +475,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
454
475
  registryFilterProvider() {
455
476
  this.dataUnit.addFilterProvider(this);
456
477
  if (this.filterConfig) {
457
- this.dataUnit.loadData(undefined, undefined, true);
478
+ this.doLoadData();
458
479
  }
459
480
  }
460
481
  itemFocused(selectedItem) {
@@ -589,6 +610,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
589
610
  filterConfig: filtersConfigCopy,
590
611
  configName: this.configName,
591
612
  onComplete: callbackOnApplyFilter,
613
+ disablePersonalizedFilter: this.disablePersonalizedFilter,
592
614
  getMessage: (key, props) => this.getMessage(key, props),
593
615
  onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
594
616
  onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id),
@@ -660,6 +682,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
660
682
  "resourceID": [1, "resource-i-d"],
661
683
  "filterConfig": [1040],
662
684
  "messagesBuilder": [1040],
685
+ "disablePersonalizedFilter": [4, "disable-personalized-filter"],
663
686
  "allowDefault": [32],
664
687
  "scrollerLocked": [32],
665
688
  "showPersonalizedFilter": [32],
@@ -22,6 +22,7 @@ const SnkFilterModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
22
22
  this.editPersonalizedFilter = undefined;
23
23
  this.deletePersonalizedFilter = undefined;
24
24
  this.filtersToDelete = [];
25
+ this.disablePersonalizedFilter = undefined;
25
26
  }
26
27
  /**
27
28
  * Emitido quando um filtro personalizado é deletado.
@@ -236,7 +237,7 @@ const SnkFilterModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
236
237
  const customFilters = this.filters.filter(filter => filter.filterType === FilterType.CUSTOM_FILTER);
237
238
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
238
239
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
239
- return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
240
+ return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
240
241
  }
241
242
  static get style() { return snkFilterModalCss; }
242
243
  }, [0, "snk-filter-modal", {
@@ -248,7 +249,8 @@ const SnkFilterModal$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
248
249
  "addPersonalizedFilter": [16],
249
250
  "editPersonalizedFilter": [16],
250
251
  "deletePersonalizedFilter": [16],
251
- "filtersToDelete": [16]
252
+ "filtersToDelete": [16],
253
+ "disablePersonalizedFilter": [4, "disable-personalized-filter"]
252
254
  }, [[0, "deleteFilter", "deletePersonalizedFilterListener"]]]);
253
255
  function defineCustomElement$1() {
254
256
  if (typeof customElements === "undefined") {
@@ -14,7 +14,8 @@ const SnkFilterMultiSelect$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
14
14
  * Emitido quando acontece a alteração de valor do componente snk-filter-multi-select
15
15
  */
16
16
  ezChangeListener(evt) {
17
- this.value = evt.detail.value;
17
+ var _a;
18
+ this.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value;
18
19
  this.valueChanged.emit(this.value);
19
20
  }
20
21
  /**
@@ -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],
@@ -51,6 +51,8 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
51
51
  this.taskbarManager = undefined;
52
52
  this.messagesBuilder = undefined;
53
53
  this.useEnterLikeTab = false;
54
+ this.actionsList = undefined;
55
+ this.configName = undefined;
54
56
  }
55
57
  resolveInMemoryBtns(taskbarButtons) {
56
58
  const newTaskBarConfig = [...taskbarButtons];
@@ -249,7 +251,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
249
251
  }
250
252
  getActionsList() {
251
253
  var _a, _b;
252
- return [{
254
+ const hardList = [{
253
255
  value: StringUtils.generateUUID(),
254
256
  label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
255
257
  disableCloseOnSelect: true,
@@ -258,6 +260,16 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
258
260
  ? this.getColumnSearch(actionButton, item)
259
261
  : this.getFieldSearch(actionButton, item)
260
262
  }];
263
+ if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
264
+ const taskbarID = this.getTopTaskBarId();
265
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
266
+ }
267
+ return hardList.concat(this.actionsList);
268
+ }
269
+ getTopTaskBarId() {
270
+ var _a;
271
+ return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${PresentationMode.PRIMARY}` :
272
+ `snkGridTopTaskbar.regular${PresentationMode.PRIMARY}`;
261
273
  }
262
274
  async keyDownListener(event) {
263
275
  if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
@@ -319,6 +331,8 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
319
331
  "taskbarManager": [16],
320
332
  "messagesBuilder": [1040],
321
333
  "useEnterLikeTab": [4, "use-enter-like-tab"],
334
+ "actionsList": [16],
335
+ "configName": [1025, "config-name"],
322
336
  "_currentViewMode": [32],
323
337
  "_config": [32],
324
338
  "_fieldToGetFocus": [32],