@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.
- package/dist/cjs/{ConfigStorage-da2bf3bf.js → ConfigStorage-97468a0f.js} +28 -22
- package/dist/cjs/{PersonalizedFilterUtils-cfcd9af2.js → PersonalizedFilterUtils-9848e09b.js} +18 -64
- package/dist/cjs/{SnkFormConfigManager-d7cc9118.js → SnkFormConfigManager-bef6e022.js} +1 -1
- package/dist/cjs/{SnkMessageBuilder-a5a9b437.js → SnkMessageBuilder-f40df6d4.js} +18 -2
- package/dist/cjs/{filter-bar-config-fetcher-58cfc12e.js → filter-bar-config-fetcher-a7747f69.js} +22 -5
- package/dist/cjs/index-8d94b7e0.js +7 -0
- package/dist/cjs/index-c5771aba.js +44 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +3 -3
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
- package/dist/cjs/{snk-data-unit-9d03800c.js → snk-data-unit-b14563fc.js} +4 -2
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +5 -5
- package/dist/cjs/snk-expression-group_2.cjs.entry.js +542 -0
- package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +66 -0
- package/dist/cjs/snk-filter-bar.cjs.entry.js +14 -14
- package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
- package/dist/cjs/{snk-expression-item_3.cjs.entry.js → snk-filter-field-search_2.cjs.entry.js} +23 -315
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -2
- package/dist/cjs/snk-form.cjs.entry.js +3 -3
- package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
- package/dist/cjs/snk-grid.cjs.entry.js +8 -2
- package/dist/cjs/{snk-guides-viewer-36766466.js → snk-guides-viewer-897368ea.js} +1 -1
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +122 -31
- package/dist/cjs/snk-simple-crud.cjs.entry.js +12 -2
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
- package/dist/collection/components/snk-grid/snk-grid.js +6 -0
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +5 -1
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +114 -23
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.js +4 -6
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +2 -1
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.css +10 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.js +95 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.css +66 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.js +158 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +8 -2
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +14 -23
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +14 -4
- package/dist/collection/lib/configs/ConfigStorage.js +5 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +22 -5
- package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +22 -18
- package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +18 -2
- package/dist/components/ConfigStorage.js +27 -21
- package/dist/components/PersonalizedFilterUtils.js +14 -23
- package/dist/components/SnkMessageBuilder.js +18 -2
- package/dist/components/filter-bar-config-fetcher.js +22 -5
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/snk-crud.js +34 -22
- package/dist/components/snk-data-unit2.js +3 -1
- package/dist/components/snk-detail-view2.js +49 -27
- package/dist/components/snk-expression-group2.js +4 -6
- package/dist/components/snk-expression-item2.js +2 -1
- package/dist/components/snk-filter-advanced-mode.d.ts +11 -0
- package/dist/components/snk-filter-advanced-mode.js +6 -0
- package/dist/components/snk-filter-advanced-mode2.js +46 -0
- package/dist/components/snk-filter-assistent-mode.d.ts +11 -0
- package/dist/components/snk-filter-assistent-mode.js +6 -0
- package/dist/components/snk-filter-assistent-mode2.js +77 -0
- package/dist/components/snk-filter-bar2.js +17 -5
- package/dist/components/snk-filter-param-config2.js +6 -0
- package/dist/components/snk-grid2.js +28 -10
- package/dist/components/snk-personalized-filter2.js +131 -28
- package/dist/components/snk-simple-crud2.js +12 -2
- package/dist/esm/{ConfigStorage-f1e805a0.js → ConfigStorage-02f17a26.js} +28 -22
- package/dist/esm/{PersonalizedFilterUtils-1a167d89.js → PersonalizedFilterUtils-731cae01.js} +16 -62
- package/dist/esm/{SnkFormConfigManager-324f6dc7.js → SnkFormConfigManager-cd9e6cab.js} +1 -1
- package/dist/esm/{SnkMessageBuilder-76f62087.js → SnkMessageBuilder-5be56185.js} +18 -2
- package/dist/esm/{filter-bar-config-fetcher-a358b8e0.js → filter-bar-config-fetcher-790283d8.js} +22 -5
- package/dist/esm/index-620ac460.js +7 -0
- package/dist/esm/index-ae591a44.js +44 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-application.entry.js +3 -3
- package/dist/esm/snk-data-exporter.entry.js +2 -2
- package/dist/esm/{snk-data-unit-0ff2d644.js → snk-data-unit-d44b6bc0.js} +4 -2
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +5 -5
- package/dist/esm/snk-expression-group_2.entry.js +537 -0
- package/dist/esm/snk-filter-advanced-mode_2.entry.js +61 -0
- package/dist/esm/snk-filter-bar.entry.js +5 -5
- package/dist/esm/snk-filter-detail.entry.js +3 -3
- package/dist/esm/{snk-expression-item_3.entry.js → snk-filter-field-search_2.entry.js} +12 -303
- package/dist/esm/snk-filter-modal-item.entry.js +2 -2
- package/dist/esm/snk-filter-modal.entry.js +2 -2
- package/dist/esm/snk-form.entry.js +3 -3
- package/dist/esm/snk-grid-config.entry.js +2 -2
- package/dist/esm/snk-grid.entry.js +8 -2
- package/dist/esm/{snk-guides-viewer-e7209909.js → snk-guides-viewer-579c70cc.js} +1 -1
- package/dist/esm/snk-guides-viewer.entry.js +4 -4
- package/dist/esm/snk-personalized-filter.entry.js +119 -28
- package/dist/esm/snk-simple-crud.entry.js +12 -2
- package/dist/sankhyablocks/{p-522172e1.entry.js → p-1005cf8e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-8f6575c8.entry.js → p-19fdcf88.entry.js} +1 -1
- package/dist/sankhyablocks/{p-18b74675.entry.js → p-1fe2976e.entry.js} +1 -1
- package/dist/sankhyablocks/p-2227bb94.js +1 -0
- package/dist/sankhyablocks/p-386102a7.entry.js +1 -0
- package/dist/sankhyablocks/{p-7a075ae6.js → p-3b059f4e.js} +1 -1
- package/dist/sankhyablocks/p-48156672.entry.js +1 -0
- package/dist/sankhyablocks/p-4af6cbef.entry.js +1 -0
- package/dist/sankhyablocks/p-4bbc7aac.entry.js +1 -0
- package/dist/sankhyablocks/{p-3251999f.entry.js → p-4f687570.entry.js} +1 -1
- package/dist/sankhyablocks/p-5098f618.js +1 -0
- package/dist/sankhyablocks/{p-652b9081.js → p-7e486ac9.js} +1 -1
- package/dist/sankhyablocks/p-7e636457.entry.js +1 -0
- package/dist/sankhyablocks/p-7f1c4687.js +56 -0
- package/dist/sankhyablocks/{p-ed9e1e52.entry.js → p-88f4ef73.entry.js} +1 -1
- package/dist/sankhyablocks/{p-4f3df9b6.js → p-90a926c7.js} +1 -1
- package/dist/sankhyablocks/{p-eef26a01.entry.js → p-90e7c3a2.entry.js} +1 -1
- package/dist/sankhyablocks/p-933c0c0b.js +1 -0
- package/dist/sankhyablocks/p-97720467.entry.js +1 -0
- package/dist/sankhyablocks/{p-bd840081.entry.js → p-9fa9331b.entry.js} +1 -1
- package/dist/sankhyablocks/{p-40a5d35e.entry.js → p-ad6673fb.entry.js} +1 -1
- package/dist/sankhyablocks/p-bd86c9d3.entry.js +1 -0
- package/dist/sankhyablocks/{p-8d583a79.entry.js → p-c39b27a3.entry.js} +1 -1
- package/dist/sankhyablocks/p-f4184ce7.js +1 -0
- package/dist/sankhyablocks/{p-56378a3b.js → p-fb1e5b6d.js} +1 -1
- package/dist/sankhyablocks/p-fcc487ea.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
- package/dist/types/components/snk-personalized-filter/interfaces/IPersonalizedFilter.d.ts +4 -0
- package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +17 -6
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-group/snk-expression-group.d.ts +2 -2
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-advanced-mode/snk-filter-advanced-mode.d.ts +20 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.d.ts +31 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +6 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.d.ts +2 -2
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +2 -1
- package/dist/types/components.d.ts +103 -2
- package/dist/types/lib/configs/ConfigStorage.d.ts +3 -2
- package/dist/types/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.d.ts +2 -1
- package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
- package/package.json +1 -1
- package/react/components.d.ts +2 -0
- package/react/components.js +2 -0
- package/react/components.js.map +1 -1
- package/dist/cjs/IExpressionItem-0e32ebb7.js +0 -7
- package/dist/cjs/snk-expression-group.cjs.entry.js +0 -250
- package/dist/esm/IExpressionItem-21f225bf.js +0 -7
- package/dist/esm/snk-expression-group.entry.js +0 -246
- package/dist/sankhyablocks/p-432a73a8.js +0 -1
- package/dist/sankhyablocks/p-63bff2a8.js +0 -1
- package/dist/sankhyablocks/p-6490021d.entry.js +0 -1
- package/dist/sankhyablocks/p-7d68a43a.js +0 -1
- package/dist/sankhyablocks/p-7fd8a0ab.entry.js +0 -1
- package/dist/sankhyablocks/p-9f34a127.entry.js +0 -1
- package/dist/sankhyablocks/p-a357d13c.entry.js +0 -1
- package/dist/sankhyablocks/p-d4adf773.js +0 -68
- package/dist/sankhyablocks/p-d9586ead.entry.js +0 -1
- package/dist/sankhyablocks/p-eb30a52a.entry.js +0 -1
- 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$
|
8
|
-
import { d as defineCustomElement$
|
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
|
-
|
210
|
+
handleExpressionChangeAdvancedMode(expression) {
|
173
211
|
this._filterAssistent = Object.assign(Object.assign({}, this._filterAssistent), { expression });
|
174
212
|
this._elButtonSave.enabled = !this.hasChangesToSave();
|
175
213
|
}
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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$
|
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-
|
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}`;
|
package/dist/esm/{PersonalizedFilterUtils-1a167d89.js → PersonalizedFilterUtils-731cae01.js}
RENAMED
@@ -1,58 +1,19 @@
|
|
1
1
|
import { DataType, NumberUtils, DateUtils, UserInterface } from '@sankhyalabs/core';
|
2
|
-
import './
|
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
|
11
|
+
static buildFilterExpression(expressionItem) {
|
12
|
+
var _a;
|
49
13
|
if (expressionItem == undefined) {
|
50
14
|
return;
|
51
15
|
}
|
52
|
-
|
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
|
-
|
80
|
-
|
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
|
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
|
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 {
|
218
|
+
export { PersonalizedFilterUtils as P };
|
@@ -359,12 +359,16 @@ const snkPersonalizedFilterMessages = {
|
|
359
359
|
labelCancel: "Cancelar",
|
360
360
|
labelSave: "Salvar",
|
361
361
|
labelNameFilter: "Nome do filtro",
|
362
|
-
labelExpression: "Expressão
|
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
|
-
|
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.",
|
package/dist/esm/{filter-bar-config-fetcher-a358b8e0.js → filter-bar-config-fetcher-790283d8.js}
RENAMED
@@ -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
|
-
|
131
|
+
path += `.${name}`;
|
131
132
|
}
|
132
|
-
|
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
|
|