@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.
Files changed (106) hide show
  1. package/dist/cjs/{ez-tree.cjs.entry.js → ez-filter-input_3.cjs.entry.js} +103 -16
  2. package/dist/cjs/ez-form.cjs.entry.js +325 -184
  3. package/dist/cjs/ez-guide-navigator.cjs.entry.js +339 -0
  4. package/dist/cjs/ezui.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +1 -1
  7. package/dist/collection/components/ez-form/ez-form.css +1 -1
  8. package/dist/collection/components/ez-form/ez-form.js +20 -16
  9. package/dist/collection/components/ez-form/fieldbuilder/FieldBuilder.js +48 -0
  10. package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/CheckBox.tpl.js +4 -4
  11. package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/ComboBox.tpl.js +2 -2
  12. package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/DateInput.tpl.js +1 -1
  13. package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/NumberInput.tpl.js +3 -3
  14. package/dist/collection/components/ez-form/structure/FormItem.js +11 -0
  15. package/dist/collection/components/ez-form/{FormMetadata.js → structure/FormMetadata.js} +53 -38
  16. package/dist/collection/components/ez-form/structure/FormSheet.js +6 -0
  17. package/dist/collection/components/ez-guide-navigator/Guide.js +200 -0
  18. package/dist/collection/components/ez-guide-navigator/ez-guide-navigator.css +53 -0
  19. package/dist/collection/components/ez-guide-navigator/ez-guide-navigator.js +230 -0
  20. package/dist/collection/components/ez-tree/ez-tree.js +5 -5
  21. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +1 -1
  22. package/dist/collection/components/ez-tree/types/Tree.js +0 -11
  23. package/dist/custom-elements/index.d.ts +6 -6
  24. package/dist/custom-elements/index.js +667 -337
  25. package/dist/esm/{ez-tree.entry.js → ez-filter-input_3.entry.js} +103 -18
  26. package/dist/esm/ez-form.entry.js +327 -186
  27. package/dist/esm/ez-guide-navigator.entry.js +335 -0
  28. package/dist/esm/ezui.js +1 -1
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/ezui/ezui.esm.js +1 -1
  31. package/dist/ezui/p-6500a260.entry.js +1 -0
  32. package/dist/ezui/p-6c45dc64.entry.js +1 -0
  33. package/dist/ezui/p-fa2f4ea5.entry.js +1 -0
  34. package/dist/types/components/ez-form/DataBinder.d.ts +1 -1
  35. package/dist/types/components/ez-form/ez-form.d.ts +3 -4
  36. package/dist/types/components/ez-form/fieldbuilder/FieldBuilder.d.ts +2 -0
  37. package/dist/types/components/ez-form/fieldbuilder/tpl/CheckBox.tpl.d.ts +3 -0
  38. package/dist/types/components/ez-form/fieldbuilder/tpl/ComboBox.tpl.d.ts +6 -0
  39. package/dist/types/components/ez-form/fieldbuilder/tpl/DateInput.tpl.d.ts +15 -0
  40. package/dist/types/components/ez-form/fieldbuilder/tpl/FileInput.tpl.d.ts +5 -0
  41. package/dist/types/components/ez-form/fieldbuilder/tpl/NumberInput.tpl.d.ts +7 -0
  42. package/dist/types/components/ez-form/fieldbuilder/tpl/SearchInput.tpl.d.ts +6 -0
  43. package/dist/types/components/ez-form/fieldbuilder/tpl/TextArea.tpl.d.ts +5 -0
  44. package/dist/types/components/ez-form/fieldbuilder/tpl/TextInput.tpl.d.ts +5 -0
  45. package/dist/types/components/ez-form/store/form.slice.d.ts +2 -2
  46. package/dist/types/components/ez-form/structure/FormItem.d.ts +9 -0
  47. package/dist/types/components/ez-form/{FormMetadata.d.ts → structure/FormMetadata.d.ts} +5 -2
  48. package/dist/types/components/ez-form/structure/FormSheet.d.ts +10 -0
  49. package/dist/types/components/ez-guide-navigator/Guide.d.ts +69 -0
  50. package/dist/types/components/ez-tree/types/Tree.d.ts +0 -1
  51. package/dist/types/components.d.ts +41 -26
  52. package/dist/types/interfaces/ez-form/IFieldMetadata.d.ts +6 -0
  53. package/dist/types/interfaces/ez-form/IFieldSetMetadata.d.ts +5 -0
  54. package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFormSheetMetadata.d.ts +3 -2
  55. package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IRecordValidator.d.ts +1 -1
  56. package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/index.d.ts +2 -0
  57. package/package.json +2 -2
  58. package/react/components.d.ts +1 -1
  59. package/react/components.js +1 -1
  60. package/react/components.js.map +1 -1
  61. package/dist/cjs/ez-filter-input.cjs.entry.js +0 -81
  62. package/dist/cjs/ez-form-view.cjs.entry.js +0 -140
  63. package/dist/cjs/ez-sidebar-button.cjs.entry.js +0 -31
  64. package/dist/collection/components/ez-form-view/ez-form-view.css +0 -6
  65. package/dist/collection/components/ez-form-view/ez-form-view.js +0 -71
  66. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +0 -26
  67. package/dist/esm/ez-filter-input.entry.js +0 -77
  68. package/dist/esm/ez-form-view.entry.js +0 -136
  69. package/dist/esm/ez-sidebar-button.entry.js +0 -27
  70. package/dist/ezui/p-36ed5c45.entry.js +0 -1
  71. package/dist/ezui/p-7799666d.entry.js +0 -1
  72. package/dist/ezui/p-81897c04.entry.js +0 -1
  73. package/dist/ezui/p-97d2d2f6.entry.js +0 -1
  74. package/dist/ezui/p-ba03ac61.entry.js +0 -1
  75. package/dist/types/components/ez-form-view/fieldbuilder/FieldBuilder.d.ts +0 -2
  76. package/dist/types/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.d.ts +0 -3
  77. package/dist/types/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.d.ts +0 -2
  78. package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +0 -4
  79. package/dist/types/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.d.ts +0 -2
  80. package/dist/types/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.d.ts +0 -3
  81. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.d.ts +0 -2
  82. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextArea.tpl.d.ts +0 -2
  83. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +0 -2
  84. package/dist/types/components/ez-form-view/interfaces/IFormViewField.d.ts +0 -10
  85. package/dist/types/components/ez-form-view/interfaces/index.d.ts +0 -1
  86. /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/FileInput.tpl.js +0 -0
  87. /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/SearchInput.tpl.js +0 -0
  88. /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/TextArea.tpl.js +0 -0
  89. /package/dist/collection/components/{ez-form-view/fieldbuilder/templates → ez-form/fieldbuilder/tpl}/TextInput.tpl.js +0 -0
  90. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IDefaultConfig.js +0 -0
  91. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFieldConfig.js +0 -0
  92. /package/dist/collection/{components/ez-form-view/interfaces/IFormViewField.js → interfaces/ez-form/IFieldMetadata.js} +0 -0
  93. /package/dist/collection/{components/ez-form-view/interfaces/index.js → interfaces/ez-form/IFieldSetMetadata.js} +0 -0
  94. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFormConfig.js +0 -0
  95. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IFormSheetMetadata.js +0 -0
  96. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IInvalidField.js +0 -0
  97. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IRecordValidator.js +0 -0
  98. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/ITabConfig.js +0 -0
  99. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/IValidationResult.js +0 -0
  100. /package/dist/collection/{components/ez-form/interfaces → interfaces/ez-form}/index.js +0 -0
  101. /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IDefaultConfig.d.ts +0 -0
  102. /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFieldConfig.d.ts +0 -0
  103. /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IFormConfig.d.ts +0 -0
  104. /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/IInvalidField.d.ts +0 -0
  105. /package/dist/types/{components/ez-form/interfaces → interfaces/ez-form}/ITabConfig.d.ts +0 -0
  106. /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;
@@ -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-filter-input.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]}]]],["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-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-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-loading-bar.cjs",[[1,"ez-loading-bar",{"_showLoading":[32],"hide":[64],"show":[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-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-sidebar-button.cjs",[[1,"ez-sidebar-button"]]],["ez-toast.cjs",[[1,"ez-toast",{"message":[1025],"fadeTime":[1026,"fade-time"],"useIcon":[1028,"use-icon"],"canClose":[1028,"can-close"],"show":[64]}]]],["ez-view-stack.cjs",[[0,"ez-view-stack",{"show":[64],"getSelectedIndex":[64]}]]],["ez-tabselector.cjs",[[1,"ez-tabselector",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"_processedTabs":[32]}]]],["ez-tree.cjs",[[1,"ez-tree",{"items":[16],"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-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-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-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-text-edit.cjs",[[1,"ez-text-edit",{"value":[1],"styled":[16],"_newValue":[32],"applyFocusSelect":[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-button.cjs",[[1,"ez-button",{"label":[513],"enabled":[516],"mode":[513],"image":[513],"iconName":[513,"icon-name"],"size":[513],"setFocus":[64],"setBlur":[64]}]]],["ez-form-view.cjs",[[2,"ez-form-view",{"fields":[16]}]]],["ez-form.cjs",[[2,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16],"multiLevel":[4,"multi-level"],"levelResolver":[16],"contentBuilder":[16],"validate":[64]}]]]], 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-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
  });
@@ -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-filter-input.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]}]]],["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-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-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-loading-bar.cjs",[[1,"ez-loading-bar",{"_showLoading":[32],"hide":[64],"show":[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-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-sidebar-button.cjs",[[1,"ez-sidebar-button"]]],["ez-toast.cjs",[[1,"ez-toast",{"message":[1025],"fadeTime":[1026,"fade-time"],"useIcon":[1028,"use-icon"],"canClose":[1028,"can-close"],"show":[64]}]]],["ez-view-stack.cjs",[[0,"ez-view-stack",{"show":[64],"getSelectedIndex":[64]}]]],["ez-tabselector.cjs",[[1,"ez-tabselector",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"_processedTabs":[32]}]]],["ez-tree.cjs",[[1,"ez-tree",{"items":[16],"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-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-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-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-text-edit.cjs",[[1,"ez-text-edit",{"value":[1],"styled":[16],"_newValue":[32],"applyFocusSelect":[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-button.cjs",[[1,"ez-button",{"label":[513],"enabled":[516],"mode":[513],"image":[513],"iconName":[513,"icon-name"],"size":[513],"setFocus":[64],"setBlur":[64]}]]],["ez-form-view.cjs",[[2,"ez-form-view",{"fields":[16]}]]],["ez-form.cjs",[[2,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16],"multiLevel":[4,"multi-level"],"levelResolver":[16],"contentBuilder":[16],"validate":[64]}]]]], options);
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,4 +1,4 @@
1
- :host {
1
+ ez-form {
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  width: 100%;
@@ -1,10 +1,12 @@
1
- import { Action, DataUnit, DataUnitAction, ElementIDUtils, StringUtils } from "@sankhyalabs/core";
2
- import { Component, Element, Event, Host, Method, Prop, Watch, forceUpdate, h } from "@stencil/core";
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 ApplicationUtils from "../../utils/ApplicationUtils";
6
+ import { formReducer, selectCurrentSheet, selectFormMetadata, loadMetadata, changeTab, selectCurrentSheetId } from "./store/form.slice";
5
7
  import DataBinder from "./DataBinder";
6
- import { changeTab, formReducer, loadMetadata, selectCurrentSheet, selectCurrentSheetId, selectFormMetadata } from "./store/form.slice";
7
- import { buildFromConfig, buildFromDataUnit } from "./FormMetadata";
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, fields);
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 (h("div", { class: "dynamic-content ez-box__container", "data-element-id": idFormSheet },
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": "./interfaces"
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": "./interfaces"
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<IFormViewField>) => HTMLElement | string",
352
- "resolved": "(selectedTab: string, fields: IFormViewField[]) => string | HTMLElement",
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
- "IFormViewField": {
357
+ "IFieldMetadata": {
358
+ "location": "import",
359
+ "path": "../../interfaces/ez-form"
360
+ },
361
+ "IFieldSetMetadata": {
358
362
  "location": "import",
359
- "path": "../ez-form-view/interfaces"
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": "./interfaces"
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
+ };