@sankhyalabs/sankhyablocks 6.5.0 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/cjs/{PersonalizedFilterUtils-7d959e91.js → PersonalizedFilterUtils-cfcd9af2.js} +47 -10
  2. package/dist/cjs/{SnkMessageBuilder-aec46b5d.js → SnkMessageBuilder-ba6d4ade.js} +4 -1
  3. package/dist/cjs/{index-614af008.js → index-0e663819.js} +0 -36
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  6. package/dist/cjs/snk-actions-button.cjs.entry.js +1 -1
  7. package/dist/cjs/snk-application.cjs.entry.js +1 -1
  8. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  9. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  10. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  11. package/dist/cjs/{snk-data-unit-ba0c368c.js → snk-data-unit-5f434275.js} +1 -1
  12. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  14. package/dist/cjs/snk-expression-group.cjs.entry.js +21 -17
  15. package/dist/cjs/snk-expression-item_3.cjs.entry.js +21 -31
  16. package/dist/cjs/snk-filter-bar.cjs.entry.js +15 -16
  17. package/dist/cjs/snk-filter-detail.cjs.entry.js +11 -7
  18. package/dist/cjs/snk-filter-item.cjs.entry.js +16 -7
  19. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +10 -8
  20. package/dist/cjs/snk-filter-modal.cjs.entry.js +13 -7
  21. package/dist/cjs/snk-grid.cjs.entry.js +2 -2
  22. package/dist/cjs/{snk-guides-viewer-7bedfa91.js → snk-guides-viewer-27586701.js} +2 -2
  23. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  24. package/dist/cjs/{snk-filter-personalized.cjs.entry.js → snk-personalized-filter-editor.cjs.entry.js} +35 -12
  25. package/dist/cjs/snk-personalized-filter.cjs.entry.js +24 -13
  26. package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -2
  27. package/dist/cjs/snk-taskbar.cjs.entry.js +2 -2
  28. package/dist/cjs/{taskbar-elements-7f91f4cd.js → taskbar-elements-b98dd6e9.js} +1 -1
  29. package/dist/collection/collection-manifest.json +1 -1
  30. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +1 -1
  31. package/dist/collection/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.js → snk-personalized-filter-editor/snk-personalized-filter-editor.js} +36 -13
  32. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +9 -5
  33. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +16 -7
  34. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +11 -5
  35. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +10 -8
  36. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +4 -5
  37. package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +2 -12
  38. package/dist/collection/components/snk-personalized-filter/interfaces/index.js +39 -0
  39. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +24 -12
  40. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +25 -21
  41. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +7 -7
  42. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +3 -3
  43. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +6 -6
  44. package/dist/collection/lib/@types/index.js +0 -36
  45. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +4 -1
  46. package/dist/components/PersonalizedFilterUtils.js +49 -7
  47. package/dist/components/SnkMessageBuilder.js +4 -1
  48. package/dist/components/index.d.ts +1 -1
  49. package/dist/components/index.js +1 -1
  50. package/dist/components/index2.js +1 -37
  51. package/dist/components/snk-expression-group2.js +22 -23
  52. package/dist/components/snk-expression-item2.js +4 -4
  53. package/dist/components/snk-filter-bar2.js +5 -7
  54. package/dist/components/snk-filter-detail2.js +9 -5
  55. package/dist/components/snk-filter-field-search2.js +2 -12
  56. package/dist/components/snk-filter-item2.js +16 -7
  57. package/dist/components/snk-filter-modal-item2.js +10 -8
  58. package/dist/components/snk-filter-modal.js +11 -5
  59. package/dist/components/snk-filter-param-config2.js +1 -2
  60. package/dist/components/snk-personalized-filter-editor.d.ts +11 -0
  61. package/dist/components/{snk-filter-personalized.js → snk-personalized-filter-editor.js} +42 -19
  62. package/dist/components/snk-personalized-filter2.js +25 -13
  63. package/dist/esm/{PersonalizedFilterUtils-202cd721.js → PersonalizedFilterUtils-1a167d89.js} +44 -7
  64. package/dist/esm/{SnkMessageBuilder-a4f7d858.js → SnkMessageBuilder-9d2becfb.js} +4 -1
  65. package/dist/esm/index-1564817d.js +33 -0
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/esm/sankhyablocks.js +1 -1
  68. package/dist/esm/snk-actions-button.entry.js +1 -1
  69. package/dist/esm/snk-application.entry.js +1 -1
  70. package/dist/esm/snk-attach.entry.js +2 -2
  71. package/dist/esm/snk-crud.entry.js +2 -2
  72. package/dist/esm/snk-data-exporter.entry.js +3 -3
  73. package/dist/esm/{snk-data-unit-3ecaf52c.js → snk-data-unit-ca4bcba6.js} +1 -1
  74. package/dist/esm/snk-data-unit.entry.js +2 -2
  75. package/dist/esm/snk-detail-view.entry.js +4 -4
  76. package/dist/esm/snk-expression-group.entry.js +21 -17
  77. package/dist/esm/snk-expression-item_3.entry.js +7 -17
  78. package/dist/esm/snk-filter-bar.entry.js +6 -7
  79. package/dist/esm/snk-filter-detail.entry.js +11 -7
  80. package/dist/esm/snk-filter-item.entry.js +16 -7
  81. package/dist/esm/snk-filter-modal-item.entry.js +10 -8
  82. package/dist/esm/snk-filter-modal.entry.js +13 -7
  83. package/dist/esm/snk-grid.entry.js +2 -2
  84. package/dist/esm/{snk-guides-viewer-9240c017.js → snk-guides-viewer-950dd3b5.js} +2 -2
  85. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  86. package/dist/esm/{snk-filter-personalized.entry.js → snk-personalized-filter-editor.entry.js} +35 -12
  87. package/dist/esm/snk-personalized-filter.entry.js +24 -13
  88. package/dist/esm/snk-simple-crud.entry.js +2 -2
  89. package/dist/esm/snk-taskbar.entry.js +2 -2
  90. package/dist/esm/{taskbar-elements-139b1058.js → taskbar-elements-2c761819.js} +1 -1
  91. package/dist/sankhyablocks/{p-ab33e180.js → p-01070d6d.js} +1 -1
  92. package/dist/sankhyablocks/p-25df01a1.entry.js +1 -0
  93. package/dist/sankhyablocks/p-30134b16.entry.js +1 -0
  94. package/dist/sankhyablocks/{p-09f33525.entry.js → p-402db136.entry.js} +1 -1
  95. package/dist/sankhyablocks/p-40a5d35e.entry.js +1 -0
  96. package/dist/sankhyablocks/p-5534e08c.js +1 -0
  97. package/dist/sankhyablocks/{p-257aeea4.entry.js → p-5e06e139.entry.js} +1 -1
  98. package/dist/sankhyablocks/{p-43485c54.js → p-602dfb9e.js} +1 -1
  99. package/dist/sankhyablocks/{p-78a226a1.js → p-6f4f88ef.js} +1 -1
  100. package/dist/sankhyablocks/p-775e60f5.entry.js +1 -0
  101. package/dist/sankhyablocks/{p-aa4e880f.entry.js → p-7c10486f.entry.js} +1 -1
  102. package/dist/sankhyablocks/{p-a1cab141.entry.js → p-7c50ded4.entry.js} +1 -1
  103. package/dist/sankhyablocks/p-7d68a43a.js +1 -0
  104. package/dist/sankhyablocks/{p-f75dceb1.entry.js → p-7f37b801.entry.js} +1 -1
  105. package/dist/sankhyablocks/p-86e10ecc.entry.js +1 -0
  106. package/dist/sankhyablocks/p-88a40b96.entry.js +1 -0
  107. package/dist/sankhyablocks/{p-f1edaec0.js → p-a2493d11.js} +1 -1
  108. package/dist/sankhyablocks/p-b6f9f702.entry.js +1 -0
  109. package/dist/sankhyablocks/{p-6564f621.entry.js → p-c2d3e4fb.entry.js} +1 -1
  110. package/dist/sankhyablocks/{p-2adb4481.entry.js → p-c6380ea2.entry.js} +1 -1
  111. package/dist/sankhyablocks/{p-0d670404.entry.js → p-c7c4ed56.entry.js} +1 -1
  112. package/dist/sankhyablocks/{p-e8be0aae.entry.js → p-ca29b093.entry.js} +1 -1
  113. package/dist/sankhyablocks/p-d881cab2.entry.js +1 -0
  114. package/dist/sankhyablocks/p-d9586ead.entry.js +1 -0
  115. package/dist/sankhyablocks/p-f8ce17d3.entry.js +1 -0
  116. package/dist/sankhyablocks/{p-cea58f8b.entry.js → p-fdc262aa.entry.js} +1 -1
  117. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  118. package/dist/types/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.d.ts → snk-personalized-filter-editor/snk-personalized-filter-editor.d.ts} +8 -25
  119. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +2 -0
  120. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +3 -0
  121. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +2 -1
  122. package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.d.ts +3 -1
  123. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +1 -0
  124. package/dist/types/components/snk-filter-field-search/snk-filter-field-search.d.ts +0 -1
  125. package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionItem.d.ts +1 -1
  126. package/dist/types/components/snk-personalized-filter/interfaces/IParameter.d.ts +37 -0
  127. package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IUserFilterConfig.d.ts +1 -1
  128. package/dist/types/components/snk-personalized-filter/interfaces/index.d.ts +35 -0
  129. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +3 -1
  130. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +5 -2
  131. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.d.ts +1 -1
  132. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +2 -1
  133. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +1 -1
  134. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +2 -2
  135. package/dist/types/components.d.ts +62 -62
  136. package/dist/types/lib/@types/index.d.ts +0 -32
  137. package/dist/types/lib/configs/ConfigStorage.d.ts +1 -1
  138. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +1 -1
  139. package/package.json +1 -1
  140. package/react/components.d.ts +1 -1
  141. package/react/components.js +1 -1
  142. package/react/components.js.map +1 -1
  143. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.js +0 -3
  144. package/dist/components/snk-filter-personalized.d.ts +0 -11
  145. package/dist/esm/index-a255b326.js +0 -69
  146. package/dist/sankhyablocks/p-0364abc8.entry.js +0 -1
  147. package/dist/sankhyablocks/p-18e3a2b7.entry.js +0 -1
  148. package/dist/sankhyablocks/p-36ecb6ab.js +0 -1
  149. package/dist/sankhyablocks/p-4374cc15.entry.js +0 -1
  150. package/dist/sankhyablocks/p-50c3700f.entry.js +0 -1
  151. package/dist/sankhyablocks/p-6ce48ae3.entry.js +0 -1
  152. package/dist/sankhyablocks/p-7add855c.entry.js +0 -1
  153. package/dist/sankhyablocks/p-abc4ae66.entry.js +0 -1
  154. package/dist/sankhyablocks/p-c7dd701c.entry.js +0 -1
  155. package/dist/sankhyablocks/p-d5a25c7d.entry.js +0 -1
  156. package/dist/sankhyablocks/p-e962ce72.entry.js +0 -1
  157. package/dist/sankhyablocks/p-eb90de43.js +0 -1
  158. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IParameter.d.ts +0 -21
  159. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/index.d.ts +0 -3
  160. /package/dist/cjs/{IExpressionItem-1090c3fd.js → IExpressionItem-0e32ebb7.js} +0 -0
  161. /package/dist/collection/components/snk-filter-bar/filter-item/editors/{snk-filter-personalized/snk-filter-personalized.css → snk-personalized-filter-editor/snk-personalized-filter-editor.css} +0 -0
  162. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionGroup.js +0 -0
  163. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionItem.js +0 -0
  164. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IParameter.js +0 -0
  165. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IPersonalizedFilter.js +0 -0
  166. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/ISystemFilterConfig.js +0 -0
  167. /package/dist/collection/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IUserFilterConfig.js +0 -0
  168. /package/dist/esm/{IExpressionItem-2e922b2c.js → IExpressionItem-21f225bf.js} +0 -0
  169. /package/dist/sankhyablocks/{p-c6bf66e0.js → p-63bff2a8.js} +0 -0
  170. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IExpressionGroup.d.ts +0 -0
  171. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/IPersonalizedFilter.d.ts +0 -0
  172. /package/dist/types/components/snk-personalized-filter/{subcomponents/snk-filter-param-config/interfaces → interfaces}/ISystemFilterConfig.d.ts +0 -0
@@ -2,11 +2,11 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { UserInterface, ApplicationContext, ElementIDUtils, JSUtils, StringUtils, DataType } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { fieldBuilder } from '@sankhyalabs/ezui/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder';
5
- import { F as FilterOperand, c as FilterConfigType, d as FilterEntities, e as FilterUserConfigTypes } from './index-a255b326.js';
5
+ import { F as FilterOperand, a as FilterConfigType, P as PersonalizedFilterUtils, b as FilterEntities, c as FilterUserConfigTypes } from './PersonalizedFilterUtils-1a167d89.js';
6
6
  import { s as store } from './index-bdf75557.js';
7
7
  import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
8
8
  import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
9
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
9
+ import './IExpressionItem-21f225bf.js';
10
10
  import './filter-item-type.enum-5028ed3f.js';
11
11
 
12
12
  var SelectedItemType;
@@ -43,7 +43,6 @@ const FIELD_TYPE_SEARCH_AND_TEXT = [
43
43
 
44
44
  const snkExpressionItemCss = ".sc-snk-expression-item-h{display:flex;width:100%;--snk-expression-item--background-color:var(--background--xlight, #fff);--snk-expression-item__itens--padding:var(--space--small, 6px);--snk-expression-item__width--input-operator:220px;--snk-expression-item__width--input-value:240px;--snk-expression-item__width--input-value-variable:176px;--snk-expression-item--border-radius:var(--border--radius-medium, 12px);--snk-expression-item--border-color:var(--color--strokes, #DCE0E8);--snk-expression-item--border-style:var(--border--small, 1px solid);--snk-expression-item__background-color-dashed:var(--background--body, #fafcff)}.box.sc-snk-expression-item{width:100%;height:56px;background:var(--snk-expression-item--background-color);border:var(--snk-expression-item--border-color) var(--snk-expression-item--border-style);border-radius:var(--snk-expression-item--border-radius)}.box__container.sc-snk-expression-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;margin:var(--space--small, 6px)}.box__container--input-filter.sc-snk-expression-item{width:100%}.box__container--input-operator.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-operator);min-width:var(--snk-expression-item__width--input-operator)}.box__container--input-value.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-value);min-width:var(--snk-expression-item__width--input-value)}.box__container--input-value-variable.sc-snk-expression-item{display:flex;width:var(--snk-expression-item__width--input-value-variable);min-width:var(--snk-expression-item__width--input-value-variable)}.box__container--button-delete.sc-snk-expression-item{display:flex}.box__container.sc-snk-expression-item>div.sc-snk-expression-item{padding-left:var(--snk-expression-item__itens--padding);padding-right:var(--snk-expression-item__itens--padding)}.box__container--button-delete--icon.sc-snk-expression-item{width:42px;min-width:42px}.box__container--input-value-variable--icon.sc-snk-expression-item{cursor:pointer}.dashes.sc-snk-expression-item{z-index:var(--more-visible, 2);background:var(--snk-expression-item__background-color-dashed);border-bottom:2px dashed var(--text-secondary, #A2ABB9);border-left:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:62px;margin-left:-15px;margin-top:-33.5px}";
45
45
 
46
- const DEFAULT_FIELD_NAME = 'NOT_DEFINED';
47
46
  const SnkExpressionItem = class {
48
47
  constructor(hostRef) {
49
48
  registerInstance(this, hostRef);
@@ -52,6 +51,7 @@ const SnkExpressionItem = class {
52
51
  this.application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
53
52
  this.filterOperandDefault = FilterOperandDefault;
54
53
  this.filterOperandTypeTextSearch = FilterOperandTypeTextSearch;
54
+ this.DEFAULT_FIELD_NAME = 'NOT_DEFINED';
55
55
  this._showValueVariable = false;
56
56
  this._fieldSelected = undefined;
57
57
  this._optionNotNull = false;
@@ -236,7 +236,7 @@ const SnkExpressionItem = class {
236
236
  if (this._optionNotNull && inputFieldData || ((_b = this._elValueVariable) === null || _b === void 0 ? void 0 : _b.value) && inputFieldData || this.expression.paramVariable || this._showValueVariable || !((_c = this._fieldSelected) === null || _c === void 0 ? void 0 : _c.dataType)) {
237
237
  inputFieldData.$attrs$.enabled = false;
238
238
  }
239
- if (this.expression.value) {
239
+ if (this.expression.value != undefined) {
240
240
  inputFieldData.$attrs$.value = this.getExpressiontValue(this.expression);
241
241
  }
242
242
  inputFieldData.$attrs$.onEzChange = (event) => {
@@ -291,7 +291,7 @@ const SnkExpressionItem = class {
291
291
  }
292
292
  render() {
293
293
  var _a;
294
- return (h(Host, null, h("div", { class: "dashes" }), h("div", { class: "box" }, h("div", { class: "box__container" }, h("div", { class: "box__container--input-filter" }, h("ez-filter-input", Object.assign({ ref: ref => this._elFilterInput = ref, value: (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.path, label: this.getMessage("snkPersonalizedFilter.info.labelSearchField"), canShowError: false, onEzChange: (evt) => this.handleChangeFilterInput(evt), onFocus: () => this.handleFocus() }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `expressionFilterInput_${this.expression.fieldName || DEFAULT_FIELD_NAME}` })), h("snk-filter-field-search", { ref: ref => this._elFilterFieldSearch = ref, searchable: false, onEzSelectFilterItem: (ev) => this.handleSelectItem(ev.detail), fieldsDataSource: this._dataSourceFetcher })), h("div", { class: "box__container--input-operator" }, h("ez-combo-box", Object.assign({ label: this.getMessage("snkPersonalizedFilter.info.labelOperator"), value: this.expression.operand, canShowError: false, options: this.buildOptionsOperator(), onEzChange: (evt) => { var _a; return this.handleChangeOperator((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); }, suppressEmptyOption: true }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `comboBoxOperand_${this.expression.fieldName || DEFAULT_FIELD_NAME}` }))), h("div", { class: "box__container--input-value" }, !this._fieldSelected ?
294
+ return (h(Host, null, h("div", { class: "dashes" }), h("div", { class: "box" }, h("div", { class: "box__container" }, h("div", { class: "box__container--input-filter" }, h("ez-filter-input", Object.assign({ ref: ref => this._elFilterInput = ref, value: (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.path, label: this.getMessage("snkPersonalizedFilter.info.labelSearchField"), canShowError: false, onEzChange: (evt) => this.handleChangeFilterInput(evt), onFocus: () => this.handleFocus() }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `expressionFilterInput_${this.expression.fieldName || this.DEFAULT_FIELD_NAME}` })), h("snk-filter-field-search", { ref: ref => this._elFilterFieldSearch = ref, searchable: false, onEzSelectFilterItem: (ev) => this.handleSelectItem(ev.detail), fieldsDataSource: this._dataSourceFetcher })), h("div", { class: "box__container--input-operator" }, h("ez-combo-box", Object.assign({ label: this.getMessage("snkPersonalizedFilter.info.labelOperator"), value: this.expression.operand, canShowError: false, options: this.buildOptionsOperator(), onEzChange: (evt) => { var _a; return this.handleChangeOperator((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); }, suppressEmptyOption: true }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `comboBoxOperand_${this.expression.fieldName || this.DEFAULT_FIELD_NAME}` }))), h("div", { class: "box__container--input-value" }, !this._fieldSelected ?
295
295
  h("ez-number-input", { label: "Valor", canShowError: false, enabled: (!this._showValueVariable && !this._optionNotNull) }) :
296
296
  this.buildFieldByType()), h("div", { class: "box__container--input-value-variable" }, !this._optionNotNull &&
297
297
  h("ez-check", { ref: ref => this._elValueVariable = ref, value: this.expression.paramVariable, label: this.getMessage("snkPersonalizedFilter.info.labelValueVarible"), mode: CheckMode.SWITCH, onEzChange: (evt) => this.handleChangeValueVariable(evt.detail) }), (this._showValueVariable && !this._optionNotNull) &&
@@ -334,7 +334,6 @@ const SnkFilterFieldSearch = class {
334
334
  constructor(hostRef) {
335
335
  registerInstance(this, hostRef);
336
336
  this.ezSelectFilterItem = createEvent(this, "ezSelectFilterItem", 7);
337
- this._filterMetadataStorage = new Map();
338
337
  this._currentMetadata = null;
339
338
  this._filterText = "";
340
339
  this._isLoading = false;
@@ -377,15 +376,8 @@ const SnkFilterFieldSearch = class {
377
376
  async loadData() {
378
377
  var _a, _b;
379
378
  this._isLoading = true;
380
- let metadata;
381
- if (this._currentLink != undefined) {
382
- metadata = this._filterMetadataStorage.get(this._currentLink.uri);
383
- }
384
- if (!metadata) {
385
- metadata = await this.fieldsDataSource.fetchData(this._currentLink);
386
- this._currentLink = metadata.currentLink;
387
- this._filterMetadataStorage.set(this._currentLink.uri, metadata);
388
- }
379
+ let metadata = await this.fieldsDataSource.fetchData(this._currentLink);
380
+ this._currentLink = metadata.currentLink;
389
381
  const { fields, links } = metadata || {};
390
382
  if (!Array.isArray(fields) || !Array.isArray(links))
391
383
  throw new Error('Invalid metadata');
@@ -438,7 +430,6 @@ const SnkFilterFieldSearch = class {
438
430
  if (this._isLoading)
439
431
  return;
440
432
  const breadcrumbByIndex = this.breadcrumbItems.findIndex(breadcrumbItem => breadcrumbItem.id === item.id);
441
- item.cache = this._filterMetadataStorage.has(item.uri);
442
433
  if (breadcrumbByIndex > -1) {
443
434
  this.breadcrumbItems = this.breadcrumbItems.slice(0, (breadcrumbByIndex + 1));
444
435
  }
@@ -490,7 +481,6 @@ const SnkFilterFieldSearch = class {
490
481
  }
491
482
  disconnectedCallback() {
492
483
  var _a;
493
- this._filterMetadataStorage.clear();
494
484
  (_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.hide();
495
485
  }
496
486
  render() {
@@ -4,14 +4,14 @@ import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/
4
4
  import { C as ConfigStorage } from './ConfigStorage-9f4d2e67.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
- import { F as FilterOperand } from './index-a255b326.js';
7
+ import { F as FilterOperand, P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
8
8
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
9
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
10
9
  import './form-config-fetcher-cac8cd96.js';
11
10
  import './DataFetcher-b3d8b2d5.js';
12
11
  import './_commonjsHelpers-9943807e.js';
13
12
  import './resource-fetcher-02642924.js';
14
13
  import './filter-bar-config-fetcher-bd2070a3.js';
14
+ import './IExpressionItem-21f225bf.js';
15
15
 
16
16
  const buildFilter = (item) => {
17
17
  switch (item.type) {
@@ -267,13 +267,12 @@ const SnkFilterBar = class {
267
267
  this.processAfterUpdateConfig();
268
268
  }
269
269
  }
270
+ getPersonalizedFilterItem() {
271
+ return this.filterConfig.find(item => item.type === FilterItemType.PERSONALIZED);
272
+ }
270
273
  async processAfterUpdateConfig() {
271
274
  if (this._loadingPending) {
272
- const personalizedFilter = this.filterConfig.find(item => {
273
- if (item.type === FilterItemType.PERSONALIZED) {
274
- return true;
275
- }
276
- });
275
+ const personalizedFilter = this.getPersonalizedFilterItem();
277
276
  this._pendingVariables = !PersonalizedFilterUtils.validateVariableValues(personalizedFilter);
278
277
  if (this._pendingVariables) {
279
278
  return;
@@ -4,11 +4,11 @@ import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
4
4
  import { ApplicationContext, ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
5
5
  import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-bd2070a3.js';
6
6
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
7
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
7
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
8
8
  import './resource-fetcher-02642924.js';
9
9
  import './DataFetcher-b3d8b2d5.js';
10
10
  import './_commonjsHelpers-9943807e.js';
11
- import './index-a255b326.js';
11
+ import './IExpressionItem-21f225bf.js';
12
12
 
13
13
  const SnkFilterDetail = class {
14
14
  constructor(hostRef) {
@@ -54,12 +54,9 @@ const SnkFilterDetail = class {
54
54
  return { tag: "snk-filter-number" };
55
55
  case FilterItemType.PERSONALIZED:
56
56
  const snkFilterPersonalizedProps = {
57
- tag: "snk-filter-personalized", props: {
57
+ tag: "snk-personalized-filter-editor", props: {
58
58
  presentationMode: EPresentationMode.CHIP,
59
- onValueChanged: ({ detail }) => {
60
- const groupedItems = (detail === null || detail === void 0 ? void 0 : detail.items) || this.config.groupedItems;
61
- this.config = Object.assign(Object.assign({}, this.config), { groupedItems, visible: (groupedItems || []).filter(item => item.visible).length > 0 });
62
- }
59
+ onValueChanged: evt => this.handleValueChanged(evt),
63
60
  }
64
61
  };
65
62
  return snkFilterPersonalizedProps;
@@ -68,6 +65,10 @@ const SnkFilterDetail = class {
68
65
  }
69
66
  return { tag: "snk-filter-text" };
70
67
  }
68
+ handleValueChanged({ detail }) {
69
+ const groupedItems = (detail === null || detail === void 0 ? void 0 : detail.items) || this.config.groupedItems;
70
+ this.config = Object.assign(Object.assign({}, this.config), { groupedItems, visible: (groupedItems || []).filter(item => item.visible).length > 0 });
71
+ }
71
72
  removeItem() {
72
73
  const hasMultiValues = this.config.type === FilterItemType.MULTI_LIST && Array.isArray(this.config.value);
73
74
  const newValue = hasMultiValues ? this.config.value.map((valueItem) => (Object.assign(Object.assign({}, valueItem), { check: false }))) : undefined;
@@ -77,6 +78,9 @@ const SnkFilterDetail = class {
77
78
  }
78
79
  this.changeConfig(removedConfig);
79
80
  }
81
+ removeItemFromGroup(item) {
82
+ return Object.assign(Object.assign({}, item), { visible: false, fixed: false, value: undefined });
83
+ }
80
84
  getPopUpHeaderButtons() {
81
85
  return (h(Fragment, null, !this.config.removalBlocked && this.buildIcon(this.getMessage("snkFilterBar.removeFilter"), "delete", () => this.removeItem()), !this.config.hardFixed && this.buildIcon(this.getMessage(this.config.fixed ? "snkFilterBar.unpinFilter" : "snkFilterBar.pinFilter"), this.config.fixed ? "un-pin" : "push-pin", () => this.changeConfig(Object.assign(Object.assign({}, this.config), { fixed: !this.config.fixed })))));
82
86
  }
@@ -181,11 +181,7 @@ const SnkFilterItem = class {
181
181
  return `${label}: ${value.value} - ${value.label}`;
182
182
  }
183
183
  if (type === FilterItemType.PERSONALIZED) {
184
- const activeCount = groupedItems.reduce((total, item) => {
185
- if (!!item.visible)
186
- return total + 1;
187
- return total;
188
- }, 0);
184
+ const activeCount = this.calculateActiveCount(groupedItems);
189
185
  if (activeCount <= 0)
190
186
  return label;
191
187
  return `${label}: ${this.getMessage('snkFilterBar.personalizedCount', { activeCount })}`;
@@ -209,6 +205,13 @@ const SnkFilterItem = class {
209
205
  }
210
206
  return label;
211
207
  }
208
+ calculateActiveCount(groupedItems) {
209
+ return groupedItems.reduce((total, item) => {
210
+ if (!!item.visible)
211
+ return total + 1;
212
+ return total;
213
+ }, 0);
214
+ }
212
215
  applyTooltip() {
213
216
  if (!this.config.value)
214
217
  return undefined;
@@ -257,13 +260,19 @@ const SnkFilterItem = class {
257
260
  }
258
261
  return undefined;
259
262
  }
263
+ hasActiveElements(value) {
264
+ var _a, _b, _c;
265
+ return ((_c = (_b = ((_a = value === null || value === void 0 ? void 0 : value.elements) !== null && _a !== void 0 ? _a : value)) === null || _b === void 0 ? void 0 : _b.filter(val => val === null || val === void 0 ? void 0 : val.check)) === null || _c === void 0 ? void 0 : _c.length) > 0;
266
+ }
267
+ hasActiveValue(config) {
268
+ return (config.type !== FilterItemType.MULTI_LIST && config.value !== undefined) || this.hasActiveElements(config.value);
269
+ }
260
270
  getEnabledChip() {
261
- var _a, _b, _c, _d;
262
271
  if (this.config.type === FilterItemType.PERSONALIZED) {
263
272
  const { groupedItems = [] } = this.config;
264
273
  return groupedItems.some(item => item.visible);
265
274
  }
266
- return (FilterItemType.MULTI_LIST != this.config.type && this.config.value != undefined) || (((_d = (_c = ((_b = (_a = this.config.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : this.config.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) > 0);
275
+ return this.hasActiveValue(this.config);
267
276
  }
268
277
  render() {
269
278
  const leftIcon = this.getLeftIconName();
@@ -43,19 +43,21 @@ const SnkFilterModalItem = class {
43
43
  case FilterItemType.NUMBER:
44
44
  return { tag: "snk-filter-number" };
45
45
  case FilterItemType.PERSONALIZED:
46
- const snkFilterPersonalizedProps = {
47
- tag: "snk-filter-personalized", props: {
48
- onDeleteFilter: (event) => this.handleDeleteFilter(event.detail, FilterItemType.PERSONALIZED),
49
- onEditFilter: (event) => this.editPersonalizedFilter.emit(event.detail),
50
- onAddFilter: () => this.addPersonalizedFilter.emit(),
51
- }
52
- };
53
- return snkFilterPersonalizedProps;
46
+ return this.buildSnkFilterPersonalizedProps();
54
47
  case FilterItemType.MULTI_LIST:
55
48
  return { tag: "snk-entity-list", props: { maxHeightList: "640px", rightListSlotBuilder: item => this.buildRightSlot(item) } };
56
49
  }
57
50
  return { tag: "snk-filter-text" };
58
51
  }
52
+ buildSnkFilterPersonalizedProps() {
53
+ return {
54
+ tag: "snk-personalized-filter-editor", props: {
55
+ onDeleteFilter: (event) => this.handleDeleteFilter(event.detail, FilterItemType.PERSONALIZED),
56
+ onEditFilter: (event) => this.editPersonalizedFilter.emit(event.detail),
57
+ onAddFilter: () => this.addPersonalizedFilter.emit(),
58
+ }
59
+ };
60
+ }
59
61
  isVisible(newValue) {
60
62
  return !this.filterItem.visible ? newValue !== undefined : true;
61
63
  }
@@ -4,8 +4,8 @@ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { F as FilterType } from './filter-type.enum-a80c1b6b.js';
5
5
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
6
6
  import { ObjectUtils } from '@sankhyalabs/core';
7
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
8
- import './index-a255b326.js';
7
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
8
+ import './IExpressionItem-21f225bf.js';
9
9
 
10
10
  const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{width:344px;max-width:344px;min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px;overflow-x:clip;overflow-y:auto}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";
11
11
 
@@ -71,7 +71,7 @@ const SnkFilterModal = class {
71
71
  });
72
72
  }
73
73
  handleClose() {
74
- const hasChangesToSave = JSON.stringify(this.filters) !== JSON.stringify(this._originalFilterConfig);
74
+ const hasChangesToSave = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this._originalFilterConfig);
75
75
  if (!hasChangesToSave) {
76
76
  this.closeModal();
77
77
  return;
@@ -81,13 +81,19 @@ const SnkFilterModal = class {
81
81
  this.closeModal();
82
82
  });
83
83
  }
84
- validatePersonalizedFilter() {
84
+ handleApplyFilters() {
85
85
  const filterPersonalized = this.filters.find(filter => filter.filterType === FilterType.CUSTOM_FILTER);
86
+ if (this.isValidCustomFilter(filterPersonalized)) {
87
+ this.applyFilters(this.filters);
88
+ }
89
+ }
90
+ isValidCustomFilter(filterPersonalized) {
86
91
  const isValid = PersonalizedFilterUtils.validateVariableValues(filterPersonalized);
87
92
  if (!isValid) {
88
- return ApplicationUtils.alert(this.getCustomMessage('validations.notFullFilled.title'), this.getCustomMessage('validations.notFullFilled.message'));
93
+ ApplicationUtils.alert(this.getCustomMessage('validations.notFullFilled.title'), this.getCustomMessage('validations.notFullFilled.message'));
94
+ return false;
89
95
  }
90
- this.applyFilters(this.filters);
96
+ return true;
91
97
  }
92
98
  modalActionListener(evt) {
93
99
  const modalAction = evt.detail;
@@ -96,7 +102,7 @@ const SnkFilterModal = class {
96
102
  this.handleClearAll();
97
103
  break;
98
104
  case ModalAction.OK:
99
- this.validatePersonalizedFilter();
105
+ this.handleApplyFilters();
100
106
  break;
101
107
  case ModalAction.CLOSE:
102
108
  this.handleClose();
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { UserInterface, DateUtils, ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
4
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
5
5
  import { C as ConfigStorage } from './ConfigStorage-9f4d2e67.js';
6
- import { P as PresentationMode } from './index-a255b326.js';
6
+ import { P as PresentationMode } from './index-1564817d.js';
7
7
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
8
8
  import { s as store } from './index-bdf75557.js';
9
9
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
@@ -3,11 +3,11 @@ import { ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { S as SnkFormConfigManager } from './SnkFormConfigManager-def999fe.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
6
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
6
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
7
7
  import { c as VIEW_MODE } from './constants-3644f1b6.js';
8
8
  import './DataFetcher-b3d8b2d5.js';
9
9
  import './pesquisa-fetcher-bd6af0e3.js';
10
- import { P as PresentationMode } from './index-a255b326.js';
10
+ import { P as PresentationMode } from './index-1564817d.js';
11
11
 
12
12
  const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
13
13
 
@@ -1,4 +1,4 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-9240c017.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-950dd3b5.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import './SnkFormConfigManager-def999fe.js';
@@ -11,8 +11,8 @@ import './filter-bar-config-fetcher-bd2070a3.js';
11
11
  import './filter-item-type.enum-5028ed3f.js';
12
12
  import '@sankhyalabs/ezui/dist/collection/utils/form';
13
13
  import './taskbar-processor-94402e6e.js';
14
- import './taskbar-elements-139b1058.js';
15
- import './index-a255b326.js';
14
+ import './taskbar-elements-2c761819.js';
15
+ import './index-1564817d.js';
16
16
  import './index-bdf75557.js';
17
17
  import './constants-3644f1b6.js';
18
18
  import './pesquisa-fetcher-bd6af0e3.js';
@@ -5,7 +5,7 @@ import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
5
5
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
6
6
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
7
7
 
8
- const snkFilterPersonalizedCss = ".sc-snk-filter-personalized-h{--snk-filter-personalized__max-height:21;--snk-filter-personalized__max-width:21.5}.SnkFilterPersonalized_list-container.sc-snk-filter-personalized{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.SnkFilterPersonalized_list-container-chip.sc-snk-filter-personalized{width:400px}.SnkFilterPersonalized_list-scroller.sc-snk-filter-personalized{display:block;max-height:calc(var(--space--2xl) * var(--snk-filter-personalized__max-height));cursor:auto;--ez-scroller__max-height:300px}.SnkFilterPersonalized_checkbox.sc-snk-filter-personalized{display:grid;grid-template-columns:auto auto;justify-content:start}.SnkFilterPersonalized_list-container.sc-snk-filter-personalized:has(.SnkFilterPersonalized_list-item--chip){gap:var(--space--small, 6px);max-width:calc(var(--space--md) * var(--snk-filter-personalized__max-width))}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized{display:flex;border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized:hover{background-color:var(--background--medium, #f0f3f7)}.SnkFilterPersonalized_list-actions.sc-snk-filter-personalized{display:none;align-items:center}.SnkFilterPersonalized_list-item--modal.sc-snk-filter-personalized:hover .SnkFilterPersonalized_list-actions.sc-snk-filter-personalized{display:flex}.SnkFilterPersonalized_list-item--chip.sc-snk-filter-personalized{display:flex;flex-direction:column;border:var(--border--small, 1px solid) var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--chip.sc-snk-filter-personalized .sc-snk-filter-personalized:first-of-type{gap:var(--space--3xs)}";
8
+ const snkPersonalizedFilterEditorCss = ".sc-snk-personalized-filter-editor-h{--snk-filter-personalized__max-height:21;--snk-filter-personalized__max-width:21.5}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.SnkFilterPersonalized_list-container-chip.sc-snk-personalized-filter-editor{width:400px}.SnkFilterPersonalized_list-scroller.sc-snk-personalized-filter-editor{display:block;max-height:calc(var(--space--2xl) * var(--snk-filter-personalized__max-height));cursor:auto;--ez-scroller__max-height:300px}.SnkFilterPersonalized_checkbox.sc-snk-personalized-filter-editor{display:grid;grid-template-columns:auto auto;justify-content:start}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor:has(.SnkFilterPersonalized_list-item--chip){gap:var(--space--small, 6px);max-width:calc(var(--space--md) * var(--snk-filter-personalized__max-width))}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor{display:flex;border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover{background-color:var(--background--medium, #f0f3f7)}.SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:none;align-items:center}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover .SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:flex}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor{display:flex;flex-direction:column;border:var(--border--small, 1px solid) var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor .sc-snk-personalized-filter-editor:first-of-type{gap:var(--space--3xs)}";
9
9
 
10
10
  const SnkFilterPersonalized = class {
11
11
  constructor(hostRef) {
@@ -49,10 +49,15 @@ const SnkFilterPersonalized = class {
49
49
  var _a, _b;
50
50
  const CheckboxElement = () => (h("ez-check", Object.assign({ class: "SnkFilterPersonalized_checkbox", id: `param_${item.id}`, key: item.id, compact: true, value: item.visible, label: item.label, onEzChange: ({ detail: visible }) => this.handleItemChange.bind(this)(visible, item.id) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`checkboxFilter_${item.id}`)}` })));
51
51
  const isVariable = !!((_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a.personalizedFilter) === null || _b === void 0 ? void 0 : _b.parameters.length);
52
- return (h("div", { class: `${!this.isModalMode() ? "SnkFilterPersonalized_list-item--chip" : ""}` }, h("li", { class: `${this.isModalMode() ? "SnkFilterPersonalized_list-item--modal" : ""}` }, h("div", { class: "ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full" }, h(CheckboxElement, null), this.isModalMode() ?
52
+ return (h("div", { class: `${!this.isModalMode() ? "SnkFilterPersonalized_list-item--chip" : ""}` }, h("li", { class: `${this.isModalMode() ? "SnkFilterPersonalized_list-item--modal" : ""}` }, h("div", { class: "ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full" }, h(CheckboxElement, null), this.buildModalListActions(item, isVariable))), (item.visible && isVariable) && (h("div", { class: "ez-row ez-padding--small" }, this.getFormField(item)))));
53
+ }
54
+ buildModalListActions(item, isVariable) {
55
+ if (!this.isModalMode())
56
+ return;
57
+ return (this.isModalMode() ?
53
58
  h("div", { class: "SnkFilterPersonalized_list-actions" }, h("ez-button", { size: "small", mode: "icon", iconName: "edit", title: this.getMessage('snkPersonalizedFilter.listActions.edit'), onClick: () => this.editFilter.emit(item.id) }), h("ez-button", { size: "small", mode: "icon", iconName: "delete", title: this.getMessage('snkPersonalizedFilter.listActions.delete'), onClick: this.handleDeleteFilter.bind(this, item) }))
54
59
  :
55
- isVariable && (h("ez-badge", Object.assign({ class: "ez-badge--warning-subtle ez-margin-right--small", label: this.getMessage('snkPersonalizedFilter.info.badgeVariable'), size: "medium" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`variableBadge_${item.id}`)}` }))))), (item.visible && isVariable) && (h("div", { class: "ez-row ez-padding--small" }, this.getFormField(item)))));
60
+ isVariable && (h("ez-badge", Object.assign({ class: "ez-badge--warning-subtle ez-margin-right--small", label: this.getMessage('snkPersonalizedFilter.info.badgeVariable'), size: "medium" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`variableBadge_${item.id}`)}` }))));
56
61
  }
57
62
  isModalMode() {
58
63
  return this.presentationMode === EPresentationMode.MODAL;
@@ -119,7 +124,7 @@ const SnkFilterPersonalized = class {
119
124
  });
120
125
  this.emitChange();
121
126
  }
122
- handleFilterChange({ detail: query = "" }) {
127
+ handleSearchFilterList({ detail: query = "" }) {
123
128
  this.items = query ? this.originalItems.filter(item => item.label.toLowerCase().includes(query.toLowerCase())) : this.originalItems;
124
129
  }
125
130
  handleFilterItemChange(value, formProp) {
@@ -152,11 +157,11 @@ const SnkFilterPersonalized = class {
152
157
  }
153
158
  handleDeleteFilter(item) {
154
159
  this._application.confirm(this.getMessage('snkPersonalizedFilter.deleteConfirm.title'), this.getMessage('snkPersonalizedFilter.deleteConfirm.message', { filterName: item.label })).then((actionConfirmed) => {
155
- if (actionConfirmed) {
156
- this.deleteFilter.emit(item);
157
- this.items = this.originalItems = this.originalItems.filter(originalItem => originalItem.id !== item.id);
158
- this.emitChange();
159
- }
160
+ if (!actionConfirmed)
161
+ return;
162
+ this.deleteFilter.emit(item);
163
+ this.items = this.originalItems = this.originalItems.filter(originalItem => originalItem.id !== item.id);
164
+ this.emitChange();
160
165
  });
161
166
  }
162
167
  componentDidLoad() {
@@ -168,16 +173,34 @@ const SnkFilterPersonalized = class {
168
173
  this._application = ApplicationContext.getContextValue('__SNK__APPLICATION__');
169
174
  this.items = this.originalItems = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.groupedItems) || [];
170
175
  }
176
+ buildModeModalHeader() {
177
+ if (this.presentationMode !== EPresentationMode.MODAL)
178
+ return;
179
+ return (h("div", { class: "ez-margin-bottom--medium" }, h(Fragment, null, h("ez-filter-input", Object.assign({ label: this.config.label, onEzChange: this.handleSearchFilterList.bind(this) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("filterSearch")}` })), h("span", { class: "ez-text ez-title--small ez-title--primary" }, " ", this.config.detailTitle, " "))));
180
+ }
181
+ buildModeModalFooter() {
182
+ if (this.presentationMode !== EPresentationMode.MODAL)
183
+ return;
184
+ return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
185
+ }
186
+ buildContainerFiltersCreated() {
187
+ if (this.items.length) {
188
+ return (h("ez-scroller", { class: "SnkFilterPersonalized_list-scroller", direction: EzScrollDirection.VERTICAL }, h("ul", { class: `SnkFilterPersonalized_list-container ${!this.isModalMode() ? "SnkFilterPersonalized_list-container-chip" : ""}` }, this.items.map((itemConfig) => this.getItemContent(itemConfig)))));
189
+ }
190
+ else {
191
+ return (h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--small" }, this.getMessage('snkPersonalizedFilter.info.noDataFound'))));
192
+ }
193
+ }
171
194
  render() {
172
195
  if (!this.config || this.config.type !== FilterItemType.PERSONALIZED)
173
196
  return undefined;
174
- return (h(Host, null, h("div", { class: "ez-margin-bottom--medium" }, this.presentationMode === EPresentationMode.MODAL && (h(Fragment, null, h("ez-filter-input", Object.assign({ label: this.config.label, onEzChange: this.handleFilterChange.bind(this) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("filterSearch")}` })), h("span", { class: "ez-text ez-title--small ez-title--primary" }, " ", this.config.detailTitle, " ")))), this.items.length ? (h("ez-scroller", { class: "SnkFilterPersonalized_list-scroller", direction: EzScrollDirection.VERTICAL }, h("ul", { class: `SnkFilterPersonalized_list-container ${!this.isModalMode() ? "SnkFilterPersonalized_list-container-chip" : ""}` }, this.items.map((itemConfig) => this.getItemContent(itemConfig))))) : (h("div", { class: "ez-margin--auto" }, h("span", { class: "ez-text ez-text--secondary ez-text--small" }, this.getMessage('snkPersonalizedFilter.info.noDataFound')))), this.presentationMode === EPresentationMode.MODAL && (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })))));
197
+ return (h(Host, null, this.buildModeModalHeader(), this.buildContainerFiltersCreated(), this.buildModeModalFooter()));
175
198
  }
176
199
  get _element() { return getElement(this); }
177
200
  static get watchers() { return {
178
201
  "config": ["configWatcher"]
179
202
  }; }
180
203
  };
181
- SnkFilterPersonalized.style = snkFilterPersonalizedCss;
204
+ SnkFilterPersonalized.style = snkPersonalizedFilterEditorCss;
182
205
 
183
- export { SnkFilterPersonalized as snk_filter_personalized };
206
+ export { SnkFilterPersonalized as snk_personalized_filter_editor };
@@ -1,11 +1,10 @@
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 } from '@sankhyalabs/core';
3
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-202cd721.js';
3
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
4
4
  import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-9f4d2e67.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
- import { F as FilterGroupCondition } from './IExpressionItem-2e922b2c.js';
6
+ import { F as FilterGroupCondition } from './IExpressionItem-21f225bf.js';
7
7
  import { s as store } from './index-bdf75557.js';
8
- import './index-a255b326.js';
9
8
  import './filter-item-type.enum-5028ed3f.js';
10
9
  import './form-config-fetcher-cac8cd96.js';
11
10
  import './DataFetcher-b3d8b2d5.js';
@@ -21,13 +20,18 @@ const SnkPersonalizedFilter = class {
21
20
  this.ezCancel = createEvent(this, "ezCancel", 7);
22
21
  this.ezSave = createEvent(this, "ezSave", 7);
23
22
  this._personalizedFilterFetcher = new PersonalizedFilterFetcher();
23
+ this._filterMetadataStorage = new Map();
24
24
  this._dataSourceFetcher = {
25
25
  fetchData: async (entity) => {
26
26
  let entityURI = entity === null || entity === void 0 ? void 0 : entity.uri;
27
27
  if (StringUtils.isEmpty(entityURI)) {
28
28
  entityURI = this.entityUri;
29
29
  }
30
- return await this._personalizedFilterFetcher.loadFields(entityURI);
30
+ if (!this._filterMetadataStorage.has(entityURI)) {
31
+ const filterMetadata = await this._personalizedFilterFetcher.loadFields(entityURI);
32
+ this._filterMetadataStorage.set(entityURI, filterMetadata);
33
+ }
34
+ return this._filterMetadataStorage.get(entityURI);
31
35
  }
32
36
  };
33
37
  this._filterAssistentMode = true;
@@ -140,11 +144,11 @@ const SnkPersonalizedFilter = class {
140
144
  ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmCancel.title"), this.getMessage("snkPersonalizedFilter.confirmCancel.description"))
141
145
  .then((canCancel) => {
142
146
  var _a;
143
- if (canCancel) {
144
- this._filterAssistent = ObjectUtils.copy((_a = this._originalFilterAssistent) !== null && _a !== void 0 ? _a : {});
145
- this.ezCancel.emit();
146
- this._elButtonSave.enabled = false;
147
- }
147
+ if (!canCancel)
148
+ return;
149
+ this._filterAssistent = ObjectUtils.copy((_a = this._originalFilterAssistent) !== null && _a !== void 0 ? _a : {});
150
+ this.ezCancel.emit();
151
+ this._elButtonSave.enabled = false;
148
152
  });
149
153
  }
150
154
  handleTitleChange(name) {
@@ -177,14 +181,21 @@ const SnkPersonalizedFilter = class {
177
181
  }
178
182
  return (h("div", { class: "ez-flex" }, h("ez-alert", { alertType: "warn" }, this._filterAssistent.warningMessage)));
179
183
  }
184
+ buildContainerPersonalizedFilter() {
185
+ var _a, _b, _c;
186
+ if (this._filterAssistentMode) {
187
+ return (h(Fragment, null, h("div", { class: "ez-padding-top--small snk-personalized-filter__group" }, h("snk-expression-group", { ref: (el) => this._mainExpressionGroup = el, group: (_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent, messagesBuilder: this.messagesBuilder, onEzFilterGroupChange: this.handleFilterGroupChange.bind(this), filterId: this.filterId, entityURI: this.entityUri })), h("div", null, h("div", { class: "snk-personalized-filter__expression-input--line" }), h("ez-collapsible-box", { label: this.getMessage("snkPersonalizedFilter.info.titleCollapsible"), headerSize: "medium", value: true }, h("div", { class: "ez-box" }, h("div", { class: "ez-box__container" }, h("ez-text-area", { ref: (el) => this._elTextAreaExpression = el, enabled: false, label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.expression })))))));
188
+ }
189
+ else {
190
+ return (h(Fragment, null, h("span", { class: "ez-text ez-text--small ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkPersonalizedFilter.info.applyExpression")), h("ez-text-area", { label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.expression, onEzChange: (evt) => this.handleExpressionChange(evt.detail) }), this.getWarningMessageComponent()));
191
+ }
192
+ }
180
193
  render() {
181
- var _a, _b, _c, _d, _e;
194
+ var _a, _b;
182
195
  if (!((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent) && this._filterAssistentMode) {
183
196
  return;
184
197
  }
185
- 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._filterAssistentMode ?
186
- h(Fragment, null, h("div", { class: "ez-padding-top--small snk-personalized-filter__group" }, h("snk-expression-group", { ref: (el) => this._mainExpressionGroup = el, group: (_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.assistent, messagesBuilder: this.messagesBuilder, onEzFilterGroupChange: this.handleFilterGroupChange.bind(this), filterId: this.filterId, entityURI: this.entityUri })), h("div", null, h("div", { class: "snk-personalized-filter__expression-input--line" }), h("ez-collapsible-box", { label: this.getMessage("snkPersonalizedFilter.info.titleCollapsible"), headerSize: "medium", value: true }, h("div", { class: "ez-box" }, h("div", { class: "ez-box__container" }, h("ez-text-area", { ref: (el) => this._elTextAreaExpression = el, enabled: false, label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_d = this._filterAssistent) === null || _d === void 0 ? void 0 : _d.expression })))))) :
187
- h(Fragment, null, h("span", { class: "ez-text ez-text--small ez-text--bold ez-padding-bottom--medium" }, "Express\u00E3o a ser aplicada:"), h("ez-text-area", { label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_e = this._filterAssistent) === null || _e === void 0 ? void 0 : _e.expression, onEzChange: (evt) => this.handleExpressionChange(evt.detail) }), this.getWarningMessageComponent())))))));
198
+ 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.buildContainerPersonalizedFilter()))))));
188
199
  }
189
200
  static get watchers() { return {
190
201
  "filterId": ["loadFilter"]
@@ -1,10 +1,10 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, UserInterface } from '@sankhyalabs/core';
3
3
  import { c as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-3644f1b6.js';
4
- import { T as TaskbarElement } from './taskbar-elements-139b1058.js';
4
+ import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
5
5
  import './DataFetcher-b3d8b2d5.js';
6
6
  import './pesquisa-fetcher-bd6af0e3.js';
7
- import { P as PresentationMode } from './index-a255b326.js';
7
+ import { P as PresentationMode } from './index-1564817d.js';
8
8
  import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
9
9
  import './index-bdf75557.js';
10
10
  import './_commonjsHelpers-9943807e.js';
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
4
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-139b1058.js';
5
- import { P as PresentationMode } from './index-a255b326.js';
4
+ import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-2c761819.js';
5
+ import { P as PresentationMode } from './index-1564817d.js';
6
6
  import './index-bdf75557.js';
7
7
 
8
8
  const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-a7d3d3f1.js';
2
- import { P as PresentationMode } from './index-a255b326.js';
2
+ import { P as PresentationMode } from './index-1564817d.js';
3
3
  import { s as store } from './index-bdf75557.js';
4
4
 
5
5
  var TaskbarElement;