@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,85 @@
1
+ /**
2
+ * O dragElement é posicionado ANTERIORMENTE ao targetIndex.
3
+ * Ex: no array: ["A", "B", "C", "D", "E"]
4
+ * se o dragItem for "B" e o targetIndex 3 (referente à "D"),
5
+ * "B" será posicionado logo antes de "D".
6
+ * O resultado será: ["A", "C", "B", "D", "E"]
7
+ *
8
+ * @param configs
9
+ */
10
+ export function processListOnDrop(configs) {
11
+ let newList;
12
+ if (hasToMoveMultipleItems(configs)) {
13
+ newList = processMoveMultipleItems(configs);
14
+ }
15
+ else {
16
+ newList = processMoveSingleItem(configs);
17
+ configs.clearSelection();
18
+ }
19
+ return newList;
20
+ }
21
+ function hasToMoveMultipleItems(configs) {
22
+ const { enableMultipleSelection, listItems, dragItem, moveToFinal, targetIndex } = configs;
23
+ if (!enableMultipleSelection)
24
+ return false;
25
+ const selectedItemsIndexes = getSelectedIndices(listItems);
26
+ if (selectedItemsIndexes.length <= 1)
27
+ return false;
28
+ if (!selectedItemsIndexes.includes(dragItem.index))
29
+ return false;
30
+ if (!isContinuousSequence(selectedItemsIndexes))
31
+ return false;
32
+ if (moveToFinal)
33
+ return true;
34
+ return !selectedItemsIndexes.includes(targetIndex);
35
+ }
36
+ function processMoveSingleItem(configs) {
37
+ const { listItems, dragItem, targetIndex, moveToFinal } = configs;
38
+ const newList = [...listItems];
39
+ newList.splice(dragItem.index, 1);
40
+ if (moveToFinal) {
41
+ newList.push(dragItem.item);
42
+ }
43
+ else {
44
+ const adjustedIndex = (targetIndex > dragItem.index) ? Math.max(0, targetIndex - 1) : targetIndex;
45
+ newList.splice(adjustedIndex, 0, dragItem.item);
46
+ }
47
+ return newList;
48
+ }
49
+ function processMoveMultipleItems(configs) {
50
+ const { listItems, moveToFinal, targetIndex } = configs;
51
+ const selectedItems = listItems.filter(item => item.selected);
52
+ const selectedItemsIndexes = getSelectedIndices(listItems);
53
+ const minorIndex = Math.min(...selectedItemsIndexes);
54
+ const majorIndex = Math.max(...selectedItemsIndexes);
55
+ const qtdToMove = selectedItems.length;
56
+ const newList = [...listItems];
57
+ newList.splice(minorIndex, qtdToMove);
58
+ if (moveToFinal) {
59
+ newList.push(...selectedItems);
60
+ }
61
+ else {
62
+ let adjustedIndex = (targetIndex > majorIndex) ? Math.max(0, targetIndex - qtdToMove) : targetIndex;
63
+ newList.splice(adjustedIndex, 0, ...selectedItems);
64
+ }
65
+ return newList;
66
+ }
67
+ export function isContinuousSequence(numbers) {
68
+ if (numbers.length === 0)
69
+ return false;
70
+ const sortedNumbers = [...numbers].sort((a, b) => a - b);
71
+ for (let i = 1; i < sortedNumbers.length; i++) {
72
+ if (sortedNumbers[i] !== sortedNumbers[i - 1] + 1) {
73
+ return false;
74
+ }
75
+ }
76
+ return true;
77
+ }
78
+ function getSelectedIndices(listItems) {
79
+ return listItems.reduce((indices, item, index) => {
80
+ if (item.selected) {
81
+ indices.push(index);
82
+ }
83
+ return indices;
84
+ }, []);
85
+ }
@@ -1,9 +1,10 @@
1
1
  :host {
2
2
  --ez-check--outter-gap: 0px;
3
+ --ez-multi-selection-default-height: 322px;
3
4
 
4
5
  display: block;
5
6
  width: 304px;
6
- height: 322px;
7
+ height: var(--ez-multi-selection-default-height);
7
8
  max-height: calc(100vh - 350px);
8
9
  }
9
10
 
@@ -22,7 +23,6 @@
22
23
  }
23
24
 
24
25
  .multi-selection__list {
25
- height: 235px;
26
26
  max-height: calc(100vh - 435px);
27
27
  overflow-y: auto;
28
28
  overflow-x: clip;
@@ -1,5 +1,6 @@
1
1
  :host {
2
2
  display: flex;
3
+ width: auto;
3
4
  /* General */
4
5
  /*@doc Define a camada em que o componente será exibido.*/
5
6
  --ez-popup-z-index: var(--elevation--24, 24);
@@ -9,6 +9,7 @@ export class EzPopup {
9
9
  "large": "col--sd-9",
10
10
  "x-large": "col--sd-11",
11
11
  "default": "ez-popup__size-limit--x-small",
12
+ "auto": "",
12
13
  };
13
14
  this.size = "medium";
14
15
  this.opened = false;
@@ -62,6 +63,8 @@ export class EzPopup {
62
63
  });
63
64
  }
64
65
  getGridSize() {
66
+ if (this.size === "auto")
67
+ return "";
65
68
  return this._sizeClasses[this.size] || this._sizeClasses["medium"];
66
69
  }
67
70
  handlePopupHeight() {
@@ -96,8 +99,8 @@ export class EzPopup {
96
99
  "type": "string",
97
100
  "mutable": false,
98
101
  "complexType": {
99
- "original": "\"x-small\" | \"small\" | \"medium\" | \"large\" | \"x-large\"",
100
- "resolved": "\"large\" | \"medium\" | \"small\" | \"x-large\" | \"x-small\"",
102
+ "original": "\"x-small\" | \"small\" | \"medium\" | \"large\" | \"x-large\" | \"auto\"",
103
+ "resolved": "\"auto\" | \"large\" | \"medium\" | \"small\" | \"x-large\" | \"x-small\"",
101
104
  "references": {}
102
105
  },
103
106
  "required": false,
@@ -6,3 +6,18 @@
6
6
  background-color: transparent;
7
7
  max-width: 100%;
8
8
  }
9
+ .ez-split-gutter__row {
10
+ cursor: ns-resize;
11
+ }
12
+ .ez-split-gutter__column {
13
+ cursor: ew-resize;
14
+ }
15
+
16
+ .structural__panel {
17
+ background: none;
18
+ box-shadow: none;
19
+ outline: none;
20
+ padding: 0;
21
+ margin: 0;
22
+ border: 0;
23
+ }
@@ -7,6 +7,7 @@ export class SplitPanel {
7
7
  this._buildInProgress = false;
8
8
  this.direction = 'column';
9
9
  this.anchorToExpand = false;
10
+ this.structural = false;
10
11
  }
11
12
  rebuildLayout() {
12
13
  Array.from(this._element.querySelectorAll(".ez-split-gutter")).reverse().forEach(el => {
@@ -62,6 +63,7 @@ export class SplitPanel {
62
63
  return;
63
64
  }
64
65
  this._element.style[this.direction === 'row' ? 'grid-template-rows' : 'grid-template-columns'] = this.getGridTemplate();
66
+ this.removeGuttersMargin();
65
67
  Split(this.getGutters());
66
68
  }
67
69
  handlePanelDragEnd() {
@@ -100,6 +102,12 @@ export class SplitPanel {
100
102
  const gutter = document.createElement('div');
101
103
  gutter.classList.add('ez-split-gutter');
102
104
  gutter.classList.add(this.direction);
105
+ if (this.direction === 'row') {
106
+ gutter.classList.add('ez-split-gutter__row');
107
+ }
108
+ else {
109
+ gutter.classList.add('ez-split-gutter__column');
110
+ }
103
111
  gutter.dataset.itemTrack = `${item.dataset.trackNumber}`;
104
112
  gutter.dataset.trackNumber = (Number(item.dataset.trackNumber) + 1).toString();
105
113
  item.parentNode.insertBefore(gutter, item.nextSibling);
@@ -145,8 +153,52 @@ export class SplitPanel {
145
153
  });
146
154
  return template;
147
155
  }
156
+ removeGuttersMargin() {
157
+ if (this._items.length <= 1)
158
+ return;
159
+ if (this.direction == "column") {
160
+ this.removeGuttersMarginColumn();
161
+ return;
162
+ }
163
+ if (this.direction == "row") {
164
+ this.removeGuttersMarginRow();
165
+ return;
166
+ }
167
+ }
168
+ removeGuttersMarginColumn() {
169
+ this._items.forEach((item, index) => {
170
+ if (index == 0) {
171
+ item.style.marginRight = "0";
172
+ return;
173
+ }
174
+ if (index === this._items.length - 1) {
175
+ item.style.marginLeft = "0";
176
+ return;
177
+ }
178
+ item.style.marginRight = "0";
179
+ item.style.marginLeft = "0";
180
+ return;
181
+ });
182
+ }
183
+ removeGuttersMarginRow() {
184
+ if (this._items.length <= 1)
185
+ return;
186
+ this._items.forEach((item, index) => {
187
+ if (index == 0) {
188
+ item.style.marginBottom = "0";
189
+ return;
190
+ }
191
+ if (index === this._items.length - 1) {
192
+ item.style.marginTop = "0";
193
+ return;
194
+ }
195
+ item.style.marginBottom = "0";
196
+ item.style.marginTop = "0";
197
+ return;
198
+ });
199
+ }
148
200
  render() {
149
- return h(Host, { style: this.getElementStyle() });
201
+ return h(Host, { class: `${this.structural ? 'structural__panel' : 'content__panel'}`, style: this.getElementStyle() });
150
202
  }
151
203
  static get is() { return "ez-split-panel"; }
152
204
  static get originalStyleUrls() {
@@ -196,6 +248,24 @@ export class SplitPanel {
196
248
  "attribute": "anchor-to-expand",
197
249
  "reflect": false,
198
250
  "defaultValue": "false"
251
+ },
252
+ "structural": {
253
+ "type": "boolean",
254
+ "mutable": false,
255
+ "complexType": {
256
+ "original": "boolean",
257
+ "resolved": "boolean",
258
+ "references": {}
259
+ },
260
+ "required": false,
261
+ "optional": false,
262
+ "docs": {
263
+ "tags": [],
264
+ "text": "Define se o painel est\u00E1 sendo utilizado como estrutura para apresenta\u00E7\u00E3o de outro item"
265
+ },
266
+ "attribute": "structural",
267
+ "reflect": false,
268
+ "defaultValue": "false"
199
269
  }
200
270
  };
201
271
  }
@@ -3,7 +3,7 @@
3
3
  width: 100%;
4
4
  height: 100%;
5
5
  border-radius: var(--border--radius-medium);
6
- box-shadow: var(--shadow);
6
+ box-shadow: var(--shadow--xsmall);
7
7
  flex-direction: column;
8
8
  overflow: hidden;
9
9
  display: flex;
@@ -57,4 +57,15 @@ h3.ez-margin--small {
57
57
  margin-left: var(--space--small);
58
58
  }
59
59
 
60
-
60
+ .structural__item {
61
+ background: none;
62
+ box-shadow: none;
63
+ padding: 0;
64
+ margin: 0;
65
+ border: 0;
66
+ }
67
+ .content__item {
68
+ margin: var(--space--extra-small);
69
+ width: calc(100% - 2*(var(--space--extra-small)));
70
+ height: calc(100% - 2*(var(--space--extra-small)));
71
+ }
@@ -6,6 +6,7 @@ export class SplitItem {
6
6
  this.enableExpand = true;
7
7
  this._expanded = false;
8
8
  this.size = undefined;
9
+ this.structural = false;
9
10
  }
10
11
  /**
11
12
  * Alterna a visibilidade do painel.
@@ -17,7 +18,7 @@ export class SplitItem {
17
18
  CSSVarsUtils.applyVarsGrid(this._element, this._slot.children[0]);
18
19
  }
19
20
  render() {
20
- return (h(Host, { class: `box_split-item ${this._expanded ? 'expanded__item' : ''}`, ref: el => (this._element = el) }, h("div", { class: "ez-split-item--header" }, h("slot", { name: "leftButtons" }), h("div", { class: "ez-split-item--header-title" }, this.label && (h("h3", { class: "ez-text ez-text--primary ez-title ez-title--small ez-margin--small", title: this.label }, this.label))), h("div", { class: "ez-split-item--header-buttons" }, h("slot", { name: "rightButtons" }), this.enableExpand && (h("ez-button", { size: "small", mode: "icon", iconName: "expand", class: 'ez-button--tertiary', onClick: () => this.toggleExpandItem(), title: this._expanded ? 'Resumir' : 'Expandir' })))), h("div", { class: "ez-split-item--content grid_height-0", ref: el => (this._slot = el) }, h("slot", null))));
21
+ return (h(Host, { class: `box_split-item ${this._expanded ? 'expanded__item' : ''} ${this.structural ? 'structural__item' : 'content__item'}`, ref: el => (this._element = el) }, h("div", { class: "ez-split-item--header" }, h("slot", { name: "leftButtons" }), h("div", { class: "ez-split-item--header-title" }, this.label && (h("h3", { class: "ez-text ez-text--primary ez-title ez-title--small ez-margin--small", title: this.label }, this.label))), h("div", { class: "ez-split-item--header-buttons" }, h("slot", { name: "rightButtons" }), this.enableExpand && (h("ez-button", { size: "small", mode: "icon", iconName: "expand", class: 'ez-button--tertiary', onClick: () => this.toggleExpandItem(), title: this._expanded ? 'Resumir' : 'Expandir' })))), h("div", { class: "ez-split-item--content grid_height-0", ref: el => (this._slot = el) }, h("slot", null))));
21
22
  }
22
23
  static get is() { return "ez-split-item"; }
23
24
  static get originalStyleUrls() {
@@ -86,6 +87,24 @@ export class SplitItem {
86
87
  },
87
88
  "attribute": "size",
88
89
  "reflect": false
90
+ },
91
+ "structural": {
92
+ "type": "boolean",
93
+ "mutable": false,
94
+ "complexType": {
95
+ "original": "boolean",
96
+ "resolved": "boolean",
97
+ "references": {}
98
+ },
99
+ "required": false,
100
+ "optional": false,
101
+ "docs": {
102
+ "tags": [],
103
+ "text": "Define se o painel est\u00E1 sendo utilizado como estrutura para apresenta\u00E7\u00E3o de outro item"
104
+ },
105
+ "attribute": "structural",
106
+ "reflect": false,
107
+ "defaultValue": "false"
89
108
  }
90
109
  };
91
110
  }
@@ -110,6 +110,12 @@ export const EzDialog: {
110
110
  new (): EzDialog;
111
111
  };
112
112
 
113
+ interface EzDoubleList extends Components.EzDoubleList, HTMLElement {}
114
+ export const EzDoubleList: {
115
+ prototype: EzDoubleList;
116
+ new (): EzDoubleList;
117
+ };
118
+
113
119
  interface EzDropdown extends Components.EzDropdown, HTMLElement {}
114
120
  export const EzDropdown: {
115
121
  prototype: EzDropdown;