@sankhyalabs/ezui 0.0.0-bugfix-dev-KB-76362.0 → 0.0.0-bugfix-dev-KB-75609.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 (129) hide show
  1. package/dist/cjs/DataBinder-aff1dcc7.js +445 -0
  2. package/dist/cjs/FocusResolver-885f2173.js +35 -0
  3. package/dist/cjs/ez-card-item_3.cjs.entry.js +12 -19
  4. package/dist/cjs/ez-combo-box.cjs.entry.js +46 -10
  5. package/dist/cjs/ez-date-input.cjs.entry.js +8 -2
  6. package/dist/cjs/ez-date-time-input.cjs.entry.js +8 -2
  7. package/dist/cjs/ez-dialog.cjs.entry.js +9 -1
  8. package/dist/cjs/ez-form.cjs.entry.js +3 -324
  9. package/dist/cjs/ez-grid.cjs.entry.js +254 -62
  10. package/dist/cjs/ez-list.cjs.entry.js +151 -100
  11. package/dist/cjs/ez-number-input.cjs.entry.js +7 -0
  12. package/dist/cjs/ez-popover.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-popup.cjs.entry.js +2 -9
  14. package/dist/cjs/ez-search.cjs.entry.js +28 -12
  15. package/dist/cjs/ez-text-area.cjs.entry.js +66 -4
  16. package/dist/cjs/ez-text-input.cjs.entry.js +8 -3
  17. package/dist/cjs/ez-time-input.cjs.entry.js +6 -0
  18. package/dist/cjs/ezui.cjs.js +1 -1
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/collection/collection-manifest.json +1 -1
  21. package/dist/collection/components/ez-card-item/ez-card-item.css +14 -5
  22. package/dist/collection/components/ez-combo-box/ez-combo-box.js +75 -14
  23. package/dist/collection/components/ez-date-input/ez-date-input.js +35 -4
  24. package/dist/collection/components/ez-date-time-input/ez-date-time-input.js +35 -4
  25. package/dist/collection/components/ez-dialog/ez-dialog.js +9 -1
  26. package/dist/collection/components/ez-filter-input/ez-filter-input.css +0 -11
  27. package/dist/collection/components/ez-filter-input/ez-filter-input.js +22 -52
  28. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +52 -14
  29. package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +3 -0
  30. package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +166 -45
  31. package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.js +7 -0
  32. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/ComboBox.tpl.js +1 -0
  33. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/DateInput.tpl.js +1 -0
  34. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/NumberInput.tpl.js +1 -0
  35. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/Search.tpl.js +1 -0
  36. package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/TextInput.tpl.js +4 -1
  37. package/dist/collection/components/ez-grid/ez-grid.js +83 -1
  38. package/dist/collection/components/ez-list/ez-list.css +5 -5
  39. package/dist/collection/components/ez-list/ez-list.js +152 -170
  40. package/dist/collection/components/ez-number-input/ez-number-input.js +25 -0
  41. package/dist/collection/components/ez-popover/ez-popover.css +3 -10
  42. package/dist/collection/components/ez-popup/ez-popup.css +2 -6
  43. package/dist/collection/components/ez-popup/ez-popup.js +3 -10
  44. package/dist/collection/components/ez-search/ez-search.css +1 -1
  45. package/dist/collection/components/ez-search/ez-search.js +55 -14
  46. package/dist/collection/components/ez-text-area/ez-text-area.css +49 -0
  47. package/dist/collection/components/ez-text-area/ez-text-area.js +102 -2
  48. package/dist/collection/components/ez-text-input/ez-text-input.css +27 -53
  49. package/dist/collection/components/ez-text-input/ez-text-input.js +25 -2
  50. package/dist/collection/components/ez-time-input/ez-time-input.js +24 -0
  51. package/dist/collection/utils/FocusResolver.js +31 -0
  52. package/dist/collection/utils/form/DataBinder.js +18 -3
  53. package/dist/custom-elements/index.js +663 -237
  54. package/dist/esm/DataBinder-bd240826.js +441 -0
  55. package/dist/esm/FocusResolver-1ccbf850.js +33 -0
  56. package/dist/esm/ez-card-item_3.entry.js +12 -19
  57. package/dist/esm/ez-combo-box.entry.js +47 -11
  58. package/dist/esm/ez-date-input.entry.js +8 -2
  59. package/dist/esm/ez-date-time-input.entry.js +8 -2
  60. package/dist/esm/ez-dialog.entry.js +9 -1
  61. package/dist/esm/ez-form.entry.js +2 -323
  62. package/dist/esm/ez-grid.entry.js +253 -61
  63. package/dist/esm/ez-list.entry.js +152 -101
  64. package/dist/esm/ez-number-input.entry.js +7 -0
  65. package/dist/esm/ez-popover.entry.js +1 -1
  66. package/dist/esm/ez-popup.entry.js +2 -9
  67. package/dist/esm/ez-search.entry.js +28 -12
  68. package/dist/esm/ez-text-area.entry.js +66 -4
  69. package/dist/esm/ez-text-input.entry.js +8 -3
  70. package/dist/esm/ez-time-input.entry.js +6 -0
  71. package/dist/esm/ezui.js +1 -1
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/ezui/ezui.esm.js +1 -1
  74. package/dist/ezui/p-03a2c7d1.entry.js +1 -0
  75. package/dist/ezui/p-0a75bb05.entry.js +1 -0
  76. package/dist/ezui/p-0db68715.entry.js +1 -0
  77. package/dist/ezui/p-19098a3f.entry.js +1 -0
  78. package/dist/ezui/p-1f830a2f.entry.js +1 -0
  79. package/dist/ezui/p-3dd919b7.entry.js +1 -0
  80. package/dist/ezui/p-7bfae0fc.entry.js +1 -0
  81. package/dist/ezui/p-81f06699.js +1 -0
  82. package/dist/ezui/p-97af4b13.entry.js +1 -0
  83. package/dist/ezui/p-9ceefe4d.entry.js +1 -0
  84. package/dist/ezui/p-a80b1287.entry.js +1 -0
  85. package/dist/ezui/{p-c3c3d640.entry.js → p-b0a5c2cd.entry.js} +2 -2
  86. package/dist/ezui/p-b54e17d2.entry.js +1 -0
  87. package/dist/ezui/p-bfad39eb.entry.js +1 -0
  88. package/dist/ezui/p-d0ca26fe.entry.js +1 -0
  89. package/dist/ezui/p-dc628ed3.js +1 -0
  90. package/dist/ezui/p-ffd246f5.entry.js +1 -0
  91. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +7 -1
  92. package/dist/types/components/ez-date-input/ez-date-input.d.ts +6 -1
  93. package/dist/types/components/ez-date-time-input/ez-date-time-input.d.ts +6 -1
  94. package/dist/types/components/ez-dialog/ez-dialog.d.ts +2 -0
  95. package/dist/types/components/ez-filter-input/ez-filter-input.d.ts +4 -11
  96. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +10 -0
  97. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +4 -0
  98. package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +18 -6
  99. package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.d.ts +2 -0
  100. package/dist/types/components/ez-grid/controller/ag-grid/editor/IUICellEditor.d.ts +1 -0
  101. package/dist/types/components/ez-grid/ez-grid.d.ts +10 -0
  102. package/dist/types/components/ez-list/ez-list.d.ts +3 -26
  103. package/dist/types/components/ez-number-input/ez-number-input.d.ts +4 -0
  104. package/dist/types/components/ez-popup/ez-popup.d.ts +2 -2
  105. package/dist/types/components/ez-search/ez-search.d.ts +6 -1
  106. package/dist/types/components/ez-text-area/ez-text-area.d.ts +17 -0
  107. package/dist/types/components/ez-text-input/ez-text-input.d.ts +4 -0
  108. package/dist/types/components/ez-time-input/ez-time-input.d.ts +4 -0
  109. package/dist/types/components.d.ts +101 -44
  110. package/dist/types/utils/FocusResolver.d.ts +5 -0
  111. package/dist/types/utils/form/DataBinder.d.ts +3 -0
  112. package/package.json +1 -1
  113. package/dist/cjs/RecordValidationProcessor-10846595.js +0 -108
  114. package/dist/esm/RecordValidationProcessor-9c6cc267.js +0 -105
  115. package/dist/ezui/p-188f1c4c.entry.js +0 -1
  116. package/dist/ezui/p-25ac5376.entry.js +0 -1
  117. package/dist/ezui/p-49456b34.entry.js +0 -1
  118. package/dist/ezui/p-5a90d7d1.entry.js +0 -1
  119. package/dist/ezui/p-62732269.entry.js +0 -1
  120. package/dist/ezui/p-86b6aa01.entry.js +0 -1
  121. package/dist/ezui/p-b3b94f72.entry.js +0 -1
  122. package/dist/ezui/p-b95632e8.entry.js +0 -1
  123. package/dist/ezui/p-bcd47eda.entry.js +0 -1
  124. package/dist/ezui/p-d2c06f38.entry.js +0 -1
  125. package/dist/ezui/p-dc4ada32.entry.js +0 -1
  126. package/dist/ezui/p-e85c48d7.entry.js +0 -1
  127. package/dist/ezui/p-f299c608.entry.js +0 -1
  128. package/dist/ezui/p-f42855b9.js +0 -1
  129. package/dist/ezui/p-f80ac647.entry.js +0 -1
@@ -39,6 +39,7 @@ export class EzGrid {
39
39
  this.paginationCounterMode = 'show';
40
40
  this.enableGridInsert = false;
41
41
  this.enableContinuousInsert = true;
42
+ this.enableLockManger = true;
42
43
  }
43
44
  /**
44
45
  * Aplica a definição de colunas.
@@ -163,6 +164,18 @@ export class EzGrid {
163
164
  async setFocus() {
164
165
  this._gridController.setFocus();
165
166
  }
167
+ /**
168
+ * Para a edição da grade.
169
+ */
170
+ async stopEdit() {
171
+ this._gridController.stopEdit();
172
+ }
173
+ async checkStopEditOutsideClick(event) {
174
+ var _a;
175
+ if ((_a = this._container) === null || _a === void 0 ? void 0 : _a.contains(event.target))
176
+ return;
177
+ this._gridController.stopEdit();
178
+ }
166
179
  observeConfig(config) {
167
180
  this._gridController.setColumnsState(config === null || config === void 0 ? void 0 : config.columns);
168
181
  }
@@ -188,6 +201,9 @@ export class EzGrid {
188
201
  this.setSelection(this.dataUnit.getSelectionInfo());
189
202
  }
190
203
  }
204
+ async handleClick(event) {
205
+ this.checkStopEditOutsideClick(event);
206
+ }
191
207
  setSelection(selectionInfo) {
192
208
  var _a;
193
209
  this._selectionCount = (_a = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.length) !== null && _a !== void 0 ? _a : 0;
@@ -384,7 +400,8 @@ export class EzGrid {
384
400
  if (this.dataUnit) {
385
401
  this.setSelection(this.dataUnit.getSelectionInfo());
386
402
  }
387
- }
403
+ },
404
+ enableLockManger: this.enableLockManger
388
405
  });
389
406
  if (this.config) {
390
407
  this.observeConfig(this.config);
@@ -778,6 +795,24 @@ export class EzGrid {
778
795
  "attribute": "enable-continuous-insert",
779
796
  "reflect": false,
780
797
  "defaultValue": "true"
798
+ },
799
+ "enableLockManger": {
800
+ "type": "boolean",
801
+ "mutable": false,
802
+ "complexType": {
803
+ "original": "boolean",
804
+ "resolved": "boolean",
805
+ "references": {}
806
+ },
807
+ "required": false,
808
+ "optional": true,
809
+ "docs": {
810
+ "tags": [],
811
+ "text": "Ativa inser\u00E7\u00E3o de registros no modo grade."
812
+ },
813
+ "attribute": "enable-lock-manger",
814
+ "reflect": false,
815
+ "defaultValue": "true"
781
816
  }
782
817
  };
783
818
  }
@@ -1282,6 +1317,47 @@ export class EzGrid {
1282
1317
  "text": "Atribui o foco para a grade.",
1283
1318
  "tags": []
1284
1319
  }
1320
+ },
1321
+ "stopEdit": {
1322
+ "complexType": {
1323
+ "signature": "() => Promise<void>",
1324
+ "parameters": [],
1325
+ "references": {
1326
+ "Promise": {
1327
+ "location": "global"
1328
+ }
1329
+ },
1330
+ "return": "Promise<void>"
1331
+ },
1332
+ "docs": {
1333
+ "text": "Para a edi\u00E7\u00E3o da grade.",
1334
+ "tags": []
1335
+ }
1336
+ },
1337
+ "checkStopEditOutsideClick": {
1338
+ "complexType": {
1339
+ "signature": "(event: MouseEvent) => Promise<void>",
1340
+ "parameters": [{
1341
+ "tags": [],
1342
+ "text": ""
1343
+ }],
1344
+ "references": {
1345
+ "Promise": {
1346
+ "location": "global"
1347
+ },
1348
+ "MouseEvent": {
1349
+ "location": "global"
1350
+ },
1351
+ "Node": {
1352
+ "location": "global"
1353
+ }
1354
+ },
1355
+ "return": "Promise<void>"
1356
+ },
1357
+ "docs": {
1358
+ "text": "",
1359
+ "tags": []
1360
+ }
1285
1361
  }
1286
1362
  };
1287
1363
  }
@@ -1305,6 +1381,12 @@ export class EzGrid {
1305
1381
  "target": undefined,
1306
1382
  "capture": false,
1307
1383
  "passive": false
1384
+ }, {
1385
+ "name": "click",
1386
+ "method": "handleClick",
1387
+ "target": undefined,
1388
+ "capture": true,
1389
+ "passive": false
1308
1390
  }];
1309
1391
  }
1310
1392
  }
@@ -21,10 +21,10 @@
21
21
  --ez-list__item--color: var(--title--primary, #2b3a54);
22
22
 
23
23
  /* @doc Define o estilo borda inferior do item da lista. */
24
- --ez-list__item--border-bottom: none;
24
+ --ez-list__item--border-bottom;
25
25
 
26
26
  /* @doc Define a cor da borda inferior do item da lista. */
27
- --ez-list__item--border-bottom-color: none;
27
+ --ez-list__item--border-bottom-color;
28
28
 
29
29
  /* @doc Define o estilo do texto do item da lista. */
30
30
  --ez-list__item--font-family: var(--font-pattern, "Roboto");
@@ -110,7 +110,7 @@ p {
110
110
  display: grid;
111
111
  grid-template-columns: minmax(0px, auto) minmax(0px, auto);
112
112
  place-items: center;
113
- border-top: 1px solid #fff;
113
+ border-top: 1px dashed #fff;
114
114
  justify-content: space-between;
115
115
 
116
116
  /*public*/
@@ -177,7 +177,7 @@ p {
177
177
 
178
178
  .draggable-list li > div {
179
179
  /*public*/
180
- padding: var(--space--2xs, 8px) var(--space--3xs, 4px);
180
+ padding: var(--space--3xs, 4px) var(--space--3xs, 4px);
181
181
  margin: var(--ez-list__item--margin);
182
182
  }
183
183
 
@@ -347,7 +347,7 @@ p {
347
347
  max-height: 100%;
348
348
  outline: none;
349
349
  scrollbar-width: thin;
350
- overflow: auto;
350
+
351
351
  /*public*/
352
352
  scrollbar-color: var(--ez-list__scrollbar--color-clicked) var(--ez-list__scrollbar--color-background);
353
353
  }
@@ -1,11 +1,10 @@
1
- import { ElementIDUtils, KeyboardManager, StringUtils } from '@sankhyalabs/core';
1
+ import { ElementIDUtils, StringUtils } from '@sankhyalabs/core';
2
2
  import { Fragment, Host, h } from '@stencil/core';
3
3
  export class EzList {
4
4
  constructor() {
5
5
  this._listItemsHistory = [];
6
6
  this._listItems = [];
7
7
  this._listGroupItems = [];
8
- this._selectedItem = undefined;
9
8
  this.dataSource = [];
10
9
  this.listMode = 'regular';
11
10
  this.useGroups = false;
@@ -14,19 +13,6 @@ export class EzList {
14
13
  this.itemSlotBuilder = undefined;
15
14
  this.itemLeftSlotBuilder = undefined;
16
15
  this.hoverFeedback = false;
17
- this.disableShortcuts = false;
18
- }
19
- /**
20
- * Seleciona o próximo item.
21
- */
22
- async selectNextItem() {
23
- this.nextOption();
24
- }
25
- /**
26
- * Seleciona o item anterior.
27
- */
28
- async selectPreviousItem() {
29
- this.previousOption();
30
16
  }
31
17
  /**
32
18
  * Limpa o histórico da lista.
@@ -50,8 +36,23 @@ export class EzList {
50
36
  */
51
37
  async setSelection(selectedItem, scrollToOption) {
52
38
  if (selectedItem && this.ezSelectable) {
53
- this._selectedItem = Object.assign({}, selectedItem);
54
39
  this.ezSelectItem.emit(selectedItem);
40
+ if (this.useGroups) {
41
+ let newList = [...this._listGroupItems];
42
+ newList.forEach(groupItem => {
43
+ groupItem.items.forEach(item => {
44
+ item.selected = item.id === selectedItem.id;
45
+ });
46
+ });
47
+ this._listGroupItems = newList;
48
+ }
49
+ else {
50
+ let newList = [...this._listItems];
51
+ newList.forEach(item => {
52
+ item.selected = item.id === selectedItem.id;
53
+ });
54
+ this._listItems = newList;
55
+ }
55
56
  if (scrollToOption) {
56
57
  let liElem = this.useGroups
57
58
  ? this._groupContainer.querySelector('li#item_' + selectedItem.id)
@@ -69,7 +70,21 @@ export class EzList {
69
70
  * Obtém o item selecionado.
70
71
  */
71
72
  async getSelection() {
72
- return this._selectedItem;
73
+ let selectedItem;
74
+ if (this.useGroups) {
75
+ this._listGroupItems.every(group => {
76
+ let item = group.items.find(item => item.selected == true);
77
+ if (item) {
78
+ selectedItem = item;
79
+ return false;
80
+ }
81
+ return true;
82
+ });
83
+ }
84
+ else {
85
+ selectedItem = this._listItems.find(item => item.selected == true);
86
+ }
87
+ return selectedItem;
73
88
  }
74
89
  /**
75
90
  * Obtém a lista de items ou grupos.
@@ -84,7 +99,22 @@ export class EzList {
84
99
  * Limpa a seleção atual
85
100
  */
86
101
  async removeSelection() {
87
- this._selectedItem = undefined;
102
+ if (this.useGroups) {
103
+ let newList = [...this._listGroupItems];
104
+ newList.forEach(groupItem => {
105
+ groupItem.items.forEach(item => {
106
+ item.selected = false;
107
+ });
108
+ });
109
+ this._listGroupItems = newList;
110
+ }
111
+ else {
112
+ let newList = [...this._listItems];
113
+ newList.forEach(item => {
114
+ item.selected = false;
115
+ });
116
+ this._listItems = newList;
117
+ }
88
118
  }
89
119
  applyUUID(item) {
90
120
  if (!item.id) {
@@ -144,10 +174,6 @@ export class EzList {
144
174
  }
145
175
  componentDidLoad() {
146
176
  ElementIDUtils.addIDInfo(this._element);
147
- this.bindKeyboardManager();
148
- }
149
- disconnectCallback() {
150
- this.unbindKeyboardManager();
151
177
  }
152
178
  onDrop(ev, dragEndItem) {
153
179
  this.removeOverClass();
@@ -340,58 +366,92 @@ export class EzList {
340
366
  if (this.useGroups) {
341
367
  this.setSelection(this._listGroupItems[0].items[0]);
342
368
  }
343
- else {
369
+ {
344
370
  this.setSelection(this._listItems[0]);
345
371
  }
346
372
  }
347
- getFlatedItems() {
373
+ nextOption(selectedItem) {
374
+ let nextItem = undefined;
348
375
  if (this.useGroups) {
349
- const itemsGroups = this._listGroupItems.map(({ items }) => items).flat();
350
- return itemsGroups;
351
- }
352
- return this._listItems;
353
- }
354
- getSelectedIndex(items) {
355
- const itemIndex = items.findIndex(item => { var _a; return item.id === ((_a = this._selectedItem) === null || _a === void 0 ? void 0 : _a.id); });
356
- return itemIndex;
357
- }
358
- nextOption() {
359
- if (!this._selectedItem) {
360
- this.selectFirstItem();
361
- return;
376
+ this._listGroupItems.every((group, groupIndex, listGroupItems) => {
377
+ let item = undefined;
378
+ let itemIndex = group.items.findIndex(item => item.id == selectedItem.id);
379
+ if (itemIndex != undefined && itemIndex != -1) {
380
+ if (itemIndex === group.items.length - 1) {
381
+ if (groupIndex + 1 <= listGroupItems.length - 1) {
382
+ item = { label: listGroupItems[groupIndex + 1].items[0].label };
383
+ }
384
+ }
385
+ else {
386
+ item = { label: group.items[itemIndex + 1].label };
387
+ }
388
+ }
389
+ if (item != undefined) {
390
+ nextItem = item;
391
+ return false;
392
+ }
393
+ return true;
394
+ });
362
395
  }
363
- const items = this.getFlatedItems();
364
- const itemIndex = this.getSelectedIndex(items);
365
- if (itemIndex < (items.length - 1)) {
366
- const nextItem = items[itemIndex + 1];
367
- this.setSelection(nextItem, true);
396
+ else {
397
+ let itemIndex = this._listItems.findIndex(item => item.id === selectedItem.id);
398
+ if (itemIndex >= 0 && itemIndex < this._listItems.length) {
399
+ nextItem = this._listItems[itemIndex + 1];
400
+ }
368
401
  }
402
+ this.setSelection(nextItem, true);
369
403
  }
370
- previousOption() {
371
- const items = this.getFlatedItems();
372
- const itemIndex = this.getSelectedIndex(items);
373
- if (itemIndex > 0) {
374
- const previousItem = items[itemIndex - 1];
375
- this.setSelection(previousItem, true);
404
+ previousOption(selectedItem) {
405
+ let previousItem = undefined;
406
+ if (this.useGroups) {
407
+ this._listGroupItems.every((group, groupIndex, listGroupItems) => {
408
+ let item = undefined;
409
+ let itemIndex = group.items.findIndex(item => item.id === selectedItem.id);
410
+ if (itemIndex != undefined && itemIndex != -1) {
411
+ if (itemIndex === 0) {
412
+ if (groupIndex - 1 >= 0) {
413
+ item = { label: listGroupItems[groupIndex - 1].items[listGroupItems[groupIndex - 1].items.length - 1].label };
414
+ }
415
+ }
416
+ else {
417
+ item = { label: group.items[itemIndex - 1].label };
418
+ }
419
+ }
420
+ if (item != undefined) {
421
+ previousItem = item;
422
+ return false;
423
+ }
424
+ return true;
425
+ });
376
426
  }
377
- }
378
- bindKeyboardManager() {
379
- this._keyboardManager = new KeyboardManager({ propagate: false, element: this._element });
380
- if (this.disableShortcuts) {
381
- return;
427
+ else {
428
+ let itemIndex = this._listItems.findIndex(item => item.id === selectedItem.id);
429
+ if (itemIndex > 0 && itemIndex < this._listItems.length) {
430
+ previousItem = this._listItems[itemIndex - 1];
431
+ }
382
432
  }
383
- this._keyboardManager
384
- .bind("ArrowDown", () => this.nextOption())
385
- .bind("ArrowUp", () => this.previousOption())
386
- .bind("shift+Tab", () => this.previousOption())
387
- .bind("Tab", () => this.nextOption());
433
+ this.setSelection(previousItem, true);
388
434
  }
389
- unbindKeyboardManager() {
390
- this._keyboardManager
391
- .unbind("ArrowDown")
392
- .unbind("ArrowUp")
393
- .unbind("shift+Tab")
394
- .unbind("Tab");
435
+ keyDownHandler(event) {
436
+ if (!event.ctrlKey) {
437
+ event.preventDefault();
438
+ }
439
+ this.getSelection().then(selectedItem => {
440
+ if (selectedItem) {
441
+ switch (event.key) {
442
+ case 'ArrowDown':
443
+ this.nextOption(selectedItem);
444
+ break;
445
+ case 'ArrowUp':
446
+ this.previousOption(selectedItem);
447
+ break;
448
+ }
449
+ }
450
+ else {
451
+ this.selectFirstItem();
452
+ }
453
+ });
454
+ event.stopPropagation();
395
455
  }
396
456
  getDivGroupId(groupName) {
397
457
  if (groupName) {
@@ -456,46 +516,38 @@ export class EzList {
456
516
  doubleClickItem(item) {
457
517
  this.ezDoubleClick.emit(item);
458
518
  }
459
- onClickItem(item) {
460
- this.setSelection(item);
461
- this.ezClickItem.emit(item);
462
- }
463
519
  render() {
464
- return (h(Host, { ref: el => (this._element = el) }, this.useGroups ? (h("div", { class: "group-container", ref: el => (this._groupContainer = el), tabIndex: 0 }, this._listGroupItems.map(group => {
465
- return (h("div", { id: this.getDivGroupId(group.group), class: "group", key: group.group + group.items.length, onDrop: () => this.onDropGroup(group) }, h("label", { draggable: false, class: "group-name", title: group.group }, group.group), h("section", { class: "section-container", onDragOver: ev => ev.preventDefault() }, h("div", { class: "group-items-container" }, h("div", { class: "draggable-list" }, group.items.map((item, index) => {
466
- var _a;
467
- return (h("li", Object.assign({ id: 'item_' + item.id, class: {
468
- 'selectable-container': this.ezSelectable,
469
- 'hover-feedback': this.hoverFeedback,
470
- }, key: 'item_' + item.id }, {
471
- [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezListItem__${StringUtils.replaceAccentuatedChars(item.label)}`),
472
- }), h("div", { class: 'draggable' + (((_a = this._selectedItem) === null || _a === void 0 ? void 0 : _a.id) === item.id ? ' selected-item ' : '') + (this.ezSelectable == true ? ' selectable ' : ''), onDblClick: () => {
473
- this.doubleClickItem(item);
474
- }, onClick: () => {
475
- this.onClickItem(item);
476
- }, onDragLeave: () => {
477
- group.sort ? undefined : this.removeOverClass();
478
- }, onDragEnd: () => this.onDragEnd(), onDragStart: () => this.onDragStart(item, group, index), onDragOver: event => {
479
- group.sort ? undefined : this.onDragOverItem(event);
480
- }, onDrop: event => this.onDrop(event, { groupName: group.group, item: item, index: index }), draggable: this.ezDraggable }, h("div", { class: "item-content" }, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, this.listMode === 'regular' ? (h(Fragment, null, !!this.itemLeftSlotBuilder && this.getContainerItemBuilder('left', item, group), h("p", { title: item.label, class: "person-name text--ellipsis" }, item.label))) : (h("ez-check", { label: item.label, value: item.check, onEzChange: evt => this.ezCheckChange.emit({ id: item.id, label: item.label, check: evt.detail }) }))), !!this.itemSlotBuilder && this.getContainerItemBuilder('right', item, group, 'slot-item'))));
481
- })), h("div", { class: "last-droppable-space", onDragLeave: () => this.removeOverClass(), onDragOver: event => {
482
- this.onDragOverLastIndex(event);
483
- }, onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDropLastIndex(event, group) })), group.sort ? (h("div", { id: this.getGroupOverlayId(group.group), class: "group-overlay" }, "Mover para ", group.group)) : undefined)));
484
- }))) : (h("div", { class: "items-container", ref: el => (this._itemContainer = el), tabIndex: 0 }, h("ul", { class: "draggable-list" }, this._listItems.map((item, index) => {
485
- var _a, _b;
486
- return (h("li", Object.assign({ id: 'item_' + item.id, class: {
520
+ return (h(Host, { ref: el => (this._element = el) }, this.useGroups ? (h("div", { class: "group-container", ref: el => (this._groupContainer = el), tabIndex: 0, onKeyDown: event => {
521
+ this.keyDownHandler(event);
522
+ } }, this._listGroupItems.map(group => {
523
+ return (h("div", { id: this.getDivGroupId(group.group), class: "group", key: group.group + group.items.length, onDrop: () => this.onDropGroup(group) }, h("label", { draggable: false, class: "group-name", title: group.group }, group.group), h("section", { class: "section-container", onDragOver: ev => ev.preventDefault() }, h("div", { class: "group-items-container" }, h("div", { class: "draggable-list" }, group.items.map((item, index) => (h("li", Object.assign({ id: 'item_' + item.id, class: {
487
524
  'selectable-container': this.ezSelectable,
488
- 'selected-item': ((_a = this._selectedItem) === null || _a === void 0 ? void 0 : _a.id) === item.id,
489
- 'hover-feedback': this.hoverFeedback && ((_b = this._selectedItem) === null || _b === void 0 ? void 0 : _b.id) !== item.id,
490
- }, key: 'item_' + item.id }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezListItem__${StringUtils.replaceAccentuatedChars(item.label)}`) }), h("div", { class: 'draggable' + (this.ezSelectable == true ? ' selectable ' : ''), onDragStart: () => this.onDragStart({ item: item, index: index }), onDblClick: () => {
525
+ 'hover-feedback': this.hoverFeedback,
526
+ }, key: 'item_' + item.id }, {
527
+ [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezListItem__${StringUtils.replaceAccentuatedChars(item.label)}`),
528
+ }), h("div", { class: 'draggable' + (item.selected == true ? ' selected-item ' : '') + (this.ezSelectable == true ? ' selectable ' : ''), onDblClick: () => {
491
529
  this.doubleClickItem(item);
492
530
  }, onClick: () => {
493
- this.onClickItem(item);
494
- }, onDragLeave: () => this.removeOverClass(), onDragOver: event => this.onDragOverItem(event), onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDrop(event, { item: item, index: index }), draggable: this.ezDraggable }, h("div", { class: "item-content" }, this.listMode === 'regular' ? (h(Fragment, null, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, !!this.itemLeftSlotBuilder && this.getContainerItemBuilder('left', item), h("p", { title: item.label, class: "person-name text--ellipsis" }, item.label))) : (h(Fragment, null, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, h("ez-check", { label: item.label, value: item.check, onEzChange: evt => this.ezCheckChange.emit({ id: item.id, label: item.label, check: evt.detail }) })))), !!this.itemSlotBuilder && this.getContainerItemBuilder('right', item))));
495
- }), this.ezDraggable &&
496
- h("div", { class: "last-droppable-space", onDragLeave: () => this.removeOverClass(), onDragOver: event => {
531
+ this.setSelection(item);
532
+ }, onDragLeave: () => {
533
+ group.sort ? undefined : this.removeOverClass();
534
+ }, onDragEnd: () => this.onDragEnd(), onDragStart: () => this.onDragStart(item, group, index), onDragOver: event => {
535
+ group.sort ? undefined : this.onDragOverItem(event);
536
+ }, onDrop: event => this.onDrop(event, { groupName: group.group, item: item, index: index }), draggable: this.ezDraggable }, h("div", { class: "item-content" }, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, this.listMode === 'regular' ? (h(Fragment, null, !!this.itemLeftSlotBuilder && this.getContainerItemBuilder('left', item, group), h("p", { title: item.label, class: "person-name text--ellipsis" }, item.label))) : (h("ez-check", { label: item.label, value: item.check, onEzChange: evt => this.ezCheckChange.emit({ id: item.id, label: item.label, check: evt.detail }) }))), !!this.itemSlotBuilder && this.getContainerItemBuilder('right', item, group, 'slot-item')))))), h("div", { class: "last-droppable-space", onDragLeave: () => this.removeOverClass(), onDragOver: event => {
497
537
  this.onDragOverLastIndex(event);
498
- }, onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDropLastIndex(event) }))))));
538
+ }, onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDropLastIndex(event, group) })), group.sort ? (h("div", { id: this.getGroupOverlayId(group.group), class: "group-overlay" }, "Mover para ", group.group)) : undefined)));
539
+ }))) : (h("div", { class: "items-container", ref: el => (this._itemContainer = el), tabIndex: 0, onKeyDown: event => {
540
+ this.keyDownHandler(event);
541
+ } }, h("div", { class: "draggable-list" }, this._listItems.map((item, index) => (h("li", Object.assign({ id: 'item_' + item.id, class: {
542
+ 'selectable-container': this.ezSelectable,
543
+ 'hover-feedback': this.hoverFeedback,
544
+ }, key: 'item_' + item.id }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezListItem__${StringUtils.replaceAccentuatedChars(item.label)}`) }), h("div", { class: 'draggable' + (item.selected == true ? ' selected-item ' : '') + (this.ezSelectable == true ? ' selectable ' : ''), onDragStart: () => this.onDragStart({ item: item, index: index }), onDblClick: () => {
545
+ this.doubleClickItem(item);
546
+ }, onClick: () => {
547
+ this.setSelection(item);
548
+ }, onDragLeave: () => this.removeOverClass(), onDragOver: event => this.onDragOverItem(event), onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDrop(event, { item: item, index: index }), draggable: this.ezDraggable }, h("div", { class: "item-content" }, this.listMode === 'regular' ? (h(Fragment, null, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, !!this.itemLeftSlotBuilder && this.getContainerItemBuilder('left', item), h("p", { title: item.label, class: "person-name text--ellipsis" }, item.label))) : (h(Fragment, null, this.ezDraggable ? h("span", { class: "draggable-icon" }) : undefined, h("ez-check", { label: item.label, value: item.check, onEzChange: evt => this.ezCheckChange.emit({ id: item.id, label: item.label, check: evt.detail }) })))), !!this.itemSlotBuilder && this.getContainerItemBuilder('right', item))))), h("div", { class: "last-droppable-space", onDragLeave: () => this.removeOverClass(), onDragOver: event => {
549
+ this.onDragOverLastIndex(event);
550
+ }, onDragEnd: () => this.onDragEnd(), onDrop: event => this.onDropLastIndex(event) }))))));
499
551
  }
500
552
  static get is() { return "ez-list"; }
501
553
  static get encapsulation() { return "scoped"; }
@@ -668,32 +720,13 @@ export class EzList {
668
720
  "attribute": "hover-feedback",
669
721
  "reflect": false,
670
722
  "defaultValue": "false"
671
- },
672
- "disableShortcuts": {
673
- "type": "boolean",
674
- "mutable": false,
675
- "complexType": {
676
- "original": "boolean",
677
- "resolved": "boolean",
678
- "references": {}
679
- },
680
- "required": false,
681
- "optional": false,
682
- "docs": {
683
- "tags": [],
684
- "text": "Desabilita os atalhos de teclado."
685
- },
686
- "attribute": "disable-shortcuts",
687
- "reflect": false,
688
- "defaultValue": "false"
689
723
  }
690
724
  };
691
725
  }
692
726
  static get states() {
693
727
  return {
694
728
  "_listItems": {},
695
- "_listGroupItems": {},
696
- "_selectedItem": {}
729
+ "_listGroupItems": {}
697
730
  };
698
731
  }
699
732
  static get events() {
@@ -741,25 +774,6 @@ export class EzList {
741
774
  }
742
775
  }
743
776
  }
744
- }, {
745
- "method": "ezClickItem",
746
- "name": "ezClickItem",
747
- "bubbles": true,
748
- "cancelable": true,
749
- "composed": true,
750
- "docs": {
751
- "tags": [],
752
- "text": "Emitido sempre que um item da lista for clicado."
753
- },
754
- "complexType": {
755
- "original": "ListItem",
756
- "resolved": "ListItem",
757
- "references": {
758
- "ListItem": {
759
- "location": "local"
760
- }
761
- }
762
- }
763
777
  }, {
764
778
  "method": "ezCheckChange",
765
779
  "name": "ezCheckChange",
@@ -802,38 +816,6 @@ export class EzList {
802
816
  }
803
817
  static get methods() {
804
818
  return {
805
- "selectNextItem": {
806
- "complexType": {
807
- "signature": "() => Promise<void>",
808
- "parameters": [],
809
- "references": {
810
- "Promise": {
811
- "location": "global"
812
- }
813
- },
814
- "return": "Promise<void>"
815
- },
816
- "docs": {
817
- "text": "Seleciona o pr\u00F3ximo item.",
818
- "tags": []
819
- }
820
- },
821
- "selectPreviousItem": {
822
- "complexType": {
823
- "signature": "() => Promise<void>",
824
- "parameters": [],
825
- "references": {
826
- "Promise": {
827
- "location": "global"
828
- }
829
- },
830
- "return": "Promise<void>"
831
- },
832
- "docs": {
833
- "text": "Seleciona o item anterior.",
834
- "tags": []
835
- }
836
- },
837
819
  "clearHistory": {
838
820
  "complexType": {
839
821
  "signature": "() => Promise<void>",
@@ -16,6 +16,7 @@ export class EzNumberInput {
16
16
  this.precision = undefined;
17
17
  this.prettyPrecision = undefined;
18
18
  this.mode = "regular";
19
+ this.autoFocus = false;
19
20
  }
20
21
  /**
21
22
  * Aplica o foco no campo.
@@ -156,11 +157,17 @@ export class EzNumberInput {
156
157
  const textValue = this.getTextValue(this.value) || '';
157
158
  if ((this._value || '') !== textValue) {
158
159
  this._value = textValue;
160
+ this._textInput.value = this._value;
159
161
  }
160
162
  }
161
163
  componentDidLoad() {
162
164
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
163
165
  this.setInputValue();
166
+ if (this.autoFocus) {
167
+ requestAnimationFrame(() => {
168
+ this.setFocus({ selectText: true });
169
+ });
170
+ }
164
171
  }
165
172
  render() {
166
173
  ElementIDUtils.addIDInfoIfNotExists(this._elem, 'input');
@@ -340,6 +347,24 @@ export class EzNumberInput {
340
347
  "attribute": "mode",
341
348
  "reflect": true,
342
349
  "defaultValue": "\"regular\""
350
+ },
351
+ "autoFocus": {
352
+ "type": "boolean",
353
+ "mutable": false,
354
+ "complexType": {
355
+ "original": "boolean",
356
+ "resolved": "boolean",
357
+ "references": {}
358
+ },
359
+ "required": false,
360
+ "optional": false,
361
+ "docs": {
362
+ "tags": [],
363
+ "text": "Se true o campo de texto receber\u00E1 o foco ao ser renderizado."
364
+ },
365
+ "attribute": "auto-focus",
366
+ "reflect": false,
367
+ "defaultValue": "false"
343
368
  }
344
369
  };
345
370
  }
@@ -9,12 +9,6 @@
9
9
  --ez-popover__box--background-color: var(--background--xlight, #fff);
10
10
  /*@doc Define a camada de visibilidade do popover.*/
11
11
  --ez-popover__box--z-index: var(--most-visible, 3);
12
- /*@doc Define a altura do popover.*/
13
- --ez-popover__height: fit-content;
14
- /*@doc Define a altura máxima do popover.*/
15
- --ez-popover__max-height: fit-content;
16
- /*@doc Define a margin do popover.*/
17
- --ez-popover__margin: 0;
18
12
 
19
13
  /***************
20
14
  host style
@@ -30,14 +24,13 @@
30
24
  z-index: var(--ez-popover__box--z-index);
31
25
  display: flex;
32
26
  flex-direction: column;
33
-
27
+
28
+ height: fit-content;
29
+
34
30
  /*public*/
35
- height: var(--ez-popover__height);
36
- max-height: var(--ez-popover__max-height);
37
31
  background-color: var(--ez-popover__box--background-color);
38
32
  border-radius: var(--ez-popover__box--border-radius);
39
33
  box-shadow: var(--ez-popover__box--box-shadow);
40
- margin: var(--ez-popover__margin);
41
34
  }
42
35
 
43
36
  .popover__box--fit-content {