@bit.rhplus/ui.f7.detail-item 0.0.107 → 0.0.108

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.
Files changed (54) hide show
  1. package/dist/components/Calendar.d.ts +18 -0
  2. package/dist/components/Calendar.js +367 -0
  3. package/dist/components/Calendar.js.map +1 -0
  4. package/dist/components/Category.d.ts +14 -0
  5. package/dist/components/Category.js +90 -0
  6. package/dist/components/Category.js.map +1 -0
  7. package/dist/components/Contact.d.ts +12 -0
  8. package/dist/components/Contact.js +90 -0
  9. package/dist/components/Contact.js.map +1 -0
  10. package/dist/components/CountryFlag.d.ts +12 -0
  11. package/dist/components/CountryFlag.js +76 -0
  12. package/dist/components/CountryFlag.js.map +1 -0
  13. package/dist/components/Custom.d.ts +22 -0
  14. package/dist/components/Custom.js +146 -0
  15. package/dist/components/Custom.js.map +1 -0
  16. package/dist/components/Download.d.ts +12 -0
  17. package/dist/components/Download.js +48 -0
  18. package/dist/components/Download.js.map +1 -0
  19. package/dist/components/Grid.d.ts +20 -0
  20. package/dist/components/Grid.js +147 -0
  21. package/dist/components/Grid.js.map +1 -0
  22. package/dist/components/InputNumber.d.ts +16 -0
  23. package/dist/components/InputNumber.js +78 -0
  24. package/dist/components/InputNumber.js.map +1 -0
  25. package/dist/components/InputText.d.ts +13 -0
  26. package/dist/components/InputText.js +61 -0
  27. package/dist/components/InputText.js.map +1 -0
  28. package/dist/components/List.d.ts +29 -0
  29. package/dist/components/List.js +269 -0
  30. package/dist/components/List.js.map +1 -0
  31. package/dist/components/Project.d.ts +31 -0
  32. package/dist/components/Project.js +575 -0
  33. package/dist/components/Project.js.map +1 -0
  34. package/dist/components/Select.d.ts +14 -0
  35. package/dist/components/Select.js +105 -0
  36. package/dist/components/Select.js.map +1 -0
  37. package/dist/components/Switch.d.ts +12 -0
  38. package/dist/components/Switch.js +26 -0
  39. package/dist/components/Switch.js.map +1 -0
  40. package/dist/components/Text.d.ts +11 -0
  41. package/dist/components/Text.js +30 -0
  42. package/dist/components/Text.js.map +1 -0
  43. package/dist/components/index.d.ts +1 -0
  44. package/dist/components/index.js +15 -0
  45. package/dist/components/index.js.map +1 -0
  46. package/dist/index.d.ts +16 -0
  47. package/dist/index.js +41 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/preview-1773758831838.js +7 -0
  50. package/dist/style.css +113 -0
  51. package/package.json +3 -3
  52. package/types/asset.d.ts +43 -0
  53. package/types/env.d.ts +15 -0
  54. package/types/style.d.ts +42 -0
@@ -0,0 +1,18 @@
1
+ export function Calendar({ value, title, onChange, placeholder, format, color, style, disabled, lucideIcon, icon, iconSize, field, enableTime, calendarParams, ...restProps }: {
2
+ [x: string]: any;
3
+ value: any;
4
+ title: any;
5
+ onChange: any;
6
+ placeholder?: string;
7
+ format?: string;
8
+ color: any;
9
+ style: any;
10
+ disabled?: boolean;
11
+ lucideIcon?: React.ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
12
+ icon: any;
13
+ iconSize?: number;
14
+ field?: any;
15
+ enableTime?: boolean;
16
+ calendarParams?: {};
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ import React from 'react';
@@ -0,0 +1,367 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React, { useRef, useEffect, useState, useCallback } from 'react';
4
+ import { f7, Popup, Popover, Page, Navbar, NavLeft, NavTitle, NavTitleLarge, NavRight, Link, Block, Icon, Card, List, ListInput, Picker, Button } from 'framework7-react';
5
+ import { Calendar as CalendarIcon, X } from 'lucide-react';
6
+ import SaveButton from '@bit.rhplus/ui.f7.save-button';
7
+ import SmallButton from '@bit.rhplus/ui.f7.small-button';
8
+ export const Calendar = ({ value, title, onChange, placeholder = 'Vyberte datum', format = 'dd.MM.yyyy', color, style, disabled = false, lucideIcon = CalendarIcon, icon, iconSize = 16, field = null, enableTime = false, // Nový prop pro povolení výběru času
9
+ calendarParams = {}, ...restProps }) => {
10
+ const calendarRef = useRef(null);
11
+ const calendarContainerRef = useRef(null);
12
+ const isInitializingRef = useRef(false);
13
+ const [displayValue, setDisplayValue] = useState('');
14
+ const [popupOpened, setPopupOpened] = useState(false);
15
+ const [timePopoverOpened, setTimePopoverOpened] = useState(false);
16
+ const timePickerRef = useRef(null);
17
+ const [selectedDate, setSelectedDate] = useState(value ? new Date(value) : null);
18
+ const [selectedTime, setSelectedTime] = useState(() => {
19
+ if (value && enableTime) {
20
+ const d = new Date(value);
21
+ return {
22
+ hours: String(d.getHours()).padStart(2, '0'),
23
+ minutes: String(d.getMinutes()).padStart(2, '0'),
24
+ isSet: true
25
+ };
26
+ }
27
+ return { hours: null, minutes: null, isSet: false };
28
+ });
29
+ // Převod hodnoty na display formát
30
+ const formatDate = (date) => {
31
+ if (!date)
32
+ return '';
33
+ const d = new Date(date);
34
+ if (isNaN(d.getTime()))
35
+ return '';
36
+ const day = String(d.getDate()).padStart(2, '0');
37
+ const month = String(d.getMonth() + 1).padStart(2, '0');
38
+ const year = d.getFullYear();
39
+ let dateStr = `${day}.${month}.${year}`;
40
+ // Pokud je povolený čas a je nastaven, přidej ho k formátu
41
+ if (enableTime && selectedTime.isSet && selectedTime.hours !== null) {
42
+ const hours = String(d.getHours()).padStart(2, '0');
43
+ const minutes = String(d.getMinutes()).padStart(2, '0');
44
+ dateStr += ` ${hours}:${minutes}`;
45
+ }
46
+ return dateStr;
47
+ };
48
+ // Aktualizace display hodnoty při změně value
49
+ useEffect(() => {
50
+ setDisplayValue(formatDate(value));
51
+ setSelectedDate(value ? new Date(value) : null);
52
+ }, [value]);
53
+ // Otevření popup s kalendářem
54
+ const openCalendar = useCallback(() => {
55
+ if (disabled)
56
+ return;
57
+ setPopupOpened(true);
58
+ }, [disabled]);
59
+ // Cleanup kalendáře při zavírání popup
60
+ useEffect(() => {
61
+ if (!popupOpened && calendarRef.current) {
62
+ // Bezpečný cleanup s timeout pro prevenci konfliktů
63
+ setTimeout(() => {
64
+ if (calendarRef.current) {
65
+ try {
66
+ calendarRef.current.destroy();
67
+ }
68
+ catch (error) {
69
+ console.warn('Calendar cleanup error:', error);
70
+ }
71
+ calendarRef.current = null;
72
+ }
73
+ // Vyčisti i DOM kontejner
74
+ if (calendarContainerRef.current) {
75
+ calendarContainerRef.current.innerHTML = '';
76
+ }
77
+ }, 100);
78
+ }
79
+ }, [popupOpened]);
80
+ // Inicializace kalendáře po otevření popup
81
+ useEffect(() => {
82
+ if (!popupOpened || !calendarContainerRef.current)
83
+ return;
84
+ // Počkej na vykreslení popup
85
+ const timeoutId = setTimeout(() => {
86
+ if (!calendarContainerRef.current || !popupOpened)
87
+ return;
88
+ // Vyčisti předchozí obsah
89
+ calendarContainerRef.current.innerHTML = '';
90
+ // Zničí existující kalendář pokud existuje
91
+ if (calendarRef.current) {
92
+ calendarRef.current.destroy();
93
+ calendarRef.current = null;
94
+ }
95
+ // Nastav flag že se kalendář inicializuje
96
+ isInitializingRef.current = true;
97
+ // Měsíce v češtině
98
+ const monthNames = [
99
+ 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen',
100
+ 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'
101
+ ];
102
+ // Dny v češtině
103
+ const dayNames = ['Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So'];
104
+ const defaultParams = {
105
+ containerEl: calendarContainerRef.current,
106
+ value: selectedDate ? [selectedDate] : [],
107
+ // Nastavení výchozího roku a měsíce podle vybraného data
108
+ ...(selectedDate && {
109
+ currentYear: selectedDate.getFullYear(),
110
+ currentMonth: selectedDate.getMonth(),
111
+ currentDate: selectedDate
112
+ }),
113
+ monthNames,
114
+ monthNamesShort: monthNames.map(name => name.substring(0, 3)),
115
+ dayNames,
116
+ dayNamesShort: dayNames,
117
+ firstDay: 1, // Pondělí jako první den
118
+ // Vypne timePicker - použijeme vlastní řešení
119
+ timePicker: false,
120
+ // Vypne automatické zavírání při enableTime
121
+ closeOnSelect: !enableTime,
122
+ on: {
123
+ change: (calendar, value) => {
124
+ // Ignoruj změny během inicializace
125
+ if (isInitializingRef.current) {
126
+ return;
127
+ }
128
+ if (value && value.length > 0) {
129
+ const newSelectedDate = value[0];
130
+ setSelectedDate(newSelectedDate);
131
+ // Pokud není povolen čas, automaticky potvrď a zavři popup
132
+ if (!enableTime) {
133
+ if (onChange) {
134
+ onChange(newSelectedDate);
135
+ }
136
+ // Zavři popup s mírným zpožděním pro lepší UX
137
+ setTimeout(() => {
138
+ setPopupOpened(false);
139
+ }, 200);
140
+ }
141
+ }
142
+ }
143
+ },
144
+ ...calendarParams
145
+ };
146
+ calendarRef.current = f7.calendar.create(defaultParams);
147
+ // Po vytvoření kalendáře vypni inicializační flag
148
+ setTimeout(() => {
149
+ isInitializingRef.current = false;
150
+ }, 300);
151
+ }, 150);
152
+ return () => {
153
+ clearTimeout(timeoutId);
154
+ if (calendarRef.current) {
155
+ try {
156
+ calendarRef.current.destroy();
157
+ }
158
+ catch (error) {
159
+ console.warn('Calendar cleanup error:', error);
160
+ }
161
+ calendarRef.current = null;
162
+ }
163
+ };
164
+ }, [popupOpened, selectedDate, calendarParams]);
165
+ // Otevření time picker
166
+ const openTimePicker = useCallback(() => {
167
+ if (!enableTime)
168
+ return;
169
+ // Bezpečný cleanup existujícího pickeru
170
+ if (timePickerRef.current) {
171
+ try {
172
+ timePickerRef.current.destroy();
173
+ }
174
+ catch (error) {
175
+ console.warn('Time picker cleanup error:', error);
176
+ }
177
+ timePickerRef.current = null;
178
+ }
179
+ // Krátký timeout pro zajištění úplného cleanup
180
+ setTimeout(() => {
181
+ // Vytvoř hodnoty pro picker
182
+ const hours = Array.from({ length: 24 }, (_, i) => ({
183
+ value: String(i).padStart(2, '0'),
184
+ displayValue: String(i).padStart(2, '0')
185
+ }));
186
+ const minutes = Array.from({ length: 60 }, (_, i) => ({
187
+ value: String(i).padStart(2, '0'),
188
+ displayValue: String(i).padStart(2, '0')
189
+ }));
190
+ timePickerRef.current = f7.picker.create({
191
+ inputEl: '.time-picker-button',
192
+ value: selectedTime.isSet ? [selectedTime.hours, selectedTime.minutes] : ['09', '00'],
193
+ cols: [
194
+ {
195
+ textAlign: 'center',
196
+ values: hours.map(h => h.value),
197
+ displayValues: hours.map(h => h.displayValue),
198
+ },
199
+ {
200
+ textAlign: 'center',
201
+ values: minutes.map(m => m.value),
202
+ displayValues: minutes.map(m => m.displayValue),
203
+ }
204
+ ],
205
+ formatValue: (values) => `${values[0]}:${values[1]}`,
206
+ on: {
207
+ change: (picker, values) => {
208
+ setSelectedTime({
209
+ hours: values[0],
210
+ minutes: values[1],
211
+ isSet: true
212
+ });
213
+ },
214
+ close: () => {
215
+ // Cleanup při zavření
216
+ setTimeout(() => {
217
+ if (timePickerRef.current) {
218
+ try {
219
+ timePickerRef.current.destroy();
220
+ }
221
+ catch (error) {
222
+ console.warn('Time picker close cleanup error:', error);
223
+ }
224
+ timePickerRef.current = null;
225
+ }
226
+ }, 100);
227
+ }
228
+ }
229
+ });
230
+ timePickerRef.current.open();
231
+ }, 50);
232
+ }, [enableTime, selectedTime]);
233
+ // Vynulování času
234
+ const clearTime = useCallback(() => {
235
+ setSelectedTime({ hours: null, minutes: null, isSet: false });
236
+ }, []);
237
+ // Cleanup time pickeru
238
+ useEffect(() => {
239
+ return () => {
240
+ if (timePickerRef.current) {
241
+ try {
242
+ timePickerRef.current.destroy();
243
+ }
244
+ catch (error) {
245
+ console.warn('Time picker unmount cleanup error:', error);
246
+ }
247
+ timePickerRef.current = null;
248
+ }
249
+ };
250
+ }, []);
251
+ // Cleanup při zavírání hlavního popup
252
+ useEffect(() => {
253
+ if (!popupOpened && timePickerRef.current) {
254
+ try {
255
+ timePickerRef.current.destroy();
256
+ }
257
+ catch (error) {
258
+ console.warn('Time picker popup cleanup error:', error);
259
+ }
260
+ timePickerRef.current = null;
261
+ }
262
+ }, [popupOpened]);
263
+ // Potvrzení výběru data
264
+ const confirmSelection = useCallback(() => {
265
+ if (selectedDate && onChange) {
266
+ let finalDate = new Date(selectedDate);
267
+ // Pokud je povolen čas a je nastaven, aplikuj vybraný čas
268
+ if (enableTime && selectedTime.isSet && selectedTime.hours !== null) {
269
+ finalDate.setHours(parseInt(selectedTime.hours));
270
+ finalDate.setMinutes(parseInt(selectedTime.minutes));
271
+ }
272
+ else if (enableTime && !selectedTime.isSet) {
273
+ // Pokud čas není nastaven, použij 00:00
274
+ finalDate.setHours(0);
275
+ finalDate.setMinutes(0);
276
+ }
277
+ onChange(finalDate);
278
+ }
279
+ setPopupOpened(false);
280
+ }, [selectedDate, selectedTime, enableTime, onChange]);
281
+ // Zrušení výběru
282
+ const cancelSelection = useCallback(() => {
283
+ setSelectedDate(value ? new Date(value) : null);
284
+ // Obnovení původního stavu času
285
+ if (value && enableTime) {
286
+ const d = new Date(value);
287
+ setSelectedTime({
288
+ hours: String(d.getHours()).padStart(2, '0'),
289
+ minutes: String(d.getMinutes()).padStart(2, '0'),
290
+ isSet: true
291
+ });
292
+ }
293
+ else {
294
+ setSelectedTime({ hours: null, minutes: null, isSet: false });
295
+ }
296
+ // Bezpečné zavření s delay
297
+ setTimeout(() => {
298
+ setPopupOpened(false);
299
+ }, 50);
300
+ }, [value, enableTime]);
301
+ const containerStyle = {
302
+ display: 'flex',
303
+ alignItems: 'center',
304
+ justifyContent: 'flex-end',
305
+ gap: '6px',
306
+ cursor: disabled ? 'not-allowed' : 'pointer',
307
+ opacity: disabled ? 0.6 : 1,
308
+ minWidth: '120px',
309
+ textAlign: 'right',
310
+ ...style
311
+ };
312
+ const displayStyle = {
313
+ border: 'none',
314
+ background: 'transparent',
315
+ outline: 'none',
316
+ fontSize: 'inherit',
317
+ color: '#6887d3',
318
+ cursor: disabled ? 'not-allowed' : 'pointer',
319
+ pointerEvents: 'none',
320
+ fontWeight: displayValue ? '500' : 'normal'
321
+ };
322
+ // Určí jakou ikonu použít
323
+ const renderIcon = () => {
324
+ const iconColor = '#6887d3';
325
+ if (icon) {
326
+ return React.cloneElement(icon, { size: iconSize, color: iconColor, ...icon.props });
327
+ }
328
+ if (lucideIcon) {
329
+ const LucideIcon = lucideIcon;
330
+ return _jsx(LucideIcon, { size: iconSize, color: iconColor });
331
+ }
332
+ return null;
333
+ };
334
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { style: containerStyle, onClick: openCalendar, ...restProps, children: [renderIcon(), _jsx("span", { style: displayStyle, children: displayValue || placeholder })] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: cancelSelection, animate: true, backdrop: true, push: false, className: "f7-parallax calendar-popup", style: {
335
+ '--f7-popup-tablet-width': '90vw',
336
+ '--f7-popup-tablet-height': '90vh'
337
+ }, children: _jsx("div", { className: "view view-init", children: _jsxs("div", { className: "page page-with-navbar-large", children: [_jsxs(Navbar, { large: true, children: [_jsx(NavLeft, { children: _jsx(Link, { onClick: cancelSelection, children: _jsx(Icon, { f7: "arrow_left", style: { fontWeight: 'bold' } }) }) }), _jsx(NavTitle, { children: title }), _jsx(NavTitleLarge, { children: title })] }), _jsx("div", { className: "page-content", children: _jsxs(Block, { style: {
338
+ padding: '10px 0',
339
+ }, children: [_jsx(Card, { children: _jsx(Block, { style: { padding: '20px' }, children: _jsx("div", { ref: calendarContainerRef, style: {
340
+ minHeight: '300px',
341
+ display: 'flex',
342
+ justifyContent: 'center',
343
+ alignItems: 'flex-start'
344
+ } }) }) }), enableTime && (_jsx(Block, { style: {
345
+ padding: '10px 0',
346
+ }, children: _jsx(Card, { children: _jsx(Block, { style: { padding: '20px' }, children: _jsxs("div", { style: {
347
+ display: 'flex',
348
+ justifyContent: 'space-between',
349
+ alignItems: 'center'
350
+ }, children: [_jsx("h3", { style: { margin: 0, fontSize: '18px', fontWeight: '600' }, children: "\u010Cas" }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_jsx(SmallButton, { className: "time-picker-button", onClick: openTimePicker, style: {
351
+ width: 'auto',
352
+ opacity: selectedTime.isSet ? 1 : 0.6,
353
+ padding: '16px 22px',
354
+ }, children: selectedTime.isSet ? `${selectedTime.hours}:${selectedTime.minutes}` : 'Vyberte čas' }), selectedTime.isSet && (_jsx("button", { onClick: clearTime, style: {
355
+ background: 'transparent',
356
+ border: 'none',
357
+ padding: '4px',
358
+ cursor: 'pointer',
359
+ borderRadius: '4px',
360
+ display: 'flex',
361
+ alignItems: 'center',
362
+ justifyContent: 'center',
363
+ opacity: 0.6,
364
+ transition: 'opacity 0.2s'
365
+ }, onMouseOver: (e) => e.target.style.opacity = '1', onMouseOut: (e) => e.target.style.opacity = '0.6', children: _jsx(X, { size: 16, color: "#666" }) }))] })] }) }) }) })), enableTime && (_jsx(SaveButton, { onClick: confirmSelection, variant: "black" }))] }) })] }) }) })] }));
366
+ };
367
+ //# sourceMappingURL=Calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../components/Calendar.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1K,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,eAAe,EAC7B,MAAM,GAAG,YAAY,EACrB,KAAK,EACL,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,YAAY,EACzB,IAAI,EACJ,QAAQ,GAAG,EAAE,EACb,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,KAAK,EAAE,qCAAqC;AACzD,cAAc,GAAG,EAAE,EACnB,GAAG,SAAS,EACb,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACpD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,OAAO,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAExC,2DAA2D;QAC3D,IAAI,UAAU,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACxD,OAAO,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,8CAA8C;IAC9C,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,8BAA8B;IAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,QAAQ;YAAE,OAAO;QACrB,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,uCAAuC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxC,oDAAoD;YACpD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACH,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAChC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC;oBACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,0BAA0B;gBAC1B,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;oBACjC,oBAAoB,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;gBAC9C,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,IAAI,CAAC,oBAAoB,CAAC,OAAO;YAAE,OAAO;QAE1D,6BAA6B;QAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,WAAW;gBAAE,OAAO;YAE1D,0BAA0B;YAC1B,oBAAoB,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;YAE5C,2CAA2C;YAC3C,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC9B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,0CAA0C;YAC1C,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YAEjC,mBAAmB;YACnB,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;gBACtD,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU;aAC7D,CAAC;YAEF,gBAAgB;YAChB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE5D,MAAM,aAAa,GAAG;gBACpB,WAAW,EAAE,oBAAoB,CAAC,OAAO;gBACzC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,yDAAyD;gBACzD,GAAG,CAAC,YAAY,IAAI;oBAClB,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;oBACvC,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;oBACrC,WAAW,EAAE,YAAY;iBAC1B,CAAC;gBACF,UAAU;gBACV,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7D,QAAQ;gBACR,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,CAAC,EAAE,yBAAyB;gBACtC,8CAA8C;gBAC9C,UAAU,EAAE,KAAK;gBACjB,4CAA4C;gBAC5C,aAAa,EAAE,CAAC,UAAU;gBAC1B,EAAE,EAAE;oBACF,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;wBAC1B,mCAAmC;wBACnC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;4BAC9B,OAAO;wBACT,CAAC;wBAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACjC,eAAe,CAAC,eAAe,CAAC,CAAC;4BACjC,2DAA2D;4BAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;gCAChB,IAAI,QAAQ,EAAE,CAAC;oCACb,QAAQ,CAAC,eAAe,CAAC,CAAC;gCAC5B,CAAC;gCACD,8CAA8C;gCAC9C,UAAU,CAAC,GAAG,EAAE;oCACd,cAAc,CAAC,KAAK,CAAC,CAAC;gCACxB,CAAC,EAAE,GAAG,CAAC,CAAC;4BACV,CAAC;wBACH,CAAC;oBACH,CAAC;iBACF;gBACD,GAAG,cAAc;aAClB,CAAC;YAEF,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAExD,kDAAkD;YAClD,UAAU,CAAC,GAAG,EAAE;gBACd,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YACpC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhD,uBAAuB;IACvB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,wCAAwC;QACxC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,+CAA+C;QAC/C,UAAU,CAAC,GAAG,EAAE;YACd,4BAA4B;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aACzC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aACzC,CAAC,CAAC,CAAC;YAEJ,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvC,OAAO,EAAE,qBAAqB;gBAC9B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;gBACrF,IAAI,EAAE;oBACJ;wBACE,SAAS,EAAE,QAAQ;wBACnB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC/B,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;qBAC9C;oBACD;wBACE,SAAS,EAAE,QAAQ;wBACnB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBACjC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;qBAChD;iBACF;gBACD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gBACpD,EAAE,EAAE;oBACF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;wBACzB,eAAe,CAAC;4BACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;4BAChB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;4BAClB,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,EAAE,GAAG,EAAE;wBACV,sBAAsB;wBACtB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gCAC1B,IAAI,CAAC;oCACH,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gCAClC,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gCAC1D,CAAC;gCACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;4BAC/B,CAAC;wBACH,CAAC,EAAE,GAAG,CAAC,CAAC;oBACV,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/B,kBAAkB;IAClB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uBAAuB;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAEvC,0DAA0D;YAC1D,IAAI,UAAU,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACpE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjD,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,UAAU,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC7C,wCAAwC;gBACxC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QACD,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,iBAAiB;IACjB,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,gCAAgC;QAChC,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,eAAe,CAAC;gBACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC5C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,2BAA2B;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAExB,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,UAAU;QAC1B,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC5C,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,OAAO;QAClB,GAAG,KAAK;KACT,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC5C,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;KAC5C,CAAC;IAEF,0BAA0B;IAC1B,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,SAAS,GAAG,SAAS,CAAC;QAE5B,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,UAAU,CAAC;YAC9B,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAI,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,eAAK,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,KAAM,SAAS,aAC7D,UAAU,EAAE,EACb,eAAM,KAAK,EAAE,YAAY,YACtB,YAAY,IAAI,WAAW,GACvB,IACH,EAEN,KAAC,KAAK,IACJ,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,eAAe,EAC9B,OAAO,QACP,QAAQ,QACR,IAAI,EAAE,KAAK,EACX,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE;oBACL,yBAAyB,EAAE,MAAM;oBACjC,0BAA0B,EAAE,MAAM;iBACnC,YAED,cAAK,SAAS,EAAC,gBAAgB,YAC7B,eAAK,SAAS,EAAC,6BAA6B,aAC1C,MAAC,MAAM,IAAC,KAAK,mBACX,KAAC,OAAO,cACN,KAAC,IAAI,IAAC,OAAO,EAAE,eAAe,YAC5B,KAAC,IAAI,IAAC,EAAE,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAI,GAClD,GACC,EACV,KAAC,QAAQ,cAAE,KAAK,GAAY,EAC5B,KAAC,aAAa,cAAE,KAAK,GAAiB,IAC/B,EAET,cAAK,SAAS,EAAC,cAAc,YAC3B,MAAC,KAAK,IACJ,KAAK,EAAE;wCACL,OAAO,EAAE,QAAQ;qCAClB,aAED,KAAC,IAAI,cACH,KAAC,KAAK,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAC/B,cACE,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE;wDACL,SAAS,EAAE,OAAO;wDAClB,OAAO,EAAE,MAAM;wDACf,cAAc,EAAE,QAAQ;wDACxB,UAAU,EAAE,YAAY;qDACzB,GACD,GACI,GACH,EAGN,UAAU,IAAI,CACb,KAAC,KAAK,IACJ,KAAK,EAAE;gDACL,OAAO,EAAE,QAAQ;6CAClB,YAED,KAAC,IAAI,cACH,KAAC,KAAK,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAC/B,eAAK,KAAK,EAAE;4DACV,OAAO,EAAE,MAAM;4DACf,cAAc,EAAE,eAAe;4DAC/B,UAAU,EAAE,QAAQ;yDACrB,aACC,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,yBAAU,EACvE,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAC/D,KAAC,WAAW,IACV,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;4EACL,KAAK,EAAE,MAAM;4EACb,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;4EACrC,OAAO,EAAE,WAAW;yEACrB,YAEA,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,GACzE,EACb,YAAY,CAAC,KAAK,IAAI,CACrB,iBACE,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE;4EACL,UAAU,EAAE,aAAa;4EACzB,MAAM,EAAE,MAAM;4EACd,OAAO,EAAE,KAAK;4EACd,MAAM,EAAE,SAAS;4EACjB,YAAY,EAAE,KAAK;4EACnB,OAAO,EAAE,MAAM;4EACf,UAAU,EAAE,QAAQ;4EACpB,cAAc,EAAE,QAAQ;4EACxB,OAAO,EAAE,GAAG;4EACZ,UAAU,EAAE,cAAc;yEAC3B,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,EAChD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,YAEjD,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,MAAM,GAAG,GACrB,CACV,IACG,IACF,GACA,GACH,GACD,CACT,EAGA,UAAU,IAAI,CACb,KAAC,UAAU,IACT,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAC,OAAO,GACf,CACH,IACK,GACJ,IACF,GACF,GACA,IAEP,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export function Category({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, categories, field }: {
2
+ children: any;
3
+ value: any;
4
+ onSave: any;
5
+ onChange: any;
6
+ title?: string;
7
+ placeholder?: string;
8
+ color?: string;
9
+ size?: number;
10
+ lucideIcon: any;
11
+ icon: any;
12
+ categories?: any[];
13
+ field?: any;
14
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React, { useState, useEffect } from 'react';
4
+ import { Link, Icon, Popup, Navbar, NavLeft, NavTitle, NavTitleLarge, NavRight, Page, Block, List, ListInput, Button } from 'framework7-react';
5
+ import { Tag } from 'lucide-react';
6
+ import CircleButton from '@bit.rhplus/ui.circle-button';
7
+ import CategoryItems from '@bit.rhplus/ui.f7.category';
8
+ // Category komponenta s modální editací - zobrazuje výběr jedné kategorie jako avatar
9
+ export const Category = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
10
+ title = 'Vyber', placeholder = 'Vyber kategorii', color = '#6887d3', size = 16, lucideIcon, // Lucide React ikona (např. Tag)
11
+ icon, // Jakákoliv React komponenta ikony
12
+ categories = [], // Array kategorií ve formátu [{ id, name, icon, color }]
13
+ field = null // Pole pro výběr konkrétní vlastnosti objektu (např. 'id', 'name')
14
+ }) => {
15
+ const [popupOpened, setPopupOpened] = useState(false);
16
+ // Najíst objekt na základě value (pokud je field nastaven, value může být jen konkrétní vlastnost)
17
+ const findCategoryByValue = (val) => {
18
+ if (!val || !categories.length)
19
+ return null;
20
+ if (field) {
21
+ // Pokud je field nastaven, hledej objekt podle této vlastnosti
22
+ return categories.find(cat => cat[field] === val) || null;
23
+ }
24
+ else {
25
+ // Pokud field není nastaven, očekáváme celý objekt
26
+ return val;
27
+ }
28
+ };
29
+ const [selectedCategory, setSelectedCategory] = useState(() => findCategoryByValue(value));
30
+ // Aktualizuj selectedCategory když se změní value prop (pro Form.Item kompatibilitu)
31
+ useEffect(() => {
32
+ if (value !== undefined) {
33
+ setSelectedCategory(findCategoryByValue(value));
34
+ }
35
+ }, [value, categories, field]);
36
+ const linkStyle = {
37
+ color,
38
+ cursor: 'pointer',
39
+ display: 'flex',
40
+ alignItems: 'center',
41
+ gap: '6px'
42
+ };
43
+ const handleCancel = () => {
44
+ setSelectedCategory(findCategoryByValue(value));
45
+ setPopupOpened(false);
46
+ };
47
+ const selectCategory = (category) => {
48
+ // Automaticky ulož a zavři popup
49
+ setSelectedCategory(category);
50
+ // Rozhodni jakou hodnotu vrátit podle field parametru
51
+ const returnValue = field && category ? category[field] : category;
52
+ // Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
53
+ if (onChange) {
54
+ onChange(returnValue);
55
+ }
56
+ else if (onSave) {
57
+ onSave(returnValue);
58
+ }
59
+ setPopupOpened(false);
60
+ };
61
+ // Určí jakou ikonu použít - priorita: icon > lucideIcon > výchozí Tag
62
+ const renderIcon = () => {
63
+ // Pokud je vybrána kategorie, použij její barvu
64
+ let iconColor = color;
65
+ if (selectedCategory?.color) {
66
+ // Pokud barva už obsahuje #, použij ji přímo, jinak ji přidej
67
+ iconColor = selectedCategory.color.startsWith('#') ? selectedCategory.color : `#${selectedCategory.color}`;
68
+ }
69
+ if (icon) {
70
+ return React.cloneElement(icon, { size, color: iconColor, ...icon.props });
71
+ }
72
+ if (lucideIcon) {
73
+ const LucideIcon = lucideIcon;
74
+ return _jsx(LucideIcon, { size: size, color: iconColor });
75
+ }
76
+ return _jsx(Tag, { size: size, color: iconColor });
77
+ };
78
+ // Zobrazí název vybrané kategorie nebo placeholder
79
+ const renderDisplayText = () => {
80
+ if (selectedCategory && selectedCategory.name) {
81
+ return selectedCategory.name;
82
+ }
83
+ return placeholder;
84
+ };
85
+ return (_jsxs(_Fragment, { children: [_jsxs(Link, { onClick: () => setPopupOpened(true), className: "link", style: linkStyle, children: [renderIcon(), renderDisplayText()] }), _jsx(Popup, { opened: popupOpened, onPopupClosed: () => setPopupOpened(false), animate: true, backdrop: true, push: false, className: "f7-parallax category-popup", style: {
86
+ '--f7-popup-tablet-width': '90vw',
87
+ '--f7-popup-tablet-height': '90vh'
88
+ }, children: _jsx("div", { className: "view view-init", children: _jsxs("div", { className: "page page-with-navbar-large", 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("div", { className: "page-content", children: _jsx(CategoryItems, { categories: categories, onCategorySelect: selectCategory }) })] }) }) })] }));
89
+ };
90
+ //# sourceMappingURL=Category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Category.js","sourceRoot":"","sources":["../../components/Category.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export function Contact({ value, onSave, onChange, title, placeholder, color, size, field, visibleFields, ...restProps }: {
2
+ [x: string]: any;
3
+ value: any;
4
+ onSave: any;
5
+ onChange: any;
6
+ title?: string;
7
+ placeholder?: string;
8
+ color?: string;
9
+ size?: number;
10
+ field?: any;
11
+ visibleFields?: string[];
12
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable */
3
+ import React from 'react';
4
+ import { ListInput, Block, List } from 'framework7-react';
5
+ import { UserCheck } from 'lucide-react';
6
+ import { Custom } from './Custom';
7
+ // Renderer pro Contact formulář
8
+ const ContactRenderer = ({ fields, formData, onChange }) => {
9
+ const handleInputChange = (fieldKey, event) => {
10
+ const newValue = event.target.value;
11
+ onChange(fieldKey, newValue);
12
+ };
13
+ return (_jsx(Block, { inset: true, children: _jsx(List, { children: 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), clearButton: true, style: { fontSize: '18px' }, ...(field.type === 'email' && {
14
+ inputMode: 'email',
15
+ autoComplete: 'email'
16
+ }), ...(field.type === 'tel' && {
17
+ inputMode: 'tel',
18
+ autoComplete: 'tel'
19
+ }), ...(field.type === 'textarea' && {
20
+ type: 'textarea',
21
+ resizable: false,
22
+ inputStyle: { minHeight: '60px', resize: 'none' }
23
+ }) }, field.key || index))) }) }));
24
+ };
25
+ // Externí PM komponenta s předdefinovanými poli
26
+ export const Contact = ({ value, onSave, onChange, title = 'Kontakt', placeholder = 'Zadej kontakt', color = '#6887d3', size = 16, field = null, // Pole pro výběr konkrétní vlastnosti objektu
27
+ visibleFields = ['name', 'email', 'phone', 'position'], // Pole k zobrazení v popup
28
+ ...restProps }) => {
29
+ // Předdefinovaná pole pro Externí PM
30
+ const allFields = [
31
+ {
32
+ key: 'fullName',
33
+ label: 'Jméno',
34
+ type: 'text',
35
+ placeholder: 'Zadejte jméno'
36
+ },
37
+ {
38
+ key: 'email',
39
+ label: 'Email',
40
+ type: 'email',
41
+ placeholder: 'Zadejte email'
42
+ },
43
+ {
44
+ key: 'phone',
45
+ label: 'Telefon',
46
+ type: 'tel',
47
+ placeholder: 'Zadejte telefon'
48
+ },
49
+ {
50
+ key: 'position',
51
+ label: 'Pozice',
52
+ type: 'text',
53
+ placeholder: 'Zadejte pozici'
54
+ },
55
+ {
56
+ key: 'note',
57
+ label: 'Poznámka',
58
+ type: 'textarea',
59
+ placeholder: 'Zadejte poznámku'
60
+ }
61
+ ];
62
+ // Filtrování polí podle visibleFields
63
+ const pmFields = allFields.filter(field => visibleFields.includes(field.key));
64
+ // Funkce pro generování zobrazovaného textu
65
+ const getContactDisplayText = (contactData) => {
66
+ if (!contactData || typeof contactData !== 'object') {
67
+ return placeholder;
68
+ }
69
+ // Priorita: fullName > firstName + lastName > email > phone > position
70
+ if (contactData.fullName) {
71
+ return contactData.fullName + (contactData.position ? ` - ${contactData.position}` : '');
72
+ }
73
+ if (contactData.firstName || contactData.lastName) {
74
+ const name = [contactData.firstName, contactData.lastName].filter(Boolean).join(' ');
75
+ return name + (contactData.position ? ` - ${contactData.position}` : '');
76
+ }
77
+ if (contactData.email) {
78
+ return contactData.email + (contactData.position ? ` - ${contactData.position}` : '');
79
+ }
80
+ if (contactData.phone) {
81
+ return contactData.phone + (contactData.position ? ` - ${contactData.position}` : '');
82
+ }
83
+ if (contactData.position) {
84
+ return contactData.position;
85
+ }
86
+ return placeholder;
87
+ };
88
+ return (_jsx(Custom, { value: value, onSave: onSave, onChange: onChange, title: title, placeholder: placeholder, color: color, size: size, lucideIcon: UserCheck, FormRenderer: ContactRenderer, fields: pmFields, getDisplayText: getContactDisplayText, field: field, ...restProps }));
89
+ };
90
+ //# sourceMappingURL=Contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Contact.js","sourceRoot":"","sources":["../../components/Contact.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,gCAAgC;AAChC,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IACzD,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,kBACV,KAAC,IAAI,cACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,SAAS,IAER,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAChC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAC/C,WAAW,QACX,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAEvB,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI;oBAC7B,SAAS,EAAE,OAAO;oBAClB,YAAY,EAAE,OAAO;iBACtB,CAAC,KACE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI;oBAC3B,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;iBACpB,CAAC,KACE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI;oBAChC,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;iBAClD,CAAC,IArBG,KAAK,CAAC,GAAG,IAAI,KAAK,CAsBvB,CACH,CAAC,GACG,GACD,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,GAAG,SAAS,EACjB,WAAW,GAAG,eAAe,EAC7B,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,IAAI,EAAE,8CAA8C;AAC5D,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,2BAA2B;AACnF,GAAG,SAAS,EACb,EAAE,EAAE;IACH,qCAAqC;IACrC,MAAM,SAAS,GAAG;QAChB;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,eAAe;SAC7B;QACD;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,eAAe;SAC7B;QACD;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,iBAAiB;SAC/B;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,gBAAgB;SAC9B;QACD;YACE,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,kBAAkB;SAChC;KACF,CAAC;IAEF,sCAAsC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9E,4CAA4C;IAC5C,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,EAAE;QAC5C,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,uEAAuE;QACvE,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrF,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC,QAAQ,CAAC;QAC9B,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IACL,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,QAAQ,EAChB,cAAc,EAAE,qBAAqB,EACrC,KAAK,EAAE,KAAK,KACR,SAAS,GACb,CACH,CAAC;AACJ,CAAC,CAAC"}