@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.
@@ -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"}
@@ -0,0 +1,3 @@
1
+ export { default as useGridLayout } from "./useGridLayout";
2
+ export { useGridLayoutApi } from "./useGridLayoutApi";
3
+ export { default as ColumnEditorModal } from "./ColumnEditorModal";