karsten-design-system 1.0.98 → 1.0.99
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/dist/index.js +10 -10
- package/dist/stories/components/table.js +32 -12
- package/dist/stories/components/table.js.map +1 -1
- package/dist/types/index.d.ts +10 -10
- package/dist/types/stories/components/table.d.ts +2 -2
- package/dist/types/utils/nestedValue.d.ts +1 -0
- package/dist/types/utils/sortData.d.ts +2 -2
- package/dist/utils/nestedValue.js +9 -0
- package/dist/utils/nestedValue.js.map +1 -0
- package/dist/utils/sortData.js +31 -6
- package/dist/utils/sortData.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,33 +3,33 @@ export { Accordion } from './stories/components/accordion.js';
|
|
|
3
3
|
export { AutoComplete } from './stories/components/autoComplete.js';
|
|
4
4
|
export { Breadcrumb } from './stories/components/breadcrumb.js';
|
|
5
5
|
export { Button } from './stories/components/button.js';
|
|
6
|
+
export { CalendarInput } from './stories/components/calendarInput.js';
|
|
6
7
|
export { Card } from './stories/components/card.js';
|
|
7
8
|
export { Chart } from './stories/components/chart.js';
|
|
8
9
|
export { Dialog } from './stories/components/dialog.js';
|
|
9
10
|
export { Divider } from './stories/components/divider.js';
|
|
11
|
+
export { EmptyContent } from './stories/components/emptyContent.js';
|
|
12
|
+
export { ExpandablePanel } from './stories/components/expandablePanel.js';
|
|
13
|
+
export { FileUpload } from './stories/components/fileUpload.js';
|
|
10
14
|
export { FilterButton } from './stories/components/filterButton.js';
|
|
11
15
|
export { Header } from './stories/components/header.js';
|
|
12
16
|
export { IconButton } from './stories/components/iconButton.js';
|
|
13
17
|
export { InfoCard } from './stories/components/infoCard.js';
|
|
14
18
|
export { Input } from './stories/components/input.js';
|
|
19
|
+
export { InputSwitch } from './stories/components/inputSwitch.js';
|
|
20
|
+
export { InputTextArea } from './stories/components/inputTextArea.js';
|
|
15
21
|
export { InternalMenu } from './stories/components/internalMenu.js';
|
|
16
22
|
export { Link } from './stories/components/link.js';
|
|
17
23
|
export { MegaMenu } from './stories/components/megaMenu.js';
|
|
24
|
+
export { Modal } from './stories/components/modal.js';
|
|
25
|
+
export { MultiSelect } from './stories/components/multiselect.js';
|
|
18
26
|
export { Notification } from './stories/components/notification.js';
|
|
19
27
|
export { Paginator } from './stories/components/paginator.js';
|
|
20
28
|
export { RadioButton } from './stories/components/radioButton.js';
|
|
29
|
+
export { Select } from './stories/components/select.js';
|
|
21
30
|
export { Sidebar } from './stories/components/sidebar.js';
|
|
22
31
|
export { Skeleton } from './stories/components/skeleton.js';
|
|
23
32
|
export { Spinner } from './stories/components/spinner.js';
|
|
24
|
-
export { InputSwitch } from './stories/components/inputSwitch.js';
|
|
25
|
-
export { Toast } from './stories/components/toast.js';
|
|
26
|
-
export { InputTextArea } from './stories/components/inputTextArea.js';
|
|
27
|
-
export { FileUpload } from './stories/components/fileUpload.js';
|
|
28
|
-
export { Modal } from './stories/components/modal.js';
|
|
29
|
-
export { ExpandablePanel } from './stories/components/expandablePanel.js';
|
|
30
|
-
export { EmptyContent } from './stories/components/emptyContent.js';
|
|
31
|
-
export { Select } from './stories/components/select.js';
|
|
32
|
-
export { CalendarInput } from './stories/components/calendarInput.js';
|
|
33
33
|
export { Table } from './stories/components/table.js';
|
|
34
|
-
export {
|
|
34
|
+
export { Toast } from './stories/components/toast.js';
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
|
|
2
|
+
import clsx from 'clsx';
|
|
2
3
|
import { useState, useRef, useEffect } from 'react';
|
|
4
|
+
import { getNestedValue } from '../../utils/nestedValue.js';
|
|
3
5
|
import { sortData } from '../../utils/sortData.js';
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
import { Spinner } from './spinner.js';
|
|
6
|
-
import { Paginator } from './paginator.js';
|
|
7
6
|
import { Button } from './button.js';
|
|
8
|
-
import { Input } from './input.js';
|
|
9
|
-
import { Select } from './select.js';
|
|
10
7
|
import { CalendarInput } from './calendarInput.js';
|
|
8
|
+
import { Input } from './input.js';
|
|
11
9
|
import { MultiSelect } from './multiselect.js';
|
|
10
|
+
import { Paginator } from './paginator.js';
|
|
11
|
+
import { Select } from './select.js';
|
|
12
|
+
import { Spinner } from './spinner.js';
|
|
12
13
|
|
|
13
14
|
function parseDateRange(value) {
|
|
14
15
|
try {
|
|
@@ -43,7 +44,11 @@ function Table({ columns, data, totalRecords, actions = [], isOrdered = true, ac
|
|
|
43
44
|
}, [data]);
|
|
44
45
|
useEffect(() => {
|
|
45
46
|
const handleClickOutside = (event) => {
|
|
46
|
-
|
|
47
|
+
const target = event.target;
|
|
48
|
+
const isClickInsideFilter = filterModalRef.current && filterModalRef.current.contains(target);
|
|
49
|
+
const isClickInsideCalendar = (target instanceof HTMLElement && target.closest('.p-datepicker')) !==
|
|
50
|
+
null;
|
|
51
|
+
if (!isClickInsideFilter && !isClickInsideCalendar) {
|
|
47
52
|
setOpenFilter(null);
|
|
48
53
|
}
|
|
49
54
|
};
|
|
@@ -59,7 +64,11 @@ function Table({ columns, data, totalRecords, actions = [], isOrdered = true, ac
|
|
|
59
64
|
onFilterChange(filters);
|
|
60
65
|
}
|
|
61
66
|
};
|
|
62
|
-
return (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("table", { className: "w-100", children: [jsxRuntimeExports.jsx("thead", { children: jsxRuntimeExports.jsxs("tr", { className: "bg-gray-100", children: [columns.map((column) => (jsxRuntimeExports.jsxs("th", { className: "bg-primary first:rounded-ss-lg font-bold text-background text-sm uppercase p-3 text-left", children: [jsxRuntimeExports.jsx("div", { children: openFilter === column.dataIndex && (jsxRuntimeExports.jsxs("div", { ref: filterModalRef, className: "absolute mt-6 bg-background border rounded-md shadow-md p-4 z-10 w-[276px] normal-case", children: [jsxRuntimeExports.jsxs("div", { className: "space-y-4 text-primary", children: [jsxRuntimeExports.jsxs("h1", { className: "text-primary text-sm", children: ["Filtrar por ", column.label] }), jsxRuntimeExports.jsxs("div", { className: "w-full", children: [column.filterType === 'text' && (jsxRuntimeExports.jsx(Input, { placeholder: "Digite para filtrar", value: filters[column.dataIndex] ||
|
|
67
|
+
return (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("table", { className: "w-100", children: [jsxRuntimeExports.jsx("thead", { children: jsxRuntimeExports.jsxs("tr", { className: "bg-gray-100", children: [columns.map((column) => (jsxRuntimeExports.jsxs("th", { scope: "col", className: "bg-primary first:rounded-ss-lg font-bold text-background text-sm uppercase p-3 text-left", children: [jsxRuntimeExports.jsx("div", { children: openFilter === column.dataIndex && (jsxRuntimeExports.jsxs("div", { ref: filterModalRef, className: "absolute mt-6 bg-background border rounded-md shadow-md p-4 z-10 w-[276px] normal-case", children: [jsxRuntimeExports.jsxs("div", { className: "space-y-4 text-primary", children: [jsxRuntimeExports.jsxs("h1", { className: "text-primary text-sm", children: ["Filtrar por ", column.label] }), jsxRuntimeExports.jsxs("div", { className: "w-full", children: [column.filterType === 'text' && (jsxRuntimeExports.jsx(Input, { placeholder: "Digite para filtrar", value: filters[column.dataIndex] || '', onChange: (e) => setFilters((prev) => ({
|
|
68
|
+
...prev,
|
|
69
|
+
[column.dataIndex]: e,
|
|
70
|
+
})), mask: column?.mask })), column.filterType === 'select' && (jsxRuntimeExports.jsx(Select, { options: column.filterOptions || [], value: column.filterOptions?.find((option) => option.value ===
|
|
71
|
+
filters[column.dataIndex]) || null, onChange: (selected) => setFilters((prev) => ({
|
|
63
72
|
...prev,
|
|
64
73
|
[column.dataIndex]: selected?.value ?? null,
|
|
65
74
|
})), placeholder: "Selecione uma op\u00E7\u00E3o", label: "" })), column.filterType === 'multiSelect' && (jsxRuntimeExports.jsx(MultiSelect, { options: column.filterOptions || [], value: (filters[column.dataIndex]
|
|
@@ -82,7 +91,9 @@ function Table({ columns, data, totalRecords, actions = [], isOrdered = true, ac
|
|
|
82
91
|
const range = e?.value;
|
|
83
92
|
setFilters((prev) => ({
|
|
84
93
|
...prev,
|
|
85
|
-
[column.dataIndex]: range
|
|
94
|
+
[column.dataIndex]: range
|
|
95
|
+
? JSON.stringify(range)
|
|
96
|
+
: '',
|
|
86
97
|
}));
|
|
87
98
|
} }))] })] }), jsxRuntimeExports.jsxs("div", { className: "flex justify-between mt-4", children: [jsxRuntimeExports.jsx(Button, { variant: "outline", onClick: () => {
|
|
88
99
|
setFilters((prev) => ({
|
|
@@ -98,10 +109,19 @@ function Table({ columns, data, totalRecords, actions = [], isOrdered = true, ac
|
|
|
98
109
|
if (onFilterChange) {
|
|
99
110
|
onFilterChange(updatedFilters);
|
|
100
111
|
}
|
|
101
|
-
}, label: "Limpar", width: "10", size: "small" }), jsxRuntimeExports.jsx(Button, { variant: "primary", onClick: () => handleFilter(), label: "Aplicar", width: "10", size: "small" })] })] })) }), column.label, isOrdered && (jsxRuntimeExports.jsx("i", { className: "pi pi-sort-alt pl-2 text-xs cursor-pointer", onClick: () => handleSort(column.dataIndex), "aria-label": `Ordenar por ${column.label}` })), column.filterable && (jsxRuntimeExports.jsx("i", { className: clsx(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
}, label: "Limpar", width: "10", size: "small" }), jsxRuntimeExports.jsx(Button, { variant: "primary", onClick: () => handleFilter(), label: "Aplicar", width: "10", size: "small" })] })] })) }), column.label, isOrdered && (jsxRuntimeExports.jsx("i", { className: "pi pi-sort-alt pl-2 text-xs cursor-pointer", onClick: () => handleSort(column.dataIndex), "aria-label": `Ordenar por ${column.label}` })), column.filterable && (jsxRuntimeExports.jsx("i", { className: clsx('pl-2 text-xs cursor-pointer', filters[column.dataIndex]
|
|
113
|
+
? 'pi pi-filter-slash'
|
|
114
|
+
: 'pi pi-filter'), onClick: () => setOpenFilter((prev) => prev === column.dataIndex
|
|
115
|
+
? null
|
|
116
|
+
: column.dataIndex) }))] }, String(column.dataIndex)))), actions.length > 0 && (jsxRuntimeExports.jsx("th", { scope: "col", className: clsx('bg-primary rounded-se-lg font-bold text-background text-sm uppercase p-3 text-right pr-4', actionsHeaderClassName), children: "A\u00C7\u00D5ES" }))] }) }), jsxRuntimeExports.jsx("tbody", { children: isLoading ? (jsxRuntimeExports.jsx("tr", { children: jsxRuntimeExports.jsx("td", { colSpan: columns.length + (actions.length > 0 ? 1 : 0), className: "p-6 text-center bg-gray-50", children: jsxRuntimeExports.jsx("div", { className: "py-2 px-4 flex justify-center items-center gap-2", children: jsxRuntimeExports.jsx(Spinner, { size: "lg" }) }) }) })) : sortedData.length > 0 ? (sortedData.map((row, index) => (jsxRuntimeExports.jsxs("tr", { className: clsx(index % 2 === 0 ? 'bg-stoneBackground' : 'bg-background', 'text-primary text-base'), children: [columns.map((column) => {
|
|
117
|
+
const value = getNestedValue(row, column.dataIndex);
|
|
118
|
+
return (jsxRuntimeExports.jsx("td", { className: clsx('p-3 text-sm text-left', typeof column.style === 'function'
|
|
119
|
+
? column.style(getNestedValue(row, column.dataIndex), row)
|
|
120
|
+
: column.style), children: column.render
|
|
121
|
+
? column.render(value, row)
|
|
122
|
+
: String(value) }, String(column.dataIndex)));
|
|
123
|
+
}), actions.length > 0 && (jsxRuntimeExports.jsx("td", { className: clsx('text-sm text-right flex flex-row justify-end p-3 gap-2', actionsColumnsClassName), children: actions.map((action, idx) => (jsxRuntimeExports.jsx("span", { className: clsx('cursor-pointer', action.disabled &&
|
|
124
|
+
'opacity-50 pointer-events-none cursor-not-allowed'), onClick: () => {
|
|
105
125
|
if (!action.disabled)
|
|
106
126
|
action.onClick(row);
|
|
107
127
|
}, title: action.label, children: action.icon }, idx))) }))] }, index)))) : (jsxRuntimeExports.jsx("tr", { children: jsxRuntimeExports.jsxs("td", { colSpan: columns.length + (actions.length > 0 ? 1 : 0), className: "p-6 text-center text-primary bg-stoneBackground", children: [jsxRuntimeExports.jsx("i", { className: "pi pi-database mr-2" }), " N\u00E3o h\u00E1 dados dispon\u00EDveis."] }) })) })] }), sortedData.length > 0 && isPaginated && (jsxRuntimeExports.jsx(Paginator, { first: (currentPage - 1) * rowsPerPage, rows: rowsPerPage, totalRecords: totalRecords, onPageChange: (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../../src/stories/components/table.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../../src/stories/components/table.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,32 +3,32 @@ export * from './stories/components/accordion';
|
|
|
3
3
|
export * from './stories/components/autoComplete';
|
|
4
4
|
export * from './stories/components/breadcrumb';
|
|
5
5
|
export * from './stories/components/button';
|
|
6
|
+
export * from './stories/components/calendarInput';
|
|
6
7
|
export * from './stories/components/card';
|
|
7
8
|
export * from './stories/components/chart';
|
|
8
9
|
export * from './stories/components/dialog';
|
|
9
10
|
export * from './stories/components/divider';
|
|
11
|
+
export * from './stories/components/emptyContent';
|
|
12
|
+
export * from './stories/components/expandablePanel';
|
|
13
|
+
export * from './stories/components/fileUpload';
|
|
10
14
|
export * from './stories/components/filterButton';
|
|
11
15
|
export * from './stories/components/header';
|
|
12
16
|
export * from './stories/components/iconButton';
|
|
13
17
|
export * from './stories/components/infoCard';
|
|
14
18
|
export * from './stories/components/input';
|
|
19
|
+
export * from './stories/components/inputSwitch';
|
|
20
|
+
export * from './stories/components/inputTextArea';
|
|
15
21
|
export * from './stories/components/internalMenu';
|
|
16
22
|
export * from './stories/components/link';
|
|
17
23
|
export * from './stories/components/megaMenu';
|
|
24
|
+
export * from './stories/components/modal';
|
|
25
|
+
export * from './stories/components/multiselect';
|
|
18
26
|
export * from './stories/components/notification';
|
|
19
27
|
export * from './stories/components/paginator';
|
|
20
28
|
export * from './stories/components/radioButton';
|
|
29
|
+
export * from './stories/components/select';
|
|
21
30
|
export * from './stories/components/sidebar';
|
|
22
31
|
export * from './stories/components/skeleton';
|
|
23
32
|
export * from './stories/components/spinner';
|
|
24
|
-
export * from './stories/components/inputSwitch';
|
|
25
|
-
export * from './stories/components/toast';
|
|
26
|
-
export * from './stories/components/inputTextArea';
|
|
27
|
-
export * from './stories/components/fileUpload';
|
|
28
|
-
export * from './stories/components/modal';
|
|
29
|
-
export * from './stories/components/expandablePanel';
|
|
30
|
-
export * from './stories/components/emptyContent';
|
|
31
|
-
export * from './stories/components/select';
|
|
32
|
-
export * from './stories/components/calendarInput';
|
|
33
33
|
export * from './stories/components/table';
|
|
34
|
-
export * from './stories/components/
|
|
34
|
+
export * from './stories/components/toast';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SortDirection } from
|
|
1
|
+
import { SortDirection } from '../../types';
|
|
2
2
|
export type FilterType = 'text' | 'select' | 'multiSelect' | 'singleDate' | 'rangeDate';
|
|
3
3
|
export type Column<T> = {
|
|
4
4
|
label: string;
|
|
5
|
-
dataIndex:
|
|
5
|
+
dataIndex: string;
|
|
6
6
|
style?: (value: T[keyof T], row: T) => string | string;
|
|
7
7
|
render?: (value: T[keyof T], row: T) => React.ReactNode;
|
|
8
8
|
filterable?: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getNestedValue(obj: any, path: string): any;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { SortDirection } from
|
|
2
|
-
export declare function sortData<T>(data: T[],
|
|
1
|
+
import { SortDirection } from '../types';
|
|
2
|
+
export declare function sortData<T>(data: T[], columnPath: string, direction: SortDirection): T[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
function getNestedValue(obj, path) {
|
|
3
|
+
if (!obj || !path)
|
|
4
|
+
return undefined;
|
|
5
|
+
return path.split('.').reduce((acc, part) => acc?.[part], obj);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { getNestedValue };
|
|
9
|
+
//# sourceMappingURL=nestedValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestedValue.js","sources":["../../../src/utils/nestedValue.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACgB,SAAA,cAAc,CAAC,GAAQ,EAAE,IAAY,EAAA;AACnD,IAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,SAAS;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AAChE;;;;"}
|
package/dist/utils/sortData.js
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { getNestedValue } from './nestedValue.js';
|
|
2
|
+
|
|
3
|
+
// import { SortDirection } from '../types'
|
|
4
|
+
// export function sortData<T>(
|
|
5
|
+
// data: T[],
|
|
6
|
+
// column: keyof T,
|
|
7
|
+
// direction: SortDirection
|
|
8
|
+
// ): T[] {
|
|
9
|
+
// return [...data].sort((a, b) => {
|
|
10
|
+
// const aValue = a[column]
|
|
11
|
+
// const bValue = b[column]
|
|
12
|
+
// if (typeof aValue === 'number' && typeof bValue === 'number') {
|
|
13
|
+
// return direction === 'ASC' ? aValue - bValue : bValue - aValue
|
|
14
|
+
// }
|
|
15
|
+
// if (aValue instanceof Date && bValue instanceof Date) {
|
|
16
|
+
// return direction === 'ASC'
|
|
17
|
+
// ? aValue.getTime() - bValue.getTime()
|
|
18
|
+
// : bValue.getTime() - aValue.getTime()
|
|
19
|
+
// }
|
|
20
|
+
// const aString = String(aValue).toLowerCase()
|
|
21
|
+
// const bString = String(bValue).toLowerCase()
|
|
22
|
+
// return direction === 'ASC'
|
|
23
|
+
// ? aString.localeCompare(bString)
|
|
24
|
+
// : bString.localeCompare(aString)
|
|
25
|
+
// })
|
|
26
|
+
// }
|
|
27
|
+
function sortData(data, columnPath, direction) {
|
|
3
28
|
return [...data].sort((a, b) => {
|
|
4
|
-
const aValue = a
|
|
5
|
-
const bValue = b
|
|
29
|
+
const aValue = getNestedValue(a, columnPath);
|
|
30
|
+
const bValue = getNestedValue(b, columnPath);
|
|
6
31
|
if (typeof aValue === 'number' && typeof bValue === 'number') {
|
|
7
32
|
return direction === 'ASC' ? aValue - bValue : bValue - aValue;
|
|
8
33
|
}
|
|
@@ -11,8 +36,8 @@ function sortData(data, column, direction) {
|
|
|
11
36
|
? aValue.getTime() - bValue.getTime()
|
|
12
37
|
: bValue.getTime() - aValue.getTime();
|
|
13
38
|
}
|
|
14
|
-
const aString = String(aValue).toLowerCase();
|
|
15
|
-
const bString = String(bValue).toLowerCase();
|
|
39
|
+
const aString = String(aValue || '').toLowerCase();
|
|
40
|
+
const bString = String(bValue || '').toLowerCase();
|
|
16
41
|
return direction === 'ASC'
|
|
17
42
|
? aString.localeCompare(bString)
|
|
18
43
|
: bString.localeCompare(aString);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortData.js","sources":["../../../src/utils/sortData.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;
|
|
1
|
+
{"version":3,"file":"sortData.js","sources":["../../../src/utils/sortData.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;SAEgB,QAAQ,CACtB,IAAS,EACT,UAAkB,EAClB,SAAwB,EAAA;AAExB,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;QAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;QAE5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5D,YAAA,OAAO,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;;QAGhE,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM,YAAY,IAAI,EAAE;YACpD,OAAO,SAAS,KAAK;kBACjB,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO;kBACjC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE;;QAGzC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QAElD,OAAO,SAAS,KAAK;AACnB,cAAE,OAAO,CAAC,aAAa,CAAC,OAAO;AAC/B,cAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;AACpC,KAAC,CAAC;AACJ;;;;"}
|