@sankhyalabs/sankhyablocks 8.16.0-dev.112 → 8.16.0-dev.114

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 (146) hide show
  1. package/dist/cjs/{ConfigStorage-df09fb78.js → ConfigStorage-48ba265b.js} +45 -17
  2. package/dist/cjs/{PersonalizedFilterUtils-0184ffbb.js → PersonalizedFilterUtils-7259cf65.js} +1 -1
  3. package/dist/cjs/{SnkFormConfigManager-45a8d7b7.js → SnkFormConfigManager-ce7b0951.js} +1 -1
  4. package/dist/cjs/{SnkMessageBuilder-9deeae08.js → SnkMessageBuilder-21cc7f09.js} +12 -1
  5. package/dist/cjs/default-filters-a09bf82b.js +8 -0
  6. package/dist/cjs/{filter-type.enum-b14ce507.js → filter-type.enum-2bb46d2a.js} +1 -0
  7. package/dist/cjs/{index-c5771aba.js → index-62760a9c.js} +5 -0
  8. package/dist/cjs/index-f9e81701.js +4 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  11. package/dist/cjs/snk-actions-button_8.cjs.entry.js +1 -1
  12. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-config-options_3.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
  15. package/dist/cjs/{snk-data-unit-57916de4.js → snk-data-unit-7913a033.js} +1 -1
  16. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  17. package/dist/cjs/snk-default-filter.cjs.entry.js +77 -0
  18. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  19. package/dist/cjs/snk-expression-group_2.cjs.entry.js +8 -6
  20. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +4 -3
  21. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +81 -27
  22. package/dist/cjs/snk-filter-detail.cjs.entry.js +2 -2
  23. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
  25. package/dist/cjs/snk-grid.cjs.entry.js +2 -2
  26. package/dist/cjs/{snk-guides-viewer-d33379cd.js → snk-guides-viewer-450baf6a.js} +1 -1
  27. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  28. package/dist/cjs/snk-personalized-filter.cjs.entry.js +51 -16
  29. package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -2
  30. package/dist/collection/collection-manifest.json +1 -0
  31. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +80 -12
  32. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-default-filter/snk-default-filter.css +34 -0
  33. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-default-filter/snk-default-filter.js +142 -0
  34. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +24 -15
  35. package/dist/collection/components/snk-filter-bar/types/default-filters.js +6 -0
  36. package/dist/collection/components/snk-filter-bar/types/filter-type.enum.js +1 -0
  37. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +4 -4
  38. package/dist/collection/components/snk-grid/snk-grid.css +1 -0
  39. package/dist/collection/components/snk-personalized-filter/interfaces/index.js +5 -0
  40. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +67 -13
  41. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.css +3 -0
  42. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +20 -1
  43. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +22 -3
  44. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.js +20 -1
  45. package/dist/collection/lib/configs/ConfigStorage.js +16 -8
  46. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +29 -9
  47. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +6 -0
  48. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +6 -1
  49. package/dist/components/ConfigStorage.js +45 -17
  50. package/dist/components/PersonalizedFilterUtils.js +6 -1
  51. package/dist/components/SnkMessageBuilder.js +12 -1
  52. package/dist/components/index.d.ts +1 -0
  53. package/dist/components/index.js +1 -0
  54. package/dist/components/snk-default-filter.d.ts +11 -0
  55. package/dist/components/snk-default-filter.js +6 -0
  56. package/dist/components/snk-default-filter2.js +97 -0
  57. package/dist/components/snk-expression-group2.js +4 -2
  58. package/dist/components/snk-expression-item2.js +5 -3
  59. package/dist/components/snk-filter-assistent-mode2.js +4 -2
  60. package/dist/components/snk-filter-bar2.js +28 -19
  61. package/dist/components/snk-filter-modal-item2.js +1 -0
  62. package/dist/components/snk-filter-modal.js +59 -8
  63. package/dist/components/snk-grid2.js +1 -1
  64. package/dist/components/snk-personalized-filter2.js +50 -14
  65. package/dist/esm/{ConfigStorage-71e6766f.js → ConfigStorage-79b9e180.js} +45 -17
  66. package/dist/esm/{PersonalizedFilterUtils-e2b38ef7.js → PersonalizedFilterUtils-2db38ff2.js} +1 -1
  67. package/dist/esm/{SnkFormConfigManager-be490a33.js → SnkFormConfigManager-327dfdd4.js} +1 -1
  68. package/dist/esm/{SnkMessageBuilder-2dbd8fa2.js → SnkMessageBuilder-0f112c19.js} +12 -1
  69. package/dist/esm/default-filters-50105e43.js +8 -0
  70. package/dist/esm/{filter-type.enum-a80c1b6b.js → filter-type.enum-f6a8fe23.js} +1 -0
  71. package/dist/esm/{index-ae591a44.js → index-8acbae97.js} +6 -1
  72. package/dist/esm/index-a7d3d3f1.js +4 -0
  73. package/dist/esm/loader.js +1 -1
  74. package/dist/esm/sankhyablocks.js +1 -1
  75. package/dist/esm/snk-actions-button_8.entry.js +1 -1
  76. package/dist/esm/snk-application.entry.js +2 -2
  77. package/dist/esm/snk-config-options_3.entry.js +2 -2
  78. package/dist/esm/snk-data-exporter.entry.js +2 -2
  79. package/dist/esm/{snk-data-unit-65c9dd1a.js → snk-data-unit-a95dc9fe.js} +1 -1
  80. package/dist/esm/snk-data-unit.entry.js +2 -2
  81. package/dist/esm/snk-default-filter.entry.js +73 -0
  82. package/dist/esm/snk-detail-view.entry.js +4 -4
  83. package/dist/esm/snk-expression-group_2.entry.js +8 -6
  84. package/dist/esm/snk-filter-advanced-mode_2.entry.js +4 -3
  85. package/dist/esm/snk-filter-bar_4.entry.js +81 -27
  86. package/dist/esm/snk-filter-detail.entry.js +2 -2
  87. package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
  88. package/dist/esm/snk-filter-modal-item.entry.js +2 -2
  89. package/dist/esm/snk-grid.entry.js +2 -2
  90. package/dist/esm/{snk-guides-viewer-72953334.js → snk-guides-viewer-ebb40908.js} +1 -1
  91. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  92. package/dist/esm/snk-personalized-filter.entry.js +51 -16
  93. package/dist/esm/snk-simple-crud.entry.js +2 -2
  94. package/dist/sankhyablocks/{p-165cde3b.entry.js → p-043bef5f.entry.js} +1 -1
  95. package/dist/sankhyablocks/{p-ebdb9d89.js → p-088d7e7b.js} +1 -1
  96. package/dist/sankhyablocks/p-13a0ead0.entry.js +1 -0
  97. package/dist/sankhyablocks/{p-52d10014.entry.js → p-34f7a3ab.entry.js} +1 -1
  98. package/dist/sankhyablocks/{p-ddf93f36.entry.js → p-39f3b02d.entry.js} +1 -1
  99. package/dist/sankhyablocks/p-5182513e.entry.js +1 -0
  100. package/dist/sankhyablocks/p-6416975c.js +56 -0
  101. package/dist/sankhyablocks/p-6a4b21dd.js +1 -0
  102. package/dist/sankhyablocks/{p-a4ebeec4.entry.js → p-6a5f061b.entry.js} +1 -1
  103. package/dist/sankhyablocks/{p-54a5d52a.entry.js → p-70da6817.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-2f7e2251.entry.js → p-794840bd.entry.js} +1 -1
  105. package/dist/sankhyablocks/p-79b3cccc.js +1 -0
  106. package/dist/sankhyablocks/{p-bc101064.entry.js → p-7effe55f.entry.js} +1 -1
  107. package/dist/sankhyablocks/p-814d99ec.entry.js +1 -0
  108. package/dist/sankhyablocks/p-84345e7a.js +1 -0
  109. package/dist/sankhyablocks/{p-057fad05.js → p-988afe78.js} +1 -1
  110. package/dist/sankhyablocks/p-a9813a81.entry.js +1 -0
  111. package/dist/sankhyablocks/{p-3372178e.entry.js → p-ab12216c.entry.js} +1 -1
  112. package/dist/sankhyablocks/p-b568c1d4.js +1 -0
  113. package/dist/sankhyablocks/{p-c9675d64.js → p-bd6a6203.js} +1 -1
  114. package/dist/sankhyablocks/{p-7beeabc1.entry.js → p-bd7ccf60.entry.js} +1 -1
  115. package/dist/sankhyablocks/{p-0fadb620.js → p-c7492861.js} +1 -1
  116. package/dist/sankhyablocks/p-d257ff20.entry.js +1 -0
  117. package/dist/sankhyablocks/{p-8002dcd0.entry.js → p-def1fe2d.entry.js} +1 -1
  118. package/dist/sankhyablocks/{p-5ffa0493.entry.js → p-e3c71e43.entry.js} +1 -1
  119. package/dist/sankhyablocks/{p-b8d649dd.entry.js → p-e6d90f89.entry.js} +1 -1
  120. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  121. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +16 -4
  122. package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-default-filter/snk-default-filter.d.ts +27 -0
  123. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -3
  124. package/dist/types/components/snk-filter-bar/types/default-filters.d.ts +5 -0
  125. package/dist/types/components/snk-filter-bar/types/filter-type.enum.d.ts +2 -1
  126. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -3
  127. package/dist/types/components/snk-personalized-filter/interfaces/index.d.ts +4 -0
  128. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +7 -1
  129. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +4 -0
  130. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +4 -0
  131. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.d.ts +4 -0
  132. package/dist/types/components.d.ts +81 -6
  133. package/dist/types/lib/configs/ConfigStorage.d.ts +4 -2
  134. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +8 -4
  135. package/package.json +1 -1
  136. package/react/components.d.ts +1 -0
  137. package/react/components.js +1 -0
  138. package/react/components.js.map +1 -1
  139. package/dist/sankhyablocks/p-03b68a74.js +0 -56
  140. package/dist/sankhyablocks/p-3ab6df3d.entry.js +0 -1
  141. package/dist/sankhyablocks/p-4689c2e6.js +0 -1
  142. package/dist/sankhyablocks/p-490b75b5.entry.js +0 -1
  143. package/dist/sankhyablocks/p-60137b7a.entry.js +0 -1
  144. package/dist/sankhyablocks/p-933c0c0b.js +0 -1
  145. package/dist/sankhyablocks/p-9d3a025a.entry.js +0 -1
  146. package/dist/sankhyablocks/p-d9804798.js +0 -1
@@ -1,15 +1,16 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext, LockManager, LockManagerOperation, FloatingManager, DateUtils, MaskFormatter, ArrayUtils } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
- import { C as ConfigStorage } from './ConfigStorage-71e6766f.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-79b9e180.js';
5
5
  import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
6
6
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
7
- import { F as FilterOperand } from './index-ae591a44.js';
7
+ import { F as FilterOperand, D as DefaultFilter } from './index-8acbae97.js';
8
8
  import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
9
9
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
10
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
10
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
11
11
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
12
- import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
12
+ import { F as FilterType } from './filter-type.enum-f6a8fe23.js';
13
+ import { A as ActionDefaultFilter } from './default-filters-50105e43.js';
13
14
  import './form-config-fetcher-fa208a6c.js';
14
15
  import './DataFetcher-88e56266.js';
15
16
  import './PrintUtils-3e4ff0f5.js';
@@ -229,16 +230,16 @@ class SnkFilterModalFactory {
229
230
  filterModal.getMessage = this._getMessage.bind(this);
230
231
  filterModal.applyFilters = this.applyFilters.bind(this);
231
232
  filterModal.closeModal = () => this._closeModal();
232
- filterModal.addPersonalizedFilter = () => this._addPersonalizedFilterFn();
233
- filterModal.editPersonalizedFilter = (id) => this._editPersonalizedFilterFn(id);
234
- filterModal.deletePersonalizedFilter = (filter, configName) => this._onDeletePersonalizedFilter(filter, configName);
233
+ filterModal.addPersonalizedFilter = (isDefault) => this._addPersonalizedFilterFn(isDefault);
234
+ filterModal.editPersonalizedFilter = (id, isDefault) => this._editPersonalizedFilterFn(id, isDefault);
235
+ filterModal.deletePersonalizedFilter = (filter, configName, isDefault) => this._onDeletePersonalizedFilter(filter, configName, isDefault);
235
236
  return filterModal;
236
237
  }
237
238
  async showModal() {
238
239
  const filterModal = this.buildFilterModal();
239
240
  const modalProps = {
240
241
  content: filterModal,
241
- position: 'left',
242
+ position: 'right',
242
243
  heightMode: 'full',
243
244
  closeOutsideClick: false,
244
245
  useScrimLight: true
@@ -261,6 +262,7 @@ const SnkFilterBar = class {
261
262
  this._configUpdated = false;
262
263
  this._firstLoad = true;
263
264
  this._pendingVariables = false;
265
+ this._isDefaultFilter = false;
264
266
  this._customfiltersToBeUpdated = [];
265
267
  this._resolveLoading = undefined;
266
268
  this._calculateSortIndex = (item) => {
@@ -493,10 +495,10 @@ const SnkFilterBar = class {
493
495
  }
494
496
  return this.filterActiveFilter(item) && (item.groupedItems || item.value != undefined);
495
497
  }
496
- registryFilterProvider() {
498
+ async registryFilterProvider() {
497
499
  this.dataUnit.addFilterProvider(this);
498
500
  if (this.filterConfig) {
499
- this.doLoadData();
501
+ await this.doLoadData();
500
502
  }
501
503
  }
502
504
  itemFocused(selectedItem) {
@@ -585,7 +587,7 @@ const SnkFilterBar = class {
585
587
  this._application.isUserSup().then(value => this.allowDefault = value);
586
588
  }
587
589
  addFilterBarLegacyConfigName() {
588
- if (this.filterBarLegacyConfigName && this.configName) {
590
+ if (this.filterBarLegacyConfigName) {
589
591
  ConfigStorage.addFilterBarLegacyConfig(this.configName, this.filterBarLegacyConfigName);
590
592
  }
591
593
  }
@@ -608,7 +610,7 @@ const SnkFilterBar = class {
608
610
  throw new ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), e);
609
611
  }
610
612
  }
611
- attachDataUnit() {
613
+ async attachDataUnit() {
612
614
  if (this.dataUnit == undefined) {
613
615
  let parent = this._element.parentElement;
614
616
  while (parent) {
@@ -616,12 +618,12 @@ const SnkFilterBar = class {
616
618
  const snkDataUnit = parent;
617
619
  this.dataUnit = snkDataUnit.dataUnit;
618
620
  if (this.dataUnit) {
619
- this.registryFilterProvider();
621
+ await this.registryFilterProvider();
620
622
  }
621
623
  else {
622
- snkDataUnit.addEventListener("dataUnitReady", (evt) => {
624
+ snkDataUnit.addEventListener("dataUnitReady", async (evt) => {
623
625
  this.dataUnit = evt.detail;
624
- this.registryFilterProvider();
626
+ await this.registryFilterProvider();
625
627
  });
626
628
  }
627
629
  break;
@@ -630,7 +632,7 @@ const SnkFilterBar = class {
630
632
  parent = parent.parentElement;
631
633
  }
632
634
  else {
633
- this.registryFilterProvider();
635
+ await this.registryFilterProvider();
634
636
  }
635
637
  }
636
638
  /**
@@ -658,27 +660,34 @@ const SnkFilterBar = class {
658
660
  onComplete: callbackOnApplyFilter,
659
661
  disablePersonalizedFilter: this.disablePersonalizedFilter,
660
662
  getMessage: (key, props) => this.getMessage(key, props),
661
- onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
662
- onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id),
663
- onDeletePersonalizedFilter: (filter, configName) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName),
663
+ onAddPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault),
664
+ onEditPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault),
665
+ onDeletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault),
664
666
  };
665
667
  this._filterModalFactory = new SnkFilterModalFactory(factoryParams);
666
668
  await this._filterModalFactory.showModal();
667
669
  }
668
- addPersonalizedFilter() {
670
+ addPersonalizedFilter(isDefault = false) {
669
671
  this._filterModalFactory.closeModal();
672
+ this._isDefaultFilter = isDefault;
670
673
  this.personalizedFilterId = undefined;
671
674
  this.showPersonalizedFilter = true;
672
675
  window.requestAnimationFrame(() => {
673
676
  this._elPersonalizedFilter.createPersonalizedFilter();
674
677
  });
675
678
  }
676
- editPersonalizedFilter(id) {
679
+ editPersonalizedFilter(id, isDefault = false) {
677
680
  this._filterModalFactory.closeModal();
681
+ this._isDefaultFilter = isDefault;
678
682
  this.showPersonalizedFilter = true;
679
683
  this.personalizedFilterId = id;
680
684
  }
681
- deletePersonalizedFilter(filter, filterItemType, configName) {
685
+ deletePersonalizedFilter(filter, filterItemType, configName, isDefault = false) {
686
+ if (isDefault) {
687
+ ConfigStorage.removeDefaultFilter(filter, this.resourceID, configName);
688
+ this._isDefaultFilter = false;
689
+ return;
690
+ }
682
691
  if (filterItemType === FilterItemType.PERSONALIZED) {
683
692
  ConfigStorage.removePersonalizedFilter(filter, this.resourceID, configName);
684
693
  }
@@ -696,6 +705,7 @@ const SnkFilterBar = class {
696
705
  hidePersonalizedFilter() {
697
706
  this.personalizedFilterId = undefined;
698
707
  this.showPersonalizedFilter = false;
708
+ this._isDefaultFilter = false;
699
709
  }
700
710
  async componentWillLoad() {
701
711
  var _a;
@@ -726,7 +736,7 @@ const SnkFilterBar = class {
726
736
  return undefined;
727
737
  }
728
738
  if (this.showPersonalizedFilter) {
729
- return h("snk-personalized-filter", { class: "filter-bar__personalized-filter", filterId: this.personalizedFilterId, ref: (el) => this._elPersonalizedFilter = el, onEzCancel: () => this.handleHidePersonalizedFilter(false), onEzAfterSave: () => this.handleHidePersonalizedFilter(true), entityUri: this.dataUnit.name, configName: this.configName, resourceID: this.resourceID });
739
+ return h("snk-personalized-filter", { class: "filter-bar__personalized-filter", filterId: this.personalizedFilterId, ref: (el) => this._elPersonalizedFilter = el, isDefaultFilter: this._isDefaultFilter, onEzCancel: () => this.handleHidePersonalizedFilter(false), onEzAfterSave: () => this.handleHidePersonalizedFilter(true), entityUri: this.dataUnit.name, configName: this.configName, resourceID: this.resourceID });
730
740
  }
731
741
  if (this.mode !== "regular") {
732
742
  return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }))));
@@ -1206,6 +1216,7 @@ const SnkFilterModal = class {
1206
1216
  this.editPersonalizedFilter = undefined;
1207
1217
  this.deletePersonalizedFilter = undefined;
1208
1218
  this.filtersToDelete = [];
1219
+ this.filterDefaultToDelete = undefined;
1209
1220
  this.disablePersonalizedFilter = undefined;
1210
1221
  }
1211
1222
  /**
@@ -1264,8 +1275,12 @@ const SnkFilterModal = class {
1264
1275
  return copy;
1265
1276
  });
1266
1277
  }
1278
+ hasChangeToSave() {
1279
+ const hasChangesPersonalizedFilters = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this._originalFilterConfig);
1280
+ return hasChangesPersonalizedFilters;
1281
+ }
1267
1282
  handleClose() {
1268
- const hasChangesToSave = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this._originalFilterConfig);
1283
+ const hasChangesToSave = this.hasChangeToSave();
1269
1284
  if (!hasChangesToSave) {
1270
1285
  this.closeModal();
1271
1286
  return;
@@ -1276,7 +1291,7 @@ const SnkFilterModal = class {
1276
1291
  });
1277
1292
  }
1278
1293
  handleApplyFilters() {
1279
- const filterPersonalized = this.filters.find(filter => filter.filterType === FilterType.CUSTOM_FILTER);
1294
+ const filterPersonalized = this.filters.find(filter => filter.filterType === FilterType.CUSTOM_FILTER || filter.filterType === FilterType.DEFAULT_FILTER);
1280
1295
  if (this.isValidCustomFilter(filterPersonalized)) {
1281
1296
  this.applyFilters(this.filters);
1282
1297
  }
@@ -1286,6 +1301,11 @@ const SnkFilterModal = class {
1286
1301
  });
1287
1302
  this.filtersToDelete = [];
1288
1303
  }
1304
+ if (this.filterDefaultToDelete) {
1305
+ this.deletePersonalizedFilter(this.filterDefaultToDelete, this.configName, true);
1306
+ this._defaultFilter = undefined;
1307
+ this.filterDefaultToDelete = undefined;
1308
+ }
1289
1309
  }
1290
1310
  isValidCustomFilter(filterPersonalized) {
1291
1311
  const isValid = PersonalizedFilterUtils.validateVariableValues(filterPersonalized);
@@ -1410,6 +1430,39 @@ const SnkFilterModal = class {
1410
1430
  const lines = this.mountFiltersLines(listItems);
1411
1431
  return (h("ez-collapsible-box", { class: "snk-filter-modal__collapsible-box", headerSize: "medium", value: true, label: label }, !!appliedFilters && (h("ez-badge", { class: "ez-badge--primary-subtle", slot: "rightSlot", label: appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.toString() })), h("div", { class: "ez-row snk-filter-modal__rendered-items" }, lines.map(this.renderFilterLine.bind(this))), shouldRenderFooter && (h("div", { class: "ez-flex ez-flex--justify-end grow" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: "Limpar", onClick: () => isSingleItem ? this.handleClearSigleFilter(listItems[0]) : this.handleClearFilterList(listItems) })))));
1412
1432
  }
1433
+ handleDeleteFilter() {
1434
+ this._application.confirm(this.getMessage('snkPersonalizedFilter.deleteConfirm.title'), this.getMessage('snkPersonalizedFilter.info.deleteDefaultFilterConfirm'), "alert-circle-inverted", "critical").then((actionConfirmed) => {
1435
+ if (!actionConfirmed) {
1436
+ return;
1437
+ }
1438
+ this.filterDefaultToDelete = this._defaultFilter;
1439
+ this.filters = this.filters.filter(filter => filter.id !== FilterType.DEFAULT_FILTER);
1440
+ });
1441
+ }
1442
+ handleActionSelectedDefaultFilter({ detail: action }) {
1443
+ switch (action) {
1444
+ case ActionDefaultFilter.CREATE:
1445
+ this.addPersonalizedFilter(true);
1446
+ break;
1447
+ case ActionDefaultFilter.EDIT:
1448
+ this.editPersonalizedFilter(this._defaultFilter.id, true);
1449
+ break;
1450
+ case ActionDefaultFilter.REMOVE:
1451
+ this.handleDeleteFilter();
1452
+ break;
1453
+ }
1454
+ }
1455
+ getCustomFilter(filters) {
1456
+ const customFilters = filters.filter((filter) => filter.filterType === FilterType.CUSTOM_FILTER);
1457
+ return customFilters;
1458
+ }
1459
+ getDefaultFilter(filters) {
1460
+ const defaultFilter = filters.find((item) => item.id === DefaultFilter.id);
1461
+ return defaultFilter;
1462
+ }
1463
+ componentWillLoad() {
1464
+ this._application = ApplicationContext.getContextValue('__SNK__APPLICATION__');
1465
+ }
1413
1466
  componentWillRender() {
1414
1467
  this._modalTitle = this.getCustomMessage('title');
1415
1468
  this._okButtonLabel = this.getCustomMessage('okButtonLabel');
@@ -1420,10 +1473,11 @@ const SnkFilterModal = class {
1420
1473
  this._originalFilterConfig = this.filters;
1421
1474
  }
1422
1475
  render() {
1423
- const customFilters = this.filters.filter(filter => filter.filterType === FilterType.CUSTOM_FILTER);
1476
+ this._defaultFilter = this.getDefaultFilter(this.filters);
1477
+ const customFilters = this.getCustomFilter(this.filters);
1424
1478
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
1425
1479
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
1426
- return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
1480
+ return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, h("snk-default-filter", { getMessage: this.getCustomMessage.bind(this), hasDefaultFilter: !!this._defaultFilter, onActionSelected: this.handleActionSelectedDefaultFilter.bind(this) }), !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
1427
1481
  }
1428
1482
  };
1429
1483
  SnkFilterModal.style = snkFilterModalCss;
@@ -3,8 +3,8 @@ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
5
5
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
6
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
7
- import './index-ae591a44.js';
6
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
7
+ import './index-8acbae97.js';
8
8
 
9
9
  const SnkFilterDetail = class {
10
10
  constructor(hostRef) {
@@ -2,8 +2,8 @@ import { h, r as registerInstance, c as createEvent, g as getElement } from './i
2
2
  import { S as SelectedItemType } from './index-620ac460.js';
3
3
  import { UserInterface, JSUtils, ElementIDUtils, ApplicationContext, StringUtils, DataType } from '@sankhyalabs/core';
4
4
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
5
- import { b as FilterConfigType, c as FilterEntities, d as FilterUserConfigTypes } from './index-ae591a44.js';
6
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
5
+ import { b as FilterConfigType, c as FilterEntities, d as FilterUserConfigTypes } from './index-8acbae97.js';
6
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
7
7
  import './filter-item-type.enum-d45e026f.js';
8
8
 
9
9
  const ICON_MODES = {
@@ -2,8 +2,8 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
- import { C as ConfigStorage } from './ConfigStorage-71e6766f.js';
6
- import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-79b9e180.js';
6
+ import { F as FilterType } from './filter-type.enum-f6a8fe23.js';
7
7
  import './form-config-fetcher-fa208a6c.js';
8
8
  import './DataFetcher-88e56266.js';
9
9
  import './PrintUtils-3e4ff0f5.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { KeyboardManager, Action, ElementIDUtils, ApplicationContext, StringUtils } from '@sankhyalabs/core';
3
3
  import { T as TaskbarElement } from './taskbar-elements-f2cb4922.js';
4
- import { C as ConfigStorage } from './ConfigStorage-71e6766f.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-79b9e180.js';
5
5
  import { P as PresentationMode, E as ExporterStrategy } from './index-b40568ff.js';
6
6
  import { T as TaskbarProcessor } from './taskbar-processor-3436124c.js';
7
7
  import { s as store } from './index-bdf75557.js';
@@ -78,7 +78,7 @@ class ServerSideExporterProvider extends CommonsExporter {
78
78
  }
79
79
  }
80
80
 
81
- 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}.snk-grid-container__footer.sc-snk-grid{background-color:var(--background--xlight, #FFF);border-radius:0 0 var(--border--radius-medium) var(--border--radius-medium);box-shadow:var(--shadow--small)}";
81
+ 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);outline:none}.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}.snk-grid-container__footer.sc-snk-grid{background-color:var(--background--xlight, #FFF);border-radius:0 0 var(--border--radius-medium) var(--border--radius-medium);box-shadow:var(--shadow--small)}";
82
82
 
83
83
  const SnkGrid = class {
84
84
  constructor(hostRef) {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ObjectUtils, StringUtils, Action, KeyboardManager, ElementIDUtils } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-be490a33.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-327dfdd4.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import { T as TaskbarProcessor } from './taskbar-processor-3436124c.js';
6
6
  import { T as TaskbarElement } from './taskbar-elements-f2cb4922.js';
@@ -1,8 +1,8 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-72953334.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-ebb40908.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
- import './SnkFormConfigManager-be490a33.js';
5
- import './ConfigStorage-71e6766f.js';
4
+ import './SnkFormConfigManager-327dfdd4.js';
5
+ import './ConfigStorage-79b9e180.js';
6
6
  import './form-config-fetcher-fa208a6c.js';
7
7
  import './DataFetcher-88e56266.js';
8
8
  import './PrintUtils-3e4ff0f5.js';
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ObjectUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
4
- import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-71e6766f.js';
3
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
4
+ import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-79b9e180.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
- import { a as FilterGroupCondition } from './index-ae591a44.js';
6
+ import { a as FilterGroupCondition, D as DefaultFilter } from './index-8acbae97.js';
7
7
  import { s as store } from './index-bdf75557.js';
8
8
  import './filter-item-type.enum-d45e026f.js';
9
9
  import './form-config-fetcher-fa208a6c.js';
@@ -41,6 +41,7 @@ const SnkPersonalizedFilter = class {
41
41
  this.filterId = undefined;
42
42
  this.configName = undefined;
43
43
  this.resourceID = undefined;
44
+ this.isDefaultFilter = false;
44
45
  }
45
46
  /*
46
47
  * Cria um novo filtro se não houver nenhum filtro existente
@@ -73,6 +74,9 @@ const SnkPersonalizedFilter = class {
73
74
  operand: FilterGroupCondition.AND
74
75
  }
75
76
  };
77
+ if (this.isDefaultFilter) {
78
+ this.buildDataDefaultFilter(newPersonalizedFilter);
79
+ }
76
80
  this._originalFilterAssistent = ObjectUtils.copy(newPersonalizedFilter);
77
81
  this._filterAssistent = ObjectUtils.copy(newPersonalizedFilter);
78
82
  }
@@ -80,6 +84,16 @@ const SnkPersonalizedFilter = class {
80
84
  if (newValue == null || oldValue == newValue || this.resourceID == undefined) {
81
85
  return;
82
86
  }
87
+ if (newValue === DefaultFilter.id) {
88
+ ConfigStorage.loadDefaultFilter(newValue, this.resourceID, this.configName)
89
+ .then((resp) => {
90
+ const personalizedFilter = this.applyDefaultValues(resp);
91
+ this._filterAssistent = personalizedFilter;
92
+ this._originalFilterAssistent = ObjectUtils.copy(personalizedFilter);
93
+ this._filterAssistentMode = this._filterAssistent.hasOwnProperty("assistent") && this._filterAssistent.assistent != undefined;
94
+ });
95
+ return;
96
+ }
83
97
  ConfigStorage.loadPersonalizedFilter(newValue, this.resourceID, this.configName)
84
98
  .then((resp) => {
85
99
  const personalizedFilter = this.applyDefaultValues(resp);
@@ -106,20 +120,29 @@ const SnkPersonalizedFilter = class {
106
120
  this._elButtonMode.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, ElementIDUtils.getInternalIDInfo(`${this._filterAssistentMode ? "advancedMode_ezButton" : "assistentMode_ezButton"}`));
107
121
  }
108
122
  }
123
+ buildDataDefaultFilter(data) {
124
+ data.name = DefaultFilter.name;
125
+ data.id = DefaultFilter.id;
126
+ }
109
127
  getMessage(key, params) {
110
128
  return this._application.messagesBuilder.getMessage(key, params);
111
129
  }
112
- saveFilter() {
113
- ConfigStorage.savePersonalizedFilter(this._filterAssistent, this.resourceID, this.configName).then((personalizedFilter) => {
114
- this._elButtonSave.enabled = false;
115
- const messageToken = !!this._filterAssistent.id ? 'confirmEdit' : 'confirmSave';
116
- ApplicationUtils.info(this.getMessage(`snkPersonalizedFilter.${messageToken}.title`), { iconName: "check" });
117
- const updatedFilterAssistent = Object.assign(Object.assign({}, personalizedFilter), this._filterAssistent);
118
- updatedFilterAssistent.parameters = PersonalizedFilterUtils.buildVariableParameters(this._filterAssistent.assistent);
119
- this._originalFilterAssistent = ObjectUtils.copy(updatedFilterAssistent);
120
- this._filterAssistent = ObjectUtils.copy(updatedFilterAssistent);
121
- this.ezAfterSave.emit();
122
- });
130
+ async saveFilter() {
131
+ let response;
132
+ if (this.isDefaultFilter) {
133
+ response = await ConfigStorage.saveDefaultFilter(this._filterAssistent, this.resourceID, this.configName);
134
+ }
135
+ else {
136
+ response = await ConfigStorage.savePersonalizedFilter(this._filterAssistent, this.resourceID, this.configName);
137
+ }
138
+ this._elButtonSave.enabled = false;
139
+ const messageToken = !!this._filterAssistent.id ? 'confirmEdit' : 'confirmSave';
140
+ ApplicationUtils.info(this.getMessage(`snkPersonalizedFilter.${messageToken}.title`), { iconName: "check" });
141
+ const updatedFilterAssistent = Object.assign(Object.assign({}, response), this._filterAssistent);
142
+ updatedFilterAssistent.parameters = PersonalizedFilterUtils.buildVariableParameters(this._filterAssistent.assistent);
143
+ this._originalFilterAssistent = ObjectUtils.copy(updatedFilterAssistent);
144
+ this._filterAssistent = ObjectUtils.copy(updatedFilterAssistent);
145
+ this.ezAfterSave.emit();
123
146
  }
124
147
  removeFilter() {
125
148
  ConfigStorage.removePersonalizedFilter(this._filterAssistent, this.resourceID, this.configName);
@@ -255,7 +278,7 @@ const SnkPersonalizedFilter = class {
255
278
  }
256
279
  buildContainerPersonalizedFilter() {
257
280
  return (h("ez-view-stack", { ref: (ref) => this._viewStackRef = ref }, h("stack-item", null, this._filterAssistentMode &&
258
- h("snk-filter-assistent-mode", { filterAssistent: this._filterAssistent, messagesBuilder: this.messagesBuilder, filterId: this.filterId, entityUri: this.entityUri, application: this._application, onEzChangeFilter: (ev) => this.handleChangeFilterAssistentMode(ev.detail) })), h("stack-item", null, h("snk-filter-advanced-mode", { ref: (ref) => this._elAdvancedMode = ref, filterAssistent: this._filterAssistent, application: this._application, onEzExpressionChange: (ev) => this.handleExpressionChangeAdvancedMode(ev.detail) }))));
281
+ h("snk-filter-assistent-mode", { filterAssistent: this._filterAssistent, messagesBuilder: this.messagesBuilder, filterId: this.filterId, entityUri: this.entityUri, application: this._application, onEzChangeFilter: (ev) => this.handleChangeFilterAssistentMode(ev.detail), isDefaultFilter: this.isDefaultFilter })), h("stack-item", null, h("snk-filter-advanced-mode", { ref: (ref) => this._elAdvancedMode = ref, filterAssistent: this._filterAssistent, application: this._application, onEzExpressionChange: (ev) => this.handleExpressionChangeAdvancedMode(ev.detail) }))));
259
282
  }
260
283
  handleModeChange() {
261
284
  var _a, _b;
@@ -294,12 +317,24 @@ const SnkPersonalizedFilter = class {
294
317
  }
295
318
  }
296
319
  }
320
+ buildTitle() {
321
+ if (this.isDefaultFilter && !this.filterId) {
322
+ return this.getMessage("snkPersonalizedFilter.info.titleCreateDefault");
323
+ }
324
+ if (this.isDefaultFilter && this.filterId) {
325
+ return this.getMessage("snkPersonalizedFilter.info.titleEditDefault");
326
+ }
327
+ if (this.filterId) {
328
+ return this.getMessage("snkPersonalizedFilter.info.titleEdit");
329
+ }
330
+ return this.getMessage("snkPersonalizedFilter.info.titleAdd");
331
+ }
297
332
  render() {
298
333
  var _a, _b, _c, _d;
299
334
  if (!((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent) && this._filterAssistentMode) {
300
335
  return;
301
336
  }
302
- return (h(Host, null, h("div", { class: "snk-personalized-filter" }, h("div", null, h("snk-simple-bar", { label: this.filterId ? this.getMessage("snkPersonalizedFilter.info.titleEdit") : this.getMessage("snkPersonalizedFilter.info.titleAdd"), onExit: () => this.handleCancel() }, h("div", { class: "snk-personalized-filter__header-actions", slot: "rightSlot" }, h("ez-button", { size: "small", label: this.getMessage("snkPersonalizedFilter.info.labelCancel"), onClick: () => this.handleCancel() }), h("ez-button", { size: "small", ref: (el) => this._elButtonSave = el, enabled: false, class: "ez-button--primary", label: this.getMessage("snkPersonalizedFilter.info.labelSave"), onClick: this.handleSave.bind(this) })))), h("div", { class: "ez-box ez-margin-bottom--medium ez-box__main" }, h("div", { class: "ez-box__container" }, h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("div", { class: "ez-flex" }, h("ez-text-input", { class: "ez-padding-right--medium", label: this.getMessage("snkPersonalizedFilter.info.labelNameFilter"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.name, onEzChange: (evt) => this.handleTitleChange(evt.detail) }), this.renderButtonAddField(), h("ez-button", { ref: (el) => this._elButtonMode = el, class: "snk-personalized-filter__button-mode", label: this._filterAssistentMode ? this.getMessage("snkPersonalizedFilter.info.activeModeAdvanced") : this.getMessage("snkPersonalizedFilter.info.activeModeAssistent"), onClick: () => this.handleModeChange(), "data-tooltip": !(this._filterAssistentMode || ((_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.assistent)) ? this.getMessage("snkPersonalizedFilter.info.tooltipDisabledAssistentMode") : undefined, "data-flow": "bottom", enabled: (!this._filterAssistent.name || Boolean(this._filterAssistentMode || ((_d = this._filterAssistent) === null || _d === void 0 ? void 0 : _d.assistent))) })), this.buildContainerPersonalizedFilter()))))));
337
+ return (h(Host, null, h("div", { class: "snk-personalized-filter" }, h("div", null, h("snk-simple-bar", { label: this.buildTitle(), onExit: () => this.handleCancel() }, h("div", { class: "snk-personalized-filter__header-actions", slot: "rightSlot" }, h("ez-button", { size: "small", label: this.getMessage("snkPersonalizedFilter.info.labelCancel"), onClick: () => this.handleCancel() }), h("ez-button", { size: "small", ref: (el) => this._elButtonSave = el, enabled: false, class: "ez-button--primary", label: this.getMessage("snkPersonalizedFilter.info.labelSave"), onClick: this.handleSave.bind(this) })))), h("div", { class: "ez-box ez-margin-bottom--medium ez-box__main" }, h("div", { class: "ez-box__container" }, h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("div", { class: "ez-flex" }, h("ez-tooltip", { message: this.getMessage("snkPersonalizedFilter.info.textInputDisabled"), active: this.isDefaultFilter }, h("ez-text-input", { class: "ez-padding-right--medium", label: this.getMessage("snkPersonalizedFilter.info.labelNameFilter"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.name, onEzChange: (evt) => this.handleTitleChange(evt.detail), enabled: !this.isDefaultFilter })), this.renderButtonAddField(), h("ez-button", { ref: (el) => this._elButtonMode = el, class: "snk-personalized-filter__button-mode", label: this._filterAssistentMode ? this.getMessage("snkPersonalizedFilter.info.activeModeAdvanced") : this.getMessage("snkPersonalizedFilter.info.activeModeAssistent"), onClick: () => this.handleModeChange(), "data-tooltip": !(this._filterAssistentMode || ((_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.assistent)) ? this.getMessage("snkPersonalizedFilter.info.tooltipDisabledAssistentMode") : undefined, "data-flow": "bottom", enabled: (!this._filterAssistent.name || Boolean(this._filterAssistentMode || ((_d = this._filterAssistent) === null || _d === void 0 ? void 0 : _d.assistent))) })), this.buildContainerPersonalizedFilter()))))));
303
338
  }
304
339
  static get watchers() { return {
305
340
  "filterId": ["loadFilter"]
@@ -13,8 +13,8 @@ import { I as InMemoryLoader } from './dataunit-fetcher-0e025732.js';
13
13
  import './filter-item-type.enum-d45e026f.js';
14
14
  import { F as FormConfigFetcher } from './form-config-fetcher-fa208a6c.js';
15
15
  import { T as TaskbarProcessor } from './taskbar-processor-3436124c.js';
16
- import { C as ConfigStorage } from './ConfigStorage-71e6766f.js';
17
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-be490a33.js';
16
+ import { C as ConfigStorage } from './ConfigStorage-79b9e180.js';
17
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-327dfdd4.js';
18
18
  import { s as store } from './index-bdf75557.js';
19
19
  import './PrintUtils-3e4ff0f5.js';
20
20
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
@@ -1 +1 @@
1
- import{r as t,c as i,h as e,H as s,g as r}from"./p-d2d301a6.js";import{ElementIDUtils as o,ObjectUtils as l}from"@sankhyalabs/core";import{F as a}from"./p-ff1990ad.js";import{E as n}from"./p-1a68fb59.js";import{C as d}from"./p-03b68a74.js";import{F as h}from"./p-d9804798.js";import"./p-601b252b.js";import"./p-fbba7e3d.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";const p=class{constructor(e){t(this,e),this.filterChange=i(this,"filterChange",7),this.editPersonalizedFilter=i(this,"editPersonalizedFilter",7),this.addPersonalizedFilter=i(this,"addPersonalizedFilter",7),this.filterItem=void 0,this.configName=void 0,this.resourceID=void 0}observeFilterItem(t){var i,e;this._editor&&(this._editor.config=t),null===(e=null===(i=this._editor)||void 0===i?void 0:i.reloadList)||void 0===e||e.call(i),this.filterChange.emit(t)}getContentEditorConfig(){const t={presentationMode:n.MODAL};switch(this.filterItem.type){case a.BINARY_SELECT:return{tag:"snk-filter-binary-select",props:t};case a.MULTI_SELECT:return{tag:"snk-filter-multi-select"};case a.PERIOD:return{tag:"snk-filter-period",props:t};case a.SEARCH:return{tag:"snk-filter-search"};case a.NUMBER:return{tag:"snk-filter-number",props:t};case a.PERSONALIZED:return this.buildSnkFilterPersonalizedProps();case a.CHECK_BOX_LIST:return{tag:"snk-filter-checkbox-list",props:t};case a.MULTI_LIST:return{tag:"snk-entity-list",props:{maxHeightList:"640px",rightListSlotBuilder:t=>this.buildRightSlot(t)}}}return{tag:"snk-filter-text"}}buildSnkFilterPersonalizedProps(){return{tag:"snk-personalized-filter-editor",props:{onEditFilter:t=>this.editPersonalizedFilter.emit(t.detail),onAddFilter:()=>this.addPersonalizedFilter.emit()}}}isVisible(t){return!!this.filterItem.visible||void 0!==t}updateFilterValue(t){const i=void 0!==(null==t?void 0:t.value)?t.value:t;this.filterItem=Object.assign(Object.assign({},this.filterItem),null!=this.filterItem.groupedItems?{visible:i>0,value:i,groupedItems:t.items}:{value:this.filterItem.type===(a.SEARCH||a.CHECK_BOX_LIST)?t:i,visible:this.isVisible(i)})}handleDeleteFilter(t,i){i===a.PERSONALIZED&&d.removePersonalizedFilter(t,this.resourceID,this.configName)}componentDidLoad(){if(this._element){o.addIDInfo(this._element);const t=this._element.getAttribute(o.DATA_ELEMENT_ID_ATTRIBUTE_NAME);this._idContentEditor=`${t}_${this.filterItem.id}`}}buildRightSlot(t){return e("ez-icon",{iconName:"delete",onClick:()=>this.removeValueFromConfig(t)})}removeValueFromConfig(t){var i,e,s;const r=null===(e=null===(i=this.filterItem)||void 0===i?void 0:i.value)||void 0===e?void 0:e.findIndex((({id:i})=>i===t.id)),o=l.copy(this.filterItem);null===(s=null==o?void 0:o.value)||void 0===s||s.splice(r,1),this.updateFilterValue(o.value)}canShowDetailModal(){const{CUSTOM_FILTER:t,OTHER_FILTERS:i}=h;return![t,i].includes(this.filterItem.filterType)&&this.filterItem.type!==a.BINARY_SELECT}render(){const{tag:t,props:i}=this.getContentEditorConfig();return e(s,null,e("div",{class:"ez-flex ez-flex--column grow"},this.canShowDetailModal()&&e("div",{class:"col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center"},e("div",{class:"ez-title ez-title--small ez-title--primary grow"},this.filterItem.detailModal)),e(t,Object.assign({ref:t=>this._editor=t,config:this.filterItem,value:this.filterItem.value,onValueChanged:t=>this.updateFilterValue(t.detail),"data-element-id":this._idContentEditor},i))))}get _element(){return r(this)}static get watchers(){return{filterItem:["observeFilterItem"]}}};p.style=".grow{flex-grow:1}.gap{gap:4px}";export{p as snk_filter_modal_item}
1
+ import{r as t,c as i,h as e,H as s,g as r}from"./p-d2d301a6.js";import{ElementIDUtils as o,ObjectUtils as l}from"@sankhyalabs/core";import{F as a}from"./p-ff1990ad.js";import{E as n}from"./p-1a68fb59.js";import{C as d}from"./p-6416975c.js";import{F as h}from"./p-b568c1d4.js";import"./p-601b252b.js";import"./p-fbba7e3d.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";const c=class{constructor(e){t(this,e),this.filterChange=i(this,"filterChange",7),this.editPersonalizedFilter=i(this,"editPersonalizedFilter",7),this.addPersonalizedFilter=i(this,"addPersonalizedFilter",7),this.filterItem=void 0,this.configName=void 0,this.resourceID=void 0}observeFilterItem(t){var i,e;this._editor&&(this._editor.config=t),null===(e=null===(i=this._editor)||void 0===i?void 0:i.reloadList)||void 0===e||e.call(i),this.filterChange.emit(t)}getContentEditorConfig(){const t={presentationMode:n.MODAL};switch(this.filterItem.type){case a.BINARY_SELECT:return{tag:"snk-filter-binary-select",props:t};case a.MULTI_SELECT:return{tag:"snk-filter-multi-select"};case a.PERIOD:return{tag:"snk-filter-period",props:t};case a.SEARCH:return{tag:"snk-filter-search"};case a.NUMBER:return{tag:"snk-filter-number",props:t};case a.PERSONALIZED:return this.buildSnkFilterPersonalizedProps();case a.CHECK_BOX_LIST:return{tag:"snk-filter-checkbox-list",props:t};case a.MULTI_LIST:return{tag:"snk-entity-list",props:{maxHeightList:"640px",rightListSlotBuilder:t=>this.buildRightSlot(t)}}}return{tag:"snk-filter-text"}}buildSnkFilterPersonalizedProps(){return{tag:"snk-personalized-filter-editor",props:{onEditFilter:t=>this.editPersonalizedFilter.emit(t.detail),onAddFilter:()=>this.addPersonalizedFilter.emit()}}}isVisible(t){return!!this.filterItem.visible||void 0!==t}updateFilterValue(t){const i=void 0!==(null==t?void 0:t.value)?t.value:t;this.filterItem=Object.assign(Object.assign({},this.filterItem),null!=this.filterItem.groupedItems?{visible:i>0,value:i,groupedItems:t.items}:{value:this.filterItem.type===(a.SEARCH||a.CHECK_BOX_LIST)?t:i,visible:this.isVisible(i)})}handleDeleteFilter(t,i){i===a.PERSONALIZED&&d.removePersonalizedFilter(t,this.resourceID,this.configName)}componentDidLoad(){if(this._element){o.addIDInfo(this._element);const t=this._element.getAttribute(o.DATA_ELEMENT_ID_ATTRIBUTE_NAME);this._idContentEditor=`${t}_${this.filterItem.id}`}}buildRightSlot(t){return e("ez-icon",{iconName:"delete",onClick:()=>this.removeValueFromConfig(t)})}removeValueFromConfig(t){var i,e,s;const r=null===(e=null===(i=this.filterItem)||void 0===i?void 0:i.value)||void 0===e?void 0:e.findIndex((({id:i})=>i===t.id)),o=l.copy(this.filterItem);null===(s=null==o?void 0:o.value)||void 0===s||s.splice(r,1),this.updateFilterValue(o.value)}canShowDetailModal(){const{CUSTOM_FILTER:t,OTHER_FILTERS:i}=h;return![t,i].includes(this.filterItem.filterType)&&this.filterItem.type!==a.BINARY_SELECT}render(){const{tag:t,props:i}=this.getContentEditorConfig();return e(s,null,e("div",{class:"ez-flex ez-flex--column grow"},this.canShowDetailModal()&&e("div",{class:"col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center"},e("div",{class:"ez-title ez-title--small ez-title--primary grow"},this.filterItem.detailModal)),e(t,Object.assign({ref:t=>this._editor=t,config:this.filterItem,value:this.filterItem.value,onValueChanged:t=>this.updateFilterValue(t.detail),"data-element-id":this._idContentEditor},i))))}get _element(){return r(this)}static get watchers(){return{filterItem:["observeFilterItem"]}}};c.style=".grow{flex-grow:1}.gap{gap:4px}";export{c as snk_filter_modal_item}
@@ -1 +1 @@
1
- import{C as t}from"./p-03b68a74.js";import{ObjectUtils as i,StringUtils as e}from"@sankhyalabs/core";import{F as s}from"./p-601b252b.js";import{c as r}from"./p-9261d8a0.js";class n{constructor(t,i,e,s){this._resourceID=i,this._configName=t,this._onConfigChange=e,this._dataUnit=s}addFormLegacyConfig(i){this._configName&&t.addFormLegacyConfig(this._configName,i)}async loadConfig(){return new Promise((i=>{t.loadFormConfig(this._configName,this._resourceID).then((t=>{t=this.buildFormMetadataUITabs(t),this.setConfig(t),i(t)})).catch((t=>{console.warn(t)}))}))}getEmptyConfig(){return this.buildFormMetadataUITabs({fields:[],emptyConfig:!0},!0)}saveConfig(e){const s=i.copy(e);return new Promise((i=>{t.saveFormConfig(e,this._configName,this._resourceID).then((t=>{this.setConfig(Object.assign(Object.assign({},s),t)),i(Object.assign(Object.assign({},s),t))}))}))}saveCardState(i,e,s){return new Promise((r=>{var n;const l=(null===(n=this._config)||void 0===n?void 0:n.cardsState)||new Map,o=l.get(i);l.set(i,"fixed"===s?this.updateFixSequence(Object.assign(Object.assign({},o),{fixed:e.fixed}),l):Object.assign(Object.assign({},o),{[s]:e[s]})),t.saveCardState(l,this._configName,this._resourceID).then((t=>{this._config=Object.assign(Object.assign({},this._config),{cardsState:l}),r(t)}))}))}updateFixSequence(t,i){let e=-1;return Array.from(i.values()).forEach((i=>{i.fixed||delete t.fixSequence,null!=i.fixSequence&&(e=Math.max(e,i.fixSequence))})),t.fixed?t.fixSequence=e+1:delete t.fixSequence,t}hasConfig(t){var i;const e=null!=t?t:this._config;return!(!e||!(null===(i=e.fields)||void 0===i?void 0:i.length))}getFieldsList(t,i=!1){var e;const s=null===(e=this._config)||void 0===e?void 0:e.fields;return this.hasConfig()&&!i?s.map((({label:t,name:i,readOnly:e,visible:s,required:r,tab:n,group:l})=>{var o;if(null==t){const t=null===(o=this._dataUnit)||void 0===o?void 0:o.getField(i);if(!t)return;return Object.assign(Object.assign({},t),{name:null!=i?i:t.name,readOnly:null!=e?e:t.readOnly,visible:null!=s?s:t.visible,required:null!=r?r:t.required,tab:n,group:l})}return{name:i,label:t,readOnly:e,visible:s,required:r,tab:n,group:l}})).filter((i=>this.isFieldVisible(i,t))):this._dataUnit?this._dataUnit.metadata.fields.filter((i=>this.isFieldVisible(i,t))).map((({label:t,name:i,readOnly:e,visible:s,required:r,properties:n})=>({label:t,name:i,readOnly:e,visible:s,required:r,tab:null==n?void 0:n.UITabName}))):[]}isFieldVisible(t,i){if(void 0===t||!1===t.visible)return!1;if(null==i)return!0;const s=e.replaceAccentuatedCharsLower((t.label||t.name).toLocaleLowerCase()),r=e.replaceAccentuatedCharsLower(i.toLocaleLowerCase());return s.includes(r)}getFormConfig(t,i,e=!1){let s=this.getFieldsList(void 0,e);return i&&(s=s.filter((i=>{if(t){const e=t.getField(i.name);if(e&&e.readOnly)return!1}return!i.readOnly}))),Object.assign(Object.assign({},this._config),{fields:s})}setConfig(t){this.isLoaded=!0;const{cardsState:i,summary:e,defaultVars:s}=this._config||{};this._config=Object.assign({},t),i&&(this._config.cardsState=i),e&&(this._config.summary=e),s&&(this._config.defaultVars=s),this._onConfigChange&&this._onConfigChange(Object.assign({},this._config))}getConfig(t,i){return this.getFormConfig(t,null==i||i)}getFormConfigFetcher(){return null==this._formConfigFetcher&&(this._formConfigFetcher=new s),this._formConfigFetcher}async fetchUserAvailableConfigs(){return null!=this._configName?Promise.resolve(void 0):this.getFormConfigFetcher().fetchUserAvailableConfigs(this._configName,this._resourceID)}async fetchLegacyConfig(){return this.getFormConfigFetcher().fetchLegacyConfig(this._configName,this._resourceID)}async fetchDefaultConfig(){return this.getFormConfigFetcher().fetchDefaultConfig(this._configName,this._resourceID)}parseObjectList(t){return t?Array.isArray(t)?t:[t]:[]}buildFormMetadataUITabs(t,i=!1){var e;const s=this.hasConfig(t);if(!i&&(!this._dataUnit||s))return t;(t=this.getFormConfig(this._dataUnit,!1,!0)).tabs=this.parseObjectList(t.tabs),t.emptyConfig=!1,t.defaultConfiguration=!0;const n=this._dataUnit.metadata.fields;for(const i of n){const s=t.fields.find((t=>t.name===i.name)),n=null===(e=i.properties)||void 0===e?void 0:e.UITabName;n&&n!==r.main&&(t.tabs.some((t=>t.label===n))||t.tabs.push({label:n,name:n,order:0,visible:!0}),s&&(s.tab=n))}return t}}export{n as S}
1
+ import{C as t}from"./p-6416975c.js";import{ObjectUtils as i,StringUtils as e}from"@sankhyalabs/core";import{F as s}from"./p-601b252b.js";import{c as r}from"./p-9261d8a0.js";class n{constructor(t,i,e,s){this._resourceID=i,this._configName=t,this._onConfigChange=e,this._dataUnit=s}addFormLegacyConfig(i){this._configName&&t.addFormLegacyConfig(this._configName,i)}async loadConfig(){return new Promise((i=>{t.loadFormConfig(this._configName,this._resourceID).then((t=>{t=this.buildFormMetadataUITabs(t),this.setConfig(t),i(t)})).catch((t=>{console.warn(t)}))}))}getEmptyConfig(){return this.buildFormMetadataUITabs({fields:[],emptyConfig:!0},!0)}saveConfig(e){const s=i.copy(e);return new Promise((i=>{t.saveFormConfig(e,this._configName,this._resourceID).then((t=>{this.setConfig(Object.assign(Object.assign({},s),t)),i(Object.assign(Object.assign({},s),t))}))}))}saveCardState(i,e,s){return new Promise((r=>{var n;const l=(null===(n=this._config)||void 0===n?void 0:n.cardsState)||new Map,o=l.get(i);l.set(i,"fixed"===s?this.updateFixSequence(Object.assign(Object.assign({},o),{fixed:e.fixed}),l):Object.assign(Object.assign({},o),{[s]:e[s]})),t.saveCardState(l,this._configName,this._resourceID).then((t=>{this._config=Object.assign(Object.assign({},this._config),{cardsState:l}),r(t)}))}))}updateFixSequence(t,i){let e=-1;return Array.from(i.values()).forEach((i=>{i.fixed||delete t.fixSequence,null!=i.fixSequence&&(e=Math.max(e,i.fixSequence))})),t.fixed?t.fixSequence=e+1:delete t.fixSequence,t}hasConfig(t){var i;const e=null!=t?t:this._config;return!(!e||!(null===(i=e.fields)||void 0===i?void 0:i.length))}getFieldsList(t,i=!1){var e;const s=null===(e=this._config)||void 0===e?void 0:e.fields;return this.hasConfig()&&!i?s.map((({label:t,name:i,readOnly:e,visible:s,required:r,tab:n,group:l})=>{var o;if(null==t){const t=null===(o=this._dataUnit)||void 0===o?void 0:o.getField(i);if(!t)return;return Object.assign(Object.assign({},t),{name:null!=i?i:t.name,readOnly:null!=e?e:t.readOnly,visible:null!=s?s:t.visible,required:null!=r?r:t.required,tab:n,group:l})}return{name:i,label:t,readOnly:e,visible:s,required:r,tab:n,group:l}})).filter((i=>this.isFieldVisible(i,t))):this._dataUnit?this._dataUnit.metadata.fields.filter((i=>this.isFieldVisible(i,t))).map((({label:t,name:i,readOnly:e,visible:s,required:r,properties:n})=>({label:t,name:i,readOnly:e,visible:s,required:r,tab:null==n?void 0:n.UITabName}))):[]}isFieldVisible(t,i){if(void 0===t||!1===t.visible)return!1;if(null==i)return!0;const s=e.replaceAccentuatedCharsLower((t.label||t.name).toLocaleLowerCase()),r=e.replaceAccentuatedCharsLower(i.toLocaleLowerCase());return s.includes(r)}getFormConfig(t,i,e=!1){let s=this.getFieldsList(void 0,e);return i&&(s=s.filter((i=>{if(t){const e=t.getField(i.name);if(e&&e.readOnly)return!1}return!i.readOnly}))),Object.assign(Object.assign({},this._config),{fields:s})}setConfig(t){this.isLoaded=!0;const{cardsState:i,summary:e,defaultVars:s}=this._config||{};this._config=Object.assign({},t),i&&(this._config.cardsState=i),e&&(this._config.summary=e),s&&(this._config.defaultVars=s),this._onConfigChange&&this._onConfigChange(Object.assign({},this._config))}getConfig(t,i){return this.getFormConfig(t,null==i||i)}getFormConfigFetcher(){return null==this._formConfigFetcher&&(this._formConfigFetcher=new s),this._formConfigFetcher}async fetchUserAvailableConfigs(){return null!=this._configName?Promise.resolve(void 0):this.getFormConfigFetcher().fetchUserAvailableConfigs(this._configName,this._resourceID)}async fetchLegacyConfig(){return this.getFormConfigFetcher().fetchLegacyConfig(this._configName,this._resourceID)}async fetchDefaultConfig(){return this.getFormConfigFetcher().fetchDefaultConfig(this._configName,this._resourceID)}parseObjectList(t){return t?Array.isArray(t)?t:[t]:[]}buildFormMetadataUITabs(t,i=!1){var e;const s=this.hasConfig(t);if(!i&&(!this._dataUnit||s))return t;(t=this.getFormConfig(this._dataUnit,!1,!0)).tabs=this.parseObjectList(t.tabs),t.emptyConfig=!1,t.defaultConfiguration=!0;const n=this._dataUnit.metadata.fields;for(const i of n){const s=t.fields.find((t=>t.name===i.name)),n=null===(e=i.properties)||void 0===e?void 0:e.UITabName;n&&n!==r.main&&(t.tabs.some((t=>t.label===n))||t.tabs.push({label:n,name:n,order:0,visible:!0}),s&&(s.tab=n))}return t}}export{n as S}
@@ -0,0 +1 @@
1
+ import{r as i,c as t,h as e,F as s,H as n}from"./p-d2d301a6.js";import{StringUtils as l,ObjectUtils as a,ApplicationContext as r,ElementIDUtils as o}from"@sankhyalabs/core";import{P as h}from"./p-988afe78.js";import{P as d,C as c}from"./p-6416975c.js";import{ApplicationUtils as f}from"@sankhyalabs/ezui/dist/collection/utils";import{a as p,D as z}from"./p-84345e7a.js";import{s as u}from"./p-6dc031de.js";import"./p-ff1990ad.js";import"./p-601b252b.js";import"./p-fbba7e3d.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";const m=class{constructor(e){i(this,e),this.ezCancel=t(this,"ezCancel",7),this.ezSave=t(this,"ezSave",7),this.ezAfterSave=t(this,"ezAfterSave",7),this._personalizedFilterFetcher=new d,this._filterMetadataStorage=new Map,this._dataSourceFetcher={fetchData:async i=>{let t=null==i?void 0:i.uri;if(l.isEmpty(t)&&(t=this.entityUri),!this._filterMetadataStorage.has(t)){const i=await this._personalizedFilterFetcher.loadFields(t);this._filterMetadataStorage.set(t,i)}return this._filterMetadataStorage.get(t)}},this._filterAssistentMode=!0,this._filterAssistent=void 0,this.messagesBuilder=void 0,this.entityUri=void 0,this.filterId=void 0,this.configName=void 0,this.resourceID=void 0,this.isDefaultFilter=!1}async createPersonalizedFilter(){const i={name:"",active:!0,expression:"",parameters:[],assistent:{id:l.generateUUID(),items:[{id:l.generateUUID(),entityName:"",fieldName:"",description:"",fieldLabel:"Valor",type:void 0,expression:void 0,operand:void 0,paramVariable:!1,value:void 0,systemConfig:null,userConfig:null}],childrenGroups:[],operand:p.AND}};this.isDefaultFilter&&this.buildDataDefaultFilter(i),this._originalFilterAssistent=a.copy(i),this._filterAssistent=a.copy(i)}loadFilter(i,t){null!=i&&t!=i&&null!=this.resourceID&&(i!==z.id?c.loadPersonalizedFilter(i,this.resourceID,this.configName).then((i=>{const t=this.applyDefaultValues(i);this._filterAssistent=t,this._originalFilterAssistent=a.copy(t),this._filterAssistentMode=this._filterAssistent.hasOwnProperty("assistent")&&null!=this._filterAssistent.assistent})):c.loadDefaultFilter(i,this.resourceID,this.configName).then((i=>{const t=this.applyDefaultValues(i);this._filterAssistent=t,this._originalFilterAssistent=a.copy(t),this._filterAssistentMode=this._filterAssistent.hasOwnProperty("assistent")&&null!=this._filterAssistent.assistent})))}componentWillLoad(){var i;null==u.get(`filterFieldsDataSource.${this.entityUri}`)&&u.set(`filterFieldsDataSource.${this.entityUri}`,this._dataSourceFetcher),this.messagesBuilder||(this._application=r.getContextValue("__SNK__APPLICATION__"),this.messagesBuilder=null===(i=this._application)||void 0===i?void 0:i.messagesBuilder),this.loadFilter(this.filterId,void 0)}componentDidRender(){var i;null===(i=this._viewStackRef)||void 0===i||i.show(this._filterAssistentMode?0:1),this._elButtonMode&&this._elButtonMode.setAttribute(o.DATA_ELEMENT_ID_ATTRIBUTE_NAME,o.getInternalIDInfo(this._filterAssistentMode?"advancedMode_ezButton":"assistentMode_ezButton"))}buildDataDefaultFilter(i){i.name=z.name,i.id=z.id}getMessage(i,t){return this._application.messagesBuilder.getMessage(i,t)}async saveFilter(){let i;i=this.isDefaultFilter?await c.saveDefaultFilter(this._filterAssistent,this.resourceID,this.configName):await c.savePersonalizedFilter(this._filterAssistent,this.resourceID,this.configName),this._elButtonSave.enabled=!1,f.info(this.getMessage(`snkPersonalizedFilter.${this._filterAssistent.id?"confirmEdit":"confirmSave"}.title`),{iconName:"check"});const t=Object.assign(Object.assign({},i),this._filterAssistent);t.parameters=h.buildVariableParameters(this._filterAssistent.assistent),this._originalFilterAssistent=a.copy(t),this._filterAssistent=a.copy(t),this.ezAfterSave.emit()}removeFilter(){c.removePersonalizedFilter(this._filterAssistent,this.resourceID,this.configName)}hasChangesToSave(){return JSON.stringify(this._filterAssistent)===JSON.stringify(this._originalFilterAssistent)}async handleSave(){if(this._filterAssistentMode){if(!h.validateFields(this._filterAssistent.assistent)||!this._filterAssistent.name)return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"),this.getMessage("snkPersonalizedFilter.error.description"));this.saveAssistentMode()}else{if(!this._filterAssistent.expression||!this._filterAssistent.name)return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"),this.getMessage("snkPersonalizedFilter.error.description"));if(!await this.validateExpressionBeforeSaving())return;this.saveAdvancedMode()}}saveAssistentMode(){const{assistent:i,expression:t}=this._filterAssistent,e=i?h.buildGroupExpression(i):t;this._filterAssistent.expression=e,this.ezSave.emit(e),this.saveFilter()}saveAdvancedMode(){this._originalFilterAssistent.expression!==this._filterAssistent.expression&&this._filterAssistent.assistent?f.confirm(this.getMessage("snkPersonalizedFilter.confirmSaveModeAdvanced.title"),this.getMessage("snkPersonalizedFilter.confirmSaveModeAdvanced.description")).then((i=>{i&&this.saveAndTransformToAdvancedMode()})):this._filterAssistent.assistent?this.saveAssistentMode():this.saveAndTransformToAdvancedMode()}saveAndTransformToAdvancedMode(){this._filterAssistent.assistent=void 0,this.ezSave.emit(this._filterAssistent.expression),this.saveFilter()}async validateExpressionBeforeSaving(){const{valid:i,message:t=""}=await this._personalizedFilterFetcher.validatePersonalizedFilter(this.entityUri,this._filterAssistent.expression);return i||this._application.error(this.getMessage("snkPersonalizedFilter.errorValidation.title"),t.replace(/.*Exception: /,"")),i}handleCancel(){if(this.hasChangesToSave())return this.ezCancel.emit();f.confirm(this.getMessage("snkPersonalizedFilter.confirmCancel.title"),this.getMessage("snkPersonalizedFilter.confirmCancel.description")).then((i=>{var t;i&&(this._filterAssistent=a.copy(null!==(t=this._originalFilterAssistent)&&void 0!==t?t:{}),this.ezCancel.emit(),this._elButtonSave.enabled=!1)}))}handleTitleChange(i){this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{name:i}),this._elButtonSave.enabled=!this.hasChangesToSave()}applyDefaultValues(i){return this.addLabelToItems(i),this.addFilterGroupCondition(i),i}addFilterGroupCondition(i){i.assistent&&!i.assistent.operand&&(i.assistent.operand=p.AND)}addLabelToItems(i){i.assistent&&i.assistent.items&&i.assistent.items.length>0&&i.assistent.items.forEach((t=>{if(null==t.fieldLabel){const e=(i.parameters||[]).find((i=>i.fieldName===t.fieldName));e&&(t.fieldLabel=e.label)}}))}handleExpressionChangeAdvancedMode(i){this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{expression:i}),this._elButtonSave.enabled=!this.hasChangesToSave()}handleChangeFilterAssistentMode(i){this._elButtonSave.enabled=!this.hasChangesToSave(),this._filterAssistent=Object.assign({},i)}selectField(i){if(!("name"in i))return;const t=this.buildExpression(i.entityName,i.name,i.entityPath);this._elAdvancedMode.querySelector("ez-text-area").appendTextToSelection(t)}buildExpression(i,t,e){return e.length>0&&e.shift(),e.length>0?`${e.join("->")}->${t}`:`${i}.${t}`}onAddField(i){this._elAdvancedMode.querySelector("ez-text-area").setFocus(),i.setBlur(),this._elFilterFieldSearch&&this._elFilterFieldSearch.show(i,{horizontalGap:0,verticalGap:12,fromRight:!0})}renderButtonAddField(){if(!this._filterAssistentMode)return e(s,null,e("ez-button",{class:"snk-personalized-filter__button-mode",label:this.getMessage("snkPersonalizedFilter.info.addField"),enabled:!0,onClick:i=>this.onAddField(i.target)},e("ez-icon",{class:"ez-padding-right--small",slot:"leftIcon",iconName:"plus"})),e("snk-filter-field-search",{class:"ez-padding-left--medium",ref:i=>this._elFilterFieldSearch=i,onEzSelectFilterItem:i=>this.selectField(i.detail),fieldsDataSource:this._dataSourceFetcher}))}buildContainerPersonalizedFilter(){return e("ez-view-stack",{ref:i=>this._viewStackRef=i},e("stack-item",null,this._filterAssistentMode&&e("snk-filter-assistent-mode",{filterAssistent:this._filterAssistent,messagesBuilder:this.messagesBuilder,filterId:this.filterId,entityUri:this.entityUri,application:this._application,onEzChangeFilter:i=>this.handleChangeFilterAssistentMode(i.detail),isDefaultFilter:this.isDefaultFilter})),e("stack-item",null,e("snk-filter-advanced-mode",{ref:i=>this._elAdvancedMode=i,filterAssistent:this._filterAssistent,application:this._application,onEzExpressionChange:i=>this.handleExpressionChangeAdvancedMode(i.detail)})))}handleModeChange(){var i,t;if(this._filterAssistentMode)f.confirm(this.getMessage("snkPersonalizedFilter.confirmChangeModeAssistent.title"),this.getMessage("snkPersonalizedFilter.confirmChangeModeAssistent.description")).then((i=>{if(i&&(this._filterAssistentMode=!this._filterAssistentMode,!this.hasChangesToSave())){const i=h.buildGroupExpression(this._filterAssistent.assistent);this._filterAssistent.expression=i,this._elButtonSave.enabled=!this.hasChangesToSave()}}));else if((null===(i=this._filterAssistent)||void 0===i?void 0:i.expression)===(null===(t=this._originalFilterAssistent)||void 0===t?void 0:t.expression))this._filterAssistentMode=!this._filterAssistentMode;else{const i=this._filterAssistent.expression,t=h.buildGroupExpression(this._filterAssistent.assistent);i!==t?f.confirm(this.getMessage("snkPersonalizedFilter.confirmChangeModeAdvanced.title"),this.getMessage("snkPersonalizedFilter.confirmChangeModeAdvanced.description")).then((i=>{i&&(this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{expression:t}),this._filterAssistentMode=!this._filterAssistentMode)})):this._filterAssistentMode=!this._filterAssistentMode}}buildTitle(){return this.getMessage(this.isDefaultFilter&&!this.filterId?"snkPersonalizedFilter.info.titleCreateDefault":this.isDefaultFilter&&this.filterId?"snkPersonalizedFilter.info.titleEditDefault":this.filterId?"snkPersonalizedFilter.info.titleEdit":"snkPersonalizedFilter.info.titleAdd")}render(){var i,t,s,l;if((null===(i=this._filterAssistent)||void 0===i?void 0:i.assistent)||!this._filterAssistentMode)return e(n,null,e("div",{class:"snk-personalized-filter"},e("div",null,e("snk-simple-bar",{label:this.buildTitle(),onExit:()=>this.handleCancel()},e("div",{class:"snk-personalized-filter__header-actions",slot:"rightSlot"},e("ez-button",{size:"small",label:this.getMessage("snkPersonalizedFilter.info.labelCancel"),onClick:()=>this.handleCancel()}),e("ez-button",{size:"small",ref:i=>this._elButtonSave=i,enabled:!1,class:"ez-button--primary",label:this.getMessage("snkPersonalizedFilter.info.labelSave"),onClick:this.handleSave.bind(this)})))),e("div",{class:"ez-box ez-margin-bottom--medium ez-box__main"},e("div",{class:"ez-box__container"},e("div",{class:"ez-flex ez-flex--column ez-size-width--full"},e("div",{class:"ez-flex"},e("ez-tooltip",{message:this.getMessage("snkPersonalizedFilter.info.textInputDisabled"),active:this.isDefaultFilter},e("ez-text-input",{class:"ez-padding-right--medium",label:this.getMessage("snkPersonalizedFilter.info.labelNameFilter"),value:null===(t=this._filterAssistent)||void 0===t?void 0:t.name,onEzChange:i=>this.handleTitleChange(i.detail),enabled:!this.isDefaultFilter})),this.renderButtonAddField(),e("ez-button",{ref:i=>this._elButtonMode=i,class:"snk-personalized-filter__button-mode",label:this.getMessage(this._filterAssistentMode?"snkPersonalizedFilter.info.activeModeAdvanced":"snkPersonalizedFilter.info.activeModeAssistent"),onClick:()=>this.handleModeChange(),"data-tooltip":this._filterAssistentMode||(null===(s=this._filterAssistent)||void 0===s?void 0:s.assistent)?void 0:this.getMessage("snkPersonalizedFilter.info.tooltipDisabledAssistentMode"),"data-flow":"bottom",enabled:!this._filterAssistent.name||Boolean(this._filterAssistentMode||(null===(l=this._filterAssistent)||void 0===l?void 0:l.assistent))})),this.buildContainerPersonalizedFilter())))))}static get watchers(){return{filterId:["loadFilter"]}}};m.style=".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}";export{m as snk_personalized_filter}
@@ -1 +1 @@
1
- export{S as snk_guides_viewer}from"./p-0fadb620.js";import"./p-d2d301a6.js";import"@sankhyalabs/core";import"./p-ebdb9d89.js";import"./p-03b68a74.js";import"./p-601b252b.js";import"./p-fbba7e3d.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-ff1990ad.js";import"./p-9261d8a0.js";import"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-1a0caadb.js";import"./p-d07b18a4.js";import"./p-0f3698af.js";import"./p-6dc031de.js";import"./p-6dd38d7b.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"./p-7993b2e3.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import"@sankhyalabs/core/dist/utils/SortingUtils";import"./p-688dcb4c.js";import"@sankhyalabs/core/dist/dataunit/DataUnit";import"@sankhyalabs/ezui/dist/collection/utils";
1
+ export{S as snk_guides_viewer}from"./p-c7492861.js";import"./p-d2d301a6.js";import"@sankhyalabs/core";import"./p-088d7e7b.js";import"./p-6416975c.js";import"./p-601b252b.js";import"./p-fbba7e3d.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-ff1990ad.js";import"./p-9261d8a0.js";import"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-1a0caadb.js";import"./p-d07b18a4.js";import"./p-0f3698af.js";import"./p-6dc031de.js";import"./p-6dd38d7b.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"./p-7993b2e3.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import"@sankhyalabs/core/dist/utils/SortingUtils";import"./p-688dcb4c.js";import"@sankhyalabs/core/dist/dataunit/DataUnit";import"@sankhyalabs/ezui/dist/collection/utils";