@sankhyalabs/ezui 1.2.0-beta.4 → 1.2.0-beta.7

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 (150) hide show
  1. package/dist/cjs/{ApplicationUtils-483c0a9e.js → ApplicationUtils-2ac1b73e.js} +2 -1
  2. package/dist/cjs/ApplicationUtils-475b50d9.js +63 -0
  3. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  4. package/dist/cjs/css-shim-3bfdba4f.js +6 -0
  5. package/dist/cjs/dom-8ac1ad03.js +75 -0
  6. package/dist/cjs/ez-actions-button.cjs.entry.js +7 -6
  7. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-button.cjs.entry.js +1 -1
  9. package/dist/cjs/ez-calendar.cjs.entry.js +4 -4
  10. package/dist/cjs/ez-card-item.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-check.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-combo-box.cjs.entry.js +7 -6
  15. package/dist/cjs/ez-date-input.cjs.entry.js +6 -6
  16. package/dist/cjs/ez-date-time-input.cjs.entry.js +4 -4
  17. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  18. package/dist/cjs/ez-filter-input.cjs.entry.js +1 -1
  19. package/dist/cjs/ez-form.cjs.entry.js +460 -49
  20. package/dist/cjs/ez-grid-config.cjs.entry.js +5 -5
  21. package/dist/cjs/ez-grid.cjs.entry.js +1167 -985
  22. package/dist/cjs/ez-icon.cjs.entry.js +3 -3
  23. package/dist/cjs/ez-list.cjs.entry.js +3 -1
  24. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  26. package/dist/cjs/ez-number-input.cjs.entry.js +4 -4
  27. package/dist/cjs/ez-popover.cjs.entry.js +5 -5
  28. package/dist/cjs/ez-popup.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
  30. package/dist/cjs/ez-scroller.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-search.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-select-box.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-tabselector.cjs.entry.js +2 -1
  34. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  35. package/dist/cjs/ez-text-input.cjs.entry.js +3 -3
  36. package/dist/cjs/ez-time-input.cjs.entry.js +7 -7
  37. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-upload.cjs.entry.js +2 -2
  39. package/dist/cjs/ez-view-stack.cjs.entry.js +2 -1
  40. package/dist/cjs/ezui.cjs.js +112 -4
  41. package/dist/cjs/index-0ad7c3e4.js +6 -0
  42. package/dist/cjs/index-2ec1da82.js +2307 -0
  43. package/dist/cjs/index-d9c5cb88.js +3068 -0
  44. package/dist/cjs/loader.cjs.js +18 -2
  45. package/dist/cjs/shadow-css-41d9783d.js +390 -0
  46. package/dist/collection/collection-manifest.json +2 -2
  47. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +19 -1
  48. package/dist/collection/utils/ApplicationUtils.js +2 -1
  49. package/dist/custom-elements/index.js +3863 -968
  50. package/dist/esm/ApplicationUtils-30a69eb0.js +61 -0
  51. package/dist/esm/{ApplicationUtils-5f87ae60.js → ApplicationUtils-a4a76132.js} +2 -1
  52. package/dist/esm/app-globals-0f993ce5.js +3 -0
  53. package/dist/esm/css-shim-20dbffa5.js +4 -0
  54. package/dist/esm/dom-c5ed0ba5.js +73 -0
  55. package/dist/esm/ez-actions-button.entry.js +4 -3
  56. package/dist/esm/ez-application.entry.js +1 -1
  57. package/dist/esm/ez-button.entry.js +1 -1
  58. package/dist/esm/ez-calendar.entry.js +2 -2
  59. package/dist/esm/ez-card-item.entry.js +1 -1
  60. package/dist/esm/ez-check.entry.js +1 -1
  61. package/dist/esm/ez-chip.entry.js +1 -1
  62. package/dist/esm/ez-collapsible-box.entry.js +1 -1
  63. package/dist/esm/ez-combo-box.entry.js +4 -3
  64. package/dist/esm/ez-date-input.entry.js +2 -2
  65. package/dist/esm/ez-date-time-input.entry.js +2 -2
  66. package/dist/esm/ez-dialog.entry.js +1 -1
  67. package/dist/esm/ez-filter-input.entry.js +1 -1
  68. package/dist/esm/ez-form.entry.js +426 -15
  69. package/dist/esm/ez-grid-config.entry.js +3 -3
  70. package/dist/esm/ez-grid.entry.js +1138 -956
  71. package/dist/esm/ez-icon.entry.js +2 -2
  72. package/dist/esm/ez-list.entry.js +3 -1
  73. package/dist/esm/ez-loading-bar.entry.js +1 -1
  74. package/dist/esm/ez-modal.entry.js +1 -1
  75. package/dist/esm/ez-number-input.entry.js +2 -2
  76. package/dist/esm/ez-popover.entry.js +2 -2
  77. package/dist/esm/ez-popup.entry.js +1 -1
  78. package/dist/esm/ez-radio-button.entry.js +1 -1
  79. package/dist/esm/ez-scroller.entry.js +1 -1
  80. package/dist/esm/ez-search.entry.js +1 -1
  81. package/dist/esm/ez-select-box.entry.js +1 -1
  82. package/dist/esm/ez-tabselector.entry.js +2 -1
  83. package/dist/esm/ez-text-area.entry.js +1 -1
  84. package/dist/esm/ez-text-input.entry.js +2 -2
  85. package/dist/esm/ez-time-input.entry.js +2 -2
  86. package/dist/esm/ez-toast.entry.js +1 -1
  87. package/dist/esm/ez-upload.entry.js +2 -2
  88. package/dist/esm/ez-view-stack.entry.js +2 -1
  89. package/dist/esm/ezui.js +112 -4
  90. package/dist/esm/index-12b43518.js +3 -0
  91. package/dist/esm/index-1e9d524f.js +3031 -0
  92. package/dist/esm/index-b96183c8.js +2295 -0
  93. package/dist/esm/loader.js +18 -2
  94. package/dist/esm/shadow-css-8c625855.js +388 -0
  95. package/dist/ezui/ApplicationUtils-30a69eb0.js +61 -0
  96. package/dist/ezui/CSSVarsUtils-499b75c2.js +53 -0
  97. package/dist/ezui/DialogType-72afa679.js +8 -0
  98. package/dist/ezui/app-globals-0f993ce5.js +3 -0
  99. package/dist/ezui/css-shim-20dbffa5.js +4 -0
  100. package/dist/ezui/dom-c5ed0ba5.js +73 -0
  101. package/dist/ezui/ez-actions-button.entry.js +98 -0
  102. package/dist/ezui/ez-application.entry.js +22 -0
  103. package/dist/ezui/ez-button.entry.js +73 -0
  104. package/dist/ezui/ez-calendar.entry.js +219 -0
  105. package/dist/ezui/ez-card-item.entry.js +40 -0
  106. package/dist/ezui/ez-check.entry.js +72 -0
  107. package/dist/ezui/ez-chip.entry.js +97 -0
  108. package/dist/ezui/ez-collapsible-box.entry.js +57 -0
  109. package/dist/ezui/ez-combo-box.entry.js +439 -0
  110. package/dist/ezui/ez-date-input.entry.js +159 -0
  111. package/dist/ezui/ez-date-time-input.entry.js +214 -0
  112. package/dist/ezui/ez-dialog.entry.js +108 -0
  113. package/dist/ezui/ez-filter-input.entry.js +75 -0
  114. package/dist/ezui/ez-form.entry.js +1395 -0
  115. package/dist/ezui/ez-grid-config.entry.js +433 -0
  116. package/dist/ezui/ez-grid.entry.js +115419 -0
  117. package/dist/ezui/ez-icon.entry.js +37 -0
  118. package/dist/ezui/ez-list.entry.js +516 -0
  119. package/dist/ezui/ez-loading-bar.entry.js +24 -0
  120. package/dist/ezui/ez-modal.entry.js +67 -0
  121. package/dist/ezui/ez-number-input.entry.js +148 -0
  122. package/dist/ezui/ez-popover.entry.js +141 -0
  123. package/dist/ezui/ez-popup.entry.js +49 -0
  124. package/dist/ezui/ez-radio-button.entry.js +45 -0
  125. package/dist/ezui/ez-scroller.entry.js +101 -0
  126. package/dist/ezui/ez-search.entry.js +83 -0
  127. package/dist/ezui/ez-select-box.entry.js +18 -0
  128. package/dist/ezui/ez-tabselector.entry.js +195 -0
  129. package/dist/ezui/ez-text-area.entry.js +158 -0
  130. package/dist/ezui/ez-text-input.entry.js +235 -0
  131. package/dist/ezui/ez-time-input.entry.js +164 -0
  132. package/dist/ezui/ez-toast.entry.js +84 -0
  133. package/dist/ezui/ez-upload.entry.js +379 -0
  134. package/dist/ezui/ez-view-stack.entry.js +74 -0
  135. package/dist/ezui/ezui.esm.js +125 -1
  136. package/dist/ezui/index-12b43518.js +3 -0
  137. package/dist/ezui/index-1e9d524f.js +3031 -0
  138. package/dist/ezui/index-b96183c8.js +2295 -0
  139. package/dist/ezui/index.esm.js +1 -0
  140. package/dist/ezui/{p-72ab066f.entry.js → p-4eb273f8.entry.js} +1 -1
  141. package/dist/ezui/{p-d9c72ff7.entry.js → p-88bfdea4.entry.js} +1 -1
  142. package/dist/ezui/p-adbe4188.js +1 -0
  143. package/dist/ezui/{p-6cfe20a0.entry.js → p-af43be42.entry.js} +1 -1
  144. package/dist/ezui/{p-47e06040.entry.js → p-c9d2060e.entry.js} +1 -1
  145. package/dist/ezui/{p-3ae441ec.entry.js → p-d836f546.entry.js} +1 -1
  146. package/dist/ezui/{p-7fe1ac9a.entry.js → p-e55fc20f.entry.js} +1 -1
  147. package/dist/ezui/shadow-css-8c625855.js +388 -0
  148. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +1 -0
  149. package/package.json +2 -2
  150. package/dist/ezui/p-898b9906.js +0 -1
@@ -0,0 +1,433 @@
1
+ import { r as registerInstance, e as createEvent, h, f as Host } from './index-1e9d524f.js';
2
+ import { d as StringUtils } from './index-b96183c8.js';
3
+ import { A as ApplicationUtils } from './ApplicationUtils-30a69eb0.js';
4
+ import { D as DialogType } from './DialogType-72afa679.js';
5
+
6
+ const ezGridConfigCss = ".sc-ez-grid-config-h{--ez-grid-config__footer--padding-top:var(--space--medium, 12px);--ez-grid-config__main--padding-right:var(--space--medium, 12px);--ez-grid-config__tabselector-container--padding:var(--space--medium, 12px);--ez-grid-config__button-close--padding-left:var(--space--medium, 12px);--ez-grid-config__subtitle--font-family:var(--font-pattern, \"Sora\");--ez-grid-config__title--font-family:var(--font-pattern, \"Sora\");--ez-grid-config__title--font-weight:var(--text-weight--large, 700);--ez-grid-config__subtitle--font-size:var(--text--medium, 14px);--ez-grid-config__scrollbar--width:var(--space--medium, 12px);--ez-grid-config__scrollbar--background-color:var(--text--primary, #626e82);--ez-grid-config__scrollbar--border-radius:var(--border--radius-medium, 12px);--ez-grid-config__group--font-family:var(--font-pattern, \"Sora\");--ez-grid-config__group--font-size:var(--text--medium, 14px);--ez-grid-config__group--font-weight:var(--text-weight--large, 600);--ez-grid-config__group--padding-bottom:var(--space-small, 6px);display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.sc-ez-grid-config-h{width:359px;max-width:359px}}.padding-right--medium.sc-ez-grid-config{padding-right:var(--space--medium)}ez-list.sc-ez-grid-config{height:100%}.height-calc.sc-ez-grid-config{max-height:calc(100% - 24px)}.grid-config__footer.sc-ez-grid-config{display:flex;justify-content:flex-end;width:100%;padding-top:var(--ez-grid-config__footer--padding-top)}.hidden.sc-ez-grid-config{display:none}.grid-config__main.sc-ez-grid-config{overflow-y:auto;padding-right:var(--ez-grid-config__main--padding-right)}.tabselector-container.sc-ez-grid-config{padding:var(--ez-grid-config__tabselector-container--padding) 0}.button-close.sc-ez-grid-config{padding-left:var(--ez-grid-config__button-close--padding-left)}.title-container.sc-ez-grid-config{display:flex;justify-content:space-between;align-items:center;width:100%}.subtitle.sc-ez-grid-config{font-family:var(--ez-grid-config__subtitle--font-family);font-size:var(--ez-grid-config__subtitle--font-size);color:var(--text--primary)}.title.sc-ez-grid-config{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--title--primary);font-family:var(--ez-grid-config__title--font-family);font-size:var(--title--large);font-weight:var(--ez-grid-config__title--font-weight)}.grid-config__main.sc-ez-grid-config::-webkit-scrollbar-track{background-color:#f0f2f5}.grid-config__main.sc-ez-grid-config::-webkit-scrollbar-thumb{background-color:var(--ez-grid-config__scrollbar--background-color);border-radius:var(--ez-grid-config__scrollbar--border-radius)}.grid-config__main.sc-ez-grid-config::-webkit-scrollbar{background-color:#f0f2f5;width:var(--ez-grid-config__scrollbar--width);max-width:var(--ez-grid-config__scrollbar--width);min-width:var(--ez-grid-config__scrollbar--width)}.group-name.sc-ez-grid-config{font-family:var(--ez-grid-config__group--font-family);font-size:var(--ez-grid-config__group--font-size);font-weight:var(--ez-grid-config__group--font-weight);padding-bottom:var(--ez-grid-config__group--padding-bottom)}";
7
+
8
+ let EzGridConfig = class {
9
+ constructor(hostRef) {
10
+ registerInstance(this, hostRef);
11
+ this.configFinish = createEvent(this, "configFinish", 7);
12
+ this.configCancel = createEvent(this, "configCancel", 7);
13
+ this._orderListItems = [];
14
+ this._orderPriorityList = [];
15
+ this._columListItems = [];
16
+ this._selectedIndex = -1;
17
+ this._dataChanged = false;
18
+ this._componenteInternalKey = Date.now();
19
+ this.selectedTab = "Colunas";
20
+ }
21
+ /* Creation Methods */
22
+ createOrderList() {
23
+ let newList = [];
24
+ this.columns.filter(col => { var _a; return StringUtils.getBooleanValue((_a = col === null || col === void 0 ? void 0 : col.props) === null || _a === void 0 ? void 0 : _a.get("sortable"), true); }).forEach(column => {
25
+ var _a;
26
+ let configItem = (_a = this.config) === null || _a === void 0 ? void 0 : _a.columns.find(item => item.name === column.name);
27
+ let item = { name: column.name, label: column.label };
28
+ if (configItem) {
29
+ item['orderIndex'] = configItem.orderIndex;
30
+ item['ascending'] = configItem.ascending;
31
+ }
32
+ if (!column.hidden) {
33
+ newList.push(item);
34
+ }
35
+ });
36
+ newList.sort((a, b) => {
37
+ //OS dois tem order index 0 e pelo menos um deles tem orientação de ordenação.
38
+ if (a.orderIndex == 0 && b.orderIndex == 0 && (a.ascending != undefined || b.ascending != undefined)) {
39
+ if (a.ascending != undefined)
40
+ return -1;
41
+ if (b.ascending != undefined)
42
+ return 1;
43
+ return 0;
44
+ //Pelo menos um deles tem order index diferente de 0 e os dois tem orientação de ordenação.
45
+ }
46
+ else if (a.ascending != undefined && b.ascending != undefined) {
47
+ return (a.orderIndex - b.orderIndex);
48
+ //Pelo menos um deles tem order index diferente de 0 e pelo menos um deles tem orientação de ordenação.
49
+ }
50
+ else if (a.ascending != undefined || b.ascending != undefined) {
51
+ if (a.ascending != undefined)
52
+ return -1;
53
+ if (b.ascending != undefined)
54
+ return 1;
55
+ return 0;
56
+ }
57
+ return (a.orderIndex - b.orderIndex);
58
+ });
59
+ this._orderListItems = newList;
60
+ }
61
+ createColumnList() {
62
+ let visibleGroup = {
63
+ group: 'Visíveis',
64
+ items: [],
65
+ };
66
+ let hiddenGroup = {
67
+ group: 'Ocultas',
68
+ items: [],
69
+ sort: 'ASC'
70
+ };
71
+ this.columns.forEach(column => {
72
+ let item = { label: column.label };
73
+ if (column.hidden) {
74
+ hiddenGroup.items.push(item);
75
+ }
76
+ else {
77
+ visibleGroup.items.push(item);
78
+ }
79
+ });
80
+ this._columListItems = [visibleGroup, hiddenGroup];
81
+ }
82
+ buildColumnListSlot(item, group) {
83
+ return (h("div", null, h("ez-check", { mode: 'switch', id: 'switch' + item + group, value: group.group === "Visíveis", onEzChange: (ev) => { this.switchColumnGroup(ev, item); } })));
84
+ }
85
+ buildOrderListSlot(item) {
86
+ let selectedOption = "na";
87
+ if ((item === null || item === void 0 ? void 0 : item.ascending) != undefined) {
88
+ selectedOption = item.ascending == true ? 'asc' : 'desc';
89
+ }
90
+ return (h("div", null, h("ez-select-box", { selectedOption: selectedOption, key: 'ez-select-box-' + this._componenteInternalKey + '-' + item, onEzChange: (ev) => { ev.stopPropagation(); this.updateOrder(ev.detail, item.label); } })));
91
+ }
92
+ updateOrder(sortOrder, updatedItemLabel) {
93
+ var _a;
94
+ this._dataChanged = true;
95
+ let newList = [...this.columns];
96
+ let newItem = newList.find(item => item.label === updatedItemLabel);
97
+ if (newItem) {
98
+ newItem.sort = sortOrder.value === "na" ? undefined : sortOrder.value;
99
+ }
100
+ let orderArray;
101
+ if (((_a = this._orderPriorityList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
102
+ this._orderPriorityList.find(item => item.label === newItem.label).sort = sortOrder;
103
+ this._orderPriorityList.filter(item => item.sort).map((item, index) => {
104
+ if (item.label === newItem.label) {
105
+ newItem.sortIndex = index;
106
+ }
107
+ });
108
+ }
109
+ else {
110
+ orderArray = newList.filter(item => item.sort && item.hidden !== true).map((item, index) => {
111
+ return { label: item.label, orderIndex: index };
112
+ });
113
+ orderArray.forEach(element => {
114
+ newList.find(item => item.label === element.label).sortIndex = element.orderIndex;
115
+ });
116
+ }
117
+ this.columns = newList;
118
+ }
119
+ /* Actions Methods */
120
+ switchColumnGroup(ev, switchedItem) {
121
+ ev.stopPropagation();
122
+ let newList = [...this._columListItems];
123
+ this._dataChanged = true;
124
+ if (ev.detail === true) {
125
+ let hiddenGroup = newList.find(group => group.group === "Ocultas");
126
+ let index = hiddenGroup.items.findIndex(item => item.label === switchedItem.label);
127
+ if (index >= 0) {
128
+ hiddenGroup.items.splice(index, 1);
129
+ }
130
+ let visibleGroup = newList.find(group => group.group === "Visíveis");
131
+ visibleGroup.items.push(switchedItem);
132
+ this._columListItems = newList;
133
+ this.createOrderList();
134
+ }
135
+ else if (ev.detail === false) {
136
+ let visibleGroup = newList.find(group => group.group === "Visíveis");
137
+ let index = visibleGroup.items.findIndex(item => item.label === switchedItem.label);
138
+ if (index >= 0) {
139
+ visibleGroup.items.splice(index, 1);
140
+ }
141
+ let hiddenGroup = newList.find(group => group.group === "Ocultas");
142
+ hiddenGroup.items.push(switchedItem);
143
+ this._columListItems = newList;
144
+ this.createOrderList();
145
+ }
146
+ }
147
+ finish() {
148
+ let newColumnList = [];
149
+ this._columListItems.forEach(group => {
150
+ group.items.forEach(item => {
151
+ const baseColumn = this.columns.find(column => column.label === item.label);
152
+ let newColumnItem = Object.assign({}, baseColumn);
153
+ if (group.group === "Ocultas") {
154
+ newColumnItem.hidden = true;
155
+ }
156
+ else {
157
+ newColumnItem.hidden = false;
158
+ }
159
+ newColumnList.push(newColumnItem);
160
+ });
161
+ });
162
+ this.columns = newColumnList;
163
+ this._dataChanged = false;
164
+ this.closeConfig();
165
+ ApplicationUtils.info("As configurações foram salvas com sucesso!");
166
+ this.save();
167
+ }
168
+ save() {
169
+ var _a;
170
+ let _newConfig;
171
+ if (this.config) {
172
+ _newConfig = this.config;
173
+ }
174
+ else {
175
+ _newConfig = this.createConfigFromState(this.columns);
176
+ }
177
+ let _newColumnConfigList = [];
178
+ let orderArray;
179
+ if (((_a = this._orderPriorityList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
180
+ orderArray = this.columns.filter(item => item.sort && item.hidden !== true).map((item) => {
181
+ return { label: item.label, orderIndex: 0 };
182
+ });
183
+ let indexCount = 0;
184
+ let newOrderArray = [];
185
+ this._orderPriorityList.forEach((orderPriorityItem) => {
186
+ let item = orderArray.find(column => column.label === orderPriorityItem.label);
187
+ if (item) {
188
+ item.orderIndex = indexCount;
189
+ newOrderArray.push(item);
190
+ indexCount++;
191
+ }
192
+ });
193
+ if (newOrderArray.length > 0) {
194
+ orderArray = newOrderArray;
195
+ }
196
+ }
197
+ for (let i = 0; i < this.columns.length; i++) {
198
+ const column = this.columns[i];
199
+ let _newColumnConfig = _newConfig.columns.find(_newColumnConfig => column.name === _newColumnConfig.name);
200
+ if (column.hidden === true && _newColumnConfig) {
201
+ continue;
202
+ }
203
+ if (_newColumnConfig) {
204
+ _newColumnConfig.width = column.width;
205
+ }
206
+ else if (column.hidden === false) {
207
+ _newColumnConfig = { name: column.name, width: column.width, orderIndex: 0 };
208
+ }
209
+ if (_newColumnConfig) {
210
+ if (column.sort) {
211
+ _newColumnConfig.ascending = column.sort.toUpperCase() === "ASC" ? true : false;
212
+ if (orderArray) {
213
+ adjustPriorityOrder(column, _newColumnConfig);
214
+ }
215
+ else {
216
+ _newColumnConfig.orderIndex = column.sortIndex;
217
+ }
218
+ }
219
+ else {
220
+ delete _newColumnConfig.ascending;
221
+ _newColumnConfig.orderIndex = 0;
222
+ }
223
+ _newColumnConfigList.push(_newColumnConfig);
224
+ }
225
+ }
226
+ _newConfig.columns = _newColumnConfigList;
227
+ this.configFinish.emit(_newConfig);
228
+ this._orderList.clearHistory();
229
+ function adjustPriorityOrder(column, _newColumnConfig) {
230
+ if (orderArray) {
231
+ let orderItem = orderArray.find(item => item.label === column.label);
232
+ if (orderItem) {
233
+ _newColumnConfig.orderIndex = orderItem.orderIndex;
234
+ }
235
+ }
236
+ }
237
+ }
238
+ createConfigFromState(state) {
239
+ let newConfig = { columns: [] };
240
+ state.forEach(columnState => {
241
+ if (!columnState.hidden) {
242
+ let newConfigColumn = { name: columnState.name };
243
+ if (columnState.width) {
244
+ newConfigColumn['width'] = columnState.width;
245
+ }
246
+ if (columnState.sort) {
247
+ newConfigColumn['ascending'] = (columnState.sort.toUpperCase() === 'ASC');
248
+ newConfigColumn['orderIndex'] = columnState.sortIndex;
249
+ }
250
+ else {
251
+ newConfigColumn['orderIndex'] = 0;
252
+ }
253
+ if (newConfigColumn) {
254
+ newConfig.columns.push(newConfigColumn);
255
+ }
256
+ }
257
+ });
258
+ return newConfig;
259
+ }
260
+ async locateColumn(evt, searchingText) {
261
+ var _a;
262
+ const hitEnter = evt.key === "Enter";
263
+ if (!searchingText) {
264
+ searchingText = (_a = evt.currentTarget) === null || _a === void 0 ? void 0 : _a.value;
265
+ }
266
+ let newSelected = -1;
267
+ if (this.selectedTab === "Ordenação das linhas") {
268
+ if (searchingText) {
269
+ const matchedIndexes = [];
270
+ let orderListDatasource;
271
+ await this._orderList.getList().then(listGroup => {
272
+ orderListDatasource = listGroup;
273
+ orderListDatasource.forEach((column, index) => {
274
+ if (this.compareWords(column, searchingText)) {
275
+ matchedIndexes.push(index);
276
+ }
277
+ });
278
+ });
279
+ if (matchedIndexes.length > 0) {
280
+ if (hitEnter) {
281
+ for (let j = 0; j < matchedIndexes.length; j++) {
282
+ if (matchedIndexes[j] > this._selectedIndex) {
283
+ newSelected = matchedIndexes[j];
284
+ break;
285
+ }
286
+ }
287
+ }
288
+ if (newSelected === -1) {
289
+ newSelected = matchedIndexes[0];
290
+ }
291
+ }
292
+ this._selectedIndex = newSelected;
293
+ let selectedColumn;
294
+ selectedColumn = orderListDatasource[newSelected];
295
+ if (selectedColumn) {
296
+ this._orderList.setSelection({ label: selectedColumn.label }, true);
297
+ }
298
+ else {
299
+ this._orderList.setSelection(undefined);
300
+ }
301
+ }
302
+ else {
303
+ this._orderList.setSelection(undefined);
304
+ }
305
+ }
306
+ else {
307
+ if (searchingText) {
308
+ const matchedIndexes = [];
309
+ this.columns.forEach((column, index) => {
310
+ if (this.compareWords(column, searchingText)) {
311
+ matchedIndexes.push(index);
312
+ }
313
+ });
314
+ if (matchedIndexes.length > 0) {
315
+ if (hitEnter) {
316
+ for (let j = 0; j < matchedIndexes.length; j++) {
317
+ if (matchedIndexes[j] > this._selectedIndex) {
318
+ newSelected = matchedIndexes[j];
319
+ break;
320
+ }
321
+ }
322
+ }
323
+ if (newSelected === -1) {
324
+ newSelected = matchedIndexes[0];
325
+ }
326
+ }
327
+ this._selectedIndex = newSelected;
328
+ let selectedColumn = this.columns[newSelected];
329
+ if (selectedColumn) {
330
+ this._columnList.setSelection({ label: selectedColumn.label }, true);
331
+ }
332
+ else {
333
+ this._columnList.setSelection(undefined);
334
+ }
335
+ }
336
+ else {
337
+ this._columnList.setSelection(undefined);
338
+ }
339
+ }
340
+ }
341
+ compareWords(column, searchingText) {
342
+ if (StringUtils.replaceAccentuatedChars(column.label).indexOf(StringUtils.replaceAccentuatedChars(searchingText)) > -1) {
343
+ return true;
344
+ }
345
+ return false;
346
+ }
347
+ closeConfig() {
348
+ this._orderList.scrollToTop();
349
+ this._columnList.scrollToTop();
350
+ this._searchElement.value = "";
351
+ if (this._dataChanged) {
352
+ let options = {
353
+ canClose: false,
354
+ labelCancel: "Descartar",
355
+ labelConfirm: "Salvar",
356
+ btnConfirmDanger: false
357
+ };
358
+ ApplicationUtils.confirm("Aviso", "As alterações realizadas serão descartadas. Gostaria de salvar antes de sair?", null, DialogType.WARN, options)
359
+ .then(response => {
360
+ if (!response) {
361
+ this._dataChanged = false;
362
+ this.configCancel.emit();
363
+ this._orderList.clearHistory();
364
+ this._componenteInternalKey = Date.now();
365
+ }
366
+ else {
367
+ this.finish();
368
+ }
369
+ });
370
+ }
371
+ else {
372
+ this.configCancel.emit();
373
+ this._orderList.clearHistory();
374
+ }
375
+ }
376
+ /* Handlers */
377
+ handleTabChange(ev) {
378
+ var _a;
379
+ if ((_a = ev === null || ev === void 0 ? void 0 : ev.target) === null || _a === void 0 ? void 0 : _a.selectedTab) {
380
+ if (this.selectedTab !== ev.target.selectedTab) {
381
+ if (ev.target.selectedTab === "Colunas") {
382
+ this._orderList.scrollToTop();
383
+ }
384
+ else if (ev.target.selectedTab === "Ordenação das linhas") {
385
+ this._columnList.scrollToTop();
386
+ }
387
+ this._searchElement.value = "";
388
+ }
389
+ if (ev.target.selectedTab === "Ordenação das linhas") {
390
+ this.createOrderList();
391
+ }
392
+ this.selectedTab = ev.target.selectedTab;
393
+ }
394
+ }
395
+ handleColumnListChange(ev) {
396
+ var _a;
397
+ if (ev.detail) {
398
+ let visibleItems = (_a = ev.detail.find(group => group.group === "Visíveis")) === null || _a === void 0 ? void 0 : _a.items;
399
+ if (visibleItems) {
400
+ this._dataChanged = true;
401
+ this._orderListItems = visibleItems;
402
+ }
403
+ }
404
+ }
405
+ handleOrderListChange(ev) {
406
+ if (ev.detail) {
407
+ let orderPriorityList = ev.detail;
408
+ if (orderPriorityList) {
409
+ this._dataChanged = true;
410
+ this._orderPriorityList = orderPriorityList;
411
+ }
412
+ }
413
+ }
414
+ componentWillRender() {
415
+ var _a;
416
+ if (((_a = this.columns) === null || _a === void 0 ? void 0 : _a.length) > 0) {
417
+ this.createColumnList();
418
+ }
419
+ }
420
+ componentDidRender() {
421
+ var _a;
422
+ if (((_a = this.columns) === null || _a === void 0 ? void 0 : _a.length) > 0) {
423
+ this.locateColumn(new KeyboardEvent("arrow-right", { key: "ArrowRight" }), this._searchElement.value);
424
+ }
425
+ }
426
+ render() {
427
+ return (h(Host, null, h("div", { class: "grid-config__header" }, h("div", { class: "title-container" }, h("div", { class: "" }, h("label", { class: "title" }, "Configura\u00E7\u00E3o da Grade"), h("label", { class: "subtitle" }, "Defina visibilidade e ordem das colunas.")), h("div", { class: "button-close" }, h("ez-button", { mode: 'icon', iconName: "close", size: 'medium', onClick: () => this.closeConfig() }))), h("div", { class: "tabselector-container" }, h("ez-tabselector", { selectedTab: this.selectedTab, selectedIndex: 0, onEzChange: (ev) => { this.handleTabChange(ev); }, tabs: 'Colunas, Ordena\u00E7\u00E3o das linhas' })), h("div", null, h("ez-text-input", { ref: (el) => this._searchElement = el, label: "Localizar coluna", onKeyUp: evt => this.locateColumn(evt) }, h("ez-icon", { slot: "leftIcon", size: "medium", iconName: "search" })))), h("div", { class: "grid-config__main" }, h("ez-list", { ref: (el) => this._columnList = el, class: this.selectedTab === "Colunas" ? "" : "hidden", dataSource: this._columListItems, onEzChange: ev => this.handleColumnListChange(ev), ezDraggable: true, ezSelectable: true, itemSlotBuilder: (item, group) => this.buildColumnListSlot(item, group), useGroups: true }), h("div", { class: this.selectedTab === "Ordenação das linhas" ? "group-name" : "hidden" }, "Sequ\u00EAncia da ordena\u00E7\u00E3o"), h("ez-list", { ref: (el) => this._orderList = el, class: this.selectedTab === "Ordenação das linhas" ? "height-calc" : "hidden", dataSource: this._orderListItems, ezSelectable: true, onEzChange: ev => this.handleOrderListChange(ev), ezDraggable: true, itemSlotBuilder: (item) => this.buildOrderListSlot(item) })), h("div", { class: "grid-config__footer" }, h("ez-button", { class: "padding-right--medium", label: "Cancelar", onClick: () => this.closeConfig() }), h("ez-button", { label: "Concluir", class: "ez-button--primary", onClick: () => this.finish() }))));
428
+ }
429
+ static get assetsDirs() { return ["../assets"]; }
430
+ };
431
+ EzGridConfig.style = ezGridConfigCss;
432
+
433
+ export { EzGridConfig as ez_grid_config };