@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-63774.0 → 0.0.0-bugfix-dev-KB-55889.1

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 (115) hide show
  1. package/dist/cjs/{ContinuousInsertUtils-807730a8.js → IExporterProvider-9ac15aaf.js} +3 -36
  2. package/dist/cjs/{SnkMessageBuilder-bae64d0d.js → SnkMessageBuilder-cceebbae.js} +1 -5
  3. package/dist/cjs/{dataunit-fetcher-f89461c1.js → dataunit-fetcher-4b12f70c.js} +17 -45
  4. package/dist/cjs/{field-search-68e34bf4.js → field-search-f56aa7d6.js} +1 -5
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/snk-actions-button_4.cjs.entry.js +1 -1
  8. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  9. package/dist/cjs/snk-attach.cjs.entry.js +4 -2
  10. package/dist/cjs/snk-crud.cjs.entry.js +2 -5
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  12. package/dist/cjs/{snk-data-unit-47202e42.js → snk-data-unit-ed17da6b.js} +18 -24
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  15. package/dist/cjs/snk-filter-bar.cjs.entry.js +15 -19
  16. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-grid.cjs.entry.js +14 -54
  18. package/dist/cjs/{snk-guides-viewer-68777d37.js → snk-guides-viewer-866447ab.js} +4 -8
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/snk-simple-crud.cjs.entry.js +13 -45
  22. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +4 -2
  23. package/dist/collection/components/snk-crud/snk-crud.js +1 -22
  24. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +2 -24
  25. package/dist/collection/components/snk-data-unit/snk-data-unit.js +16 -22
  26. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +1 -1
  27. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -1
  28. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +14 -44
  29. package/dist/collection/components/snk-grid/snk-grid.css +1 -1
  30. package/dist/collection/components/snk-grid/snk-grid.js +7 -67
  31. package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +1 -1
  32. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +1 -0
  33. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +9 -60
  34. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +1 -5
  35. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +3 -3
  36. package/dist/collection/lib/dataUnit/InMemoryLoader.js +4 -2
  37. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +9 -34
  38. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +2 -9
  39. package/dist/collection/lib/message/resources/snk-grid.msg.js +1 -5
  40. package/dist/components/{ContinuousInsertUtils.js → IExporterProvider.js} +5 -40
  41. package/dist/components/SnkMessageBuilder.js +1 -5
  42. package/dist/components/dataunit-fetcher.js +15 -45
  43. package/dist/components/snk-attach2.js +4 -2
  44. package/dist/components/snk-crud.js +1 -5
  45. package/dist/components/snk-data-unit2.js +17 -23
  46. package/dist/components/snk-detail-view2.js +3 -8
  47. package/dist/components/snk-filter-bar2.js +15 -20
  48. package/dist/components/snk-filter-checkbox-list.js +1 -1
  49. package/dist/components/snk-grid2.js +8 -50
  50. package/dist/components/snk-simple-bar2.js +1 -1
  51. package/dist/components/snk-simple-crud2.js +7 -41
  52. package/dist/esm/{ContinuousInsertUtils-1a82a768.js → IExporterProvider-09df2e3e.js} +5 -37
  53. package/dist/esm/{SnkMessageBuilder-6fff4a4c.js → SnkMessageBuilder-ae87b754.js} +1 -5
  54. package/dist/esm/{dataunit-fetcher-c24c76c6.js → dataunit-fetcher-3aac1a53.js} +15 -45
  55. package/dist/esm/{field-search-f8b1d91e.js → field-search-efbe307f.js} +1 -5
  56. package/dist/esm/loader.js +1 -1
  57. package/dist/esm/sankhyablocks.js +1 -1
  58. package/dist/esm/snk-actions-button_4.entry.js +1 -1
  59. package/dist/esm/snk-application.entry.js +2 -2
  60. package/dist/esm/snk-attach.entry.js +4 -2
  61. package/dist/esm/snk-crud.entry.js +2 -5
  62. package/dist/esm/snk-data-exporter.entry.js +3 -3
  63. package/dist/esm/{snk-data-unit-de45e0e1.js → snk-data-unit-6888df8f.js} +18 -24
  64. package/dist/esm/snk-data-unit.entry.js +3 -3
  65. package/dist/esm/snk-detail-view.entry.js +4 -4
  66. package/dist/esm/snk-filter-bar.entry.js +15 -19
  67. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  68. package/dist/esm/snk-grid.entry.js +9 -49
  69. package/dist/esm/{snk-guides-viewer-b5dd30e6.js → snk-guides-viewer-cb8a0b48.js} +4 -8
  70. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  71. package/dist/esm/snk-simple-bar.entry.js +1 -1
  72. package/dist/esm/snk-simple-crud.entry.js +9 -41
  73. package/dist/sankhyablocks/p-0e9a872d.entry.js +1 -0
  74. package/dist/sankhyablocks/{p-694e1c4a.entry.js → p-16969508.entry.js} +1 -1
  75. package/dist/sankhyablocks/p-1ab19772.js +1 -0
  76. package/dist/sankhyablocks/p-1f47a0b2.entry.js +1 -0
  77. package/dist/sankhyablocks/p-3757394b.entry.js +1 -0
  78. package/dist/sankhyablocks/{p-eb9f0407.entry.js → p-3d542b58.entry.js} +1 -1
  79. package/dist/sankhyablocks/{p-da34270e.entry.js → p-439a50fb.entry.js} +1 -1
  80. package/dist/sankhyablocks/p-53c1d25d.entry.js +1 -0
  81. package/dist/sankhyablocks/{p-62e048c6.entry.js → p-559bfb9b.entry.js} +1 -1
  82. package/dist/sankhyablocks/{p-a42e7a1e.entry.js → p-640140b3.entry.js} +1 -1
  83. package/dist/sankhyablocks/p-7c4aabe2.js +1 -0
  84. package/dist/sankhyablocks/p-88aa931b.entry.js +1 -0
  85. package/dist/sankhyablocks/{p-bccfc262.js → p-9cbef862.js} +1 -1
  86. package/dist/sankhyablocks/p-a31e761f.js +1 -0
  87. package/dist/sankhyablocks/{p-5f157b09.entry.js → p-aaa3ee68.entry.js} +1 -1
  88. package/dist/sankhyablocks/p-b2caaaf9.entry.js +1 -0
  89. package/dist/sankhyablocks/{p-7eef0898.entry.js → p-bc4b94d2.entry.js} +1 -1
  90. package/dist/sankhyablocks/p-c2495304.js +1 -0
  91. package/dist/sankhyablocks/p-f8698ad3.js +60 -0
  92. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  93. package/dist/types/components/snk-crud/snk-crud.d.ts +0 -4
  94. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +0 -5
  95. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +2 -2
  96. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +0 -4
  97. package/dist/types/components/snk-grid/snk-grid.d.ts +0 -12
  98. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +0 -10
  99. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +0 -1
  100. package/dist/types/components.d.ts +0 -40
  101. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +2 -12
  102. package/package.json +1 -1
  103. package/dist/collection/lib/utils/ContinuousInsertUtils.js +0 -31
  104. package/dist/sankhyablocks/p-0035ad6e.entry.js +0 -1
  105. package/dist/sankhyablocks/p-0911e61a.entry.js +0 -1
  106. package/dist/sankhyablocks/p-17425c72.js +0 -1
  107. package/dist/sankhyablocks/p-23736d75.js +0 -1
  108. package/dist/sankhyablocks/p-3ae9d08a.js +0 -1
  109. package/dist/sankhyablocks/p-3e3cc017.js +0 -1
  110. package/dist/sankhyablocks/p-50779ad3.entry.js +0 -1
  111. package/dist/sankhyablocks/p-7ac7932c.js +0 -60
  112. package/dist/sankhyablocks/p-b9679243.entry.js +0 -1
  113. package/dist/sankhyablocks/p-c2e468c9.entry.js +0 -1
  114. package/dist/sankhyablocks/p-e16e87fc.entry.js +0 -1
  115. package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +0 -10
@@ -235,21 +235,6 @@ function applyFilter(records, dataUnit, filters) {
235
235
  }
236
236
  return records.filter(filterFunction);
237
237
  }
238
- function buildLoadDataResponse(recordsIn, dataUnit, request) {
239
- let records = recordsIn ? [...recordsIn] : [];
240
- records = applyFilter(records, dataUnit, request.filters);
241
- records = applySorting(records, dataUnit, request.sort);
242
- const { offset, limit } = request;
243
- const paginationInfoBuilderParams = {
244
- recordsLength: records.length,
245
- offset,
246
- recordsPerPage: limit,
247
- };
248
- return Promise.resolve({
249
- records: getPagesByRecords(records, offset, limit),
250
- paginationInfo: buildPaginationInfo(paginationInfoBuilderParams),
251
- });
252
- }
253
238
  function applySorting(records, dataUnit, sorting) {
254
239
  if (sorting == undefined || sorting.length == 0) {
255
240
  return records;
@@ -260,28 +245,18 @@ function applySorting(records, dataUnit, sorting) {
260
245
  }
261
246
  return records.sort(sortingFunction);
262
247
  }
263
- function hasValidLimitAndOffset(offset, limit) {
264
- return offset >= 0 && limit >= 0;
265
- }
266
- function getPagesByRecords(records, offset = 0, limit = 0) {
267
- if (!records || !records.length || !hasValidLimitAndOffset(offset, limit))
268
- return [];
269
- if (limit === 0 && offset === 0)
270
- return records;
271
- return records.slice(offset, offset + limit);
272
- }
273
- function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0 }) {
274
- if (!recordsLength) {
275
- return { currentPage: 0, firstRecord: 0, lastRecord: 0, total: 0, hasMore: false };
248
+ function buildPaginationInfo(records, offset = 0, limit = 0) {
249
+ if (records === undefined) {
250
+ return undefined;
276
251
  }
277
- const lastRecordIndex = offset + recordsPerPage;
278
- const lastRecord = lastRecordIndex ? Math.min(lastRecordIndex, recordsLength) : recordsLength;
252
+ const total = (records === null || records === void 0 ? void 0 : records.length) || 0;
253
+ const lastRecord = Math.min(offset + limit, total);
279
254
  return {
280
- currentPage: recordsPerPage === 0 ? 0 : Math.ceil(offset / recordsPerPage),
281
- firstRecord: offset + 1,
255
+ currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
256
+ firstRecord: offset,
282
257
  lastRecord: lastRecord,
283
- total: recordsLength,
284
- hasMore: lastRecord < recordsLength,
258
+ total: total,
259
+ hasMore: !!(total - lastRecord),
285
260
  };
286
261
  }
287
262
 
@@ -367,7 +342,9 @@ class InMemoryLoader {
367
342
  return StringUtils.generateUUID();
368
343
  }
369
344
  inMemoryLoader(dataUnit, request, recordsIn) {
370
- return buildLoadDataResponse(recordsIn, dataUnit, request);
345
+ let records = applyFilter(recordsIn, dataUnit, request.filters);
346
+ records = applySorting(records, dataUnit, request.sort);
347
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
371
348
  }
372
349
  metadaLoader() {
373
350
  return Promise.resolve(this._metadata);
@@ -447,19 +424,12 @@ class DatasetStrategy {
447
424
  const records = this.processRecords(dataUnit, fields, responseRecords);
448
425
  const loadingInProgress = pagerId != undefined;
449
426
  const count = loadingInfo.count + records.length;
450
- const isInsertingNewRecord = dataUnit.hasNewRecord();
451
427
  const needReload = !loadingInProgress && localSorting.length > 0;
452
- /**
453
- * Caso precise recarregar dados, porém está no meio de uma inserção, os dados não devem recarregados instantaneamente,
454
- * Mas sim, sinalizar que o dataUnit está aguardando para der recarregado.
455
- */
456
- if (needReload && isInsertingNewRecord) {
457
- dataUnit.setWaitingToReload(true);
458
- }
459
428
  return Promise.resolve({
460
429
  records,
461
430
  loadingInfo: Object.assign(Object.assign({}, loadingInfo), { pagerId,
462
- loadingInProgress, total: loadingInProgress ? undefined : count, count, needReload: needReload && !isInsertingNewRecord })
431
+ loadingInProgress, total: loadingInProgress ? undefined : count, count,
432
+ needReload })
463
433
  });
464
434
  }
465
435
  catch (error) {
@@ -1082,4 +1052,4 @@ class DataUnitFetcher {
1082
1052
  }
1083
1053
  }
1084
1054
 
1085
- export { DataUnitFetcher as D, InMemoryLoader as I, PreloadManager as P, DatasetStrategy as a, buildLoadDataResponse as b, getRecordValue as g };
1055
+ export { DataUnitFetcher as D, InMemoryLoader as I, PreloadManager as P, applyFilter as a, applySorting as b, buildPaginationInfo as c, DatasetStrategy as d, getRecordValue as g };
@@ -3,7 +3,7 @@ import { ApplicationContext, DataType, Action, UserInterface, StringUtils, DataU
3
3
  import { D as DataFetcher } from './DataFetcher.js';
4
4
  import './pesquisa-fetcher.js';
5
5
  import { S as SaveErrorsEnum } from './ISave.js';
6
- import { P as PreloadManager, b as buildLoadDataResponse, D as DataUnitFetcher, I as InMemoryLoader } from './dataunit-fetcher.js';
6
+ import { P as PreloadManager, a as applyFilter, b as applySorting, c as buildPaginationInfo, D as DataUnitFetcher, I as InMemoryLoader } from './dataunit-fetcher.js';
7
7
  import './filter-item-type.enum.js';
8
8
  import './form-config-fetcher.js';
9
9
  import { V as VIEW_MODE } from './constants.js';
@@ -466,7 +466,9 @@ class AttachFetcherDataUnitFactory {
466
466
  });
467
467
  this._records = records;
468
468
  }
469
- return buildLoadDataResponse(this._records, dataUnit, request);
469
+ let records = applyFilter(this._records, dataUnit, request.filters);
470
+ records = applySorting(records, dataUnit, request.sort);
471
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
470
472
  }
471
473
  saveLoader(changes, fetcher) {
472
474
  return new Promise((resolve) => {
@@ -80,7 +80,6 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
80
80
  this.disablePersonalizedFilter = undefined;
81
81
  this.autoLoad = undefined;
82
82
  this.autoFocus = true;
83
- this.enableGridInsert = false;
84
83
  this.domainMessagesBuilder = undefined;
85
84
  this.setCustomFormTitle = undefined;
86
85
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
@@ -207,8 +206,6 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
207
206
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
208
207
  }
209
208
  insertionModeHandler() {
210
- if (this.enableGridInsert)
211
- return;
212
209
  this.gridToForm();
213
210
  }
214
211
  cancelHandler() {
@@ -423,7 +420,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
423
420
  return;
424
421
  }
425
422
  this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
426
- 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, filterBarTitle: this.filterBarTitle, "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, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, 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, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle }, 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" }))));
423
+ 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, filterBarTitle: this.filterBarTitle, "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, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus }, 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, formLegacyConfigName: this.formLegacyConfigName, getCustomTitle: this.setCustomFormTitle }, 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" }))));
427
424
  }
428
425
  get _element() { return this; }
429
426
  static get watchers() { return {
@@ -449,7 +446,6 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
449
446
  "disablePersonalizedFilter": [4, "disable-personalized-filter"],
450
447
  "autoLoad": [4, "auto-load"],
451
448
  "autoFocus": [4, "auto-focus"],
452
- "enableGridInsert": [4, "enable-grid-insert"],
453
449
  "domainMessagesBuilder": [1, "domain-messages-builder"],
454
450
  "setCustomFormTitle": [16],
455
451
  "_dataUnit": [32],
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
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.js';
5
- import { g as getRecordValue, a as DatasetStrategy } from './dataunit-fetcher.js';
5
+ import { g as getRecordValue, d as DatasetStrategy } from './dataunit-fetcher.js';
6
6
  import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
7
7
  import { g as getSelectedRecordsIDsInfo } from './GetSelectedRecordsIDsInfo.js';
8
8
 
@@ -485,14 +485,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
485
485
  }
486
486
  handleRecordsRemoved(action) {
487
487
  var _a, _b;
488
- const cachedRecords = action.payload.cachedRecords;
489
- let removeFinishMsg;
490
- if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
491
- removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
492
- }
493
- else {
494
- removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
495
- }
488
+ let removeFinishMsg = this.buildRemoveFinishMessage(action);
496
489
  if (removeFinishMsg != undefined) {
497
490
  this.showSuccessMessage(removeFinishMsg);
498
491
  }
@@ -503,6 +496,14 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
503
496
  this.dataUnit.gotoPage(page);
504
497
  }
505
498
  }
499
+ buildRemoveFinishMessage(action) {
500
+ const records = action.payload.records;
501
+ if (!records || !records.length)
502
+ return undefined;
503
+ if ((records === null || records === void 0 ? void 0 : records.length) > 1)
504
+ return this.getMessage('snkDataUnit.removeAllInfo', { size: records.length });
505
+ return this.getMessage('snkDataUnit.removeInfo', records);
506
+ }
506
507
  /**
507
508
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
508
509
  * através de um pequeno modulo na estrutura da aplicação:
@@ -546,26 +547,19 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
546
547
  return await this._application.getDataUnit(this.entityName, cacheName, null, this.configName, this.resourceID);
547
548
  }
548
549
  }
549
- updateMetadataWithRMP() {
550
- this.fillFieldsWithRmp(this.dataUnit.metadata);
551
- this.fillFieldsWithRmPrecision(this.dataUnit.metadata);
552
- const dataUnitUpdatedMetadata = this.handleDULinksOnMetadataLoaded(this.dataUnit.metadata);
553
- this.dataUnit.metadata = dataUnitUpdatedMetadata;
554
- }
555
- async loadDataUnit() {
556
- var _a, _b;
550
+ async loadDataUnit(forceMetadataLoad = true) {
551
+ var _a;
557
552
  if (this.dataUnit == null && this._application && this.entityName) {
558
553
  this.dataUnit = await this.getDataUnitParentOrChild();
559
554
  }
560
555
  if (this.dataUnit) {
561
556
  this.dataUnit.pageSize = this.pageSize;
562
557
  this.dataUnit.unsubscribe(this._dataUnitObserver);
563
- this.dataUnit.subscribe(this._dataUnitObserver);
564
- if ((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.metadata) {
565
- this.updateMetadataWithRMP();
566
- }
567
558
  this.dataUnit.addInterceptor(this);
568
- if ((_b = this.dataUnit.records) === null || _b === void 0 ? void 0 : _b.length) {
559
+ this.dataUnit.subscribe(this._dataUnitObserver);
560
+ if (forceMetadataLoad || !this.dataUnit.metadata)
561
+ await this.dataUnit.loadMetadata();
562
+ if ((_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) {
569
563
  const { records } = this.getMetadataByRow(this.dataUnit);
570
564
  this.dataUnit.records = records;
571
565
  }
@@ -653,7 +647,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
653
647
  }
654
648
  }
655
649
  async componentDidLoad() {
656
- await this.loadDataUnit();
650
+ await this.loadDataUnit(false);
657
651
  this.handlerLinkFields();
658
652
  }
659
653
  render() {
@@ -12,7 +12,7 @@ import './filter-item-type.enum.js';
12
12
  import './form-config-fetcher.js';
13
13
  import { T as TaskbarElement, d as defineCustomElement$3 } from './snk-taskbar2.js';
14
14
  import { V as VIEW_MODE } from './constants.js';
15
- import { o as openFieldSearch, T as TaskbarProcessor, b as buildFieldSearch } from './ContinuousInsertUtils.js';
15
+ import { o as openFieldSearch, T as TaskbarProcessor, b as buildFieldSearch } from './IExporterProvider.js';
16
16
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
17
17
  import { d as defineCustomElement$u } from './snk-actions-button2.js';
18
18
  import { d as defineCustomElement$t } from './snk-attach2.js';
@@ -70,7 +70,6 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
70
70
  this.resourceID = undefined;
71
71
  this.detailTaskbarCustomContainerId = undefined;
72
72
  this.formLegacyConfigName = undefined;
73
- this.enableGridInsert = false;
74
73
  this.getCustomTitle = undefined;
75
74
  this._hasToCreateFieldSearch = true;
76
75
  this._breadcrumbItems = [];
@@ -140,7 +139,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
140
139
  this._container.focus();
141
140
  }
142
141
  exitViewer() {
143
- if (!this.enableGridInsert && this.dataUnit.isDirty()) {
142
+ if (this.dataUnit.isDirty()) {
144
143
  this.dataUnit.cancelEdition({ after: () => this.exit.emit() });
145
144
  }
146
145
  else {
@@ -249,13 +248,10 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
249
248
  const invisibleButtons = this.getInvisibleButtons();
250
249
  this._taskbarProcessor = new TaskbarProcessor({
251
250
  "snkGuideViewer.regular": btnsRegularMode,
252
- "snkGuideViewer.finish_edition": ["CANCEL", "SAVE", this.handleAddGridMode()],
251
+ "snkGuideViewer.finish_edition": ["CANCEL", "SAVE"],
253
252
  });
254
253
  this._taskbarProcessor.process(taskbarId, this.taskbarManager, this.dataState, disabledButtons, invisibleButtons);
255
254
  }
256
- handleAddGridMode() {
257
- return this.enableGridInsert ? TaskbarElement.GRID_MODE : "";
258
- }
259
255
  getInvisibleButtons() {
260
256
  const invisibleButtons = [];
261
257
  if (this.dataState && this.dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
@@ -570,7 +566,6 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
570
566
  "resourceID": [1, "resource-i-d"],
571
567
  "detailTaskbarCustomContainerId": [1, "detail-taskbar-custom-container-id"],
572
568
  "formLegacyConfigName": [1, "form-legacy-config-name"],
573
- "enableGridInsert": [4, "enable-grid-insert"],
574
569
  "getCustomTitle": [16],
575
570
  "_hasToCreateFieldSearch": [32],
576
571
  "_breadcrumbItems": [32],
@@ -253,7 +253,7 @@ class SnkFilterModalFactory {
253
253
  }
254
254
  }
255
255
 
256
- const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:8px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__scroller.sc-snk-filter-bar{height:calc(100% + var(--space-extra-small, 3px))}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
256
+ const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:8px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__scroller.sc-snk-filter-bar{height:calc(100% + var(--space-extra-small, 3px))}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-self:center}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
257
257
 
258
258
  const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
259
259
  constructor() {
@@ -279,7 +279,6 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
279
279
  this._filtersComparator = (a, b) => {
280
280
  return this._calculateSortIndex(b) - this._calculateSortIndex(a);
281
281
  };
282
- this.customFilterBarConfig = undefined;
283
282
  this.dataUnit = undefined;
284
283
  this.title = undefined;
285
284
  this.configName = undefined;
@@ -589,23 +588,20 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
589
588
  }
590
589
  }
591
590
  async loadConfigFromStorage(clearCache) {
592
- try {
593
- if (clearCache) {
594
- await ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
595
- }
596
- let config;
597
- if (this.customFilterBarConfig) {
598
- config = await this.customFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
599
- }
600
- else {
601
- config = await ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
602
- }
603
- this.filterConfig = config.map(item => this.normalizeItem(item));
604
- this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
605
- }
606
- catch (e) {
607
- throw new ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), e);
608
- }
591
+ if (clearCache) {
592
+ await ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
593
+ }
594
+ return new Promise(accept => {
595
+ ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name })
596
+ .then((filters) => {
597
+ accept();
598
+ this.filterConfig = filters.map(item => this.normalizeItem(item));
599
+ this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
600
+ })
601
+ .catch(reason => {
602
+ throw new ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
603
+ });
604
+ });
609
605
  }
610
606
  attachDataUnit() {
611
607
  if (this.dataUnit == undefined) {
@@ -724,7 +720,6 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
724
720
  }; }
725
721
  static get style() { return snkFilterBarCss; }
726
722
  }, [2, "snk-filter-bar", {
727
- "customFilterBarConfig": [16],
728
723
  "dataUnit": [1040],
729
724
  "title": [1],
730
725
  "configName": [1, "config-name"],
@@ -23,7 +23,7 @@ const SnkFilterCheckboxList$1 = /*@__PURE__*/ proxyCustomElement(class extends H
23
23
  this.valueChanged.emit((_b = this.config) === null || _b === void 0 ? void 0 : _b.value);
24
24
  }
25
25
  renderOptions() {
26
- return this.optionsList.map(option => (h("ez-check", { label: option.label, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
26
+ return this.optionsList.map(option => (h("ez-check", { label: option.label, compact: true, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
27
27
  }
28
28
  isChecked(itemName) {
29
29
  var _a;
@@ -1,9 +1,9 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Fragment } from '@stencil/core/internal/client';
2
2
  import { Action, ElementIDUtils, ApplicationContext, StringUtils } from '@sankhyalabs/core';
3
- import { T as TaskbarElement, d as defineCustomElement$2 } from './snk-taskbar2.js';
3
+ import { d as defineCustomElement$2, T as TaskbarElement } from './snk-taskbar2.js';
4
4
  import { C as ConfigStorage } from './ConfigStorage.js';
5
5
  import { P as PresentationMode } from './ISave.js';
6
- import { C as CommonsExporter, T as TaskbarProcessor, S as SnkMultiSelectionListDataSource, o as openFieldSearch, a as CrudUtils, R as RmPrecisionCustomValueFormatter, c as ContinuousInsertUtils, b as buildFieldSearch } from './ContinuousInsertUtils.js';
6
+ import { C as CommonsExporter, T as TaskbarProcessor, S as SnkMultiSelectionListDataSource, o as openFieldSearch, a as CrudUtils, R as RmPrecisionCustomValueFormatter, b as buildFieldSearch } from './IExporterProvider.js';
7
7
  import { s as store } from './index2.js';
8
8
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
9
9
  import './DataFetcher.js';
@@ -86,7 +86,7 @@ class ServerSideExporterProvider extends CommonsExporter {
86
86
  }
87
87
  }
88
88
 
89
- const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:var(--space--small)}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%;padding:var(--snk-grid-padding)}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:var(--snk-grid-min-height)}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
89
+ const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:var(--space--lg)}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%;padding:var(--snk-grid-padding)}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:var(--snk-grid-min-height)}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
90
90
 
91
91
  const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
92
92
  constructor() {
@@ -100,7 +100,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
100
100
  "snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
101
101
  "snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
102
102
  "snkGridTopTaskbar.regular.singleTaskbar": [],
103
- "snkGridTopTaskbar.finish_edition": ["CANCEL", "SAVE", this.handleAddFormMode()],
103
+ "snkGridTopTaskbar.finish_edition": ["CANCEL", "SAVE"],
104
104
  "snkGridTopTaskbar.finish_edition.secondary": [],
105
105
  "snkGridTopTaskbar.finish_edition.singleTaskbar": [],
106
106
  });
@@ -113,7 +113,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
113
113
  "snkGridHeaderTaskbar.singleTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "ATTACH", "FORM_MODE", "CONFIGURATOR", "REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON"],
114
114
  "snkGridHeaderTaskbar.singleTaskbar.detail.unselected": ["INSERT", "FORM_MODE", "CONFIGURATOR", "REFRESH", "MORE_OPTIONS"],
115
115
  "snkGridHeaderTaskbar.singleTaskbar.detail.selected": ["UPDATE", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "FORM_MODE", "CONFIGURATOR", "REFRESH"],
116
- "snkGridHeaderTaskbar.singleTaskbar.finish_edition": ["CANCEL", "SAVE", this.handleAddFormMode()]
116
+ "snkGridHeaderTaskbar.singleTaskbar.finish_edition": ["CANCEL", "SAVE"]
117
117
  });
118
118
  this.dataUnitInterceptor = {
119
119
  interceptAction: async (action) => {
@@ -128,7 +128,6 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
128
128
  this._gridConfig = undefined;
129
129
  this._popUpGridConfig = false;
130
130
  this._showSnkFilterBar = true;
131
- this._enableContinuousInsert = false;
132
131
  this.columnFilterDataSource = new SnkMultiSelectionListDataSource();
133
132
  this.configName = undefined;
134
133
  this.filterBarTitle = undefined;
@@ -152,7 +151,6 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
152
151
  this.filterBarLegacyConfigName = undefined;
153
152
  this.autoLoad = undefined;
154
153
  this.autoFocus = true;
155
- this.enableGridInsert = false;
156
154
  }
157
155
  /**
158
156
  * Exibe a janela de configurações da grade.
@@ -239,16 +237,6 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
239
237
  async setFocus() {
240
238
  this._grid.setFocus();
241
239
  }
242
- async handleClick(event) {
243
- if (this.hasToBlockEvent(event)) {
244
- event.preventDefault();
245
- event.stopPropagation();
246
- await this._dataUnit.cancelEdition();
247
- }
248
- }
249
- hasToBlockEvent(event) {
250
- return this._snkFilterBar.contains(event.target) && this.enableGridInsert && this._dataUnit.hasNewRecord();
251
- }
252
240
  async handleGridLegacyConfigName(newLegacyConfig, oldLegacyConfig) {
253
241
  if (!newLegacyConfig) {
254
242
  return;
@@ -259,9 +247,6 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
259
247
  this.addGridLegacyConfigName();
260
248
  this.loadConfig();
261
249
  }
262
- handleAddFormMode() {
263
- return this.enableGridInsert ? TaskbarElement.FORM_MODE : "";
264
- }
265
250
  openGridConfig() {
266
251
  this._grid.getColumnsState()
267
252
  .then((gridColumns) => {
@@ -386,21 +371,13 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
386
371
  }
387
372
  parent = parent.parentElement;
388
373
  }
389
- if (this._snkFilterBar) {
390
- this._snkFilterBar.addEventListener('click', this.handleClick);
391
- }
392
374
  this._rmPrecisionCustomValueFormatter = new RmPrecisionCustomValueFormatter();
393
375
  this.addGridLegacyConfigName();
394
376
  this.loadConfig();
395
- this._continuousInsertUtils = new ContinuousInsertUtils(this._application, this.resourceID, this.configName);
396
- if (this.enableGridInsert) {
397
- this._continuousInsertUtils.getConfig().then(value => this._enableContinuousInsert = value);
398
- }
399
377
  }
400
378
  componentDidRender() {
401
- var _a, _b;
402
379
  this._rmPrecisionCustomValueFormatter.setGrid(this._grid);
403
- this.loadGridCustomFormatters((_b = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.fields);
380
+ this.loadGridCustomFormatters(this._dataUnit.metadata.fields);
404
381
  this.setCustomRenders();
405
382
  this.setCustomEditors();
406
383
  }
@@ -498,21 +475,12 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
498
475
  eagerInitialize: true,
499
476
  itemBuilder: (actionButton, item) => this.getColumnSearch(actionButton, item)
500
477
  }];
501
- if (this.enableGridInsert) {
502
- hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, this.handleEnableContinuousInsert));
503
- }
504
- if (this.isGridInsertActive())
505
- return hardList;
506
478
  if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
507
479
  const taskbarID = this.getTopTaskBarId();
508
480
  return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this._dataState, this.actionsList));
509
481
  }
510
482
  return hardList.concat(this.actionsList);
511
483
  }
512
- handleEnableContinuousInsert() {
513
- this._enableContinuousInsert = !this._enableContinuousInsert;
514
- this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
515
- }
516
484
  handleFilterConfigUpdated(filterConfig) {
517
485
  if (!filterConfig.length) {
518
486
  this._showSnkFilterBar = false;
@@ -524,20 +492,12 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
524
492
  }
525
493
  this._showSnkFilterBar = true;
526
494
  }
527
- getGridHeaderButtons() {
528
- if (this.isGridInsertActive())
529
- return TaskbarElement.MORE_OPTIONS;
530
- return this._headerTaskbarProcessor.buttons;
531
- }
532
- isGridInsertActive() {
533
- return this.enableGridInsert && this._dataUnit.hasNewRecord();
534
- }
535
495
  render() {
536
496
  if (!this._dataUnit) {
537
497
  return undefined;
538
498
  }
539
- 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--extra-small" }, this._showSnkFilterBar &&
540
- h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, 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, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad }), 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, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this._enableContinuousInsert }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this.getGridHeaderButtons(), 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), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
499
+ return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
500
+ h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, 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, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad }), 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, autoFocus: this.autoFocus }, 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), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
541
501
  }
542
502
  get _element() { return this; }
543
503
  static get watchers() { return {
@@ -568,13 +528,11 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
568
528
  "filterBarLegacyConfigName": [1, "filter-bar-legacy-config-name"],
569
529
  "autoLoad": [4, "auto-load"],
570
530
  "autoFocus": [4, "auto-focus"],
571
- "enableGridInsert": [4, "enable-grid-insert"],
572
531
  "_dataUnit": [32],
573
532
  "_dataState": [32],
574
533
  "_gridConfig": [32],
575
534
  "_popUpGridConfig": [32],
576
535
  "_showSnkFilterBar": [32],
577
- "_enableContinuousInsert": [32],
578
536
  "showConfig": [64],
579
537
  "hideConfig": [64],
580
538
  "setConfig": [64],
@@ -33,7 +33,7 @@ const SnkSimpleBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
33
33
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
34
34
  }
35
35
  render() {
36
- return (h("div", { class: "simple-bar__container ez-margin-vertical--small ez-padding--extra-small" }, h("div", { class: "simple-bar__left-slot" }, h("ez-button", { class: "ez-padding-right--medium", title: this.getMessage('snkSimpleBar.backTitle'), mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), h("div", { class: "simple-bar__column" }, h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), h("div", { class: "simple-bar__right-slot" }, h("slot", { name: "rightSlot" }))));
36
+ return (h("div", { class: "simple-bar__container ez-margin-vertical--medium ez-padding--extra-small" }, h("div", { class: "simple-bar__left-slot" }, h("ez-button", { class: "ez-padding-right--medium", title: this.getMessage('snkSimpleBar.backTitle'), mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), h("div", { class: "simple-bar__column" }, h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), h("div", { class: "simple-bar__right-slot" }, h("slot", { name: "rightSlot" }))));
37
37
  }
38
38
  get _element() { return this; }
39
39
  static get style() { return snkSimpleBarCss; }