@bit.rhplus/ag-grid 0.0.114 → 0.0.116
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.
- package/AgGridOnRowDataChanged.js +3 -8
- package/CheckBoxRenderer.jsx +1 -0
- package/Components/ExtendButton.jsx +1 -0
- package/Editors/ModuleLookupEditor.jsx +65 -0
- package/Editors/index.jsx +1 -0
- package/Renderers/CheckboxRenderer.jsx +1 -0
- package/Renderers/CountrySelectRenderer.jsx +1 -0
- package/Renderers/ModuleLookupRenderer.jsx +40 -0
- package/Renderers/SelectCellRenderer.jsx +1 -0
- package/Renderers/index.jsx +1 -0
- package/dist/AgGridAddNewItem.d.ts +1 -0
- package/dist/AgGridAddNewItem.js +6 -0
- package/dist/AgGridAddNewItem.js.map +1 -0
- package/dist/AgGridColumn.d.ts +3 -0
- package/dist/AgGridColumn.js +357 -0
- package/dist/AgGridColumn.js.map +1 -0
- package/dist/AgGridColumnFilter.d.ts +4 -0
- package/dist/AgGridColumnFilter.js +19 -0
- package/dist/AgGridColumnFilter.js.map +1 -0
- package/dist/AgGridOnGridReady.d.ts +1 -0
- package/dist/AgGridOnGridReady.js +6 -0
- package/dist/AgGridOnGridReady.js.map +1 -0
- package/dist/AgGridOnRowDataChanged.d.ts +1 -0
- package/dist/AgGridOnRowDataChanged.js +4 -0
- package/dist/AgGridOnRowDataChanged.js.map +1 -0
- package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
- package/dist/AgGridOnRowDataUpdated.js +27 -0
- package/dist/AgGridOnRowDataUpdated.js.map +1 -0
- package/dist/AgGridPostSort.d.ts +1 -0
- package/dist/AgGridPostSort.js +32 -0
- package/dist/AgGridPostSort.js.map +1 -0
- package/dist/AggregationNotification.d.ts +1 -0
- package/dist/AggregationNotification.js +121 -0
- package/dist/AggregationNotification.js.map +1 -0
- package/dist/AggregationStatusBar.d.ts +3 -0
- package/dist/AggregationStatusBar.js +122 -0
- package/dist/AggregationStatusBar.js.map +1 -0
- package/dist/Aggregations.d.ts +2 -0
- package/dist/Aggregations.js +313 -0
- package/dist/Aggregations.js.map +1 -0
- package/dist/BulkEdit/BulkEditButton.d.ts +14 -0
- package/dist/BulkEdit/BulkEditButton.js +140 -0
- package/dist/BulkEdit/BulkEditButton.js.map +1 -0
- package/dist/BulkEdit/BulkEditDatePicker.d.ts +11 -0
- package/dist/BulkEdit/BulkEditDatePicker.js +160 -0
- package/dist/BulkEdit/BulkEditDatePicker.js.map +1 -0
- package/dist/BulkEdit/BulkEditInput.d.ts +14 -0
- package/dist/BulkEdit/BulkEditInput.js +34 -0
- package/dist/BulkEdit/BulkEditInput.js.map +1 -0
- package/dist/BulkEdit/BulkEditModule.d.ts +11 -0
- package/dist/BulkEdit/BulkEditModule.js +34 -0
- package/dist/BulkEdit/BulkEditModule.js.map +1 -0
- package/dist/BulkEdit/BulkEditPopover.d.ts +14 -0
- package/dist/BulkEdit/BulkEditPopover.js +125 -0
- package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
- package/dist/BulkEdit/BulkEditSelect.d.ts +18 -0
- package/dist/BulkEdit/BulkEditSelect.js +56 -0
- package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
- package/dist/BulkEdit/BulkEditTagsSelect.d.ts +15 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js +45 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js.map +1 -0
- package/dist/BulkEdit/index.d.ts +1 -0
- package/dist/BulkEdit/index.js +11 -0
- package/dist/BulkEdit/index.js.map +1 -0
- package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
- package/dist/BulkEdit/useBulkCellEdit.js +397 -0
- package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
- package/dist/BulkEdit/utils.d.ts +7 -0
- package/dist/BulkEdit/utils.js +568 -0
- package/dist/BulkEdit/utils.js.map +1 -0
- package/dist/CheckBoxRenderer.d.ts +6 -0
- package/dist/CheckBoxRenderer.js +19 -0
- package/dist/CheckBoxRenderer.js.map +1 -0
- package/dist/Components/ExtendButton.css +6 -0
- package/dist/Components/ExtendButton.d.ts +2 -0
- package/dist/Components/ExtendButton.js +13 -0
- package/dist/Components/ExtendButton.js.map +1 -0
- package/dist/CountryCellRenderer.d.ts +1 -0
- package/dist/CountryCellRenderer.js +12 -0
- package/dist/CountryCellRenderer.js.map +1 -0
- package/dist/Editors/DatePickerEditor.d.ts +9 -0
- package/dist/Editors/DatePickerEditor.js +55 -0
- package/dist/Editors/DatePickerEditor.js.map +1 -0
- package/dist/Editors/ModuleLookupEditor.d.ts +8 -0
- package/dist/Editors/ModuleLookupEditor.js +43 -0
- package/dist/Editors/ModuleLookupEditor.js.map +1 -0
- package/dist/Editors/index.d.ts +1 -0
- package/dist/Editors/index.js +3 -0
- package/dist/Editors/index.js.map +1 -0
- package/dist/Functions/index.d.ts +2 -0
- package/dist/Functions/index.js +27 -0
- package/dist/Functions/index.js.map +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
- package/dist/HyperModuleEditor.d.ts +1 -0
- package/dist/HyperModuleEditor.js +119 -0
- package/dist/HyperModuleEditor.js.map +1 -0
- package/dist/HyperModuleRenderer.d.ts +1 -0
- package/dist/HyperModuleRenderer.js +138 -0
- package/dist/HyperModuleRenderer.js.map +1 -0
- package/dist/NotificationOptions.d.ts +10 -0
- package/dist/NotificationOptions.js +80 -0
- package/dist/NotificationOptions.js.map +1 -0
- package/dist/OnCellDoubleClicked.d.ts +1 -0
- package/dist/OnCellDoubleClicked.js +6 -0
- package/dist/OnCellDoubleClicked.js.map +1 -0
- package/dist/OnCellEditingStarted.d.ts +1 -0
- package/dist/OnCellEditingStarted.js +7 -0
- package/dist/OnCellEditingStarted.js.map +1 -0
- package/dist/OnCellValueChanged.d.ts +1 -0
- package/dist/OnCellValueChanged.js +10 -0
- package/dist/OnCellValueChanged.js.map +1 -0
- package/dist/Renderers/BooleanRenderer.d.ts +3 -0
- package/dist/Renderers/BooleanRenderer.js +55 -0
- package/dist/Renderers/BooleanRenderer.js.map +1 -0
- package/dist/Renderers/ButtonRenderer.d.ts +3 -0
- package/dist/Renderers/ButtonRenderer.js +66 -0
- package/dist/Renderers/ButtonRenderer.js.map +1 -0
- package/dist/Renderers/CheckboxRenderer.d.ts +7 -0
- package/dist/Renderers/CheckboxRenderer.js +37 -0
- package/dist/Renderers/CheckboxRenderer.js.map +1 -0
- package/dist/Renderers/CountrySelectRenderer.d.ts +7 -0
- package/dist/Renderers/CountrySelectRenderer.js +56 -0
- package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
- package/dist/Renderers/IconRenderer.d.ts +3 -0
- package/dist/Renderers/IconRenderer.js +187 -0
- package/dist/Renderers/IconRenderer.js.map +1 -0
- package/dist/Renderers/ImageRenderer.d.ts +3 -0
- package/dist/Renderers/ImageRenderer.js +58 -0
- package/dist/Renderers/ImageRenderer.js.map +1 -0
- package/dist/Renderers/LinkRenderer.d.ts +3 -0
- package/dist/Renderers/LinkRenderer.js +76 -0
- package/dist/Renderers/LinkRenderer.js.map +1 -0
- package/dist/Renderers/ModuleLookupRenderer.d.ts +3 -0
- package/dist/Renderers/ModuleLookupRenderer.js +28 -0
- package/dist/Renderers/ModuleLookupRenderer.js.map +1 -0
- package/dist/Renderers/ObjectRenderer.d.ts +3 -0
- package/dist/Renderers/ObjectRenderer.js +96 -0
- package/dist/Renderers/ObjectRenderer.js.map +1 -0
- package/dist/Renderers/SelectCellRenderer.d.ts +4 -0
- package/dist/Renderers/SelectCellRenderer.js +19 -0
- package/dist/Renderers/SelectCellRenderer.js.map +1 -0
- package/dist/Renderers/SelectRenderer.d.ts +3 -0
- package/dist/Renderers/SelectRenderer.js +56 -0
- package/dist/Renderers/SelectRenderer.js.map +1 -0
- package/dist/Renderers/StateRenderer.d.ts +3 -0
- package/dist/Renderers/StateRenderer.js +137 -0
- package/dist/Renderers/StateRenderer.js.map +1 -0
- package/dist/Renderers/index.d.ts +1 -0
- package/dist/Renderers/index.js +3 -0
- package/dist/Renderers/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +868 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1773828129212.js +7 -0
- package/dist/util.d.ts +15 -0
- package/dist/util.js +108 -0
- package/dist/util.js.map +1 -0
- package/package.json +5 -5
- package/types/asset.d.ts +43 -0
- package/types/env.d.ts +15 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* Zkontroluje, zda je sloupec editovatelný
|
|
4
|
+
* @param {Object} column - AG Grid column objekt
|
|
5
|
+
* @param {Object} gridApi - AG Grid API
|
|
6
|
+
* @returns {boolean} - true pokud je sloupec editovatelný
|
|
7
|
+
*/
|
|
8
|
+
export const isColumnEditable = (column, gridApi) => {
|
|
9
|
+
const colDef = column.getColDef();
|
|
10
|
+
// 1. Pokud je editable funkce, vyhodnotíme ji na prvním řádku
|
|
11
|
+
if (typeof colDef.editable === 'function') {
|
|
12
|
+
const firstNode = gridApi.getDisplayedRowAtIndex(0);
|
|
13
|
+
if (!firstNode)
|
|
14
|
+
return false;
|
|
15
|
+
const params = {
|
|
16
|
+
node: firstNode,
|
|
17
|
+
data: firstNode?.data,
|
|
18
|
+
column: column,
|
|
19
|
+
colDef: colDef,
|
|
20
|
+
api: gridApi,
|
|
21
|
+
context: gridApi.gridOptionsService?.gridOptions?.context
|
|
22
|
+
};
|
|
23
|
+
return colDef.editable(params);
|
|
24
|
+
}
|
|
25
|
+
// 2. Pokud je boolean, přímo vrátíme
|
|
26
|
+
if (typeof colDef.editable === 'boolean') {
|
|
27
|
+
return colDef.editable;
|
|
28
|
+
}
|
|
29
|
+
// 3. Pokud není definováno, check defaultColDef
|
|
30
|
+
const gridOptions = gridApi.gridOptionsService?.gridOptions;
|
|
31
|
+
const defaultColDef = gridOptions?.defaultColDef;
|
|
32
|
+
if (defaultColDef?.editable !== undefined) {
|
|
33
|
+
if (typeof defaultColDef.editable === 'boolean') {
|
|
34
|
+
return defaultColDef.editable;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// 4. Default je false (AG Grid default)
|
|
38
|
+
return false;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Zkontroluje, zda jsou všechny buňky v range editovatelné
|
|
42
|
+
* @param {Object} range - AG Grid cell range
|
|
43
|
+
* @param {Object} gridApi - AG Grid API
|
|
44
|
+
* @returns {boolean} - true pokud jsou všechny buňky editovatelné
|
|
45
|
+
*/
|
|
46
|
+
export const validateRangeEditable = (range, gridApi) => {
|
|
47
|
+
if (!range || !range.columns || range.columns.length === 0) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
const column = range.columns[0];
|
|
51
|
+
const colDef = column.getColDef();
|
|
52
|
+
// Pokud je editable funkce, musíme zkontrolovat každý řádek v range
|
|
53
|
+
if (typeof colDef.editable === 'function') {
|
|
54
|
+
const startRow = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
55
|
+
const endRow = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
56
|
+
// Zkontroluj každý řádek v range
|
|
57
|
+
for (let i = startRow; i <= endRow; i++) {
|
|
58
|
+
const node = gridApi.getDisplayedRowAtIndex(i);
|
|
59
|
+
if (!node)
|
|
60
|
+
continue;
|
|
61
|
+
const params = {
|
|
62
|
+
node,
|
|
63
|
+
data: node?.data,
|
|
64
|
+
column,
|
|
65
|
+
colDef,
|
|
66
|
+
api: gridApi,
|
|
67
|
+
context: gridApi.gridOptionsService?.gridOptions?.context
|
|
68
|
+
};
|
|
69
|
+
if (!colDef.editable(params)) {
|
|
70
|
+
return false; // Pokud aspoň jedna buňka není editovatelná
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
// Pro boolean nebo undefined použij isColumnEditable
|
|
76
|
+
return isColumnEditable(column, gridApi);
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Získá pozici poslední buňky v range pro umístění floating buttonu
|
|
80
|
+
* @param {Object} range - AG Grid cell range
|
|
81
|
+
* @param {Object} gridApi - AG Grid API
|
|
82
|
+
* @param {HTMLElement} rowsContainer - AG Grid rows container (.ag-center-cols-container)
|
|
83
|
+
* @returns {Object} - {x, y, width, height} pozice RELATIVNÍ k rows container
|
|
84
|
+
*/
|
|
85
|
+
export const getLastCellPosition = (range, gridApi, rowsContainer) => {
|
|
86
|
+
try {
|
|
87
|
+
const endRowIndex = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
88
|
+
const column = range.columns[0];
|
|
89
|
+
const colId = column.getColId();
|
|
90
|
+
// ✅ OPTIMALIZACE: querySelector je sice pomalejší, ale díky cache v useBulkCellEdit
|
|
91
|
+
// se volá pouze při změně pozice (cache hit = 0ms overhead)
|
|
92
|
+
const rowElement = document.querySelector(`[row-index="${endRowIndex}"]`);
|
|
93
|
+
if (!rowElement) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const cellElement = rowElement.querySelector(`[col-id="${colId}"]`);
|
|
97
|
+
if (!cellElement) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const cellRect = cellElement.getBoundingClientRect();
|
|
101
|
+
// ✅ OPTIMALIZACE: Výpočet pozice RELATIVNÍ k rows container
|
|
102
|
+
// Button je position: absolute uvnitř .ag-center-cols-container
|
|
103
|
+
// Tento container má transform: translateY() při scrollu → button scrolluje automaticky
|
|
104
|
+
if (rowsContainer) {
|
|
105
|
+
const containerRect = rowsContainer.getBoundingClientRect();
|
|
106
|
+
return {
|
|
107
|
+
x: cellRect.right - containerRect.left,
|
|
108
|
+
y: cellRect.bottom - containerRect.top,
|
|
109
|
+
width: cellRect.width,
|
|
110
|
+
height: cellRect.height,
|
|
111
|
+
top: cellRect.top - containerRect.top,
|
|
112
|
+
left: cellRect.left - containerRect.left,
|
|
113
|
+
right: cellRect.right - containerRect.left,
|
|
114
|
+
bottom: cellRect.bottom - containerRect.top
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Fallback: absolute pozice (window-relative) pokud container není dostupný
|
|
118
|
+
return {
|
|
119
|
+
x: cellRect.right,
|
|
120
|
+
y: cellRect.bottom,
|
|
121
|
+
width: cellRect.width,
|
|
122
|
+
height: cellRect.height,
|
|
123
|
+
top: cellRect.top,
|
|
124
|
+
left: cellRect.left,
|
|
125
|
+
right: cellRect.right,
|
|
126
|
+
bottom: cellRect.bottom
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
// Tiché selhání - vrátit null
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Aplikuje hromadné změny na všechny buňky v range
|
|
136
|
+
* @param {Object} range - AG Grid cell range
|
|
137
|
+
* @param {*} newValue - Nová hodnota
|
|
138
|
+
* @param {Object} gridApi - AG Grid API
|
|
139
|
+
* @param {Function} onComplete - Callback po dokončení
|
|
140
|
+
* @returns {Object} - {success, updatedCount, errors}
|
|
141
|
+
*/
|
|
142
|
+
export const applyBulkChanges = (range, newValue, gridApi, onComplete) => {
|
|
143
|
+
try {
|
|
144
|
+
const startRow = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
145
|
+
const endRow = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
146
|
+
const column = range.columns[0];
|
|
147
|
+
const field = column.getColDef().field;
|
|
148
|
+
if (!field) {
|
|
149
|
+
return {
|
|
150
|
+
success: false,
|
|
151
|
+
updatedCount: 0,
|
|
152
|
+
errors: ['Sloupec nemá definované field']
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
const rowsToUpdate = [];
|
|
156
|
+
const errors = [];
|
|
157
|
+
// Projít všechny řádky v range
|
|
158
|
+
for (let i = startRow; i <= endRow; i++) {
|
|
159
|
+
const node = gridApi.getDisplayedRowAtIndex(i);
|
|
160
|
+
if (!node || !node.data) {
|
|
161
|
+
errors.push(`Řádek ${i}: Node nenalezen`);
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// Vytvoř kopii dat s novou hodnotou
|
|
165
|
+
const updatedData = {
|
|
166
|
+
...node.data,
|
|
167
|
+
[field]: newValue
|
|
168
|
+
};
|
|
169
|
+
rowsToUpdate.push(updatedData);
|
|
170
|
+
}
|
|
171
|
+
// Aplikuj změny pomocí transaction API
|
|
172
|
+
if (rowsToUpdate.length > 0) {
|
|
173
|
+
const result = gridApi.applyTransaction({
|
|
174
|
+
update: rowsToUpdate
|
|
175
|
+
});
|
|
176
|
+
// Flash efekt pro aktualizované řádky
|
|
177
|
+
setTimeout(() => {
|
|
178
|
+
const updatedNodes = [];
|
|
179
|
+
rowsToUpdate.forEach(data => {
|
|
180
|
+
const node = gridApi.getRowNode(data.id);
|
|
181
|
+
if (node) {
|
|
182
|
+
updatedNodes.push(node);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
if (updatedNodes.length > 0 && column) {
|
|
186
|
+
gridApi.flashCells({
|
|
187
|
+
rowNodes: updatedNodes,
|
|
188
|
+
columns: [column.getColId()],
|
|
189
|
+
flashDelay: 0,
|
|
190
|
+
fadeDelay: 1000
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}, 100);
|
|
194
|
+
if (onComplete) {
|
|
195
|
+
onComplete({
|
|
196
|
+
success: true,
|
|
197
|
+
updatedCount: rowsToUpdate.length,
|
|
198
|
+
errors
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
success: true,
|
|
203
|
+
updatedCount: rowsToUpdate.length,
|
|
204
|
+
errors
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
success: false,
|
|
209
|
+
updatedCount: 0,
|
|
210
|
+
errors: errors.length > 0 ? errors : ['Žádné řádky k aktualizaci']
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const errorMsg = error?.message || 'Neznámá chyba při aplikaci změn';
|
|
215
|
+
if (onComplete) {
|
|
216
|
+
onComplete({
|
|
217
|
+
success: false,
|
|
218
|
+
updatedCount: 0,
|
|
219
|
+
errors: [errorMsg]
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
success: false,
|
|
224
|
+
updatedCount: 0,
|
|
225
|
+
errors: [errorMsg]
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Validuje hodnotu podle typu sloupce
|
|
231
|
+
* @param {*} value - Hodnota k validaci
|
|
232
|
+
* @param {Object} colDef - Column definition
|
|
233
|
+
* @returns {Object} - {valid, error, parsedValue}
|
|
234
|
+
*/
|
|
235
|
+
export const validateValue = (value, colDef) => {
|
|
236
|
+
// Prázdná hodnota
|
|
237
|
+
if (value === '' || value === null || value === undefined) {
|
|
238
|
+
return {
|
|
239
|
+
valid: true,
|
|
240
|
+
parsedValue: null,
|
|
241
|
+
error: null
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
// Detekce typu podle cellDataType nebo cellEditor
|
|
245
|
+
const dataType = colDef.cellDataType || colDef.type;
|
|
246
|
+
const cellEditor = colDef.cellEditor;
|
|
247
|
+
// Number validace
|
|
248
|
+
if (dataType === 'number' || cellEditor === 'agNumberCellEditor') {
|
|
249
|
+
const numValue = typeof value === 'number' ? value : parseFloat(value);
|
|
250
|
+
if (isNaN(numValue)) {
|
|
251
|
+
return {
|
|
252
|
+
valid: false,
|
|
253
|
+
error: 'Neplatné číslo',
|
|
254
|
+
parsedValue: null
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
valid: true,
|
|
259
|
+
parsedValue: numValue,
|
|
260
|
+
error: null
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
// Date validace
|
|
264
|
+
if (dataType === 'date' || cellEditor === 'agDateCellEditor') {
|
|
265
|
+
const dateValue = new Date(value);
|
|
266
|
+
if (isNaN(dateValue.getTime())) {
|
|
267
|
+
return {
|
|
268
|
+
valid: false,
|
|
269
|
+
error: 'Neplatné datum',
|
|
270
|
+
parsedValue: null
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
valid: true,
|
|
275
|
+
parsedValue: dateValue,
|
|
276
|
+
error: null
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
// Boolean validace
|
|
280
|
+
if (dataType === 'boolean') {
|
|
281
|
+
if (typeof value === 'boolean') {
|
|
282
|
+
return {
|
|
283
|
+
valid: true,
|
|
284
|
+
parsedValue: value,
|
|
285
|
+
error: null
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
const strValue = String(value).toLowerCase();
|
|
289
|
+
if (['true', '1', 'ano', 'yes'].includes(strValue)) {
|
|
290
|
+
return { valid: true, parsedValue: true, error: null };
|
|
291
|
+
}
|
|
292
|
+
if (['false', '0', 'ne', 'no'].includes(strValue)) {
|
|
293
|
+
return { valid: true, parsedValue: false, error: null };
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
valid: false,
|
|
297
|
+
error: 'Neplatná boolean hodnota',
|
|
298
|
+
parsedValue: null
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
// Text - vše projde
|
|
302
|
+
return {
|
|
303
|
+
valid: true,
|
|
304
|
+
parsedValue: String(value),
|
|
305
|
+
error: null
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
/**
|
|
309
|
+
* Získá typ inputu podle column definition
|
|
310
|
+
* @param {Object} colDef - Column definition
|
|
311
|
+
* @returns {string} - 'number', 'date', 'text'
|
|
312
|
+
*/
|
|
313
|
+
export const getInputType = (colDef) => {
|
|
314
|
+
const dataType = colDef.cellDataType || colDef.type;
|
|
315
|
+
const cellEditor = colDef.cellEditor;
|
|
316
|
+
if (dataType === 'number' || cellEditor === 'agNumberCellEditor') {
|
|
317
|
+
return 'number';
|
|
318
|
+
}
|
|
319
|
+
if (dataType === 'date' || cellEditor === 'agDateCellEditor') {
|
|
320
|
+
return 'date';
|
|
321
|
+
}
|
|
322
|
+
if (dataType === 'boolean') {
|
|
323
|
+
return 'boolean';
|
|
324
|
+
}
|
|
325
|
+
return 'text';
|
|
326
|
+
};
|
|
327
|
+
/**
|
|
328
|
+
* Aplikuje hromadné změny s voláním API
|
|
329
|
+
* @param {Object} range - AG Grid cell range
|
|
330
|
+
* @param {*} newValue - Nová hodnota
|
|
331
|
+
* @param {Object} gridApi - AG Grid API
|
|
332
|
+
* @param {Object} bulkEditApi - API konfigurace z colDef
|
|
333
|
+
* @param {string} accessToken - Access token pro API
|
|
334
|
+
* @param {Function} fetchDataUIAsync - Funkce pro volání API
|
|
335
|
+
* @param {Function} onComplete - Callback po dokončení
|
|
336
|
+
* @returns {Object} - {success, updatedCount, error}
|
|
337
|
+
*/
|
|
338
|
+
export const applyBulkChangesWithApi = async (range, newValue, gridApi, bulkEditApi, accessToken, fetchDataUIAsync, onComplete) => {
|
|
339
|
+
try {
|
|
340
|
+
const startRow = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
341
|
+
const endRow = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
|
|
342
|
+
const column = range.columns[0];
|
|
343
|
+
const field = column.getColDef().field;
|
|
344
|
+
// Získat IDs a data všech řádků v range
|
|
345
|
+
const ids = [];
|
|
346
|
+
const rows = [];
|
|
347
|
+
for (let i = startRow; i <= endRow; i++) {
|
|
348
|
+
const node = gridApi.getDisplayedRowAtIndex(i);
|
|
349
|
+
if (node?.data) {
|
|
350
|
+
const id = node.data.id;
|
|
351
|
+
if (id !== undefined && id !== null) {
|
|
352
|
+
ids.push(id);
|
|
353
|
+
rows.push(node.data);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (ids.length === 0) {
|
|
358
|
+
return {
|
|
359
|
+
success: false,
|
|
360
|
+
updatedCount: 0,
|
|
361
|
+
error: 'Žádné platné záznamy k aktualizaci'
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
// Sestavit request podle bulkEditApi konfigurace
|
|
365
|
+
let requestData;
|
|
366
|
+
// mapRequest má přednost před lookup
|
|
367
|
+
if (bulkEditApi.mapRequest) {
|
|
368
|
+
// Custom mapRequest funkce
|
|
369
|
+
requestData = await bulkEditApi.mapRequest(ids, newValue, field, rows, fetchDataUIAsync, accessToken);
|
|
370
|
+
}
|
|
371
|
+
else if (bulkEditApi.lookup) {
|
|
372
|
+
// Lookup pattern - automaticky vytvořit PATCH request
|
|
373
|
+
requestData = {
|
|
374
|
+
ids,
|
|
375
|
+
patch: [{
|
|
376
|
+
op: 'replace',
|
|
377
|
+
path: bulkEditApi.lookup.patchPath,
|
|
378
|
+
value: newValue
|
|
379
|
+
}]
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
// Fallback default
|
|
384
|
+
requestData = {
|
|
385
|
+
ids,
|
|
386
|
+
patch: [{ op: 'replace', path: `/${field}`, value: newValue }]
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
// Zavolat API
|
|
390
|
+
const response = await fetchDataUIAsync(bulkEditApi.endpoint, requestData, accessToken);
|
|
391
|
+
if (response.success) {
|
|
392
|
+
// Update grid - použít data z response nebo lokálně
|
|
393
|
+
let updatedData;
|
|
394
|
+
// Pokud existuje mapResponse, má přednost před automatickým lookup patternem
|
|
395
|
+
if (bulkEditApi.mapResponse) {
|
|
396
|
+
updatedData = await bulkEditApi.mapResponse(response.data, ids, rows, field, newValue, bulkEditApi, fetchDataUIAsync, accessToken);
|
|
397
|
+
}
|
|
398
|
+
else if (bulkEditApi.lookup) {
|
|
399
|
+
// Lookup pattern - najít objekt v lookupData a aktualizovat rows
|
|
400
|
+
let selectedItem = null;
|
|
401
|
+
// Pokud je newValue prázdné ("" nebo null), nastavit selectedItem na null
|
|
402
|
+
if (newValue !== "" && newValue !== null && newValue !== undefined) {
|
|
403
|
+
const foundItem = bulkEditApi.lookup.data.find(item => item.id === newValue);
|
|
404
|
+
if (!foundItem) {
|
|
405
|
+
console.warn(`⚠️ ${bulkEditApi.lookup.objectField} nenalezen pro ID:`, newValue);
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
// ✅ Vytvoř deep copy objektu včetně všech nested properties (např. icon)
|
|
409
|
+
// Tím zajistíme, že AG Grid detekuje změnu a IconRenderer dostane nová data
|
|
410
|
+
selectedItem = JSON.parse(JSON.stringify(foundItem));
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// Aktualizovat rows - i když je selectedItem null (= clear hodnoty)
|
|
414
|
+
// ✅ Vytvoř nový objekt row s novým nested objektem (např. accountingType)
|
|
415
|
+
updatedData = rows.map(row => {
|
|
416
|
+
if (ids.includes(row.id)) {
|
|
417
|
+
return {
|
|
418
|
+
...row,
|
|
419
|
+
[bulkEditApi.lookup.objectField]: selectedItem,
|
|
420
|
+
[bulkEditApi.lookup.idField]: selectedItem ? selectedItem.id : null
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
return row;
|
|
424
|
+
});
|
|
425
|
+
// } else if (response.data?.records) {
|
|
426
|
+
// // Mapovat response records (id + value) na existující rows
|
|
427
|
+
// Custom mapResponse funkce// updatedData = rows.map(row => {
|
|
428
|
+
// const responseRecord = response.data.records.find(r => r.id === row.id);
|
|
429
|
+
// if (responseRecord) {
|
|
430
|
+
// return {
|
|
431
|
+
// ...row,
|
|
432
|
+
// [field]: responseRecord.value
|
|
433
|
+
// };
|
|
434
|
+
// }
|
|
435
|
+
// // Fallback - použít newValue
|
|
436
|
+
// return {
|
|
437
|
+
// ...row,
|
|
438
|
+
// [field]: newValue
|
|
439
|
+
// };
|
|
440
|
+
// });
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
// Fallback - lokální update s hodnotou z API requestu
|
|
444
|
+
const valueFromRequest = requestData.patch?.[0]?.value ?? newValue;
|
|
445
|
+
updatedData = rows.map(row => ({
|
|
446
|
+
...row,
|
|
447
|
+
[field]: valueFromRequest
|
|
448
|
+
}));
|
|
449
|
+
}
|
|
450
|
+
// Aplikovat změny do gridu
|
|
451
|
+
if (updatedData && updatedData.length > 0) {
|
|
452
|
+
gridApi.applyTransaction({ update: updatedData });
|
|
453
|
+
// ✅ DŮLEŽITÉ: Force refresh buněk po update transaction
|
|
454
|
+
// AG Grid nemusí detekovat změny v nested objektech (např. accountingType)
|
|
455
|
+
// refreshCells zajistí, že cell renderery dostanou nová data
|
|
456
|
+
const updatedNodes = [];
|
|
457
|
+
ids.forEach(id => {
|
|
458
|
+
let node = gridApi.getRowNode(id);
|
|
459
|
+
if (!node) {
|
|
460
|
+
gridApi.forEachNode(n => {
|
|
461
|
+
if (n.data?.id === id) {
|
|
462
|
+
node = n;
|
|
463
|
+
}
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
if (node) {
|
|
467
|
+
updatedNodes.push(node);
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
if (updatedNodes.length > 0) {
|
|
471
|
+
// ✅ KLÍČOVÉ: Refresh VŠECH buněk v řádku, ne jen editovaného sloupce
|
|
472
|
+
// Důvod: Pokud se změní nested objekt (např. accountingType.icon),
|
|
473
|
+
// musíme refreshnout všechny sloupce které z něj čtou (včetně iconField)
|
|
474
|
+
gridApi.refreshCells({
|
|
475
|
+
rowNodes: updatedNodes,
|
|
476
|
+
// columns: [column.getColId()], // ← Odstraněno - refresh všech sloupců
|
|
477
|
+
force: true
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
// Flash efekt
|
|
482
|
+
setTimeout(() => {
|
|
483
|
+
const updatedNodes = [];
|
|
484
|
+
ids.forEach(id => {
|
|
485
|
+
// Najít node podle id
|
|
486
|
+
let node = gridApi.getRowNode(id);
|
|
487
|
+
if (!node) {
|
|
488
|
+
// Fallback - hledat v datech
|
|
489
|
+
gridApi.forEachNode(n => {
|
|
490
|
+
if (n.data?.id === id) {
|
|
491
|
+
node = n;
|
|
492
|
+
}
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
if (node) {
|
|
496
|
+
updatedNodes.push(node);
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
if (updatedNodes.length > 0 && column) {
|
|
500
|
+
gridApi.flashCells({
|
|
501
|
+
rowNodes: updatedNodes,
|
|
502
|
+
columns: [column.getColId()],
|
|
503
|
+
flashDelay: 0,
|
|
504
|
+
fadeDelay: 1000
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
}, 100);
|
|
508
|
+
// Success callback
|
|
509
|
+
if (bulkEditApi.onSuccess) {
|
|
510
|
+
bulkEditApi.onSuccess(response.data, ids, rows);
|
|
511
|
+
}
|
|
512
|
+
if (onComplete) {
|
|
513
|
+
onComplete({
|
|
514
|
+
success: true,
|
|
515
|
+
updatedCount: ids.length,
|
|
516
|
+
data: response.data
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
return {
|
|
520
|
+
success: true,
|
|
521
|
+
updatedCount: ids.length,
|
|
522
|
+
data: response.data
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
// Error handling
|
|
527
|
+
const errorMessage = response.error?.message ||
|
|
528
|
+
response.message ||
|
|
529
|
+
'Chyba při ukládání';
|
|
530
|
+
// Error callback
|
|
531
|
+
if (bulkEditApi.onError) {
|
|
532
|
+
bulkEditApi.onError(response.error, ids, rows);
|
|
533
|
+
}
|
|
534
|
+
if (onComplete) {
|
|
535
|
+
onComplete({
|
|
536
|
+
success: false,
|
|
537
|
+
updatedCount: 0,
|
|
538
|
+
error: errorMessage
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
return {
|
|
542
|
+
success: false,
|
|
543
|
+
updatedCount: 0,
|
|
544
|
+
error: errorMessage
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
catch (error) {
|
|
549
|
+
const errorMessage = error?.message || 'Neznámá chyba';
|
|
550
|
+
// Error callback
|
|
551
|
+
if (bulkEditApi.onError) {
|
|
552
|
+
bulkEditApi.onError(error, [], []);
|
|
553
|
+
}
|
|
554
|
+
if (onComplete) {
|
|
555
|
+
onComplete({
|
|
556
|
+
success: false,
|
|
557
|
+
updatedCount: 0,
|
|
558
|
+
error: errorMessage
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
return {
|
|
562
|
+
success: false,
|
|
563
|
+
updatedCount: 0,
|
|
564
|
+
error: errorMessage
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
};
|
|
568
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../BulkEdit/utils.js"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,8DAA8D;IAC9D,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS,EAAE,IAAI;YACrB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,OAAO,CAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO;SAC1D,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,gDAAgD;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC;IAC5D,MAAM,aAAa,GAAG,WAAW,EAAE,aAAa,CAAC;IACjD,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,oEAAoE;IACpE,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExE,iCAAiC;QACjC,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,MAAM,GAAG;gBACb,IAAI;gBACJ,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,MAAM;gBACN,MAAM;gBACN,GAAG,EAAE,OAAO;gBACZ,OAAO,EAAE,OAAO,CAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO;aAC1D,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC,CAAC,4CAA4C;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,oFAAoF;QACpF,4DAA4D;QAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,WAAW,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QAErD,4DAA4D;QAC5D,gEAAgE;QAChE,wFAAwF;QACxF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAE5D,OAAO;gBACL,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI;gBACtC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG;gBACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG;gBACrC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;gBACxC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI;gBAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG;aAC5C,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,OAAO;YACL,CAAC,EAAE,QAAQ,CAAC,KAAK;YACjB,CAAC,EAAE,QAAQ,CAAC,MAAM;YAClB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;IACvE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,+BAA+B,CAAC;aAC1C,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,oCAAoC;YACpC,MAAM,WAAW,GAAG;gBAClB,GAAG,IAAI,CAAC,IAAI;gBACZ,CAAC,KAAK,CAAC,EAAE,QAAQ;aAClB,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,uCAAuC;QACvC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBACtC,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,sCAAsC;YACtC,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzC,IAAI,IAAI,EAAE,CAAC;wBACT,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;oBACtC,OAAO,CAAC,UAAU,CAAC;wBACjB,QAAQ,EAAE,YAAY;wBACtB,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC5B,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC;oBACT,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,YAAY,CAAC,MAAM;oBACjC,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,YAAY,CAAC,MAAM;gBACjC,MAAM;aACP,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;SACnE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAO,IAAI,iCAAiC,CAAC;QACrE,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC;gBACT,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC7C,kBAAkB;IAClB,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAErC,kBAAkB;IAClB,IAAI,QAAQ,KAAK,QAAQ,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,QAAQ;YACrB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,KAAK,MAAM,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,KAAK;gBAClB,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;QAC1B,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAErC,IAAI,QAAQ,KAAK,QAAQ,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,EAAE;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;QAEvC,wCAAwC;QACxC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;gBACf,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,oCAAoC;aAC5C,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,IAAI,WAAW,CAAC;QAChB,qCAAqC;QACrC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,2BAA2B;YAC3B,WAAW,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACxG,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9B,sDAAsD;YACtD,WAAW,GAAG;gBACZ,GAAG;gBACH,KAAK,EAAE,CAAC;wBACN,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS;wBAClC,KAAK,EAAE,QAAQ;qBAChB,CAAC;aACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,WAAW,GAAG;gBACZ,GAAG;gBACH,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;QAED,cAAc;QACd,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,WAAW,CAAC,QAAQ,EACpB,WAAW,EACX,WAAW,CACZ,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,oDAAoD;YACpD,IAAI,WAAW,CAAC;YAEhB,6EAA6E;YAC7E,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACrI,CAAC;iBAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC9B,iEAAiE;gBACjE,IAAI,YAAY,GAAG,IAAI,CAAC;gBAExB,0EAA0E;gBAC1E,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACnE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;oBAE7E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,WAAW,oBAAoB,EAAE,QAAQ,CAAC,CAAC;oBACnF,CAAC;yBAAM,CAAC;wBACN,yEAAyE;wBACzE,4EAA4E;wBAC5E,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;gBAED,oEAAoE;gBACpE,0EAA0E;gBAC1E,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzB,OAAO;4BACL,GAAG,GAAG;4BACN,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY;4BAC9C,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;yBACpE,CAAC;oBACJ,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,CAAC;gBACL,uCAAuC;gBACvC,gEAAgE;gBAC7D,gEAAgE;gBACnE,+EAA+E;gBAC/E,4BAA4B;gBAC5B,iBAAiB;gBACjB,kBAAkB;gBAClB,wCAAwC;gBACxC,WAAW;gBACX,QAAQ;gBACR,oCAAoC;gBACpC,eAAe;gBACf,gBAAgB;gBAChB,0BAA0B;gBAC1B,SAAS;gBACT,QAAQ;YACR,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;gBACnE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC7B,GAAG,GAAG;oBACN,CAAC,KAAK,CAAC,EAAE,gBAAgB;iBAC1B,CAAC,CAAC,CAAC;YACN,CAAC;YAED,2BAA2B;YAC3B,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAElD,wDAAwD;gBACxD,2EAA2E;gBAC3E,6DAA6D;gBAC7D,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACf,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;4BACtB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gCACtB,IAAI,GAAG,CAAC,CAAC;4BACX,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,IAAI,EAAE,CAAC;wBACT,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,qEAAqE;oBACrE,mEAAmE;oBACnE,yEAAyE;oBACzE,OAAO,CAAC,YAAY,CAAC;wBACnB,QAAQ,EAAE,YAAY;wBACtB,yEAAyE;wBACzE,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,cAAc;YACd,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACf,sBAAsB;oBACtB,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,6BAA6B;wBAC7B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;4BACtB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gCACtB,IAAI,GAAG,CAAC,CAAC;4BACX,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,IAAI,EAAE,CAAC;wBACT,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;oBACtC,OAAO,CAAC,UAAU,CAAC;wBACjB,QAAQ,EAAE,YAAY;wBACtB,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC5B,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,mBAAmB;YACnB,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1B,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC;oBACT,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,GAAG,CAAC,MAAM;oBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,GAAG,CAAC,MAAM;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO;gBACxB,QAAQ,CAAC,OAAO;gBAChB,oBAAoB,CAAC;YAEzC,iBAAiB;YACjB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC;oBACT,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,CAAC;oBACf,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;QAEvD,iBAAiB;QACjB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC;gBACT,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export class CheckboxRenderer extends React.Component {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super(props);
|
|
7
|
+
this.checkedHandler = this.checkedHandler.bind(this);
|
|
8
|
+
}
|
|
9
|
+
checkedHandler(event) {
|
|
10
|
+
const { node, column: { colId } = {} } = this.props;
|
|
11
|
+
const { target: { checked } = {} } = event;
|
|
12
|
+
node.setDataValue(colId, checked);
|
|
13
|
+
}
|
|
14
|
+
render() {
|
|
15
|
+
const { data, value } = this.props;
|
|
16
|
+
return (!!data && (_jsx("div", { style: { textAlign: 'center' }, children: _jsx("input", { type: 'checkbox', checked: value, onClick: this.checkedHandler }) })));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=CheckBoxRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckBoxRenderer.js","sourceRoot":"","sources":["../CheckBoxRenderer.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS;IACjD,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,cAAc,CAAC,KAAK;QAChB,MAAM,EAAC,IAAI,EAAE,MAAM,EAAE,EAAC,KAAK,EAAC,GAAG,EAAE,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,MAAM,EAAC,MAAM,EAAE,EAAC,OAAO,EAAC,GAAG,EAAE,EAAC,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACF,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAI,IAAI,CAAC,KAAK,CAAC;QAClC,OAAO,CACH,CAAC,CAAC,IAAI,IAAI,CACN,cAAK,KAAK,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,YAC7B,gBAAO,IAAI,EAAC,UAAU,EAClB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,IAAI,CAAC,cAAc,GAC9B,GAEA,CACT,CACJ,CAAA;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import Button from 'antd/es/button';
|
|
5
|
+
import './ExtendButton.css';
|
|
6
|
+
const ExtendButton = (props) => {
|
|
7
|
+
const { size, className, ...restProps } = props;
|
|
8
|
+
const extraSmallClass = size === 'extraSmall' ? 'extra-small-button' : '';
|
|
9
|
+
const { children } = props;
|
|
10
|
+
return (_jsx("div", { className: `${extraSmallClass} ${className}`, children: _jsx(Button, { ...restProps, children: children }) }));
|
|
11
|
+
};
|
|
12
|
+
export default ExtendButton;
|
|
13
|
+
//# sourceMappingURL=ExtendButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtendButton.js","sourceRoot":"","sources":["../../Components/ExtendButton.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAE5B,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE;IAC7B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,eAAe,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,OAAO,CACL,cAAK,SAAS,EAAE,GAAG,eAAe,IAAI,SAAS,EAAE,YAC/C,KAAC,MAAM,OAAK,SAAS,YAAG,QAAQ,GAAU,GACtC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function CountryCellRenderer(params: any): "" | import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export default function CountryCellRenderer(params) {
|
|
3
|
+
const { value, value: { code } = {} } = params;
|
|
4
|
+
if (!value)
|
|
5
|
+
return '';
|
|
6
|
+
let imageUrl = '';
|
|
7
|
+
if (code)
|
|
8
|
+
imageUrl = `https://rhplus.blob.core.windows.net/countries/${code.toUpperCase()}.png`;
|
|
9
|
+
const { value: { name } = {} } = params;
|
|
10
|
+
return (_jsxs("div", { children: [_jsx("span", { style: { marginRight: 10 }, children: _jsx("img", { alt: "img", src: imageUrl }) }), name] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CountryCellRenderer.js.map
|