@sankhyalabs/ezui 2.12.0 → 2.14.0-develop.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/{ez-tree.cjs.entry.js → ez-filter-input_3.cjs.entry.js} +103 -16
- package/dist/cjs/ez-form.cjs.entry.js +325 -184
- package/dist/cjs/ez-guide-navigator.cjs.entry.js +339 -0
- package/dist/cjs/ezui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/ez-form/ez-form.css +1 -1
- package/dist/collection/components/ez-form/ez-form.js +20 -16
- package/dist/collection/components/ez-form/fieldbuilder/FieldBuilder.js +48 -0
- package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/CheckBox.tpl.js +4 -4
- package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/ComboBox.tpl.js +2 -2
- package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/DateInput.tpl.js +1 -1
- package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/NumberInput.tpl.js +3 -3
- package/dist/collection/components/ez-form/structure/FormItem.js +11 -0
- package/dist/collection/components/ez-form/{FormMetadata.js → structure/FormMetadata.js} +53 -38
- package/dist/collection/components/ez-form/structure/FormSheet.js +6 -0
- package/dist/collection/components/ez-guide-navigator/Guide.js +200 -0
- package/dist/collection/components/ez-guide-navigator/ez-guide-navigator.css +53 -0
- package/dist/collection/components/ez-guide-navigator/ez-guide-navigator.js +230 -0
- package/dist/collection/components/ez-tree/ez-tree.js +5 -5
- package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +1 -1
- package/dist/collection/components/ez-tree/types/Tree.js +0 -11
- package/dist/custom-elements/index.d.ts +6 -6
- package/dist/custom-elements/index.js +667 -337
- package/dist/esm/{ez-tree.entry.js → ez-filter-input_3.entry.js} +103 -18
- package/dist/esm/ez-form.entry.js +327 -186
- package/dist/esm/ez-guide-navigator.entry.js +335 -0
- package/dist/esm/ezui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/ezui/ezui.esm.js +1 -1
- package/dist/ezui/p-6500a260.entry.js +1 -0
- package/dist/ezui/p-6c45dc64.entry.js +1 -0
- package/dist/ezui/p-fa2f4ea5.entry.js +1 -0
- package/dist/types/components/ez-form/DataBinder.d.ts +1 -1
- package/dist/types/components/ez-form/ez-form.d.ts +3 -4
- package/dist/types/components/ez-form/fieldbuilder/FieldBuilder.d.ts +2 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/CheckBox.tpl.d.ts +3 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/ComboBox.tpl.d.ts +6 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/DateInput.tpl.d.ts +15 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/FileInput.tpl.d.ts +5 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/NumberInput.tpl.d.ts +7 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/SearchInput.tpl.d.ts +6 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/TextArea.tpl.d.ts +5 -0
- package/dist/types/components/ez-form/fieldbuilder/tpl/TextInput.tpl.d.ts +5 -0
- package/dist/types/components/ez-form/store/form.slice.d.ts +2 -2
- package/dist/types/components/ez-form/structure/FormItem.d.ts +9 -0
- package/dist/types/components/ez-form/{FormMetadata.d.ts → structure/FormMetadata.d.ts} +5 -2
- package/dist/types/components/ez-form/structure/FormSheet.d.ts +10 -0
- package/dist/types/components/ez-guide-navigator/Guide.d.ts +69 -0
- package/dist/types/components/ez-tree/types/Tree.d.ts +0 -1
- package/dist/types/components.d.ts +41 -26
- package/dist/types/interfaces/ez-form/IFieldMetadata.d.ts +6 -0
- package/dist/types/interfaces/ez-form/IFieldSetMetadata.d.ts +5 -0
- package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFormSheetMetadata.d.ts +3 -2
- package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IRecordValidator.d.ts +1 -1
- package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/index.d.ts +2 -0
- package/package.json +2 -2
- package/react/components.d.ts +1 -1
- package/react/components.js +1 -1
- package/react/components.js.map +1 -1
- package/dist/cjs/ez-filter-input.cjs.entry.js +0 -81
- package/dist/cjs/ez-form-view.cjs.entry.js +0 -140
- package/dist/cjs/ez-sidebar-button.cjs.entry.js +0 -31
- package/dist/collection/components/ez-form-view/ez-form-view.css +0 -6
- package/dist/collection/components/ez-form-view/ez-form-view.js +0 -71
- package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +0 -26
- package/dist/esm/ez-filter-input.entry.js +0 -77
- package/dist/esm/ez-form-view.entry.js +0 -136
- package/dist/esm/ez-sidebar-button.entry.js +0 -27
- package/dist/ezui/p-36ed5c45.entry.js +0 -1
- package/dist/ezui/p-7799666d.entry.js +0 -1
- package/dist/ezui/p-81897c04.entry.js +0 -1
- package/dist/ezui/p-97d2d2f6.entry.js +0 -1
- package/dist/ezui/p-ba03ac61.entry.js +0 -1
- package/dist/types/components/ez-form-view/fieldbuilder/FieldBuilder.d.ts +0 -2
- package/dist/types/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.d.ts +0 -3
- package/dist/types/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.d.ts +0 -2
- package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +0 -4
- package/dist/types/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.d.ts +0 -2
- package/dist/types/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.d.ts +0 -3
- package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.d.ts +0 -2
- package/dist/types/components/ez-form-view/fieldbuilder/templates/TextArea.tpl.d.ts +0 -2
- package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +0 -2
- package/dist/types/components/ez-form-view/interfaces/IFormViewField.d.ts +0 -10
- package/dist/types/components/ez-form-view/interfaces/index.d.ts +0 -1
- /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/FileInput.tpl.js +0 -0
- /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/SearchInput.tpl.js +0 -0
- /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/TextArea.tpl.js +0 -0
- /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/TextInput.tpl.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IDefaultConfig.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFieldConfig.js +0 -0
- /package/dist/collection/{components/ez-form-view/interfaces/IFormViewField.js → interfaces/ez-form/IFieldMetadata.js} +0 -0
- /package/dist/collection/{components/ez-form-view/interfaces/index.js → interfaces/ez-form/IFieldSetMetadata.js} +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFormConfig.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFormSheetMetadata.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IInvalidField.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IRecordValidator.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/ITabConfig.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IValidationResult.js +0 -0
- /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/index.js +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IDefaultConfig.d.ts +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFieldConfig.d.ts +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFormConfig.d.ts +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IInvalidField.d.ts +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/ITabConfig.d.ts +0 -0
- /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IValidationResult.d.ts +0 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-5e208fa5.js');
|
|
6
|
+
const core = require('@sankhyalabs/core');
|
|
7
|
+
|
|
8
|
+
const HIERARCHY_SEPARATOR = '>>';
|
|
9
|
+
class Guide {
|
|
10
|
+
constructor(list) {
|
|
11
|
+
this.originalList = [];
|
|
12
|
+
this.guideMap = new Map();
|
|
13
|
+
this.hierarchiesAlreadyLoaded = new Set();
|
|
14
|
+
if (list === null || list === void 0 ? void 0 : list.length)
|
|
15
|
+
this.setList(list);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Converte uma lista de objetos IGuideItem em um objeto IGuideMap com sua hierarquia.
|
|
19
|
+
* @param list Uma lista de objetos IGuideItem representando a lista de itens.
|
|
20
|
+
* @param hierarquiaList Uma lista opcional de strings que representa a hierarquia dos itens pai.
|
|
21
|
+
* @param indexReferences Uma lista opcional de números que representa as referências de índice da lista original.
|
|
22
|
+
* @returns Uma Promise que resolve para um objeto IGuideMap com os itens e sua hierarquia.
|
|
23
|
+
*/
|
|
24
|
+
convertArrayToMap(list, hierarchyList = [], indexReferences = []) {
|
|
25
|
+
return new Promise(resolve => {
|
|
26
|
+
list.forEach(async (item, index) => {
|
|
27
|
+
const updatedHierarchyList = [...hierarchyList, item.id];
|
|
28
|
+
const key = updatedHierarchyList.join(HIERARCHY_SEPARATOR);
|
|
29
|
+
const currentIndexReferences = [...indexReferences, index];
|
|
30
|
+
const children = Array.isArray(item.children) ? item.children : [];
|
|
31
|
+
item = Object.assign(Object.assign({}, item), { parentId: hierarchyList[hierarchyList.length - 1], indexReferences: currentIndexReferences, hierarchy: updatedHierarchyList, hierarchyId: key });
|
|
32
|
+
delete item.children;
|
|
33
|
+
this.guideMap.set(key, item);
|
|
34
|
+
if (children.length)
|
|
35
|
+
await this.convertArrayToMap(children, updatedHierarchyList, currentIndexReferences);
|
|
36
|
+
});
|
|
37
|
+
resolve(this.guideMap);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converte um objeto IGuideMap em uma lista de objetos IGuideItem com sua hierarquia.
|
|
42
|
+
* @param map Um objeto IGuideMap opcional que representa o mapa de itens com sua hierarquia.
|
|
43
|
+
* @returns Uma Promise que resolve para uma lista de objetos IGuideItem com sua hierarquia.
|
|
44
|
+
*/
|
|
45
|
+
convertMapToArray(map = this.guideMap) {
|
|
46
|
+
return new Promise(resolve => {
|
|
47
|
+
const array = [];
|
|
48
|
+
const itemsById = {};
|
|
49
|
+
map.forEach(value => {
|
|
50
|
+
var _a;
|
|
51
|
+
const item = Object.assign({}, value);
|
|
52
|
+
if (((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
53
|
+
delete item.children;
|
|
54
|
+
}
|
|
55
|
+
itemsById[item.id] = item;
|
|
56
|
+
});
|
|
57
|
+
Object.values(itemsById).forEach(item => {
|
|
58
|
+
if (item.parentId) {
|
|
59
|
+
const parent = itemsById[item.parentId];
|
|
60
|
+
if (Array.isArray(parent.children)) {
|
|
61
|
+
parent.children.push(item);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
parent.children = [item];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
array.push(item);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
resolve(array);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Obtém a lista selecionada de itens com base na lista original e na lista de índice selecionada.
|
|
76
|
+
* @param originalList Uma lista de objetos IGuideItem representando a lista original de itens.
|
|
77
|
+
* @param selectedIndexList Uma matriz representando a lista de índices selecionada.
|
|
78
|
+
* @returns Uma lista de objetos IGuideItem representando a lista selecionada de itens.
|
|
79
|
+
*/
|
|
80
|
+
getSelectedList(originalList, selectedIndexList) {
|
|
81
|
+
const selectedList = [];
|
|
82
|
+
selectedIndexList.forEach(selectedIndex => {
|
|
83
|
+
if (!selectedIndex.length)
|
|
84
|
+
return;
|
|
85
|
+
const [parentIndex, childIndex] = selectedIndex;
|
|
86
|
+
if (childIndex === undefined) {
|
|
87
|
+
selectedList.push(originalList[parentIndex]);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const parent = originalList[parentIndex];
|
|
91
|
+
const child = parent.children[childIndex];
|
|
92
|
+
const selectedParent = selectedList.find(item => item.id === parent.id);
|
|
93
|
+
if (selectedParent) {
|
|
94
|
+
selectedParent.children.push(child);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
selectedList.push(Object.assign(Object.assign({}, parent), { children: [child] }));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
return selectedList;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Define a lista de itens para o Map guideMap.
|
|
105
|
+
* @param list Uma lista de objetos IGuideItem representando a lista de itens.
|
|
106
|
+
* @returns Uma Promise que resolve quando a lista é convertida para o Map.
|
|
107
|
+
*/
|
|
108
|
+
setList(list) {
|
|
109
|
+
return new Promise(async (resolve) => {
|
|
110
|
+
this.guideMap.clear();
|
|
111
|
+
if (!this.originalList.length) {
|
|
112
|
+
this.originalList = core.ObjectUtils.copy(list);
|
|
113
|
+
}
|
|
114
|
+
await this.convertArrayToMap(list);
|
|
115
|
+
resolve();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Obtém a lista de itens com sua hierarquia.
|
|
120
|
+
* @returns Uma Promise que resolve para uma lista de objetos IGuideItem com sua hierarquia.
|
|
121
|
+
*/
|
|
122
|
+
getList() {
|
|
123
|
+
return this.convertMapToArray();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Adiciona filhos a um item pai no guia.
|
|
127
|
+
* @param parent Um objeto IGuideItem que representa o item pai.
|
|
128
|
+
* @param children Uma lista de objetos IGuideItem representando os itens filhos.
|
|
129
|
+
* @returns Uma Promise que resolve para uma lista de objetos IGuideItem com sua hierarquia.
|
|
130
|
+
*/
|
|
131
|
+
addChildren(parent, children) {
|
|
132
|
+
return new Promise(async (resolve, reject) => {
|
|
133
|
+
if (parent.disabled)
|
|
134
|
+
return reject('Parent is disabled');
|
|
135
|
+
if (!parent.hierarchy || !parent.hierarchyId)
|
|
136
|
+
return reject('Hierarchy not found');
|
|
137
|
+
if (this.hierarchiesAlreadyLoaded.has(parent.hierarchyId))
|
|
138
|
+
return resolve([]);
|
|
139
|
+
await this.convertArrayToMap(children, parent.hierarchy);
|
|
140
|
+
const list = await this.getList();
|
|
141
|
+
this.originalList = core.ObjectUtils.copy(list);
|
|
142
|
+
this.hierarchiesAlreadyLoaded.add(parent.hierarchyId);
|
|
143
|
+
resolve(list);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Obtém os itens a partir de um campo corresponde à string de consulta.
|
|
148
|
+
* @param query Uma string que representa a consulta para corresponder ao rótulo.
|
|
149
|
+
* @param fieldName Uma string opcional que representa o nome do campo para corresponder à consulta.
|
|
150
|
+
* @returns Uma Promise que resolve para um objeto com o primeiro item encontrado e uma matriz de itens correspondentes com sua hierarquia.
|
|
151
|
+
*/
|
|
152
|
+
getItemsByLabel(query, fieldName = 'label', selectedItem) {
|
|
153
|
+
return new Promise(async (resolve) => {
|
|
154
|
+
var _a;
|
|
155
|
+
const mapResults = [];
|
|
156
|
+
let firstOcorrence;
|
|
157
|
+
const itemFromMap = this.guideMap.get(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.hierarchyId);
|
|
158
|
+
if (itemFromMap)
|
|
159
|
+
itemFromMap.expanded = true;
|
|
160
|
+
for (const item of this.guideMap.values()) {
|
|
161
|
+
const label = ((_a = item === null || item === void 0 ? void 0 : item[fieldName]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
|
|
162
|
+
if (label.includes(query.toLowerCase())) {
|
|
163
|
+
if (!firstOcorrence)
|
|
164
|
+
firstOcorrence = item;
|
|
165
|
+
mapResults.push(item.indexReferences);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const updatedList = this.getSelectedList(this.originalList, mapResults);
|
|
169
|
+
resolve({
|
|
170
|
+
first: firstOcorrence,
|
|
171
|
+
list: updatedList,
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Habilita todos os objetos IGuideItem.
|
|
177
|
+
* @returns Uma Promise que resolve com o array atualizado de objetos IGuideItem.
|
|
178
|
+
*/
|
|
179
|
+
enableAllItems() {
|
|
180
|
+
return new Promise(async (resolve) => {
|
|
181
|
+
for (const item of this.guideMap.values())
|
|
182
|
+
item.disabled = false;
|
|
183
|
+
const list = await this.getList();
|
|
184
|
+
this.originalList = core.ObjectUtils.copy(list);
|
|
185
|
+
resolve(list);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Ativa somente objetos IGuideItem com base em uma matriz de IDs.
|
|
190
|
+
* @param ids Um array de IDs para habilitar.
|
|
191
|
+
* @param customTooltip Uma string para definir o tooltip de itens desabilitados.
|
|
192
|
+
* @returns Uma Promise que resolve com o array atualizado de objetos IGuideItem.
|
|
193
|
+
*/
|
|
194
|
+
enableItemsById(ids = [], customTooltip = '') {
|
|
195
|
+
return new Promise(async (resolve) => {
|
|
196
|
+
for (const item of this.guideMap.values()) {
|
|
197
|
+
const isEnabled = ids.includes(item.id);
|
|
198
|
+
item.disabled = !isEnabled;
|
|
199
|
+
item.tooltip = isEnabled ? item.tooltip : customTooltip;
|
|
200
|
+
}
|
|
201
|
+
const list = await this.getList();
|
|
202
|
+
this.originalList = core.ObjectUtils.copy(list);
|
|
203
|
+
resolve(list);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const ezGuideNavigatorCss = ":host{--ez-guide-navigator--padding:0 var(--space--large);--ez-guide-navigator--box-shadow:var(--shadow, 0px 0px 24px 0px #000);--ez-guide-navigator--background-color:var(--color--inverted);--ez-guide-navigator--border-radius:0px var(--border--radius-medium) var(--border--radius-medium) 0px;--ez-guide-navigator--actions-gap:var(--space--medium);--ez-guide-navigator--actions-margin:var(--space--medium) 0 var(--space--medium)}.inverted{transform:rotate(180deg)}.ez-guide-navigator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:var(--ez-guide-navigator--padding);background-color:var(--ez-guide-navigator--background-color);-webkit-box-shadow:var(--ez-guide-navigator--box-shadow);box-shadow:var(--ez-guide-navigator--box-shadow);border-radius:var(--ez-guide-navigator--border-radius)}.ez-guide-navigator__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--ez-guide-navigator--actions-gap);margin:var(--ez-guide-navigator--actions-margin)}";
|
|
209
|
+
|
|
210
|
+
const ENTER_KEY = 'Enter';
|
|
211
|
+
let EzGuideNavigator = class {
|
|
212
|
+
constructor(hostRef) {
|
|
213
|
+
index.registerInstance(this, hostRef);
|
|
214
|
+
//TODO: Quando a filtragem for feita dentro da árvore, não será mais necessário
|
|
215
|
+
this.guide = new Guide();
|
|
216
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
217
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
218
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
219
|
+
/**
|
|
220
|
+
* Provedor de dados para o guide navigator.
|
|
221
|
+
*/
|
|
222
|
+
this.binder = null;
|
|
223
|
+
/**
|
|
224
|
+
* Define se o menu de navegação está aberto.
|
|
225
|
+
*/
|
|
226
|
+
this.open = true;
|
|
227
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
228
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
229
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
230
|
+
/**
|
|
231
|
+
* Lista de itens do menu de navegação.
|
|
232
|
+
*/
|
|
233
|
+
this.items = [];
|
|
234
|
+
/**
|
|
235
|
+
* Valor do campo de pesquisa usado na filtragem de guias.
|
|
236
|
+
*/
|
|
237
|
+
this.filterText = '';
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Habilita itens específicos a partir de uma lista de ID's.
|
|
241
|
+
*/
|
|
242
|
+
async enableOnly(id, customTooltip) {
|
|
243
|
+
//TODO: Levar para a árvore
|
|
244
|
+
this._tree.items = await this.guide.enableItemsById(id, customTooltip);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Habilita todos os itens do menu de navegação.
|
|
248
|
+
*/
|
|
249
|
+
async enableAll() {
|
|
250
|
+
//TODO: Levar para a árvore
|
|
251
|
+
this._tree.items = await this.guide.enableAllItems();
|
|
252
|
+
}
|
|
253
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
254
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
255
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
256
|
+
handleBinderChange(newBinder, oldBinder) {
|
|
257
|
+
if (newBinder != oldBinder) {
|
|
258
|
+
this.initTree();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async handleToggleSidebar() {
|
|
262
|
+
this.open = !this.open;
|
|
263
|
+
if (this.open) {
|
|
264
|
+
await this.initTree();
|
|
265
|
+
this.filterItems();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
handleSelectTreeItem({ detail: parent }) {
|
|
269
|
+
if (!parent.expanded)
|
|
270
|
+
return;
|
|
271
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
272
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
273
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
274
|
+
this.binder.fetchItems(parent.id).then(async (children) => {
|
|
275
|
+
if (!(children === null || children === void 0 ? void 0 : children.length))
|
|
276
|
+
return;
|
|
277
|
+
await this.guide.addChildren(parent, children);
|
|
278
|
+
const { list } = await this.guide.getItemsByLabel(this.filterText, 'label', parent);
|
|
279
|
+
this._tree.items = list;
|
|
280
|
+
this._tree.openItem(parent.hierarchyId || parent.id);
|
|
281
|
+
});
|
|
282
|
+
this.binder.onSelectItem(parent);
|
|
283
|
+
}
|
|
284
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
285
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
286
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
287
|
+
handleFilterTree(event) {
|
|
288
|
+
if (event.key === ENTER_KEY)
|
|
289
|
+
this.filterItems();
|
|
290
|
+
}
|
|
291
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
292
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
293
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
294
|
+
async setTreeIems(list, first) {
|
|
295
|
+
var _a;
|
|
296
|
+
this._tree.items = list;
|
|
297
|
+
if (first && !(first === null || first === void 0 ? void 0 : first.disabled)) {
|
|
298
|
+
const parentHierarchyId = ((_a = first.hierarchy) === null || _a === void 0 ? void 0 : _a.slice(0, -1).join(HIERARCHY_SEPARATOR)) || first.id;
|
|
299
|
+
await this._tree.openItem(parentHierarchyId);
|
|
300
|
+
await this._tree.selectItem(first.id);
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
this._tree.selectItem(null);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
307
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
308
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
309
|
+
filterItems() {
|
|
310
|
+
this.guide.getItemsByLabel(this.filterText).then(async ({ list, first }) => {
|
|
311
|
+
this.setTreeIems(list, first);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
//TODO: Destituir esse binder. Rediscutida a arquitetura desse componente
|
|
315
|
+
//vimos que o binder só dificulta a vida de quem vai usar... assim teremos
|
|
316
|
+
//apenas uma lista de IGuideItems e o resto fica como a própria árvore...
|
|
317
|
+
async initTree() {
|
|
318
|
+
if (!this.binder)
|
|
319
|
+
return;
|
|
320
|
+
const binderItems = await this.binder.fetchItems();
|
|
321
|
+
await this.guide.setList(binderItems);
|
|
322
|
+
const guideItems = await this.guide.getList();
|
|
323
|
+
this.setTreeIems(guideItems);
|
|
324
|
+
}
|
|
325
|
+
componentDidLoad() {
|
|
326
|
+
core.ElementIDUtils.addIDInfoIfNotExists(this._element);
|
|
327
|
+
this.initTree();
|
|
328
|
+
}
|
|
329
|
+
render() {
|
|
330
|
+
return (index.h(index.Host, null, this.open ? (index.h("aside", { tabIndex: -1, id: "navigator", class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-guide-navigator", "data-element-id": core.ElementIDUtils.getInternalIDInfo("sidebar") }, index.h("div", { role: "search", class: "ez-guide-navigator__actions" }, index.h("ez-filter-input", { mode: "slim", value: this.filterText, onEzChange: (event) => (this.filterText = event.detail), label: "Buscar guia", "aria-placeholder": "Buscar guia", onKeyUp: this.handleFilterTree.bind(this), "data-element-id": core.ElementIDUtils.getInternalIDInfo("textinput") }), index.h("ez-button", { onClick: this.handleToggleSidebar.bind(this), class: "inverted", mode: "icon", size: "small", iconName: "show_menu", title: "Ocultar menu", "aria-label": "Ocultar menu", "aria-controls": "navigator", "data-element-id": core.ElementIDUtils.getInternalIDInfo("closeButton") })), index.h("ez-tree", { ref: element => (this._tree = element), onEzChange: evt => this.handleSelectTreeItem(evt), "data-element-id": core.ElementIDUtils.getInternalIDInfo("tree") }))) : (index.h("ez-sidebar-button", { onEzClick: this.handleToggleSidebar.bind(this), "aria-controls": "navigator", "aria-expanded": this.open, "data-element-id": core.ElementIDUtils.getInternalIDInfo("openButton") }))));
|
|
331
|
+
}
|
|
332
|
+
get _element() { return index.getElement(this); }
|
|
333
|
+
static get watchers() { return {
|
|
334
|
+
"binder": ["handleBinderChange"]
|
|
335
|
+
}; }
|
|
336
|
+
};
|
|
337
|
+
EzGuideNavigator.style = ezGuideNavigatorCss;
|
|
338
|
+
|
|
339
|
+
exports.ez_guide_navigator = EzGuideNavigator;
|
package/dist/cjs/ezui.cjs.js
CHANGED
|
@@ -15,5 +15,5 @@ const patchBrowser = () => {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(options => {
|
|
18
|
-
return index.bootstrapLazy([["ez-actions-button.cjs",[[1,"ez-actions-button",{"enabled":[516],"actions":[1040],"size":[513],"showLabel":[516,"show-label"],"displayIcon":[513,"display-icon"],"checkOption":[516,"check-option"],"value":[513],"isTransparent":[516,"is-transparent"],"arrowActive":[516,"arrow-active"],"_selectedAction":[32],"hideActions":[64],"isOpened":[64]}]]],["ez-dialog.cjs",[[1,"ez-dialog",{"confirm":[1028],"dialogType":[1025,"dialog-type"],"message":[1025],"opened":[1540],"personalizedIconPath":[1025,"personalized-icon-path"],"ezTitle":[1025,"ez-title"],"show":[64]}]]],["ez-
|
|
18
|
+
return index.bootstrapLazy([["ez-actions-button.cjs",[[1,"ez-actions-button",{"enabled":[516],"actions":[1040],"size":[513],"showLabel":[516,"show-label"],"displayIcon":[513,"display-icon"],"checkOption":[516,"check-option"],"value":[513],"isTransparent":[516,"is-transparent"],"arrowActive":[516,"arrow-active"],"_selectedAction":[32],"hideActions":[64],"isOpened":[64]}]]],["ez-dialog.cjs",[[1,"ez-dialog",{"confirm":[1028],"dialogType":[1025,"dialog-type"],"message":[1025],"opened":[1540],"personalizedIconPath":[1025,"personalized-icon-path"],"ezTitle":[1025,"ez-title"],"show":[64]}]]],["ez-grid.cjs",[[6,"ez-grid",{"multipleSelection":[4,"multiple-selection"],"config":[1040],"serverUrl":[1,"server-url"],"dataUnit":[16],"statusResolver":[16],"_paginationInfo":[32],"_paginationChangedByKeyboard":[32],"setColumnsDef":[64],"addColumnMenuItem":[64],"setColumnsState":[64],"setData":[64],"getSelection":[64],"getColumnsState":[64],"getColumns":[64],"quickFilter":[64]},[[0,"ezSelectionChange","onSelectionChange"]]]]],["ez-alert.cjs",[[1,"ez-alert",{"alertType":[513,"alert-type"]}]]],["ez-breadcrumb.cjs",[[1,"ez-breadcrumb",{"items":[1040]}]]],["ez-chip.cjs",[[1,"ez-chip",{"label":[513],"enabled":[516],"removePosition":[513,"remove-position"],"mode":[513],"value":[1540],"setFocus":[64],"setBlur":[64]}]]],["ez-dropdown.cjs",[[1,"ez-dropdown",{"items":[1040],"value":[1040],"itemBuilder":[16]}]]],["ez-file-item.cjs",[[1,"ez-file-item",{"canRemove":[4,"can-remove"],"fileName":[1,"file-name"],"iconName":[1,"icon-name"],"fileSize":[2,"file-size"],"progress":[2]}]]],["ez-application.cjs",[[0,"ez-application"]]],["ez-card-item.cjs",[[1,"ez-card-item",{"item":[16]}]]],["ez-list.cjs",[[1,"ez-list",{"dataSource":[1040],"useGroups":[1540,"use-groups"],"ezDraggable":[1028,"ez-draggable"],"ezSelectable":[1028,"ez-selectable"],"itemSlotBuilder":[1040],"_listItems":[32],"_listGroupItems":[32],"clearHistory":[64],"scrollToTop":[64],"setSelection":[64],"getSelection":[64],"getList":[64]}]]],["ez-modal.cjs",[[1,"ez-modal",{"modalSize":[1,"modal-size"],"align":[1],"opened":[1028],"closeEsc":[4,"close-esc"],"closeOutsideClick":[4,"close-outside-click"]}]]],["ez-popover.cjs",[[1,"ez-popover",{"autoClose":[516,"auto-close"],"top":[1537],"left":[1537],"bottom":[1537],"right":[1537],"boxWidth":[513,"box-width"],"opened":[1540],"innerElement":[1537,"inner-element"],"overlayType":[513,"overlay-type"],"updatePosition":[64],"show":[64],"hide":[64]}]]],["ez-popup.cjs",[[1,"ez-popup",{"size":[1],"opened":[1540],"useHeader":[516,"use-header"],"heightMode":[513,"height-mode"],"ezTitle":[1,"ez-title"]}]]],["ez-toast.cjs",[[1,"ez-toast",{"message":[1025],"fadeTime":[1026,"fade-time"],"useIcon":[1028,"use-icon"],"canClose":[1028,"can-close"],"show":[64]}]]],["ez-text-input.cjs",[[1,"ez-text-input",{"label":[513],"value":[1537],"enabled":[516],"errorMessage":[1537,"error-message"],"mask":[1],"canShowError":[516,"can-show-error"],"restrict":[1],"mode":[513],"noBorder":[516,"no-border"],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-guide-navigator.cjs",[[1,"ez-guide-navigator",{"binder":[16],"open":[1540],"items":[32],"filterText":[32],"enableOnly":[64],"enableAll":[64]}]]],["ez-modal-container.cjs",[[6,"ez-modal-container",{"modalTitle":[1,"modal-title"],"modalSubTitle":[1,"modal-sub-title"],"showTitleBar":[4,"show-title-bar"],"cancelButtonLabel":[1,"cancel-button-label"],"okButtonLabel":[1,"ok-button-label"],"cancelButtonStatus":[1,"cancel-button-status"],"okButtonStatus":[1,"ok-button-status"]}]]],["ez-loading-bar.cjs",[[1,"ez-loading-bar",{"_showLoading":[32],"hide":[64],"show":[64]}]]],["ez-radio-button.cjs",[[1,"ez-radio-button",{"value":[1544],"options":[1040],"enabled":[516],"label":[513],"direction":[1537]}]]],["ez-scroller.cjs",[[1,"ez-scroller",{"direction":[1],"locked":[4],"activeShadow":[4,"active-shadow"],"isActive":[32]},[[2,"click","clickListener"],[1,"mousedown","mouseDownHandler"],[1,"mouseup","mouseUpHandler"],[1,"mousemove","mouseMoveHandler"]]]]],["ez-view-stack.cjs",[[0,"ez-view-stack",{"show":[64],"getSelectedIndex":[64]}]]],["ez-collapsible-box.cjs",[[1,"ez-collapsible-box",{"value":[1540],"label":[513],"headerSize":[513,"header-size"],"iconPlacement":[513,"icon-placement"],"headerAlign":[513,"header-align"],"removable":[516],"editable":[516],"conditionalSave":[16],"_activeEditText":[32],"showHide":[64],"applyFocusTextEdit":[64],"cancelEdition":[64]}]]],["ez-search.cjs",[[1,"ez-search",{"value":[1537],"label":[1537],"enabled":[1540],"errorMessage":[1537,"error-message"],"optionLoader":[16],"showSelectedValue":[4,"show-selected-value"],"showOptionValue":[4,"show-option-value"],"suppressEmptyOption":[4,"suppress-empty-option"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-date-input.cjs",[[1,"ez-date-input",{"label":[513],"value":[1040],"enabled":[516],"errorMessage":[1537,"error-message"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-date-time-input.cjs",[[1,"ez-date-time-input",{"label":[513],"value":[1040],"enabled":[516],"errorMessage":[1537,"error-message"],"showSeconds":[516,"show-seconds"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-time-input.cjs",[[1,"ez-time-input",{"label":[513],"value":[1026],"enabled":[516],"errorMessage":[1537,"error-message"],"showSeconds":[516,"show-seconds"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-number-input.cjs",[[1,"ez-number-input",{"label":[1],"value":[1538],"enabled":[4],"errorMessage":[1537,"error-message"],"precision":[2],"prettyPrecision":[2,"pretty-precision"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-tabselector.cjs",[[1,"ez-tabselector",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"_processedTabs":[32]}]]],["ez-check.cjs",[[1,"ez-check",{"label":[513],"value":[1540],"enabled":[1540],"indeterminate":[516],"mode":[513],"getMode":[64],"setFocus":[64]}]]],["ez-text-area.cjs",[[1,"ez-text-area",{"label":[513],"value":[1537],"enabled":[516],"errorMessage":[1537,"error-message"],"rows":[1538],"canShowError":[516,"can-show-error"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-upload.cjs",[[1,"ez-upload",{"label":[1],"enabled":[4],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"requestHeaders":[8,"request-headers"],"urlUpload":[1,"url-upload"],"urlDelete":[1,"url-delete"],"value":[1040],"addFiles":[64],"setFocus":[64],"setBlur":[64]}]]],["ez-combo-box.cjs",[[1,"ez-combo-box",{"value":[1537],"label":[513],"enabled":[516],"options":[1040],"errorMessage":[1537,"error-message"],"searchMode":[4,"search-mode"],"showSelectedValue":[4,"show-selected-value"],"showOptionValue":[4,"show-option-value"],"suppressSearch":[4,"suppress-search"],"optionLoader":[16],"suppressEmptyOption":[4,"suppress-empty-option"],"canShowError":[516,"can-show-error"],"mode":[513],"_preSelection":[32],"_visibleOptions":[32],"_startLoading":[32],"_showLoading":[32],"_criteria":[32],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-calendar.cjs",[[1,"ez-calendar",{"value":[1040],"floating":[516],"time":[516],"showSeconds":[516,"show-seconds"],"show":[64],"fitVertical":[64],"hide":[64]}]]],["ez-icon.cjs",[[1,"ez-icon",{"size":[513],"href":[513],"iconName":[513,"icon-name"]}]]],["ez-filter-input_3.cjs",[[1,"ez-filter-input",{"label":[1],"value":[1537],"enabled":[4],"errorMessage":[1537,"error-message"],"restrict":[1],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}],[1,"ez-sidebar-button"],[1,"ez-tree",{"items":[1040],"value":[1040],"selectedId":[1537,"selected-id"],"iconResolver":[16],"tooltipResolver":[16],"_waintingForLoad":[32],"selectItem":[64],"openItem":[64],"disableItem":[64],"enableItem":[64],"addChild":[64]},[[2,"keydown","onKeyDownListener"]]]]],["ez-button.cjs",[[1,"ez-button",{"label":[513],"enabled":[516],"mode":[513],"image":[513],"iconName":[513,"icon-name"],"size":[513],"setFocus":[64],"setBlur":[64]}]]],["ez-text-edit.cjs",[[1,"ez-text-edit",{"value":[1],"styled":[16],"_newValue":[32],"applyFocusSelect":[64]}]]],["ez-form.cjs",[[2,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16],"multiLevel":[4,"multi-level"],"levelResolver":[16],"contentBuilder":[16],"validate":[64]}]]]], options);
|
|
19
19
|
});
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["ez-actions-button.cjs",[[1,"ez-actions-button",{"enabled":[516],"actions":[1040],"size":[513],"showLabel":[516,"show-label"],"displayIcon":[513,"display-icon"],"checkOption":[516,"check-option"],"value":[513],"isTransparent":[516,"is-transparent"],"arrowActive":[516,"arrow-active"],"_selectedAction":[32],"hideActions":[64],"isOpened":[64]}]]],["ez-dialog.cjs",[[1,"ez-dialog",{"confirm":[1028],"dialogType":[1025,"dialog-type"],"message":[1025],"opened":[1540],"personalizedIconPath":[1025,"personalized-icon-path"],"ezTitle":[1025,"ez-title"],"show":[64]}]]],["ez-
|
|
17
|
+
return index.bootstrapLazy([["ez-actions-button.cjs",[[1,"ez-actions-button",{"enabled":[516],"actions":[1040],"size":[513],"showLabel":[516,"show-label"],"displayIcon":[513,"display-icon"],"checkOption":[516,"check-option"],"value":[513],"isTransparent":[516,"is-transparent"],"arrowActive":[516,"arrow-active"],"_selectedAction":[32],"hideActions":[64],"isOpened":[64]}]]],["ez-dialog.cjs",[[1,"ez-dialog",{"confirm":[1028],"dialogType":[1025,"dialog-type"],"message":[1025],"opened":[1540],"personalizedIconPath":[1025,"personalized-icon-path"],"ezTitle":[1025,"ez-title"],"show":[64]}]]],["ez-grid.cjs",[[6,"ez-grid",{"multipleSelection":[4,"multiple-selection"],"config":[1040],"serverUrl":[1,"server-url"],"dataUnit":[16],"statusResolver":[16],"_paginationInfo":[32],"_paginationChangedByKeyboard":[32],"setColumnsDef":[64],"addColumnMenuItem":[64],"setColumnsState":[64],"setData":[64],"getSelection":[64],"getColumnsState":[64],"getColumns":[64],"quickFilter":[64]},[[0,"ezSelectionChange","onSelectionChange"]]]]],["ez-alert.cjs",[[1,"ez-alert",{"alertType":[513,"alert-type"]}]]],["ez-breadcrumb.cjs",[[1,"ez-breadcrumb",{"items":[1040]}]]],["ez-chip.cjs",[[1,"ez-chip",{"label":[513],"enabled":[516],"removePosition":[513,"remove-position"],"mode":[513],"value":[1540],"setFocus":[64],"setBlur":[64]}]]],["ez-dropdown.cjs",[[1,"ez-dropdown",{"items":[1040],"value":[1040],"itemBuilder":[16]}]]],["ez-file-item.cjs",[[1,"ez-file-item",{"canRemove":[4,"can-remove"],"fileName":[1,"file-name"],"iconName":[1,"icon-name"],"fileSize":[2,"file-size"],"progress":[2]}]]],["ez-application.cjs",[[0,"ez-application"]]],["ez-card-item.cjs",[[1,"ez-card-item",{"item":[16]}]]],["ez-list.cjs",[[1,"ez-list",{"dataSource":[1040],"useGroups":[1540,"use-groups"],"ezDraggable":[1028,"ez-draggable"],"ezSelectable":[1028,"ez-selectable"],"itemSlotBuilder":[1040],"_listItems":[32],"_listGroupItems":[32],"clearHistory":[64],"scrollToTop":[64],"setSelection":[64],"getSelection":[64],"getList":[64]}]]],["ez-modal.cjs",[[1,"ez-modal",{"modalSize":[1,"modal-size"],"align":[1],"opened":[1028],"closeEsc":[4,"close-esc"],"closeOutsideClick":[4,"close-outside-click"]}]]],["ez-popover.cjs",[[1,"ez-popover",{"autoClose":[516,"auto-close"],"top":[1537],"left":[1537],"bottom":[1537],"right":[1537],"boxWidth":[513,"box-width"],"opened":[1540],"innerElement":[1537,"inner-element"],"overlayType":[513,"overlay-type"],"updatePosition":[64],"show":[64],"hide":[64]}]]],["ez-popup.cjs",[[1,"ez-popup",{"size":[1],"opened":[1540],"useHeader":[516,"use-header"],"heightMode":[513,"height-mode"],"ezTitle":[1,"ez-title"]}]]],["ez-toast.cjs",[[1,"ez-toast",{"message":[1025],"fadeTime":[1026,"fade-time"],"useIcon":[1028,"use-icon"],"canClose":[1028,"can-close"],"show":[64]}]]],["ez-text-input.cjs",[[1,"ez-text-input",{"label":[513],"value":[1537],"enabled":[516],"errorMessage":[1537,"error-message"],"mask":[1],"canShowError":[516,"can-show-error"],"restrict":[1],"mode":[513],"noBorder":[516,"no-border"],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-guide-navigator.cjs",[[1,"ez-guide-navigator",{"binder":[16],"open":[1540],"items":[32],"filterText":[32],"enableOnly":[64],"enableAll":[64]}]]],["ez-modal-container.cjs",[[6,"ez-modal-container",{"modalTitle":[1,"modal-title"],"modalSubTitle":[1,"modal-sub-title"],"showTitleBar":[4,"show-title-bar"],"cancelButtonLabel":[1,"cancel-button-label"],"okButtonLabel":[1,"ok-button-label"],"cancelButtonStatus":[1,"cancel-button-status"],"okButtonStatus":[1,"ok-button-status"]}]]],["ez-loading-bar.cjs",[[1,"ez-loading-bar",{"_showLoading":[32],"hide":[64],"show":[64]}]]],["ez-radio-button.cjs",[[1,"ez-radio-button",{"value":[1544],"options":[1040],"enabled":[516],"label":[513],"direction":[1537]}]]],["ez-scroller.cjs",[[1,"ez-scroller",{"direction":[1],"locked":[4],"activeShadow":[4,"active-shadow"],"isActive":[32]},[[2,"click","clickListener"],[1,"mousedown","mouseDownHandler"],[1,"mouseup","mouseUpHandler"],[1,"mousemove","mouseMoveHandler"]]]]],["ez-view-stack.cjs",[[0,"ez-view-stack",{"show":[64],"getSelectedIndex":[64]}]]],["ez-collapsible-box.cjs",[[1,"ez-collapsible-box",{"value":[1540],"label":[513],"headerSize":[513,"header-size"],"iconPlacement":[513,"icon-placement"],"headerAlign":[513,"header-align"],"removable":[516],"editable":[516],"conditionalSave":[16],"_activeEditText":[32],"showHide":[64],"applyFocusTextEdit":[64],"cancelEdition":[64]}]]],["ez-search.cjs",[[1,"ez-search",{"value":[1537],"label":[1537],"enabled":[1540],"errorMessage":[1537,"error-message"],"optionLoader":[16],"showSelectedValue":[4,"show-selected-value"],"showOptionValue":[4,"show-option-value"],"suppressEmptyOption":[4,"suppress-empty-option"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-date-input.cjs",[[1,"ez-date-input",{"label":[513],"value":[1040],"enabled":[516],"errorMessage":[1537,"error-message"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-date-time-input.cjs",[[1,"ez-date-time-input",{"label":[513],"value":[1040],"enabled":[516],"errorMessage":[1537,"error-message"],"showSeconds":[516,"show-seconds"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-time-input.cjs",[[1,"ez-time-input",{"label":[513],"value":[1026],"enabled":[516],"errorMessage":[1537,"error-message"],"showSeconds":[516,"show-seconds"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-number-input.cjs",[[1,"ez-number-input",{"label":[1],"value":[1538],"enabled":[4],"errorMessage":[1537,"error-message"],"precision":[2],"prettyPrecision":[2,"pretty-precision"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-tabselector.cjs",[[1,"ez-tabselector",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"_processedTabs":[32]}]]],["ez-check.cjs",[[1,"ez-check",{"label":[513],"value":[1540],"enabled":[1540],"indeterminate":[516],"mode":[513],"getMode":[64],"setFocus":[64]}]]],["ez-text-area.cjs",[[1,"ez-text-area",{"label":[513],"value":[1537],"enabled":[516],"errorMessage":[1537,"error-message"],"rows":[1538],"canShowError":[516,"can-show-error"],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-upload.cjs",[[1,"ez-upload",{"label":[1],"enabled":[4],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"requestHeaders":[8,"request-headers"],"urlUpload":[1,"url-upload"],"urlDelete":[1,"url-delete"],"value":[1040],"addFiles":[64],"setFocus":[64],"setBlur":[64]}]]],["ez-combo-box.cjs",[[1,"ez-combo-box",{"value":[1537],"label":[513],"enabled":[516],"options":[1040],"errorMessage":[1537,"error-message"],"searchMode":[4,"search-mode"],"showSelectedValue":[4,"show-selected-value"],"showOptionValue":[4,"show-option-value"],"suppressSearch":[4,"suppress-search"],"optionLoader":[16],"suppressEmptyOption":[4,"suppress-empty-option"],"canShowError":[516,"can-show-error"],"mode":[513],"_preSelection":[32],"_visibleOptions":[32],"_startLoading":[32],"_showLoading":[32],"_criteria":[32],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}]]],["ez-calendar.cjs",[[1,"ez-calendar",{"value":[1040],"floating":[516],"time":[516],"showSeconds":[516,"show-seconds"],"show":[64],"fitVertical":[64],"hide":[64]}]]],["ez-icon.cjs",[[1,"ez-icon",{"size":[513],"href":[513],"iconName":[513,"icon-name"]}]]],["ez-filter-input_3.cjs",[[1,"ez-filter-input",{"label":[1],"value":[1537],"enabled":[4],"errorMessage":[1537,"error-message"],"restrict":[1],"mode":[513],"setFocus":[64],"setBlur":[64],"isInvalid":[64]}],[1,"ez-sidebar-button"],[1,"ez-tree",{"items":[1040],"value":[1040],"selectedId":[1537,"selected-id"],"iconResolver":[16],"tooltipResolver":[16],"_waintingForLoad":[32],"selectItem":[64],"openItem":[64],"disableItem":[64],"enableItem":[64],"addChild":[64]},[[2,"keydown","onKeyDownListener"]]]]],["ez-button.cjs",[[1,"ez-button",{"label":[513],"enabled":[516],"mode":[513],"image":[513],"iconName":[513,"icon-name"],"size":[513],"setFocus":[64],"setBlur":[64]}]]],["ez-text-edit.cjs",[[1,"ez-text-edit",{"value":[1],"styled":[16],"_newValue":[32],"applyFocusSelect":[64]}]]],["ez-form.cjs",[[2,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16],"multiLevel":[4,"multi-level"],"levelResolver":[16],"contentBuilder":[16],"validate":[64]}]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"./components/ez-dropdown/ez-dropdown.js",
|
|
24
24
|
"./components/ez-file-item/ez-file-item.js",
|
|
25
25
|
"./components/ez-filter-input/ez-filter-input.js",
|
|
26
|
-
"./components/ez-form-view/ez-form-view.js",
|
|
27
26
|
"./components/ez-grid/ez-grid.js",
|
|
27
|
+
"./components/ez-guide-navigator/ez-guide-navigator.js",
|
|
28
28
|
"./components/ez-icon/ez-icon.js",
|
|
29
29
|
"./components/ez-loading-bar/ez-loading-bar.js",
|
|
30
30
|
"./components/ez-modal/ez-modal.js",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Component, h, Host, Prop, Element, forceUpdate, Method, Watch, Event } from "@stencil/core";
|
|
2
|
+
import { DataUnit, Action, DataUnitAction, ElementIDUtils, StringUtils } from "@sankhyalabs/core";
|
|
3
|
+
import { FormSheet } from "./structure/FormSheet";
|
|
4
|
+
import { buildFromConfig, buildFromDataUnit } from "./structure/FormMetadata";
|
|
3
5
|
import { createStore } from "redux";
|
|
4
|
-
import
|
|
6
|
+
import { formReducer, selectCurrentSheet, selectFormMetadata, loadMetadata, changeTab, selectCurrentSheetId } from "./store/form.slice";
|
|
5
7
|
import DataBinder from "./DataBinder";
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
+
import ApplicationUtils from "../../utils/ApplicationUtils";
|
|
9
|
+
import { buildField } from "./fieldbuilder/FieldBuilder";
|
|
8
10
|
export class EzForm {
|
|
9
11
|
constructor() {
|
|
10
12
|
this.onDataUnitAction = (action) => {
|
|
@@ -132,9 +134,8 @@ export class EzForm {
|
|
|
132
134
|
return result;
|
|
133
135
|
}
|
|
134
136
|
buildFormContent(sheetId, currentSheet) {
|
|
135
|
-
const fields = currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.fields;
|
|
136
137
|
if (this.contentBuilder != undefined) {
|
|
137
|
-
const customContent = this.contentBuilder(sheetId,
|
|
138
|
+
const customContent = this.contentBuilder(sheetId, currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.items, buildField);
|
|
138
139
|
if (customContent != undefined) {
|
|
139
140
|
return h("div", { "innerHTML": customContent });
|
|
140
141
|
}
|
|
@@ -143,8 +144,7 @@ export class EzForm {
|
|
|
143
144
|
return;
|
|
144
145
|
}
|
|
145
146
|
const idFormSheet = `${StringUtils.replaceAccentuatedChars(StringUtils.toCamelCase(currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.label), false)}_selectorContainer`;
|
|
146
|
-
return
|
|
147
|
-
h("ez-form-view", { class: "ez-row ez-padding-vertical--small", fields: fields })));
|
|
147
|
+
return h(FormSheet, { store: this._store, source: currentSheet, dataElementId: idFormSheet });
|
|
148
148
|
}
|
|
149
149
|
processMetadata() {
|
|
150
150
|
if (!this.isStatic() && this.dataUnit && this._store) {
|
|
@@ -273,7 +273,7 @@ export class EzForm {
|
|
|
273
273
|
"references": {
|
|
274
274
|
"IFormConfig": {
|
|
275
275
|
"location": "import",
|
|
276
|
-
"path": "
|
|
276
|
+
"path": "../../interfaces/ez-form"
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
},
|
|
@@ -293,7 +293,7 @@ export class EzForm {
|
|
|
293
293
|
"references": {
|
|
294
294
|
"IRecordValidator": {
|
|
295
295
|
"location": "import",
|
|
296
|
-
"path": "
|
|
296
|
+
"path": "../../interfaces/ez-form"
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
},
|
|
@@ -348,15 +348,19 @@ export class EzForm {
|
|
|
348
348
|
"type": "unknown",
|
|
349
349
|
"mutable": false,
|
|
350
350
|
"complexType": {
|
|
351
|
-
"original": "(selectedTab: string, fields: Array<
|
|
352
|
-
"resolved": "(selectedTab: string, fields:
|
|
351
|
+
"original": "(selectedTab: string, fields: Array<IFieldMetadata | IFieldSetMetadata>, fieldBuilder: (field: IFieldMetadata) => HTMLElement) => HTMLElement | string",
|
|
352
|
+
"resolved": "(selectedTab: string, fields: (IFieldMetadata | IFieldSetMetadata)[], fieldBuilder: (field: IFieldMetadata) => HTMLElement) => string | HTMLElement",
|
|
353
353
|
"references": {
|
|
354
354
|
"Array": {
|
|
355
355
|
"location": "global"
|
|
356
356
|
},
|
|
357
|
-
"
|
|
357
|
+
"IFieldMetadata": {
|
|
358
|
+
"location": "import",
|
|
359
|
+
"path": "../../interfaces/ez-form"
|
|
360
|
+
},
|
|
361
|
+
"IFieldSetMetadata": {
|
|
358
362
|
"location": "import",
|
|
359
|
-
"path": "
|
|
363
|
+
"path": "../../interfaces/ez-form"
|
|
360
364
|
},
|
|
361
365
|
"HTMLElement": {
|
|
362
366
|
"location": "global"
|
|
@@ -405,7 +409,7 @@ export class EzForm {
|
|
|
405
409
|
},
|
|
406
410
|
"IValidationResult": {
|
|
407
411
|
"location": "import",
|
|
408
|
-
"path": "
|
|
412
|
+
"path": "../../interfaces/ez-form"
|
|
409
413
|
}
|
|
410
414
|
},
|
|
411
415
|
"return": "Promise<void>"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { UserInterface } from "@sankhyalabs/core";
|
|
2
|
+
import { isReadOnlyField, isRequiredField } from "../structure/FormMetadata";
|
|
3
|
+
import { buildTextArea } from "./tpl/TextArea.tpl";
|
|
4
|
+
import { buildTextInput } from "./tpl/TextInput.tpl";
|
|
5
|
+
import { buildCheckBox, buildSwitch } from "./tpl/CheckBox.tpl";
|
|
6
|
+
import { buildComboBox } from "./tpl/ComboBox.tpl";
|
|
7
|
+
import { buildSearch } from "./tpl/SearchInput.tpl";
|
|
8
|
+
import { buildFile } from "./tpl/FileInput.tpl";
|
|
9
|
+
import { buildDate, buildTimeDate, buildTime } from "./tpl/DateInput.tpl";
|
|
10
|
+
import { buildInteger, buildDecimal } from "./tpl/NumberInput.tpl";
|
|
11
|
+
const uiBuilders = new Map();
|
|
12
|
+
uiBuilders.set(UserInterface.LONGTEXT, buildTextArea);
|
|
13
|
+
uiBuilders.set(UserInterface.CHECKBOX, buildCheckBox);
|
|
14
|
+
uiBuilders.set(UserInterface.SWITCH, buildSwitch);
|
|
15
|
+
uiBuilders.set(UserInterface.OPTIONSELECTOR, buildComboBox);
|
|
16
|
+
uiBuilders.set(UserInterface.SEARCH, buildSearch);
|
|
17
|
+
uiBuilders.set(UserInterface.FILE, buildFile);
|
|
18
|
+
uiBuilders.set(UserInterface.DATE, buildDate);
|
|
19
|
+
uiBuilders.set(UserInterface.TIME, buildTime);
|
|
20
|
+
uiBuilders.set(UserInterface.DATETIME, buildTimeDate);
|
|
21
|
+
uiBuilders.set(UserInterface.DECIMALNUMBER, buildDecimal);
|
|
22
|
+
uiBuilders.set(UserInterface.INTEGERNUMBER, buildInteger);
|
|
23
|
+
export const buildField = (field) => {
|
|
24
|
+
const descriptor = field.descriptor;
|
|
25
|
+
const config = Object.assign({}, field.config);
|
|
26
|
+
let builder;
|
|
27
|
+
let props;
|
|
28
|
+
if (descriptor) {
|
|
29
|
+
if (!config.label) {
|
|
30
|
+
config.label = descriptor.label;
|
|
31
|
+
}
|
|
32
|
+
if (!config.name) {
|
|
33
|
+
config.name = descriptor.name;
|
|
34
|
+
}
|
|
35
|
+
// Forçamos uma avaliação priorizando o descriptor.
|
|
36
|
+
config.required = isRequiredField(descriptor, config);
|
|
37
|
+
config.readOnly = isReadOnlyField(descriptor, config);
|
|
38
|
+
props = descriptor.properties;
|
|
39
|
+
builder = uiBuilders.get(descriptor.userInterface);
|
|
40
|
+
}
|
|
41
|
+
if (config.required) {
|
|
42
|
+
config.label = `${config.label} (obrigatório) *`;
|
|
43
|
+
}
|
|
44
|
+
if (!builder) {
|
|
45
|
+
builder = buildTextInput;
|
|
46
|
+
}
|
|
47
|
+
return builder(config, props);
|
|
48
|
+
};
|