@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
@@ -1,16 +1,18 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Fragment, Host } from '@stencil/core/internal/client';
2
- import { StringUtils, ObjectUtils, ApplicationContext } from '@sankhyalabs/core';
2
+ import { StringUtils, ObjectUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { F as FilterGroupCondition, P as PersonalizedFilterUtils } from './PersonalizedFilterUtils.js';
4
4
  import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
6
  import { s as store } from './index3.js';
7
- import { d as defineCustomElement$5 } from './snk-expression-group2.js';
8
- import { d as defineCustomElement$4 } from './snk-expression-item2.js';
7
+ import { d as defineCustomElement$7 } from './snk-expression-group2.js';
8
+ import { d as defineCustomElement$6 } from './snk-expression-item2.js';
9
+ import { d as defineCustomElement$5 } from './snk-filter-advanced-mode2.js';
10
+ import { d as defineCustomElement$4 } from './snk-filter-assistent-mode2.js';
9
11
  import { d as defineCustomElement$3 } from './snk-filter-field-search2.js';
10
12
  import { d as defineCustomElement$2 } from './snk-filter-param-config2.js';
11
13
  import { d as defineCustomElement$1 } from './snk-simple-bar2.js';
12
14
 
13
- const snkPersonalizedFilterCss = ".sc-snk-personalized-filter-h{display:flex;height:100%;padding:var(--space--large, 24px);--snk-personalized-filter--width:100%;--snk-personalized-filter--height:100%;--snk-personalized-filter--background-color-line:var(--color--disable-secondary);--snk-personalized-filter--margin-line:var(--border--radius-medium, 12px)}.snk-personalized-filter.sc-snk-personalized-filter{height:var(--snk-personalized-filter--width);width:var(--snk-personalized-filter--height)}.snk-personalized-filter__header-actions.sc-snk-personalized-filter{display:flex;gap:var(--space--medium)}.snk-personalized-filter__group.sc-snk-personalized-filter{flex:1}.snk-personalized-filter__expression-input--line.sc-snk-personalized-filter{width:100%;height:2px;background-color:var(--snk-personalized-filter--background-color-line);margin-top:var(--snk-personalized-filter--margin-line);margin-bottom:var(--snk-personalized-filter--margin-line)}.ez-box__main.sc-snk-personalized-filter{height:90%}";
15
+ const snkPersonalizedFilterCss = ".sc-snk-personalized-filter-h{display:flex;height:100%;padding:var(--space--large, 24px);--snk-personalized-filter--width:100%;--snk-personalized-filter--height:100%;--snk-personalized-filter--background-color-line:var(--color--disable-secondary);--snk-personalized-filter--margin-line:var(--border--radius-medium, 12px)}.snk-personalized-filter.sc-snk-personalized-filter{height:var(--snk-personalized-filter--width);width:var(--snk-personalized-filter--height)}.snk-personalized-filter__header-actions.sc-snk-personalized-filter{display:flex;gap:var(--space--medium)}.snk-personalized-filter__group.sc-snk-personalized-filter{flex:1}.snk-personalized-filter__expression-input--line.sc-snk-personalized-filter{width:100%;height:2px;background-color:var(--snk-personalized-filter--background-color-line);margin-top:var(--snk-personalized-filter--margin-line);margin-bottom:var(--snk-personalized-filter--margin-line)}.ez-box__main.sc-snk-personalized-filter{height:90%}.snk-personalized-filter__button-mode.sc-snk-personalized-filter{height:35px}";
14
16
 
15
17
  const SnkPersonalizedFilter = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
16
18
  constructor() {
@@ -99,6 +101,13 @@ const SnkPersonalizedFilter = /*@__PURE__*/ proxyCustomElement(class extends HTM
99
101
  }
100
102
  this.loadFilter(this.filterId, undefined);
101
103
  }
104
+ componentDidRender() {
105
+ var _a;
106
+ (_a = this._viewStackRef) === null || _a === void 0 ? void 0 : _a.show(this._filterAssistentMode ? 0 : 1);
107
+ if (this._elButtonMode) {
108
+ this._elButtonMode.setAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME, ElementIDUtils.getInternalIDInfo(`${this._filterAssistentMode ? "advancedMode_ezButton" : "assistentMode_ezButton"}`));
109
+ }
110
+ }
102
111
  getMessage(key, params) {
103
112
  return this._application.messagesBuilder.getMessage(key, params);
104
113
  }
@@ -116,26 +125,55 @@ const SnkPersonalizedFilter = /*@__PURE__*/ proxyCustomElement(class extends HTM
116
125
  removeFilter() {
117
126
  ConfigStorage.removePersonalizedFilter(this._filterAssistent, this.configName);
118
127
  }
119
- async handleFilterGroupChange() {
120
- const assistent = await this._mainExpressionGroup.getExpressionGroup();
121
- this._filterAssistent = Object.assign(Object.assign({}, this._filterAssistent), { assistent });
122
- this._filterAssistent.parameters = PersonalizedFilterUtils.buildVariableParameters(this._filterAssistent.assistent);
123
- this._elTextAreaExpression.value = PersonalizedFilterUtils.buildGroupExpression(this._filterAssistent.assistent, true);
124
- this._elButtonSave.enabled = !this.hasChangesToSave();
125
- }
126
128
  hasChangesToSave() {
127
129
  return JSON.stringify(this._filterAssistent) === JSON.stringify(this._originalFilterAssistent);
128
130
  }
129
- handleSave() {
131
+ async handleSave() {
132
+ if (this._filterAssistentMode) {
133
+ const isValid = PersonalizedFilterUtils.validateFields(this._filterAssistent.assistent);
134
+ if (!isValid || !this._filterAssistent.name)
135
+ return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"), this.getMessage("snkPersonalizedFilter.error.description"));
136
+ this.saveAssistentMode();
137
+ }
138
+ else {
139
+ if (!this._filterAssistent.expression || !this._filterAssistent.name)
140
+ return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"), this.getMessage("snkPersonalizedFilter.error.description"));
141
+ const isValidExpressionForAdvancedMode = await this.validateExpressionBeforeSaving();
142
+ if (!isValidExpressionForAdvancedMode)
143
+ return;
144
+ this.saveAdvancedMode();
145
+ }
146
+ }
147
+ saveAssistentMode() {
130
148
  const { assistent, expression } = this._filterAssistent;
131
- const isValid = PersonalizedFilterUtils.validateFields(assistent);
132
- if (!isValid || !this._filterAssistent.name)
133
- return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"), this.getMessage("snkPersonalizedFilter.error.description"));
134
149
  const expressionQuery = !!assistent ? PersonalizedFilterUtils.buildGroupExpression(assistent) : expression;
135
150
  this._filterAssistent.expression = expressionQuery;
136
151
  this.ezSave.emit(expressionQuery);
137
152
  this.saveFilter();
138
153
  }
154
+ saveAdvancedMode() {
155
+ if (this._filterAssistent.assistent) {
156
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmSaveModeAdvanced.title"), this.getMessage("snkPersonalizedFilter.confirmSaveModeAdvanced.description"))
157
+ .then((confirm) => {
158
+ if (!confirm)
159
+ return;
160
+ this.saveAndTransformToAdvancedMode();
161
+ });
162
+ }
163
+ else {
164
+ this.saveAndTransformToAdvancedMode();
165
+ }
166
+ }
167
+ saveAndTransformToAdvancedMode() {
168
+ this._filterAssistent.assistent = undefined;
169
+ this.ezSave.emit(this._filterAssistent.expression);
170
+ this.saveFilter();
171
+ }
172
+ async validateExpressionBeforeSaving() {
173
+ const { valid, message } = await this._personalizedFilterFetcher.validatePersonalizedFilter(this.entityUri, this._filterAssistent.expression);
174
+ valid || this._application.error(this.getMessage("snkPersonalizedFilter.error.title"), message);
175
+ return valid;
176
+ }
139
177
  handleCancel() {
140
178
  if (this.hasChangesToSave()) {
141
179
  return this.ezCancel.emit();
@@ -169,32 +207,87 @@ const SnkPersonalizedFilter = /*@__PURE__*/ proxyCustomElement(class extends HTM
169
207
  }
170
208
  return resp;
171
209
  }
172
- handleExpressionChange(expression) {
210
+ handleExpressionChangeAdvancedMode(expression) {
173
211
  this._filterAssistent = Object.assign(Object.assign({}, this._filterAssistent), { expression });
174
212
  this._elButtonSave.enabled = !this.hasChangesToSave();
175
213
  }
176
- getWarningMessageComponent() {
177
- var _a;
178
- if (StringUtils.isEmpty((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.warningMessage)) {
179
- return undefined;
214
+ handleChangeFilterAssistentMode(filterAssistent) {
215
+ this._elButtonSave.enabled = !this.hasChangesToSave();
216
+ this._filterAssistent = Object.assign({}, filterAssistent);
217
+ }
218
+ selectField(fieldName) {
219
+ if (!('name' in fieldName))
220
+ return;
221
+ const fieldExpression = this.buildExpression(fieldName.entityName, fieldName.name, fieldName.entityPath);
222
+ const textAreaElement = this._elAdvancedMode.querySelector('ez-text-area');
223
+ textAreaElement.appendTextToSelection(fieldExpression);
224
+ }
225
+ buildExpression(entityName, fieldName, entityPath) {
226
+ if (entityPath.length > 0) {
227
+ entityPath.shift();
180
228
  }
181
- return (h("div", { class: "ez-flex" }, h("ez-alert", { alertType: "warn" }, this._filterAssistent.warningMessage)));
229
+ return entityPath.length > 0 ? `${entityPath.join("->")}->${fieldName}` : `${entityName}.${fieldName}`;
230
+ }
231
+ onAddField(target) {
232
+ const textAreaElement = this._elAdvancedMode.querySelector('ez-text-area');
233
+ const options = { horizontalGap: 0, verticalGap: 12, fromRight: true };
234
+ textAreaElement.setFocus();
235
+ target.setBlur();
236
+ if (this._elFilterFieldSearch)
237
+ this._elFilterFieldSearch.show(target, options);
238
+ }
239
+ renderButtonAddField() {
240
+ if (this._filterAssistentMode)
241
+ return;
242
+ return (h(Fragment, null, h("ez-button", { class: "snk-personalized-filter__button-mode", label: this.getMessage("snkPersonalizedFilter.info.addField"), enabled: true, onClick: (evt) => this.onAddField(evt.target) }, h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: "plus" })), h("snk-filter-field-search", { class: "ez-padding-left--medium", ref: ref => this._elFilterFieldSearch = ref, onEzSelectFilterItem: (evt) => this.selectField(evt.detail), fieldsDataSource: this._dataSourceFetcher })));
182
243
  }
183
244
  buildContainerPersonalizedFilter() {
184
- var _a, _b, _c;
245
+ return (h("ez-view-stack", { ref: (ref) => this._viewStackRef = ref }, h("stack-item", null, this._filterAssistentMode &&
246
+ h("snk-filter-assistent-mode", { filterAssistent: this._filterAssistent, messagesBuilder: this.messagesBuilder, filterId: this.filterId, entityUri: this.entityUri, application: this._application, onEzChangeFilter: (ev) => this.handleChangeFilterAssistentMode(ev.detail) })), h("stack-item", null, h("snk-filter-advanced-mode", { ref: (ref) => this._elAdvancedMode = ref, filterAssistent: this._filterAssistent, application: this._application, onEzExpressionChange: (ev) => this.handleExpressionChangeAdvancedMode(ev.detail) }))));
247
+ }
248
+ handleModeChange() {
249
+ var _a, _b;
185
250
  if (this._filterAssistentMode) {
186
- 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 })))))));
251
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmChangeModeAssistent.title"), this.getMessage("snkPersonalizedFilter.confirmChangeModeAssistent.description"))
252
+ .then((canCancel) => {
253
+ if (!canCancel)
254
+ return;
255
+ this._filterAssistentMode = !this._filterAssistentMode;
256
+ if (!this.hasChangesToSave()) {
257
+ const expression = PersonalizedFilterUtils.buildGroupExpression(this._filterAssistent.assistent);
258
+ this._filterAssistent.expression = expression;
259
+ this._elButtonSave.enabled = !this.hasChangesToSave();
260
+ }
261
+ });
187
262
  }
188
263
  else {
189
- 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()));
264
+ if (((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.expression) === ((_b = this._originalFilterAssistent) === null || _b === void 0 ? void 0 : _b.expression)) {
265
+ this._filterAssistentMode = !this._filterAssistentMode;
266
+ }
267
+ else {
268
+ const expressionBefore = this._filterAssistent.expression;
269
+ const expression = PersonalizedFilterUtils.buildGroupExpression(this._filterAssistent.assistent);
270
+ if (expressionBefore !== expression) {
271
+ ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmChangeModeAdvanced.title"), this.getMessage("snkPersonalizedFilter.confirmChangeModeAdvanced.description"))
272
+ .then((canCancel) => {
273
+ if (!canCancel)
274
+ return;
275
+ this._filterAssistent = Object.assign(Object.assign({}, this._filterAssistent), { expression });
276
+ this._filterAssistentMode = !this._filterAssistentMode;
277
+ });
278
+ }
279
+ else {
280
+ this._filterAssistentMode = !this._filterAssistentMode;
281
+ }
282
+ }
190
283
  }
191
284
  }
192
285
  render() {
193
- var _a, _b;
286
+ var _a, _b, _c, _d;
194
287
  if (!((_a = this._filterAssistent) === null || _a === void 0 ? void 0 : _a.assistent) && this._filterAssistentMode) {
195
288
  return;
196
289
  }
197
- 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()))))));
290
+ return (h(Host, null, h("div", { class: "snk-personalized-filter" }, h("div", null, h("snk-simple-bar", { label: this.filterId ? this.getMessage("snkPersonalizedFilter.info.titleEdit") : this.getMessage("snkPersonalizedFilter.info.titleAdd"), onExit: () => this.handleCancel() }, h("div", { class: "snk-personalized-filter__header-actions", slot: "rightSlot" }, h("ez-button", { size: "small", label: this.getMessage("snkPersonalizedFilter.info.labelCancel"), onClick: () => this.handleCancel() }), h("ez-button", { size: "small", ref: (el) => this._elButtonSave = el, enabled: false, class: "ez-button--primary", label: this.getMessage("snkPersonalizedFilter.info.labelSave"), onClick: this.handleSave.bind(this) })))), h("div", { class: "ez-box ez-margin-bottom--medium ez-box__main" }, h("div", { class: "ez-box__container" }, h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("div", { class: "ez-flex" }, h("ez-text-input", { class: "ez-padding-right--medium", label: this.getMessage("snkPersonalizedFilter.info.labelNameFilter"), value: (_b = this._filterAssistent) === null || _b === void 0 ? void 0 : _b.name, onEzChange: (evt) => this.handleTitleChange(evt.detail) }), this.renderButtonAddField(), h("ez-button", { ref: (el) => this._elButtonMode = el, class: "snk-personalized-filter__button-mode", label: this._filterAssistentMode ? this.getMessage("snkPersonalizedFilter.info.activeModeAdvanced") : this.getMessage("snkPersonalizedFilter.info.activeModeAssistent"), onClick: () => this.handleModeChange(), "data-tooltip": !(this._filterAssistentMode || ((_c = this._filterAssistent) === null || _c === void 0 ? void 0 : _c.assistent)) ? this.getMessage("snkPersonalizedFilter.info.tooltipDisabledAssistentMode") : undefined, "data-flow": "bottom", enabled: (!this._filterAssistent.name || Boolean(this._filterAssistentMode || ((_d = this._filterAssistent) === null || _d === void 0 ? void 0 : _d.assistent))) })), this.buildContainerPersonalizedFilter()))))));
198
291
  }
199
292
  static get watchers() { return {
200
293
  "filterId": ["loadFilter"]
@@ -213,7 +306,7 @@ function defineCustomElement() {
213
306
  if (typeof customElements === "undefined") {
214
307
  return;
215
308
  }
216
- const components = ["snk-personalized-filter", "snk-expression-group", "snk-expression-item", "snk-filter-field-search", "snk-filter-param-config", "snk-simple-bar"];
309
+ const components = ["snk-personalized-filter", "snk-expression-group", "snk-expression-item", "snk-filter-advanced-mode", "snk-filter-assistent-mode", "snk-filter-field-search", "snk-filter-param-config", "snk-simple-bar"];
217
310
  components.forEach(tagName => { switch (tagName) {
218
311
  case "snk-personalized-filter":
219
312
  if (!customElements.get(tagName)) {
@@ -222,10 +315,20 @@ function defineCustomElement() {
222
315
  break;
223
316
  case "snk-expression-group":
224
317
  if (!customElements.get(tagName)) {
225
- defineCustomElement$5();
318
+ defineCustomElement$7();
226
319
  }
227
320
  break;
228
321
  case "snk-expression-item":
322
+ if (!customElements.get(tagName)) {
323
+ defineCustomElement$6();
324
+ }
325
+ break;
326
+ case "snk-filter-advanced-mode":
327
+ if (!customElements.get(tagName)) {
328
+ defineCustomElement$5();
329
+ }
330
+ break;
331
+ case "snk-filter-assistent-mode":
229
332
  if (!customElements.get(tagName)) {
230
333
  defineCustomElement$4();
231
334
  }
@@ -296,7 +296,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
296
296
  this.dataState = Object.assign({}, evt.detail);
297
297
  }
298
298
  getTaskBarDisabledButtons() {
299
- var _a, _b;
299
+ var _a, _b, _c, _d;
300
300
  const disabledButtons = [];
301
301
  if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasNext)) {
302
302
  disabledButtons.push(TaskbarElement.NEXT);
@@ -304,11 +304,21 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
304
304
  if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasPrevious)) {
305
305
  disabledButtons.push(TaskbarElement.PREVIOUS);
306
306
  }
307
+ if ((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.isEmpty()) {
308
+ disabledButtons.push(TaskbarElement.FORM_MODE);
309
+ }
307
310
  return disabledButtons;
308
311
  }
312
+ handleCancelEdit() {
313
+ var _a;
314
+ if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.recordsIsEmpty) {
315
+ this.goToView(VIEW_MODE.GRID);
316
+ this.dataUnit.clearSelection();
317
+ }
318
+ }
309
319
  render() {
310
320
  var _a;
311
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
321
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
312
322
  }
313
323
  get _element() { return this; }
314
324
  static get watchers() { return {
@@ -1,7 +1,7 @@
1
1
  import { ApplicationContext } from '@sankhyalabs/core';
2
2
  import { F as FormConfigFetcher } from './form-config-fetcher-533b895e.js';
3
3
  import { R as ResourceFetcher } from './resource-fetcher-0f20a072.js';
4
- import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-a358b8e0.js';
4
+ import { F as FilterBarConfigFetcher } from './filter-bar-config-fetcher-790283d8.js';
5
5
  import { d as dist, D as DataFetcher } from './DataFetcher-fddeb917.js';
6
6
 
7
7
  class GridConfigFetcher extends ResourceFetcher {
@@ -93,24 +93,6 @@ class PersonalizedFilterFetcher {
93
93
  active
94
94
  expression
95
95
  warningMessage
96
- parameters {
97
- entityName
98
- fieldName
99
- dataType
100
- description
101
- userInterface
102
- label
103
- searchContext {
104
- entity
105
- entityDescription
106
- searchOptions {
107
- rootEntity
108
- descriptionFieldName
109
- codeFieldName
110
- showInactives
111
- }
112
- }
113
- }
114
96
  assistent
115
97
  }
116
98
  }`);
@@ -128,6 +110,13 @@ class PersonalizedFilterFetcher {
128
110
  name
129
111
  }
130
112
  }`);
113
+ this.templateByQuery.set("validateExpression", dist.gql `
114
+ query($dataUnitName: String!, $expression: String!) {
115
+ $queryAlias$: validateExpression(dataUnitName: $dataUnitName, expression: $expression) {
116
+ valid
117
+ message
118
+ }
119
+ }`);
131
120
  }
132
121
  async loadPersonalizedFilter(resourceID, filterID, configName) {
133
122
  return new Promise((resolve, reject) => {
@@ -177,6 +166,21 @@ class PersonalizedFilterFetcher {
177
166
  });
178
167
  });
179
168
  }
169
+ async validatePersonalizedFilter(dataUnitName, expression) {
170
+ return new Promise((resolve, reject) => {
171
+ DataFetcher.get()
172
+ .callGraphQL({
173
+ values: { dataUnitName: dataUnitName, expression: expression },
174
+ query: this.templateByQuery.get("validateExpression"),
175
+ })
176
+ .then((resp) => {
177
+ resolve(resp);
178
+ })
179
+ .catch((error) => {
180
+ reject(error);
181
+ });
182
+ });
183
+ }
180
184
  loadFields(uri) {
181
185
  return new Promise((resolve, reject) => {
182
186
  DataFetcher.get()
@@ -222,17 +226,16 @@ class ConfigStorage {
222
226
  const resourceID = await application.getResourceID();
223
227
  ConfigStorage.instance = new ConfigStorage();
224
228
  ConfigStorage.resourceID = resourceID;
225
- ConfigStorage.instance.loadFilterBarConfig(configName);
226
229
  ConfigStorage.instance.loadFormConfig(configName);
227
230
  ConfigStorage.instance.loadGridConfig(configName);
228
231
  }
229
232
  }
230
233
  return this.instance;
231
234
  }
232
- async loadFilterBarConfig(name) {
235
+ async loadFilterBarConfig(name, urlParams) {
233
236
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar);
234
237
  if (!ConfigStorage.configById.has(cacheID)) {
235
- ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(ConfigStorage.resourceID, name));
238
+ ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(ConfigStorage.resourceID, name, urlParams));
236
239
  }
237
240
  return ConfigStorage.configById.get(cacheID);
238
241
  }
@@ -284,6 +287,9 @@ class ConfigStorage {
284
287
  static async removePersonalizedFilter(personalizedFilter, configName) {
285
288
  return this.personalizedFilterFetcher.removePersonalizedFilter(personalizedFilter, this.resourceID, configName);
286
289
  }
290
+ static async validatePersonalizedFilter(dataUnitName, expression) {
291
+ return this.personalizedFilterFetcher.validatePersonalizedFilter(dataUnitName, expression);
292
+ }
287
293
  static buildCacheID(name, source) {
288
294
  if (name == undefined) {
289
295
  return `req_${source}_${this.resourceID}`;
@@ -1,58 +1,19 @@
1
1
  import { DataType, NumberUtils, DateUtils, UserInterface } from '@sankhyalabs/core';
2
- import './IExpressionItem-21f225bf.js';
2
+ import { F as FilterOperand } from './index-ae591a44.js';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
4
4
 
5
- var FilterConfigType;
6
- (function (FilterConfigType) {
7
- FilterConfigType["SYSTEM_CONFIG"] = "S";
8
- FilterConfigType["USER_CONFIG"] = "E";
9
- })(FilterConfigType || (FilterConfigType = {}));
10
- var FilterUserConfigTypes;
11
- (function (FilterUserConfigTypes) {
12
- FilterUserConfigTypes["DATE"] = "D";
13
- FilterUserConfigTypes["HORA"] = "H";
14
- FilterUserConfigTypes["TEXT"] = "S";
15
- FilterUserConfigTypes["INTEGER"] = "I";
16
- FilterUserConfigTypes["DECIMAL"] = "F";
17
- FilterUserConfigTypes["NUMBER"] = "NUMBER";
18
- })(FilterUserConfigTypes || (FilterUserConfigTypes = {}));
19
- var FilterOperand;
20
- (function (FilterOperand) {
21
- FilterOperand["AND"] = "AND";
22
- FilterOperand["OR"] = "OR";
23
- FilterOperand["IN"] = "IN";
24
- FilterOperand["DIFFERENT"] = "<>";
25
- FilterOperand["LIKE"] = "LIKE";
26
- FilterOperand["START_WITH"] = "LIKE_START";
27
- FilterOperand["FINISHED_WITH"] = "LIKE_END";
28
- FilterOperand["NULL"] = "NULL";
29
- FilterOperand["NOT_NULL"] = "NOT NULL";
30
- FilterOperand["EQUAL"] = "=";
31
- FilterOperand["LARGER"] = ">";
32
- FilterOperand["LARGER_EQUAL"] = ">=";
33
- FilterOperand["SMALLER"] = "<";
34
- FilterOperand["SMALLER_EQUAL"] = "<=";
35
- })(FilterOperand || (FilterOperand = {}));
36
- var FilterEntities;
37
- (function (FilterEntities) {
38
- FilterEntities["FIELD"] = "Campo";
39
- FilterEntities["INSTANCE"] = "Instancia";
40
- })(FilterEntities || (FilterEntities = {}));
41
-
42
5
  class PersonalizedFilterUtils {
43
6
  /**
44
7
  * Cria uma expressão de filtro a partir de um IExpressionItem.
45
8
  * @param expressionItem - Objeto com os parâmetros necessários para montar a expressão.
46
9
  * @returns Retorna a expressão de filtro.
47
10
  */
48
- static buildFilterExpression(expressionItem, ignoreInvalidExpressions = false) {
11
+ static buildFilterExpression(expressionItem) {
12
+ var _a;
49
13
  if (expressionItem == undefined) {
50
14
  return;
51
15
  }
52
- if (!this.validateExpressionItem(expressionItem) && ignoreInvalidExpressions) {
53
- return "";
54
- }
55
- let value = this.buildVariableParameterValue(expressionItem);
16
+ let value = (_a = this.buildVariableParameterValue(expressionItem)) !== null && _a !== void 0 ? _a : undefined;
56
17
  let expression = expressionItem.expression || "";
57
18
  let commas = "'";
58
19
  if (expressionItem.paramVariable) {
@@ -76,8 +37,13 @@ class PersonalizedFilterUtils {
76
37
  expression += ` LIKE '%${value}'`;
77
38
  break;
78
39
  default:
79
- value = typeof value === 'string' ? `${commas}${value}${commas}` : value;
80
- expression += ` ${FilterOperand[expressionItem.operand]} ${value}`;
40
+ if (expressionItem.operand) {
41
+ expression += ` ${FilterOperand[expressionItem.operand]}`;
42
+ }
43
+ if (value) {
44
+ value = isNaN(value) ? `${commas}${value}${commas}` : value;
45
+ expression += ` ${value}`;
46
+ }
81
47
  }
82
48
  return expression;
83
49
  }
@@ -101,7 +67,7 @@ class PersonalizedFilterUtils {
101
67
  pois para filtros herdados do HTML5 não temos o tipo OBJECT, fazendo com que a expressão
102
68
  fique inválida para campos do tipo pesquisa.
103
69
  */
104
- if (UserInterface.SEARCH === expressionItem.userInterface || DataType.OBJECT == type) {
70
+ if (UserInterface.SEARCH === expressionItem.userInterface || expressionItem.userInterface === UserInterface.OPTIONSELECTOR || DataType.OBJECT == type) {
105
71
  value = (_a = value === null || value === void 0 ? void 0 : value.value) !== null && _a !== void 0 ? _a : value;
106
72
  }
107
73
  if (DataType.NUMBER == type && value != undefined) {
@@ -143,11 +109,11 @@ class PersonalizedFilterUtils {
143
109
  /*
144
110
  * Cria uma expressão de filtro para um grupo de itens.
145
111
  */
146
- static buildGroupExpression(expressionGroup, ignoreInvalidExpressions = false) {
112
+ static buildGroupExpression(expressionGroup) {
147
113
  var _a, _b;
148
114
  if (!((_a = expressionGroup === null || expressionGroup === void 0 ? void 0 : expressionGroup.items) === null || _a === void 0 ? void 0 : _a.length))
149
115
  return "";
150
- const itemExpressions = expressionGroup.items.map((item) => this.buildFilterExpression(item, ignoreInvalidExpressions)).join(` ${expressionGroup.operand} `);
116
+ const itemExpressions = expressionGroup.items.map((item) => this.buildFilterExpression(item)).join(` ${expressionGroup.operand} `);
151
117
  if (((_b = expressionGroup === null || expressionGroup === void 0 ? void 0 : expressionGroup.childrenGroups) === null || _b === void 0 ? void 0 : _b.length) > 0) {
152
118
  const childGroupExpressions = expressionGroup.childrenGroups.map((children) => this.buildGroupExpression(children)).join(` ${expressionGroup.operand} `);
153
119
  return `(${itemExpressions} ${expressionGroup.operand} (${childGroupExpressions}))`;
@@ -234,7 +200,6 @@ class PersonalizedFilterUtils {
234
200
  * do tipo variavel;
235
201
  */
236
202
  static buildVariableParameters(expressionGroup) {
237
- var _a, _b, _c, _d;
238
203
  const allItems = this.buildPlainExpressionItems(expressionGroup);
239
204
  const allParams = [];
240
205
  for (const item of allItems) {
@@ -243,22 +208,11 @@ class PersonalizedFilterUtils {
243
208
  }
244
209
  allParams.push({
245
210
  entityName: item.entityName,
246
- fieldName: item.fieldName,
247
- dataType: item.type,
248
- description: item.description,
249
- userInterface: item.userInterface,
250
- label: item.fieldLabel,
251
- searchContext: {
252
- entity: (_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a.find(prop => prop.name == "ENTITYNAME")) === null || _b === void 0 ? void 0 : _b.value,
253
- entityDescription: (_d = (_c = item.props) === null || _c === void 0 ? void 0 : _c.find(prop => prop.name == "DESCRIPTIONENTITY")) === null || _d === void 0 ? void 0 : _d.value,
254
- searchOptions: {
255
- showInactives: false
256
- }
257
- }
211
+ fieldName: item.fieldName
258
212
  });
259
213
  }
260
214
  return allParams;
261
215
  }
262
216
  }
263
217
 
264
- export { FilterOperand as F, PersonalizedFilterUtils as P, FilterConfigType as a, FilterEntities as b, FilterUserConfigTypes as c };
218
+ export { PersonalizedFilterUtils as P };
@@ -1,4 +1,4 @@
1
- import { C as ConfigStorage } from './ConfigStorage-f1e805a0.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-02f17a26.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
3
  import { F as FormConfigFetcher } from './form-config-fetcher-533b895e.js';
4
4
 
@@ -359,12 +359,16 @@ const snkPersonalizedFilterMessages = {
359
359
  labelCancel: "Cancelar",
360
360
  labelSave: "Salvar",
361
361
  labelNameFilter: "Nome do filtro",
362
- labelExpression: "Expressão SQL",
362
+ labelExpression: "Expressão",
363
363
  badgeVariable: "variável",
364
364
  noDataFound: "Nenhum filtro encontrado",
365
365
  condition: "Condição",
366
366
  addGroup: "Adicionar grupo",
367
- applyExpression: "Expressão a ser aplicada:"
367
+ addField: "Adicionar campo",
368
+ applyExpression: "Expressão a ser aplicada:",
369
+ tooltipDisabledAssistentMode: "Expressão não suportada pelo assistente.",
370
+ activeModeAdvanced: "Ativar modo avançado",
371
+ activeModeAssistent: "Ativar modo assistente"
368
372
  },
369
373
  confirmExpression: {
370
374
  title: "Aviso",
@@ -378,6 +382,18 @@ const snkPersonalizedFilterMessages = {
378
382
  title: "Aviso",
379
383
  description: `As alterações realizadas serão descartadas.</br></br><b>Gostaria de continuar?</b>`
380
384
  },
385
+ confirmChangeModeAssistent: {
386
+ title: "Aviso",
387
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
388
+ },
389
+ confirmChangeModeAdvanced: {
390
+ title: "Aviso",
391
+ description: `Ao retornar ao modo assistente suas alterações serão perdidas.</br></br><b>Gostaria de continuar?</b>`
392
+ },
393
+ confirmSaveModeAdvanced: {
394
+ title: "Aviso",
395
+ description: `Ao modificar a expressão, o modo assistente será desabilitado.</br></br><b>Gostaria de continuar?</b>`
396
+ },
381
397
  operador: {
382
398
  firstLevel: "A seleção será habilitada a partir da adição da segunda linha de regras.",
383
399
  and: "Será verdadeiro se todas as condições forem obedecidas.",
@@ -75,9 +75,9 @@ class FilterBarConfigFetcher extends ResourceFetcher {
75
75
  saveConfig(items, resourceID, configName) {
76
76
  return this.saveResource(this.normalize(items), this.getPath(resourceID, configName));
77
77
  }
78
- getConfig(resourceID, configName) {
78
+ getConfig(resourceID, configName, urlParams) {
79
79
  return new Promise((accept, reject) => {
80
- this.loadResource(this.getPath(resourceID, configName))
80
+ this.loadResource(this.getPath(resourceID, configName, urlParams))
81
81
  .then((configAsString) => {
82
82
  let fieldsList;
83
83
  if (configAsString) {
@@ -125,11 +125,28 @@ class FilterBarConfigFetcher extends ResourceFetcher {
125
125
  return item;
126
126
  });
127
127
  }
128
- getPath(resourceID, name) {
128
+ getPath(resourceID, name, urlParams) {
129
+ let path = `cfg://filter/FilterBarState:${resourceID}`;
129
130
  if (name) {
130
- return `cfg://filter/FilterBarState:${resourceID}.${name}`;
131
+ path += `.${name}`;
131
132
  }
132
- return `cfg://filter/FilterBarState:${resourceID}`;
133
+ if (urlParams) {
134
+ path += this.buildQueryString(urlParams);
135
+ }
136
+ return path;
137
+ }
138
+ buildQueryString(urlParams) {
139
+ let queryString = '?';
140
+ for (let key in urlParams) {
141
+ if (!urlParams.hasOwnProperty(key)) {
142
+ continue;
143
+ }
144
+ if (queryString.length > 1) {
145
+ queryString += '&';
146
+ }
147
+ queryString += key + '=' + urlParams[key];
148
+ }
149
+ return queryString;
133
150
  }
134
151
  }
135
152
 
@@ -0,0 +1,7 @@
1
+ var SelectedItemType;
2
+ (function (SelectedItemType) {
3
+ SelectedItemType["LINK"] = "LINK";
4
+ SelectedItemType["FIELD"] = "FIELD";
5
+ })(SelectedItemType || (SelectedItemType = {}));
6
+
7
+ export { SelectedItemType as S };