@sankhyalabs/ezui 0.0.0-bugfix-dev-kb-74998.4 → 0.0.0-bugfix-dev-KB-75210.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/cjs/{ez-card-item_3.cjs.entry.js → ez-card-item_2.cjs.entry.js} +0 -123
  2. package/dist/cjs/ez-chart.cjs.entry.js +1 -1
  3. package/dist/cjs/ez-double-list.cjs.entry.js +287 -0
  4. package/dist/cjs/ez-filter-input.cjs.entry.js +130 -0
  5. package/dist/cjs/ez-form-view.cjs.entry.js +8 -2
  6. package/dist/cjs/ez-grid.cjs.entry.js +777 -109
  7. package/dist/cjs/ez-list.cjs.entry.js +253 -205
  8. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
  9. package/dist/cjs/ez-popup.cjs.entry.js +4 -1
  10. package/dist/cjs/ez-split-item.cjs.entry.js +3 -2
  11. package/dist/cjs/ez-split-panel.cjs.entry.js +54 -2
  12. package/dist/cjs/ezListHelper-0d3970b4.js +90 -0
  13. package/dist/cjs/ezui.cjs.js +1 -1
  14. package/dist/cjs/filter-column.cjs.entry.js +2 -2
  15. package/dist/cjs/index-a7b0c73d.js +10 -2
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +1 -0
  18. package/dist/collection/components/ez-double-list/doubleListHelper.js +82 -0
  19. package/dist/collection/components/ez-double-list/ez-double-list.css +62 -0
  20. package/dist/collection/components/ez-double-list/ez-double-list.js +440 -0
  21. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +2 -1
  22. package/dist/collection/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.js +6 -2
  23. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +4 -1
  24. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/Search.tpl.js +4 -0
  25. package/dist/collection/components/ez-grid/ez-grid.css +24 -6
  26. package/dist/collection/components/ez-grid/ez-grid.js +25 -5
  27. package/dist/collection/components/ez-grid/subcomponents/filter-column.css +4 -0
  28. package/dist/collection/components/ez-grid/subcomponents/filter-column.js +1 -1
  29. package/dist/collection/components/ez-list/ez-list.js +296 -206
  30. package/dist/collection/components/ez-list/ezListHelper.js +85 -0
  31. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.css +2 -2
  32. package/dist/collection/components/ez-popup/ez-popup.css +1 -0
  33. package/dist/collection/components/ez-popup/ez-popup.js +5 -2
  34. package/dist/collection/components/ez-split-panel/ez-split-panel.css +15 -0
  35. package/dist/collection/components/ez-split-panel/ez-split-panel.js +71 -1
  36. package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.css +13 -2
  37. package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.js +20 -1
  38. package/dist/custom-elements/index.d.ts +6 -0
  39. package/dist/custom-elements/index.js +1481 -338
  40. package/dist/esm/{ez-card-item_3.entry.js → ez-card-item_2.entry.js} +1 -123
  41. package/dist/esm/ez-chart.entry.js +1 -1
  42. package/dist/esm/ez-double-list.entry.js +283 -0
  43. package/dist/esm/ez-filter-input.entry.js +126 -0
  44. package/dist/esm/ez-form-view.entry.js +8 -2
  45. package/dist/esm/ez-grid.entry.js +778 -110
  46. package/dist/esm/ez-list.entry.js +253 -205
  47. package/dist/esm/ez-multi-selection-list.entry.js +1 -1
  48. package/dist/esm/ez-popup.entry.js +4 -1
  49. package/dist/esm/ez-split-item.entry.js +3 -2
  50. package/dist/esm/ez-split-panel.entry.js +54 -2
  51. package/dist/esm/ezListHelper-00fb9b8d.js +87 -0
  52. package/dist/esm/ezui.js +1 -1
  53. package/dist/esm/filter-column.entry.js +2 -2
  54. package/dist/esm/index-baa5e267.js +10 -2
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/ezui/ezui.esm.js +1 -1
  57. package/dist/ezui/p-16e612fc.entry.js +1 -0
  58. package/dist/ezui/p-17eabf46.entry.js +1 -0
  59. package/dist/ezui/p-2475fd6e.entry.js +1 -0
  60. package/dist/ezui/{p-baf80b13.entry.js → p-35d467a8.entry.js} +1 -1
  61. package/dist/ezui/p-5b205c80.entry.js +1 -0
  62. package/dist/ezui/p-65f471bc.entry.js +1 -0
  63. package/dist/ezui/p-66924de6.entry.js +1 -0
  64. package/dist/ezui/p-7e677b7b.entry.js +1 -0
  65. package/dist/ezui/p-80dfc50b.js +1 -0
  66. package/dist/ezui/{p-b36542d8.entry.js → p-a6fe527a.entry.js} +1 -1
  67. package/dist/ezui/p-b46e9f59.entry.js +309 -0
  68. package/dist/ezui/p-e3e3fd7a.entry.js +1 -0
  69. package/dist/ezui/{p-2b46b37b.entry.js → p-fa6732f2.entry.js} +1 -1
  70. package/dist/types/components/ez-double-list/doubleListHelper.d.ts +10 -0
  71. package/dist/types/components/ez-double-list/ez-double-list.d.ts +87 -0
  72. package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +2 -1
  73. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +4 -0
  74. package/dist/types/components/ez-grid/ez-grid.d.ts +5 -1
  75. package/dist/types/components/ez-list/ez-list.d.ts +23 -2
  76. package/dist/types/components/ez-list/ezListHelper.d.ts +20 -0
  77. package/dist/types/components/ez-popup/ez-popup.d.ts +1 -1
  78. package/dist/types/components/ez-split-panel/ez-split-panel.d.ts +7 -0
  79. package/dist/types/components/ez-split-panel/structure/item/ez-split-item.d.ts +4 -0
  80. package/dist/types/components.d.ts +133 -13
  81. package/package.json +1 -1
  82. package/react/components.d.ts +1 -0
  83. package/react/components.js +1 -0
  84. package/react/components.js.map +1 -1
  85. package/dist/ezui/p-4575d511.entry.js +0 -1
  86. package/dist/ezui/p-90bcd2ba.entry.js +0 -1
  87. package/dist/ezui/p-bfad39eb.entry.js +0 -1
  88. package/dist/ezui/p-c806f32f.entry.js +0 -1
  89. package/dist/ezui/p-ca1ce49f.entry.js +0 -309
  90. package/dist/ezui/p-cd2e78f0.entry.js +0 -1
  91. package/dist/ezui/p-e78e0843.entry.js +0 -1
@@ -0,0 +1,287 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-a7b0c73d.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const ezListHelper = require('./ezListHelper-0d3970b4.js');
8
+ const EzScrollDirection = require('./EzScrollDirection-b2c99895.js');
9
+
10
+ function moveItems(selectedItemsList, itemsList, foward) {
11
+ if (!selectedItemsList.length)
12
+ return [...itemsList];
13
+ if (!itemsList.length)
14
+ return [];
15
+ const selectedIndexes = getItemsIndex(selectedItemsList, itemsList);
16
+ const startIndex = getMinValue(selectedIndexes);
17
+ const endIndex = getMaxValue(selectedIndexes);
18
+ return moveRange(startIndex, endIndex, foward, itemsList);
19
+ }
20
+ function getMinValue(numbers) {
21
+ if (numbers.length === 0)
22
+ return 0;
23
+ return numbers.reduce((min, current) => (current < min ? current : min), numbers[0]);
24
+ }
25
+ function getMaxValue(numbers) {
26
+ if (numbers.length === 0)
27
+ return 0;
28
+ return numbers.reduce((max, current) => (current > max ? current : max), numbers[0]);
29
+ }
30
+ function getItemsIndex(selectedItemsList, itemsList) {
31
+ return selectedItemsList.map(selectedId => itemsList.findIndex(original => original.id === selectedId));
32
+ }
33
+ function moveRange(startIndex, endIndex, moveForward, listItem) {
34
+ if (startIndex < 0 || endIndex >= listItem.length || startIndex > endIndex)
35
+ return listItem;
36
+ if (moveForward)
37
+ return moveFoward(endIndex, startIndex, listItem);
38
+ return moveBackward(startIndex, endIndex, listItem);
39
+ }
40
+ function moveBackward(startIndex, endIndex, listItem) {
41
+ if (startIndex === 0)
42
+ return listItem;
43
+ const beforeRange = listItem.slice(0, startIndex - 1);
44
+ const range = listItem.slice(startIndex, endIndex + 1);
45
+ const afterRange = listItem.slice(endIndex + 1);
46
+ const movedItem = listItem[startIndex - 1];
47
+ return [...beforeRange, ...range, movedItem, ...afterRange];
48
+ }
49
+ function moveFoward(endIndex, startIndex, listItem) {
50
+ if (endIndex === listItem.length - 1)
51
+ return listItem;
52
+ const beforeRange = listItem.slice(0, startIndex);
53
+ const range = listItem.slice(startIndex, endIndex + 1);
54
+ const afterRange = listItem.slice(endIndex + 1);
55
+ const movedItem = afterRange.shift();
56
+ return movedItem
57
+ ? [...beforeRange, movedItem, ...range, ...afterRange]
58
+ : listItem;
59
+ }
60
+ function transferAll({ from, to, selectedFrom, selectedTo }) {
61
+ to = [...to.map(i => setItemSelection(i, false)), ...from.map(i => setItemSelection(i, true))];
62
+ selectedFrom = [];
63
+ selectedTo = [...from.map(({ id }) => id)];
64
+ from = [];
65
+ return { from, to, selectedFrom, selectedTo };
66
+ }
67
+ function transferItems({ from, to, selectedFrom, selectedTo }) {
68
+ if (!from.length)
69
+ return { from, to, selectedFrom, selectedTo };
70
+ const itemsToTransfer = getItemsToTransfer(to, selectedFrom, from);
71
+ if (!itemsToTransfer.length)
72
+ return { from, to, selectedFrom, selectedTo };
73
+ to = [
74
+ ...to.map(i => setItemSelection(i, false)),
75
+ ...itemsToTransfer.map(i => setItemSelection(i, true))
76
+ ];
77
+ const selectedFromIds = selectedFrom.map(id => id);
78
+ from = [...from.filter(item => !selectedFromIds.includes(item.id))];
79
+ selectedTo = [...selectedFrom];
80
+ selectedFrom = [];
81
+ return { from, to, selectedFrom, selectedTo };
82
+ }
83
+ function getItemsToTransfer(to, selectedFrom, from) {
84
+ const toListIds = to.map(item => item.id);
85
+ //Não deve transferir um item que já existe na lista destino
86
+ const itemsToTransferId = selectedFrom.filter((id) => !toListIds.includes(id));
87
+ return from.filter(({ id }) => itemsToTransferId.includes(id));
88
+ }
89
+ function setItemSelection(item, select) {
90
+ return Object.assign(Object.assign({}, item), { selected: select });
91
+ }
92
+
93
+ const ezDoubleListCss = ".sc-ez-double-list-h{display:flex;flex-direction:row;gap:8px;align-items:center;font-family:var(--font-pattern, \"Roboto\")}.group.sc-ez-double-list{display:flex;justify-content:space-between;gap:10px;flex-direction:column;border:var(--border--small) var(--color--strokes);border-radius:var(--border--radius-medium);width:350px;height:400px}.group__header.sc-ez-double-list{background:var(--background--body);padding:10px;border-radius:var(--border--radius-medium) var(--border--radius-medium) 0 0}.group__label.sc-ez-double-list{font-weight:var(--text-weight--large);font-size:var(--text--medium);color:var(--title--primary);margin-bottom:10px;display:block}.group__totalizer.sc-ez-double-list{padding:5px 10px;background:var(--background--body);font-weight:var(--text-weight--medium);font-size:var(--text--medium);color:var(--text--secondary);border-radius:0 0 var(--border--radius-medium) var(--border--radius-medium)}.empty-message.sc-ez-double-list{font-weight:var(--text-weight--medium);font-size:var(--text--medium);color:var(--text--secondary);text-align:center;margin:auto}.list__container.sc-ez-double-list{height:100%;min-height:150px;overflow:auto;display:flex}.actions__column.sc-ez-double-list{display:flex;flex-direction:column;gap:4px}";
94
+
95
+ const EzDoubleList = class {
96
+ constructor(hostRef) {
97
+ index.registerInstance(this, hostRef);
98
+ this.ezLeftListChanged = index.createEvent(this, "ezLeftListChanged", 7);
99
+ this.ezRightListChanged = index.createEvent(this, "ezRightListChanged", 7);
100
+ this.LEFT_LIST_ID = 'LEFT-LIST-ID';
101
+ this.RIGHT_LIST_ID = 'RIGHT-LIST-ID';
102
+ this.LEFT_FILTER_ID = 'LEFT-FILTER-ID';
103
+ this.RIGHT_FILTER_ID = 'RIGHT-FILTER-ID';
104
+ this.leftList = [];
105
+ this.leftTitle = undefined;
106
+ this.rightList = [];
107
+ this.entityLabel = 'item';
108
+ this.entityLabelPlural = 'itens';
109
+ this.leftListLabel = 'disponíveis';
110
+ this.rightListLabel = 'selecionados';
111
+ this.rightTitle = undefined;
112
+ this.leftFilteredList = [];
113
+ this.rightFilteredList = [];
114
+ this.selectedLeftList = [];
115
+ this.selectedRightList = [];
116
+ this.isFilteringLeft = false;
117
+ this.isFilteringRight = false;
118
+ }
119
+ async resetSelectedLists() {
120
+ this.selectedLeftList = [];
121
+ this.selectedRightList = [];
122
+ }
123
+ observeLeftList(newValue, oldValue) {
124
+ if (core.ObjectUtils.equals(newValue, oldValue))
125
+ return;
126
+ this.ezLeftListChanged.emit(newValue);
127
+ }
128
+ observeRightList(newValue, oldValue) {
129
+ if (core.ObjectUtils.equals(newValue, oldValue))
130
+ return;
131
+ this.ezRightListChanged.emit(newValue);
132
+ }
133
+ handleFilterChangeLeft(value) {
134
+ this.leftFilteredList = core.ArrayUtils.applyStringFilter(value, this.leftList, true, 'label');
135
+ this.isFilteringLeft = this.leftFilteredList.length !== this.leftList.length;
136
+ }
137
+ handleFilterChangeRight(value) {
138
+ this.rightFilteredList = core.ArrayUtils.applyStringFilter(value, this.rightList, true, 'label');
139
+ this.isFilteringRight = this.rightFilteredList.length !== this.rightList.length;
140
+ }
141
+ async handleChangeLeft({ detail }) {
142
+ this.leftList = [...detail];
143
+ this.selectedLeftList = [...detail.filter(item => item.selected)];
144
+ await this.leftEzListInstance.clearHistory();
145
+ }
146
+ async handleChangeRight({ detail }) {
147
+ this.rightList = [...detail];
148
+ this.selectedRightList = [...detail.filter(item => item.selected)];
149
+ await this.rightEzListInstance.clearHistory();
150
+ }
151
+ enableTransferAllToRight() {
152
+ return this.leftList.length > 0;
153
+ }
154
+ enableTransferAllToLeft() {
155
+ return this.rightList.length > 0;
156
+ }
157
+ enableTransferToRight() {
158
+ return this.selectedLeftList.length > 0;
159
+ }
160
+ enableTransferToLeft() {
161
+ return this.selectedRightList.length > 0;
162
+ }
163
+ enableMoveUp(moveAll) {
164
+ if (this.isFilteringRight)
165
+ return false;
166
+ const selectedIndexes = this.getRightSelectedItemsIndex();
167
+ return this.selectedRightList.length > 0
168
+ && !selectedIndexes.includes(0)
169
+ && (moveAll ? true : ezListHelper.isContinuousSequence(selectedIndexes));
170
+ }
171
+ enableMoveDown(moveAll) {
172
+ if (this.isFilteringRight)
173
+ return false;
174
+ const selectedIndexes = this.getRightSelectedItemsIndex();
175
+ const lastIndex = this.rightList.length - 1;
176
+ return this.selectedRightList.length > 0
177
+ && !selectedIndexes.includes(lastIndex)
178
+ && (moveAll ? true : ezListHelper.isContinuousSequence(selectedIndexes));
179
+ }
180
+ getRightSelectedItemsIndex() {
181
+ return this.selectedRightList.map(id => this.rightList.findIndex(original => original.id === id));
182
+ }
183
+ transferToRight() {
184
+ const { from, to, selectedFrom, selectedTo } = transferItems(this.buildTransferToRightConfig());
185
+ this.leftList = [...from];
186
+ this.rightList = [...to];
187
+ this.selectedLeftList = [...selectedFrom];
188
+ this.selectedRightList = [...selectedTo];
189
+ }
190
+ transferToLeft() {
191
+ const { from, to, selectedFrom, selectedTo } = transferItems(this.buildTransferToLeftConfig());
192
+ this.rightList = [...from];
193
+ this.leftList = [...to];
194
+ this.selectedRightList = [...selectedFrom];
195
+ this.selectedLeftList = [...selectedTo];
196
+ }
197
+ handleTransferAllToRight() {
198
+ const { from, to, selectedFrom, selectedTo } = transferAll(this.buildTransferToRightConfig());
199
+ this.leftList = [...from];
200
+ this.rightList = [...to];
201
+ this.selectedLeftList = [...selectedFrom];
202
+ this.selectedRightList = [...selectedTo];
203
+ }
204
+ handleTransferAllToLeft() {
205
+ const { from, to, selectedFrom, selectedTo } = transferAll(this.buildTransferToLeftConfig());
206
+ this.rightList = [...from];
207
+ this.leftList = [...to];
208
+ this.selectedRightList = [...selectedFrom];
209
+ this.selectedLeftList = [...selectedTo];
210
+ }
211
+ buildTransferToRightConfig() {
212
+ return {
213
+ from: this.leftList,
214
+ to: this.rightList,
215
+ selectedFrom: this.selectedLeftList,
216
+ selectedTo: this.selectedRightList,
217
+ };
218
+ }
219
+ buildTransferToLeftConfig() {
220
+ return {
221
+ from: this.rightList,
222
+ to: this.leftList,
223
+ selectedFrom: this.selectedRightList,
224
+ selectedTo: this.selectedLeftList,
225
+ };
226
+ }
227
+ handleMoveUp() {
228
+ this.rightList = [...moveItems(this.selectedRightList, this.rightList, false)];
229
+ }
230
+ handleMoveDown() {
231
+ this.rightList = [...moveItems(this.selectedRightList, this.rightList, true)];
232
+ }
233
+ handleMoveToTop() {
234
+ const { itemsToKeep, itemsToMove } = this.getItemsToKeepAndToMove();
235
+ this.rightList = [...itemsToMove, ...itemsToKeep];
236
+ }
237
+ handleMoveToBottom() {
238
+ const { itemsToKeep, itemsToMove } = this.getItemsToKeepAndToMove();
239
+ this.rightList = [...itemsToKeep, ...itemsToMove];
240
+ }
241
+ handleSelectLeftItem({ detail }) {
242
+ this.selectedLeftList = [...detail.map(({ id }) => id)];
243
+ }
244
+ handleSelectRightItem({ detail }) {
245
+ this.selectedRightList = [...detail.map(({ id }) => id)];
246
+ }
247
+ getItemsToKeepAndToMove() {
248
+ const itemsToKeep = this.rightList.filter(item => !this.selectedRightList.includes(item.id));
249
+ const itemsToMove = this.rightList.filter(item => this.selectedRightList.includes(item.id));
250
+ return { itemsToKeep, itemsToMove };
251
+ }
252
+ handleTransferToRight() {
253
+ this.transferToRight();
254
+ this.leftFilteredList = [];
255
+ this.leftEzFilterInput.value = '';
256
+ }
257
+ handleTransferToLeft() {
258
+ this.transferToLeft();
259
+ this.rightFilteredList = [];
260
+ this.rightEzFilterInput.value = '';
261
+ }
262
+ buildTotalizer(list) {
263
+ return `Total de ${list.length} ${list.length === 1 ? this.entityLabel : this.entityLabelPlural}`;
264
+ }
265
+ renderLeftList() {
266
+ if (!this.leftList.length) {
267
+ return index.h("span", { class: 'empty-message' }, "Nenhum ", this.entityLabel, " dispon\u00EDvel");
268
+ }
269
+ return (index.h("ez-scroller", { direction: EzScrollDirection.EzScrollDirection.VERTICAL, activeShadow: true }, index.h("ez-list", { ref: (ref) => this.leftEzListInstance = ref, id: this.LEFT_LIST_ID, hoverFeedback: true, dataSource: this.isFilteringLeft ? this.leftFilteredList : this.leftList, ezDraggable: !this.isFilteringLeft, enableMultipleSelection: true, onEzChange: this.handleChangeLeft.bind(this), ezSelectable: true, onEzSelectMultipleItems: this.handleSelectLeftItem.bind(this), onEzDoubleClick: this.handleTransferToRight.bind(this) })));
270
+ }
271
+ renderRightList() {
272
+ if (!this.rightList.length) {
273
+ return index.h("span", { class: 'empty-message' }, "Nenhum ", this.entityLabel, " selecionado");
274
+ }
275
+ return (index.h("ez-scroller", { direction: EzScrollDirection.EzScrollDirection.VERTICAL, activeShadow: true }, index.h("ez-list", { ref: (ref) => this.rightEzListInstance = ref, id: this.RIGHT_LIST_ID, hoverFeedback: true, dataSource: this.isFilteringRight ? this.rightFilteredList : this.rightList, ezDraggable: !this.isFilteringRight, enableMultipleSelection: true, onEzChange: this.handleChangeRight.bind(this), ezSelectable: true, onEzSelectMultipleItems: this.handleSelectRightItem.bind(this), onEzDoubleClick: this.handleTransferToLeft.bind(this) })));
276
+ }
277
+ render() {
278
+ return (index.h(index.Host, null, index.h("div", { class: 'group' }, index.h("div", { class: 'group__header' }, index.h("span", { class: 'group__label' }, this.leftTitle), index.h("ez-filter-input", { ref: (ref) => this.leftEzFilterInput = ref, id: this.LEFT_FILTER_ID, label: `Buscar ${this.entityLabel}`, mode: 'slim', onEzChange: evt => this.handleFilterChangeLeft(evt.detail) })), index.h("div", { class: 'list__container' }, this.renderLeftList()), index.h("div", { class: 'group__totalizer' }, this.buildTotalizer(this.leftList))), index.h("div", { class: 'actions__column' }, index.h("ez-button", { mode: 'icon', iconName: 'dual-chevron-right', enabled: this.enableTransferAllToRight(), title: `Mover todos para ${this.leftListLabel}`, size: 'small', onClick: this.handleTransferAllToRight.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'chevron-right', enabled: this.enableTransferToRight(), title: `Mover para ${this.leftListLabel}`, size: 'small', onClick: this.handleTransferToRight.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'chevron-left', enabled: this.enableTransferToLeft(), title: `Mover para ${this.rightListLabel}`, size: 'small', onClick: this.handleTransferToLeft.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'dual-chevron-left', enabled: this.enableTransferAllToLeft(), title: `Mover todos para ${this.rightListLabel}`, size: 'small', onClick: this.handleTransferAllToLeft.bind(this) })), index.h("div", { class: 'group' }, index.h("div", { class: 'group__header' }, index.h("span", { class: 'group__label' }, this.rightTitle), index.h("ez-filter-input", { ref: (ref) => this.rightEzFilterInput = ref, id: this.RIGHT_FILTER_ID, label: `Buscar ${this.entityLabel}`, mode: 'slim', onEzChange: evt => this.handleFilterChangeRight(evt.detail) })), index.h("div", { class: 'list__container' }, this.renderRightList()), index.h("div", { class: 'group__totalizer' }, this.buildTotalizer(this.rightList))), index.h("div", { class: 'actions__column' }, index.h("ez-button", { mode: 'icon', iconName: 'dual-chevron-up', enabled: this.enableMoveUp(true), title: 'Mover para primeira posi\u00E7\u00E3o', size: 'small', onClick: this.handleMoveToTop.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'chevron-up', enabled: this.enableMoveUp(), title: 'Mover para cima', size: 'small', onClick: this.handleMoveUp.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'chevron-down', enabled: this.enableMoveDown(), title: 'Mover para baixo', size: 'small', onClick: this.handleMoveDown.bind(this) }), index.h("ez-button", { mode: 'icon', iconName: 'dual-chevron-down', enabled: this.enableMoveDown(true), title: 'Mover para \u00FAltima posi\u00E7\u00E3o', size: 'small', onClick: this.handleMoveToBottom.bind(this) }))));
279
+ }
280
+ static get watchers() { return {
281
+ "leftList": ["observeLeftList"],
282
+ "rightList": ["observeRightList"]
283
+ }; }
284
+ };
285
+ EzDoubleList.style = ezDoubleListCss;
286
+
287
+ exports.ez_double_list = EzDoubleList;
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-a7b0c73d.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const CSSVarsUtils = require('./CSSVarsUtils-10c9d5b4.js');
8
+
9
+ const ezFilterInputCss = ":host{display:block;width:100%}";
10
+
11
+ const EzFilterInput = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ this.ezChange = index.createEvent(this, "ezChange", 7);
15
+ this.ezSearching = index.createEvent(this, "ezSearching", 7);
16
+ this.ezFocusIn = index.createEvent(this, "ezFocusIn", 7);
17
+ this._searchingText = "";
18
+ this.handleFocus = () => {
19
+ if (this._searchingText === "") {
20
+ this._textInput.value = "";
21
+ }
22
+ else {
23
+ this._textInput.value = this._searchingText;
24
+ }
25
+ this.ezFocusIn.emit();
26
+ };
27
+ this.label = undefined;
28
+ this.value = undefined;
29
+ this.enabled = true;
30
+ this.errorMessage = undefined;
31
+ this.restrict = undefined;
32
+ this.mode = "regular";
33
+ this.asyncSearch = false;
34
+ this.canShowError = true;
35
+ this.autoFocus = false;
36
+ this.noMargin = false;
37
+ }
38
+ observeLabel() {
39
+ if (this._textInput) {
40
+ this._textInput.label = this.label;
41
+ }
42
+ }
43
+ observeErrorMessage() {
44
+ if (this._textInput) {
45
+ this._textInput.errorMessage = this.errorMessage;
46
+ }
47
+ }
48
+ observeValue(newValue, oldValue) {
49
+ if (this._textInput && newValue != oldValue) {
50
+ this._textInput.value = newValue;
51
+ this.ezChange.emit(newValue);
52
+ }
53
+ }
54
+ /**
55
+ * Aplica o foco no campo.
56
+ */
57
+ async setFocus(options) {
58
+ this._textInput.setFocus(options);
59
+ }
60
+ /**
61
+ * Remove o foco do campo.
62
+ */
63
+ async setBlur() {
64
+ this._textInput.setBlur();
65
+ }
66
+ /**
67
+ * Retorna se o conteúdo é inválido.
68
+ */
69
+ async isInvalid() {
70
+ return typeof this.errorMessage === "string" && this.errorMessage.trim() !== "";
71
+ }
72
+ /**
73
+ * Método responsável por setar um novo valor ao campo.
74
+ */
75
+ async setValue(newValue) {
76
+ if (!this.asyncSearch || this._textInput == undefined) {
77
+ return;
78
+ }
79
+ if (newValue !== this.value) {
80
+ this.value = newValue;
81
+ this._searchingText = "";
82
+ }
83
+ else {
84
+ this._textInput.value = newValue;
85
+ }
86
+ }
87
+ /**
88
+ * Método responsável por resetar o valor do campo para o ultimo valor inputado.
89
+ */
90
+ async endSearch() {
91
+ if (!this.asyncSearch || this._textInput == undefined) {
92
+ return;
93
+ }
94
+ if (this._textInput.value !== this.value) {
95
+ this._textInput.value = this.value;
96
+ }
97
+ }
98
+ handleChange(evt) {
99
+ const newValue = evt.detail;
100
+ this.errorMessage = "";
101
+ if (this.asyncSearch) {
102
+ this._searchingText = newValue;
103
+ this.ezSearching.emit(newValue);
104
+ }
105
+ else if (newValue !== this.value) {
106
+ this.value = newValue;
107
+ }
108
+ }
109
+ componentDidLoad() {
110
+ CSSVarsUtils.CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
111
+ if (this.autoFocus) {
112
+ requestAnimationFrame(() => {
113
+ this.setFocus({ selectText: true });
114
+ });
115
+ }
116
+ }
117
+ render() {
118
+ core.ElementIDUtils.addIDInfoIfNotExists(this._elem, 'input');
119
+ return (index.h("ez-text-input", { "data-element-id": core.ElementIDUtils.getInternalIDInfo("textInput"), ref: elem => this._textInput = elem, label: this.label, onEzChange: evt => this.handleChange(evt), value: this.value, enabled: this.enabled, errorMessage: this.errorMessage, restrict: this.restrict, mode: this.mode, onFocusin: this.handleFocus, canShowError: this.canShowError, noMargin: this.noMargin }, index.h("ez-icon", { slot: "leftIcon", iconName: "search" })));
120
+ }
121
+ get _elem() { return index.getElement(this); }
122
+ static get watchers() { return {
123
+ "label": ["observeLabel"],
124
+ "errorMessage": ["observeErrorMessage"],
125
+ "value": ["observeValue"]
126
+ }; }
127
+ };
128
+ EzFilterInput.style = ezFilterInputCss;
129
+
130
+ exports.ez_filter_input = EzFilterInput;
@@ -36,9 +36,14 @@ const buildDate = ({ name, label, readOnly, canShowError }) => {
36
36
  return (index.h("div", { class: "ez-col ez-col--sd-12" },
37
37
  index.h("ez-date-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name, canShowError: canShowError, noMargin: true })));
38
38
  };
39
- const buildTime = ({ name, label, readOnly, canShowError }) => {
39
+ const buildTime = ({ name, label, readOnly, canShowError, props }) => {
40
+ var _a;
41
+ return (index.h("div", { class: "ez-col ez-col--sd-12" },
42
+ index.h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name, canShowError: canShowError, noMargin: true, "show-seconds": (_a = props === null || props === void 0 ? void 0 : props.showSeconds) !== null && _a !== void 0 ? _a : false })));
43
+ };
44
+ const buildTimeSeconds = ({ name, label, readOnly, canShowError }) => {
40
45
  return (index.h("div", { class: "ez-col ez-col--sd-12" },
41
- index.h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name, canShowError: canShowError, noMargin: true })));
46
+ index.h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name, canShowError: canShowError, noMargin: true, showSeconds: true })));
42
47
  };
43
48
  const buildDateTime = ({ name, label, readOnly, contextName, canShowError }) => {
44
49
  return (index.h("div", { class: "ez-col ez-col--sd-12" },
@@ -94,6 +99,7 @@ uiBuilders.set(core.UserInterface.SWITCH, buildSwitch);
94
99
  uiBuilders.set(core.UserInterface.OPTIONSELECTOR, buildComboBox);
95
100
  uiBuilders.set(core.UserInterface.DATE, buildDate);
96
101
  uiBuilders.set(core.UserInterface.TIME, buildTime);
102
+ uiBuilders.set(core.UserInterface.ELAPSEDTIME, buildTimeSeconds);
97
103
  uiBuilders.set(core.UserInterface.DATETIME, buildDateTime);
98
104
  uiBuilders.set(core.UserInterface.FILE, buildFile);
99
105
  uiBuilders.set(core.UserInterface.DECIMALNUMBER, buildDecimal);