@bit.rhplus/ui.grid-layout 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ColumnEditorModal.jsx +339 -0
- package/dist/ColumnEditorModal.d.ts +16 -0
- package/dist/ColumnEditorModal.js +166 -0
- package/dist/ColumnEditorModal.js.map +1 -0
- package/dist/gridLayout.d.ts +43 -0
- package/dist/gridLayout.js +104 -0
- package/dist/gridLayout.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1754923422987.js +7 -0
- package/dist/useGridLayout.d.ts +16 -0
- package/dist/useGridLayout.js +445 -0
- package/dist/useGridLayout.js.map +1 -0
- package/dist/useGridLayoutApi.d.ts +8 -0
- package/dist/useGridLayoutApi.js +231 -0
- package/dist/useGridLayoutApi.js.map +1 -0
- package/gridLayout.js +107 -0
- package/index.js +3 -0
- package/package.json +35 -0
- package/types/asset.d.ts +43 -0
- package/types/style.d.ts +42 -0
- package/useGridLayout.js +512 -0
- package/useGridLayoutApi.js +296 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import React, { useState, useCallback, useMemo } from 'react';
|
|
3
|
+
import { default as Button } from 'antd/es/button';
|
|
4
|
+
import { default as Checkbox } from 'antd/es/checkbox';
|
|
5
|
+
import { default as InputNumber } from 'antd/es/input-number';
|
|
6
|
+
import { default as Space } from 'antd/es/space';
|
|
7
|
+
import { default as Typography } from 'antd/es/typography';
|
|
8
|
+
import { default as Divider } from 'antd/es/divider';
|
|
9
|
+
import {
|
|
10
|
+
HolderOutlined,
|
|
11
|
+
EyeOutlined,
|
|
12
|
+
EyeInvisibleOutlined,
|
|
13
|
+
SettingOutlined
|
|
14
|
+
} from '@ant-design/icons';
|
|
15
|
+
import DraggableModal from '@bit.rhplus/draggable-modal';
|
|
16
|
+
import {
|
|
17
|
+
DndContext,
|
|
18
|
+
closestCenter,
|
|
19
|
+
KeyboardSensor,
|
|
20
|
+
PointerSensor,
|
|
21
|
+
useSensor,
|
|
22
|
+
useSensors,
|
|
23
|
+
} from '@dnd-kit/core';
|
|
24
|
+
import {
|
|
25
|
+
arrayMove,
|
|
26
|
+
SortableContext,
|
|
27
|
+
sortableKeyboardCoordinates,
|
|
28
|
+
verticalListSortingStrategy,
|
|
29
|
+
useSortable,
|
|
30
|
+
} from '@dnd-kit/sortable';
|
|
31
|
+
import {
|
|
32
|
+
CSS,
|
|
33
|
+
} from '@dnd-kit/utilities';
|
|
34
|
+
|
|
35
|
+
const { Text, Title } = Typography;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Sortable řádek pro jeden sloupec
|
|
39
|
+
*/
|
|
40
|
+
const SortableColumnRow = ({ column, onVisibilityChange, onWidthChange }) => {
|
|
41
|
+
const {
|
|
42
|
+
attributes,
|
|
43
|
+
listeners,
|
|
44
|
+
setNodeRef,
|
|
45
|
+
transform,
|
|
46
|
+
transition,
|
|
47
|
+
isDragging,
|
|
48
|
+
} = useSortable({ id: column.id });
|
|
49
|
+
|
|
50
|
+
const style = {
|
|
51
|
+
transform: CSS.Transform.toString(transform),
|
|
52
|
+
transition,
|
|
53
|
+
opacity: isDragging ? 0.5 : 1,
|
|
54
|
+
backgroundColor: isDragging ? '#f0f0f0' : 'white',
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<div
|
|
59
|
+
ref={setNodeRef}
|
|
60
|
+
style={style}
|
|
61
|
+
className="column-row"
|
|
62
|
+
>
|
|
63
|
+
<div className="column-row-content">
|
|
64
|
+
{/* Drag Handle */}
|
|
65
|
+
<div className="drag-handle" {...attributes} {...listeners}>
|
|
66
|
+
<HolderOutlined style={{ color: '#999', cursor: 'grab' }} />
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
{/* Column Name */}
|
|
70
|
+
<div className="column-name">
|
|
71
|
+
<Text strong>{column.headerName}</Text>
|
|
72
|
+
<br />
|
|
73
|
+
<Text type="secondary" style={{ fontSize: '12px' }}>
|
|
74
|
+
{column.field}
|
|
75
|
+
</Text>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
{/* Width Input */}
|
|
79
|
+
<div className="column-width">
|
|
80
|
+
<InputNumber
|
|
81
|
+
min={50}
|
|
82
|
+
max={1000}
|
|
83
|
+
value={column.width}
|
|
84
|
+
onChange={(value) => onWidthChange(column.id, value)}
|
|
85
|
+
addonAfter="px"
|
|
86
|
+
size="small"
|
|
87
|
+
style={{ width: '100px' }}
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
{/* Visibility Toggle */}
|
|
92
|
+
<div className="column-visibility">
|
|
93
|
+
<Checkbox
|
|
94
|
+
checked={column.visible}
|
|
95
|
+
onChange={(e) => onVisibilityChange(column.id, e.target.checked)}
|
|
96
|
+
>
|
|
97
|
+
<Space>
|
|
98
|
+
{column.visible ? <EyeOutlined /> : <EyeInvisibleOutlined />}
|
|
99
|
+
{column.visible ? 'Zobrazit' : 'Skrýt'}
|
|
100
|
+
</Space>
|
|
101
|
+
</Checkbox>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Modal pro editaci sloupců AG-Grid gridu
|
|
110
|
+
* @param {Object} props
|
|
111
|
+
* @param {boolean} props.open - Zda je modal otevřený
|
|
112
|
+
* @param {Function} props.onCancel - Callback pro zavření modalu
|
|
113
|
+
* @param {Function} props.onSave - Callback pro uložení změn
|
|
114
|
+
* @param {Array} props.columns - Pole sloupců k editaci
|
|
115
|
+
* @param {Function} props.getContainer - Container pro modal
|
|
116
|
+
*/
|
|
117
|
+
export default function ColumnEditorModal({
|
|
118
|
+
open,
|
|
119
|
+
onCancel,
|
|
120
|
+
onSave,
|
|
121
|
+
columns = [],
|
|
122
|
+
getContainer
|
|
123
|
+
}) {
|
|
124
|
+
// Lokální stav pro editaci sloupců
|
|
125
|
+
const [editingColumns, setEditingColumns] = useState([]);
|
|
126
|
+
|
|
127
|
+
// Inicializace editovacího stavu při otevření modalu
|
|
128
|
+
React.useEffect(() => {
|
|
129
|
+
if (open && columns.length > 0) {
|
|
130
|
+
const initialColumns = columns.map((col, index) => ({
|
|
131
|
+
id: col.field,
|
|
132
|
+
field: col.field,
|
|
133
|
+
headerName: col.headerName || col.field,
|
|
134
|
+
width: col.width || 100,
|
|
135
|
+
visible: !col.hide,
|
|
136
|
+
order: index
|
|
137
|
+
}));
|
|
138
|
+
setEditingColumns(initialColumns);
|
|
139
|
+
}
|
|
140
|
+
}, [open, columns]);
|
|
141
|
+
|
|
142
|
+
// Sensor pro drag&drop
|
|
143
|
+
const sensors = useSensors(
|
|
144
|
+
useSensor(PointerSensor),
|
|
145
|
+
useSensor(KeyboardSensor, {
|
|
146
|
+
coordinateGetter: sortableKeyboardCoordinates,
|
|
147
|
+
})
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
// Handler pro ukončení drag operace
|
|
151
|
+
const handleDragEnd = useCallback((event) => {
|
|
152
|
+
const { active, over } = event;
|
|
153
|
+
|
|
154
|
+
if (active.id !== over?.id) {
|
|
155
|
+
setEditingColumns((items) => {
|
|
156
|
+
const oldIndex = items.findIndex((item) => item.id === active.id);
|
|
157
|
+
const newIndex = items.findIndex((item) => item.id === over.id);
|
|
158
|
+
|
|
159
|
+
return arrayMove(items, oldIndex, newIndex);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}, []);
|
|
163
|
+
|
|
164
|
+
// Handler pro změnu viditelnosti sloupce
|
|
165
|
+
const handleVisibilityChange = useCallback((columnId, visible) => {
|
|
166
|
+
setEditingColumns((prev) =>
|
|
167
|
+
prev.map((col) =>
|
|
168
|
+
col.id === columnId ? { ...col, visible } : col
|
|
169
|
+
)
|
|
170
|
+
);
|
|
171
|
+
}, []);
|
|
172
|
+
|
|
173
|
+
// Handler pro změnu šířky sloupce
|
|
174
|
+
const handleWidthChange = useCallback((columnId, width) => {
|
|
175
|
+
if (width && width >= 50) {
|
|
176
|
+
setEditingColumns((prev) =>
|
|
177
|
+
prev.map((col) =>
|
|
178
|
+
col.id === columnId ? { ...col, width } : col
|
|
179
|
+
)
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
}, []);
|
|
183
|
+
|
|
184
|
+
// Handler pro uložení změn
|
|
185
|
+
const handleSave = useCallback(() => {
|
|
186
|
+
if (onSave) {
|
|
187
|
+
onSave(editingColumns);
|
|
188
|
+
}
|
|
189
|
+
onCancel();
|
|
190
|
+
}, [editingColumns, onSave, onCancel]);
|
|
191
|
+
|
|
192
|
+
// Handler pro reset na původní stav
|
|
193
|
+
const handleReset = useCallback(() => {
|
|
194
|
+
const resetColumns = columns.map((col, index) => ({
|
|
195
|
+
id: col.field,
|
|
196
|
+
field: col.field,
|
|
197
|
+
headerName: col.headerName || col.field,
|
|
198
|
+
width: col.width || 100,
|
|
199
|
+
visible: !col.hide,
|
|
200
|
+
order: index
|
|
201
|
+
}));
|
|
202
|
+
setEditingColumns(resetColumns);
|
|
203
|
+
}, [columns]);
|
|
204
|
+
|
|
205
|
+
const columnIds = useMemo(() => editingColumns.map((col) => col.id), [editingColumns]);
|
|
206
|
+
console.log("nacitam modal", open);
|
|
207
|
+
return (
|
|
208
|
+
<DraggableModal
|
|
209
|
+
width="600px"
|
|
210
|
+
open={open}
|
|
211
|
+
getContainer={getContainer}
|
|
212
|
+
onCancel={onCancel}
|
|
213
|
+
maskClosable={false}
|
|
214
|
+
title={
|
|
215
|
+
<Space>
|
|
216
|
+
<SettingOutlined />
|
|
217
|
+
Nastavení sloupců
|
|
218
|
+
</Space>
|
|
219
|
+
}
|
|
220
|
+
footer={
|
|
221
|
+
<Space>
|
|
222
|
+
<Button onClick={handleReset}>
|
|
223
|
+
Obnovit původní
|
|
224
|
+
</Button>
|
|
225
|
+
<Button onClick={onCancel}>
|
|
226
|
+
Storno
|
|
227
|
+
</Button>
|
|
228
|
+
<Button type="primary" onClick={handleSave}>
|
|
229
|
+
Uložit změny
|
|
230
|
+
</Button>
|
|
231
|
+
</Space>
|
|
232
|
+
}
|
|
233
|
+
>
|
|
234
|
+
<div className="column-editor-content">
|
|
235
|
+
<div className="column-editor-header">
|
|
236
|
+
<Text type="secondary">
|
|
237
|
+
Přetáhněte sloupce pro změnu pořadí. Upravte šířku a viditelnost podle potřeby.
|
|
238
|
+
</Text>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
<Divider />
|
|
242
|
+
|
|
243
|
+
<div className="column-list">
|
|
244
|
+
<DndContext
|
|
245
|
+
sensors={sensors}
|
|
246
|
+
collisionDetection={closestCenter}
|
|
247
|
+
onDragEnd={handleDragEnd}
|
|
248
|
+
>
|
|
249
|
+
<SortableContext items={columnIds} strategy={verticalListSortingStrategy}>
|
|
250
|
+
{editingColumns.map((column) => (
|
|
251
|
+
<SortableColumnRow
|
|
252
|
+
key={column.id}
|
|
253
|
+
column={column}
|
|
254
|
+
onVisibilityChange={handleVisibilityChange}
|
|
255
|
+
onWidthChange={handleWidthChange}
|
|
256
|
+
/>
|
|
257
|
+
))}
|
|
258
|
+
</SortableContext>
|
|
259
|
+
</DndContext>
|
|
260
|
+
</div>
|
|
261
|
+
|
|
262
|
+
<Divider />
|
|
263
|
+
|
|
264
|
+
<div className="column-editor-footer">
|
|
265
|
+
<Text type="secondary" style={{ fontSize: '12px' }}>
|
|
266
|
+
Celkem sloupců: {editingColumns.length} |
|
|
267
|
+
Zobrazených: {editingColumns.filter(c => c.visible).length} |
|
|
268
|
+
Skrytých: {editingColumns.filter(c => !c.visible).length}
|
|
269
|
+
</Text>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
|
|
273
|
+
<style jsx>{`
|
|
274
|
+
.column-editor-content {
|
|
275
|
+
min-height: 400px;
|
|
276
|
+
max-height: 600px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.column-editor-header {
|
|
280
|
+
margin-bottom: 16px;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.column-list {
|
|
284
|
+
max-height: 400px;
|
|
285
|
+
overflow-y: auto;
|
|
286
|
+
border: 1px solid #f0f0f0;
|
|
287
|
+
border-radius: 6px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.column-row {
|
|
291
|
+
border-bottom: 1px solid #f0f0f0;
|
|
292
|
+
transition: background-color 0.2s;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.column-row:hover {
|
|
296
|
+
background-color: #fafafa;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.column-row:last-child {
|
|
300
|
+
border-bottom: none;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.column-row-content {
|
|
304
|
+
display: flex;
|
|
305
|
+
align-items: center;
|
|
306
|
+
padding: 12px 16px;
|
|
307
|
+
gap: 16px;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.drag-handle {
|
|
311
|
+
flex-shrink: 0;
|
|
312
|
+
width: 20px;
|
|
313
|
+
display: flex;
|
|
314
|
+
align-items: center;
|
|
315
|
+
justify-content: center;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.column-name {
|
|
319
|
+
flex: 1;
|
|
320
|
+
min-width: 150px;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.column-width {
|
|
324
|
+
flex-shrink: 0;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.column-visibility {
|
|
328
|
+
flex-shrink: 0;
|
|
329
|
+
width: 120px;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.column-editor-footer {
|
|
333
|
+
margin-top: 16px;
|
|
334
|
+
text-align: center;
|
|
335
|
+
}
|
|
336
|
+
`}</style>
|
|
337
|
+
</DraggableModal>
|
|
338
|
+
);
|
|
339
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modal pro editaci sloupců AG-Grid gridu
|
|
3
|
+
* @param {Object} props
|
|
4
|
+
* @param {boolean} props.open - Zda je modal otevřený
|
|
5
|
+
* @param {Function} props.onCancel - Callback pro zavření modalu
|
|
6
|
+
* @param {Function} props.onSave - Callback pro uložení změn
|
|
7
|
+
* @param {Array} props.columns - Pole sloupců k editaci
|
|
8
|
+
* @param {Function} props.getContainer - Container pro modal
|
|
9
|
+
*/
|
|
10
|
+
export default function ColumnEditorModal({ open, onCancel, onSave, columns, getContainer }: {
|
|
11
|
+
open: boolean;
|
|
12
|
+
onCancel: Function;
|
|
13
|
+
onSave: Function;
|
|
14
|
+
columns: any[];
|
|
15
|
+
getContainer: Function;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import React, { useState, useCallback, useMemo } from 'react';
|
|
4
|
+
import { default as Button } from 'antd/es/button';
|
|
5
|
+
import { default as Checkbox } from 'antd/es/checkbox';
|
|
6
|
+
import { default as InputNumber } from 'antd/es/input-number';
|
|
7
|
+
import { default as Space } from 'antd/es/space';
|
|
8
|
+
import { default as Typography } from 'antd/es/typography';
|
|
9
|
+
import { default as Divider } from 'antd/es/divider';
|
|
10
|
+
import { HolderOutlined, EyeOutlined, EyeInvisibleOutlined, SettingOutlined } from '@ant-design/icons';
|
|
11
|
+
import DraggableModal from '@bit.rhplus/draggable-modal';
|
|
12
|
+
import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, } from '@dnd-kit/core';
|
|
13
|
+
import { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy, useSortable, } from '@dnd-kit/sortable';
|
|
14
|
+
import { CSS, } from '@dnd-kit/utilities';
|
|
15
|
+
const { Text, Title } = Typography;
|
|
16
|
+
/**
|
|
17
|
+
* Sortable řádek pro jeden sloupec
|
|
18
|
+
*/
|
|
19
|
+
const SortableColumnRow = ({ column, onVisibilityChange, onWidthChange }) => {
|
|
20
|
+
const { attributes, listeners, setNodeRef, transform, transition, isDragging, } = useSortable({ id: column.id });
|
|
21
|
+
const style = {
|
|
22
|
+
transform: CSS.Transform.toString(transform),
|
|
23
|
+
transition,
|
|
24
|
+
opacity: isDragging ? 0.5 : 1,
|
|
25
|
+
backgroundColor: isDragging ? '#f0f0f0' : 'white',
|
|
26
|
+
};
|
|
27
|
+
return (_jsx("div", { ref: setNodeRef, style: style, className: "column-row", children: _jsxs("div", { className: "column-row-content", children: [_jsx("div", { className: "drag-handle", ...attributes, ...listeners, children: _jsx(HolderOutlined, { style: { color: '#999', cursor: 'grab' } }) }), _jsxs("div", { className: "column-name", children: [_jsx(Text, { strong: true, children: column.headerName }), _jsx("br", {}), _jsx(Text, { type: "secondary", style: { fontSize: '12px' }, children: column.field })] }), _jsx("div", { className: "column-width", children: _jsx(InputNumber, { min: 50, max: 1000, value: column.width, onChange: (value) => onWidthChange(column.id, value), addonAfter: "px", size: "small", style: { width: '100px' } }) }), _jsx("div", { className: "column-visibility", children: _jsx(Checkbox, { checked: column.visible, onChange: (e) => onVisibilityChange(column.id, e.target.checked), children: _jsxs(Space, { children: [column.visible ? _jsx(EyeOutlined, {}) : _jsx(EyeInvisibleOutlined, {}), column.visible ? 'Zobrazit' : 'Skrýt'] }) }) })] }) }));
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Modal pro editaci sloupců AG-Grid gridu
|
|
31
|
+
* @param {Object} props
|
|
32
|
+
* @param {boolean} props.open - Zda je modal otevřený
|
|
33
|
+
* @param {Function} props.onCancel - Callback pro zavření modalu
|
|
34
|
+
* @param {Function} props.onSave - Callback pro uložení změn
|
|
35
|
+
* @param {Array} props.columns - Pole sloupců k editaci
|
|
36
|
+
* @param {Function} props.getContainer - Container pro modal
|
|
37
|
+
*/
|
|
38
|
+
export default function ColumnEditorModal({ open, onCancel, onSave, columns = [], getContainer }) {
|
|
39
|
+
// Lokální stav pro editaci sloupců
|
|
40
|
+
const [editingColumns, setEditingColumns] = useState([]);
|
|
41
|
+
// Inicializace editovacího stavu při otevření modalu
|
|
42
|
+
React.useEffect(() => {
|
|
43
|
+
if (open && columns.length > 0) {
|
|
44
|
+
const initialColumns = columns.map((col, index) => ({
|
|
45
|
+
id: col.field,
|
|
46
|
+
field: col.field,
|
|
47
|
+
headerName: col.headerName || col.field,
|
|
48
|
+
width: col.width || 100,
|
|
49
|
+
visible: !col.hide,
|
|
50
|
+
order: index
|
|
51
|
+
}));
|
|
52
|
+
setEditingColumns(initialColumns);
|
|
53
|
+
}
|
|
54
|
+
}, [open, columns]);
|
|
55
|
+
// Sensor pro drag&drop
|
|
56
|
+
const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
|
|
57
|
+
coordinateGetter: sortableKeyboardCoordinates,
|
|
58
|
+
}));
|
|
59
|
+
// Handler pro ukončení drag operace
|
|
60
|
+
const handleDragEnd = useCallback((event) => {
|
|
61
|
+
const { active, over } = event;
|
|
62
|
+
if (active.id !== over?.id) {
|
|
63
|
+
setEditingColumns((items) => {
|
|
64
|
+
const oldIndex = items.findIndex((item) => item.id === active.id);
|
|
65
|
+
const newIndex = items.findIndex((item) => item.id === over.id);
|
|
66
|
+
return arrayMove(items, oldIndex, newIndex);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}, []);
|
|
70
|
+
// Handler pro změnu viditelnosti sloupce
|
|
71
|
+
const handleVisibilityChange = useCallback((columnId, visible) => {
|
|
72
|
+
setEditingColumns((prev) => prev.map((col) => col.id === columnId ? { ...col, visible } : col));
|
|
73
|
+
}, []);
|
|
74
|
+
// Handler pro změnu šířky sloupce
|
|
75
|
+
const handleWidthChange = useCallback((columnId, width) => {
|
|
76
|
+
if (width && width >= 50) {
|
|
77
|
+
setEditingColumns((prev) => prev.map((col) => col.id === columnId ? { ...col, width } : col));
|
|
78
|
+
}
|
|
79
|
+
}, []);
|
|
80
|
+
// Handler pro uložení změn
|
|
81
|
+
const handleSave = useCallback(() => {
|
|
82
|
+
if (onSave) {
|
|
83
|
+
onSave(editingColumns);
|
|
84
|
+
}
|
|
85
|
+
onCancel();
|
|
86
|
+
}, [editingColumns, onSave, onCancel]);
|
|
87
|
+
// Handler pro reset na původní stav
|
|
88
|
+
const handleReset = useCallback(() => {
|
|
89
|
+
const resetColumns = columns.map((col, index) => ({
|
|
90
|
+
id: col.field,
|
|
91
|
+
field: col.field,
|
|
92
|
+
headerName: col.headerName || col.field,
|
|
93
|
+
width: col.width || 100,
|
|
94
|
+
visible: !col.hide,
|
|
95
|
+
order: index
|
|
96
|
+
}));
|
|
97
|
+
setEditingColumns(resetColumns);
|
|
98
|
+
}, [columns]);
|
|
99
|
+
const columnIds = useMemo(() => editingColumns.map((col) => col.id), [editingColumns]);
|
|
100
|
+
console.log("nacitam modal", open);
|
|
101
|
+
return (_jsxs(DraggableModal, { width: "600px", open: open, getContainer: getContainer, onCancel: onCancel, maskClosable: false, title: _jsxs(Space, { children: [_jsx(SettingOutlined, {}), "Nastaven\u00ED sloupc\u016F"] }), footer: _jsxs(Space, { children: [_jsx(Button, { onClick: handleReset, children: "Obnovit p\u016Fvodn\u00ED" }), _jsx(Button, { onClick: onCancel, children: "Storno" }), _jsx(Button, { type: "primary", onClick: handleSave, children: "Ulo\u017Eit zm\u011Bny" })] }), children: [_jsxs("div", { className: "column-editor-content", children: [_jsx("div", { className: "column-editor-header", children: _jsx(Text, { type: "secondary", children: "P\u0159et\u00E1hn\u011Bte sloupce pro zm\u011Bnu po\u0159ad\u00ED. Upravte \u0161\u00ED\u0159ku a viditelnost podle pot\u0159eby." }) }), _jsx(Divider, {}), _jsx("div", { className: "column-list", children: _jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: columnIds, strategy: verticalListSortingStrategy, children: editingColumns.map((column) => (_jsx(SortableColumnRow, { column: column, onVisibilityChange: handleVisibilityChange, onWidthChange: handleWidthChange }, column.id))) }) }) }), _jsx(Divider, {}), _jsx("div", { className: "column-editor-footer", children: _jsxs(Text, { type: "secondary", style: { fontSize: '12px' }, children: ["Celkem sloupc\u016F: ", editingColumns.length, " | Zobrazen\u00FDch: ", editingColumns.filter(c => c.visible).length, " | Skryt\u00FDch: ", editingColumns.filter(c => !c.visible).length] }) })] }), _jsx("style", { jsx: true, children: `
|
|
102
|
+
.column-editor-content {
|
|
103
|
+
min-height: 400px;
|
|
104
|
+
max-height: 600px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.column-editor-header {
|
|
108
|
+
margin-bottom: 16px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.column-list {
|
|
112
|
+
max-height: 400px;
|
|
113
|
+
overflow-y: auto;
|
|
114
|
+
border: 1px solid #f0f0f0;
|
|
115
|
+
border-radius: 6px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.column-row {
|
|
119
|
+
border-bottom: 1px solid #f0f0f0;
|
|
120
|
+
transition: background-color 0.2s;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.column-row:hover {
|
|
124
|
+
background-color: #fafafa;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.column-row:last-child {
|
|
128
|
+
border-bottom: none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.column-row-content {
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
padding: 12px 16px;
|
|
135
|
+
gap: 16px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.drag-handle {
|
|
139
|
+
flex-shrink: 0;
|
|
140
|
+
width: 20px;
|
|
141
|
+
display: flex;
|
|
142
|
+
align-items: center;
|
|
143
|
+
justify-content: center;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.column-name {
|
|
147
|
+
flex: 1;
|
|
148
|
+
min-width: 150px;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.column-width {
|
|
152
|
+
flex-shrink: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.column-visibility {
|
|
156
|
+
flex-shrink: 0;
|
|
157
|
+
width: 120px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.column-editor-footer {
|
|
161
|
+
margin-top: 16px;
|
|
162
|
+
text-align: center;
|
|
163
|
+
}
|
|
164
|
+
` })] }));
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=ColumnEditorModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnEditorModal.js","sourceRoot":"","sources":["../ColumnEditorModal.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export namespace userFieldsApi {
|
|
2
|
+
let url: string;
|
|
3
|
+
let methodType: string;
|
|
4
|
+
let version: string;
|
|
5
|
+
let compression: boolean;
|
|
6
|
+
let withCredentials: boolean;
|
|
7
|
+
}
|
|
8
|
+
export namespace getSingleGridApi {
|
|
9
|
+
let url_1: string;
|
|
10
|
+
export { url_1 as url };
|
|
11
|
+
let methodType_1: string;
|
|
12
|
+
export { methodType_1 as methodType };
|
|
13
|
+
let version_1: string;
|
|
14
|
+
export { version_1 as version };
|
|
15
|
+
let compression_1: boolean;
|
|
16
|
+
export { compression_1 as compression };
|
|
17
|
+
let withCredentials_1: boolean;
|
|
18
|
+
export { withCredentials_1 as withCredentials };
|
|
19
|
+
}
|
|
20
|
+
export namespace getUserGridsApi {
|
|
21
|
+
let url_2: string;
|
|
22
|
+
export { url_2 as url };
|
|
23
|
+
let methodType_2: string;
|
|
24
|
+
export { methodType_2 as methodType };
|
|
25
|
+
let version_2: string;
|
|
26
|
+
export { version_2 as version };
|
|
27
|
+
let compression_2: boolean;
|
|
28
|
+
export { compression_2 as compression };
|
|
29
|
+
let withCredentials_2: boolean;
|
|
30
|
+
export { withCredentials_2 as withCredentials };
|
|
31
|
+
}
|
|
32
|
+
export namespace saveGridLayoutApi {
|
|
33
|
+
let url_3: string;
|
|
34
|
+
export { url_3 as url };
|
|
35
|
+
let methodType_3: string;
|
|
36
|
+
export { methodType_3 as methodType };
|
|
37
|
+
let version_3: string;
|
|
38
|
+
export { version_3 as version };
|
|
39
|
+
let compression_3: boolean;
|
|
40
|
+
export { compression_3 as compression };
|
|
41
|
+
let withCredentials_3: boolean;
|
|
42
|
+
export { withCredentials_3 as withCredentials };
|
|
43
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grid Layout API konfigurace pro komunikaci s Grid API službou
|
|
3
|
+
* Poskytuje centralizovanou správu personalizovaných nastavení gridů
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Načítá seznam polí pro konkrétní grid s personalizací uživatele
|
|
7
|
+
* POST /api/UserFields
|
|
8
|
+
*
|
|
9
|
+
* Request body: UserFieldsCommand
|
|
10
|
+
* {
|
|
11
|
+
* userKey: Guid,
|
|
12
|
+
* applicationName: string,
|
|
13
|
+
* gridName: string,
|
|
14
|
+
* filterName?: string
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* Response: UserFieldsResponse
|
|
18
|
+
* {
|
|
19
|
+
* success: boolean,
|
|
20
|
+
* data: UserFieldModel[]
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
export const userFieldsApi = {
|
|
24
|
+
url: '/grid_layout_api/Grid/UserFields',
|
|
25
|
+
methodType: "POST",
|
|
26
|
+
version: "1.0",
|
|
27
|
+
compression: true,
|
|
28
|
+
withCredentials: true
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Načítá konkrétní jeden grid pro uživatele
|
|
32
|
+
* POST /api/GetSingleGrid
|
|
33
|
+
*
|
|
34
|
+
* Request body: GetSingleGridCommand
|
|
35
|
+
* {
|
|
36
|
+
* userKey: Guid,
|
|
37
|
+
* applicationName: string,
|
|
38
|
+
* gridName: string,
|
|
39
|
+
* filterName?: string
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* Response: UserFieldsResponse
|
|
43
|
+
* {
|
|
44
|
+
* success: boolean,
|
|
45
|
+
* data: UserFieldModel[]
|
|
46
|
+
* }
|
|
47
|
+
*/
|
|
48
|
+
export const getSingleGridApi = {
|
|
49
|
+
url: '/grid_layout_api/Grid/GetSingleGrid',
|
|
50
|
+
methodType: "POST",
|
|
51
|
+
version: "1.0",
|
|
52
|
+
compression: true,
|
|
53
|
+
withCredentials: true
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Načítá seznam všech gridů uživatele v aplikaci
|
|
57
|
+
* POST /api/GetUserGrids
|
|
58
|
+
*
|
|
59
|
+
* Request body: GetUserGridsCommand
|
|
60
|
+
* {
|
|
61
|
+
* userKey: Guid,
|
|
62
|
+
* applicationName: string
|
|
63
|
+
* }
|
|
64
|
+
*
|
|
65
|
+
* Response: GetUserGridsResponse
|
|
66
|
+
* {
|
|
67
|
+
* success: boolean,
|
|
68
|
+
* data: UserGridSummary[]
|
|
69
|
+
* }
|
|
70
|
+
*/
|
|
71
|
+
export const getUserGridsApi = {
|
|
72
|
+
url: '/grid_layout_api/Grid/GetUserGrids',
|
|
73
|
+
methodType: "POST",
|
|
74
|
+
version: "1.0",
|
|
75
|
+
compression: true,
|
|
76
|
+
withCredentials: true
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Ukládá nebo aktualizuje personalizované nastavení gridu s merge logikou
|
|
80
|
+
* POST /api/SaveUserFields
|
|
81
|
+
*
|
|
82
|
+
* Request body: SaveUserFieldsCommand
|
|
83
|
+
* {
|
|
84
|
+
* userKey: Guid,
|
|
85
|
+
* applicationName: string,
|
|
86
|
+
* gridName: string,
|
|
87
|
+
* filterName?: string,
|
|
88
|
+
* userFields: UserFieldModel[]
|
|
89
|
+
* }
|
|
90
|
+
*
|
|
91
|
+
* Response: SaveUserFieldsResponse
|
|
92
|
+
* {
|
|
93
|
+
* success: boolean,
|
|
94
|
+
* message?: string
|
|
95
|
+
* }
|
|
96
|
+
*/
|
|
97
|
+
export const saveGridLayoutApi = {
|
|
98
|
+
url: '/grid_layout_api/Grid/SaveUserFields',
|
|
99
|
+
methodType: "POST",
|
|
100
|
+
version: "1.0",
|
|
101
|
+
compression: true,
|
|
102
|
+
withCredentials: true
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=gridLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridLayout.js","sourceRoot":"","sources":["../gridLayout.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,kCAAkC;IACvC,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,qCAAqC;IAC1C,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,oCAAoC;IACzC,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,EAAE,sCAAsC;IAC3C,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;CACtB,CAAC"}
|
package/dist/index.d.ts
ADDED