@bit.rhplus/ui.f7.detail-item 0.0.2 → 0.0.3
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 +167 -0
- package/components/Contact.jsx +105 -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 +17 -2
- package/components/List.jsx +305 -0
- package/components/Select.jsx +199 -0
- package/components/Switch.jsx +12 -1
- package/components/Text.jsx +36 -3
- package/components/index.jsx +6 -1
- package/dist/components/Category.d.ts +13 -0
- package/dist/components/Category.js +86 -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/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 +20 -0
- package/dist/components/List.js +173 -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 +5 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +18 -11
- package/dist/index.js.map +1 -1
- package/index.jsx +109 -62
- package/package.json +6 -3
- /package/dist/{preview-1756999926762.js → preview-1757077532569.js} +0 -0
|
@@ -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: "V\u00FDb\u011Br" }), _jsx(NavTitleLarge, { children: "Vyberte polo\u017Eky" })] }), _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: "P\u0159idat pozn\u00E1mku" }), _jsx(NavTitleLarge, { children: "P\u0159idat pozn\u00E1mku" })] }), _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,20 @@
|
|
|
1
|
+
export function List({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, options, selectionMode, displayField, titleField, subtitleField, iconField, colorField, 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
|
+
ItemRenderer: any;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,173 @@
|
|
|
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 as F7List, ListItem, Card, Button } from 'framework7-react';
|
|
5
|
+
import { List as ListIcon } from 'lucide-react';
|
|
6
|
+
import SaveButton from '@bit.rhplus/ui.f7.save-button';
|
|
7
|
+
// List komponenta s modální editací - zobrazuje seznam jako ListItem komponenty
|
|
8
|
+
export const List = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
|
|
9
|
+
title = 'Editace výběru', placeholder = 'Vyberte položku', color = '#6887d3', size = 16, lucideIcon, // Lucide React ikona (např. List)
|
|
10
|
+
icon, // Jakákoliv React komponenta ikony
|
|
11
|
+
options = [], // Array možností pro výběr
|
|
12
|
+
selectionMode = 'single', // 'single' nebo 'multiple'
|
|
13
|
+
displayField = 'name', // Pole, které se zobrazí v detail-item při výběru
|
|
14
|
+
titleField = 'name', // Pole pro nadpis v ListItem
|
|
15
|
+
subtitleField = 'description', // Pole pro popis v ListItem
|
|
16
|
+
iconField = 'icon', // Pole pro ikonu v ListItem
|
|
17
|
+
colorField = 'color', // Pole pro barvu v ListItem
|
|
18
|
+
ItemRenderer // Custom komponenta pro renderování jednotlivých položek
|
|
19
|
+
}) => {
|
|
20
|
+
const [popupOpened, setPopupOpened] = useState(false);
|
|
21
|
+
// Inicializuj selectedItems pouze jednou při mount
|
|
22
|
+
const initialSelectedItems = useMemo(() => {
|
|
23
|
+
return value ? (Array.isArray(value) ? value : [value]) : [];
|
|
24
|
+
}, []); // Prázdné dependency array - pouze při mount
|
|
25
|
+
const [selectedItems, setSelectedItems] = useState(initialSelectedItems);
|
|
26
|
+
const linkStyle = {
|
|
27
|
+
color,
|
|
28
|
+
cursor: 'pointer',
|
|
29
|
+
display: 'flex',
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
gap: '6px'
|
|
32
|
+
};
|
|
33
|
+
const handleCancel = () => {
|
|
34
|
+
const originalValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
35
|
+
setSelectedItems(originalValue);
|
|
36
|
+
setPopupOpened(false);
|
|
37
|
+
};
|
|
38
|
+
const handleOpenPopup = () => {
|
|
39
|
+
// Reset selected items při otevření
|
|
40
|
+
const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
41
|
+
setSelectedItems(currentValue);
|
|
42
|
+
setPopupOpened(true);
|
|
43
|
+
};
|
|
44
|
+
const isSelected = (item) => {
|
|
45
|
+
return selectedItems.some(selected => selected.id === item.id);
|
|
46
|
+
};
|
|
47
|
+
const handleItemClick = (item) => {
|
|
48
|
+
if (selectionMode === 'single') {
|
|
49
|
+
// Single selection - přímé uložení položky bez použití state
|
|
50
|
+
if (onChange) {
|
|
51
|
+
onChange(item);
|
|
52
|
+
}
|
|
53
|
+
else if (onSave) {
|
|
54
|
+
onSave(item);
|
|
55
|
+
}
|
|
56
|
+
// Zavři popup
|
|
57
|
+
setPopupOpened(false);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Multiple selection - toggle výběr
|
|
62
|
+
let newSelection;
|
|
63
|
+
if (isSelected(item)) {
|
|
64
|
+
newSelection = selectedItems.filter(selected => selected.id !== item.id);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
newSelection = [...selectedItems, item];
|
|
68
|
+
}
|
|
69
|
+
setSelectedItems(newSelection);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const handleSaveSelection = () => {
|
|
73
|
+
// Uložení vybraných položek pro oba režimy
|
|
74
|
+
let result;
|
|
75
|
+
if (selectionMode === 'single') {
|
|
76
|
+
result = selectedItems.length > 0 ? selectedItems[0] : null;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
result = selectedItems.length === 1 ? selectedItems[0] : selectedItems;
|
|
80
|
+
}
|
|
81
|
+
if (onChange) {
|
|
82
|
+
onChange(result);
|
|
83
|
+
}
|
|
84
|
+
else if (onSave) {
|
|
85
|
+
onSave(result);
|
|
86
|
+
}
|
|
87
|
+
setPopupOpened(false);
|
|
88
|
+
};
|
|
89
|
+
// Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí List
|
|
90
|
+
const renderIcon = () => {
|
|
91
|
+
if (icon) {
|
|
92
|
+
return React.cloneElement(icon, { size, color, ...icon.props });
|
|
93
|
+
}
|
|
94
|
+
if (lucideIcon) {
|
|
95
|
+
const LucideIcon = lucideIcon;
|
|
96
|
+
return _jsx(LucideIcon, { size: size, color: color });
|
|
97
|
+
}
|
|
98
|
+
return _jsx(ListIcon, { size: size, color: color });
|
|
99
|
+
};
|
|
100
|
+
// Renderování ikony pro ListItem
|
|
101
|
+
const renderItemIcon = (item) => {
|
|
102
|
+
const itemIcon = item[iconField];
|
|
103
|
+
const itemColor = item[colorField] || color;
|
|
104
|
+
if (React.isValidElement(itemIcon)) {
|
|
105
|
+
return React.cloneElement(itemIcon, { size: 20, color: itemColor });
|
|
106
|
+
}
|
|
107
|
+
return _jsx(Icon, { f7: "circle_fill", color: itemColor, size: "20" });
|
|
108
|
+
};
|
|
109
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Link, { onClick: handleOpenPopup, className: "link", style: linkStyle, children: [renderIcon(), (() => {
|
|
110
|
+
// Použij value prop pro zobrazení (ne selectedItems state)
|
|
111
|
+
const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
|
|
112
|
+
if (currentValue.length === 1) {
|
|
113
|
+
// Pokud je vybraná jedna položka, zobraz hodnotu z displayField
|
|
114
|
+
const item = currentValue[0];
|
|
115
|
+
return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
|
|
116
|
+
}
|
|
117
|
+
else if (currentValue.length > 1) {
|
|
118
|
+
return `${currentValue.length} vybraných položek`;
|
|
119
|
+
}
|
|
120
|
+
return placeholder;
|
|
121
|
+
})()] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, push: false, className: "f7-parallax list-popup", style: {
|
|
122
|
+
'--f7-popup-tablet-width': '90vw',
|
|
123
|
+
'--f7-popup-tablet-height': '90vh'
|
|
124
|
+
}, 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: "Vyberte polo\u017Eku" }), _jsx(NavTitleLarge, { children: "Vyberte polo\u017Eku" })] }), _jsx("div", { className: "page-content", children: _jsx(Block, { style: {
|
|
125
|
+
padding: '10px 0'
|
|
126
|
+
}, children: _jsx(Card, { children: _jsx(F7List, { style: {
|
|
127
|
+
marginTop: '0',
|
|
128
|
+
marginBottom: '0'
|
|
129
|
+
}, children: options.map((item, index) => {
|
|
130
|
+
const selected = isSelected(item);
|
|
131
|
+
// Pokud je předán custom ItemRenderer, použij ho
|
|
132
|
+
if (ItemRenderer) {
|
|
133
|
+
return (_jsx(ItemRenderer, { item: item, index: index, selected: selected, onItemClick: (e) => {
|
|
134
|
+
e.preventDefault();
|
|
135
|
+
e.stopPropagation();
|
|
136
|
+
handleItemClick(item);
|
|
137
|
+
}, titleField: titleField, subtitleField: subtitleField, iconField: iconField, colorField: colorField, color: color }, item.id || index));
|
|
138
|
+
}
|
|
139
|
+
// Defaultní renderování
|
|
140
|
+
const title = item[titleField] || item.name || item.title || `Položka ${index + 1}`;
|
|
141
|
+
const subtitle = item[subtitleField] || item.description;
|
|
142
|
+
return (_jsxs(ListItem, { link: "#", noChevron: true, onClick: () => handleItemClick(item), style: {
|
|
143
|
+
'--f7-list-item-padding-horizontal': '15px',
|
|
144
|
+
'--f7-list-item-padding-vertical': '12px',
|
|
145
|
+
backgroundColor: selected ? '#f0f9ff' : 'transparent'
|
|
146
|
+
}, children: [_jsx("div", { slot: "media", style: {
|
|
147
|
+
display: 'flex',
|
|
148
|
+
alignItems: 'center',
|
|
149
|
+
marginRight: '12px'
|
|
150
|
+
}, children: renderItemIcon(item) }), _jsxs("div", { slot: "inner", style: {
|
|
151
|
+
display: 'flex',
|
|
152
|
+
flexDirection: 'column',
|
|
153
|
+
width: '100%',
|
|
154
|
+
minHeight: '50px'
|
|
155
|
+
}, children: [_jsxs("div", { style: {
|
|
156
|
+
display: 'flex',
|
|
157
|
+
justifyContent: 'space-between',
|
|
158
|
+
alignItems: 'center',
|
|
159
|
+
marginBottom: subtitle ? '4px' : '0'
|
|
160
|
+
}, children: [_jsx("span", { style: {
|
|
161
|
+
fontWeight: selected ? 600 : 500,
|
|
162
|
+
fontSize: '16px',
|
|
163
|
+
color: selected ? '#007aff' : '#000'
|
|
164
|
+
}, children: title }), selected && (_jsx(Icon, { f7: "checkmark_circle_fill", color: "#007aff", size: "20" }))] }), subtitle && (_jsx("div", { style: {
|
|
165
|
+
fontSize: '14px',
|
|
166
|
+
color: '#666',
|
|
167
|
+
overflow: 'hidden',
|
|
168
|
+
textOverflow: 'ellipsis',
|
|
169
|
+
whiteSpace: 'nowrap'
|
|
170
|
+
}, children: subtitle }))] })] }, item.id || index));
|
|
171
|
+
}) }) }) }) })] }) }) })] }));
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../components/List.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function Select({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, options }: {
|
|
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
|
+
}): import("react/jsx-runtime").JSX.Element;
|