@sankhyalabs/sankhyablocks 8.1.0-dev.1 → 8.1.0-dev.10

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 (140) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/{ConfigStorage-73e7afff.js → ConfigStorage-e32e1391.js} +4 -4
  3. package/dist/cjs/{DataFetcher-004811c6.js → DataFetcher-d2c6ae38.js} +29 -0
  4. package/dist/cjs/{SnkFormConfigManager-d1f1a222.js → SnkFormConfigManager-5e61b0a9.js} +2 -2
  5. package/dist/cjs/{auth-fetcher-58237931.js → auth-fetcher-da975ac5.js} +1 -1
  6. package/dist/cjs/{dataunit-fetcher-029eafbd.js → dataunit-fetcher-58ad78a7.js} +1 -1
  7. package/dist/cjs/{filter-bar-config-fetcher-2b8ed9d0.js → filter-bar-config-fetcher-80b033ce.js} +1 -1
  8. package/dist/cjs/{form-config-fetcher-181767c9.js → form-config-fetcher-761994b9.js} +2 -2
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{pesquisa-fetcher-9a97994a.js → pesquisa-fetcher-bb0bb679.js} +1 -1
  11. package/dist/cjs/{resource-fetcher-c0332609.js → resource-fetcher-95d24dff.js} +1 -1
  12. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  13. package/dist/cjs/snk-actions-button.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-application.cjs.entry.js +8 -8
  15. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-crud.cjs.entry.js +5 -4
  17. package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
  18. package/dist/cjs/{snk-data-unit-cc7a7ed0.js → snk-data-unit-e89e07bd.js} +0 -1
  19. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  20. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -9
  21. package/dist/cjs/snk-filter-bar.cjs.entry.js +6 -6
  22. package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +5 -5
  24. package/dist/cjs/snk-form-config.cjs.entry.js +3 -3
  25. package/dist/cjs/snk-form-view.cjs.entry.js +6 -1
  26. package/dist/cjs/snk-form.cjs.entry.js +7 -6
  27. package/dist/cjs/snk-grid-config.cjs.entry.js +5 -5
  28. package/dist/cjs/snk-grid.cjs.entry.js +10 -9
  29. package/dist/cjs/{snk-guides-viewer-27f87d90.js → snk-guides-viewer-eb0a79a4.js} +4 -3
  30. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -8
  31. package/dist/cjs/snk-personalized-filter.cjs.entry.js +5 -5
  32. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  33. package/dist/cjs/snk-simple-crud.cjs.entry.js +15 -71
  34. package/dist/collection/components/snk-crud/snk-crud.js +22 -0
  35. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +23 -1
  36. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +27 -1
  37. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +22 -0
  38. package/dist/collection/components/snk-data-unit/snk-data-unit.js +0 -18
  39. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
  40. package/dist/collection/components/snk-form/snk-form.js +22 -0
  41. package/dist/collection/components/snk-grid/snk-grid.js +25 -4
  42. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +22 -0
  43. package/dist/collection/components/teste-pesquisa/teste-pesquisa.css +1 -1
  44. package/dist/collection/lib/dataUnit/InMemoryLoader.js +2 -59
  45. package/dist/collection/lib/utils/urlutils.js +29 -0
  46. package/dist/components/DataFetcher.js +29 -0
  47. package/dist/components/snk-crud.js +1 -0
  48. package/dist/components/snk-data-unit2.js +0 -1
  49. package/dist/components/snk-detail-view2.js +3 -1
  50. package/dist/components/snk-filter-bar2.js +1 -1
  51. package/dist/components/snk-form-view2.js +6 -1
  52. package/dist/components/snk-form.js +1 -0
  53. package/dist/components/snk-grid2.js +7 -5
  54. package/dist/components/snk-simple-crud2.js +3 -59
  55. package/dist/esm/{ConfigStorage-19a7260b.js → ConfigStorage-b6aefe42.js} +4 -4
  56. package/dist/esm/{DataFetcher-e0fc5549.js → DataFetcher-aaaff866.js} +29 -0
  57. package/dist/esm/{SnkFormConfigManager-1a42eb02.js → SnkFormConfigManager-80901f2d.js} +2 -2
  58. package/dist/esm/{auth-fetcher-83a946f8.js → auth-fetcher-7860d777.js} +1 -1
  59. package/dist/esm/{dataunit-fetcher-6a695723.js → dataunit-fetcher-9dfcdb1d.js} +1 -1
  60. package/dist/esm/{filter-bar-config-fetcher-06e02851.js → filter-bar-config-fetcher-317cb6bf.js} +1 -1
  61. package/dist/esm/{form-config-fetcher-9e167008.js → form-config-fetcher-4a34b86a.js} +2 -2
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/{pesquisa-fetcher-9118eb7a.js → pesquisa-fetcher-01d058e6.js} +1 -1
  64. package/dist/esm/{resource-fetcher-768d5556.js → resource-fetcher-b36ac145.js} +1 -1
  65. package/dist/esm/sankhyablocks.js +1 -1
  66. package/dist/esm/snk-actions-button.entry.js +2 -2
  67. package/dist/esm/snk-application.entry.js +8 -8
  68. package/dist/esm/snk-attach.entry.js +2 -2
  69. package/dist/esm/snk-crud.entry.js +5 -4
  70. package/dist/esm/snk-data-exporter.entry.js +2 -2
  71. package/dist/esm/{snk-data-unit-77508763.js → snk-data-unit-8c4d944d.js} +0 -1
  72. package/dist/esm/snk-data-unit.entry.js +1 -1
  73. package/dist/esm/snk-detail-view.entry.js +10 -9
  74. package/dist/esm/snk-filter-bar.entry.js +6 -6
  75. package/dist/esm/snk-filter-detail.entry.js +3 -3
  76. package/dist/esm/snk-filter-modal-item.entry.js +5 -5
  77. package/dist/esm/snk-form-config.entry.js +3 -3
  78. package/dist/esm/snk-form-view.entry.js +6 -1
  79. package/dist/esm/snk-form.entry.js +7 -6
  80. package/dist/esm/snk-grid-config.entry.js +5 -5
  81. package/dist/esm/snk-grid.entry.js +10 -9
  82. package/dist/esm/{snk-guides-viewer-c47cd45e.js → snk-guides-viewer-ee42eb53.js} +4 -3
  83. package/dist/esm/snk-guides-viewer.entry.js +8 -8
  84. package/dist/esm/snk-personalized-filter.entry.js +5 -5
  85. package/dist/esm/snk-print-selector.entry.js +1 -1
  86. package/dist/esm/snk-simple-crud.entry.js +5 -61
  87. package/dist/sankhyablocks/{p-e7e54737.entry.js → p-05bcad8a.entry.js} +1 -1
  88. package/dist/sankhyablocks/p-0b64f036.entry.js +1 -0
  89. package/dist/sankhyablocks/p-0e97ec46.entry.js +1 -0
  90. package/dist/sankhyablocks/{p-0ed0fc02.entry.js → p-1b81c379.entry.js} +1 -1
  91. package/dist/sankhyablocks/{p-98f9d076.js → p-2dd0f891.js} +2 -2
  92. package/dist/sankhyablocks/p-330f584a.entry.js +1 -0
  93. package/dist/sankhyablocks/{p-bc735728.entry.js → p-35ecafcb.entry.js} +1 -1
  94. package/dist/sankhyablocks/{p-d1b89765.js → p-42843f0e.js} +1 -1
  95. package/dist/sankhyablocks/p-459d4267.entry.js +1 -0
  96. package/dist/sankhyablocks/{p-be684b38.entry.js → p-557affc8.entry.js} +1 -1
  97. package/dist/sankhyablocks/p-564efc43.js +1 -0
  98. package/dist/sankhyablocks/{p-df8621b4.js → p-60791bb6.js} +1 -1
  99. package/dist/sankhyablocks/{p-815a42c0.entry.js → p-6295424d.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-f88c45bf.js → p-64c2cec3.js} +1 -1
  101. package/dist/sankhyablocks/{p-34085ced.entry.js → p-77ecc583.entry.js} +1 -1
  102. package/dist/sankhyablocks/p-803b79d6.js +1 -0
  103. package/dist/sankhyablocks/{p-7e285d6c.entry.js → p-80729c9b.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-0a4c753d.js → p-85affa29.js} +1 -1
  105. package/dist/sankhyablocks/p-95fa8af6.entry.js +1 -0
  106. package/dist/sankhyablocks/{p-8a41172a.entry.js → p-96c1ae78.entry.js} +1 -1
  107. package/dist/sankhyablocks/p-b556fadc.entry.js +1 -0
  108. package/dist/sankhyablocks/{p-2ac9c585.js → p-bee6b5d7.js} +1 -1
  109. package/dist/sankhyablocks/p-bf3bd954.entry.js +1 -0
  110. package/dist/sankhyablocks/p-c32b9d7c.entry.js +1 -0
  111. package/dist/sankhyablocks/p-c555075c.entry.js +1 -0
  112. package/dist/sankhyablocks/{p-8f8184ff.js → p-dd1fa35d.js} +1 -1
  113. package/dist/sankhyablocks/{p-976e56e9.js → p-e42f1f2a.js} +1 -1
  114. package/dist/sankhyablocks/{p-c0f656af.entry.js → p-f24c4bc7.entry.js} +1 -1
  115. package/dist/sankhyablocks/{p-7b8b8ae9.js → p-f737f7e1.js} +1 -1
  116. package/dist/sankhyablocks/{p-f31bfdee.entry.js → p-fd69eab9.entry.js} +1 -1
  117. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  118. package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
  119. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +4 -0
  120. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +5 -0
  121. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -0
  122. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +0 -4
  123. package/dist/types/components/snk-form/snk-form.d.ts +4 -0
  124. package/dist/types/components/snk-grid/snk-grid.d.ts +1 -1
  125. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -0
  126. package/dist/types/components.d.ts +26 -0
  127. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +0 -7
  128. package/dist/types/lib/utils/urlutils.d.ts +14 -0
  129. package/package.json +3 -3
  130. package/dist/sankhyablocks/p-216f081a.entry.js +0 -1
  131. package/dist/sankhyablocks/p-22c6fe1a.entry.js +0 -1
  132. package/dist/sankhyablocks/p-34a1357a.entry.js +0 -1
  133. package/dist/sankhyablocks/p-4721c3db.js +0 -1
  134. package/dist/sankhyablocks/p-6759adae.entry.js +0 -1
  135. package/dist/sankhyablocks/p-968741cc.js +0 -1
  136. package/dist/sankhyablocks/p-c44f6aaf.entry.js +0 -1
  137. package/dist/sankhyablocks/p-c57bd935.entry.js +0 -1
  138. package/dist/sankhyablocks/p-cfd7da4a.entry.js +0 -1
  139. package/dist/sankhyablocks/p-e28129aa.entry.js +0 -1
  140. package/dist/sankhyablocks/p-fe010e54.entry.js +0 -1
@@ -174,6 +174,28 @@ export class SnkForm {
174
174
  "resolved": "string",
175
175
  "references": {}
176
176
  }
177
+ }, {
178
+ "method": "formItemsReady",
179
+ "name": "formItemsReady",
180
+ "bubbles": true,
181
+ "cancelable": true,
182
+ "composed": true,
183
+ "docs": {
184
+ "tags": [],
185
+ "text": "Respons\u00E1vel por notificar quando ocorrer a renderiza\u00E7\u00E3o de itens do formul\u00E1rio."
186
+ },
187
+ "complexType": {
188
+ "original": "Array<HTMLElement>",
189
+ "resolved": "HTMLElement[]",
190
+ "references": {
191
+ "Array": {
192
+ "location": "global"
193
+ },
194
+ "HTMLElement": {
195
+ "location": "global"
196
+ }
197
+ }
198
+ }
177
199
  }];
178
200
  }
179
201
  static get methods() {
@@ -10,7 +10,6 @@ import SnkMultiSelectionListDataSource from './filtercolumn/SnkMultiSelectionLis
10
10
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
11
11
  export class SnkGrid {
12
12
  constructor() {
13
- this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
14
13
  this._topTaskbarProcessor = new TaskbarProcessor({
15
14
  "snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
16
15
  "snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
@@ -27,6 +26,7 @@ export class SnkGrid {
27
26
  this._dataState = undefined;
28
27
  this._gridConfig = undefined;
29
28
  this._popUpGridConfig = false;
29
+ this.columnFilterDataSource = new SnkMultiSelectionListDataSource();
30
30
  this.configName = undefined;
31
31
  this.selectionToastConfig = undefined;
32
32
  this.actionsList = undefined;
@@ -212,10 +212,11 @@ export class SnkGrid {
212
212
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
213
213
  }
214
214
  finshLoading() {
215
+ var _a, _b;
215
216
  this._dataUnitLoadLockerResolver = this._dataUnit.addLoadingLocker();
216
217
  this.addElementID();
217
- this._multiSelectionListDataSource.setApplication(this._application);
218
- this._multiSelectionListDataSource.setDataUnit(this._dataUnit);
218
+ (_a = this.columnFilterDataSource) === null || _a === void 0 ? void 0 : _a.setApplication(this._application);
219
+ (_b = this.columnFilterDataSource) === null || _b === void 0 ? void 0 : _b.setDataUnit(this._dataUnit);
219
220
  }
220
221
  componentWillLoad() {
221
222
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -307,7 +308,7 @@ export class SnkGrid {
307
308
  return undefined;
308
309
  }
309
310
  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" }, 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 }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
310
- 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() })), 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: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, 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, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), 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() }))));
311
+ 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() })), 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: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), 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, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), 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() }))));
311
312
  }
312
313
  static get is() { return "snk-grid"; }
313
314
  static get encapsulation() { return "scoped"; }
@@ -323,6 +324,26 @@ export class SnkGrid {
323
324
  }
324
325
  static get properties() {
325
326
  return {
327
+ "columnFilterDataSource": {
328
+ "type": "unknown",
329
+ "mutable": true,
330
+ "complexType": {
331
+ "original": "SnkMultiSelectionListDataSource",
332
+ "resolved": "SnkMultiSelectionListDataSource",
333
+ "references": {
334
+ "SnkMultiSelectionListDataSource": {
335
+ "location": "global"
336
+ }
337
+ }
338
+ },
339
+ "required": false,
340
+ "optional": false,
341
+ "docs": {
342
+ "tags": [],
343
+ "text": ""
344
+ },
345
+ "defaultValue": "new SnkMultiSelectionListDataSource()"
346
+ },
326
347
  "configName": {
327
348
  "type": "string",
328
349
  "mutable": false,
@@ -452,6 +452,28 @@ export class SnkSimpleCrud {
452
452
  "resolved": "string",
453
453
  "references": {}
454
454
  }
455
+ }, {
456
+ "method": "formItemsReady",
457
+ "name": "formItemsReady",
458
+ "bubbles": true,
459
+ "cancelable": true,
460
+ "composed": true,
461
+ "docs": {
462
+ "tags": [],
463
+ "text": "Respons\u00E1vel por notificar quando ocorrer a renderiza\u00E7\u00E3o de itens do formul\u00E1rio."
464
+ },
465
+ "complexType": {
466
+ "original": "Array<HTMLElement>",
467
+ "resolved": "HTMLElement[]",
468
+ "references": {
469
+ "Array": {
470
+ "location": "global"
471
+ },
472
+ "HTMLElement": {
473
+ "location": "global"
474
+ }
475
+ }
476
+ }
455
477
  }];
456
478
  }
457
479
  static get methods() {
@@ -1,3 +1,3 @@
1
1
  :host {
2
2
  display: block;
3
- }
3
+ }
@@ -1,12 +1,11 @@
1
- import { ChangeOperation, DataType, DataUnit, SortMode, StringUtils, } from '@sankhyalabs/core';
2
- import { DISTINCT_FILTER_NAME_PREFIX } from "@sankhyalabs/ezui/dist/collection/utils/constants";
1
+ import { ChangeOperation, DataUnit, defaultDataLoader, StringUtils, } from '@sankhyalabs/core';
3
2
  export default class InMemoryLoader {
4
3
  constructor(metadata, records) {
5
4
  this.records = records || [];
6
5
  this.metadata = metadata;
7
6
  this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
8
7
  this._dataUnit.metadataLoader = () => this.metadaLoader();
9
- this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
8
+ this._dataUnit.dataLoader = (dataUnit, request) => defaultDataLoader(dataUnit, request, this._records);
10
9
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
11
10
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
12
11
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
@@ -43,62 +42,6 @@ export default class InMemoryLoader {
43
42
  metadaLoader() {
44
43
  return Promise.resolve(this._metadata);
45
44
  }
46
- dataLoader(dataUnit, request) {
47
- const filters = this.getColumnFilters(dataUnit);
48
- let records = this.applyFilters(filters);
49
- if (request.sort) {
50
- request.sort.forEach(sort => {
51
- records = records.sort((recordA, recordB) => {
52
- const fieldA = recordA[sort.field];
53
- const fieldB = recordB[sort.field];
54
- const sortFn = this.getSortFn(sort.dataType);
55
- return sortFn(fieldA, fieldB) * (sort.mode == SortMode.ASC ? 1 : -1);
56
- });
57
- });
58
- }
59
- return Promise.resolve({ records: records });
60
- }
61
- applyFilters(filters) {
62
- let records = [...this._records];
63
- filters.forEach(filter => {
64
- records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
65
- });
66
- return records;
67
- }
68
- getColumnFilters(dataUnit) {
69
- var _a, _b;
70
- const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
71
- const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
72
- return columnFilters.map(filter => {
73
- var _a, _b;
74
- return {
75
- column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
76
- values: filter.params.map(param => param.value),
77
- };
78
- });
79
- }
80
- getSortFn(type) {
81
- switch (type) {
82
- case DataType.NUMBER:
83
- return this.sortNumber;
84
- case DataType.DATE:
85
- return this.sortDate;
86
- case DataType.OBJECT:
87
- return this.sortObject;
88
- default:
89
- return StringUtils.compare;
90
- }
91
- }
92
- sortObject(a, b) {
93
- return StringUtils.compare(a === null || a === void 0 ? void 0 : a["label"], b === null || b === void 0 ? void 0 : b["label"]);
94
- }
95
- sortNumber(a, b) {
96
- return a - b;
97
- }
98
- sortDate(a, b) {
99
- let timeA = a.getTime(), timeB = b.getTime();
100
- return timeA === timeB ? 0 : (timeA < timeB ? -1 : 1);
101
- }
102
45
  saveLoader(_dataUnit, changes) {
103
46
  return new Promise((resolve) => {
104
47
  let dataUnitRecords = [];
@@ -22,4 +22,33 @@ export default class UrlUtils {
22
22
  return window['mock_url'];
23
23
  return `${location.protocol}//${location.hostname}${location.port ? ":" + location.port : ""}`;
24
24
  }
25
+ /**
26
+ * Extrai da URL o parâmetro que contém o resourceId da tela desejada.
27
+ *
28
+ */
29
+ static getResourceIdFromUrlToken(url) {
30
+ try {
31
+ const parts = url.split('/');
32
+ const encodedValue = parts[1];
33
+ return atob(encodedValue);
34
+ }
35
+ catch (error) {
36
+ throw new Error('Erro ao obter resourceId:' + error);
37
+ }
38
+ }
39
+ /**
40
+ * Extrai da URL o parâmetro que contém o o objeto com a PK do registro específico.
41
+ *
42
+ */
43
+ static getPkObjectFromUrlToken(url) {
44
+ try {
45
+ const parts = url.split('/');
46
+ const encodedObjectPart = parts[parts.length - 2];
47
+ const decodedObjectPart = atob(encodedObjectPart);
48
+ return JSON.parse(decodedObjectPart);
49
+ }
50
+ catch (error) {
51
+ throw new Error('Erro ao obter a PK do objeto:' + error);
52
+ }
53
+ }
25
54
  }
@@ -6434,6 +6434,35 @@ class UrlUtils {
6434
6434
  return window['mock_url'];
6435
6435
  return `${location.protocol}//${location.hostname}${location.port ? ":" + location.port : ""}`;
6436
6436
  }
6437
+ /**
6438
+ * Extrai da URL o parâmetro que contém o resourceId da tela desejada.
6439
+ *
6440
+ */
6441
+ static getResourceIdFromUrlToken(url) {
6442
+ try {
6443
+ const parts = url.split('/');
6444
+ const encodedValue = parts[1];
6445
+ return atob(encodedValue);
6446
+ }
6447
+ catch (error) {
6448
+ throw new Error('Erro ao obter resourceId:' + error);
6449
+ }
6450
+ }
6451
+ /**
6452
+ * Extrai da URL o parâmetro que contém o o objeto com a PK do registro específico.
6453
+ *
6454
+ */
6455
+ static getPkObjectFromUrlToken(url) {
6456
+ try {
6457
+ const parts = url.split('/');
6458
+ const encodedObjectPart = parts[parts.length - 2];
6459
+ const decodedObjectPart = atob(encodedObjectPart);
6460
+ return JSON.parse(decodedObjectPart);
6461
+ }
6462
+ catch (error) {
6463
+ throw new Error('Erro ao obter a PK do objeto:' + error);
6464
+ }
6465
+ }
6437
6466
  }
6438
6467
 
6439
6468
  class ServiceBrokerRecaller {
@@ -44,6 +44,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
44
44
  this.actionClick = createEvent(this, "actionClick", 7);
45
45
  this.configuratorSave = createEvent(this, "configuratorSave", 7);
46
46
  this.configuratorCancel = createEvent(this, "configuratorCancel", 7);
47
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
47
48
  this._viewHistory = [];
48
49
  this._dataUnit = undefined;
49
50
  this._dataState = undefined;
@@ -71,7 +71,6 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
71
71
  this.useCancelConfirm = true;
72
72
  this.ignoreSaveMessage = undefined;
73
73
  this.configName = undefined;
74
- this.configName = undefined;
75
74
  }
76
75
  observePageSize() {
77
76
  if (this.dataUnit) {
@@ -47,6 +47,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
47
47
  this.__registerHost();
48
48
  this.exit = createEvent(this, "exit", 7);
49
49
  this.actionClick = createEvent(this, "actionClick", 7);
50
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
50
51
  this._guideBuilders = new Map();
51
52
  this.dataUnit = undefined;
52
53
  this.dataState = undefined;
@@ -586,6 +587,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
586
587
  this.__registerHost();
587
588
  this.snkDetailGuidesChange = createEvent(this, "snkDetailGuidesChange", 7);
588
589
  this.snkSwitchGuide = createEvent(this, "snkSwitchGuide", 7);
590
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
589
591
  this._disabledButtons = undefined;
590
592
  this._currentView = undefined;
591
593
  this.attachmentRegisterKey = undefined;
@@ -769,7 +771,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
769
771
  render() {
770
772
  this.updateLabel();
771
773
  //const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
772
- return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, canEdit: this.canEdit, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
774
+ return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, canEdit: this.canEdit, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems) }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
773
775
  }
774
776
  static get watchers() { return {
775
777
  "dataState": ["observerDataState"]
@@ -283,7 +283,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
283
283
  return;
284
284
  }
285
285
  this._loadingPending = false;
286
- this.dataUnit.loadData();
286
+ this.dataUnit.loadData(undefined, undefined, true);
287
287
  }
288
288
  if (this._configUpdated) {
289
289
  this._configUpdated = false;
@@ -10,6 +10,7 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
10
  super();
11
11
  this.__registerHost();
12
12
  this.snkContentCardChanged = createEvent(this, "snkContentCardChanged", 7);
13
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
13
14
  this.levelPath = undefined;
14
15
  this.label = undefined;
15
16
  this.name = undefined;
@@ -77,6 +78,10 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
77
78
  this._dataBinder.bind(fields, this.dataUnit.dataUnitId, this.formMetadata, this.recordsValidator);
78
79
  }
79
80
  }
81
+ handleFormItemsReady(event) {
82
+ event.stopPropagation();
83
+ this.formItemsReady.emit(Object.assign(Object.assign({}, event.detail), { formId: this.name }));
84
+ }
80
85
  disconnectedCallback() {
81
86
  if (this._dataBinder != undefined) {
82
87
  this._dataBinder.onDisconnectedCallback();
@@ -89,7 +94,7 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
89
94
  ?
90
95
  h("snk-form-summary", { summary: this.getCardSummary() })
91
96
  :
92
- h("ez-form-view", { ref: ref => this._formView = ref, fields: this.fields, onEzContentReady: evt => this.bindFields(evt.detail) })));
97
+ h("ez-form-view", { ref: ref => this._formView = ref, fields: this.fields, onEzContentReady: evt => this.bindFields(evt.detail), onFormItemsReady: (event) => this.handleFormItemsReady(event) })));
93
98
  }
94
99
  static get style() { return snkFormViewCss; }
95
100
  }, [6, "snk-form-view", {
@@ -14,6 +14,7 @@ const SnkForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14
14
  this.__registerHost();
15
15
  this.exit = createEvent(this, "exit", 7);
16
16
  this.actionClick = createEvent(this, "actionClick", 7);
17
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
17
18
  this._dataUnit = undefined;
18
19
  this._dataState = undefined;
19
20
  this._showFormConfig = false;
@@ -4,7 +4,7 @@ import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMeta
4
4
  import { d as defineCustomElement$1, T as TaskbarElement } from './snk-taskbar2.js';
5
5
  import { C as ConfigStorage } from './ConfigStorage.js';
6
6
  import { P as PresentationMode } from './index2.js';
7
- import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor } from './SnkMultiSelectionListDataSource.js';
7
+ import { T as TaskbarProcessor, S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource.js';
8
8
  import { s as store } from './index3.js';
9
9
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
10
10
  import { d as defineCustomElement$h } from './snk-actions-button2.js';
@@ -32,7 +32,6 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
32
32
  this.__registerHost();
33
33
  this.actionClick = createEvent(this, "actionClick", 7);
34
34
  this.gridDoubleClick = createEvent(this, "gridDoubleClick", 7);
35
- this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
36
35
  this._topTaskbarProcessor = new TaskbarProcessor({
37
36
  "snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
38
37
  "snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
@@ -49,6 +48,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
49
48
  this._dataState = undefined;
50
49
  this._gridConfig = undefined;
51
50
  this._popUpGridConfig = false;
51
+ this.columnFilterDataSource = new SnkMultiSelectionListDataSource();
52
52
  this.configName = undefined;
53
53
  this.selectionToastConfig = undefined;
54
54
  this.actionsList = undefined;
@@ -234,10 +234,11 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
234
234
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
235
235
  }
236
236
  finshLoading() {
237
+ var _a, _b;
237
238
  this._dataUnitLoadLockerResolver = this._dataUnit.addLoadingLocker();
238
239
  this.addElementID();
239
- this._multiSelectionListDataSource.setApplication(this._application);
240
- this._multiSelectionListDataSource.setDataUnit(this._dataUnit);
240
+ (_a = this.columnFilterDataSource) === null || _a === void 0 ? void 0 : _a.setApplication(this._application);
241
+ (_b = this.columnFilterDataSource) === null || _b === void 0 ? void 0 : _b.setDataUnit(this._dataUnit);
241
242
  }
242
243
  componentWillLoad() {
243
244
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -329,11 +330,12 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
329
330
  return undefined;
330
331
  }
331
332
  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" }, 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 }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
332
- 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() })), 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: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, 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, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), 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() }))));
333
+ 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() })), 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: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), 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, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), 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() }))));
333
334
  }
334
335
  get _element() { return this; }
335
336
  static get style() { return snkGridCss; }
336
337
  }, [6, "snk-grid", {
338
+ "columnFilterDataSource": [1040],
337
339
  "configName": [1, "config-name"],
338
340
  "selectionToastConfig": [16],
339
341
  "actionsList": [16],
@@ -1,12 +1,11 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, ApplicationContext, UserInterface } from '@sankhyalabs/core';
2
+ import { DataUnit, defaultDataLoader, StringUtils, ChangeOperation, ObjectUtils, ApplicationContext, DataType, UserInterface } from '@sankhyalabs/core';
3
3
  import { V as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants.js';
4
4
  import { T as TaskbarElement, d as defineCustomElement$1 } from './snk-taskbar2.js';
5
5
  import './DataFetcher.js';
6
6
  import './pesquisa-fetcher.js';
7
7
  import { P as PresentationMode } from './index2.js';
8
8
  import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor } from './SnkMultiSelectionListDataSource.js';
9
- import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
10
9
  import { d as defineCustomElement$5 } from './snk-actions-button2.js';
11
10
  import { d as defineCustomElement$4 } from './snk-data-exporter2.js';
12
11
  import { d as defineCustomElement$3 } from './snk-data-unit2.js';
@@ -18,7 +17,7 @@ class InMemoryLoader {
18
17
  this.metadata = metadata;
19
18
  this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
20
19
  this._dataUnit.metadataLoader = () => this.metadaLoader();
21
- this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
20
+ this._dataUnit.dataLoader = (dataUnit, request) => defaultDataLoader(dataUnit, request, this._records);
22
21
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
23
22
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
24
23
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
@@ -55,62 +54,6 @@ class InMemoryLoader {
55
54
  metadaLoader() {
56
55
  return Promise.resolve(this._metadata);
57
56
  }
58
- dataLoader(dataUnit, request) {
59
- const filters = this.getColumnFilters(dataUnit);
60
- let records = this.applyFilters(filters);
61
- if (request.sort) {
62
- request.sort.forEach(sort => {
63
- records = records.sort((recordA, recordB) => {
64
- const fieldA = recordA[sort.field];
65
- const fieldB = recordB[sort.field];
66
- const sortFn = this.getSortFn(sort.dataType);
67
- return sortFn(fieldA, fieldB) * (sort.mode == SortMode.ASC ? 1 : -1);
68
- });
69
- });
70
- }
71
- return Promise.resolve({ records: records });
72
- }
73
- applyFilters(filters) {
74
- let records = [...this._records];
75
- filters.forEach(filter => {
76
- records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
77
- });
78
- return records;
79
- }
80
- getColumnFilters(dataUnit) {
81
- var _a, _b;
82
- const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
83
- const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
84
- return columnFilters.map(filter => {
85
- var _a, _b;
86
- return {
87
- column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
88
- values: filter.params.map(param => param.value),
89
- };
90
- });
91
- }
92
- getSortFn(type) {
93
- switch (type) {
94
- case DataType.NUMBER:
95
- return this.sortNumber;
96
- case DataType.DATE:
97
- return this.sortDate;
98
- case DataType.OBJECT:
99
- return this.sortObject;
100
- default:
101
- return StringUtils.compare;
102
- }
103
- }
104
- sortObject(a, b) {
105
- return StringUtils.compare(a === null || a === void 0 ? void 0 : a["label"], b === null || b === void 0 ? void 0 : b["label"]);
106
- }
107
- sortNumber(a, b) {
108
- return a - b;
109
- }
110
- sortDate(a, b) {
111
- let timeA = a.getTime(), timeB = b.getTime();
112
- return timeA === timeB ? 0 : (timeA < timeB ? -1 : 1);
113
- }
114
57
  saveLoader(_dataUnit, changes) {
115
58
  return new Promise((resolve) => {
116
59
  let dataUnitRecords = [];
@@ -154,6 +97,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
154
97
  this.dataStateChange = createEvent(this, "dataStateChange", 3);
155
98
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
156
99
  this.actionClick = createEvent(this, "actionClick", 7);
100
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
157
101
  this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
158
102
  this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
159
103
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
@@ -1,8 +1,8 @@
1
1
  import { ApplicationContext } from '@sankhyalabs/core';
2
- import { F as FormConfigFetcher } from './form-config-fetcher-9e167008.js';
3
- import { R as ResourceFetcher } from './resource-fetcher-768d5556.js';
4
- import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-06e02851.js';
5
- import { d as dist, D as DataFetcher } from './DataFetcher-e0fc5549.js';
2
+ import { F as FormConfigFetcher } from './form-config-fetcher-4a34b86a.js';
3
+ import { R as ResourceFetcher } from './resource-fetcher-b36ac145.js';
4
+ import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-317cb6bf.js';
5
+ import { d as dist, D as DataFetcher } from './DataFetcher-aaaff866.js';
6
6
 
7
7
  class GridConfigFetcher extends ResourceFetcher {
8
8
  constructor() {
@@ -6434,6 +6434,35 @@ class UrlUtils {
6434
6434
  return window['mock_url'];
6435
6435
  return `${location.protocol}//${location.hostname}${location.port ? ":" + location.port : ""}`;
6436
6436
  }
6437
+ /**
6438
+ * Extrai da URL o parâmetro que contém o resourceId da tela desejada.
6439
+ *
6440
+ */
6441
+ static getResourceIdFromUrlToken(url) {
6442
+ try {
6443
+ const parts = url.split('/');
6444
+ const encodedValue = parts[1];
6445
+ return atob(encodedValue);
6446
+ }
6447
+ catch (error) {
6448
+ throw new Error('Erro ao obter resourceId:' + error);
6449
+ }
6450
+ }
6451
+ /**
6452
+ * Extrai da URL o parâmetro que contém o o objeto com a PK do registro específico.
6453
+ *
6454
+ */
6455
+ static getPkObjectFromUrlToken(url) {
6456
+ try {
6457
+ const parts = url.split('/');
6458
+ const encodedObjectPart = parts[parts.length - 2];
6459
+ const decodedObjectPart = atob(encodedObjectPart);
6460
+ return JSON.parse(decodedObjectPart);
6461
+ }
6462
+ catch (error) {
6463
+ throw new Error('Erro ao obter a PK do objeto:' + error);
6464
+ }
6465
+ }
6437
6466
  }
6438
6467
 
6439
6468
  class ServiceBrokerRecaller {
@@ -1,6 +1,6 @@
1
- import { C as ConfigStorage } from './ConfigStorage-19a7260b.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-b6aefe42.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
- import { F as FormConfigFetcher } from './form-config-fetcher-9e167008.js';
3
+ import { F as FormConfigFetcher } from './form-config-fetcher-4a34b86a.js';
4
4
 
5
5
  class SnkFormConfigManager {
6
6
  constructor(configName, onConfigChange) {
@@ -1,5 +1,5 @@
1
1
  import { ObjectUtils } from '@sankhyalabs/core';
2
- import { R as ResourceFetcher } from './resource-fetcher-768d5556.js';
2
+ import { R as ResourceFetcher } from './resource-fetcher-b36ac145.js';
3
3
 
4
4
  class AuthFetcher extends ResourceFetcher {
5
5
  getData(resourceID) {
@@ -1,5 +1,5 @@
1
1
  import { DataUnit, StringUtils, DataType, DataUnitStorage, ChangeOperation } from '@sankhyalabs/core';
2
- import { d as dist, D as DataFetcher } from './DataFetcher-e0fc5549.js';
2
+ import { d as dist, D as DataFetcher } from './DataFetcher-aaaff866.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
 
@@ -1,5 +1,5 @@
1
1
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
2
- import { R as ResourceFetcher } from './resource-fetcher-768d5556.js';
2
+ import { R as ResourceFetcher } from './resource-fetcher-b36ac145.js';
3
3
 
4
4
  var __rest = (undefined && undefined.__rest) || function (s, e) {
5
5
  var t = {};
@@ -1,6 +1,6 @@
1
- import { d as dist, D as DataFetcher } from './DataFetcher-e0fc5549.js';
1
+ import { d as dist, D as DataFetcher } from './DataFetcher-aaaff866.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
- import { R as ResourceFetcher } from './resource-fetcher-768d5556.js';
3
+ import { R as ResourceFetcher } from './resource-fetcher-b36ac145.js';
4
4
 
5
5
  class FormConfigFetcher extends ResourceFetcher {
6
6
  constructor() {