@bit.rhplus/ui.f7.detail-item 0.0.2 → 0.0.4
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/components/Category.jsx +175 -0
- package/components/Contact.jsx +105 -0
- package/components/CountryFlag.jsx +115 -0
- package/components/Custom.jsx +209 -4
- package/components/Download.jsx +32 -7
- package/components/Grid.jsx +230 -0
- package/components/InputNumber.jsx +17 -2
- package/components/InputText.jsx +19 -4
- package/components/List.jsx +348 -0
- package/components/Select.jsx +199 -0
- package/components/Switch.jsx +12 -1
- package/components/Text.jsx +36 -3
- package/components/index.jsx +7 -1
- package/dist/components/Category.d.ts +13 -0
- package/dist/components/Category.js +92 -0
- package/dist/components/Category.js.map +1 -0
- package/dist/components/Contact.d.ts +10 -0
- package/dist/components/Contact.js +60 -0
- package/dist/components/Contact.js.map +1 -0
- package/dist/components/CountryFlag.d.ts +11 -0
- package/dist/components/CountryFlag.js +75 -0
- package/dist/components/CountryFlag.js.map +1 -0
- package/dist/components/Custom.d.ts +19 -2
- package/dist/components/Custom.js +114 -5
- package/dist/components/Custom.js.map +1 -1
- package/dist/components/Download.d.ts +5 -1
- package/dist/components/Download.js +19 -3
- package/dist/components/Download.js.map +1 -1
- package/dist/components/Grid.d.ts +19 -0
- package/dist/components/Grid.js +144 -0
- package/dist/components/Grid.js.map +1 -0
- package/dist/components/InputNumber.d.ts +3 -1
- package/dist/components/InputNumber.js +16 -2
- package/dist/components/InputNumber.js.map +1 -1
- package/dist/components/InputText.d.ts +3 -1
- package/dist/components/InputText.js +16 -2
- package/dist/components/InputText.js.map +1 -1
- package/dist/components/List.d.ts +23 -0
- package/dist/components/List.js +201 -0
- package/dist/components/List.js.map +1 -0
- package/dist/components/Select.d.ts +13 -0
- package/dist/components/Select.js +89 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Switch.d.ts +3 -1
- package/dist/components/Switch.js +11 -2
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/Text.d.ts +8 -1
- package/dist/components/Text.js +25 -3
- package/dist/components/Text.js.map +1 -1
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +13 -22
- package/dist/index.js.map +1 -1
- package/index.jsx +42 -205
- package/package.json +6 -3
- /package/dist/{preview-1756999926762.js → preview-1757428602780.js} +0 -0
|
@@ -1,8 +1,117 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
import React from 'react';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import React, { useState, useEffect } from 'react';
|
|
4
|
+
import { Link, Icon, Popup, Navbar, NavLeft, NavTitle, NavTitleLarge, Page, Block, List, ListInput } from 'framework7-react';
|
|
5
|
+
import { User } from 'lucide-react';
|
|
6
|
+
import SaveButton from '@bit.rhplus/ui.f7.save-button';
|
|
7
|
+
// External Contact komponenta - formulář pro zadání externího kontaktu
|
|
8
|
+
export const Custom = ({ value, onSave, onChange, title = 'Externí kontakt', placeholder = 'Zadejte kontakt', color = '#6887d3', size = 16, lucideIcon, icon, FormRenderer, // Custom komponenta pro renderování formuláře
|
|
9
|
+
fields = [
|
|
10
|
+
{ key: 'firstName', label: 'Jméno', type: 'text', placeholder: 'Zadejte jméno' },
|
|
11
|
+
{ key: 'lastName', label: 'Příjmení', type: 'text', placeholder: 'Zadejte příjmení' },
|
|
12
|
+
{ key: 'phone', label: 'Telefon', type: 'tel', placeholder: 'Zadejte telefon' },
|
|
13
|
+
{ key: 'email', label: 'Email', type: 'email', placeholder: 'Zadejte email' },
|
|
14
|
+
{ key: 'position', label: 'Pozice', type: 'text', placeholder: 'Zadejte pozici' }
|
|
15
|
+
], displayFields = ['firstName', 'lastName', 'position'], // Pole pro zobrazení v linku
|
|
16
|
+
...restProps }) => {
|
|
17
|
+
const [popupOpened, setPopupOpened] = useState(false);
|
|
18
|
+
// Dynamicky inicializuj formData na základě fields
|
|
19
|
+
const getInitialFormData = () => {
|
|
20
|
+
const initialData = {};
|
|
21
|
+
fields.forEach(field => {
|
|
22
|
+
initialData[field.key] = '';
|
|
23
|
+
});
|
|
24
|
+
return initialData;
|
|
25
|
+
};
|
|
26
|
+
const [formData, setFormData] = useState(getInitialFormData());
|
|
27
|
+
// Aktualizuj formData když se změní value prop nebo fields (ale ne když je popup otevřený)
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (popupOpened)
|
|
30
|
+
return; // Neaktualizuj formData když je popup otevřený
|
|
31
|
+
const newFormData = {};
|
|
32
|
+
fields.forEach(field => {
|
|
33
|
+
newFormData[field.key] = '';
|
|
34
|
+
});
|
|
35
|
+
if (value && typeof value === 'object') {
|
|
36
|
+
fields.forEach(field => {
|
|
37
|
+
newFormData[field.key] = value[field.key] || '';
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
setFormData(newFormData);
|
|
41
|
+
}, [value, fields, popupOpened]);
|
|
42
|
+
const linkStyle = {
|
|
43
|
+
color,
|
|
44
|
+
cursor: 'pointer',
|
|
45
|
+
display: 'flex',
|
|
46
|
+
alignItems: 'center',
|
|
47
|
+
gap: '6px'
|
|
48
|
+
};
|
|
49
|
+
const handleSave = () => {
|
|
50
|
+
const result = { ...formData };
|
|
51
|
+
if (onChange) {
|
|
52
|
+
onChange(result);
|
|
53
|
+
}
|
|
54
|
+
else if (onSave) {
|
|
55
|
+
onSave(result);
|
|
56
|
+
}
|
|
57
|
+
setPopupOpened(false);
|
|
58
|
+
};
|
|
59
|
+
const handleCancel = () => {
|
|
60
|
+
const newFormData = {};
|
|
61
|
+
fields.forEach(field => {
|
|
62
|
+
newFormData[field.key] = '';
|
|
63
|
+
});
|
|
64
|
+
if (value && typeof value === 'object') {
|
|
65
|
+
fields.forEach(field => {
|
|
66
|
+
newFormData[field.key] = value[field.key] || '';
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
setFormData(newFormData);
|
|
70
|
+
setPopupOpened(false);
|
|
71
|
+
};
|
|
72
|
+
const handleInputChange = (field, newValue) => {
|
|
73
|
+
setFormData(prev => ({
|
|
74
|
+
...prev,
|
|
75
|
+
[field]: newValue
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
const handleOpenPopup = () => {
|
|
79
|
+
// Před otevřením popupu nastav aktuální hodnoty do formData
|
|
80
|
+
const newFormData = {};
|
|
81
|
+
fields.forEach(field => {
|
|
82
|
+
newFormData[field.key] = '';
|
|
83
|
+
});
|
|
84
|
+
if (value && typeof value === 'object') {
|
|
85
|
+
fields.forEach(field => {
|
|
86
|
+
newFormData[field.key] = value[field.key] || '';
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
setFormData(newFormData);
|
|
90
|
+
setPopupOpened(true);
|
|
91
|
+
};
|
|
92
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí User
|
|
93
|
+
const renderIcon = () => {
|
|
94
|
+
if (icon) {
|
|
95
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
96
|
+
}
|
|
97
|
+
if (lucideIcon) {
|
|
98
|
+
const LucideIcon = lucideIcon;
|
|
99
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
100
|
+
}
|
|
101
|
+
return _jsx(User, { size: size, color: color });
|
|
102
|
+
};
|
|
103
|
+
// Zobrazí text v linku podle vyplněných dat
|
|
104
|
+
const getDisplayText = () => {
|
|
105
|
+
if (value && typeof value === 'object') {
|
|
106
|
+
const displayValues = displayFields
|
|
107
|
+
.map(fieldKey => value[fieldKey])
|
|
108
|
+
.filter(Boolean);
|
|
109
|
+
if (displayValues.length > 0) {
|
|
110
|
+
return displayValues.join(' - ');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return placeholder;
|
|
114
|
+
};
|
|
115
|
+
return (_jsxs("div", { ...restProps, children: [_jsxs(Link, { onClick: handleOpenPopup, className: "link", style: linkStyle, children: [renderIcon(), getDisplayText()] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, className: "f7-parallax", children: _jsxs(Page, { children: [_jsxs(Navbar, { large: true, children: [_jsx(NavLeft, { children: _jsx(Link, { onClick: handleCancel, children: _jsx(Icon, { f7: "arrow_left", style: { fontWeight: 'bold' } }) }) }), _jsx(NavTitle, { children: title }), _jsx(NavTitleLarge, { children: title })] }), _jsx(Block, { style: { marginTop: '20px' }, children: _jsx(List, { children: FormRenderer ? (_jsx(FormRenderer, { fields: fields, formData: formData, onChange: handleInputChange })) : (fields.map((field, index) => (_jsx(ListInput, { type: field.type || 'text', label: field.label, placeholder: field.placeholder, value: formData[field.key], onInput: (e) => handleInputChange(field.key, e.target.value), clearButton: true, style: { fontSize: '18px' } }, field.key || index)))) }) }), _jsx(SaveButton, { onClick: handleSave, variant: "black" })] }) })] }));
|
|
7
116
|
};
|
|
8
117
|
//# sourceMappingURL=Custom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Custom.js","sourceRoot":"","sources":["../../components/Custom.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,
|
|
1
|
+
{"version":3,"file":"Custom.js","sourceRoot":"","sources":["../../components/Custom.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export function Download({ children, href, onClick, color, size }: {
|
|
1
|
+
export function Download({ children, href, onClick, color, size, value, lucideIcon, icon, ...restProps }: {
|
|
2
|
+
[x: string]: any;
|
|
2
3
|
children: any;
|
|
3
4
|
href: any;
|
|
4
5
|
onClick: any;
|
|
5
6
|
color?: string | undefined;
|
|
6
7
|
size?: number | undefined;
|
|
8
|
+
value: any;
|
|
9
|
+
lucideIcon: any;
|
|
10
|
+
icon: any;
|
|
7
11
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,8 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
import React, { useState } from 'react';
|
|
4
4
|
import { Link, Icon, Preloader } from 'framework7-react';
|
|
5
|
+
import { Download as DownloadIcon } from 'lucide-react';
|
|
5
6
|
// Download komponenta s loading stavem
|
|
6
|
-
export const Download = ({ children, href, onClick, color = '#6887d3', size = 16
|
|
7
|
+
export const Download = ({ children, href, onClick, color = '#6887d3', size = 16, value, lucideIcon, // Lucide React ikona
|
|
8
|
+
icon, // Jakákoliv React komponenta ikony
|
|
9
|
+
...restProps }) => {
|
|
10
|
+
// Pro Form.Item kompatibilitu - zobraz value pokud je poskytnut, jinak children
|
|
11
|
+
const displayText = value !== undefined ? value : children;
|
|
7
12
|
const [isLoading, setIsLoading] = useState(false);
|
|
8
13
|
const handleClick = async (e) => {
|
|
9
14
|
if (onClick) {
|
|
@@ -23,9 +28,20 @@ export const Download = ({ children, href, onClick, color = '#6887d3', size = 16
|
|
|
23
28
|
alignItems: 'center',
|
|
24
29
|
gap: '6px'
|
|
25
30
|
};
|
|
31
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí DownloadIcon
|
|
32
|
+
const renderIcon = () => {
|
|
33
|
+
if (icon) {
|
|
34
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
35
|
+
}
|
|
36
|
+
if (lucideIcon) {
|
|
37
|
+
const LucideIcon = lucideIcon;
|
|
38
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
39
|
+
}
|
|
40
|
+
return _jsx(DownloadIcon, { size: size, color: color });
|
|
41
|
+
};
|
|
26
42
|
if (href) {
|
|
27
|
-
return (_jsxs(Link, { href: href, className: "link", style: linkStyle, children: [isLoading ? (_jsx(Preloader, { size: size })) : (
|
|
43
|
+
return (_jsxs(Link, { href: href, className: "link", style: linkStyle, ...restProps, children: [isLoading ? (_jsx(Preloader, { size: size })) : (renderIcon()), displayText] }));
|
|
28
44
|
}
|
|
29
|
-
return (_jsxs(Link, { onClick: handleClick, className: "link", style: linkStyle, children: [isLoading ? (_jsx(Preloader, { size: size })) : (
|
|
45
|
+
return (_jsxs(Link, { onClick: handleClick, className: "link", style: linkStyle, ...restProps, children: [isLoading ? (_jsx(Preloader, { size: size })) : (renderIcon()), displayText] }));
|
|
30
46
|
};
|
|
31
47
|
//# sourceMappingURL=Download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Download.js","sourceRoot":"","sources":["../../components/Download.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Download.js","sourceRoot":"","sources":["../../components/Download.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAExD,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,EACT,KAAK,EACL,UAAU,EAAE,qBAAqB;AACjC,IAAI,EAAE,mCAAmC;AACzC,GAAG,SAAS,EACb,EAAE,EAAE;IACH,gFAAgF;IAChF,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,KAAK;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,+EAA+E;IAC/E,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,UAAU,CAAC;YAC9B,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;QAClD,CAAC;QACD,OAAO,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;IACpD,CAAC,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,MAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,KAAM,SAAS,aAC/D,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,CAC1B,CAAC,CAAC,CAAC,CACF,UAAU,EAAE,CACb,EACA,WAAW,IACP,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,IAAI,IAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,KAAM,SAAS,aACzE,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,CAC1B,CAAC,CAAC,CAAC,CACF,UAAU,EAAE,CACb,EACA,WAAW,IACP,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function Grid({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, rowData, columnDefs, gridOptions, onRowDoubleClicked, gridHeight, selectionMode, displayField }: {
|
|
2
|
+
children: any;
|
|
3
|
+
value: any;
|
|
4
|
+
onSave: any;
|
|
5
|
+
onChange: any;
|
|
6
|
+
title?: string | undefined;
|
|
7
|
+
placeholder?: string | undefined;
|
|
8
|
+
color?: string | undefined;
|
|
9
|
+
size?: number | undefined;
|
|
10
|
+
lucideIcon: any;
|
|
11
|
+
icon: any;
|
|
12
|
+
rowData?: any[] | undefined;
|
|
13
|
+
columnDefs?: any[] | undefined;
|
|
14
|
+
gridOptions?: {} | undefined;
|
|
15
|
+
onRowDoubleClicked: any;
|
|
16
|
+
gridHeight?: string | undefined;
|
|
17
|
+
selectionMode?: string | undefined;
|
|
18
|
+
displayField?: string | undefined;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import React, { useState, useEffect, useMemo } from 'react';
|
|
4
|
+
import { Link, Icon, Popup, Navbar, NavLeft, NavTitle, NavTitleLarge, NavRight, Page, Block, List, ListInput, Button } from 'framework7-react';
|
|
5
|
+
import { Table } from 'lucide-react';
|
|
6
|
+
import AgGrid from '@bit.rhplus/ui.grid';
|
|
7
|
+
import SaveButton from '@bit.rhplus/ui.f7.save-button';
|
|
8
|
+
// Grid komponenta s modální editací - zobrazuje AG Grid pro výběr položky
|
|
9
|
+
export const Grid = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
|
|
10
|
+
title = 'Editace výběru', placeholder = 'Vyberte položku', color = '#6887d3', size = 16, lucideIcon, // Lucide React ikona (např. Table)
|
|
11
|
+
icon, // Jakákoliv React komponenta ikony
|
|
12
|
+
rowData = [], // Array dat pro grid
|
|
13
|
+
columnDefs = [], // Definice sloupců pro AG Grid
|
|
14
|
+
gridOptions = {}, // Dodatečné možnosti pro AG Grid
|
|
15
|
+
onRowDoubleClicked, // Callback pro double click na řádek
|
|
16
|
+
gridHeight = '400px', // Výška gridu
|
|
17
|
+
selectionMode = 'single', // 'single' nebo 'multiple'
|
|
18
|
+
displayField = 'name' // Pole, které se zobrazí v detail-item při výběru
|
|
19
|
+
}) => {
|
|
20
|
+
const [popupOpened, setPopupOpened] = useState(false);
|
|
21
|
+
// Inicializuj selectedRows pouze jednou při mount
|
|
22
|
+
const initialSelectedRows = useMemo(() => {
|
|
23
|
+
return value ? (Array.isArray(value) ? value : [value]) : [];
|
|
24
|
+
}, []); // Prázdné dependency array - pouze při mount
|
|
25
|
+
const [selectedRows, setSelectedRows] = useState(initialSelectedRows);
|
|
26
|
+
const linkStyle = {
|
|
27
|
+
color,
|
|
28
|
+
cursor: 'pointer',
|
|
29
|
+
display: 'flex',
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
gap: '6px'
|
|
32
|
+
};
|
|
33
|
+
const handleCancel = () => {
|
|
34
|
+
// Při zrušení resetuj na původní hodnoty
|
|
35
|
+
const originalValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
36
|
+
setSelectedRows(originalValue);
|
|
37
|
+
setPopupOpened(false);
|
|
38
|
+
};
|
|
39
|
+
const handleOpenPopup = () => {
|
|
40
|
+
// Při otevření nastav aktuální hodnotu
|
|
41
|
+
const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
42
|
+
setSelectedRows(currentValue);
|
|
43
|
+
setPopupOpened(true);
|
|
44
|
+
};
|
|
45
|
+
const handleRowSelection = (event) => {
|
|
46
|
+
console.log('Grid selection changed - event:', event);
|
|
47
|
+
if (event && event.api) {
|
|
48
|
+
const selectedNodes = event.api.getSelectedNodes();
|
|
49
|
+
const selectedData = selectedNodes.map(node => node.data);
|
|
50
|
+
console.log('Grid selection changed:', {
|
|
51
|
+
selectedNodes: selectedNodes.length,
|
|
52
|
+
selectedData,
|
|
53
|
+
previousSelectedRows: selectedRows
|
|
54
|
+
});
|
|
55
|
+
// Pro oba režimy pouze aktualizujeme stav - uložení bude přes Save button
|
|
56
|
+
setSelectedRows(selectedData);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.log('Grid API not available in event');
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const handleSaveSelection = () => {
|
|
63
|
+
// Uložení vybraných položek pro oba režimy
|
|
64
|
+
let result;
|
|
65
|
+
if (selectionMode === 'single') {
|
|
66
|
+
result = selectedRows.length > 0 ? selectedRows[0] : null;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
result = selectedRows.length === 1 ? selectedRows[0] : selectedRows;
|
|
70
|
+
}
|
|
71
|
+
// Debug pouze při uložení
|
|
72
|
+
console.log('Saving Grid selection:', { selectedRows, result, selectionMode, hasOnChange: !!onChange, hasOnSave: !!onSave });
|
|
73
|
+
if (onChange) {
|
|
74
|
+
onChange(result);
|
|
75
|
+
console.log('Grid - onChange called with:', result);
|
|
76
|
+
}
|
|
77
|
+
else if (onSave) {
|
|
78
|
+
onSave(result);
|
|
79
|
+
console.log('Grid - onSave called with:', result);
|
|
80
|
+
}
|
|
81
|
+
setPopupOpened(false);
|
|
82
|
+
};
|
|
83
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí Table
|
|
84
|
+
const renderIcon = () => {
|
|
85
|
+
if (icon) {
|
|
86
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
87
|
+
}
|
|
88
|
+
if (lucideIcon) {
|
|
89
|
+
const LucideIcon = lucideIcon;
|
|
90
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
91
|
+
}
|
|
92
|
+
return _jsx(Table, { size: size, color: color });
|
|
93
|
+
};
|
|
94
|
+
// Kombinované grid options
|
|
95
|
+
const combinedGridOptions = {
|
|
96
|
+
rowSelection: selectionMode,
|
|
97
|
+
onSelectionChanged: handleRowSelection,
|
|
98
|
+
onRowDoubleClicked: onRowDoubleClicked,
|
|
99
|
+
suppressRowClickSelection: false, // Umožní výběr kliknutím na řádek pro oba režimy
|
|
100
|
+
...gridOptions
|
|
101
|
+
};
|
|
102
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Link, { onClick: handleOpenPopup, className: "link", style: linkStyle, children: [renderIcon(), (() => {
|
|
103
|
+
// Použij value prop pro zobrazení (value obsahuje uloženou hodnotu)
|
|
104
|
+
const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
105
|
+
if (currentValue.length === 1) {
|
|
106
|
+
// Pokud je vybraná jedna položka, zobraz hodnotu z displayField
|
|
107
|
+
const item = currentValue[0];
|
|
108
|
+
return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
|
|
109
|
+
}
|
|
110
|
+
else if (currentValue.length > 1) {
|
|
111
|
+
return `${currentValue.length} vybraných položek`;
|
|
112
|
+
}
|
|
113
|
+
return placeholder;
|
|
114
|
+
})()] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, push: false, className: "f7-parallax grid-popup", style: {
|
|
115
|
+
'--f7-popup-tablet-width': '90vw',
|
|
116
|
+
'--f7-popup-tablet-height': '90vh'
|
|
117
|
+
}, children: _jsx("div", { className: "view view-init", children: _jsxs("div", { className: "page page-with-navbar-large", children: [_jsxs(Navbar, { large: true, className: "navbar-transparent", children: [_jsx(NavLeft, { children: _jsx(Link, { onClick: handleCancel, children: _jsx(Icon, { f7: "arrow_left", style: { fontWeight: 'bold' } }) }) }), _jsx(NavTitle, { children: title }), _jsx(NavTitleLarge, { children: title })] }), _jsxs("div", { className: "page-content", children: [_jsx(Block, { style: {
|
|
118
|
+
flex: 1,
|
|
119
|
+
display: 'flex',
|
|
120
|
+
flexDirection: 'column',
|
|
121
|
+
height: 'calc(100vh - 230px)', // Více prostoru pro SaveButton
|
|
122
|
+
padding: '0'
|
|
123
|
+
}, children: _jsx("div", { className: "ag-theme-quartz", style: {
|
|
124
|
+
height: '100%',
|
|
125
|
+
width: '100%',
|
|
126
|
+
flex: 1,
|
|
127
|
+
'--ag-background-color': 'transparent',
|
|
128
|
+
'--ag-odd-row-background-color': 'transparent'
|
|
129
|
+
}, children: _jsx(AgGrid, { columnDefs: columnDefs, rowData: rowData, gridOptions: {
|
|
130
|
+
...combinedGridOptions,
|
|
131
|
+
popupParent: document.body, // Popup menu se zobrazí v body, ne v popup
|
|
132
|
+
rowHeight: 48, // Explicitní výška řádku
|
|
133
|
+
headerHeight: 56 // Explicitní výška hlavičky
|
|
134
|
+
}, height: "100%",
|
|
135
|
+
// appearance="ag-theme-quartz"
|
|
136
|
+
defaultColDef: {
|
|
137
|
+
sortable: true,
|
|
138
|
+
filter: true,
|
|
139
|
+
resizable: true,
|
|
140
|
+
minWidth: 100, // Minimální šířka sloupců pro mobil
|
|
141
|
+
...gridOptions.defaultColDef
|
|
142
|
+
} }) }) }), _jsx(SaveButton, { onClick: handleSaveSelection, variant: "black" })] })] }) }) })] }));
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=Grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../components/Grid.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function InputNumber({ children, value, onSave, onChange, title, placeholder, color, size, min, max, step }: {
|
|
1
|
+
export function InputNumber({ children, value, onSave, onChange, title, placeholder, color, size, min, max, step, lucideIcon, icon }: {
|
|
2
2
|
children: any;
|
|
3
3
|
value: any;
|
|
4
4
|
onSave: any;
|
|
@@ -10,4 +10,6 @@ export function InputNumber({ children, value, onSave, onChange, title, placehol
|
|
|
10
10
|
min: any;
|
|
11
11
|
max: any;
|
|
12
12
|
step?: number | undefined;
|
|
13
|
+
lucideIcon: any;
|
|
14
|
+
icon: any;
|
|
13
15
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,10 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
import React, { useState, useEffect } from 'react';
|
|
4
4
|
import { Link, Icon, Popup, Navbar, NavLeft, NavTitle, NavTitleLarge, NavRight, Page, Block, List, ListInput, Button } from 'framework7-react';
|
|
5
|
+
import { Hash } from 'lucide-react';
|
|
5
6
|
import SaveButton from '@bit.rhplus/ui.f7.save-button';
|
|
6
7
|
// InputNumber komponenta s modální editací číselných hodnot kompatibilní s Ant Design Form
|
|
7
8
|
export const InputNumber = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
|
|
8
|
-
title = 'Editace číselné hodnoty', placeholder = 'Zadejte číslo', color = '#6887d3', size = 16, min, max, step = 1
|
|
9
|
+
title = 'Editace číselné hodnoty', placeholder = 'Zadejte číslo', color = '#6887d3', size = 16, min, max, step = 1, lucideIcon, // Lucide React ikona
|
|
10
|
+
icon // Jakákoliv React komponenta ikony
|
|
11
|
+
}) => {
|
|
9
12
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
10
13
|
const [inputValue, setInputValue] = useState(value || children || '');
|
|
11
14
|
// Aktualizuj inputValue když se změní value prop (pro Form.Item kompatibilitu)
|
|
@@ -51,7 +54,18 @@ title = 'Editace číselné hodnoty', placeholder = 'Zadejte číslo', color = '
|
|
|
51
54
|
setInputValue(newValue.toString());
|
|
52
55
|
}
|
|
53
56
|
};
|
|
54
|
-
|
|
57
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí Hash
|
|
58
|
+
const renderIcon = () => {
|
|
59
|
+
if (icon) {
|
|
60
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
61
|
+
}
|
|
62
|
+
if (lucideIcon) {
|
|
63
|
+
const LucideIcon = lucideIcon;
|
|
64
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
65
|
+
}
|
|
66
|
+
return _jsx(Hash, { size: size, color: color });
|
|
67
|
+
};
|
|
68
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Link, { onClick: () => setPopupOpened(true), className: "link", style: linkStyle, children: [renderIcon(), (value !== null && value !== undefined && value !== '') ? (value || children) : placeholder] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, className: "f7-parallax", children: _jsxs(Page, { children: [_jsxs(Navbar, { large: true, children: [_jsx(NavLeft, { children: _jsx(Link, { onClick: handleCancel, children: _jsx(Icon, { f7: "arrow_left", style: { fontWeight: 'bold' } }) }) }), _jsx(NavTitle, { children: title }), _jsx(NavTitleLarge, { children: title })] }), _jsxs(Block, { style: { marginTop: '20px' }, children: [_jsx(List, { children: _jsx(ListInput, { type: "number", label: "\u010C\u00EDseln\u00E1 hodnota", placeholder: placeholder, value: inputValue, onInput: (e) => setInputValue(e.target.value), clearButton: true, autoFocus: true, min: min, max: max, step: step, style: { fontSize: '18px' } }) }), _jsx(Block, { style: { marginTop: '20px', textAlign: 'center' }, children: _jsxs("div", { style: { display: 'flex', justifyContent: 'center', gap: '20px', alignItems: 'center' }, children: [_jsx(Button, { round: true, fill: true, color: "blue", onClick: decrementValue, style: { width: '50px', height: '50px' }, children: _jsx(Icon, { f7: "minus" }) }), _jsx("div", { style: {
|
|
55
69
|
fontSize: '24px',
|
|
56
70
|
fontWeight: 'bold',
|
|
57
71
|
minWidth: '80px',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","sourceRoot":"","sources":["../../components/InputNumber.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EAAE,sCAAsC;AAChD,KAAK,GAAG,yBAAyB,EACjC,WAAW,GAAG,eAAe,EAC7B,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,EACT,GAAG,EACH,GAAG,EACH,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"InputNumber.js","sourceRoot":"","sources":["../../components/InputNumber.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function InputText({ children, value, onSave, onChange, title, placeholder, color, size }: {
|
|
1
|
+
export function InputText({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon }: {
|
|
2
2
|
children: any;
|
|
3
3
|
value: any;
|
|
4
4
|
onSave: any;
|
|
@@ -7,4 +7,6 @@ export function InputText({ children, value, onSave, onChange, title, placeholde
|
|
|
7
7
|
placeholder?: string | undefined;
|
|
8
8
|
color?: string | undefined;
|
|
9
9
|
size?: number | undefined;
|
|
10
|
+
lucideIcon: any;
|
|
11
|
+
icon: any;
|
|
10
12
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,10 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
import React, { useState, useEffect } from 'react';
|
|
4
4
|
import { Link, Icon, Popup, Navbar, NavLeft, NavTitle, NavTitleLarge, NavRight, Page, Block, List, ListInput, Button } from 'framework7-react';
|
|
5
|
+
import { Pencil } from 'lucide-react';
|
|
5
6
|
import SaveButton from '@bit.rhplus/ui.f7.save-button';
|
|
6
7
|
// Input komponenta s modální editací kompatibilní s Ant Design Form
|
|
7
8
|
export const InputText = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
|
|
8
|
-
title = 'Editace', placeholder = 'Zadejte hodnotu', color = '#6887d3', size = 16
|
|
9
|
+
title = 'Editace', placeholder = 'Zadejte hodnotu', color = '#6887d3', size = 16, lucideIcon, // Lucide React ikona (např. Pencil, Edit3)
|
|
10
|
+
icon // Jakákoliv React komponenta ikony
|
|
11
|
+
}) => {
|
|
9
12
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
10
13
|
const [inputValue, setInputValue] = useState(value || children || '');
|
|
11
14
|
// Aktualizuj inputValue když se změní value prop (pro Form.Item kompatibilitu)
|
|
@@ -35,6 +38,17 @@ title = 'Editace', placeholder = 'Zadejte hodnotu', color = '#6887d3', size = 16
|
|
|
35
38
|
setInputValue(value || children || '');
|
|
36
39
|
setPopupOpened(false);
|
|
37
40
|
};
|
|
38
|
-
|
|
41
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí Pencil
|
|
42
|
+
const renderIcon = () => {
|
|
43
|
+
if (icon) {
|
|
44
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
45
|
+
}
|
|
46
|
+
if (lucideIcon) {
|
|
47
|
+
const LucideIcon = lucideIcon;
|
|
48
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
49
|
+
}
|
|
50
|
+
return _jsx(Pencil, { size: size, color: color });
|
|
51
|
+
};
|
|
52
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Link, { onClick: () => setPopupOpened(true), className: "link", style: linkStyle, children: [renderIcon(), (value !== null && value !== undefined && value !== '') ? (value || children) : placeholder] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, className: "f7-parallax", children: _jsxs(Page, { children: [_jsxs(Navbar, { large: true, children: [_jsx(NavLeft, { children: _jsx(Link, { onClick: handleCancel, children: _jsx(Icon, { f7: "arrow_left", style: { fontWeight: 'bold' } }) }) }), _jsx(NavTitle, { children: title }), _jsx(NavTitleLarge, { children: title })] }), _jsx(Block, { style: { marginTop: '20px' }, children: _jsx(List, { children: _jsx(ListInput, { type: "text", label: "Typ dokladu", placeholder: placeholder, value: inputValue, onInput: (e) => setInputValue(e.target.value), clearButton: true, autoFocus: true, style: { fontSize: '18px' } }) }) }), _jsx(SaveButton, { onClick: handleSave, variant: "black" })] }) })] }));
|
|
39
53
|
};
|
|
40
54
|
//# sourceMappingURL=InputText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputText.js","sourceRoot":"","sources":["../../components/InputText.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,oEAAoE;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EAAE,sCAAsC;AAChD,KAAK,GAAG,SAAS,EACjB,WAAW,GAAG,iBAAiB,EAC/B,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"InputText.js","sourceRoot":"","sources":["../../components/InputText.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function List({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, options, selectionMode, displayField, titleField, subtitleField, iconField, colorField, countryField, showCountryFlag, flagSize, ItemRenderer }: {
|
|
2
|
+
children: any;
|
|
3
|
+
value: any;
|
|
4
|
+
onSave: any;
|
|
5
|
+
onChange: any;
|
|
6
|
+
title?: string | undefined;
|
|
7
|
+
placeholder?: string | undefined;
|
|
8
|
+
color?: string | undefined;
|
|
9
|
+
size?: number | undefined;
|
|
10
|
+
lucideIcon: any;
|
|
11
|
+
icon: any;
|
|
12
|
+
options?: any[] | undefined;
|
|
13
|
+
selectionMode?: string | undefined;
|
|
14
|
+
displayField?: string | undefined;
|
|
15
|
+
titleField?: string | undefined;
|
|
16
|
+
subtitleField?: string | undefined;
|
|
17
|
+
iconField?: string | undefined;
|
|
18
|
+
colorField?: string | undefined;
|
|
19
|
+
countryField?: string | undefined;
|
|
20
|
+
showCountryFlag?: boolean | undefined;
|
|
21
|
+
flagSize?: number | undefined;
|
|
22
|
+
ItemRenderer: any;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element;
|