@sankhyalabs/sankhyablocks 6.10.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/cjs/{ConfigStorage-da2bf3bf.js → ConfigStorage-97468a0f.js} +28 -22
  2. package/dist/cjs/{PersonalizedFilterUtils-cfcd9af2.js → PersonalizedFilterUtils-9848e09b.js} +18 -64
  3. package/dist/cjs/{SnkFormConfigManager-d7cc9118.js → SnkFormConfigManager-bef6e022.js} +1 -1
  4. package/dist/cjs/{SnkMessageBuilder-a5a9b437.js → SnkMessageBuilder-f40df6d4.js} +18 -2
  5. package/dist/cjs/{filter-bar-config-fetcher-58cfc12e.js → filter-bar-config-fetcher-a7747f69.js} +22 -5
  6. package/dist/cjs/index-8d94b7e0.js +7 -0
  7. package/dist/cjs/index-c5771aba.js +44 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  10. package/dist/cjs/snk-application.cjs.entry.js +3 -3
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
  12. package/dist/cjs/{snk-data-unit-9d03800c.js → snk-data-unit-b14563fc.js} +4 -2
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +5 -5
  15. package/dist/cjs/snk-expression-group_2.cjs.entry.js +542 -0
  16. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +66 -0
  17. package/dist/cjs/snk-filter-bar.cjs.entry.js +14 -14
  18. package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
  19. package/dist/cjs/{snk-expression-item_3.cjs.entry.js → snk-filter-field-search_2.cjs.entry.js} +23 -315
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -2
  22. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-grid.cjs.entry.js +8 -2
  25. package/dist/cjs/{snk-guides-viewer-36766466.js → snk-guides-viewer-897368ea.js} +1 -1
  26. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  27. package/dist/cjs/snk-personalized-filter.cjs.entry.js +122 -31
  28. package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -2
  29. package/dist/collection/collection-manifest.json +2 -0
  30. package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -1
  31. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
  32. package/dist/collection/components/snk-grid/snk-grid.js +6 -0
  33. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +5 -1
  34. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +114 -23
  35. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +4 -6
  36. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +2 -1
  37. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.css +10 -0
  38. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.js +95 -0
  39. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.css +66 -0
  40. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.js +158 -0
  41. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +8 -2
  42. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +14 -23
  43. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +14 -4
  44. package/dist/collection/lib/configs/ConfigStorage.js +5 -3
  45. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +22 -5
  46. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +22 -18
  47. package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +18 -2
  48. package/dist/components/ConfigStorage.js +27 -21
  49. package/dist/components/PersonalizedFilterUtils.js +14 -23
  50. package/dist/components/SnkMessageBuilder.js +18 -2
  51. package/dist/components/filter-bar-config-fetcher.js +22 -5
  52. package/dist/components/index.d.ts +2 -0
  53. package/dist/components/index.js +2 -0
  54. package/dist/components/snk-crud.js +34 -22
  55. package/dist/components/snk-data-unit2.js +3 -1
  56. package/dist/components/snk-detail-view2.js +49 -27
  57. package/dist/components/snk-expression-group2.js +4 -6
  58. package/dist/components/snk-expression-item2.js +2 -1
  59. package/dist/components/snk-filter-advanced-mode.d.ts +11 -0
  60. package/dist/components/snk-filter-advanced-mode.js +6 -0
  61. package/dist/components/snk-filter-advanced-mode2.js +46 -0
  62. package/dist/components/snk-filter-assistent-mode.d.ts +11 -0
  63. package/dist/components/snk-filter-assistent-mode.js +6 -0
  64. package/dist/components/snk-filter-assistent-mode2.js +77 -0
  65. package/dist/components/snk-filter-bar2.js +17 -5
  66. package/dist/components/snk-filter-param-config2.js +6 -0
  67. package/dist/components/snk-grid2.js +28 -10
  68. package/dist/components/snk-personalized-filter2.js +131 -28
  69. package/dist/components/snk-simple-crud2.js +12 -2
  70. package/dist/esm/{ConfigStorage-f1e805a0.js → ConfigStorage-02f17a26.js} +28 -22
  71. package/dist/esm/{PersonalizedFilterUtils-1a167d89.js → PersonalizedFilterUtils-731cae01.js} +16 -62
  72. package/dist/esm/{SnkFormConfigManager-324f6dc7.js → SnkFormConfigManager-cd9e6cab.js} +1 -1
  73. package/dist/esm/{SnkMessageBuilder-76f62087.js → SnkMessageBuilder-5be56185.js} +18 -2
  74. package/dist/esm/{filter-bar-config-fetcher-a358b8e0.js → filter-bar-config-fetcher-790283d8.js} +22 -5
  75. package/dist/esm/index-620ac460.js +7 -0
  76. package/dist/esm/index-ae591a44.js +44 -0
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/esm/sankhyablocks.js +1 -1
  79. package/dist/esm/snk-application.entry.js +3 -3
  80. package/dist/esm/snk-data-exporter.entry.js +2 -2
  81. package/dist/esm/{snk-data-unit-0ff2d644.js → snk-data-unit-d44b6bc0.js} +4 -2
  82. package/dist/esm/snk-data-unit.entry.js +2 -2
  83. package/dist/esm/snk-detail-view.entry.js +5 -5
  84. package/dist/esm/snk-expression-group_2.entry.js +537 -0
  85. package/dist/esm/snk-filter-advanced-mode_2.entry.js +61 -0
  86. package/dist/esm/snk-filter-bar.entry.js +5 -5
  87. package/dist/esm/snk-filter-detail.entry.js +3 -3
  88. package/dist/esm/{snk-expression-item_3.entry.js → snk-filter-field-search_2.entry.js} +12 -303
  89. package/dist/esm/snk-filter-modal-item.entry.js +2 -2
  90. package/dist/esm/snk-filter-modal.entry.js +2 -2
  91. package/dist/esm/snk-form.entry.js +3 -3
  92. package/dist/esm/snk-grid-config.entry.js +2 -2
  93. package/dist/esm/snk-grid.entry.js +8 -2
  94. package/dist/esm/{snk-guides-viewer-e7209909.js → snk-guides-viewer-579c70cc.js} +1 -1
  95. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  96. package/dist/esm/snk-personalized-filter.entry.js +119 -28
  97. package/dist/esm/snk-simple-crud.entry.js +12 -2
  98. package/dist/sankhyablocks/{p-522172e1.entry.js → p-1005cf8e.entry.js} +1 -1
  99. package/dist/sankhyablocks/{p-8f6575c8.entry.js → p-19fdcf88.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-18b74675.entry.js → p-1fe2976e.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-2227bb94.js +1 -0
  102. package/dist/sankhyablocks/p-386102a7.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-7a075ae6.js → p-3b059f4e.js} +1 -1
  104. package/dist/sankhyablocks/p-48156672.entry.js +1 -0
  105. package/dist/sankhyablocks/p-4af6cbef.entry.js +1 -0
  106. package/dist/sankhyablocks/p-4bbc7aac.entry.js +1 -0
  107. package/dist/sankhyablocks/{p-3251999f.entry.js → p-4f687570.entry.js} +1 -1
  108. package/dist/sankhyablocks/p-5098f618.js +1 -0
  109. package/dist/sankhyablocks/{p-652b9081.js → p-7e486ac9.js} +1 -1
  110. package/dist/sankhyablocks/p-7e636457.entry.js +1 -0
  111. package/dist/sankhyablocks/p-7f1c4687.js +56 -0
  112. package/dist/sankhyablocks/{p-ed9e1e52.entry.js → p-88f4ef73.entry.js} +1 -1
  113. package/dist/sankhyablocks/{p-4f3df9b6.js → p-90a926c7.js} +1 -1
  114. package/dist/sankhyablocks/{p-eef26a01.entry.js → p-90e7c3a2.entry.js} +1 -1
  115. package/dist/sankhyablocks/p-933c0c0b.js +1 -0
  116. package/dist/sankhyablocks/p-97720467.entry.js +1 -0
  117. package/dist/sankhyablocks/{p-bd840081.entry.js → p-9fa9331b.entry.js} +1 -1
  118. package/dist/sankhyablocks/{p-40a5d35e.entry.js → p-ad6673fb.entry.js} +1 -1
  119. package/dist/sankhyablocks/p-bd86c9d3.entry.js +1 -0
  120. package/dist/sankhyablocks/{p-8d583a79.entry.js → p-c39b27a3.entry.js} +1 -1
  121. package/dist/sankhyablocks/p-f4184ce7.js +1 -0
  122. package/dist/sankhyablocks/{p-56378a3b.js → p-fb1e5b6d.js} +1 -1
  123. package/dist/sankhyablocks/p-fcc487ea.entry.js +1 -0
  124. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  125. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  126. package/dist/types/components/snk-personalized-filter/interfaces/IPersonalizedFilter.d.ts +4 -0
  127. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +17 -6
  128. package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +2 -2
  129. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.d.ts +20 -0
  130. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.d.ts +31 -0
  131. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +6 -0
  132. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +2 -2
  133. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +2 -1
  134. package/dist/types/components.d.ts +103 -2
  135. package/dist/types/lib/configs/ConfigStorage.d.ts +3 -2
  136. package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +2 -1
  137. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  138. package/package.json +1 -1
  139. package/react/components.d.ts +2 -0
  140. package/react/components.js +2 -0
  141. package/react/components.js.map +1 -1
  142. package/dist/cjs/IExpressionItem-0e32ebb7.js +0 -7
  143. package/dist/cjs/snk-expression-group.cjs.entry.js +0 -250
  144. package/dist/esm/IExpressionItem-21f225bf.js +0 -7
  145. package/dist/esm/snk-expression-group.entry.js +0 -246
  146. package/dist/sankhyablocks/p-432a73a8.js +0 -1
  147. package/dist/sankhyablocks/p-63bff2a8.js +0 -1
  148. package/dist/sankhyablocks/p-6490021d.entry.js +0 -1
  149. package/dist/sankhyablocks/p-7d68a43a.js +0 -1
  150. package/dist/sankhyablocks/p-7fd8a0ab.entry.js +0 -1
  151. package/dist/sankhyablocks/p-9f34a127.entry.js +0 -1
  152. package/dist/sankhyablocks/p-a357d13c.entry.js +0 -1
  153. package/dist/sankhyablocks/p-d4adf773.js +0 -68
  154. package/dist/sankhyablocks/p-d9586ead.entry.js +0 -1
  155. package/dist/sankhyablocks/p-eb30a52a.entry.js +0 -1
  156. package/dist/sankhyablocks/p-f8ce17d3.entry.js +0 -1
@@ -0,0 +1,537 @@
1
+ import { r as registerInstance, c as createEvent, h, f as forceUpdate, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
+ import { a as FilterGroupCondition, F as FilterOperand } from './index-ae591a44.js';
3
+ import { ApplicationUtils, CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
4
+ import { ApplicationContext, StringUtils, ElementIDUtils, UserInterface } from '@sankhyalabs/core';
5
+ import { S as SelectedItemType } from './index-620ac460.js';
6
+ import { fieldBuilder } from '@sankhyalabs/ezui/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder';
7
+ import { s as store } from './index-bdf75557.js';
8
+ import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
9
+
10
+ const snkExpressionGroupCss = ".sc-snk-expression-group-h{display:block;--snk-expression-group--container-condition--width:184px;--snk-expression-group--container-condition--height:38px;--snk-expression-group--container-condition--border-radius:var(--border--radius-medium, 12px);--snk-expression-group--container-option--width:85px;--snk-expression-group__container-condition--background-and:#66B6A0;--snk-expression-group__container-condition--background-or:#EBC65E;--snk-expression-group__container-expression--padding-left:26px;--snk-expression-group__background-color-dashed:var(--background--body, #fafcff)}.snk-expression-group__container-condition.sc-snk-expression-group{width:var(--snk-expression-group--container-condition--width);height:var(--snk-expression-group--container-condition--height);border-radius:var(--snk-expression-group--container-condition--border-radius);z-index:var(--more-visible--2x, 3)}.snk-expression-group__container-option.sc-snk-expression-group{width:var(--snk-expression-group--container-option--width)}.snk-expression-group__container-condition[data-condition=\"AND\"].sc-snk-expression-group{background-color:var(--snk-expression-group__container-condition--background-and)}.snk-expression-group__container-condition[data-condition=\"OR\"].sc-snk-expression-group{background-color:var(--snk-expression-group__container-condition--background-or)}.snk-expression-group__container-expression.sc-snk-expression-group{padding-left:var(--snk-expression-group__container-expression--padding-left)}.dashes.sc-snk-expression-group{z-index:var(--visible, 1);background:var(--snk-expression-group__background-color-dashed);border-left:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:58px;margin-left:-15px;margin-top:-36.5px}.horizontal-dashes.sc-snk-expression-group{z-index:var(--more-visible, 2);border-bottom:2px dashed var(--text-secondary, #A2ABB9);position:absolute;width:15px;height:54px;margin-left:-15px;margin-top:-33.5px}.hidden.sc-snk-expression-group{display:none}";
11
+
12
+ const SnkExpressionGroup = class {
13
+ constructor(hostRef) {
14
+ registerInstance(this, hostRef);
15
+ this.ezFilterGroupChange = createEvent(this, "ezFilterGroupChange", 7);
16
+ this.ezFilterGroupRemove = createEvent(this, "ezFilterGroupRemove", 7);
17
+ this.ezExpressionGroupLayoutChanged = createEvent(this, "ezExpressionLayoutChanged", 7);
18
+ this.FIRST_LEVEL = "0";
19
+ this.LIMIT_GROUP_LEVEL = 4;
20
+ this.application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
21
+ this._conditionOperator = FilterGroupCondition.AND;
22
+ this._group = undefined;
23
+ this._selfTop = 0;
24
+ this.canAddExpression = true;
25
+ this._showDashes = true;
26
+ this.parentTop = 0;
27
+ this.group = undefined;
28
+ this.messagesBuilder = undefined;
29
+ this.filterId = undefined;
30
+ this.entityURI = undefined;
31
+ }
32
+ /**
33
+ * Listener para capturar adição e remoção de grupos e items de expressão.
34
+ */
35
+ todoCompletedHandler(_) {
36
+ this.updateDashes();
37
+ }
38
+ /*
39
+ * Retorna o grupo da expressão.
40
+ */
41
+ async getExpressionGroup() {
42
+ return this._group;
43
+ }
44
+ watchGroup(newValue) {
45
+ this._group = newValue;
46
+ this._conditionOperator = this.getOperand();
47
+ }
48
+ componentWillLoad() {
49
+ this._group = this.group;
50
+ this._conditionOperator = this.getOperand();
51
+ if (!this.getDataGroupLevel()) {
52
+ this._element.setAttribute('data-group-level', this.FIRST_LEVEL);
53
+ }
54
+ this.canAddExpression = this.group.items.every(this.isFilledItem);
55
+ }
56
+ componentDidRender() {
57
+ this.setSelfTop();
58
+ }
59
+ changeHandler() {
60
+ this.ezExpressionGroupLayoutChanged.emit();
61
+ }
62
+ /**
63
+ * Função que define o valor atualizado da propriedade top do elemento em tela para calcular o tamanho do tracejado.
64
+ */
65
+ setSelfTop() {
66
+ this._selfTop = this._element.getBoundingClientRect().top;
67
+ }
68
+ /**
69
+ * Função que calcula o tamanho que deve ter o tracejado.
70
+ */
71
+ getDashedHeight() {
72
+ return this._selfTop - this.parentTop;
73
+ }
74
+ getOperand() {
75
+ return !this._group.operand ? FilterGroupCondition.AND : this._group.operand;
76
+ }
77
+ getMessage(key, params) {
78
+ return this.application.messagesBuilder.getMessage(key, params);
79
+ }
80
+ updateDashes() {
81
+ this._showDashes = false;
82
+ this.setSelfTop();
83
+ this._showDashes = true;
84
+ }
85
+ renderExpressionItems() {
86
+ var _a;
87
+ return (_a = this._group.items) === null || _a === void 0 ? void 0 : _a.map((item) => (h("snk-expression-item", { key: item.id, class: "ez-padding-top--small snk-expression-group__item", expression: item, canRemove: this._group.items.length > 1, onEzFilterItemChange: () => this.handleFilterItemChange(), onEzFilterItemRemove: (evt) => this.handleFilterItemRemove(evt, item.id), messagesBuilder: this.messagesBuilder, entityURI: this.entityURI })));
88
+ }
89
+ renderGroups() {
90
+ var _a;
91
+ const currentLevel = parseInt(this.getDataGroupLevel() || '0');
92
+ const newLevel = currentLevel + 1;
93
+ return (_a = this._group.childrenGroups) === null || _a === void 0 ? void 0 : _a.map((group) => (h("snk-expression-group", { key: group.id, group: group, messagesBuilder: this.messagesBuilder, parentTop: this._selfTop, "data-group-level": newLevel, onEzFilterGroupRemove: (evt) => this.handleFilterGroupRemove(evt, group.id), entityURI: this.entityURI })));
94
+ }
95
+ handleFilterGroupRemove(evt, groupId) {
96
+ this.onStopPropagation(evt);
97
+ this._group.childrenGroups = this._group.childrenGroups.filter(group => group.id !== groupId);
98
+ forceUpdate(this);
99
+ this.ezFilterGroupChange.emit(this._group);
100
+ this.changeHandler();
101
+ }
102
+ handleFilterItemRemove(evt, itemId) {
103
+ this.onStopPropagation(evt);
104
+ this._group.items = this._group.items.filter(item => item.id !== itemId);
105
+ forceUpdate(this);
106
+ this.ezFilterGroupChange.emit(this._group);
107
+ this.changeHandler();
108
+ this.canAddExpression = true;
109
+ }
110
+ isFilledItem(item) {
111
+ if (!item.fieldName || !item.operand)
112
+ return false;
113
+ if (item.operand === 'NULL' || item.operand === 'NOT_NULL') {
114
+ return true;
115
+ }
116
+ else {
117
+ return item.paramVariable || (item.userInterface === 'SWITCH') ? true : !!item.value;
118
+ }
119
+ }
120
+ handleFilterItemChange() {
121
+ this.ezFilterGroupChange.emit(this._group);
122
+ this.canAddExpression = this.group.items.every(this.isFilledItem);
123
+ }
124
+ handleAddExpression() {
125
+ const newItem = {
126
+ id: StringUtils.generateUUID(),
127
+ entityName: "",
128
+ fieldName: "",
129
+ description: "",
130
+ label: "Valor",
131
+ type: undefined,
132
+ expression: undefined,
133
+ operand: undefined,
134
+ paramVariable: false,
135
+ value: undefined,
136
+ systemConfig: null,
137
+ userConfig: null
138
+ };
139
+ this._group.items.push(newItem);
140
+ forceUpdate(this);
141
+ this.ezFilterGroupChange.emit(this.group);
142
+ this.changeHandler();
143
+ this.canAddExpression = false;
144
+ }
145
+ handleAddGroup() {
146
+ var _a;
147
+ const newGroup = {
148
+ id: StringUtils.generateUUID(),
149
+ items: [
150
+ {
151
+ id: StringUtils.generateUUID(),
152
+ entityName: "",
153
+ fieldName: "",
154
+ description: "",
155
+ label: "Valor",
156
+ type: undefined,
157
+ expression: undefined,
158
+ operand: undefined,
159
+ paramVariable: false,
160
+ value: undefined,
161
+ systemConfig: null,
162
+ userConfig: null
163
+ }
164
+ ],
165
+ childrenGroups: [],
166
+ operand: FilterGroupCondition.AND
167
+ };
168
+ this._group.childrenGroups = (_a = this._group.childrenGroups) !== null && _a !== void 0 ? _a : [];
169
+ this._group.childrenGroups.push(newGroup);
170
+ forceUpdate(this);
171
+ this.ezFilterGroupChange.emit(this.group);
172
+ this.changeHandler();
173
+ }
174
+ buildGroupStyle() {
175
+ return {
176
+ height: `${this.getDashedHeight()}px`,
177
+ marginTop: `${-(this.getDashedHeight()) + 20}px`,
178
+ };
179
+ }
180
+ handleConditionOperatorChange(newOperator) {
181
+ this._conditionOperator = newOperator;
182
+ this._group.operand = FilterGroupCondition[newOperator];
183
+ this.ezFilterGroupChange.emit(this._group);
184
+ }
185
+ confirmRemoveGroup(evt) {
186
+ this.onStopPropagation(evt);
187
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmGroup.title"), this.getMessage("snkPersonalizedFilter.confirmGroup.description"))
188
+ .then((canRemove) => {
189
+ if (canRemove) {
190
+ this.ezFilterGroupRemove.emit(this._group);
191
+ }
192
+ });
193
+ }
194
+ getTooltipMessageForOperator() {
195
+ const groupLevel = this.getDataGroupLevel();
196
+ if (groupLevel === this.FIRST_LEVEL && this._group.items.length === 1) {
197
+ return this.getMessage("snkPersonalizedFilter.operador.firstLevel");
198
+ }
199
+ if (this._conditionOperator === FilterGroupCondition.AND) {
200
+ return this.getMessage("snkPersonalizedFilter.operador.and");
201
+ }
202
+ else if (this._conditionOperator === FilterGroupCondition.OR) {
203
+ return this.getMessage("snkPersonalizedFilter.operador.or");
204
+ }
205
+ }
206
+ getDataGroupLevel() {
207
+ return this._element.getAttribute('data-group-level');
208
+ }
209
+ canAddGroup() {
210
+ const dataGroupLevel = Number(this.getDataGroupLevel() || this.FIRST_LEVEL);
211
+ return dataGroupLevel < this.LIMIT_GROUP_LEVEL;
212
+ }
213
+ isFirstLevel() {
214
+ return Boolean(this.getDataGroupLevel() === this.FIRST_LEVEL);
215
+ }
216
+ onStopPropagation(evt) {
217
+ evt.preventDefault();
218
+ evt.stopPropagation();
219
+ }
220
+ getMessageAddTooltip() {
221
+ if (this.isFirstLevel()) {
222
+ const allValidItems = this.group.items.every(item => {
223
+ if (!item.fieldName || !item.operand)
224
+ return false;
225
+ return item.paramVariable || !!item.value;
226
+ });
227
+ return allValidItems ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
228
+ }
229
+ else {
230
+ return this.canAddExpression ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
231
+ }
232
+ }
233
+ canChangeGroupCondition() {
234
+ const membersCount = this._group.items.length + this._group.childrenGroups.length;
235
+ return membersCount > 1;
236
+ }
237
+ render() {
238
+ const canAddGroup = this.canAddGroup();
239
+ return (h(Host, null, h("div", { class: !this.isFirstLevel() && this._showDashes ? 'dashes' : 'hidden', style: this.buildGroupStyle() }), h("div", { class: !this.isFirstLevel() && this._showDashes ? 'horizontal-dashes' : 'hidden' }), h("div", { class: 'ez-flex ez-flex--align-items-center' }, h("div", { class: 'snk-expression-group__container-condition ez-flex ez-flex-item--align-center ez-flex--align-items-center', "data-condition": this._conditionOperator, title: this.getTooltipMessageForOperator() }, h("label", { class: "ez-label ez-padding-right--medium ez-padding-left--medium ez-title--primary" }, this.getMessage("snkPersonalizedFilter.info.condition")), h("div", null, h("ez-combo-box", Object.assign({ class: "snk-expression-group__container-option", canShowError: false, mode: "slim", suppressEmptyOption: true, enabled: this.canChangeGroupCondition(), value: this._conditionOperator, onEzChange: (evt) => this.handleConditionOperatorChange(evt.detail.value) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `comboBoxConditions_level_${this.getDataGroupLevel()}` }), h("option", { value: FilterGroupCondition.AND }, "E"), h("option", { value: FilterGroupCondition.OR }, "OU")))), h("ez-button", { class: "ez-padding-right--medium ez-padding-left--medium", mode: "icon", iconName: "plus", size: "small", enabled: this.canAddExpression, title: this.getMessageAddTooltip(), onClick: () => this.handleAddExpression() }), h("ez-button", { label: this.getMessage("snkPersonalizedFilter.info.addGroup"), size: "small", enabled: canAddGroup, title: !canAddGroup ? this.getMessage('snkPersonalizedFilter.info.labelDisabledAddGroupButton', { LIMIT_GROUP_LEVEL: this.LIMIT_GROUP_LEVEL + 1 }) : '', onClick: () => this.handleAddGroup() }, h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: "plus" })), !this.isFirstLevel() && h("ez-button", { title: this.getMessage("snkPersonalizedFilter.info.labelDeleteExpression"), class: "ez-padding-left--medium", mode: "icon", iconName: "delete", size: "small", onClick: (evt) => this.confirmRemoveGroup(evt) })), h("div", { class: "ez-padding-top--small snk-expression-group__container-expression" }, h("div", { class: "ez-padding-top--small" }, this.renderExpressionItems())), h("div", { class: "ez-padding-top--small snk-expression-group__container-expression" }, h("div", { class: "ez-padding-top--small" }, this.renderGroups()))));
240
+ }
241
+ get _element() { return getElement(this); }
242
+ static get watchers() { return {
243
+ "group": ["watchGroup"]
244
+ }; }
245
+ };
246
+ SnkExpressionGroup.style = snkExpressionGroupCss;
247
+
248
+ const defaultsOperand = [
249
+ { label: "Igual (=)", value: "EQUAL" },
250
+ { label: "Diferente (<>)", value: "DIFFERENT" },
251
+ { label: "Contendo (LIKE)", value: "LIKE" },
252
+ { label: "Contido em (IN)", value: "IN" },
253
+ { label: "Iniciado com (%?)", value: "START_WITH" },
254
+ { label: "Terminado com (?%)", value: "FINISHED_WITH" },
255
+ { label: "Vazio (NULL)", value: "NULL" },
256
+ { label: "Não Vazio (NOT NULL)", value: "NOT_NULL" },
257
+ ];
258
+ const FilterOperandDefault = defaultsOperand.concat([
259
+ { label: "Maior (>)", value: "LARGER" },
260
+ { label: "Maior ou Igual (>=)", value: "LARGER_EQUAL" },
261
+ { label: "Menor (<)", value: "SMALLER" },
262
+ { label: "Menor ou Igual (<=)", value: "SMALLER_EQUAL" }
263
+ ]);
264
+ const FilterOperandTypeTextSearch = defaultsOperand;
265
+ const FIELD_TYPE_SEARCH_AND_TEXT = [
266
+ UserInterface.SEARCH,
267
+ UserInterface.SHORTTEXT,
268
+ UserInterface.PASSWORD,
269
+ UserInterface.MASKEDTEXT,
270
+ UserInterface.LONGTEXT,
271
+ UserInterface.HTML
272
+ ];
273
+
274
+ 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}";
275
+
276
+ const SnkExpressionItem = class {
277
+ constructor(hostRef) {
278
+ registerInstance(this, hostRef);
279
+ this.ezFilterItemChange = createEvent(this, "ezFilterItemChange", 7);
280
+ this.ezFilterItemRemove = createEvent(this, "ezFilterItemRemove", 7);
281
+ this.application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
282
+ this.filterOperandDefault = FilterOperandDefault;
283
+ this.filterOperandTypeTextSearch = FilterOperandTypeTextSearch;
284
+ this.DEFAULT_FIELD_NAME = 'NOT_DEFINED';
285
+ this._showValueVariable = false;
286
+ this._fieldSelected = undefined;
287
+ this._optionNotNull = false;
288
+ this.expression = undefined;
289
+ this.canRemove = true;
290
+ this.messagesBuilder = undefined;
291
+ this.entityURI = undefined;
292
+ }
293
+ expressionChanged(newValue, oldValue) {
294
+ if (newValue !== oldValue) {
295
+ this.ezFilterItemChange.emit(newValue);
296
+ this.updateFieldSelected();
297
+ }
298
+ }
299
+ componentWillLoad() {
300
+ this._dataSourceFetcher = store.get(`filterFieldsDataSource.${this.entityURI}`);
301
+ store.onChange(`filterFieldsDataSource.${this.entityURI}`, () => {
302
+ this._dataSourceFetcher = store.get(`filterFieldsDataSource.${this.entityURI}`);
303
+ });
304
+ if (this.expression) {
305
+ this.updateFieldSelected();
306
+ this._optionNotNull = this.expression.operand === 'NULL' || this.expression.operand === 'NOT_NULL';
307
+ }
308
+ }
309
+ componentDidRender() {
310
+ var _a;
311
+ this._showValueVariable = (_a = this._elValueVariable) === null || _a === void 0 ? void 0 : _a.value;
312
+ }
313
+ updateFieldSelected() {
314
+ const field = {
315
+ dataType: this.expression.type,
316
+ description: this.expression.description,
317
+ name: this.expression.fieldName,
318
+ label: this.expression.fieldLabel,
319
+ entityName: this.expression.entityName,
320
+ onlyDate: false,
321
+ path: this.expression.description,
322
+ properties: this.expressionPropsToFieldProps(this.expression.props),
323
+ type: SelectedItemType.FIELD,
324
+ uri: "",
325
+ userInterface: this.expression.userInterface
326
+ };
327
+ this._fieldSelected = field;
328
+ }
329
+ buildExpression(entityName, fieldName, entityPath) {
330
+ if (entityPath.length > 0) {
331
+ entityPath.shift();
332
+ }
333
+ return entityPath.length > 0 ? `${entityPath.join("->")}->${fieldName}` : `${entityName}.${fieldName}`;
334
+ }
335
+ setValueExpression(key, value) {
336
+ if (key === "fieldName") {
337
+ this.expression.description = value.path;
338
+ this.expression.expression = this.buildExpression(value.entityName, value.name, value.entityPath);
339
+ this.expression.fieldName = value.name;
340
+ this.expression.fieldLabel = value.label;
341
+ this.expression.type = value.dataType;
342
+ this.expression.userInterface = value.userInterface;
343
+ this.expression.entityName = value.entityName;
344
+ this.expression.value = undefined;
345
+ this.expression.props = this.fieldPropsToExpressionProps(value.properties);
346
+ }
347
+ else {
348
+ this.expression[key] = value;
349
+ }
350
+ this.expressionChanged(this.expression);
351
+ }
352
+ fieldPropsToExpressionProps(properties) {
353
+ const parsedProps = [];
354
+ if (!properties) {
355
+ return parsedProps;
356
+ }
357
+ for (const key in properties) {
358
+ let propValue = properties[key];
359
+ if (typeof propValue == "object") {
360
+ propValue = JSON.stringify(propValue);
361
+ }
362
+ parsedProps.push({ name: key, value: propValue });
363
+ }
364
+ return parsedProps;
365
+ }
366
+ expressionPropsToFieldProps(properties) {
367
+ const parsedProps = {};
368
+ if (!properties) {
369
+ return parsedProps;
370
+ }
371
+ properties.forEach(prop => {
372
+ try {
373
+ parsedProps[prop.name] = JSON.parse(prop.value);
374
+ }
375
+ catch (_a) {
376
+ parsedProps[prop.name] = prop.value;
377
+ }
378
+ });
379
+ return parsedProps;
380
+ }
381
+ getMessage(key, params) {
382
+ return this.application.messagesBuilder.getMessage(key, params);
383
+ }
384
+ handleSelectItem(filterField) {
385
+ if (this.hasNoChanges(filterField)) {
386
+ this._elFilterInput.value = filterField.path;
387
+ return;
388
+ }
389
+ if (filterField.type === SelectedItemType.FIELD) {
390
+ const field = filterField;
391
+ this._fieldSelected = field;
392
+ this.setValueExpression("fieldName", field);
393
+ }
394
+ }
395
+ hasNoChanges(filterField) {
396
+ return filterField.name === this.expression.fieldName && filterField.path === this.expression.description;
397
+ }
398
+ handleFocus() {
399
+ if (this._elFilterFieldSearch)
400
+ this._elFilterFieldSearch.show();
401
+ }
402
+ handleChangeFilterInput(evt) {
403
+ this._elFilterFieldSearch.applyFilter(evt.detail);
404
+ }
405
+ handleChangeValueVariable(showValueVariable) {
406
+ this._showValueVariable = showValueVariable;
407
+ if (this._elFieldDynamic) {
408
+ this._elFieldDynamic.value = undefined;
409
+ this._elFieldDynamic.enabled = !showValueVariable;
410
+ }
411
+ this.expression["paramVariable"] = showValueVariable;
412
+ this.expressionChanged(this.expression);
413
+ }
414
+ openSnkFilterParamConfig() {
415
+ var _a;
416
+ (_a = this._elFilterParamConfigRef) === null || _a === void 0 ? void 0 : _a.open(this.expression).then(this.onOpenPromiseReady.bind(this)).catch(error => {
417
+ console.error(error);
418
+ });
419
+ }
420
+ onOpenPromiseReady(changes) {
421
+ this.expression = changes;
422
+ }
423
+ buildOptionsOperator() {
424
+ var _a;
425
+ if (FIELD_TYPE_SEARCH_AND_TEXT.includes((_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.userInterface)) {
426
+ return this.filterOperandTypeTextSearch;
427
+ }
428
+ else {
429
+ return this.filterOperandDefault;
430
+ }
431
+ }
432
+ handleChangeOperator(optionSelected) {
433
+ this.checkOptionIsNull(optionSelected);
434
+ this.setValueExpression("operand", optionSelected);
435
+ }
436
+ checkOptionIsNull(optionSelected) {
437
+ const filterOperandValue = FilterOperand[optionSelected];
438
+ if ([FilterOperand.NULL, FilterOperand.NOT_NULL].includes(filterOperandValue)) {
439
+ this._optionNotNull = true;
440
+ if (this._elFieldDynamic) {
441
+ this._elFieldDynamic.enabled = false;
442
+ this._elFieldDynamic.value = undefined;
443
+ }
444
+ }
445
+ else {
446
+ this._optionNotNull = false;
447
+ if (this._elFieldDynamic) {
448
+ this._elFieldDynamic.enabled = this._showValueVariable ? false : true;
449
+ }
450
+ }
451
+ }
452
+ confirmRemove(evt) {
453
+ evt.preventDefault();
454
+ evt.stopPropagation();
455
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmExpression.title"), this.getMessage("snkPersonalizedFilter.confirmExpression.description"))
456
+ .then((canRemove) => {
457
+ if (canRemove) {
458
+ this.ezFilterItemRemove.emit(this.expression);
459
+ }
460
+ });
461
+ }
462
+ buildFieldByType() {
463
+ var _a, _b, _c;
464
+ if (!this._fieldSelected)
465
+ return;
466
+ const inputFieldData = (_a = fieldBuilder(this.configureFieldByType())) === null || _a === void 0 ? void 0 : _a.$children$.shift();
467
+ 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)) {
468
+ inputFieldData.$attrs$.enabled = false;
469
+ }
470
+ if (this.expression.value != undefined) {
471
+ inputFieldData.$attrs$.value = this.getExpressiontValue(this.expression);
472
+ }
473
+ inputFieldData.$attrs$.onEzChange = (event) => {
474
+ this.setValueExpression("value", event.target.value);
475
+ };
476
+ if (this.expression.userInterface === 'SWITCH' && this.expression.value == undefined) {
477
+ this.setValueExpression("value", false);
478
+ }
479
+ return h(inputFieldData.$tag$, Object.assign(Object.assign({}, inputFieldData.$attrs$), { ref: (el) => {
480
+ this._elFieldDynamic = el;
481
+ }, label: this.expression.fieldLabel || this._fieldSelected.label }));
482
+ }
483
+ getExpressiontValue(expression) {
484
+ return convertType(expression.type, expression.value);
485
+ }
486
+ configureFieldByType() {
487
+ var _a, _b;
488
+ const field = {
489
+ userInterface: this._fieldSelected.userInterface,
490
+ name: this._fieldSelected.name,
491
+ label: this._fieldSelected.label,
492
+ canShowError: false
493
+ };
494
+ switch (field.userInterface) {
495
+ case UserInterface.OPTIONSELECTOR:
496
+ field.props = {
497
+ options: (_b = (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.options,
498
+ };
499
+ break;
500
+ case UserInterface.LONGTEXT:
501
+ field.rows = 1;
502
+ break;
503
+ case UserInterface.SEARCH:
504
+ field.optionLoader = searchArgument => this.setCriteriaSearch(searchArgument, this.application);
505
+ break;
506
+ }
507
+ return field;
508
+ }
509
+ setCriteriaSearch({ mode, argument }, application) {
510
+ var _a, _b;
511
+ if (application == undefined)
512
+ return;
513
+ const searchOptions = {
514
+ showInactives: false
515
+ };
516
+ const options = {
517
+ entity: (_b = (_a = this._fieldSelected) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.ENTITYNAME,
518
+ searchOptions,
519
+ entityDescription: this._fieldSelected.description
520
+ };
521
+ return application.executePreparedSearch(mode, argument, options);
522
+ }
523
+ render() {
524
+ var _a;
525
+ 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 ?
526
+ h("ez-number-input", { label: "Valor", canShowError: false, enabled: (!this._showValueVariable && !this._optionNotNull) }) :
527
+ this.buildFieldByType()), h("div", { class: "box__container--input-value-variable" }, !this._optionNotNull &&
528
+ 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) &&
529
+ h("ez-icon", Object.assign({ class: "box__container--input-value-variable--icon", size: "large", iconName: "settings-inverted" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: 'iconConfig' }, { title: this.getMessage("snkPersonalizedFilter.info.titleTooltip"), onClick: () => this.openSnkFilterParamConfig() })), h("snk-filter-param-config", { ref: (el) => this._elFilterParamConfigRef = el, messagesBuilder: this.messagesBuilder })), h("div", { class: "box__container--button-delete" }, h("div", { class: "box__container--button-delete--icon" }, h("ez-button", { mode: "icon", iconName: "delete", enabled: this.canRemove, label: this.getMessage("snkPersonalizedFilter.info.labelDeleteItem"), onClick: (evt) => this.confirmRemove(evt) })))))));
530
+ }
531
+ static get watchers() { return {
532
+ "expression": ["expressionChanged"]
533
+ }; }
534
+ };
535
+ SnkExpressionItem.style = snkExpressionItemCss;
536
+
537
+ export { SnkExpressionGroup as snk_expression_group, SnkExpressionItem as snk_expression_item };
@@ -0,0 +1,61 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-a7d3d3f1.js';
2
+ import { StringUtils } from '@sankhyalabs/core';
3
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-731cae01.js';
4
+ import './index-ae591a44.js';
5
+ import './filter-item-type.enum-5028ed3f.js';
6
+
7
+ const snkFilterAdvancedModeCss = ".sc-snk-filter-advanced-mode-h{display:block;--snk-personalized-filter--title--color:var(--title--primary, #2B3A54)}.snk-filter-advanced-mode__title.sc-snk-filter-advanced-mode{color:var(--snk-personalized-filter--title--color)}";
8
+
9
+ const SnkFilterAdvancedMode = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ this.ezExpressionChange = createEvent(this, "ezExpressionChange", 7);
13
+ this.filterAssistent = undefined;
14
+ this.application = undefined;
15
+ }
16
+ getMessage(key, params) {
17
+ return this.application.messagesBuilder.getMessage(key, params);
18
+ }
19
+ getWarningMessageComponent() {
20
+ var _a;
21
+ if (StringUtils.isEmpty((_a = this.filterAssistent) === null || _a === void 0 ? void 0 : _a.warningMessage))
22
+ return undefined;
23
+ return (h("div", { class: "ez-flex" }, h("ez-alert", { alertType: "warn" }, this.filterAssistent.warningMessage)));
24
+ }
25
+ render() {
26
+ var _a;
27
+ return (h(Host, null, h("span", { class: "ez-title ez-title--small ez-padding-bottom--small snk-filter-advanced-mode__title" }, this.getMessage("snkPersonalizedFilter.info.applyExpression")), h("ez-text-area", { rows: 9, label: this.getMessage("snkPersonalizedFilter.info.labelExpression"), value: (_a = this.filterAssistent) === null || _a === void 0 ? void 0 : _a.expression, onEzChange: (evt) => this.ezExpressionChange.emit(evt.detail) }), this.getWarningMessageComponent()));
28
+ }
29
+ };
30
+ SnkFilterAdvancedMode.style = snkFilterAdvancedModeCss;
31
+
32
+ const snkFilterAssistentModeCss = ".sc-snk-filter-assistent-mode-h{display:flex;flex-direction:column;height:100%;--text-area--font-family:var(--font-pattern, Arial);--text-area__label--floating--top:var(--space--small, 6px);--snk-filter-assistent-mode__container--border-radius:var(--border--radius-medium, 12px);--snk-filter-assistent-mode__container--background:var(--background--medium, #f0f3f7);--snk-filter-assistent-mode__container--margin:var(--space--small, 6px) var(--space--medium, 12px)}.ez-box__container--external.sc-snk-filter-assistent-mode{height:100px;width:100%;overflow-y:auto;background-color:var(--snk-filter-assistent-mode__container--background);border-radius:var(--snk-filter-assistent-mode__container--border-radius)}.ez-box__container--internal.sc-snk-filter-assistent-mode{margin:var(--snk-filter-assistent-mode__container--margin)}.ez-box__container--title.sc-snk-filter-assistent-mode{display:block;user-select:none;font-family:var(--text-area--font-family);font-size:var(--text--extra-small);color:var(--title--primary);top:var(--text-area__label--floating--top)}.ez-box__container--expression.sc-snk-filter-assistent-mode{display:block;font-family:var(--text-area--font-family);font-size:var(--text--medium);color:var(--title--primary);top:var(--text-area__label--floating--top)}.snk-personalized-filter__expression-input--line.sc-snk-filter-assistent-mode{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)}";
33
+
34
+ const SnkFilterAssistentMode = class {
35
+ constructor(hostRef) {
36
+ registerInstance(this, hostRef);
37
+ this.ezChangeFilter = createEvent(this, "ezChangeFilter", 7);
38
+ this.filterAssistent = undefined;
39
+ this.messagesBuilder = undefined;
40
+ this.filterId = undefined;
41
+ this.entityUri = undefined;
42
+ this.application = undefined;
43
+ }
44
+ getMessage(key, params) {
45
+ return this.application.messagesBuilder.getMessage(key, params);
46
+ }
47
+ async handleFilterGroupChange() {
48
+ const assistent = await this._mainExpressionGroup.getExpressionGroup();
49
+ this.filterAssistent = Object.assign(Object.assign({}, this.filterAssistent), { assistent });
50
+ this.filterAssistent.parameters = PersonalizedFilterUtils.buildVariableParameters(this.filterAssistent.assistent);
51
+ this.filterAssistent.expression = PersonalizedFilterUtils.buildGroupExpression(this.filterAssistent.assistent);
52
+ this.ezChangeFilter.emit(this.filterAssistent);
53
+ }
54
+ render() {
55
+ var _a, _b;
56
+ return (h(Host, 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", { class: "ez-margin-top--auto" }, 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--external" }, h("div", { class: "ez-box__container--internal" }, h("span", { class: "ez-box__container--title" }, this.getMessage("snkPersonalizedFilter.info.labelExpression")), h("span", { class: "ez-box__container--expression" }, (_b = this.filterAssistent) === null || _b === void 0 ? void 0 : _b.expression))))))));
57
+ }
58
+ };
59
+ SnkFilterAssistentMode.style = snkFilterAssistentModeCss;
60
+
61
+ export { SnkFilterAdvancedMode as snk_filter_advanced_mode, SnkFilterAssistentMode as snk_filter_assistent_mode };
@@ -1,17 +1,17 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { DataType, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
4
- import { C as ConfigStorage } from './ConfigStorage-f1e805a0.js';
4
+ import { C as ConfigStorage } from './ConfigStorage-02f17a26.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, P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
7
+ import { F as FilterOperand } from './index-ae591a44.js';
8
8
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
9
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-731cae01.js';
9
10
  import './form-config-fetcher-533b895e.js';
10
11
  import './DataFetcher-fddeb917.js';
11
12
  import './_commonjsHelpers-9943807e.js';
12
13
  import './resource-fetcher-0f20a072.js';
13
- import './filter-bar-config-fetcher-a358b8e0.js';
14
- import './IExpressionItem-21f225bf.js';
14
+ import './filter-bar-config-fetcher-790283d8.js';
15
15
 
16
16
  const buildFilter = (item) => {
17
17
  switch (item.type) {
@@ -399,7 +399,7 @@ const SnkFilterBar = class {
399
399
  loadConfigFromStorage() {
400
400
  return new Promise(accept => {
401
401
  ConfigStorage.get().then(instance => {
402
- instance.loadFilterBarConfig(this.configName)
402
+ instance.loadFilterBarConfig(this.configName, { contextURI: this.dataUnit.name })
403
403
  .then((filters) => {
404
404
  accept();
405
405
  this.filterConfig = filters.map(item => this.normalizeItem(item));
@@ -2,13 +2,13 @@ import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g
2
2
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
4
4
  import { ApplicationContext, ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
5
- import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-a358b8e0.js';
5
+ import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-790283d8.js';
6
6
  import { E as EPresentationMode } from './presentationMode-783bbf9d.js';
7
- import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-1a167d89.js';
7
+ import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-731cae01.js';
8
8
  import './resource-fetcher-0f20a072.js';
9
9
  import './DataFetcher-fddeb917.js';
10
10
  import './_commonjsHelpers-9943807e.js';
11
- import './IExpressionItem-21f225bf.js';
11
+ import './index-ae591a44.js';
12
12
 
13
13
  const SnkFilterDetail = class {
14
14
  constructor(hostRef) {