@sankhyalabs/sankhyablocks 7.0.0 → 7.0.2

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 (71) hide show
  1. package/dist/cjs/{ConfigStorage-97468a0f.js → ConfigStorage-c31ad5d9.js} +1 -1
  2. package/dist/cjs/{SnkFormConfigManager-bef6e022.js → SnkFormConfigManager-ed4e2bcd.js} +1 -1
  3. package/dist/cjs/{filter-bar-config-fetcher-a7747f69.js → filter-bar-config-fetcher-47cd77d6.js} +1 -1
  4. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  5. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  6. package/dist/cjs/{snk-data-unit-b0cc2d42.js → snk-data-unit-b14563fc.js} +3 -1
  7. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  8. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  9. package/dist/cjs/snk-filter-bar.cjs.entry.js +2 -2
  10. package/dist/cjs/snk-filter-detail.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  13. package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-grid.cjs.entry.js +8 -2
  15. package/dist/cjs/{snk-guides-viewer-897368ea.js → snk-guides-viewer-2d17a73e.js} +1 -1
  16. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  17. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
  18. package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -2
  19. package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -1
  20. package/dist/collection/components/snk-grid/snk-grid.js +6 -0
  21. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +14 -4
  22. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +1 -1
  23. package/dist/components/filter-bar-config-fetcher.js +1 -1
  24. package/dist/components/snk-data-unit2.js +3 -1
  25. package/dist/components/snk-grid2.js +6 -0
  26. package/dist/components/snk-simple-crud2.js +12 -2
  27. package/dist/esm/{ConfigStorage-02f17a26.js → ConfigStorage-ed0b8f12.js} +1 -1
  28. package/dist/esm/{SnkFormConfigManager-cd9e6cab.js → SnkFormConfigManager-f069d10c.js} +1 -1
  29. package/dist/esm/{filter-bar-config-fetcher-790283d8.js → filter-bar-config-fetcher-abfc2aef.js} +1 -1
  30. package/dist/esm/snk-application.entry.js +2 -2
  31. package/dist/esm/snk-data-exporter.entry.js +1 -1
  32. package/dist/esm/{snk-data-unit-b9b4bb5f.js → snk-data-unit-d44b6bc0.js} +3 -1
  33. package/dist/esm/snk-data-unit.entry.js +1 -1
  34. package/dist/esm/snk-detail-view.entry.js +4 -4
  35. package/dist/esm/snk-filter-bar.entry.js +2 -2
  36. package/dist/esm/snk-filter-detail.entry.js +1 -1
  37. package/dist/esm/snk-filter-modal-item.entry.js +2 -2
  38. package/dist/esm/snk-form.entry.js +3 -3
  39. package/dist/esm/snk-grid-config.entry.js +2 -2
  40. package/dist/esm/snk-grid.entry.js +8 -2
  41. package/dist/esm/{snk-guides-viewer-579c70cc.js → snk-guides-viewer-9b7798ec.js} +1 -1
  42. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  43. package/dist/esm/snk-personalized-filter.entry.js +2 -2
  44. package/dist/esm/snk-simple-crud.entry.js +12 -2
  45. package/dist/sankhyablocks/{p-90e7c3a2.entry.js → p-0cd7159e.entry.js} +1 -1
  46. package/dist/sankhyablocks/{p-97c586ab.entry.js → p-1005cf8e.entry.js} +1 -1
  47. package/dist/sankhyablocks/{p-4f687570.entry.js → p-146ec5b4.entry.js} +1 -1
  48. package/dist/sankhyablocks/p-3752c35b.entry.js +1 -0
  49. package/dist/sankhyablocks/{p-97720467.entry.js → p-3e239e8b.entry.js} +1 -1
  50. package/dist/sankhyablocks/{p-88f4ef73.entry.js → p-47ffe828.entry.js} +1 -1
  51. package/dist/sankhyablocks/p-48156672.entry.js +1 -0
  52. package/dist/sankhyablocks/{p-acd8b97b.js → p-7e486ac9.js} +1 -1
  53. package/dist/sankhyablocks/{p-7f1c4687.js → p-7f1d732d.js} +1 -1
  54. package/dist/sankhyablocks/{p-1fe2976e.entry.js → p-876eafea.entry.js} +1 -1
  55. package/dist/sankhyablocks/{p-19fdcf88.entry.js → p-94fe0d6f.entry.js} +1 -1
  56. package/dist/sankhyablocks/{p-3b059f4e.js → p-976d75b4.js} +1 -1
  57. package/dist/sankhyablocks/p-9a90464f.js +1 -0
  58. package/dist/sankhyablocks/{p-9fa9331b.entry.js → p-b0fe75a3.entry.js} +1 -1
  59. package/dist/sankhyablocks/{p-4af6cbef.entry.js → p-bad03b2a.entry.js} +1 -1
  60. package/dist/sankhyablocks/p-c9bf8202.entry.js +1 -0
  61. package/dist/sankhyablocks/{p-fb1e5b6d.js → p-de1bca5b.js} +1 -1
  62. package/dist/sankhyablocks/p-fcc487ea.entry.js +1 -0
  63. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  64. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  65. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +2 -1
  66. package/package.json +1 -1
  67. package/dist/sankhyablocks/p-2227bb94.js +0 -1
  68. package/dist/sankhyablocks/p-386102a7.entry.js +0 -1
  69. package/dist/sankhyablocks/p-9666c0d0.entry.js +0 -1
  70. package/dist/sankhyablocks/p-a357d13c.entry.js +0 -1
  71. package/dist/sankhyablocks/p-cdbdcf13.entry.js +0 -1
@@ -3,7 +3,7 @@
3
3
  const core = require('@sankhyalabs/core');
4
4
  const formConfigFetcher = require('./form-config-fetcher-56442594.js');
5
5
  const resourceFetcher = require('./resource-fetcher-260e98a4.js');
6
- const filterBarConfigFetcher = require('./filter-bar-config-fetcher-a7747f69.js');
6
+ const filterBarConfigFetcher = require('./filter-bar-config-fetcher-47cd77d6.js');
7
7
  const DataFetcher = require('./DataFetcher-04c70ba9.js');
8
8
 
9
9
  class GridConfigFetcher extends resourceFetcher.ResourceFetcher {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
3
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
4
4
  const core = require('@sankhyalabs/core');
5
5
  const formConfigFetcher = require('./form-config-fetcher-56442594.js');
6
6
 
@@ -34,7 +34,7 @@ function normalizeValue(value, type) {
34
34
  else {
35
35
  const normalized = Object.assign({}, value);
36
36
  Object.keys(value).forEach(prop => {
37
- if (value[prop]) {
37
+ if (value[prop] !== undefined) {
38
38
  normalized[prop] = normalizeValue(value[prop], type);
39
39
  }
40
40
  else {
@@ -7,13 +7,13 @@ const core = require('@sankhyalabs/core');
7
7
  const DataFetcher = require('./DataFetcher-04c70ba9.js');
8
8
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
9
9
  const pesquisaFetcher = require('./pesquisa-fetcher-cab451b6.js');
10
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
10
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
11
11
  const dataunitFetcher = require('./dataunit-fetcher-4102080d.js');
12
12
  const resourceFetcher = require('./resource-fetcher-260e98a4.js');
13
13
  const SnkMessageBuilder = require('./SnkMessageBuilder-f40df6d4.js');
14
14
  require('./_commonjsHelpers-537d719a.js');
15
15
  require('./form-config-fetcher-56442594.js');
16
- require('./filter-bar-config-fetcher-a7747f69.js');
16
+ require('./filter-bar-config-fetcher-47cd77d6.js');
17
17
  require('./filter-item-type.enum-aa823a00.js');
18
18
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
19
19
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
@@ -8,7 +8,7 @@ const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const index = require('./index-0e663819.js');
9
9
  const constants = require('./constants-d187e03e.js');
10
10
  const DataFetcher = require('./DataFetcher-04c70ba9.js');
11
- const snkDataUnit = require('./snk-data-unit-b0cc2d42.js');
11
+ const snkDataUnit = require('./snk-data-unit-b14563fc.js');
12
12
  require('./_commonjsHelpers-537d719a.js');
13
13
  require('./SnkMessageBuilder-f40df6d4.js');
14
14
 
@@ -292,7 +292,8 @@ const SnkDataUnit = class {
292
292
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
293
293
  selectedRecords: undefined,
294
294
  selectionInfo,
295
- selectedRecord: this.dataUnit.getSelectedRecord()
295
+ selectedRecord: this.dataUnit.getSelectedRecord(),
296
+ recordsIsEmpty: this.dataUnit.records.length === 0
296
297
  });
297
298
  }
298
299
  /**
@@ -430,6 +431,7 @@ class DataStateImpl {
430
431
  this.hasPrevious = datastate.hasPrevious;
431
432
  this.selectionInfo = datastate.selectionInfo;
432
433
  this.selectedRecord = datastate.selectedRecord;
434
+ this.recordsIsEmpty = datastate.recordsIsEmpty;
433
435
  }
434
436
  get selectedRecords() {
435
437
  var _a;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkDataUnit = require('./snk-data-unit-b0cc2d42.js');
5
+ const snkDataUnit = require('./snk-data-unit-b14563fc.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('@sankhyalabs/ezui/dist/collection/utils');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
- const SnkFormConfigManager = require('./SnkFormConfigManager-bef6e022.js');
6
+ const SnkFormConfigManager = require('./SnkFormConfigManager-ed4e2bcd.js');
7
7
  const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
8
8
  require('./DataFetcher-04c70ba9.js');
9
9
  require('./pesquisa-fetcher-cab451b6.js');
@@ -11,12 +11,12 @@ require('@sankhyalabs/core');
11
11
  const index$1 = require('./index-0e663819.js');
12
12
  const taskbarElements = require('./taskbar-elements-b98dd6e9.js');
13
13
  const constants = require('./constants-d187e03e.js');
14
- const snkGuidesViewer = require('./snk-guides-viewer-897368ea.js');
14
+ const snkGuidesViewer = require('./snk-guides-viewer-2d17a73e.js');
15
15
  const SnkMessageBuilder = require('./SnkMessageBuilder-f40df6d4.js');
16
- require('./ConfigStorage-97468a0f.js');
16
+ require('./ConfigStorage-c31ad5d9.js');
17
17
  require('./form-config-fetcher-56442594.js');
18
18
  require('./resource-fetcher-260e98a4.js');
19
- require('./filter-bar-config-fetcher-a7747f69.js');
19
+ require('./filter-bar-config-fetcher-47cd77d6.js');
20
20
  require('./filter-item-type.enum-aa823a00.js');
21
21
  require('./_commonjsHelpers-537d719a.js');
22
22
  require('./index-102ba62d.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index$1 = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const EzScrollDirection = require('@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection');
8
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
8
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
9
9
  const DataType = require('@sankhyalabs/core/dist/dataunit/metadata/DataType');
10
10
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
11
11
  const index = require('./index-c5771aba.js');
@@ -15,7 +15,7 @@ require('./form-config-fetcher-56442594.js');
15
15
  require('./DataFetcher-04c70ba9.js');
16
16
  require('./_commonjsHelpers-537d719a.js');
17
17
  require('./resource-fetcher-260e98a4.js');
18
- require('./filter-bar-config-fetcher-a7747f69.js');
18
+ require('./filter-bar-config-fetcher-47cd77d6.js');
19
19
 
20
20
  const buildFilter = (item) => {
21
21
  switch (item.type) {
@@ -6,7 +6,7 @@ const index = require('./index-f9e81701.js');
6
6
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
7
7
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
8
8
  const core = require('@sankhyalabs/core');
9
- const filterBarConfigFetcher = require('./filter-bar-config-fetcher-a7747f69.js');
9
+ const filterBarConfigFetcher = require('./filter-bar-config-fetcher-47cd77d6.js');
10
10
  const presentationMode = require('./presentationMode-52ec3bdd.js');
11
11
  const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-9848e09b.js');
12
12
  require('./resource-fetcher-260e98a4.js');
@@ -6,13 +6,13 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
9
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
9
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
10
10
  const filterType_enum = require('./filter-type.enum-b14ce507.js');
11
11
  require('./form-config-fetcher-56442594.js');
12
12
  require('./DataFetcher-04c70ba9.js');
13
13
  require('./_commonjsHelpers-537d719a.js');
14
14
  require('./resource-fetcher-260e98a4.js');
15
- require('./filter-bar-config-fetcher-a7747f69.js');
15
+ require('./filter-bar-config-fetcher-47cd77d6.js');
16
16
 
17
17
  const snkFilterModalItemCss = ".grow{flex-grow:1}.gap{gap:4px}";
18
18
 
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const SnkFormConfigManager = require('./SnkFormConfigManager-bef6e022.js');
8
- require('./ConfigStorage-97468a0f.js');
7
+ const SnkFormConfigManager = require('./SnkFormConfigManager-ed4e2bcd.js');
8
+ require('./ConfigStorage-c31ad5d9.js');
9
9
  require('./form-config-fetcher-56442594.js');
10
10
  require('./DataFetcher-04c70ba9.js');
11
11
  require('./_commonjsHelpers-537d719a.js');
12
12
  require('./resource-fetcher-260e98a4.js');
13
- require('./filter-bar-config-fetcher-a7747f69.js');
13
+ require('./filter-bar-config-fetcher-47cd77d6.js');
14
14
  require('./filter-item-type.enum-aa823a00.js');
15
15
 
16
16
  const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
@@ -6,13 +6,13 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const CheckMode = require('@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode');
9
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
9
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
10
10
  const constants = require('./constants-d187e03e.js');
11
11
  require('./form-config-fetcher-56442594.js');
12
12
  require('./DataFetcher-04c70ba9.js');
13
13
  require('./_commonjsHelpers-537d719a.js');
14
14
  require('./resource-fetcher-260e98a4.js');
15
- require('./filter-bar-config-fetcher-a7747f69.js');
15
+ require('./filter-bar-config-fetcher-47cd77d6.js');
16
16
  require('./filter-item-type.enum-aa823a00.js');
17
17
 
18
18
  const snkGridConfigCss = ".sc-snk-grid-config-h{--snk-grid-config__footer--padding-top:var(--space--medium, 12px);--snk-grid-config__main--padding-right:var(--space--medium, 12px);--snk-grid-config__tabselector-container--padding:var(--space--medium, 12px);--snk-grid-config__button-close--padding-left:var(--space--medium, 12px);--snk-grid-config__title--color:var(--title--primary, #2B3A54);--snk-grid-config__title--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__title--font-size:var(--title--large, 20px);--snk-grid-config__title--font-weight:var(--text-weight--extra-large, 700);--snk-grid-config__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__subtitle--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__group--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-weight:var(--text-weight--large, 600);--snk-grid-config__group--padding-bottom:var(--space-small, 6px);--snk-grid-config__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-grid-config__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-grid-config__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-grid-config__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-grid-config__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-grid-config__scrollbar--width:var(--space--medium, 12px);display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.sc-snk-grid-config-h{width:359px;max-width:359px}}.padding-right--medium.sc-snk-grid-config{padding-right:var(--space--medium)}ez-list.sc-snk-grid-config{height:100%}.height-calc.sc-snk-grid-config{max-height:calc(100% - 24px)}.grid-config__footer.sc-snk-grid-config{display:flex;justify-content:flex-end;width:100%;padding-top:var(--snk-grid-config__footer--padding-top)}.hidden.sc-snk-grid-config{display:none}.tabselector-container.sc-snk-grid-config{padding:var(--snk-grid-config__tabselector-container--padding) 0}.button-close.sc-snk-grid-config{padding-left:var(--snk-grid-config__button-close--padding-left)}.title-container.sc-snk-grid-config{display:flex;justify-content:space-between;align-items:center;width:100%}.title.sc-snk-grid-config{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-grid-config__title--color);font-size:var(--snk-grid-config__title--font-size);font-family:var(--snk-grid-config__title--font-family);font-weight:var(--snk-grid-config__title--font-weight)}.subtitle.sc-snk-grid-config{color:var(--text--primary);font-size:var(--snk-grid-config__subtitle--font-size);font-family:var(--snk-grid-config__subtitle--font-family)}.grid-config__main.sc-snk-grid-config{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-grid-config__scrollbar--color-clicked) var(--snk-grid-config__scrollbar--color-background);padding-right:var(--snk-grid-config__main--padding-right)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar{width:var(--snk-grid-config__scrollbar--width);max-width:var(--snk-grid-config__scrollbar--width);min-width:var(--snk-grid-config__scrollbar--width);background-color:var(--snk-grid-config__scrollbar--color-background)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-track{background-color:var(--snk-grid-config__scrollbar--color-background);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb{background-color:var(--snk-grid-config__scrollbar--color-default);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:hover,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-grid-config__scrollbar--color-hover)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:active,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-grid-config__scrollbar--color-clicked)}.group-name.sc-snk-grid-config{font-family:var(--snk-grid-config__group--font-family);font-size:var(--snk-grid-config__group--font-size);font-weight:var(--snk-grid-config__group--font-weight);padding-bottom:var(--snk-grid-config__group--padding-bottom)}";
@@ -6,7 +6,7 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
8
8
  const taskbarElements = require('./taskbar-elements-b98dd6e9.js');
9
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
9
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
10
10
  const index$1 = require('./index-0e663819.js');
11
11
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
12
12
  const index$2 = require('./index-102ba62d.js');
@@ -16,7 +16,7 @@ require('./form-config-fetcher-56442594.js');
16
16
  require('./DataFetcher-04c70ba9.js');
17
17
  require('./_commonjsHelpers-537d719a.js');
18
18
  require('./resource-fetcher-260e98a4.js');
19
- require('./filter-bar-config-fetcher-a7747f69.js');
19
+ require('./filter-bar-config-fetcher-47cd77d6.js');
20
20
  require('./filter-item-type.enum-aa823a00.js');
21
21
 
22
22
  const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.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:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
@@ -251,6 +251,12 @@ const SnkGrid = class {
251
251
  this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
252
252
  this._dataState = evt.detail;
253
253
  });
254
+ this._snkDataUnit.addEventListener("cancelEdition", () => {
255
+ var _a;
256
+ if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
257
+ this._dataUnit.clearSelection();
258
+ }
259
+ });
254
260
  break;
255
261
  }
256
262
  parent = parent.parentElement;
@@ -2,7 +2,7 @@
2
2
 
3
3
  const index = require('./index-f9e81701.js');
4
4
  const core = require('@sankhyalabs/core');
5
- const SnkFormConfigManager = require('./SnkFormConfigManager-bef6e022.js');
5
+ const SnkFormConfigManager = require('./SnkFormConfigManager-ed4e2bcd.js');
6
6
  const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
7
7
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
8
8
  const taskbarElements = require('./taskbar-elements-b98dd6e9.js');
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkGuidesViewer = require('./snk-guides-viewer-897368ea.js');
5
+ const snkGuidesViewer = require('./snk-guides-viewer-2d17a73e.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
- require('./SnkFormConfigManager-bef6e022.js');
9
- require('./ConfigStorage-97468a0f.js');
8
+ require('./SnkFormConfigManager-ed4e2bcd.js');
9
+ require('./ConfigStorage-c31ad5d9.js');
10
10
  require('./form-config-fetcher-56442594.js');
11
11
  require('./DataFetcher-04c70ba9.js');
12
12
  require('./_commonjsHelpers-537d719a.js');
13
13
  require('./resource-fetcher-260e98a4.js');
14
- require('./filter-bar-config-fetcher-a7747f69.js');
14
+ require('./filter-bar-config-fetcher-47cd77d6.js');
15
15
  require('./filter-item-type.enum-aa823a00.js');
16
16
  require('@sankhyalabs/ezui/dist/collection/utils/form');
17
17
  require('./taskbar-processor-bce3f499.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-9848e09b.js');
8
- const ConfigStorage = require('./ConfigStorage-97468a0f.js');
8
+ const ConfigStorage = require('./ConfigStorage-c31ad5d9.js');
9
9
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
10
10
  const index$1 = require('./index-c5771aba.js');
11
11
  const index$2 = require('./index-102ba62d.js');
@@ -14,7 +14,7 @@ require('./form-config-fetcher-56442594.js');
14
14
  require('./DataFetcher-04c70ba9.js');
15
15
  require('./_commonjsHelpers-537d719a.js');
16
16
  require('./resource-fetcher-260e98a4.js');
17
- require('./filter-bar-config-fetcher-a7747f69.js');
17
+ require('./filter-bar-config-fetcher-47cd77d6.js');
18
18
 
19
19
  const snkPersonalizedFilterCss = ".sc-snk-personalized-filter-h{display:flex;height:100%;padding:var(--space--large, 24px);--snk-personalized-filter--width:100%;--snk-personalized-filter--height:100%;--snk-personalized-filter--background-color-line:var(--color--disable-secondary);--snk-personalized-filter--margin-line:var(--border--radius-medium, 12px)}.snk-personalized-filter.sc-snk-personalized-filter{height:var(--snk-personalized-filter--width);width:var(--snk-personalized-filter--height)}.snk-personalized-filter__header-actions.sc-snk-personalized-filter{display:flex;gap:var(--space--medium)}.snk-personalized-filter__group.sc-snk-personalized-filter{flex:1}.snk-personalized-filter__expression-input--line.sc-snk-personalized-filter{width:100%;height:2px;background-color:var(--snk-personalized-filter--background-color-line);margin-top:var(--snk-personalized-filter--margin-line);margin-bottom:var(--snk-personalized-filter--margin-line)}.ez-box__main.sc-snk-personalized-filter{height:90%}.snk-personalized-filter__button-mode.sc-snk-personalized-filter{height:35px}";
20
20
 
@@ -298,7 +298,7 @@ const SnkSimpleCrud = class {
298
298
  this.dataState = Object.assign({}, evt.detail);
299
299
  }
300
300
  getTaskBarDisabledButtons() {
301
- var _a, _b;
301
+ var _a, _b, _c, _d;
302
302
  const disabledButtons = [];
303
303
  if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasNext)) {
304
304
  disabledButtons.push(taskbarElements.TaskbarElement.NEXT);
@@ -306,11 +306,21 @@ const SnkSimpleCrud = class {
306
306
  if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasPrevious)) {
307
307
  disabledButtons.push(taskbarElements.TaskbarElement.PREVIOUS);
308
308
  }
309
+ if ((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.isEmpty()) {
310
+ disabledButtons.push(taskbarElements.TaskbarElement.FORM_MODE);
311
+ }
309
312
  return disabledButtons;
310
313
  }
314
+ handleCancelEdit() {
315
+ var _a;
316
+ if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
317
+ this.goToView(constants$1.VIEW_MODE.GRID);
318
+ this.dataUnit.clearSelection();
319
+ }
320
+ }
311
321
  render() {
312
322
  var _a;
313
- return (index.h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(constants$1.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, index.h("header", null, index.h("slot", { name: "snkSimpleCrudHeader" })), index.h("section", { class: "ez-flex ez-box ez-box--shadow" }, index.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: index$1.PresentationMode.SECONDARY }), index.h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index.h("stack-item", null, index.h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants$1.VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
323
+ return (index.h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(constants$1.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, index.h("header", null, index.h("slot", { name: "snkSimpleCrudHeader" })), index.h("section", { class: "ez-flex ez-box ez-box--shadow" }, index.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: index$1.PresentationMode.SECONDARY }), index.h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index.h("stack-item", null, index.h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants$1.VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
314
324
  }
315
325
  get _element() { return index.getElement(this); }
316
326
  static get watchers() { return {
@@ -282,7 +282,8 @@ export class SnkDataUnit {
282
282
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
283
283
  selectedRecords: undefined,
284
284
  selectionInfo,
285
- selectedRecord: this.dataUnit.getSelectedRecord()
285
+ selectedRecord: this.dataUnit.getSelectedRecord(),
286
+ recordsIsEmpty: this.dataUnit.records.length === 0
286
287
  });
287
288
  }
288
289
  /**
@@ -767,6 +768,7 @@ class DataStateImpl {
767
768
  this.hasPrevious = datastate.hasPrevious;
768
769
  this.selectionInfo = datastate.selectionInfo;
769
770
  this.selectedRecord = datastate.selectedRecord;
771
+ this.recordsIsEmpty = datastate.recordsIsEmpty;
770
772
  }
771
773
  get selectedRecords() {
772
774
  var _a;
@@ -235,6 +235,12 @@ export class SnkGrid {
235
235
  this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
236
236
  this._dataState = evt.detail;
237
237
  });
238
+ this._snkDataUnit.addEventListener("cancelEdition", () => {
239
+ var _a;
240
+ if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
241
+ this._dataUnit.clearSelection();
242
+ }
243
+ });
238
244
  break;
239
245
  }
240
246
  parent = parent.parentElement;
@@ -1,6 +1,6 @@
1
- import { ApplicationContext, DataType, ObjectUtils, UserInterface } from '@sankhyalabs/core';
1
+ import { ApplicationContext, DataType, ObjectUtils, UserInterface, } from '@sankhyalabs/core';
2
2
  import { h } from '@stencil/core';
3
- import { VIEW_MODE, SIMPLE_CRUD_MODE } from '../../lib/utils/constants';
3
+ import { SIMPLE_CRUD_MODE, VIEW_MODE } from '../../lib/utils/constants';
4
4
  import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
5
5
  import { PresentationMode } from '../../lib';
6
6
  import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
@@ -151,7 +151,7 @@ export class SnkSimpleCrud {
151
151
  this.dataState = Object.assign({}, evt.detail);
152
152
  }
153
153
  getTaskBarDisabledButtons() {
154
- var _a, _b;
154
+ var _a, _b, _c, _d;
155
155
  const disabledButtons = [];
156
156
  if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasNext)) {
157
157
  disabledButtons.push(TaskbarElement.NEXT);
@@ -159,11 +159,21 @@ export class SnkSimpleCrud {
159
159
  if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasPrevious)) {
160
160
  disabledButtons.push(TaskbarElement.PREVIOUS);
161
161
  }
162
+ if ((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.isEmpty()) {
163
+ disabledButtons.push(TaskbarElement.FORM_MODE);
164
+ }
162
165
  return disabledButtons;
163
166
  }
167
+ handleCancelEdit() {
168
+ var _a;
169
+ if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
170
+ this.goToView(VIEW_MODE.GRID);
171
+ this.dataUnit.clearSelection();
172
+ }
173
+ }
164
174
  render() {
165
175
  var _a;
166
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
176
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
167
177
  }
168
178
  static get is() { return "snk-simple-crud"; }
169
179
  static get encapsulation() { return "scoped"; }
@@ -32,7 +32,7 @@ function normalizeValue(value, type) {
32
32
  else {
33
33
  const normalized = Object.assign({}, value);
34
34
  Object.keys(value).forEach(prop => {
35
- if (value[prop]) {
35
+ if (value[prop] !== undefined) {
36
36
  normalized[prop] = normalizeValue(value[prop], type);
37
37
  }
38
38
  else {
@@ -32,7 +32,7 @@ function normalizeValue(value, type) {
32
32
  else {
33
33
  const normalized = Object.assign({}, value);
34
34
  Object.keys(value).forEach(prop => {
35
- if (value[prop]) {
35
+ if (value[prop] !== undefined) {
36
36
  normalized[prop] = normalizeValue(value[prop], type);
37
37
  }
38
38
  else {
@@ -291,7 +291,8 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
291
291
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
292
292
  selectedRecords: undefined,
293
293
  selectionInfo,
294
- selectedRecord: this.dataUnit.getSelectedRecord()
294
+ selectedRecord: this.dataUnit.getSelectedRecord(),
295
+ recordsIsEmpty: this.dataUnit.records.length === 0
295
296
  });
296
297
  }
297
298
  /**
@@ -442,6 +443,7 @@ class DataStateImpl {
442
443
  this.hasPrevious = datastate.hasPrevious;
443
444
  this.selectionInfo = datastate.selectionInfo;
444
445
  this.selectedRecord = datastate.selectedRecord;
446
+ this.recordsIsEmpty = datastate.recordsIsEmpty;
445
447
  }
446
448
  get selectedRecords() {
447
449
  var _a;
@@ -257,6 +257,12 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
257
257
  this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
258
258
  this._dataState = evt.detail;
259
259
  });
260
+ this._snkDataUnit.addEventListener("cancelEdition", () => {
261
+ var _a;
262
+ if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
263
+ this._dataUnit.clearSelection();
264
+ }
265
+ });
260
266
  break;
261
267
  }
262
268
  parent = parent.parentElement;
@@ -296,7 +296,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
296
296
  this.dataState = Object.assign({}, evt.detail);
297
297
  }
298
298
  getTaskBarDisabledButtons() {
299
- var _a, _b;
299
+ var _a, _b, _c, _d;
300
300
  const disabledButtons = [];
301
301
  if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasNext)) {
302
302
  disabledButtons.push(TaskbarElement.NEXT);
@@ -304,11 +304,21 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
304
304
  if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasPrevious)) {
305
305
  disabledButtons.push(TaskbarElement.PREVIOUS);
306
306
  }
307
+ if ((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.isEmpty()) {
308
+ disabledButtons.push(TaskbarElement.FORM_MODE);
309
+ }
307
310
  return disabledButtons;
308
311
  }
312
+ handleCancelEdit() {
313
+ var _a;
314
+ if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
315
+ this.goToView(VIEW_MODE.GRID);
316
+ this.dataUnit.clearSelection();
317
+ }
318
+ }
309
319
  render() {
310
320
  var _a;
311
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
321
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
312
322
  }
313
323
  get _element() { return this; }
314
324
  static get watchers() { return {
@@ -1,7 +1,7 @@
1
1
  import { ApplicationContext } from '@sankhyalabs/core';
2
2
  import { F as FormConfigFetcher } from './form-config-fetcher-533b895e.js';
3
3
  import { R as ResourceFetcher } from './resource-fetcher-0f20a072.js';
4
- import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-790283d8.js';
4
+ import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-abfc2aef.js';
5
5
  import { d as dist, D as DataFetcher } from './DataFetcher-fddeb917.js';
6
6
 
7
7
  class GridConfigFetcher extends ResourceFetcher {
@@ -1,4 +1,4 @@
1
- import { C as ConfigStorage } from './ConfigStorage-02f17a26.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-ed0b8f12.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
3
  import { F as FormConfigFetcher } from './form-config-fetcher-533b895e.js';
4
4
 
@@ -32,7 +32,7 @@ function normalizeValue(value, type) {
32
32
  else {
33
33
  const normalized = Object.assign({}, value);
34
34
  Object.keys(value).forEach(prop => {
35
- if (value[prop]) {
35
+ if (value[prop] !== undefined) {
36
36
  normalized[prop] = normalizeValue(value[prop], type);
37
37
  }
38
38
  else {
@@ -3,13 +3,13 @@ import { WaitingChangeException, WarningException, ErrorException, ObjectUtils,
3
3
  import { d as dist, D as DataFetcher, U as UrlUtils } from './DataFetcher-fddeb917.js';
4
4
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
5
5
  import { P as PesquisaFetcher } from './pesquisa-fetcher-4a702655.js';
6
- import { G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage-02f17a26.js';
6
+ import { G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage-ed0b8f12.js';
7
7
  import { D as DataUnitFetcher } from './dataunit-fetcher-66f42154.js';
8
8
  import { R as ResourceFetcher } from './resource-fetcher-0f20a072.js';
9
9
  import { S as SnkMessageBuilder } from './SnkMessageBuilder-5be56185.js';
10
10
  import './_commonjsHelpers-9943807e.js';
11
11
  import './form-config-fetcher-533b895e.js';
12
- import './filter-bar-config-fetcher-790283d8.js';
12
+ import './filter-bar-config-fetcher-abfc2aef.js';
13
13
  import './filter-item-type.enum-5028ed3f.js';
14
14
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
15
15
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
@@ -4,7 +4,7 @@ import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/
4
4
  import { D as DataExporterOption, a as DataExporterFormat, b as DataExporterType } from './index-1564817d.js';
5
5
  import { R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-3644f1b6.js';
6
6
  import { D as DataFetcher } from './DataFetcher-fddeb917.js';
7
- import { S as SnkDataUnit } from './snk-data-unit-b9b4bb5f.js';
7
+ import { S as SnkDataUnit } from './snk-data-unit-d44b6bc0.js';
8
8
  import './_commonjsHelpers-9943807e.js';
9
9
  import './SnkMessageBuilder-5be56185.js';
10
10
 
@@ -290,7 +290,8 @@ const SnkDataUnit = class {
290
290
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
291
291
  selectedRecords: undefined,
292
292
  selectionInfo,
293
- selectedRecord: this.dataUnit.getSelectedRecord()
293
+ selectedRecord: this.dataUnit.getSelectedRecord(),
294
+ recordsIsEmpty: this.dataUnit.records.length === 0
294
295
  });
295
296
  }
296
297
  /**
@@ -428,6 +429,7 @@ class DataStateImpl {
428
429
  this.hasPrevious = datastate.hasPrevious;
429
430
  this.selectionInfo = datastate.selectionInfo;
430
431
  this.selectedRecord = datastate.selectedRecord;
432
+ this.recordsIsEmpty = datastate.recordsIsEmpty;
431
433
  }
432
434
  get selectedRecords() {
433
435
  var _a;
@@ -1,4 +1,4 @@
1
- export { S as snk_data_unit } from './snk-data-unit-b9b4bb5f.js';
1
+ export { S as snk_data_unit } from './snk-data-unit-d44b6bc0.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import '@sankhyalabs/ezui/dist/collection/utils';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host } from './index-a7d3d3f1.js';
2
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-cd9e6cab.js';
2
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-f069d10c.js';
3
3
  import { FormMetadata, buildFormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
4
4
  import './DataFetcher-fddeb917.js';
5
5
  import './pesquisa-fetcher-4a702655.js';
@@ -7,12 +7,12 @@ import '@sankhyalabs/core';
7
7
  import { P as PresentationMode } from './index-1564817d.js';
8
8
  import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
9
9
  import { c as VIEW_MODE } from './constants-3644f1b6.js';
10
- import { S as SnkGuidesViewer } from './snk-guides-viewer-579c70cc.js';
10
+ import { S as SnkGuidesViewer } from './snk-guides-viewer-9b7798ec.js';
11
11
  import { S as SnkMessageBuilder } from './SnkMessageBuilder-5be56185.js';
12
- import './ConfigStorage-02f17a26.js';
12
+ import './ConfigStorage-ed0b8f12.js';
13
13
  import './form-config-fetcher-533b895e.js';
14
14
  import './resource-fetcher-0f20a072.js';
15
- import './filter-bar-config-fetcher-790283d8.js';
15
+ import './filter-bar-config-fetcher-abfc2aef.js';
16
16
  import './filter-item-type.enum-5028ed3f.js';
17
17
  import './_commonjsHelpers-9943807e.js';
18
18
  import './index-bdf75557.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataType, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
- import { C as ConfigStorage } from './ConfigStorage-02f17a26.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-ed0b8f12.js';
5
5
  import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
6
6
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
7
7
  import { F as FilterOperand } from './index-ae591a44.js';
@@ -11,7 +11,7 @@ import './form-config-fetcher-533b895e.js';
11
11
  import './DataFetcher-fddeb917.js';
12
12
  import './_commonjsHelpers-9943807e.js';
13
13
  import './resource-fetcher-0f20a072.js';
14
- import './filter-bar-config-fetcher-790283d8.js';
14
+ import './filter-bar-config-fetcher-abfc2aef.js';
15
15
 
16
16
  const buildFilter = (item) => {
17
17
  switch (item.type) {