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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/{IExporterProvider-9ac15aaf.js → ContinuousInsertUtils-29b65619.js} +36 -3
  2. package/dist/cjs/{SnkMessageBuilder-cceebbae.js → SnkMessageBuilder-bae64d0d.js} +5 -1
  3. package/dist/cjs/{dataunit-fetcher-4b12f70c.js → dataunit-fetcher-f89461c1.js} +45 -17
  4. package/dist/cjs/{field-search-f56aa7d6.js → field-search-68e34bf4.js} +5 -1
  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 +2 -4
  10. package/dist/cjs/snk-crud.cjs.entry.js +5 -2
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  12. package/dist/cjs/{snk-data-unit-ed17da6b.js → snk-data-unit-47202e42.js} +24 -18
  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 +19 -15
  16. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-grid.cjs.entry.js +53 -14
  18. package/dist/cjs/{snk-guides-viewer-866447ab.js → snk-guides-viewer-68777d37.js} +8 -4
  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 +44 -13
  22. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +2 -4
  23. package/dist/collection/components/snk-crud/snk-crud.js +22 -1
  24. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +24 -2
  25. package/dist/collection/components/snk-data-unit/snk-data-unit.js +22 -16
  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 +44 -14
  29. package/dist/collection/components/snk-grid/snk-grid.css +1 -1
  30. package/dist/collection/components/snk-grid/snk-grid.js +66 -7
  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 +0 -1
  33. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +59 -9
  34. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +5 -1
  35. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +3 -3
  36. package/dist/collection/lib/dataUnit/InMemoryLoader.js +2 -4
  37. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +34 -9
  38. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +9 -2
  39. package/dist/collection/lib/message/resources/snk-grid.msg.js +5 -1
  40. package/dist/collection/lib/utils/ContinuousInsertUtils.js +31 -0
  41. package/dist/components/{IExporterProvider.js → ContinuousInsertUtils.js} +40 -5
  42. package/dist/components/SnkMessageBuilder.js +5 -1
  43. package/dist/components/dataunit-fetcher.js +45 -15
  44. package/dist/components/snk-attach2.js +2 -4
  45. package/dist/components/snk-crud.js +5 -1
  46. package/dist/components/snk-data-unit2.js +23 -17
  47. package/dist/components/snk-detail-view2.js +8 -3
  48. package/dist/components/snk-filter-bar2.js +20 -15
  49. package/dist/components/snk-filter-checkbox-list.js +1 -1
  50. package/dist/components/snk-grid2.js +49 -8
  51. package/dist/components/snk-simple-bar2.js +1 -1
  52. package/dist/components/snk-simple-crud2.js +40 -7
  53. package/dist/esm/{IExporterProvider-09df2e3e.js → ContinuousInsertUtils-30caa626.js} +37 -5
  54. package/dist/esm/{SnkMessageBuilder-ae87b754.js → SnkMessageBuilder-6fff4a4c.js} +5 -1
  55. package/dist/esm/{dataunit-fetcher-3aac1a53.js → dataunit-fetcher-c24c76c6.js} +45 -15
  56. package/dist/esm/{field-search-efbe307f.js → field-search-f8b1d91e.js} +5 -1
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/sankhyablocks.js +1 -1
  59. package/dist/esm/snk-actions-button_4.entry.js +1 -1
  60. package/dist/esm/snk-application.entry.js +2 -2
  61. package/dist/esm/snk-attach.entry.js +2 -4
  62. package/dist/esm/snk-crud.entry.js +5 -2
  63. package/dist/esm/snk-data-exporter.entry.js +3 -3
  64. package/dist/esm/{snk-data-unit-6888df8f.js → snk-data-unit-de45e0e1.js} +24 -18
  65. package/dist/esm/snk-data-unit.entry.js +3 -3
  66. package/dist/esm/snk-detail-view.entry.js +4 -4
  67. package/dist/esm/snk-filter-bar.entry.js +19 -15
  68. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  69. package/dist/esm/snk-grid.entry.js +48 -9
  70. package/dist/esm/{snk-guides-viewer-cb8a0b48.js → snk-guides-viewer-b5dd30e6.js} +8 -4
  71. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  72. package/dist/esm/snk-simple-bar.entry.js +1 -1
  73. package/dist/esm/snk-simple-crud.entry.js +40 -9
  74. package/dist/sankhyablocks/p-17425c72.js +1 -0
  75. package/dist/sankhyablocks/p-23736d75.js +1 -0
  76. package/dist/sankhyablocks/p-2923c1b5.js +1 -0
  77. package/dist/sankhyablocks/p-3e3cc017.js +1 -0
  78. package/dist/sankhyablocks/p-50779ad3.entry.js +1 -0
  79. package/dist/sankhyablocks/{p-aaa3ee68.entry.js → p-5f157b09.entry.js} +1 -1
  80. package/dist/sankhyablocks/{p-559bfb9b.entry.js → p-62e048c6.entry.js} +1 -1
  81. package/dist/sankhyablocks/{p-16969508.entry.js → p-694e1c4a.entry.js} +1 -1
  82. package/dist/sankhyablocks/p-7ac7932c.js +60 -0
  83. package/dist/sankhyablocks/{p-bc4b94d2.entry.js → p-7eef0898.entry.js} +1 -1
  84. package/dist/sankhyablocks/p-9eaf913b.entry.js +1 -0
  85. package/dist/sankhyablocks/{p-640140b3.entry.js → p-a42e7a1e.entry.js} +1 -1
  86. package/dist/sankhyablocks/p-b9679243.entry.js +1 -0
  87. package/dist/sankhyablocks/{p-9cbef862.js → p-bccfc262.js} +1 -1
  88. package/dist/sankhyablocks/p-c2e468c9.entry.js +1 -0
  89. package/dist/sankhyablocks/p-d11f58d2.entry.js +1 -0
  90. package/dist/sankhyablocks/{p-439a50fb.entry.js → p-da34270e.entry.js} +1 -1
  91. package/dist/sankhyablocks/p-e16e87fc.entry.js +1 -0
  92. package/dist/sankhyablocks/{p-3d542b58.entry.js → p-eb9f0407.entry.js} +1 -1
  93. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  94. package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
  95. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +5 -0
  96. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +2 -2
  97. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -0
  98. package/dist/types/components/snk-grid/snk-grid.d.ts +11 -0
  99. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +9 -0
  100. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +1 -0
  101. package/dist/types/components.d.ts +40 -0
  102. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +12 -2
  103. package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +10 -0
  104. package/package.json +1 -1
  105. package/dist/sankhyablocks/p-0e9a872d.entry.js +0 -1
  106. package/dist/sankhyablocks/p-1ab19772.js +0 -1
  107. package/dist/sankhyablocks/p-1f47a0b2.entry.js +0 -1
  108. package/dist/sankhyablocks/p-3757394b.entry.js +0 -1
  109. package/dist/sankhyablocks/p-53c1d25d.entry.js +0 -1
  110. package/dist/sankhyablocks/p-7c4aabe2.js +0 -1
  111. package/dist/sankhyablocks/p-88aa931b.entry.js +0 -1
  112. package/dist/sankhyablocks/p-a31e761f.js +0 -1
  113. package/dist/sankhyablocks/p-b2caaaf9.entry.js +0 -1
  114. package/dist/sankhyablocks/p-c2495304.js +0 -1
  115. package/dist/sankhyablocks/p-f8698ad3.js +0 -60
@@ -3,8 +3,8 @@
3
3
  const index = require('./index-f9e81701.js');
4
4
  const core = require('@sankhyalabs/core');
5
5
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
6
- const SnkMessageBuilder = require('./SnkMessageBuilder-cceebbae.js');
7
- const dataunitFetcher = require('./dataunit-fetcher-4b12f70c.js');
6
+ const SnkMessageBuilder = require('./SnkMessageBuilder-bae64d0d.js');
7
+ const dataunitFetcher = require('./dataunit-fetcher-f89461c1.js');
8
8
  const DataType = require('@sankhyalabs/core/dist/dataunit/metadata/DataType');
9
9
  const GetSelectedRecordsIDsInfo = require('./GetSelectedRecordsIDsInfo-bd50caf1.js');
10
10
 
@@ -486,7 +486,14 @@ const SnkDataUnit = class {
486
486
  }
487
487
  handleRecordsRemoved(action) {
488
488
  var _a, _b;
489
- let removeFinishMsg = this.buildRemoveFinishMessage(action);
489
+ const cachedRecords = action.payload.cachedRecords;
490
+ let removeFinishMsg;
491
+ if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
492
+ removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
493
+ }
494
+ else {
495
+ removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
496
+ }
490
497
  if (removeFinishMsg != undefined) {
491
498
  this.showSuccessMessage(removeFinishMsg);
492
499
  }
@@ -497,14 +504,6 @@ const SnkDataUnit = class {
497
504
  this.dataUnit.gotoPage(page);
498
505
  }
499
506
  }
500
- buildRemoveFinishMessage(action) {
501
- const records = action.payload.records;
502
- if (!records || !records.length)
503
- return undefined;
504
- if ((records === null || records === void 0 ? void 0 : records.length) > 1)
505
- return this.getMessage('snkDataUnit.removeAllInfo', { size: records.length });
506
- return this.getMessage('snkDataUnit.removeInfo', records);
507
- }
508
507
  /**
509
508
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
510
509
  * através de um pequeno modulo na estrutura da aplicação:
@@ -548,19 +547,26 @@ const SnkDataUnit = class {
548
547
  return await this._application.getDataUnit(this.entityName, cacheName, null, this.configName, this.resourceID);
549
548
  }
550
549
  }
551
- async loadDataUnit(forceMetadataLoad = true) {
552
- var _a;
550
+ updateMetadataWithRMP() {
551
+ this.fillFieldsWithRmp(this.dataUnit.metadata);
552
+ this.fillFieldsWithRmPrecision(this.dataUnit.metadata);
553
+ const dataUnitUpdatedMetadata = this.handleDULinksOnMetadataLoaded(this.dataUnit.metadata);
554
+ this.dataUnit.metadata = dataUnitUpdatedMetadata;
555
+ }
556
+ async loadDataUnit() {
557
+ var _a, _b;
553
558
  if (this.dataUnit == null && this._application && this.entityName) {
554
559
  this.dataUnit = await this.getDataUnitParentOrChild();
555
560
  }
556
561
  if (this.dataUnit) {
557
562
  this.dataUnit.pageSize = this.pageSize;
558
563
  this.dataUnit.unsubscribe(this._dataUnitObserver);
559
- this.dataUnit.addInterceptor(this);
560
564
  this.dataUnit.subscribe(this._dataUnitObserver);
561
- if (forceMetadataLoad || !this.dataUnit.metadata)
562
- await this.dataUnit.loadMetadata();
563
- if ((_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) {
565
+ if ((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.metadata) {
566
+ this.updateMetadataWithRMP();
567
+ }
568
+ this.dataUnit.addInterceptor(this);
569
+ if ((_b = this.dataUnit.records) === null || _b === void 0 ? void 0 : _b.length) {
564
570
  const { records } = this.getMetadataByRow(this.dataUnit);
565
571
  this.dataUnit.records = records;
566
572
  }
@@ -648,7 +654,7 @@ const SnkDataUnit = class {
648
654
  }
649
655
  }
650
656
  async componentDidLoad() {
651
- await this.loadDataUnit(false);
657
+ await this.loadDataUnit();
652
658
  this.handlerLinkFields();
653
659
  }
654
660
  render() {
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkDataUnit = require('./snk-data-unit-ed17da6b.js');
5
+ const snkDataUnit = require('./snk-data-unit-47202e42.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('@sankhyalabs/ezui/dist/collection/utils');
9
- require('./SnkMessageBuilder-cceebbae.js');
10
- require('./dataunit-fetcher-4b12f70c.js');
9
+ require('./SnkMessageBuilder-bae64d0d.js');
10
+ require('./dataunit-fetcher-f89461c1.js');
11
11
  require('./DataFetcher-cadeef8e.js');
12
12
  require('./PrintUtils-bcaeb82f.js');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
@@ -12,20 +12,20 @@ const index$1 = require('./index-1dfc7a6e.js');
12
12
  require('./ISave-e91b70a7.js');
13
13
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
14
14
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
15
- require('./dataunit-fetcher-4b12f70c.js');
15
+ require('./dataunit-fetcher-f89461c1.js');
16
16
  require('./filter-item-type.enum-a7ffdaa6.js');
17
17
  require('./form-config-fetcher-ed497282.js');
18
18
  const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
19
19
  const constants = require('./constants-35ddd366.js');
20
- const snkGuidesViewer = require('./snk-guides-viewer-866447ab.js');
21
- const SnkMessageBuilder = require('./SnkMessageBuilder-cceebbae.js');
20
+ const snkGuidesViewer = require('./snk-guides-viewer-68777d37.js');
21
+ const SnkMessageBuilder = require('./SnkMessageBuilder-bae64d0d.js');
22
22
  require('./ConfigStorage-ecc0ed20.js');
23
23
  require('./PrintUtils-bcaeb82f.js');
24
24
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
25
25
  require('@sankhyalabs/core/dist/utils/SortingUtils');
26
26
  require('./ResourceIDUtils-5ff86aa7.js');
27
27
  require('./index-102ba62d.js');
28
- require('./field-search-f56aa7d6.js');
28
+ require('./field-search-68e34bf4.js');
29
29
  require('@sankhyalabs/core/dist/dataunit/DataUnit');
30
30
 
31
31
  class GuideBuilder {
@@ -252,7 +252,7 @@ class SnkFilterModalFactory {
252
252
  }
253
253
  }
254
254
 
255
- 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%}";
255
+ 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
256
 
257
257
  const SnkFilterBar = class {
258
258
  constructor(hostRef) {
@@ -277,6 +277,7 @@ const SnkFilterBar = class {
277
277
  this._filtersComparator = (a, b) => {
278
278
  return this._calculateSortIndex(b) - this._calculateSortIndex(a);
279
279
  };
280
+ this.customFilterBarConfig = undefined;
280
281
  this.dataUnit = undefined;
281
282
  this.title = undefined;
282
283
  this.configName = undefined;
@@ -586,20 +587,23 @@ const SnkFilterBar = class {
586
587
  }
587
588
  }
588
589
  async loadConfigFromStorage(clearCache) {
589
- if (clearCache) {
590
- await ConfigStorage.ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
591
- }
592
- return new Promise(accept => {
593
- ConfigStorage.ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name })
594
- .then((filters) => {
595
- accept();
596
- this.filterConfig = filters.map(item => this.normalizeItem(item));
597
- this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
598
- })
599
- .catch(reason => {
600
- throw new core.ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
601
- });
602
- });
590
+ try {
591
+ if (clearCache) {
592
+ await ConfigStorage.ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
593
+ }
594
+ let config;
595
+ if (this.customFilterBarConfig) {
596
+ config = await this.customFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
597
+ }
598
+ else {
599
+ config = await ConfigStorage.ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
600
+ }
601
+ this.filterConfig = config.map(item => this.normalizeItem(item));
602
+ this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
603
+ }
604
+ catch (e) {
605
+ throw new core.ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), e);
606
+ }
603
607
  }
604
608
  attachDataUnit() {
605
609
  if (this.dataUnit == undefined) {
@@ -26,7 +26,7 @@ const SnkFilterCheckboxList = class {
26
26
  this.valueChanged.emit((_b = this.config) === null || _b === void 0 ? void 0 : _b.value);
27
27
  }
28
28
  renderOptions() {
29
- return this.optionsList.map(option => (index.h("ez-check", { label: option.label, compact: true, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
29
+ return this.optionsList.map(option => (index.h("ez-check", { label: option.label, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
30
30
  }
31
31
  isChecked(itemName) {
32
32
  var _a;
@@ -7,16 +7,16 @@ const core = require('@sankhyalabs/core');
7
7
  const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
8
8
  const ConfigStorage = require('./ConfigStorage-ecc0ed20.js');
9
9
  const index$1 = require('./index-1dfc7a6e.js');
10
- const fieldSearch = require('./field-search-f56aa7d6.js');
10
+ const fieldSearch = require('./field-search-68e34bf4.js');
11
11
  const index$2 = require('./index-102ba62d.js');
12
- const IExporterProvider = require('./IExporterProvider-9ac15aaf.js');
12
+ const ContinuousInsertUtils = require('./ContinuousInsertUtils-29b65619.js');
13
13
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
14
14
  require('./DataFetcher-cadeef8e.js');
15
15
  require('./pesquisa-fetcher-ca89181c.js');
16
16
  require('./ISave-e91b70a7.js');
17
17
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
18
18
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
19
- require('./dataunit-fetcher-4b12f70c.js');
19
+ require('./dataunit-fetcher-f89461c1.js');
20
20
  require('./filter-item-type.enum-a7ffdaa6.js');
21
21
  require('./form-config-fetcher-ed497282.js');
22
22
  const GetSelectedRecordsIDsInfo = require('./GetSelectedRecordsIDsInfo-bd50caf1.js');
@@ -26,7 +26,7 @@ require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
26
26
  require('@sankhyalabs/core/dist/utils/SortingUtils');
27
27
  require('./ResourceIDUtils-5ff86aa7.js');
28
28
 
29
- class ServerSideExporterProvider extends IExporterProvider.CommonsExporter {
29
+ class ServerSideExporterProvider extends ContinuousInsertUtils.CommonsExporter {
30
30
  getFilters() {
31
31
  var _a;
32
32
  return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getAppliedFilters();
@@ -80,7 +80,7 @@ class ServerSideExporterProvider extends IExporterProvider.CommonsExporter {
80
80
  }
81
81
  }
82
82
 
83
- 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}";
83
+ 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}";
84
84
 
85
85
  const SnkGrid = class {
86
86
  constructor(hostRef) {
@@ -93,7 +93,7 @@ const SnkGrid = class {
93
93
  "snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
94
94
  "snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
95
95
  "snkGridTopTaskbar.regular.singleTaskbar": [],
96
- "snkGridTopTaskbar.finish_edition": ["CANCEL", "SAVE"],
96
+ "snkGridTopTaskbar.finish_edition": ["CANCEL", "SAVE", this.handleAddFormMode()],
97
97
  "snkGridTopTaskbar.finish_edition.secondary": [],
98
98
  "snkGridTopTaskbar.finish_edition.singleTaskbar": [],
99
99
  });
@@ -106,7 +106,7 @@ const SnkGrid = class {
106
106
  "snkGridHeaderTaskbar.singleTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "ATTACH", "FORM_MODE", "CONFIGURATOR", "REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON"],
107
107
  "snkGridHeaderTaskbar.singleTaskbar.detail.unselected": ["INSERT", "FORM_MODE", "CONFIGURATOR", "REFRESH", "MORE_OPTIONS"],
108
108
  "snkGridHeaderTaskbar.singleTaskbar.detail.selected": ["UPDATE", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "FORM_MODE", "CONFIGURATOR", "REFRESH"],
109
- "snkGridHeaderTaskbar.singleTaskbar.finish_edition": ["CANCEL", "SAVE"]
109
+ "snkGridHeaderTaskbar.singleTaskbar.finish_edition": ["CANCEL", "SAVE", this.handleAddFormMode()]
110
110
  });
111
111
  this.dataUnitInterceptor = {
112
112
  interceptAction: async (action) => {
@@ -121,7 +121,8 @@ const SnkGrid = class {
121
121
  this._gridConfig = undefined;
122
122
  this._popUpGridConfig = false;
123
123
  this._showSnkFilterBar = true;
124
- this.columnFilterDataSource = new IExporterProvider.SnkMultiSelectionListDataSource();
124
+ this._enableContinuousInsert = false;
125
+ this.columnFilterDataSource = new ContinuousInsertUtils.SnkMultiSelectionListDataSource();
125
126
  this.configName = undefined;
126
127
  this.filterBarTitle = undefined;
127
128
  this.resourceID = undefined;
@@ -144,6 +145,7 @@ const SnkGrid = class {
144
145
  this.filterBarLegacyConfigName = undefined;
145
146
  this.autoLoad = undefined;
146
147
  this.autoFocus = true;
148
+ this.enableGridInsert = false;
147
149
  }
148
150
  /**
149
151
  * Exibe a janela de configurações da grade.
@@ -230,6 +232,16 @@ const SnkGrid = class {
230
232
  async setFocus() {
231
233
  this._grid.setFocus();
232
234
  }
235
+ async handleClick(event) {
236
+ if (this.hasToBlockEvent(event)) {
237
+ event.preventDefault();
238
+ event.stopPropagation();
239
+ await this._dataUnit.cancelEdition();
240
+ }
241
+ }
242
+ hasToBlockEvent(event) {
243
+ return this._snkFilterBar.contains(event.target) && this.enableGridInsert && this._dataUnit.hasNewRecord();
244
+ }
233
245
  async handleGridLegacyConfigName(newLegacyConfig, oldLegacyConfig) {
234
246
  if (!newLegacyConfig) {
235
247
  return;
@@ -240,6 +252,9 @@ const SnkGrid = class {
240
252
  this.addGridLegacyConfigName();
241
253
  this.loadConfig();
242
254
  }
255
+ handleAddFormMode() {
256
+ return this.enableGridInsert ? taskbarElements.TaskbarElement.FORM_MODE : "";
257
+ }
243
258
  openGridConfig() {
244
259
  this._grid.getColumnsState()
245
260
  .then((gridColumns) => {
@@ -253,7 +268,7 @@ const SnkGrid = class {
253
268
  }
254
269
  setGridConfig(config) {
255
270
  this._gridConfig = config;
256
- IExporterProvider.CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
271
+ ContinuousInsertUtils.CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
257
272
  }
258
273
  loadConfig() {
259
274
  ConfigStorage.ConfigStorage.loadGridConfig(this.configName, this.resourceID)
@@ -309,7 +324,7 @@ const SnkGrid = class {
309
324
  }
310
325
  finishLoading() {
311
326
  this._dataUnit.addInterceptor(this.dataUnitInterceptor);
312
- IExporterProvider.CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
327
+ ContinuousInsertUtils.CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
313
328
  this.addElementID();
314
329
  if (this.columnFilterDataSource != undefined) {
315
330
  this.columnFilterDataSource.setApplication(this._application);
@@ -364,13 +379,21 @@ const SnkGrid = class {
364
379
  }
365
380
  parent = parent.parentElement;
366
381
  }
367
- this._rmPrecisionCustomValueFormatter = new IExporterProvider.RmPrecisionCustomValueFormatter();
382
+ if (this._snkFilterBar) {
383
+ this._snkFilterBar.addEventListener('click', this.handleClick);
384
+ }
385
+ this._rmPrecisionCustomValueFormatter = new ContinuousInsertUtils.RmPrecisionCustomValueFormatter();
368
386
  this.addGridLegacyConfigName();
369
387
  this.loadConfig();
388
+ this._continuousInsertUtils = new ContinuousInsertUtils.ContinuousInsertUtils(this._application, this.resourceID, this.configName);
389
+ if (this.enableGridInsert) {
390
+ this._continuousInsertUtils.getConfig().then(value => this._enableContinuousInsert = value);
391
+ }
370
392
  }
371
393
  componentDidRender() {
394
+ var _a, _b;
372
395
  this._rmPrecisionCustomValueFormatter.setGrid(this._grid);
373
- this.loadGridCustomFormatters(this._dataUnit.metadata.fields);
396
+ this.loadGridCustomFormatters((_b = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.fields);
374
397
  this.setCustomRenders();
375
398
  this.setCustomEditors();
376
399
  }
@@ -468,6 +491,14 @@ const SnkGrid = class {
468
491
  eagerInitialize: true,
469
492
  itemBuilder: (actionButton, item) => this.getColumnSearch(actionButton, item)
470
493
  }];
494
+ if (this.enableGridInsert) {
495
+ hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, () => {
496
+ this._enableContinuousInsert = !this._enableContinuousInsert;
497
+ this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
498
+ }));
499
+ }
500
+ if (this.isGridInsertActive())
501
+ return hardList;
471
502
  if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
472
503
  const taskbarID = this.getTopTaskBarId();
473
504
  return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this._dataState, this.actionsList));
@@ -485,12 +516,20 @@ const SnkGrid = class {
485
516
  }
486
517
  this._showSnkFilterBar = true;
487
518
  }
519
+ getGridHeaderButtons() {
520
+ if (this.isGridInsertActive())
521
+ return taskbarElements.TaskbarElement.MORE_OPTIONS;
522
+ return this._headerTaskbarProcessor.buttons;
523
+ }
524
+ isGridInsertActive() {
525
+ return this.enableGridInsert && this._dataUnit.hasNewRecord();
526
+ }
488
527
  render() {
489
528
  if (!this._dataUnit) {
490
529
  return undefined;
491
530
  }
492
- return (index.h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto" }, index.h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
493
- index.h(index.Fragment, null, index.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 }), index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), index.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' }, index.h("slot", { name: this.topTaskbarCustomSlotId }))), index.h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === index$1.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 }, index.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 }, index.h("slot", { name: this.gridHeaderCustomSlotId }))), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" })), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
531
+ return (index.h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, index.h("div", { class: "snk-grid__header ez-margin-bottom--extra-small" }, this._showSnkFilterBar &&
532
+ index.h(index.Fragment, null, index.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 }), index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), index.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' }, index.h("slot", { name: this.topTaskbarCustomSlotId }))), index.h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === index$1.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 }, index.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 }, index.h("slot", { name: this.gridHeaderCustomSlotId }))), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" })), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
494
533
  }
495
534
  get _element() { return index.getElement(this); }
496
535
  static get watchers() { return {
@@ -4,7 +4,7 @@ const index = require('./index-f9e81701.js');
4
4
  const core = require('@sankhyalabs/core');
5
5
  const SnkFormConfigManager = require('./SnkFormConfigManager-f1c92f79.js');
6
6
  const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
7
- const fieldSearch = require('./field-search-f56aa7d6.js');
7
+ const fieldSearch = require('./field-search-68e34bf4.js');
8
8
  const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
9
9
  const constants = require('./constants-35ddd366.js');
10
10
  require('./DataFetcher-cadeef8e.js');
@@ -13,7 +13,7 @@ const index$1 = require('./index-1dfc7a6e.js');
13
13
  require('./ISave-e91b70a7.js');
14
14
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
15
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
16
- require('./dataunit-fetcher-4b12f70c.js');
16
+ require('./dataunit-fetcher-f89461c1.js');
17
17
  require('./filter-item-type.enum-a7ffdaa6.js');
18
18
  require('./form-config-fetcher-ed497282.js');
19
19
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
@@ -43,6 +43,7 @@ const SnkGuidesViewer = class {
43
43
  this.resourceID = undefined;
44
44
  this.detailTaskbarCustomContainerId = undefined;
45
45
  this.formLegacyConfigName = undefined;
46
+ this.enableGridInsert = false;
46
47
  this.getCustomTitle = undefined;
47
48
  this._hasToCreateFieldSearch = true;
48
49
  this._breadcrumbItems = [];
@@ -112,7 +113,7 @@ const SnkGuidesViewer = class {
112
113
  this._container.focus();
113
114
  }
114
115
  exitViewer() {
115
- if (this.dataUnit.isDirty()) {
116
+ if (!this.enableGridInsert && this.dataUnit.isDirty()) {
116
117
  this.dataUnit.cancelEdition({ after: () => this.exit.emit() });
117
118
  }
118
119
  else {
@@ -221,10 +222,13 @@ const SnkGuidesViewer = class {
221
222
  const invisibleButtons = this.getInvisibleButtons();
222
223
  this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
223
224
  "snkGuideViewer.regular": btnsRegularMode,
224
- "snkGuideViewer.finish_edition": ["CANCEL", "SAVE"],
225
+ "snkGuideViewer.finish_edition": ["CANCEL", "SAVE", this.handleAddGridMode()],
225
226
  });
226
227
  this._taskbarProcessor.process(taskbarId, this.taskbarManager, this.dataState, disabledButtons, invisibleButtons);
227
228
  }
229
+ handleAddGridMode() {
230
+ return this.enableGridInsert ? taskbarElements.TaskbarElement.GRID_MODE : "";
231
+ }
228
232
  getInvisibleButtons() {
229
233
  const invisibleButtons = [];
230
234
  if (this.dataState && this.dataState.selectionInfo.mode === DataUnit.SelectionMode.ALL_RECORDS)
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkGuidesViewer = require('./snk-guides-viewer-866447ab.js');
5
+ const snkGuidesViewer = require('./snk-guides-viewer-68777d37.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('./SnkFormConfigManager-f1c92f79.js');
@@ -14,14 +14,14 @@ require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
14
  require('./filter-item-type.enum-a7ffdaa6.js');
15
15
  require('./constants-35ddd366.js');
16
16
  require('@sankhyalabs/ezui/dist/collection/utils/form');
17
- require('./field-search-f56aa7d6.js');
17
+ require('./field-search-68e34bf4.js');
18
18
  require('./taskbar-elements-9ad1f9c0.js');
19
19
  require('./index-1dfc7a6e.js');
20
20
  require('./index-102ba62d.js');
21
21
  require('./pesquisa-fetcher-ca89181c.js');
22
22
  require('./ISave-e91b70a7.js');
23
23
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
24
- require('./dataunit-fetcher-4b12f70c.js');
24
+ require('./dataunit-fetcher-f89461c1.js');
25
25
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
26
26
  require('@sankhyalabs/core/dist/utils/SortingUtils');
27
27
  require('./ResourceIDUtils-5ff86aa7.js');
@@ -36,7 +36,7 @@ const SnkSimpleBar = class {
36
36
  this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
37
37
  }
38
38
  render() {
39
- return (index.h("div", { class: "simple-bar__container ez-margin-vertical--medium ez-padding--extra-small" }, index.h("div", { class: "simple-bar__left-slot" }, index.h("ez-button", { class: "ez-padding-right--medium", title: this.getMessage('snkSimpleBar.backTitle'), mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), index.h("div", { class: "simple-bar__column" }, index.h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), index.h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), index.h("div", { class: "simple-bar__right-slot" }, index.h("slot", { name: "rightSlot" }))));
39
+ return (index.h("div", { class: "simple-bar__container ez-margin-vertical--small ez-padding--extra-small" }, index.h("div", { class: "simple-bar__left-slot" }, index.h("ez-button", { class: "ez-padding-right--medium", title: this.getMessage('snkSimpleBar.backTitle'), mode: 'icon', iconName: "arrow_back", size: 'medium', onClick: () => this.exit.emit() }), index.h("div", { class: "simple-bar__column" }, index.h("h1", { class: "ez-title ez-title--primary ez-title--extra-large" }, this.label), index.h("ez-breadcrumb", { items: this.breadcrumbItens, onSelectedItem: ({ detail }) => this.clickBreadcrumbItem.emit(detail) }))), index.h("div", { class: "simple-bar__right-slot" }, index.h("slot", { name: "rightSlot" }))));
40
40
  }
41
41
  get _element() { return index.getElement(this); }
42
42
  };