@popsure/dirty-swan 0.66.12 → 0.66.14
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/cjs/index.js +51 -36
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/table/Table.d.ts +3 -1
- package/dist/cjs/lib/components/table/Table.stories.d.ts +10 -2
- package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
- package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
- package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
- package/dist/cjs/lib/models/styles.d.ts +1 -1
- package/dist/esm/{TableSection-CEhD4eoy.js → TableSection-Cm50RX-V.js} +28 -9
- package/dist/esm/TableSection-Cm50RX-V.js.map +1 -0
- package/dist/esm/components/table/Table.js +10 -10
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +79 -4
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +7 -1
- package/dist/esm/components/table/Table.test.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js +1 -1
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +6 -4
- package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.js +9 -15
- package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +14 -2
- package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.js +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/components/table/Table.d.ts +3 -1
- package/dist/esm/lib/components/table/Table.stories.d.ts +10 -2
- package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +3 -1
- package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
- package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +2 -1
- package/dist/esm/lib/models/styles.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/table/Table.module.scss +3 -0
- package/src/lib/components/table/Table.stories.tsx +92 -0
- package/src/lib/components/table/Table.test.tsx +15 -0
- package/src/lib/components/table/Table.tsx +27 -20
- package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +1 -1
- package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx +1 -1
- package/src/lib/components/table/components/TableCell/CTACell/CTACell.tsx +2 -2
- package/src/lib/components/table/components/TableCell/TableCell.module.scss +8 -12
- package/src/lib/components/table/components/TableCell/TableCell.tsx +7 -1
- package/src/lib/components/table/components/TableContents/TableContents.module.scss +23 -24
- package/src/lib/components/table/components/TableContents/TableContents.test.tsx +22 -1
- package/src/lib/components/table/components/TableContents/TableContents.tsx +40 -31
- package/src/lib/components/table/components/TableSection/TableSection.module.scss +7 -0
- package/src/lib/components/table/components/TableSection/TableSection.tsx +32 -3
- package/src/lib/models/styles.ts +1 -0
- package/dist/esm/TableSection-CEhD4eoy.js.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MutableRefObject, useCallback, useRef, useState } from 'react';
|
|
2
2
|
import { TableSection } from '../TableSection/TableSection';
|
|
3
3
|
import { ChevronDownIcon, ChevronUpIcon } from '../../../icon';
|
|
4
|
-
import { Card } from '../../../cards/card';
|
|
5
4
|
|
|
6
5
|
import styles from './TableContents.module.scss';
|
|
7
6
|
import classNames from 'classnames';
|
|
@@ -25,6 +24,7 @@ export interface TableContentsProps {
|
|
|
25
24
|
title: string;
|
|
26
25
|
cellReplacements?: CellReplacements;
|
|
27
26
|
imageComponent?: (args: any) => JSX.Element;
|
|
27
|
+
selectedColumn?: number;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
const TableContents = ({
|
|
@@ -43,6 +43,7 @@ const TableContents = ({
|
|
|
43
43
|
title,
|
|
44
44
|
cellReplacements,
|
|
45
45
|
imageComponent,
|
|
46
|
+
selectedColumn,
|
|
46
47
|
}: TableContentsProps) => {
|
|
47
48
|
const [isSectionOpen, setOpenSection] = useState<number | null>(null);
|
|
48
49
|
const lastToggledSection = useRef<number | null>(null);
|
|
@@ -96,35 +97,40 @@ const TableContents = ({
|
|
|
96
97
|
const result = (isFirstSection || isVisible) && (
|
|
97
98
|
<div key={index} ref={(el) => { sectionRefs.current[index] = el; }}>
|
|
98
99
|
{section?.title && (
|
|
99
|
-
<div className={styles.
|
|
100
|
-
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
100
|
+
<div className={styles.sectionButtonWrapper}>
|
|
101
|
+
{collapsibleSections ? (
|
|
102
|
+
<button
|
|
103
|
+
type="button"
|
|
104
|
+
aria-expanded={isExpanded}
|
|
105
|
+
className={classNames(
|
|
106
|
+
'd-flex ai-center jc-between ta-left bg-white',
|
|
107
|
+
styles.sectionButton
|
|
108
|
+
)}
|
|
109
|
+
onClick={() => handleToggleSection(index)}
|
|
110
|
+
>
|
|
111
|
+
<span className="d-flex ai-center gap8">
|
|
112
|
+
{renderedIcon}
|
|
113
|
+
<span className="p-h3">{section.title}</span>
|
|
114
|
+
</span>
|
|
115
|
+
{isExpanded ? (
|
|
116
|
+
<ChevronUpIcon size={20} />
|
|
117
|
+
) : (
|
|
118
|
+
<ChevronDownIcon size={20} />
|
|
119
|
+
)}
|
|
120
|
+
</button>
|
|
121
|
+
) : (
|
|
122
|
+
<div
|
|
123
|
+
className={classNames(
|
|
124
|
+
'd-flex ai-center jc-between ta-left bg-white',
|
|
125
|
+
styles.sectionButton
|
|
126
|
+
)}
|
|
127
|
+
>
|
|
128
|
+
<span className="d-flex ai-center gap8">
|
|
129
|
+
{renderedIcon}
|
|
130
|
+
<span className="p-h3">{section.title}</span>
|
|
131
|
+
</span>
|
|
132
|
+
</div>
|
|
133
|
+
)}
|
|
128
134
|
</div>
|
|
129
135
|
)}
|
|
130
136
|
|
|
@@ -133,7 +139,9 @@ const TableContents = ({
|
|
|
133
139
|
onTransitionEnd={() => handleScrollToSection(index)}
|
|
134
140
|
>
|
|
135
141
|
<TableSection
|
|
136
|
-
className={classNames(className, '
|
|
142
|
+
className={classNames(className, 'mb16', {
|
|
143
|
+
mt16: !!section?.title,
|
|
144
|
+
})}
|
|
137
145
|
tableCellRows={
|
|
138
146
|
isFirstSection ? rows : [firstHeadRow, ...rows]
|
|
139
147
|
}
|
|
@@ -147,6 +155,7 @@ const TableContents = ({
|
|
|
147
155
|
width={tableWidth}
|
|
148
156
|
cellReplacements={cellReplacements}
|
|
149
157
|
imageComponent={imageComponent}
|
|
158
|
+
selectedColumn={selectedColumn}
|
|
150
159
|
/>
|
|
151
160
|
</Collapsible>
|
|
152
161
|
</div>
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
.table {
|
|
5
5
|
border-collapse: collapse;
|
|
6
6
|
table-layout: fixed;
|
|
7
|
+
}
|
|
7
8
|
|
|
9
|
+
.tableMultiplePlans {
|
|
8
10
|
@include p-size-tablet {
|
|
9
11
|
min-width: 845px;
|
|
10
12
|
}
|
|
@@ -12,4 +14,9 @@
|
|
|
12
14
|
|
|
13
15
|
.tr {
|
|
14
16
|
min-height: 72px;
|
|
17
|
+
border-bottom: 1px solid $ds-neutral-300;
|
|
18
|
+
|
|
19
|
+
&:last-child {
|
|
20
|
+
border-bottom: none;
|
|
21
|
+
}
|
|
15
22
|
}
|
|
@@ -23,6 +23,7 @@ export interface TableSectionProps {
|
|
|
23
23
|
width?: number | string;
|
|
24
24
|
cellReplacements?: CellReplacements;
|
|
25
25
|
imageComponent?: (args: any) => JSX.Element;
|
|
26
|
+
selectedColumn?: number;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
const TableSection = ({
|
|
@@ -36,10 +37,21 @@ const TableSection = ({
|
|
|
36
37
|
width,
|
|
37
38
|
cellReplacements,
|
|
38
39
|
imageComponent,
|
|
40
|
+
selectedColumn,
|
|
39
41
|
}: TableSectionProps) => {
|
|
40
42
|
const headerRow = tableCellRows?.[0];
|
|
41
43
|
const isBelowDesktop = useMediaQuery('BELOW_DESKTOP');
|
|
42
44
|
|
|
45
|
+
const firstVisibleBodyRowIndex = tableCellRows.findIndex(
|
|
46
|
+
(_, index) => index > 0 && !hideRows.includes(index)
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const lastVisibleRowIndex = tableCellRows.reduce(
|
|
50
|
+
(last, row, index) =>
|
|
51
|
+
index > 0 && !hideRows.includes(index) && row.length > 1 ? index : last,
|
|
52
|
+
-1
|
|
53
|
+
);
|
|
54
|
+
|
|
43
55
|
const getModalTitleFromColumnHeader = (cellIndex: number) => {
|
|
44
56
|
const firstCellInColumn = tableCellRows?.[0]?.[cellIndex];
|
|
45
57
|
let titleFromColumn;
|
|
@@ -77,9 +89,14 @@ const TableSection = ({
|
|
|
77
89
|
[hideRows]
|
|
78
90
|
);
|
|
79
91
|
|
|
92
|
+
const visibleColumnsLength =
|
|
93
|
+
headerRow?.filter((_, cellIndex) => isVisibleColumn(cellIndex)).length ?? 0;
|
|
94
|
+
|
|
80
95
|
return (
|
|
81
96
|
<table
|
|
82
|
-
className={classNames(className, 'w100', styles.table
|
|
97
|
+
className={classNames(className, 'w100', styles.table, {
|
|
98
|
+
[styles.tableMultiplePlans]: visibleColumnsLength > 2,
|
|
99
|
+
})}
|
|
83
100
|
width={width}
|
|
84
101
|
>
|
|
85
102
|
<caption className="sr-only">{title}</caption>
|
|
@@ -102,7 +119,7 @@ const TableSection = ({
|
|
|
102
119
|
modalTitle:
|
|
103
120
|
(isBaseCell(tableCellData) && tableCellData.text) ||
|
|
104
121
|
getModalTitleFromColumnHeader(cellIndex),
|
|
105
|
-
align:
|
|
122
|
+
align: 'left',
|
|
106
123
|
},
|
|
107
124
|
} as TableCellData;
|
|
108
125
|
|
|
@@ -114,6 +131,8 @@ const TableSection = ({
|
|
|
114
131
|
isHeader
|
|
115
132
|
isFirstCellInRow={isFirstCellInRow}
|
|
116
133
|
isTopLeftCell={isFirstCellInRow}
|
|
134
|
+
isSelectedColumn={selectedColumn === cellIndex}
|
|
135
|
+
selectedColumnPosition={selectedColumn === cellIndex ? 'top' : undefined}
|
|
117
136
|
{...cellProps}
|
|
118
137
|
imageComponent={imageComponent}
|
|
119
138
|
/>
|
|
@@ -133,6 +152,14 @@ const TableSection = ({
|
|
|
133
152
|
const key = `${rowIndex}-${cellIndex}`;
|
|
134
153
|
const isFirstCellInRow = cellIndex === 0;
|
|
135
154
|
const titleFromRow = getModalTitleFromRowHeader(row);
|
|
155
|
+
const isSelected = selectedColumn === cellIndex;
|
|
156
|
+
|
|
157
|
+
const getSelectedColumnPosition = () => {
|
|
158
|
+
if (!isSelected) return undefined;
|
|
159
|
+
if (rowIndex === lastVisibleRowIndex) return 'bottom';
|
|
160
|
+
if (hideHeader && rowIndex === firstVisibleBodyRowIndex) return 'top';
|
|
161
|
+
return 'middle';
|
|
162
|
+
};
|
|
136
163
|
|
|
137
164
|
const cellReplacementData =
|
|
138
165
|
(tableCellData.cellId &&
|
|
@@ -145,7 +172,7 @@ const TableSection = ({
|
|
|
145
172
|
...{
|
|
146
173
|
openModal,
|
|
147
174
|
modalTitle: tableCellData?.modalTitle || titleFromRow,
|
|
148
|
-
align:
|
|
175
|
+
align: 'left',
|
|
149
176
|
},
|
|
150
177
|
} as TableCellData;
|
|
151
178
|
|
|
@@ -154,6 +181,8 @@ const TableSection = ({
|
|
|
154
181
|
<TableCell
|
|
155
182
|
isBelowDesktop={isBelowDesktop}
|
|
156
183
|
isFirstCellInRow={isFirstCellInRow}
|
|
184
|
+
isSelectedColumn={isSelected}
|
|
185
|
+
selectedColumnPosition={getSelectedColumnPosition()}
|
|
157
186
|
key={key}
|
|
158
187
|
{...cellProps}
|
|
159
188
|
imageComponent={imageComponent}
|
package/src/lib/models/styles.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableSection-CEhD4eoy.js","sources":["../../../src/lib/components/table/types.ts","../../../src/lib/components/table/components/TableSection/TableSection.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { BaseCellProps } from './components/TableCell/BaseCell/BaseCell';\nimport { CTACellProps } from './components/TableCell/CTACell/CTACell';\nimport { ButtonCellProps } from './components/TableCell/ButtonCell/ButtonCell';\nimport { CardCellProps } from './components/TableCell/CardCell/CardCell';\n\ntype DefaultCellProps = {\n cellId?: string;\n colSpan?: number;\n modalTitle?: ReactNode;\n};\n\ntype BaseCellData = BaseCellProps & { type?: undefined } & DefaultCellProps;\ntype CTACellData = CTACellProps & { type: 'CTA' } & DefaultCellProps;\ntype ButtonCellData = ButtonCellProps & { type: 'BUTTON' } & DefaultCellProps;\ntype CardCellData = CardCellProps & { type: 'CARD' } & DefaultCellProps;\n\nexport type TableCellData =\n | BaseCellData\n | CTACellData\n | ButtonCellData\n | CardCellData;\n\nexport const isBaseCell = (\n tableCellData: TableCellData\n): tableCellData is BaseCellData => {\n return !tableCellData.type;\n};\n\nexport type TableSectionType = {\n title?: string;\n icon?: ReactNode;\n};\n\nexport type ModalData = {\n title?: ReactNode;\n body?: ReactNode;\n};\n\nexport type TableCellRowData = TableCellData[];\n\nexport type TableSectionData = {\n section?: TableSectionType;\n rows: TableCellRowData[];\n};\n\nexport type TableData = TableSectionData[];\n\nexport type ModalFunction = (modalData: ModalData) => void;\n\nexport type CellReplacements = Record<string, Partial<TableCellData>>;\n","import classNames from 'classnames';\n\nimport styles from './TableSection.module.scss';\nimport { TableCell } from '../TableCell/TableCell';\nimport {\n CellReplacements,\n isBaseCell,\n ModalFunction,\n TableCellData,\n TableCellRowData,\n} from '../../types';\nimport { useCallback } from 'react';\nimport { useMediaQuery } from '../../../../hooks/useMediaQuery';\n\nexport interface TableSectionProps {\n className?: string;\n tableCellRows: TableCellRowData[];\n hideColumns?: number[];\n hideRows?: number[];\n hideHeader?: boolean;\n openModal?: ModalFunction;\n title: string;\n width?: number | string;\n cellReplacements?: CellReplacements;\n imageComponent?: (args: any) => JSX.Element;\n}\n\nconst TableSection = ({\n className,\n tableCellRows,\n hideColumns = [],\n hideRows = [],\n hideHeader,\n openModal,\n title,\n width,\n cellReplacements,\n imageComponent,\n}: TableSectionProps) => {\n const headerRow = tableCellRows?.[0];\n const isBelowDesktop = useMediaQuery('BELOW_DESKTOP');\n\n const getModalTitleFromColumnHeader = (cellIndex: number) => {\n const firstCellInColumn = tableCellRows?.[0]?.[cellIndex];\n let titleFromColumn;\n\n switch (firstCellInColumn.type) {\n case 'BUTTON':\n titleFromColumn = firstCellInColumn.buttonCaption;\n break;\n case 'CTA':\n titleFromColumn = firstCellInColumn.title;\n break;\n case undefined:\n titleFromColumn = firstCellInColumn.text || '';\n break;\n }\n\n return titleFromColumn;\n };\n\n const getModalTitleFromRowHeader = (currentRow: TableCellRowData) => {\n const firstCellInRow = currentRow?.[0];\n const titleFromRow =\n (isBaseCell(firstCellInRow) && firstCellInRow.text) || '';\n\n return titleFromRow;\n };\n\n const isVisibleColumn = useCallback(\n (cellIndex: number) => !hideColumns.includes(cellIndex),\n [hideColumns]\n );\n\n const isVisibleRow = useCallback(\n (rowIndex: number) => !hideRows.includes(rowIndex),\n [hideRows]\n );\n\n return (\n <table\n className={classNames(className, 'w100', styles.table)}\n width={width}\n >\n <caption className=\"sr-only\">{title}</caption>\n\n {headerRow && (\n <thead className={hideHeader ? 'sr-only' : ''}>\n <tr>\n {headerRow.map((tableCellData, cellIndex) => {\n const isFirstCellInRow = cellIndex === 0;\n const cellReplacementData =\n (tableCellData.cellId &&\n cellReplacements?.[tableCellData.cellId]) ||\n {};\n\n const cellProps = {\n ...tableCellData,\n ...cellReplacementData,\n ...{\n openModal,\n modalTitle:\n (isBaseCell(tableCellData) && tableCellData.text) ||\n getModalTitleFromColumnHeader(cellIndex),\n align: isFirstCellInRow ? 'left' : 'center',\n },\n } as TableCellData;\n\n return (\n isVisibleColumn(cellIndex) && (\n <TableCell\n key={cellIndex}\n isBelowDesktop={isBelowDesktop}\n isHeader\n isFirstCellInRow={isFirstCellInRow}\n isTopLeftCell={isFirstCellInRow}\n {...cellProps}\n imageComponent={imageComponent}\n />\n )\n );\n })}\n </tr>\n </thead>\n )}\n\n <tbody>\n {tableCellRows.map(\n (row, rowIndex) =>\n rowIndex > 0 && isVisibleRow(rowIndex) && (\n <tr key={rowIndex} className={styles.tr}>\n {row.map((tableCellData, cellIndex) => {\n const key = `${rowIndex}-${cellIndex}`;\n const isFirstCellInRow = cellIndex === 0;\n const titleFromRow = getModalTitleFromRowHeader(row);\n\n const cellReplacementData =\n (tableCellData.cellId &&\n cellReplacements?.[tableCellData.cellId]) ||\n {};\n\n const cellProps = {\n ...tableCellData,\n ...cellReplacementData,\n ...{\n openModal,\n modalTitle: tableCellData?.modalTitle || titleFromRow,\n align: isFirstCellInRow ? 'left' : 'center',\n },\n } as TableCellData;\n\n return (\n !hideColumns.includes(cellIndex) && (\n <TableCell\n isBelowDesktop={isBelowDesktop}\n isFirstCellInRow={isFirstCellInRow}\n key={key}\n {...cellProps}\n imageComponent={imageComponent}\n />\n )\n );\n })}\n </tr>\n )\n )}\n </tbody>\n </table>\n );\n};\n\nexport { TableSection };\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;AAuBO,IAAM,UAAU,GAAG,UACxB,aAA4B,EAAA;AAE5B,IAAA,OAAO,CAAC,aAAa,CAAC,IAAI;AAC5B;;ACAA,IAAM,YAAY,GAAG,UAAC,EAWF,EAAA;AAVlB,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,EAAA,GAAA,EAAA,CAAA,WAAgB,EAAhB,WAAW,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EAChB,EAAA,GAAA,EAAA,CAAA,QAAa,EAAb,QAAQ,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACb,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,WAAA,EACL,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,cAAc,GAAA,EAAA,CAAA,cAAA;IAEd,IAAM,SAAS,GAAG,aAAa,KAAA,IAAA,IAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC;AACpC,IAAA,IAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC;IAErD,IAAM,6BAA6B,GAAG,UAAC,SAAiB,EAAA;;AACtD,QAAA,IAAM,iBAAiB,GAAG,CAAA,EAAA,GAAA,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,SAAS,CAAC;AACzD,QAAA,IAAI,eAAe;AAEnB,QAAA,QAAQ,iBAAiB,CAAC,IAAI;AAC5B,YAAA,KAAK,QAAQ;AACX,gBAAA,eAAe,GAAG,iBAAiB,CAAC,aAAa;gBACjD;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,eAAe,GAAG,iBAAiB,CAAC,KAAK;gBACzC;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,eAAe,GAAG,iBAAiB,CAAC,IAAI,IAAI,EAAE;gBAC9C;;AAGJ,QAAA,OAAO,eAAe;AACxB,IAAA,CAAC;IAED,IAAM,0BAA0B,GAAG,UAAC,UAA4B,EAAA;QAC9D,IAAM,cAAc,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC;AACtC,QAAA,IAAM,YAAY,GAChB,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,EAAE;AAE3D,QAAA,OAAO,YAAY;AACrB,IAAA,CAAC;IAED,IAAM,eAAe,GAAG,WAAW,CACjC,UAAC,SAAiB,EAAA,EAAK,OAAA,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA,CAAhC,CAAgC,EACvD,CAAC,WAAW,CAAC,CACd;IAED,IAAM,YAAY,GAAG,WAAW,CAC9B,UAAC,QAAgB,EAAA,EAAK,OAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAA5B,CAA4B,EAClD,CAAC,QAAQ,CAAC,CACX;IAED,QACEA,gBACE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,KAAK,aAEZC,GAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAC,SAAS,EAAA,QAAA,EAAE,KAAK,GAAW,EAE7C,SAAS,KACRA,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,EAAE,EAAA,QAAA,EAC3CA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACG,SAAS,CAAC,GAAG,CAAC,UAAC,aAAa,EAAE,SAAS,EAAA;AACtC,wBAAA,IAAM,gBAAgB,GAAG,SAAS,KAAK,CAAC;AACxC,wBAAA,IAAM,mBAAmB,GACvB,CAAC,aAAa,CAAC,MAAM;6BACnB,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAC1C,4BAAA,EAAE;AAEJ,wBAAA,IAAM,SAAS,GAAG,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACb,aAAa,CAAA,EACb,mBAAmB,CAAA,EACnB;AACD,4BAAA,SAAS,EAAA,SAAA;4BACT,UAAU,EACR,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI;gCAChD,6BAA6B,CAAC,SAAS,CAAC;4BAC1C,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,QAAQ;AAC5C,yBAAA,CACe;AAElB,wBAAA,QACE,eAAe,CAAC,SAAS,CAAC,KACxBA,GAAA,CAAC,SAAS,aAER,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAA,IAAA,EACR,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,gBAAgB,IAC3B,SAAS,EAAA,EACb,cAAc,EAAE,cAAc,EAAA,CAAA,EANzB,SAAS,CAOd,CACH;AAEL,oBAAA,CAAC,CAAC,EAAA,CACC,EAAA,CACC,CACT,EAEDA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EACG,aAAa,CAAC,GAAG,CAChB,UAAC,GAAG,EAAE,QAAQ,EAAA;oBACZ,OAAA,QAAQ,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KACpCA,GAAA,CAAA,IAAA,EAAA,EAAmB,SAAS,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EACpC,GAAG,CAAC,GAAG,CAAC,UAAC,aAAa,EAAE,SAAS,EAAA;AAChC,4BAAA,IAAM,GAAG,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAE;AACtC,4BAAA,IAAM,gBAAgB,GAAG,SAAS,KAAK,CAAC;AACxC,4BAAA,IAAM,YAAY,GAAG,0BAA0B,CAAC,GAAG,CAAC;AAEpD,4BAAA,IAAM,mBAAmB,GACvB,CAAC,aAAa,CAAC,MAAM;iCACnB,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAC1C,gCAAA,EAAE;AAEJ,4BAAA,IAAM,SAAS,GAAG,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACb,aAAa,CAAA,EACb,mBAAmB,CAAA,EACnB;AACD,gCAAA,SAAS,EAAA,SAAA;gCACT,UAAU,EAAE,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,KAAI,YAAY;gCACrD,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,QAAQ;AAC5C,6BAAA,CACe;AAElB,4BAAA,QACE,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,KAC9BA,GAAA,CAAC,SAAS,aACR,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAAA,EAE9B,SAAS,EAAA,EACb,cAAc,EAAE,cAAc,EAAA,CAAA,EAFzB,GAAG,CAGR,CACH;AAEL,wBAAA,CAAC,CAAC,EAAA,EAhCK,QAAQ,CAiCZ,CACN;AAnCD,gBAAA,CAmCC,CACJ,EAAA,CACK,CAAA,EAAA,CACF;AAEZ;;;;"}
|