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