@sankhyalabs/sankhyablocks 8.16.0-dev.20 → 8.16.0-dev.22

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 (118) hide show
  1. package/dist/cjs/{ConfigStorage-e49214c6.js → ConfigStorage-ecc0ed20.js} +2 -2
  2. package/dist/cjs/{DataFetcher-77729a93.js → DataFetcher-cadeef8e.js} +21 -20
  3. package/dist/cjs/{RecordIDUtils-3735135c.js → GetSelectedRecordsIDsInfo-bd50caf1.js} +10 -10
  4. package/dist/cjs/{IExporterProvider-10b7fed5.js → IExporterProvider-9ac15aaf.js} +4 -4
  5. package/dist/cjs/{SnkFormConfigManager-beebf47a.js → SnkFormConfigManager-f1c92f79.js} +72 -16
  6. package/dist/cjs/{auth-fetcher-29bb791c.js → auth-fetcher-d68841bc.js} +1 -1
  7. package/dist/cjs/{dataunit-fetcher-d4873076.js → dataunit-fetcher-4b12f70c.js} +1 -1
  8. package/dist/cjs/{form-config-fetcher-feb08214.js → form-config-fetcher-ed497282.js} +5 -2
  9. package/dist/cjs/{pesquisa-fetcher-a1d0353f.js → pesquisa-fetcher-ca89181c.js} +1 -1
  10. package/dist/cjs/snk-actions-button_4.cjs.entry.js +17 -14
  11. package/dist/cjs/snk-application.cjs.entry.js +6 -6
  12. package/dist/cjs/snk-attach.cjs.entry.js +5 -5
  13. package/dist/cjs/snk-crud.cjs.entry.js +5 -5
  14. package/dist/cjs/snk-data-exporter.cjs.entry.js +6 -6
  15. package/dist/cjs/{snk-data-unit-11e31d8d.js → snk-data-unit-2f2e6f8c.js} +3 -3
  16. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
  17. package/dist/cjs/snk-detail-view.cjs.entry.js +8 -8
  18. package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -3
  19. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-form-config.cjs.entry.js +15 -4
  21. package/dist/cjs/snk-form.cjs.entry.js +7 -6
  22. package/dist/cjs/snk-grid.cjs.entry.js +8 -8
  23. package/dist/cjs/{snk-guides-viewer-aafc3073.js → snk-guides-viewer-866447ab.js} +10 -7
  24. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -8
  25. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  26. package/dist/cjs/snk-simple-crud.cjs.entry.js +10 -10
  27. package/dist/collection/components/snk-actions-button/actions/index.js +12 -9
  28. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +1 -1
  29. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +5 -2
  30. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +1 -1
  31. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +1 -1
  32. package/dist/collection/components/snk-data-unit/snk-data-unit.js +2 -2
  33. package/dist/collection/components/snk-form/snk-form.js +2 -2
  34. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +70 -14
  35. package/dist/collection/components/snk-form-config/snk-form-config.js +13 -2
  36. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +1 -1
  37. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +21 -20
  38. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +4 -1
  39. package/dist/collection/{components/snk-data-exporter/utils/RecordIDUtils.js → lib/utils/GetSelectedRecordsIDsInfo.js} +9 -9
  40. package/dist/components/DataFetcher.js +21 -20
  41. package/dist/{esm/RecordIDUtils-87d02110.js → components/GetSelectedRecordsIDsInfo.js} +10 -10
  42. package/dist/components/SnkFormConfigManager.js +70 -14
  43. package/dist/components/form-config-fetcher.js +4 -1
  44. package/dist/components/snk-actions-button2.js +12 -9
  45. package/dist/components/snk-data-unit2.js +4 -41
  46. package/dist/components/snk-detail-view2.js +6 -3
  47. package/dist/components/snk-form-config2.js +13 -2
  48. package/dist/components/snk-form.js +2 -2
  49. package/dist/components/snk-grid2.js +2 -2
  50. package/dist/components/snk-simple-crud2.js +4 -3
  51. package/dist/esm/{ConfigStorage-e476378d.js → ConfigStorage-7b36d041.js} +2 -2
  52. package/dist/esm/{DataFetcher-773a3e4b.js → DataFetcher-a9c598f2.js} +21 -20
  53. package/dist/esm/GetSelectedRecordsIDsInfo-9fa41508.js +41 -0
  54. package/dist/esm/{IExporterProvider-d597f27d.js → IExporterProvider-09df2e3e.js} +4 -4
  55. package/dist/esm/{SnkFormConfigManager-298cd647.js → SnkFormConfigManager-139f09fa.js} +72 -16
  56. package/dist/esm/{auth-fetcher-a411f73c.js → auth-fetcher-749d880f.js} +1 -1
  57. package/dist/esm/{dataunit-fetcher-3d2ec959.js → dataunit-fetcher-3aac1a53.js} +1 -1
  58. package/dist/esm/{form-config-fetcher-e0382e5a.js → form-config-fetcher-adbe5d34.js} +5 -2
  59. package/dist/esm/{pesquisa-fetcher-a87445a0.js → pesquisa-fetcher-8edaa8cd.js} +1 -1
  60. package/dist/esm/snk-actions-button_4.entry.js +17 -14
  61. package/dist/esm/snk-application.entry.js +6 -6
  62. package/dist/esm/snk-attach.entry.js +5 -5
  63. package/dist/esm/snk-crud.entry.js +5 -5
  64. package/dist/esm/snk-data-exporter.entry.js +6 -6
  65. package/dist/esm/{snk-data-unit-29de836f.js → snk-data-unit-acf3dd64.js} +3 -3
  66. package/dist/esm/snk-data-unit.entry.js +4 -4
  67. package/dist/esm/snk-detail-view.entry.js +8 -8
  68. package/dist/esm/snk-filter-bar.entry.js +3 -3
  69. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  70. package/dist/esm/snk-form-config.entry.js +15 -4
  71. package/dist/esm/snk-form.entry.js +7 -6
  72. package/dist/esm/snk-grid.entry.js +8 -8
  73. package/dist/esm/{snk-guides-viewer-62124f3d.js → snk-guides-viewer-cb8a0b48.js} +10 -7
  74. package/dist/esm/snk-guides-viewer.entry.js +8 -8
  75. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  76. package/dist/esm/snk-simple-crud.entry.js +10 -10
  77. package/dist/sankhyablocks/{p-181975f1.js → p-06421fdb.js} +2 -2
  78. package/dist/sankhyablocks/{p-094eebf6.entry.js → p-0e9a872d.entry.js} +1 -1
  79. package/dist/sankhyablocks/{p-5b9160c6.entry.js → p-16969508.entry.js} +1 -1
  80. package/dist/sankhyablocks/{p-76a65660.js → p-1ab19772.js} +1 -1
  81. package/dist/sankhyablocks/{p-25f1fc39.js → p-1bf06cd3.js} +2 -2
  82. package/dist/sankhyablocks/{p-51999ab5.entry.js → p-1f47a0b2.entry.js} +1 -1
  83. package/dist/sankhyablocks/{p-9dfda04a.entry.js → p-212213d9.entry.js} +1 -1
  84. package/dist/sankhyablocks/{p-12f45f86.entry.js → p-3757394b.entry.js} +1 -1
  85. package/dist/sankhyablocks/p-3d542b58.entry.js +1 -0
  86. package/dist/sankhyablocks/{p-3287a6cc.js → p-4d9549cf.js} +1 -1
  87. package/dist/sankhyablocks/p-53c1d25d.entry.js +1 -0
  88. package/dist/sankhyablocks/p-60b29483.entry.js +1 -0
  89. package/dist/sankhyablocks/{p-162b9a59.entry.js → p-640140b3.entry.js} +2 -2
  90. package/dist/sankhyablocks/p-73185e58.entry.js +1 -0
  91. package/dist/sankhyablocks/p-7dd49d15.js +1 -0
  92. package/dist/sankhyablocks/{p-53949130.entry.js → p-8862ba4a.entry.js} +1 -1
  93. package/dist/sankhyablocks/p-8d7e2747.entry.js +1 -0
  94. package/dist/sankhyablocks/{p-70001ac1.js → p-a31e761f.js} +1 -1
  95. package/dist/sankhyablocks/p-afbb070d.js +1 -0
  96. package/dist/sankhyablocks/{p-5b26cc7c.entry.js → p-b2caaaf9.entry.js} +1 -1
  97. package/dist/sankhyablocks/p-bc4b94d2.entry.js +1 -0
  98. package/dist/sankhyablocks/{p-0cd3c0a9.js → p-ca5ec380.js} +1 -1
  99. package/dist/sankhyablocks/p-ce6eed2c.js +1 -0
  100. package/dist/sankhyablocks/{p-594bc21d.js → p-f3434fc4.js} +1 -1
  101. package/dist/sankhyablocks/{p-091ce761.js → p-f8698ad3.js} +1 -1
  102. package/dist/sankhyablocks/{p-bd008859.entry.js → p-fb34e0cf.entry.js} +1 -1
  103. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  104. package/dist/types/components/snk-actions-button/actions/index.d.ts +1 -0
  105. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +1 -0
  106. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +7 -2
  107. package/dist/types/lib/utils/GetSelectedRecordsIDsInfo.d.ts +3 -0
  108. package/package.json +1 -1
  109. package/dist/sankhyablocks/p-08c28ddd.entry.js +0 -1
  110. package/dist/sankhyablocks/p-2e9c764c.entry.js +0 -1
  111. package/dist/sankhyablocks/p-421bec84.entry.js +0 -1
  112. package/dist/sankhyablocks/p-5e384af4.entry.js +0 -1
  113. package/dist/sankhyablocks/p-5f016aed.js +0 -1
  114. package/dist/sankhyablocks/p-8f4e743f.js +0 -1
  115. package/dist/sankhyablocks/p-939e15d3.entry.js +0 -1
  116. package/dist/sankhyablocks/p-9863d682.js +0 -1
  117. package/dist/sankhyablocks/p-d65d98ed.entry.js +0 -1
  118. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +0 -3
@@ -1,7 +1,7 @@
1
- import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-e0382e5a.js';
1
+ import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-adbe5d34.js';
2
2
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
3
3
  import { ObjectUtils } from '@sankhyalabs/core';
4
- import { d as dist, D as DataFetcher } from './DataFetcher-773a3e4b.js';
4
+ import { d as dist, D as DataFetcher } from './DataFetcher-a9c598f2.js';
5
5
 
6
6
  class GridConfigFetcher extends ResourceFetcher {
7
7
  constructor() {
@@ -6863,6 +6863,7 @@ class DataFetcher {
6863
6863
  }
6864
6864
  }
6865
6865
  async executePendingRequest(watingRequestsById) {
6866
+ var _a, _b;
6866
6867
  const requestsBatch = [];
6867
6868
  let quietMode = true;
6868
6869
  watingRequestsById.forEach((waitingReq) => {
@@ -6873,36 +6874,36 @@ class DataFetcher {
6873
6874
  const response = await this.fecthGraphQL(requestsBatch, quietMode);
6874
6875
  const { data: dataResponse, errors: errorsResponse, extensions } = response;
6875
6876
  //Reject promises with errors from query
6876
- errorsResponse.forEach((errorResponse) => {
6877
- Object.entries(errorResponse).forEach(async ([key, val]) => {
6878
- const waitingRequest = watingRequestsById.get(val.request.variables[val.index].queryID);
6877
+ for (const errorResponse of errorsResponse) {
6878
+ const values = Object.values(errorResponse);
6879
+ for (const value of values) {
6880
+ const waitingRequest = watingRequestsById.get(value.request.variables[value.index].queryID);
6879
6881
  const hasClientEvent = await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
6880
- Promise.race([
6882
+ const data = await Promise.race([
6881
6883
  waitingRequest.promise,
6882
6884
  new Promise((resolve) => {
6883
6885
  resolve(false);
6884
6886
  })
6885
- ]).then((data) => {
6886
- var _a, _b;
6887
- if (!hasClientEvent || data === false) {
6888
- if (Object.keys(errorResponse[0].extensions).includes("SERVICE_CANCELED") || Object.keys(extensions).includes("isServiceCancelled")) {
6889
- (((_a = watingRequestsById.get(val.request.variables[val.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(new ServiceCanceledException("Service canceled", val.message));
6890
- }
6891
- else {
6892
- (((_b = watingRequestsById.get(val.request.variables[val.index].queryID)) === null || _b === void 0 ? void 0 : _b.reject) || Promise.reject)(new ErrorException("Falha detectada", val.message));
6893
- }
6887
+ ]);
6888
+ if (!hasClientEvent || data === false) {
6889
+ if (Object.keys(errorResponse[0].extensions).includes("SERVICE_CANCELED") || Object.keys(extensions).includes("isServiceCancelled")) {
6890
+ (((_a = watingRequestsById.get(value.request.variables[value.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(new ServiceCanceledException("Service canceled", value.message));
6894
6891
  }
6895
- });
6896
- });
6897
- });
6892
+ else {
6893
+ (((_b = watingRequestsById.get(value.request.variables[value.index].queryID)) === null || _b === void 0 ? void 0 : _b.reject) || Promise.reject)(new ErrorException("Falha detectada", value.message));
6894
+ }
6895
+ }
6896
+ }
6897
+ }
6898
6898
  //Resolve promises with data from query
6899
- dataResponse.forEach((data) => {
6900
- Object.entries(data).forEach(async ([key, val]) => {
6899
+ for (const data of dataResponse) {
6900
+ const entries = Object.entries(data);
6901
+ for (const [key, val] of entries) {
6901
6902
  const waitingRequest = watingRequestsById.get(key);
6902
6903
  await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
6903
6904
  ((waitingRequest === null || waitingRequest === void 0 ? void 0 : waitingRequest.resolve) || Promise.resolve)(val);
6904
- });
6905
- });
6905
+ }
6906
+ }
6906
6907
  }
6907
6908
  buildGraphQlURL(quietMode) {
6908
6909
  const urlParams = UrlUtils.getQueryParams(location.search);
@@ -0,0 +1,41 @@
1
+ import { JSUtils, DataType } from '@sankhyalabs/core';
2
+
3
+ function getSelectedRecordsIDsInfo(dataUnit) {
4
+ const selectionInfo = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getSelectionInfo();
5
+ if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
6
+ return [];
7
+ }
8
+ const selectedRecordsIDsInfo = [];
9
+ const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
10
+ if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
11
+ selectedRecords.forEach(({ __record__id__ }) => {
12
+ if (!dataUnit.isNewRecord(__record__id__)) {
13
+ /*
14
+ Esse if foi necessário para tratar corretamente o ID
15
+ do record quando está sendo utilizado no modo standAlone
16
+ isso não faz a exportação da grid funcionar no modo standAlone
17
+ mas deixa de causar erro nas oprações de CRUD.
18
+ */
19
+ if (!JSUtils.isBase64(__record__id__)) {
20
+ selectedRecordsIDsInfo.push({
21
+ name: "__record__id__",
22
+ type: DataType.TEXT,
23
+ value: __record__id__
24
+ });
25
+ return;
26
+ }
27
+ const revertBase64ToObject = JSON.parse(window.atob(__record__id__));
28
+ Object.entries(revertBase64ToObject).forEach(([name, value]) => {
29
+ const metadataField = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getField(name);
30
+ if (metadataField == undefined) {
31
+ return;
32
+ }
33
+ selectedRecordsIDsInfo.push(Object.assign({ name, type: metadataField.dataType }, value));
34
+ });
35
+ }
36
+ });
37
+ }
38
+ return selectedRecordsIDsInfo;
39
+ }
40
+
41
+ export { getSelectedRecordsIDsInfo as g };
@@ -1,13 +1,13 @@
1
- import { D as DataFetcher } from './DataFetcher-773a3e4b.js';
2
- import './pesquisa-fetcher-a87445a0.js';
1
+ import { D as DataFetcher } from './DataFetcher-a9c598f2.js';
2
+ import './pesquisa-fetcher-8edaa8cd.js';
3
3
  import { SortMode, ApplicationContext, UserInterface, DateUtils, ObjectUtils, NumberUtils, DataType } from '@sankhyalabs/core';
4
4
  import './index-3aa4977a.js';
5
5
  import './ISave-d8c8bc59.js';
6
6
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
7
7
  import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
8
- import { P as PreloadManager } from './dataunit-fetcher-3d2ec959.js';
8
+ import { P as PreloadManager } from './dataunit-fetcher-3aac1a53.js';
9
9
  import './filter-item-type.enum-d45e026f.js';
10
- import './form-config-fetcher-e0382e5a.js';
10
+ import './form-config-fetcher-adbe5d34.js';
11
11
  import InMemoryFilterColumnDataSource from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
12
12
 
13
13
  class CrudUtils {
@@ -1,12 +1,14 @@
1
- import { C as ConfigStorage } from './ConfigStorage-e476378d.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-7b36d041.js';
2
2
  import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
3
- import { F as FormConfigFetcher } from './form-config-fetcher-e0382e5a.js';
3
+ import { F as FormConfigFetcher } from './form-config-fetcher-adbe5d34.js';
4
+ import { T as TAB_NAMES } from './constants-8457af36.js';
4
5
 
5
6
  class SnkFormConfigManager {
6
- constructor(configName, resourceID, onConfigChange) {
7
+ constructor(configName, resourceID, onConfigChange, dataUnit) {
7
8
  this._resourceID = resourceID;
8
9
  this._configName = configName;
9
10
  this._onConfigChange = onConfigChange;
11
+ this._dataUnit = dataUnit;
10
12
  }
11
13
  addFormLegacyConfig(legacyConfigName) {
12
14
  if (this._configName) {
@@ -17,6 +19,7 @@ class SnkFormConfigManager {
17
19
  return new Promise(resolve => {
18
20
  ConfigStorage.loadFormConfig(this._configName, this._resourceID)
19
21
  .then((config) => {
22
+ config = this.buildFormMetadataUITabs(config);
20
23
  this.setConfig(config);
21
24
  resolve(config);
22
25
  })
@@ -25,6 +28,10 @@ class SnkFormConfigManager {
25
28
  });
26
29
  });
27
30
  }
31
+ getEmptyConfig() {
32
+ const config = this.buildFormMetadataUITabs({ fields: [], emptyConfig: true }, true);
33
+ return config;
34
+ }
28
35
  saveConfig(config) {
29
36
  const configToSave = ObjectUtils.copy(config);
30
37
  return new Promise(accept => {
@@ -68,25 +75,36 @@ class SnkFormConfigManager {
68
75
  }
69
76
  return updatingCardConfig;
70
77
  }
71
- getFieldsList(dataUnit, descriptionFilter) {
78
+ hasConfig(config) {
79
+ var _a;
80
+ const currentConfig = config !== null && config !== void 0 ? config : this._config;
81
+ if (currentConfig && ((_a = currentConfig.fields) === null || _a === void 0 ? void 0 : _a.length)) {
82
+ return true;
83
+ }
84
+ return false;
85
+ }
86
+ getFieldsList(descriptionFilter, forceEmptyConfig = false) {
72
87
  var _a;
73
88
  const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
74
- if (fields != undefined && fields.length > 0) {
75
- return fields.map(({ label, name, readOnly, visible, required }) => {
89
+ const hasConfig = this.hasConfig();
90
+ if (hasConfig && !forceEmptyConfig) {
91
+ return fields.map(({ label, name, readOnly, visible, required, tab }) => {
92
+ var _a;
76
93
  if (label == undefined) {
77
- const currentField = dataUnit.getField(name);
78
- return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required });
94
+ const currentField = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.getField(name);
95
+ return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required, tab: tab });
79
96
  }
80
- return { name, label, readOnly, visible, required };
97
+ return { name, label, readOnly, visible, required, tab };
81
98
  })
82
99
  .filter(field => this.isFieldVisible(field, descriptionFilter));
83
100
  }
84
- if (dataUnit != undefined) {
85
- return dataUnit.metadata.fields
86
- .filter(field => this.isFieldVisible(field, descriptionFilter))
87
- .map(({ label, name, readOnly }) => { return { label, name, readOnly }; });
101
+ if (!this._dataUnit) {
102
+ return [];
88
103
  }
89
- return [];
104
+ const filteredFields = this._dataUnit.metadata.fields
105
+ .filter(field => this.isFieldVisible(field, descriptionFilter))
106
+ .map(({ label, name, readOnly, visible, required, properties }) => ({ label, name, readOnly, visible, required, tab: properties === null || properties === void 0 ? void 0 : properties.UITabName }));
107
+ return filteredFields;
90
108
  }
91
109
  isFieldVisible(field, descriptionFilter) {
92
110
  if (field.visible === false) {
@@ -99,8 +117,8 @@ class SnkFormConfigManager {
99
117
  const normalizedFilter = StringUtils.replaceAccentuatedCharsLower(descriptionFilter.toLocaleLowerCase());
100
118
  return normalizedText.includes(normalizedFilter);
101
119
  }
102
- getFormConfig(dataUnit, ignoreReadOnlyFormFields) {
103
- let fields = this.getFieldsList(dataUnit);
120
+ getFormConfig(dataUnit, ignoreReadOnlyFormFields, forceEmptyConfig = false) {
121
+ let fields = this.getFieldsList(undefined, forceEmptyConfig);
104
122
  if (ignoreReadOnlyFormFields) {
105
123
  fields = fields.filter(field => {
106
124
  if (dataUnit) {
@@ -153,6 +171,44 @@ class SnkFormConfigManager {
153
171
  async fetchDefaultConfig() {
154
172
  return this.getFormConfigFetcher().fetchDefaultConfig(this._configName, this._resourceID);
155
173
  }
174
+ parseObjectList(object) {
175
+ if (!object) {
176
+ return [];
177
+ }
178
+ return Array.isArray(object) ? object : [object];
179
+ }
180
+ buildFormMetadataUITabs(config, forceEmptyConfig = false) {
181
+ var _a;
182
+ const hasConfig = this.hasConfig(config);
183
+ if (!forceEmptyConfig && (!this._dataUnit || hasConfig)) {
184
+ return config;
185
+ }
186
+ config = this.getFormConfig(this._dataUnit, false, true);
187
+ config.tabs = this.parseObjectList(config.tabs);
188
+ config.emptyConfig = false;
189
+ config.defaultConfiguration = true;
190
+ const fields = this._dataUnit.metadata.fields;
191
+ for (const currentField of fields) {
192
+ const field = config.fields.find(field => field.name === currentField.name);
193
+ const uiTabName = (_a = currentField.properties) === null || _a === void 0 ? void 0 : _a.UITabName;
194
+ if (!uiTabName || uiTabName === TAB_NAMES.main) {
195
+ continue;
196
+ }
197
+ const haveTab = config.tabs.some((tab) => tab.label === uiTabName);
198
+ if (!haveTab) {
199
+ config.tabs.push({
200
+ label: uiTabName,
201
+ name: uiTabName,
202
+ order: 0,
203
+ visible: true,
204
+ });
205
+ }
206
+ if (field) {
207
+ field.tab = uiTabName;
208
+ }
209
+ }
210
+ return config;
211
+ }
156
212
  }
157
213
 
158
214
  export { SnkFormConfigManager as S };
@@ -1,5 +1,5 @@
1
1
  import { ObjectUtils } from '@sankhyalabs/core';
2
- import { R as ResourceFetcher } from './form-config-fetcher-e0382e5a.js';
2
+ import { R as ResourceFetcher } from './form-config-fetcher-adbe5d34.js';
3
3
 
4
4
  class AuthFetcher extends ResourceFetcher {
5
5
  getData(resourceID) {
@@ -1,5 +1,5 @@
1
1
  import { ObjectUtils, DataUnit, DataType, DateUtils, StringUtils, ChangeOperation, ApplicationContext, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
2
- import { D as DataFetcher, d as dist } from './DataFetcher-773a3e4b.js';
2
+ import { D as DataFetcher, d as dist } from './DataFetcher-a9c598f2.js';
3
3
  import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
4
4
  import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
5
  import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
@@ -1,4 +1,4 @@
1
- import { d as dist, D as DataFetcher } from './DataFetcher-773a3e4b.js';
1
+ import { d as dist, D as DataFetcher } from './DataFetcher-a9c598f2.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
3
 
4
4
  class ResourceFetcher {
@@ -217,7 +217,10 @@ class FormConfigFetcher extends ResourceFetcher {
217
217
  query: this.queryConfig.get("fetchDefaultConfig"),
218
218
  })
219
219
  .then((result) => {
220
- resolve(ObjectUtils.stringToObject((result === null || result === void 0 ? void 0 : result.resource) || ''));
220
+ if (!(result === null || result === void 0 ? void 0 : result.resource)) {
221
+ resolve(null);
222
+ }
223
+ resolve(ObjectUtils.stringToObject(result === null || result === void 0 ? void 0 : result.resource));
221
224
  })
222
225
  .catch((error) => {
223
226
  reject(error);
@@ -1,5 +1,5 @@
1
1
  import { DataType, ApplicationContext } from '@sankhyalabs/core';
2
- import { d as dist, D as DataFetcher } from './DataFetcher-773a3e4b.js';
2
+ import { d as dist, D as DataFetcher } from './DataFetcher-a9c598f2.js';
3
3
 
4
4
  class PesquisaFetcher {
5
5
  constructor() {
@@ -1,19 +1,20 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-a7d3d3f1.js';
2
2
  import { ApplicationContext, StringUtils, ErrorException, WarningException, ObjectUtils, DateUtils, ArrayUtils, ElementIDUtils } from '@sankhyalabs/core';
3
- import { D as DataFetcher } from './DataFetcher-773a3e4b.js';
3
+ import { D as DataFetcher } from './DataFetcher-a9c598f2.js';
4
4
  import { P as ParamType } from './ParamType-d5152b06.js';
5
- import './pesquisa-fetcher-a87445a0.js';
5
+ import './pesquisa-fetcher-8edaa8cd.js';
6
6
  import './index-3aa4977a.js';
7
7
  import './ISave-d8c8bc59.js';
8
8
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
9
9
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
- import './dataunit-fetcher-3d2ec959.js';
10
+ import './dataunit-fetcher-3aac1a53.js';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
- import './form-config-fetcher-e0382e5a.js';
12
+ import './form-config-fetcher-adbe5d34.js';
13
+ import { g as getSelectedRecordsIDsInfo } from './GetSelectedRecordsIDsInfo-9fa41508.js';
13
14
  import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
14
15
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
15
16
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode';
16
- import { C as ConfigStorage } from './ConfigStorage-e476378d.js';
17
+ import { C as ConfigStorage } from './ConfigStorage-7b36d041.js';
17
18
  import { O as ORDER_VALUES } from './constants-8457af36.js';
18
19
  import './PrintUtils-3e4ff0f5.js';
19
20
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
@@ -169,7 +170,6 @@ var RefreshType;
169
170
 
170
171
  const MASTER_ROW_PROPERTY = "__MASTER_ROW__";
171
172
  const ENTITY_NAME_PROPERTY = '__ENTITY_NAME__';
172
- const NUFIN_COLUMN = 'NUFIN';
173
173
  const SERVICE_GET_CONFIGURATIONS = 'SystemUtilsSP.getConf';
174
174
  class Actions {
175
175
  constructor(actionsExecuteInterface, dataUnit, appResourceId) {
@@ -181,6 +181,10 @@ class Actions {
181
181
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
182
182
  this._appResourceId = appResourceId;
183
183
  }
184
+ getPrimaryKeys() {
185
+ const ids = getSelectedRecordsIDsInfo(this._dataUnit);
186
+ return ids.map(({ name }) => name);
187
+ }
184
188
  apply(action, hasParamsToSave) {
185
189
  this._application.closePopUp();
186
190
  this._actionsExecuteInterface.execute(action, this._dataUnit)
@@ -449,6 +453,7 @@ class Actions {
449
453
  executeAction(execSource);
450
454
  }
451
455
  addRows(execSource) {
456
+ const primaryKeys = this.getPrimaryKeys();
452
457
  const rows = {
453
458
  row: []
454
459
  };
@@ -462,15 +467,13 @@ class Actions {
462
467
  delete sourceRow[MASTER_ROW_PROPERTY];
463
468
  delete sourceRow[ENTITY_NAME_PROPERTY];
464
469
  }
465
- for (const fieldName in sourceRow) {
466
- if (fieldName !== NUFIN_COLUMN)
467
- continue;
468
- if (!row.field) {
469
- row.field = [];
470
- }
470
+ if (!row.field) {
471
+ row.field = [];
472
+ }
473
+ for (const primaryKey of primaryKeys) {
471
474
  row.field.push({
472
- fieldName: fieldName,
473
- $: sourceRow[fieldName]
475
+ fieldName: primaryKey,
476
+ $: sourceRow[primaryKey]
474
477
  });
475
478
  }
476
479
  rows.row.push(row);
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DateUtils, StringUtils, ObjectUtils, WaitingChangeException, WarningException, ErrorException, KeyboardManager, OnboardingUtils, DependencyType, ArrayUtils, SearchUtils, ElementIDUtils, ApplicationContext, DataType, ErrorTracking } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { C as ConfigStorage } from './ConfigStorage-e476378d.js';
5
- import { d as dist, D as DataFetcher, U as UrlUtils } from './DataFetcher-773a3e4b.js';
6
- import { A as AutorizationType, a as AuthFetcher } from './auth-fetcher-a411f73c.js';
7
- import { D as DataUnitFetcher } from './dataunit-fetcher-3d2ec959.js';
8
- import { P as PesquisaFetcher } from './pesquisa-fetcher-a87445a0.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-7b36d041.js';
5
+ import { d as dist, D as DataFetcher, U as UrlUtils } from './DataFetcher-a9c598f2.js';
6
+ import { A as AutorizationType, a as AuthFetcher } from './auth-fetcher-749d880f.js';
7
+ import { D as DataUnitFetcher } from './dataunit-fetcher-3aac1a53.js';
8
+ import { P as PesquisaFetcher } from './pesquisa-fetcher-8edaa8cd.js';
9
9
  import { S as SnkMessageBuilder } from './SnkMessageBuilder-ae87b754.js';
10
- import './form-config-fetcher-e0382e5a.js';
10
+ import './form-config-fetcher-adbe5d34.js';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
12
  import './PrintUtils-3e4ff0f5.js';
13
13
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
@@ -1,14 +1,14 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-a7d3d3f1.js';
2
2
  import { ApplicationContext, DataType, Action, UserInterface, StringUtils, DataUnit } from '@sankhyalabs/core';
3
- import { D as DataFetcher } from './DataFetcher-773a3e4b.js';
4
- import './pesquisa-fetcher-a87445a0.js';
3
+ import { D as DataFetcher } from './DataFetcher-a9c598f2.js';
4
+ import './pesquisa-fetcher-8edaa8cd.js';
5
5
  import './index-3aa4977a.js';
6
6
  import { S as SaveErrorsEnum } from './ISave-d8c8bc59.js';
7
- import { P as PreloadManager, b as applyFilter, c as applySorting, d as buildPaginationInfo, D as DataUnitFetcher, I as InMemoryLoader } from './dataunit-fetcher-3d2ec959.js';
7
+ import { P as PreloadManager, b as applyFilter, c as applySorting, d as buildPaginationInfo, D as DataUnitFetcher, I as InMemoryLoader } from './dataunit-fetcher-3aac1a53.js';
8
8
  import './filter-item-type.enum-d45e026f.js';
9
- import './form-config-fetcher-e0382e5a.js';
9
+ import './form-config-fetcher-adbe5d34.js';
10
10
  import { d as VIEW_MODE } from './constants-8457af36.js';
11
- import { A as AutorizationType } from './auth-fetcher-a411f73c.js';
11
+ import { A as AutorizationType } from './auth-fetcher-749d880f.js';
12
12
  import { T as TaskbarElement } from './taskbar-elements-d59867f1.js';
13
13
  import './PrintUtils-3e4ff0f5.js';
14
14
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
@@ -1,17 +1,17 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ElementIDUtils, ApplicationContext, JSUtils, FloatingManager } from '@sankhyalabs/core';
3
3
  import { T as TaskbarElement } from './taskbar-elements-d59867f1.js';
4
- import './DataFetcher-773a3e4b.js';
5
- import './pesquisa-fetcher-a87445a0.js';
4
+ import './DataFetcher-a9c598f2.js';
5
+ import './pesquisa-fetcher-8edaa8cd.js';
6
6
  import { P as PresentationMode } from './index-3aa4977a.js';
7
7
  import './ISave-d8c8bc59.js';
8
8
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
9
9
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
- import './dataunit-fetcher-3d2ec959.js';
10
+ import './dataunit-fetcher-3aac1a53.js';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
- import './form-config-fetcher-e0382e5a.js';
12
+ import './form-config-fetcher-adbe5d34.js';
13
13
  import { d as VIEW_MODE } from './constants-8457af36.js';
14
- import { A as AutorizationType } from './auth-fetcher-a411f73c.js';
14
+ import { A as AutorizationType } from './auth-fetcher-749d880f.js';
15
15
  import './index-bdf75557.js';
16
16
  import './PrintUtils-3e4ff0f5.js';
17
17
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
@@ -3,19 +3,19 @@ import { ApplicationContext, ObjectUtils, UserInterface, DataType, ElementIDUtil
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { D as DataExporterOption, a as DataExporterType, b as DataExporterFormat } from './index-3aa4977a.js';
5
5
  import { R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-8457af36.js';
6
- import { D as DataFetcher } from './DataFetcher-773a3e4b.js';
7
- import { S as SnkDataUnit } from './snk-data-unit-29de836f.js';
8
- import './pesquisa-fetcher-a87445a0.js';
6
+ import { D as DataFetcher } from './DataFetcher-a9c598f2.js';
7
+ import { S as SnkDataUnit } from './snk-data-unit-acf3dd64.js';
8
+ import './pesquisa-fetcher-8edaa8cd.js';
9
9
  import './ISave-d8c8bc59.js';
10
10
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
11
11
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
12
- import './dataunit-fetcher-3d2ec959.js';
12
+ import './dataunit-fetcher-3aac1a53.js';
13
13
  import './filter-item-type.enum-d45e026f.js';
14
- import './form-config-fetcher-e0382e5a.js';
14
+ import './form-config-fetcher-adbe5d34.js';
15
15
  import './PrintUtils-3e4ff0f5.js';
16
16
  import './SnkMessageBuilder-ae87b754.js';
17
- import './RecordIDUtils-87d02110.js';
18
17
  import '@sankhyalabs/core/dist/dataunit/metadata/DataType';
18
+ import './GetSelectedRecordsIDsInfo-9fa41508.js';
19
19
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
20
20
  import '@sankhyalabs/core/dist/utils/SortingUtils';
21
21
  import './ResourceIDUtils-a114189a.js';
@@ -2,9 +2,9 @@ import { r as registerInstance, c as createEvent, h, g as getElement, H as Host
2
2
  import { Action, ObjectUtils, DataUnitAction, StringUtils, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder-ae87b754.js';
5
- import { g as getRecordValue, a as DatasetStrategy } from './dataunit-fetcher-3d2ec959.js';
6
- import { g as getSelectedIDs } from './RecordIDUtils-87d02110.js';
5
+ import { g as getRecordValue, a as DatasetStrategy } from './dataunit-fetcher-3aac1a53.js';
7
6
  import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
7
+ import { g as getSelectedRecordsIDsInfo } from './GetSelectedRecordsIDsInfo-9fa41508.js';
8
8
 
9
9
  const SnkDataUnit = class {
10
10
  constructor(hostRef) {
@@ -115,7 +115,7 @@ const SnkDataUnit = class {
115
115
  * @returns Retorna a lista de IDs dos registros selecionados.
116
116
  */
117
117
  async getSelectedRecordsIDsInfo() {
118
- return Promise.resolve(getSelectedIDs(this.dataUnit));
118
+ return getSelectedRecordsIDsInfo(this.dataUnit);
119
119
  }
120
120
  /**
121
121
  * Retorna os campos que possuem a propriedade "rmp" (Row Metadata Provider).
@@ -1,15 +1,15 @@
1
- export { S as snk_data_unit } from './snk-data-unit-29de836f.js';
1
+ export { S as snk_data_unit } from './snk-data-unit-acf3dd64.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import '@sankhyalabs/ezui/dist/collection/utils';
5
5
  import './SnkMessageBuilder-ae87b754.js';
6
- import './dataunit-fetcher-3d2ec959.js';
7
- import './DataFetcher-773a3e4b.js';
6
+ import './dataunit-fetcher-3aac1a53.js';
7
+ import './DataFetcher-a9c598f2.js';
8
8
  import './PrintUtils-3e4ff0f5.js';
9
9
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
10
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
11
11
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
12
12
  import '@sankhyalabs/core/dist/utils/SortingUtils';
13
13
  import './ResourceIDUtils-a114189a.js';
14
- import './RecordIDUtils-87d02110.js';
15
14
  import '@sankhyalabs/core/dist/dataunit/metadata/DataType';
15
+ import './GetSelectedRecordsIDsInfo-9fa41508.js';
@@ -1,21 +1,21 @@
1
1
  import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host } from './index-a7d3d3f1.js';
2
2
  import { Action } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-298cd647.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-139f09fa.js';
4
4
  import { FormMetadata, buildFormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
- import './DataFetcher-773a3e4b.js';
6
- import './pesquisa-fetcher-a87445a0.js';
5
+ import './DataFetcher-a9c598f2.js';
6
+ import './pesquisa-fetcher-8edaa8cd.js';
7
7
  import { P as PresentationMode } from './index-3aa4977a.js';
8
8
  import './ISave-d8c8bc59.js';
9
9
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
10
10
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
- import './dataunit-fetcher-3d2ec959.js';
11
+ import './dataunit-fetcher-3aac1a53.js';
12
12
  import './filter-item-type.enum-d45e026f.js';
13
- import './form-config-fetcher-e0382e5a.js';
13
+ import './form-config-fetcher-adbe5d34.js';
14
14
  import { T as TaskbarElement } from './taskbar-elements-d59867f1.js';
15
15
  import { d as VIEW_MODE } from './constants-8457af36.js';
16
- import { S as SnkGuidesViewer } from './snk-guides-viewer-62124f3d.js';
16
+ import { S as SnkGuidesViewer } from './snk-guides-viewer-cb8a0b48.js';
17
17
  import { S as SnkMessageBuilder } from './SnkMessageBuilder-ae87b754.js';
18
- import './ConfigStorage-e476378d.js';
18
+ import './ConfigStorage-7b36d041.js';
19
19
  import './PrintUtils-3e4ff0f5.js';
20
20
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
21
21
  import '@sankhyalabs/core/dist/utils/SortingUtils';
@@ -287,7 +287,7 @@ const SnkDetailView = class {
287
287
  }
288
288
  componentWillLoad() {
289
289
  this._configName = `dynaform.${this.entityName}`;
290
- this.formConfigManager = new SnkFormConfigManager(this._configName, this.resourceID, () => this.loadMetadata());
290
+ this.formConfigManager = new SnkFormConfigManager(this._configName, this.resourceID, () => this.loadMetadata(), this.dataUnit);
291
291
  this.formConfigManager.loadConfig();
292
292
  if (this.messagesBuilder == undefined) {
293
293
  this.messagesBuilder = new SnkMessageBuilder(this.entityName);
@@ -1,15 +1,15 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
- import { C as ConfigStorage } from './ConfigStorage-e476378d.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-7b36d041.js';
5
5
  import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
6
6
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
7
7
  import { F as FilterOperand } from './index-ae591a44.js';
8
8
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
9
9
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
10
10
  import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
11
- import './form-config-fetcher-e0382e5a.js';
12
- import './DataFetcher-773a3e4b.js';
11
+ import './form-config-fetcher-adbe5d34.js';
12
+ import './DataFetcher-a9c598f2.js';
13
13
  import './PrintUtils-3e4ff0f5.js';
14
14
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
15
15
 
@@ -2,10 +2,10 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
- import { C as ConfigStorage } from './ConfigStorage-e476378d.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-7b36d041.js';
6
6
  import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
7
- import './form-config-fetcher-e0382e5a.js';
8
- import './DataFetcher-773a3e4b.js';
7
+ import './form-config-fetcher-adbe5d34.js';
8
+ import './DataFetcher-a9c598f2.js';
9
9
  import './PrintUtils-3e4ff0f5.js';
10
10
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
11