@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,250 +0,0 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
-
|
5
|
-
const index = require('./index-f9e81701.js');
|
6
|
-
const IExpressionItem = require('./IExpressionItem-0e32ebb7.js');
|
7
|
-
const utils = require('@sankhyalabs/ezui/dist/collection/utils');
|
8
|
-
const core = require('@sankhyalabs/core');
|
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
|
-
index.registerInstance(this, hostRef);
|
15
|
-
this.ezFilterGroupChange = index.createEvent(this, "ezFilterGroupChange", 7);
|
16
|
-
this.ezFilterGroupRemove = index.createEvent(this, "ezFilterGroupRemove", 7);
|
17
|
-
this.ezExpressionGroupLayoutChanged = index.createEvent(this, "ezExpressionLayoutChanged", 7);
|
18
|
-
this.FIRST_LEVEL = "0";
|
19
|
-
this.LIMIT_GROUP_LEVEL = 4;
|
20
|
-
this.application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
21
|
-
this._conditionOperator = IExpressionItem.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
|
-
if (!this.filterId) {
|
55
|
-
this.canAddExpression = false;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
componentDidRender() {
|
59
|
-
this.setSelfTop();
|
60
|
-
}
|
61
|
-
changeHandler() {
|
62
|
-
this.ezExpressionGroupLayoutChanged.emit();
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* Função que define o valor atualizado da propriedade top do elemento em tela para calcular o tamanho do tracejado.
|
66
|
-
*/
|
67
|
-
setSelfTop() {
|
68
|
-
this._selfTop = this._element.getBoundingClientRect().top;
|
69
|
-
}
|
70
|
-
/**
|
71
|
-
* Função que calcula o tamanho que deve ter o tracejado.
|
72
|
-
*/
|
73
|
-
getDashedHeight() {
|
74
|
-
return this._selfTop - this.parentTop;
|
75
|
-
}
|
76
|
-
getOperand() {
|
77
|
-
return !this._group.operand ? IExpressionItem.FilterGroupCondition.AND : this._group.operand;
|
78
|
-
}
|
79
|
-
getMessage(key, params) {
|
80
|
-
return this.application.messagesBuilder.getMessage(key, params);
|
81
|
-
}
|
82
|
-
updateDashes() {
|
83
|
-
this._showDashes = false;
|
84
|
-
this.setSelfTop();
|
85
|
-
this._showDashes = true;
|
86
|
-
}
|
87
|
-
renderExpressionItems() {
|
88
|
-
var _a;
|
89
|
-
return (_a = this._group.items) === null || _a === void 0 ? void 0 : _a.map((item) => (index.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 })));
|
90
|
-
}
|
91
|
-
renderGroups() {
|
92
|
-
var _a;
|
93
|
-
const currentLevel = parseInt(this.getDataGroupLevel() || '0');
|
94
|
-
const newLevel = currentLevel + 1;
|
95
|
-
return (_a = this._group.childrenGroups) === null || _a === void 0 ? void 0 : _a.map((group) => (index.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 })));
|
96
|
-
}
|
97
|
-
handleFilterGroupRemove(evt, groupId) {
|
98
|
-
this.onStopPropagation(evt);
|
99
|
-
this._group.childrenGroups = this._group.childrenGroups.filter(group => group.id !== groupId);
|
100
|
-
index.forceUpdate(this);
|
101
|
-
this.ezFilterGroupChange.emit(this._group);
|
102
|
-
this.changeHandler();
|
103
|
-
}
|
104
|
-
handleFilterItemRemove(evt, itemId) {
|
105
|
-
this.onStopPropagation(evt);
|
106
|
-
this._group.items = this._group.items.filter(item => item.id !== itemId);
|
107
|
-
index.forceUpdate(this);
|
108
|
-
this.ezFilterGroupChange.emit(this._group);
|
109
|
-
this.changeHandler();
|
110
|
-
this.canAddExpression = true;
|
111
|
-
}
|
112
|
-
isFilledItem(item) {
|
113
|
-
if (!item.fieldName || !item.operand)
|
114
|
-
return false;
|
115
|
-
if (item.operand === 'NULL' || item.operand === 'NOT_NULL') {
|
116
|
-
return true;
|
117
|
-
}
|
118
|
-
else {
|
119
|
-
return item.paramVariable || (item.userInterface === 'SWITCH') ? true : !!item.value;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
handleFilterItemChange() {
|
123
|
-
this.ezFilterGroupChange.emit(this._group);
|
124
|
-
this.canAddExpression = this.group.items.every(this.isFilledItem);
|
125
|
-
}
|
126
|
-
handleAddExpression() {
|
127
|
-
const newItem = {
|
128
|
-
id: core.StringUtils.generateUUID(),
|
129
|
-
entityName: "",
|
130
|
-
fieldName: "",
|
131
|
-
description: "",
|
132
|
-
label: "Valor",
|
133
|
-
type: undefined,
|
134
|
-
expression: undefined,
|
135
|
-
operand: undefined,
|
136
|
-
paramVariable: false,
|
137
|
-
value: undefined,
|
138
|
-
systemConfig: null,
|
139
|
-
userConfig: null
|
140
|
-
};
|
141
|
-
this._group.items.push(newItem);
|
142
|
-
index.forceUpdate(this);
|
143
|
-
this.ezFilterGroupChange.emit(this.group);
|
144
|
-
this.changeHandler();
|
145
|
-
this.canAddExpression = false;
|
146
|
-
}
|
147
|
-
handleAddGroup() {
|
148
|
-
var _a;
|
149
|
-
const newGroup = {
|
150
|
-
id: core.StringUtils.generateUUID(),
|
151
|
-
items: [
|
152
|
-
{
|
153
|
-
id: core.StringUtils.generateUUID(),
|
154
|
-
entityName: "",
|
155
|
-
fieldName: "",
|
156
|
-
description: "",
|
157
|
-
label: "Valor",
|
158
|
-
type: undefined,
|
159
|
-
expression: undefined,
|
160
|
-
operand: undefined,
|
161
|
-
paramVariable: false,
|
162
|
-
value: undefined,
|
163
|
-
systemConfig: null,
|
164
|
-
userConfig: null
|
165
|
-
}
|
166
|
-
],
|
167
|
-
childrenGroups: [],
|
168
|
-
operand: IExpressionItem.FilterGroupCondition.AND
|
169
|
-
};
|
170
|
-
this._group.childrenGroups = (_a = this._group.childrenGroups) !== null && _a !== void 0 ? _a : [];
|
171
|
-
this._group.childrenGroups.push(newGroup);
|
172
|
-
index.forceUpdate(this);
|
173
|
-
this.ezFilterGroupChange.emit(this.group);
|
174
|
-
this.changeHandler();
|
175
|
-
}
|
176
|
-
buildGroupStyle() {
|
177
|
-
return {
|
178
|
-
height: `${this.getDashedHeight()}px`,
|
179
|
-
marginTop: `${-(this.getDashedHeight()) + 20}px`,
|
180
|
-
};
|
181
|
-
}
|
182
|
-
handleConditionOperatorChange(newOperator) {
|
183
|
-
this._conditionOperator = newOperator;
|
184
|
-
this._group.operand = IExpressionItem.FilterGroupCondition[newOperator];
|
185
|
-
this.ezFilterGroupChange.emit(this._group);
|
186
|
-
}
|
187
|
-
confirmRemoveGroup(evt) {
|
188
|
-
this.onStopPropagation(evt);
|
189
|
-
utils.ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmGroup.title"), this.getMessage("snkPersonalizedFilter.confirmGroup.description"))
|
190
|
-
.then((canRemove) => {
|
191
|
-
if (canRemove) {
|
192
|
-
this.ezFilterGroupRemove.emit(this._group);
|
193
|
-
}
|
194
|
-
});
|
195
|
-
}
|
196
|
-
getTooltipMessageForOperator() {
|
197
|
-
const groupLevel = this.getDataGroupLevel();
|
198
|
-
if (groupLevel === this.FIRST_LEVEL && this._group.items.length === 1) {
|
199
|
-
return this.getMessage("snkPersonalizedFilter.operador.firstLevel");
|
200
|
-
}
|
201
|
-
if (this._conditionOperator === IExpressionItem.FilterGroupCondition.AND) {
|
202
|
-
return this.getMessage("snkPersonalizedFilter.operador.and");
|
203
|
-
}
|
204
|
-
else if (this._conditionOperator === IExpressionItem.FilterGroupCondition.OR) {
|
205
|
-
return this.getMessage("snkPersonalizedFilter.operador.or");
|
206
|
-
}
|
207
|
-
}
|
208
|
-
getDataGroupLevel() {
|
209
|
-
return this._element.getAttribute('data-group-level');
|
210
|
-
}
|
211
|
-
canAddGroup() {
|
212
|
-
const dataGroupLevel = Number(this.getDataGroupLevel() || this.FIRST_LEVEL);
|
213
|
-
return dataGroupLevel < this.LIMIT_GROUP_LEVEL;
|
214
|
-
}
|
215
|
-
isFirstLevel() {
|
216
|
-
return Boolean(this.getDataGroupLevel() === this.FIRST_LEVEL);
|
217
|
-
}
|
218
|
-
onStopPropagation(evt) {
|
219
|
-
evt.preventDefault();
|
220
|
-
evt.stopPropagation();
|
221
|
-
}
|
222
|
-
getMessageAddTooltip() {
|
223
|
-
if (this.isFirstLevel()) {
|
224
|
-
const allValidItems = this.group.items.every(item => {
|
225
|
-
if (!item.fieldName || !item.operand)
|
226
|
-
return false;
|
227
|
-
return item.paramVariable || !!item.value;
|
228
|
-
});
|
229
|
-
return allValidItems ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
|
230
|
-
}
|
231
|
-
else {
|
232
|
-
return this.canAddExpression ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
|
233
|
-
}
|
234
|
-
}
|
235
|
-
canChangeGroupCondition() {
|
236
|
-
const membersCount = this._group.items.length + this._group.childrenGroups.length;
|
237
|
-
return membersCount > 1;
|
238
|
-
}
|
239
|
-
render() {
|
240
|
-
const canAddGroup = this.canAddGroup();
|
241
|
-
return (index.h(index.Host, null, index.h("div", { class: !this.isFirstLevel() && this._showDashes ? 'dashes' : 'hidden', style: this.buildGroupStyle() }), index.h("div", { class: !this.isFirstLevel() && this._showDashes ? 'horizontal-dashes' : 'hidden' }), index.h("div", { class: 'ez-flex ez-flex--align-items-center' }, index.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() }, index.h("label", { class: "ez-label ez-padding-right--medium ez-padding-left--medium ez-title--primary" }, this.getMessage("snkPersonalizedFilter.info.condition")), index.h("div", null, index.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) }, { [core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `comboBoxConditions_level_${this.getDataGroupLevel()}` }), index.h("option", { value: IExpressionItem.FilterGroupCondition.AND }, "E"), index.h("option", { value: IExpressionItem.FilterGroupCondition.OR }, "OU")))), index.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() }), index.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() }, index.h("ez-icon", { slot: "leftIcon", iconName: "plus" })), !this.isFirstLevel() && index.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) })), index.h("div", { class: "ez-padding-top--small snk-expression-group__container-expression" }, index.h("div", { class: "ez-padding-top--small" }, this.renderExpressionItems())), index.h("div", { class: "ez-padding-top--small snk-expression-group__container-expression" }, index.h("div", { class: "ez-padding-top--small" }, this.renderGroups()))));
|
242
|
-
}
|
243
|
-
get _element() { return index.getElement(this); }
|
244
|
-
static get watchers() { return {
|
245
|
-
"group": ["watchGroup"]
|
246
|
-
}; }
|
247
|
-
};
|
248
|
-
SnkExpressionGroup.style = snkExpressionGroupCss;
|
249
|
-
|
250
|
-
exports.snk_expression_group = SnkExpressionGroup;
|
@@ -1,246 +0,0 @@
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, f as forceUpdate, H as Host, g as getElement } from './index-a7d3d3f1.js';
|
2
|
-
import { F as FilterGroupCondition } from './IExpressionItem-21f225bf.js';
|
3
|
-
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
4
|
-
import { ApplicationContext, StringUtils, ElementIDUtils } from '@sankhyalabs/core';
|
5
|
-
|
6
|
-
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}";
|
7
|
-
|
8
|
-
const SnkExpressionGroup = class {
|
9
|
-
constructor(hostRef) {
|
10
|
-
registerInstance(this, hostRef);
|
11
|
-
this.ezFilterGroupChange = createEvent(this, "ezFilterGroupChange", 7);
|
12
|
-
this.ezFilterGroupRemove = createEvent(this, "ezFilterGroupRemove", 7);
|
13
|
-
this.ezExpressionGroupLayoutChanged = createEvent(this, "ezExpressionLayoutChanged", 7);
|
14
|
-
this.FIRST_LEVEL = "0";
|
15
|
-
this.LIMIT_GROUP_LEVEL = 4;
|
16
|
-
this.application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
17
|
-
this._conditionOperator = FilterGroupCondition.AND;
|
18
|
-
this._group = undefined;
|
19
|
-
this._selfTop = 0;
|
20
|
-
this.canAddExpression = true;
|
21
|
-
this._showDashes = true;
|
22
|
-
this.parentTop = 0;
|
23
|
-
this.group = undefined;
|
24
|
-
this.messagesBuilder = undefined;
|
25
|
-
this.filterId = undefined;
|
26
|
-
this.entityURI = undefined;
|
27
|
-
}
|
28
|
-
/**
|
29
|
-
* Listener para capturar adição e remoção de grupos e items de expressão.
|
30
|
-
*/
|
31
|
-
todoCompletedHandler(_) {
|
32
|
-
this.updateDashes();
|
33
|
-
}
|
34
|
-
/*
|
35
|
-
* Retorna o grupo da expressão.
|
36
|
-
*/
|
37
|
-
async getExpressionGroup() {
|
38
|
-
return this._group;
|
39
|
-
}
|
40
|
-
watchGroup(newValue) {
|
41
|
-
this._group = newValue;
|
42
|
-
this._conditionOperator = this.getOperand();
|
43
|
-
}
|
44
|
-
componentWillLoad() {
|
45
|
-
this._group = this.group;
|
46
|
-
this._conditionOperator = this.getOperand();
|
47
|
-
if (!this.getDataGroupLevel()) {
|
48
|
-
this._element.setAttribute('data-group-level', this.FIRST_LEVEL);
|
49
|
-
}
|
50
|
-
if (!this.filterId) {
|
51
|
-
this.canAddExpression = false;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
componentDidRender() {
|
55
|
-
this.setSelfTop();
|
56
|
-
}
|
57
|
-
changeHandler() {
|
58
|
-
this.ezExpressionGroupLayoutChanged.emit();
|
59
|
-
}
|
60
|
-
/**
|
61
|
-
* Função que define o valor atualizado da propriedade top do elemento em tela para calcular o tamanho do tracejado.
|
62
|
-
*/
|
63
|
-
setSelfTop() {
|
64
|
-
this._selfTop = this._element.getBoundingClientRect().top;
|
65
|
-
}
|
66
|
-
/**
|
67
|
-
* Função que calcula o tamanho que deve ter o tracejado.
|
68
|
-
*/
|
69
|
-
getDashedHeight() {
|
70
|
-
return this._selfTop - this.parentTop;
|
71
|
-
}
|
72
|
-
getOperand() {
|
73
|
-
return !this._group.operand ? FilterGroupCondition.AND : this._group.operand;
|
74
|
-
}
|
75
|
-
getMessage(key, params) {
|
76
|
-
return this.application.messagesBuilder.getMessage(key, params);
|
77
|
-
}
|
78
|
-
updateDashes() {
|
79
|
-
this._showDashes = false;
|
80
|
-
this.setSelfTop();
|
81
|
-
this._showDashes = true;
|
82
|
-
}
|
83
|
-
renderExpressionItems() {
|
84
|
-
var _a;
|
85
|
-
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 })));
|
86
|
-
}
|
87
|
-
renderGroups() {
|
88
|
-
var _a;
|
89
|
-
const currentLevel = parseInt(this.getDataGroupLevel() || '0');
|
90
|
-
const newLevel = currentLevel + 1;
|
91
|
-
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 })));
|
92
|
-
}
|
93
|
-
handleFilterGroupRemove(evt, groupId) {
|
94
|
-
this.onStopPropagation(evt);
|
95
|
-
this._group.childrenGroups = this._group.childrenGroups.filter(group => group.id !== groupId);
|
96
|
-
forceUpdate(this);
|
97
|
-
this.ezFilterGroupChange.emit(this._group);
|
98
|
-
this.changeHandler();
|
99
|
-
}
|
100
|
-
handleFilterItemRemove(evt, itemId) {
|
101
|
-
this.onStopPropagation(evt);
|
102
|
-
this._group.items = this._group.items.filter(item => item.id !== itemId);
|
103
|
-
forceUpdate(this);
|
104
|
-
this.ezFilterGroupChange.emit(this._group);
|
105
|
-
this.changeHandler();
|
106
|
-
this.canAddExpression = true;
|
107
|
-
}
|
108
|
-
isFilledItem(item) {
|
109
|
-
if (!item.fieldName || !item.operand)
|
110
|
-
return false;
|
111
|
-
if (item.operand === 'NULL' || item.operand === 'NOT_NULL') {
|
112
|
-
return true;
|
113
|
-
}
|
114
|
-
else {
|
115
|
-
return item.paramVariable || (item.userInterface === 'SWITCH') ? true : !!item.value;
|
116
|
-
}
|
117
|
-
}
|
118
|
-
handleFilterItemChange() {
|
119
|
-
this.ezFilterGroupChange.emit(this._group);
|
120
|
-
this.canAddExpression = this.group.items.every(this.isFilledItem);
|
121
|
-
}
|
122
|
-
handleAddExpression() {
|
123
|
-
const newItem = {
|
124
|
-
id: StringUtils.generateUUID(),
|
125
|
-
entityName: "",
|
126
|
-
fieldName: "",
|
127
|
-
description: "",
|
128
|
-
label: "Valor",
|
129
|
-
type: undefined,
|
130
|
-
expression: undefined,
|
131
|
-
operand: undefined,
|
132
|
-
paramVariable: false,
|
133
|
-
value: undefined,
|
134
|
-
systemConfig: null,
|
135
|
-
userConfig: null
|
136
|
-
};
|
137
|
-
this._group.items.push(newItem);
|
138
|
-
forceUpdate(this);
|
139
|
-
this.ezFilterGroupChange.emit(this.group);
|
140
|
-
this.changeHandler();
|
141
|
-
this.canAddExpression = false;
|
142
|
-
}
|
143
|
-
handleAddGroup() {
|
144
|
-
var _a;
|
145
|
-
const newGroup = {
|
146
|
-
id: StringUtils.generateUUID(),
|
147
|
-
items: [
|
148
|
-
{
|
149
|
-
id: StringUtils.generateUUID(),
|
150
|
-
entityName: "",
|
151
|
-
fieldName: "",
|
152
|
-
description: "",
|
153
|
-
label: "Valor",
|
154
|
-
type: undefined,
|
155
|
-
expression: undefined,
|
156
|
-
operand: undefined,
|
157
|
-
paramVariable: false,
|
158
|
-
value: undefined,
|
159
|
-
systemConfig: null,
|
160
|
-
userConfig: null
|
161
|
-
}
|
162
|
-
],
|
163
|
-
childrenGroups: [],
|
164
|
-
operand: FilterGroupCondition.AND
|
165
|
-
};
|
166
|
-
this._group.childrenGroups = (_a = this._group.childrenGroups) !== null && _a !== void 0 ? _a : [];
|
167
|
-
this._group.childrenGroups.push(newGroup);
|
168
|
-
forceUpdate(this);
|
169
|
-
this.ezFilterGroupChange.emit(this.group);
|
170
|
-
this.changeHandler();
|
171
|
-
}
|
172
|
-
buildGroupStyle() {
|
173
|
-
return {
|
174
|
-
height: `${this.getDashedHeight()}px`,
|
175
|
-
marginTop: `${-(this.getDashedHeight()) + 20}px`,
|
176
|
-
};
|
177
|
-
}
|
178
|
-
handleConditionOperatorChange(newOperator) {
|
179
|
-
this._conditionOperator = newOperator;
|
180
|
-
this._group.operand = FilterGroupCondition[newOperator];
|
181
|
-
this.ezFilterGroupChange.emit(this._group);
|
182
|
-
}
|
183
|
-
confirmRemoveGroup(evt) {
|
184
|
-
this.onStopPropagation(evt);
|
185
|
-
ApplicationUtils.confirm(this.getMessage("snkPersonalizedFilter.confirmGroup.title"), this.getMessage("snkPersonalizedFilter.confirmGroup.description"))
|
186
|
-
.then((canRemove) => {
|
187
|
-
if (canRemove) {
|
188
|
-
this.ezFilterGroupRemove.emit(this._group);
|
189
|
-
}
|
190
|
-
});
|
191
|
-
}
|
192
|
-
getTooltipMessageForOperator() {
|
193
|
-
const groupLevel = this.getDataGroupLevel();
|
194
|
-
if (groupLevel === this.FIRST_LEVEL && this._group.items.length === 1) {
|
195
|
-
return this.getMessage("snkPersonalizedFilter.operador.firstLevel");
|
196
|
-
}
|
197
|
-
if (this._conditionOperator === FilterGroupCondition.AND) {
|
198
|
-
return this.getMessage("snkPersonalizedFilter.operador.and");
|
199
|
-
}
|
200
|
-
else if (this._conditionOperator === FilterGroupCondition.OR) {
|
201
|
-
return this.getMessage("snkPersonalizedFilter.operador.or");
|
202
|
-
}
|
203
|
-
}
|
204
|
-
getDataGroupLevel() {
|
205
|
-
return this._element.getAttribute('data-group-level');
|
206
|
-
}
|
207
|
-
canAddGroup() {
|
208
|
-
const dataGroupLevel = Number(this.getDataGroupLevel() || this.FIRST_LEVEL);
|
209
|
-
return dataGroupLevel < this.LIMIT_GROUP_LEVEL;
|
210
|
-
}
|
211
|
-
isFirstLevel() {
|
212
|
-
return Boolean(this.getDataGroupLevel() === this.FIRST_LEVEL);
|
213
|
-
}
|
214
|
-
onStopPropagation(evt) {
|
215
|
-
evt.preventDefault();
|
216
|
-
evt.stopPropagation();
|
217
|
-
}
|
218
|
-
getMessageAddTooltip() {
|
219
|
-
if (this.isFirstLevel()) {
|
220
|
-
const allValidItems = this.group.items.every(item => {
|
221
|
-
if (!item.fieldName || !item.operand)
|
222
|
-
return false;
|
223
|
-
return item.paramVariable || !!item.value;
|
224
|
-
});
|
225
|
-
return allValidItems ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
|
226
|
-
}
|
227
|
-
else {
|
228
|
-
return this.canAddExpression ? this.getMessage("snkPersonalizedFilter.info.labelAddNewExpression") : this.getMessage("snkPersonalizedFilter.info.labelDisabledAddExpressionButton");
|
229
|
-
}
|
230
|
-
}
|
231
|
-
canChangeGroupCondition() {
|
232
|
-
const membersCount = this._group.items.length + this._group.childrenGroups.length;
|
233
|
-
return membersCount > 1;
|
234
|
-
}
|
235
|
-
render() {
|
236
|
-
const canAddGroup = this.canAddGroup();
|
237
|
-
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", { 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()))));
|
238
|
-
}
|
239
|
-
get _element() { return getElement(this); }
|
240
|
-
static get watchers() { return {
|
241
|
-
"group": ["watchGroup"]
|
242
|
-
}; }
|
243
|
-
};
|
244
|
-
SnkExpressionGroup.style = snkExpressionGroupCss;
|
245
|
-
|
246
|
-
export { SnkExpressionGroup as snk_expression_group };
|
@@ -1 +0,0 @@
|
|
1
|
-
import{F as e}from"./p-584d7212.js";import{R as t}from"./p-f034254e.js";function i(t,r){if(null==t)return t;if(t instanceof Date)return t.toISOString();if("object"==typeof t){if(t instanceof Array)return t.map((t=>i(e.MULTI_LIST===r?function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i}(t,["label"]):t)));{const e=Object.assign({},t);return Object.keys(t).forEach((n=>{t[n]?e[n]=i(t[n],r):delete e[n]})),e}}return t}class r extends t{normalize(e){return e.map((e=>{const{id:t,value:r,fixed:n,visible:s,type:l,groupedItems:o}=e,u={id:t};if(r&&(u.value=i(r,l)),n&&(u.fixed=n),o){if(0===o.length)return;o.filter((e=>e.visible)).length>0&&(u.visible=!0),u.groupedItems=this.normalize(o)}else s&&(u.visible=!0);return u})).filter((e=>null!=e))}saveConfig(e,t,i){return this.saveResource(this.normalize(e),this.getPath(t,i))}getConfig(e,t){return new Promise(((i,r)=>{this.loadResource(this.getPath(e,t)).then((e=>{let t;if(e){const i=JSON.parse(e);t=this.buildFieldList(i.items)}i(t||[])})).catch((e=>{r(e)}))}))}saveEntityListConfig(e,t,r){return new Promise(((n,s)=>{this.getConfig(t,r).then((l=>{const o=l.map((({id:e,value:t,fixed:r,visible:n,type:s,groupedItems:l})=>Object.assign(Object.assign(Object.assign(Object.assign({id:e},t&&{value:i(t,s)}),r&&{fixed:r}),n&&{visible:!0}),{groupedItems:l}))),u=o.findIndex((({id:t})=>t===e.id)),f={id:e.id,value:i(e.value,e.type),fixed:e.fixed,visible:!0};u>-1?o[u]=f:o.push(f),this.saveResource(o,this.getPath(t,r)).then((e=>{n(e)})).catch((e=>{s(e)}))})).catch((e=>{s(e)}))}))}buildFieldList(t){return t.map((t=>{var i,r;if(t.type===e.MULTI_LIST){const e=t.value;t.value=null!==(r=null!==(i=null==e?void 0:e.elements)&&void 0!==i?i:null==e?void 0:e.members)&&void 0!==r?r:e}return t}))}getPath(e,t){return t?`cfg://filter/FilterBarState:${e}.${t}`:`cfg://filter/FilterBarState:${e}`}}export{r as F}
|
@@ -1 +0,0 @@
|
|
1
|
-
var a;!function(a){a.AND="AND",a.OR="OR"}(a||(a={}));export{a as F}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,h as i,H as e,g as r}from"./p-d2d301a6.js";import{DataType as s,ObjectUtils as a,ElementIDUtils as l,ErrorException as n,ApplicationContext as o}from"@sankhyalabs/core";import{EzScrollDirection as d}from"@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection";import{C as c}from"./p-d4adf773.js";import{toString as h}from"@sankhyalabs/core/dist/dataunit/metadata/DataType";import{F as f}from"./p-584d7212.js";import{F as u,P as p}from"./p-7d68a43a.js";import{ApplicationUtils as m}from"@sankhyalabs/ezui/dist/collection/utils";import"./p-982107dc.js";import"./p-4f550a1a.js";import"./p-112455b1.js";import"./p-f034254e.js";import"./p-432a73a8.js";import"./p-63bff2a8.js";class b{constructor({filterConfig:t,configName:i,onComplete:e,getMessage:r,onAddPersonalizedFilter:s,onEditPersonalizedFilter:a}){this._filterConfig=t,this._configName=i,this._onComplete=e,this._getMessage=r,this._addPersonalizedFilterFn=s,this._editPersonalizedFilterFn=a}applyFilters(t){this._onComplete(t),this._closeModal()}buildFilterModal(){const t=document.createElement("snk-filter-modal");return t.className="ez-size-height--full",t.filters=this._filterConfig,t.configName=this._configName,t.getMessage=this._getMessage.bind(this),t.applyFilters=this.applyFilters.bind(this),t.closeModal=()=>this._closeModal(),t.addPersonalizedFilter=()=>this._addPersonalizedFilterFn(),t.editPersonalizedFilter=t=>this._editPersonalizedFilterFn(t),t}async showModal(){const t={content:this.buildFilterModal(),position:"left",heightMode:"full",closeOutsideClick:!1,useScrimLight:!0};this._closeModal=await m.showModal(t)}async closeModal(){this._closeModal()}}const k=class{constructor(i){t(this,i),this._updateSequence=[],this._loadingPending=!1,this._configUpdated=!1,this._pendingVariables=!1,this._customfiltersToBeUpdated=[],this._calculateSortIndex=t=>{let i=t.hardFixed?1e6:0;return t.hardFixed||(i+=t.fixed?1e5:0,i+=null==t.value?0:1e4,i+=this._updateSequence.lastIndexOf(t.id)+1),i},this._filtersComparator=(t,i)=>this._calculateSortIndex(i)-this._calculateSortIndex(t),this.dataUnit=void 0,this.configName=void 0,this.filterConfig=void 0,this.messagesBuilder=void 0,this.allowDefault=void 0,this.scrollerLocked=!1,this.showPersonalizedFilter=!1,this.personalizedFilterId=void 0}observeFilterConfig(t,i){if(null!=i&&null==t)this._loadingPending=!0,this._configUpdated=!0;else{const e=new Map(i?i.map((t=>[t.id,t])):void 0);0===e.size&&t.length>0?(this._loadingPending=!0,this._configUpdated=!1):t.forEach((t=>{const i=e.get(t.id);if(null!=i){if(this._configUpdated=this._configUpdated||a.objectToString(i)!=a.objectToString(t),this._loadingPending=this._loadingPending||a.objectToString(i.value)!==a.objectToString(t.value),!this._loadingPending){const e=a.objectToString(i.groupedItems)!=a.objectToString(t.groupedItems);this._configUpdated=this._configUpdated||e,this._loadingPending=this._loadingPending||e}}else this._configUpdated=!0,this._loadingPending=this._loadingPending||null!=t.value}))}this.processAfterUpdateConfig()}async reload(){this.loadConfigFromStorage()}componentDidLoad(){this._element&&l.addIDInfo(this._element,null,{dataUnit:this.dataUnit})}processPendingFilter(){if(this._pendingVariables){const t=this._element.querySelector("#filter-PERSONALIZED_FILTER_GROUP");t&&t.showUp(!0).then((()=>{this.processAfterUpdateConfig()}))}else this.processAfterUpdateConfig()}getPersonalizedFilterItem(){return this.filterConfig.find((t=>t.type===f.PERSONALIZED))}async processAfterUpdateConfig(){if(this._loadingPending){const t=this.getPersonalizedFilterItem();if(this._pendingVariables=!p.validateVariableValues(t),this._pendingVariables)return;this._loadingPending=!1,this.dataUnit.loadData()}this._configUpdated&&(this._configUpdated=!1,c.saveFilterBarConfig(this.filterConfig,this.configName))}getMessage(t,i,e){var r;return(null===(r=this.messagesBuilder)||void 0===r?void 0:r.getMessage(t,i))||e}getFilter(t){var i;const e=[];return null===(i=this.filterConfig)||void 0===i||i.filter((t=>this.isActiveFilter(t))).forEach((t=>{const i=(t=>{switch(t.type){case f.DEFAULT_FILTER:return function(t){return{name:t.id,expression:t.props.expression,params:[]}}(t);case f.BINARY_SELECT:return function(t){const{id:i,value:e,props:r}=t;return{name:i,expression:r.options.find((t=>t.name===e)).expression,params:[]}}(t);case f.MULTI_SELECT:return function(t){const{id:i,value:e,props:r}=t;return{name:i,expression:r.expression,params:[{name:i,dataType:s.TEXT,value:e}]}}(t);case f.MULTI_LIST:return function(t){const{id:i,value:e,props:r}=t,a=(null!==(o=null!==(n=null==(l=e)?void 0:l.elements)&&void 0!==n?n:null==l?void 0:l.members)&&void 0!==o?o:l).filter((t=>null==t?void 0:t.check)).map((({id:t})=>Number.isNaN(+t)?String(t):Number(t)));var l,n,o;if(a.length>0)return{name:i,expression:r.expression,params:[{name:i,dataType:s.TEXT,value:JSON.stringify(a)}]}}(t);case f.PERIOD:return function(t){const{id:i,value:e,props:r}=t;let{end:a,start:l}=e;"string"==typeof a&&(a=new Date(a)),"string"==typeof l&&(l=new Date(l));const n=[];let o;return a&&l?(o=r.expression.fullfill,n.push({name:`${i}.START`,dataType:s.DATE,value:h(s.DATE,l)},{name:`${i}.END`,dataType:s.DATE,value:h(s.DATE,a)})):l?(o=r.expression.onlystart,n.push({name:i,dataType:s.DATE,value:h(s.DATE,l)})):(o=r.expression.onlyend,n.push({name:i,dataType:s.DATE,value:h(s.DATE,a)})),{name:i,expression:o,params:n}}(t);case f.SEARCH:return function(t){const{id:i,value:e,props:r}=t;return{name:i,expression:r.expression,params:[{name:i,dataType:s.TEXT,value:h(s.TEXT,e.value)}]}}(t);case f.TEXT:return function(t){const{id:i,value:e,props:r}=t;return{name:i,expression:r.expression,params:[{name:i,dataType:s.TEXT,value:h(s.TEXT,e)}]}}(t);case f.NUMBER:return function(t){const{id:i,value:e,props:r}=t;return{name:i,expression:r.expression,params:[{name:i,dataType:s.NUMBER,value:h(s.NUMBER,e)}]}}(t);case f.PERSONALIZED:return function(t){const{id:i,groupedItems:e=[]}=t,r=e.filter((t=>!!t.visible)).map((t=>{var i;const e=t.props.expression,r=((null===(i=t.props.personalizedFilter)||void 0===i?void 0:i.parameters)||[]).map(((i,e)=>{const r=Array.from(t.value||0),a=i.dataType;let l=e>=0&&e<r.length?r[e]:null;return null!=l&&"object"==typeof l&&"value"in l&&(l=l.value),null==l&&a===s.BOOLEAN&&(l=!1),{name:i.name,dataType:a,value:"string"==typeof l?l:h(a,l)}}));return{expression:e,name:t.id,params:r}}));return{name:i,expression:r.map((t=>`(${t.expression})`)).join(` ${u.AND} `),params:r.flatMap((t=>t.params))}}(t);default:return}})(t);i&&e.push(i)})),e}isActiveFilter(t){return t.type===f.DEFAULT_FILTER||this.filterActiveFilter(t)&&(t.groupedItems||null!=t.value)}registryFilterProvider(){this.dataUnit.addFilterProvider(this),this.filterConfig&&this.dataUnit.loadData()}itemFocused(t){this._element.querySelectorAll("snk-filter-item,snk-filter-list").forEach((i=>{i.id===t?"snk-filter-item"===i.tagName.toLowerCase()&&i.getClientRects()[0].x<0&&i.scrollIntoView({behavior:"auto",inline:"nearest"}):i.hideDetail()}))}filterActiveFilter(t){return t.visible||t.removalBlocked}getFilterItems(){const t=[],e=[];this.filterConfig.filter(this.filterActiveFilter).forEach(((r,s)=>{const l=`filter-${(r=a.copy(r)).id}`,n=i("snk-filter-item",{onVisibleChanged:t=>this.scrollerLocked=t.detail,onFilterChange:t=>this.updateFilter(t.detail),onFocusin:()=>this.itemFocused(l),id:l,config:r,class:s>0?"ez-padding-left--medium":"",getMessage:(t,i)=>this.getMessage(t,i),key:r.id});return r.fixed||r.hardFixed?t.push(n):e.push(n),n}));const r=[];return r.push(...t),t.length>0&&e.length>0&&r.push(i("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider"})),r.push(...e),r}calculateUpdateSequence(t){t&&(this._updateSequence=this._updateSequence.filter((i=>t.id!==i)),this._updateSequence.push(t.id))}normalizeItem(t){const i=Object.assign({},t);return["props","value","hardFixed","fixed"].forEach((t=>{null==i[t]&&delete i[t]})),""===t.value&&delete t.value,i}updateFilter(t){this.filterConfig=this.filterConfig.map((i=>(t=this.normalizeItem(t),i.id===t.id?(a.objectToString(i)!=a.objectToString(t)&&this.calculateUpdateSequence(t),t):i))).sort(((t,i)=>this._filtersComparator(t,i)))}loadPermitions(){this._application.isUserSup().then((t=>this.allowDefault=t))}loadConfigFromStorage(){return new Promise((t=>{c.get().then((i=>{i.loadFilterBarConfig(this.configName).then((i=>{t(),this.filterConfig=i.map((t=>this.normalizeItem(t)))})).catch((t=>{throw new n(this.getMessage("snkFilterBar.failToLoadConfig"),t)}))}))}))}attachDataUnit(){if(null==this.dataUnit){let t=this._element.parentElement;for(;t;)if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){const i=t;this.dataUnit=i.dataUnit,this.dataUnit?this.registryFilterProvider():i.addEventListener("dataUnitReady",(t=>{this.dataUnit=t.detail,this.registryFilterProvider()}));break}t=t.parentElement}else this.registryFilterProvider()}filterChangeListener(t){this.updateFilter(t.detail)}async showFilterModal(){const t={filterConfig:a.copy(this.filterConfig),configName:this.configName,onComplete:t=>{this.filterConfig=t.map(this.normalizeItem).sort(((t,i)=>this._filtersComparator(t,i)))},getMessage:(t,i)=>this.getMessage(t,i),onAddPersonalizedFilter:()=>this.addPersonalizedFilter(),onEditPersonalizedFilter:t=>this.editPersonalizedFilter(t)};this._filterModalFactory=new b(t),await this._filterModalFactory.showModal()}addPersonalizedFilter(){this._filterModalFactory.closeModal(),this.personalizedFilterId=void 0,this.showPersonalizedFilter=!0,window.requestAnimationFrame((()=>{this._elPersonalizedFilter.createPersonalizedFilter()}))}editPersonalizedFilter(t){this._filterModalFactory.closeModal(),this.showPersonalizedFilter=!0,this.personalizedFilterId=t}hidePersonalizedFilter(){this.loadConfigFromStorage().then((()=>{this.personalizedFilterId=void 0,this.showPersonalizedFilter=!1}))}componentWillLoad(){this._application=o.getContextValue("__SNK__APPLICATION__"),this._application&&(this.loadPermitions(),this.loadConfigFromStorage()),this.attachDataUnit()}componentDidRender(){this.processPendingFilter()}render(){if(this.dataUnit&&this.filterConfig&&0!==this.filterConfig.length)return this.showPersonalizedFilter?i("snk-personalized-filter",{class:"filter-bar__personalized-filter",filterId:this.personalizedFilterId,ref:t=>this._elPersonalizedFilter=t,onEzCancel:()=>this.hidePersonalizedFilter(),entityUri:this.dataUnit.name,configName:this.configName}):i(e,null,i("ez-scroller",{class:"snk-filter-bar__scroller",direction:d.HORIZONTAL,activeShadow:!0,locked:this.scrollerLocked},i("section",{class:"snk-filter-bar__filter-item-container"},this.getFilterItems())),i("ez-button",{class:"ez-padding-left--medium",size:"small",label:this.getMessage("snkFilterBar.filters",void 0,"Filtros"),onClick:this.showFilterModal.bind(this)},i("ez-icon",{slot:"leftIcon",iconName:"plus",class:"ez-padding-right--small"})))}get _element(){return r(this)}static get watchers(){return{filterConfig:["observeFilterConfig"]}}};k.style='.sc-snk-filter-bar-h{display:grid;grid-template-columns:minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--more-visible, 2);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;z-index:var(--most-visible, 3);background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__scroller.sc-snk-filter-bar{height:calc(100% + var(--space-extra-small, 3px))}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-self:center}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:"";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}';export{k as snk_filter_bar}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{DataType as t,NumberUtils as i,DateUtils as r,UserInterface as e}from"@sankhyalabs/core";import"./p-63bff2a8.js";import{F as n}from"./p-584d7212.js";var a,s,l,o;!function(t){t.SYSTEM_CONFIG="S",t.USER_CONFIG="E"}(a||(a={})),function(t){t.DATE="D",t.HORA="H",t.TEXT="S",t.INTEGER="I",t.DECIMAL="F",t.NUMBER="NUMBER"}(s||(s={})),function(t){t.AND="AND",t.OR="OR",t.IN="IN",t.DIFFERENT="<>",t.LIKE="LIKE",t.START_WITH="LIKE_START",t.FINISHED_WITH="LIKE_END",t.NULL="NULL",t.NOT_NULL="NOT NULL",t.EQUAL="=",t.LARGER=">",t.LARGER_EQUAL=">=",t.SMALLER="<",t.SMALLER_EQUAL="<="}(l||(l={})),function(t){t.FIELD="Campo",t.INSTANCE="Instancia"}(o||(o={}));class u{static buildFilterExpression(t,i=!1){if(null==t)return;if(!this.validateExpressionItem(t)&&i)return"";let r=this.buildVariableParameterValue(t),e=t.expression||"",n="'";switch(t.paramVariable&&(n=""),t.operand){case"IN":e+=` ${l[t.operand]} (${r})`;break;case"NULL":case"NOT_NULL":e+=` IS ${l[t.operand]}`;break;case"LIKE":e+=` LIKE '%${r}%'`;break;case"START_WITH":e+=` LIKE '${r}%'`;break;case"FINISHED_WITH":e+=` LIKE '%${r}'`;break;default:r="string"==typeof r?`${n}${r}${n}`:r,e+=` ${l[t.operand]} ${r}`}return e}static buildVariableParameterValue(r){var n;if(null!=r){if(r.paramVariable)return this.proccessVarialbeParameter(r);if(r.operand!==l.NULL&&"NOT_NULL"!==r.operand){let a=r.value;const s=r.type;return e.SEARCH!==r.userInterface&&t.OBJECT!=s||(a=null!==(n=null==a?void 0:a.value)&&void 0!==n?n:a),t.NUMBER==s&&null!=a?(a=i.stringToNumber(a),this.checkIsValidNumber(a)):t.DATE==s?a=this.convertDataValue(a):t.BOOLEAN==s&&(a=a?"S":"N"),a}return r.operand}}static checkIsValidNumber(t){if(isNaN(t))throw new Error("O valor informado não é um número válido.")}static proccessVarialbeParameter(t){if(null!=t.systemConfig){const i=t.systemConfig;return`?:{entidade=${i.entity||""};campo=${i.fieldName||""}}`}if(null!=t.userConfig){const i=t.userConfig;return`?:{desc=${i.description||""};tipo=${i.type||""}}`}return`?:{entidade=${t.entityName||""};campo=${t.fieldName||""}}`}static convertDataValue(t){return"string"==typeof t&&(t=new Date(t)),r.formatDate(t)}static buildGroupExpression(t,i=!1){var r,e;if(!(null===(r=null==t?void 0:t.items)||void 0===r?void 0:r.length))return"";const n=t.items.map((t=>this.buildFilterExpression(t,i))).join(` ${t.operand} `);if((null===(e=null==t?void 0:t.childrenGroups)||void 0===e?void 0:e.length)>0){const i=t.childrenGroups.map((t=>this.buildGroupExpression(t))).join(` ${t.operand} `);return`(${n} ${t.operand} (${i}))`}return`(${n})`}static validateFields(t){const i=this.buildPlainExpressionItems(t);for(const t of i)if(!this.validateExpressionItem(t))return!1;return!0}static buildPlainExpressionItems(t){const{items:i=[],childrenGroups:r=[]}=t||{},e=t=>t.reduce(((t,i)=>{var r;return i.items&&(t=t.concat(i.items)),(null===(r=i.childrenGroups)||void 0===r?void 0:r.length)&&(t=t.concat(e(i.childrenGroups))),t}),[]);return i.concat(e(r))}static validateExpressionItem(t){return Object.entries({fieldName:t=>!!t,value:(t,i)=>!!i||null!=t,operand:t=>!!t}).every((i=>{const[r,e]=i,n=t.paramVariable||"SWITCH"===t.userInterface||["NULL","NOT_NULL"].includes(t.operand);return e(t[r],n)}))}static getNormalizedValue(i,r){return i.reduce(((i,r,e)=>(r.dataType!==t.BOOLEAN||null!=i&&null!=i[e]||((i=i&&!Array.isArray(i)?[i]:i||[])[e]=!1),i)),r)}static validateVariableValues(i,r){if(!i)return!0;let e=r||i.value,a=!0;if(i.type===n.PERSONALIZED){const r=(i.groupedItems||[]).filter((t=>t.visible)).filter((t=>{var i,r,e;return!!(null===(e=null===(r=null===(i=t.props)||void 0===i?void 0:i.personalizedFilter)||void 0===r?void 0:r.parameters)||void 0===e?void 0:e.length)})),n=r.flatMap((t=>{var i;return null===(i=t.props.personalizedFilter)||void 0===i?void 0:i.parameters})),s=r.flatMap((i=>!(i.props.personalizedFilter.parameters[0].dataType===t.BOOLEAN)&&i.value));e=this.getNormalizedValue(n,e),a=n.length===s.length&&s.every((t=>null!=t))}return a}static buildVariableParameters(t){var i,r,e,n;const a=this.buildPlainExpressionItems(t),s=[];for(const t of a)t.paramVariable&&s.push({entityName:t.entityName,fieldName:t.fieldName,dataType:t.type,description:t.description,userInterface:t.userInterface,label:t.fieldLabel,searchContext:{entity:null===(r=null===(i=t.props)||void 0===i?void 0:i.find((t=>"ENTITYNAME"==t.name)))||void 0===r?void 0:r.value,entityDescription:null===(n=null===(e=t.props)||void 0===e?void 0:e.find((t=>"DESCRIPTIONENTITY"==t.name)))||void 0===n?void 0:n.value,searchOptions:{showInactives:!1}}});return s}}export{l as F,u as P,a,o as b,s as c}
|
@@ -1 +0,0 @@
|
|
1
|
-
export{S as snk_data_unit}from"./p-652b9081.js";import"./p-d2d301a6.js";import"@sankhyalabs/core";import"@sankhyalabs/ezui/dist/collection/utils";import"./p-4f3df9b6.js";
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as i,c as e,h as s,F as t,H as l}from"./p-d2d301a6.js";import{StringUtils as n,ObjectUtils as r,ApplicationContext as a}from"@sankhyalabs/core";import{P as o}from"./p-7d68a43a.js";import{P as h,C as d}from"./p-d4adf773.js";import{ApplicationUtils as p}from"@sankhyalabs/ezui/dist/collection/utils";import{F as c}from"./p-63bff2a8.js";import{s as z}from"./p-6dc031de.js";import"./p-584d7212.js";import"./p-982107dc.js";import"./p-4f550a1a.js";import"./p-112455b1.js";import"./p-f034254e.js";import"./p-432a73a8.js";const f=class{constructor(s){i(this,s),this.ezCancel=e(this,"ezCancel",7),this.ezSave=e(this,"ezSave",7),this._personalizedFilterFetcher=new h,this._filterMetadataStorage=new Map,this._dataSourceFetcher={fetchData:async i=>{let e=null==i?void 0:i.uri;if(n.isEmpty(e)&&(e=this.entityUri),!this._filterMetadataStorage.has(e)){const i=await this._personalizedFilterFetcher.loadFields(e);this._filterMetadataStorage.set(e,i)}return this._filterMetadataStorage.get(e)}},this._filterAssistentMode=!0,this._filterAssistent=void 0,this.messagesBuilder=void 0,this.entityUri=void 0,this.filterId=void 0,this.configName=void 0}async createPersonalizedFilter(){const i={name:"",active:!0,expression:"",parameters:[],assistent:{id:n.generateUUID(),items:[{id:n.generateUUID(),entityName:"",fieldName:"",description:"",fieldLabel:"Valor",type:void 0,expression:void 0,operand:void 0,paramVariable:!1,value:void 0,systemConfig:null,userConfig:null}],childrenGroups:[],operand:c.AND}};this._originalFilterAssistent=r.copy(i),this._filterAssistent=r.copy(i)}loadFilter(i,e){null!=i&&e!=i&&d.get().then((()=>{d.loadPersonalizedFilter(i,this.configName).then((i=>{const e=this.addLabelToItems(i);this._filterAssistent=e,this._originalFilterAssistent=r.copy(e),this._filterAssistentMode=this._filterAssistent.hasOwnProperty("assistent")&&null!=this._filterAssistent.assistent}))}))}componentWillLoad(){var i;null==z.get(`filterFieldsDataSource.${this.entityUri}`)&&z.set(`filterFieldsDataSource.${this.entityUri}`,this._dataSourceFetcher),this.messagesBuilder||(this._application=a.getContextValue("__SNK__APPLICATION__"),this.messagesBuilder=null===(i=this._application)||void 0===i?void 0:i.messagesBuilder),this.loadFilter(this.filterId,void 0)}getMessage(i,e){return this._application.messagesBuilder.getMessage(i,e)}saveFilter(){d.savePersonalizedFilter(this._filterAssistent,this.configName).then((i=>{this._elButtonSave.enabled=!1,p.info(this.getMessage(`snkPersonalizedFilter.${this._filterAssistent.id?"confirmEdit":"confirmSave"}.title`),{iconName:"check"});const e=Object.assign(Object.assign({},i),this._filterAssistent);e.parameters=o.buildVariableParameters(this._filterAssistent.assistent),this._originalFilterAssistent=r.copy(e),this._filterAssistent=r.copy(e)}))}removeFilter(){d.removePersonalizedFilter(this._filterAssistent,this.configName)}async handleFilterGroupChange(){const i=await this._mainExpressionGroup.getExpressionGroup();this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{assistent:i}),this._filterAssistent.parameters=o.buildVariableParameters(this._filterAssistent.assistent),this._elTextAreaExpression.value=o.buildGroupExpression(this._filterAssistent.assistent,!0),this._elButtonSave.enabled=!this.hasChangesToSave()}hasChangesToSave(){return JSON.stringify(this._filterAssistent)===JSON.stringify(this._originalFilterAssistent)}handleSave(){const{assistent:i,expression:e}=this._filterAssistent;if(!o.validateFields(i)||!this._filterAssistent.name)return this._application.error(this.getMessage("snkPersonalizedFilter.error.title"),this.getMessage("snkPersonalizedFilter.error.description"));const s=i?o.buildGroupExpression(i):e;this._filterAssistent.expression=s,this.ezSave.emit(s),this.saveFilter()}handleCancel(){if(this.hasChangesToSave())return this.ezCancel.emit();p.confirm(this.getMessage("snkPersonalizedFilter.confirmCancel.title"),this.getMessage("snkPersonalizedFilter.confirmCancel.description")).then((i=>{var e;i&&(this._filterAssistent=r.copy(null!==(e=this._originalFilterAssistent)&&void 0!==e?e:{}),this.ezCancel.emit(),this._elButtonSave.enabled=!1)}))}handleTitleChange(i){this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{name:i}),this._elButtonSave.enabled=!this.hasChangesToSave()}addLabelToItems(i){return i.assistent&&i.assistent.items&&i.assistent.items.length>0&&i.assistent.items.forEach((e=>{if(null==e.fieldLabel){const s=(i.parameters||[]).find((i=>i.fieldName===e.fieldName));s&&(e.fieldLabel=s.label)}})),i}handleExpressionChange(i){this._filterAssistent=Object.assign(Object.assign({},this._filterAssistent),{expression:i}),this._elButtonSave.enabled=!this.hasChangesToSave()}getWarningMessageComponent(){var i;if(!n.isEmpty(null===(i=this._filterAssistent)||void 0===i?void 0:i.warningMessage))return s("div",{class:"ez-flex"},s("ez-alert",{alertType:"warn"},this._filterAssistent.warningMessage))}buildContainerPersonalizedFilter(){var i,e,l;return this._filterAssistentMode?s(t,null,s("div",{class:"ez-padding-top--small snk-personalized-filter__group"},s("snk-expression-group",{ref:i=>this._mainExpressionGroup=i,group:null===(i=this._filterAssistent)||void 0===i?void 0:i.assistent,messagesBuilder:this.messagesBuilder,onEzFilterGroupChange:this.handleFilterGroupChange.bind(this),filterId:this.filterId,entityURI:this.entityUri})),s("div",null,s("div",{class:"snk-personalized-filter__expression-input--line"}),s("ez-collapsible-box",{label:this.getMessage("snkPersonalizedFilter.info.titleCollapsible"),headerSize:"medium",value:!0},s("div",{class:"ez-box"},s("div",{class:"ez-box__container"},s("ez-text-area",{ref:i=>this._elTextAreaExpression=i,enabled:!1,label:this.getMessage("snkPersonalizedFilter.info.labelExpression"),value:null===(e=this._filterAssistent)||void 0===e?void 0:e.expression})))))):s(t,null,s("span",{class:"ez-text ez-text--small ez-text--bold ez-padding-bottom--medium"},this.getMessage("snkPersonalizedFilter.info.applyExpression")),s("ez-text-area",{label:this.getMessage("snkPersonalizedFilter.info.labelExpression"),value:null===(l=this._filterAssistent)||void 0===l?void 0:l.expression,onEzChange:i=>this.handleExpressionChange(i.detail)}),this.getWarningMessageComponent())}render(){var i,e;if((null===(i=this._filterAssistent)||void 0===i?void 0:i.assistent)||!this._filterAssistentMode)return s(l,null,s("div",{class:"snk-personalized-filter"},s("div",null,s("snk-simple-bar",{label:this.getMessage(this.filterId?"snkPersonalizedFilter.info.titleEdit":"snkPersonalizedFilter.info.titleAdd"),onExit:()=>this.handleCancel()},s("div",{class:"snk-personalized-filter__header-actions",slot:"rightSlot"},s("ez-button",{size:"small",label:this.getMessage("snkPersonalizedFilter.info.labelCancel"),onClick:()=>this.handleCancel()}),s("ez-button",{size:"small",ref:i=>this._elButtonSave=i,enabled:!1,class:"ez-button--primary",label:this.getMessage("snkPersonalizedFilter.info.labelSave"),onClick:this.handleSave.bind(this)})))),s("div",{class:"ez-box ez-margin-bottom--medium ez-box__main"},s("div",{class:"ez-box__container"},s("div",{class:"ez-flex ez-flex--column ez-size-width--full"},s("div",{class:"ez-flex"},s("ez-text-input",{class:"ez-padding-right--medium",label:this.getMessage("snkPersonalizedFilter.info.labelNameFilter"),value:null===(e=this._filterAssistent)||void 0===e?void 0:e.name,onEzChange:i=>this.handleTitleChange(i.detail)})),this.buildContainerPersonalizedFilter())))))}static get watchers(){return{filterId:["loadFilter"]}}};f.style=".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%}";export{f as snk_personalized_filter}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as s,h as i,g as e}from"./p-d2d301a6.js";import{DataUnit as r,StringUtils as a,SortMode as n,DataType as o,ChangeOperation as h,ObjectUtils as d,ApplicationContext as l,UserInterface as u}from"@sankhyalabs/core";import{c as m,S as c}from"./p-4a78e118.js";import{T as p}from"./p-a2493d11.js";import"./p-4f550a1a.js";import"./p-d97eb781.js";import{P as v}from"./p-5534e08c.js";import{T as g}from"./p-c2beb95c.js";import{DISTINCT_FILTER_NAME_PREFIX as b}from"@sankhyalabs/ezui/dist/collection/utils/constants";import{S as f}from"./p-fa9d3f73.js";import"./p-6dc031de.js";import"./p-112455b1.js";class k{constructor(t,s){this.records=s||[],this.metadata=t,this._dataUnit=new r("InMemoryDataUnit"),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,s)=>this.dataLoader(t,s),this._dataUnit.saveLoader=(t,s)=>this.saveLoader(t,s),this._dataUnit.removeLoader=(t,s)=>this.removeLoader(t,s),this.dataUnit.loadMetadata().then((()=>this.dataUnit.loadData()))}get dataUnit(){return this._dataUnit}get records(){return this._records}set records(t){this._records=null==t?void 0:t.map((t=>(t.__record__id__||(t.__record__id__=this.generateUniqueId()),t))),this._dataUnit&&(this._dataUnit.records=[...this._records])}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return a.generateUUID()}metadaLoader(){return Promise.resolve(this._metadata)}dataLoader(t,s){const i=this.getColumnFilters(t);let e=this.applyFilters(i);return s.sort&&s.sort.forEach((t=>{e=e.sort(((s,i)=>{const e=s[t.field],r=i[t.field];return this.getSortFn(t.dataType)(e,r)*(t.mode==n.ASC?1:-1)}))})),Promise.resolve({records:e})}applyFilters(t){let s=[...this._records];return t.forEach((t=>{s=s.filter((s=>{var i;return t.values.includes(null===(i=s[t.column])||void 0===i?void 0:i.toString())}))})),s}getColumnFilters(t){var s,i;const e=null!==(i=(null!==(s=t.getFilters())&&void 0!==s?s:[]).filter((t=>{var s;return null===(s=t.name)||void 0===s?void 0:s.includes(b)})))&&void 0!==i?i:[];return e.map((t=>{var s,i;return{column:null!==(i=null===(s=t.name)||void 0===s?void 0:s.replace(b,""))&&void 0!==i?i:"",values:t.params.map((t=>t.value))}}))}getSortFn(t){switch(t){case o.NUMBER:return this.sortNumber;case o.DATE:return this.sortDate;case o.OBJECT:return this.sortObject;default:return a.compare}}sortObject(t,s){return a.compare(t.label,s.label)}sortNumber(t,s){return t-s}sortDate(t,s){let i=t.getTime(),e=s.getTime();return i===e?0:i<e?-1:1}saveLoader(t,s){return new Promise((t=>{let i=[];s.forEach((t=>{let{record:s,updatingFields:e,operation:r}=t,a=!1;r!==h.INSERT&&r!==h.COPY||(s.__old__id__=s.__record__id__,s.__record__id__=this.generateUniqueId(),a=!0);const n=Object.assign(Object.assign({},s),e);if(a)this.records.push(n);else{const t=this.records.findIndex((t=>t.__record__id__==n.__record__id__));this.records[t]=n}i.push(n)})),t(i)}))}removeLoader(t,s){return new Promise((t=>{this._records=this._records.filter((t=>!s.includes(t.__record__id__))),t(s)}))}}const S=class{constructor(i){t(this,i),this.dataStateChange=s(this,"dataStateChange",3),this.dataUnitReady=s(this,"dataUnitReady",3),this.actionClick=s(this,"actionClick",7),this.REGULAR_DEFAULT_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER"],this.REGULAR_SELECTED_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER","CLONE","REMOVE","DIVIDER"],this._multiSelectionListDataSource=new f,this._taskbarProcessor=new g({"snkSimpleCrudTaskbar.form_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(p.GRID_MODE),"snkSimpleCrudTaskbar.grid_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(p.FORM_MODE),"snkSimpleCrudTaskbar.form_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(p.GRID_MODE),"snkSimpleCrudTaskbar.grid_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(p.FORM_MODE),"snkSimpleCrudTaskbar.finish_edition":["CANCEL","SAVE"]}),this._currentViewMode=m.GRID,this._config=void 0,this.dataState=void 0,this.dataUnit=void 0,this.mode=c.SERVER,this.gridConfig=void 0,this.formConfig=void 0,this.multipleSelection=void 0,this.useCancelConfirm=!0,this.taskbarManager=void 0,this.messagesBuilder=void 0}resolveInMemoryBtns(t){const s=[...t];return this.mode===c.IN_MEMORY&&s.splice(1,1),s}async goToView(t){this._currentViewMode=t,this._viewStack&&this._viewStack.show(t)}actionClickListener(t){const s=t.detail;s===p.GRID_MODE?this.goToView(m.GRID):s===p.FORM_MODE&&this.goToView(m.FORM),t.stopPropagation()}onModeChange(){this.mode==c.IN_MEMORY&&this.initInMemoryDataUnit()}observeDataState(t,s){d.objectToString(s)!=d.objectToString(t)&&this.dataStateChange.emit(t)}componentWillRender(){this._taskbarProcessor.process(this.getTaskBarId(),this.taskbarManager,this.dataState,this.getTaskBarDisabledButtons())}componentWillLoad(){this.processMetadata(),this.onModeChange(),this.configDatasource()}configDatasource(){const t=l.getContextValue("__SNK__APPLICATION__");this._multiSelectionListDataSource.setApplication(t),this._multiSelectionListDataSource.setDataUnit(this.dataUnit)}getTaskBarId(){var t,s,i;return(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"snkSimpleCrudTaskbar.finish_edition":(null===(s=this.dataState)||void 0===s?void 0:s.selectionInfo)&&!this.dataState.selectionInfo.isAllRecords()&&(null===(i=this.dataState.selectionInfo.records)||void 0===i?void 0:i.length)>0?this._currentViewMode===m.GRID?"snkSimpleCrudTaskbar.grid_selected":"snkSimpleCrudTaskbar.form_selected":this._currentViewMode===m.GRID?"snkSimpleCrudTaskbar.grid_regular":"snkSimpleCrudTaskbar.form_regular"}initInMemoryDataUnit(){this._inMemoryLoader=new k(this._metadata),this.dataUnit=this._inMemoryLoader.dataUnit,this.dataUnitReady.emit(this.dataUnit)}setMetadata(t){return this._inMemoryLoader?this._inMemoryLoader.metadata=t:this.dataUnit&&(this.dataUnit.metadata=t),Promise.resolve()}setRecords(t){return this._inMemoryLoader?this._inMemoryLoader.records=t:this.dataUnit&&(this.dataUnit.records=t),Promise.resolve()}getRecords(){return Promise.resolve(this.dataUnit.records)}processMetadata(){const t=this._element.querySelectorAll("snk-field-metadata"),s=[],i={fields:[],emptyConfig:!1};t.forEach((t=>{const e={name:t.getAttribute("name")||t.getAttribute("label"),label:t.getAttribute("label"),dataType:o[t.getAttribute("dataType")]||o.TEXT,userInterface:u[t.getAttribute("userInterface")]||u.SHORTTEXT,readOnly:"true"==t.getAttribute("readOnly"),required:"true"==t.getAttribute("required"),tab:t.getAttribute("tab")||void 0,visible:"false"!=t.getAttribute("visible")};i.fields.push({name:e.name,tab:e.tab,visible:e.visible}),s.push(e)})),s.length>0&&(this.formConfig||(this.formConfig=i),this._metadata={name:"SimpleCrud",label:"SimpleCrud",fields:s})}onDataStateChange(t){this.dataState=Object.assign({},t.detail)}getTaskBarDisabledButtons(){var t,s;const i=[];return(null===(t=this.dataState)||void 0===t?void 0:t.hasNext)||i.push(p.NEXT),(null===(s=this.dataState)||void 0===s?void 0:s.hasPrevious)||i.push(p.PREVIOUS),i}render(){var t;return i("snk-data-unit",{class:"simple-crud__container",dataUnit:this.dataUnit,useCancelConfirm:this.useCancelConfirm,onDataStateChange:t=>this.onDataStateChange(t),onInsertionMode:()=>this.goToView(m.FORM),onDataUnitReady:t=>this.dataUnitReady.emit(t.detail),onMessagesBuilderUpdated:t=>this.messagesBuilder=t.detail},i("header",null,i("slot",{name:"snkSimpleCrudHeader"})),i("section",{class:"ez-flex ez-box ez-box--shadow"},i("snk-taskbar",{class:"ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large",dataUnit:this.dataUnit,primaryButton:(null===(t=this.dataState)||void 0===t?void 0:t.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:v.SECONDARY}),i("ez-view-stack",{class:"ez-flex ez-flex--column",ref:t=>this._viewStack=t,"data-element-id":"simple-crud"},i("stack-item",null,i("ez-grid",{dataUnit:this.dataUnit,config:this.gridConfig,"no-header":!0,multipleSelection:this.multipleSelection,onEzDoubleClick:()=>this.goToView(m.FORM),columnfilterDataSource:this._multiSelectionListDataSource},i("div",{slot:"footer"},i("slot",{name:"snkSimpleCrudFooter"})))),i("stack-item",null,i("ez-form",{dataUnit:this.dataUnit,config:this.formConfig})))))}get _element(){return e(this)}static get watchers(){return{mode:["onModeChange"],dataState:["observeDataState"]}}};S.style=".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto;row-gap:12px;height:100%;width:100%}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";export{S as snk_simple_crud}
|