@redsift/charts 6.3.1 → 7.0.0-alpha.0
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/CONTRIBUTING.md +71 -40
- package/index.js +6 -6
- package/index.js.map +1 -1
- package/package.json +4 -4
package/CONTRIBUTING.md
CHANGED
|
@@ -5,18 +5,28 @@
|
|
|
5
5
|
Make sure you have the following requirements installed: [node](https://nodejs.org/) (v16+) and [yarn](https://yarnpkg.com/en/) (v1.22.0+)
|
|
6
6
|
|
|
7
7
|
Clone the repo (or fork it first if you're not part of Red Sift organization).
|
|
8
|
+
|
|
8
9
|
```
|
|
9
10
|
git clone git@github.com:redsift/design-system.git
|
|
10
11
|
cd design-system
|
|
11
12
|
yarn install
|
|
12
13
|
```
|
|
13
14
|
|
|
15
|
+
Set up your environment variable file by copying the template file:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cp .env.template .env
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Then edit the `.env` file with the correct values. NEVER commit the `.env` file directly or any secrets and credentials it might contain.
|
|
22
|
+
|
|
14
23
|
You can then run the storybook and browse to [http://localhost:9000](http://localhost:9000) with:
|
|
24
|
+
|
|
15
25
|
```bash
|
|
16
26
|
yarn start:storybook
|
|
17
27
|
```
|
|
18
28
|
|
|
19
|
-
|
|
29
|
+
### Architecture
|
|
20
30
|
|
|
21
31
|
The Design System is following a monorepo architecture, providing multiple packages based on different use cases.
|
|
22
32
|
|
|
@@ -46,7 +56,7 @@ The Design System is following a monorepo architecture, providing multiple packa
|
|
|
46
56
|
|
|
47
57
|
Please make sure to work inside the correct package when making contribution.
|
|
48
58
|
|
|
49
|
-
|
|
59
|
+
### Shared code
|
|
50
60
|
|
|
51
61
|
If you need something inside more than one package, do not duplicate the code. Place it inside one package, export it from this package and import it inside the others.
|
|
52
62
|
|
|
@@ -65,7 +75,7 @@ import { PieChart, PieChartVariant } from '@redsift/dashbord';
|
|
|
65
75
|
|
|
66
76
|
To define which package should contain the shared code, select the one that would not create any circular dependencies.
|
|
67
77
|
|
|
68
|
-
|
|
78
|
+
### Dependencies
|
|
69
79
|
|
|
70
80
|
We try to use as few dependencies as possible.
|
|
71
81
|
|
|
@@ -83,7 +93,7 @@ import * as d3 from 'd3';
|
|
|
83
93
|
import { sum, scaleOrdinal } from 'd3';
|
|
84
94
|
```
|
|
85
95
|
|
|
86
|
-
|
|
96
|
+
### Scaffolding
|
|
87
97
|
|
|
88
98
|
Each component should be in its own folder. If a subcomponent can be used as a standalone component, it should be in its own folder too. For instance, `CheckboxGroup` uses `Checkbox` but `Checkbox` can be used alone. In this case, `CheckboxGroup` and `Checkbox` both have their own folder. For `PieChart` and `PieChartSlice`, a `PieChartSlice` can not be used alone. It only exists inside a `PieChart` component. Therefore, both components are inside the same folder.
|
|
89
99
|
|
|
@@ -122,36 +132,43 @@ const DEFAULT_PROPS: Partial<BadgeProps> = {
|
|
|
122
132
|
/**
|
|
123
133
|
* The Badge component.
|
|
124
134
|
*/
|
|
125
|
-
export const Badge: Comp<BadgeProps, HTMLDivElement> = forwardRef(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
135
|
+
export const Badge: Comp<BadgeProps, HTMLDivElement> = forwardRef(
|
|
136
|
+
(props, ref) => {
|
|
137
|
+
const {
|
|
138
|
+
// props
|
|
139
|
+
...forwardedProps
|
|
140
|
+
} = props;
|
|
141
|
+
|
|
142
|
+
return (
|
|
143
|
+
<StyledBadge
|
|
144
|
+
{...forwardedProps}
|
|
145
|
+
// transient props
|
|
146
|
+
className={classNames(
|
|
147
|
+
Badge.className,
|
|
148
|
+
`${Badge.className}-${variant}`,
|
|
149
|
+
className
|
|
150
|
+
)}
|
|
151
|
+
ref={ref as RefObject<HTMLDivElement>}
|
|
152
|
+
>
|
|
153
|
+
// content of the component if needed
|
|
154
|
+
</StyledBadge>
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
);
|
|
142
158
|
Badge.className = CLASSNAME;
|
|
143
159
|
Badge.defaultProps = DEFAULT_PROPS;
|
|
144
160
|
Badge.displayName = COMPONENT_NAME;
|
|
145
161
|
```
|
|
146
162
|
|
|
147
163
|
The main things to keep in mind here are:
|
|
164
|
+
|
|
148
165
|
- to use the custom `Comp` type,
|
|
149
166
|
- to forward ref and props,
|
|
150
167
|
- to concatenate classNames,
|
|
151
168
|
- to define default values and
|
|
152
169
|
- to use types from `types.ts` and styles from `styles.ts`.
|
|
153
170
|
|
|
154
|
-
|
|
171
|
+
### API
|
|
155
172
|
|
|
156
173
|
The API of the components should be consistent with other components.
|
|
157
174
|
|
|
@@ -167,22 +184,25 @@ height?: number;
|
|
|
167
184
|
width?: number;
|
|
168
185
|
|
|
169
186
|
// do
|
|
170
|
-
size?:
|
|
187
|
+
size?: PieChartSize;
|
|
171
188
|
```
|
|
172
189
|
|
|
173
190
|
To know how to define your API, to name and document your props, take a look at the existing components.
|
|
174
191
|
|
|
175
|
-
|
|
192
|
+
## Tests
|
|
193
|
+
|
|
176
194
|
We use [jest](https://jestjs.io/) for unit tests and [react-testing-library](https://testing-library.com/docs/react-testing-library/intro) for rendering and writing assertions. We also use [Storyshots](https://storybook.js.org/addons/@storybook/addon-storyshots) to automatically take a code snapshot of every story.
|
|
177
195
|
|
|
178
196
|
Please make sure you include tests with your pull requests. Our CI will run the tests on each PR. A minimum of 90% code coverage is required for statements, branches, functions and lines of every package. However, in practice, we try to reach a 100% code coverage.
|
|
179
197
|
|
|
180
198
|
We split the tests into 2 groups.
|
|
181
199
|
|
|
182
|
-
|
|
200
|
+
_Visual tests_
|
|
201
|
+
|
|
183
202
|
- A Storybook story should be written for each visual state that a component can be in (based on props).
|
|
184
203
|
|
|
185
|
-
|
|
204
|
+
_Unit tests_
|
|
205
|
+
|
|
186
206
|
- (Props) Anything that should be changed by a prop should be tested via react-testing-library.
|
|
187
207
|
- (Events) Anything that should trigger an event should be tested via react-testing-library.
|
|
188
208
|
|
|
@@ -195,16 +215,18 @@ yarn test
|
|
|
195
215
|
Or for a specific package with:
|
|
196
216
|
|
|
197
217
|
```bash
|
|
198
|
-
yarn test:design-system
|
|
199
218
|
yarn test:charts
|
|
219
|
+
yarn test:design-system
|
|
200
220
|
yarn test:dashboard
|
|
221
|
+
yarn test:table
|
|
201
222
|
```
|
|
202
223
|
|
|
203
224
|
Do not forget to update the snapshots with the `-u` option when you modify or create stories. However, you should **always** check the generated snapshots to see if they are correct. Do **not** blindly update the snapshots.
|
|
204
225
|
|
|
205
|
-
|
|
226
|
+
## Linting
|
|
206
227
|
|
|
207
228
|
The code is linted with [eslint](https://eslint.org/). You can run the linter with:
|
|
229
|
+
|
|
208
230
|
```bash
|
|
209
231
|
yarn lint
|
|
210
232
|
```
|
|
@@ -218,9 +240,10 @@ yarn lint:design-system
|
|
|
218
240
|
yarn lint:table
|
|
219
241
|
```
|
|
220
242
|
|
|
221
|
-
|
|
243
|
+
## TypeScript
|
|
222
244
|
|
|
223
245
|
The code is written in [TypeScript](https://www.typescriptlang.org/). The type checker will usually run in your editor, but also runs when you run:
|
|
246
|
+
|
|
224
247
|
```bash
|
|
225
248
|
yarn check-types
|
|
226
249
|
```
|
|
@@ -271,7 +294,7 @@ export type BadgeVariant = ValueOf<typeof BadgeVariant>;
|
|
|
271
294
|
|
|
272
295
|
The variants, colors and all other enum-based interfaces should be implemented exactly as above to make the property compatible with both the enum values and their string equivalent values. In this example, `BadgeVariant.standard` and `"standard"` are both valid values for the `variant` prop.
|
|
273
296
|
|
|
274
|
-
|
|
297
|
+
## Styling
|
|
275
298
|
|
|
276
299
|
We use [styled-components](https://styled-components.com/) and [CSS variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) for styling. CSS variables are centralized through a [style dictionary](https://amzn.github.io/style-dictionary/#/).
|
|
277
300
|
|
|
@@ -282,18 +305,21 @@ The `styles.ts` of a component should contain all the styled-component codes. At
|
|
|
282
305
|
* Component style.
|
|
283
306
|
*/
|
|
284
307
|
export const StyledBadge = styled.div<StyledBadgeProps>`
|
|
285
|
-
${({ $color }) =>
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
308
|
+
${({ $color }) =>
|
|
309
|
+
$color
|
|
310
|
+
? css`
|
|
311
|
+
color: var(--redsift-color-neutral-white);
|
|
312
|
+
background-color: var(--redsift-color-${$color}-primary);
|
|
313
|
+
`
|
|
314
|
+
: ''}
|
|
315
|
+
`;
|
|
290
316
|
```
|
|
291
317
|
|
|
292
318
|
Make sure you are using the same HTML element for the styled component (i.e. `styled.div`) and the type interface (i.e. `ComponentProps<'div'>`). Type your variable with the interface you created in the `types.ts` file.
|
|
293
319
|
|
|
294
320
|
Make sure to use only [transient props](https://styled-components.com/docs/api#transient-props) and to use the styled-component's `css` helper when conditionnaly creating a new CSS block.
|
|
295
321
|
|
|
296
|
-
|
|
322
|
+
## Accessibility
|
|
297
323
|
|
|
298
324
|
We are trying to make the Design System as accessible as possible by following the [Web Accessibility Initiative guidelines](https://www.w3.org/WAI/ARIA/apg/).
|
|
299
325
|
|
|
@@ -301,7 +327,8 @@ Before implementing a component, try to see if there is a [pattern](https://www.
|
|
|
301
327
|
|
|
302
328
|
However, before using any ARIA, [read this disclaimer carefully](https://www.w3.org/WAI/ARIA/apg/practices/read-me-first/).
|
|
303
329
|
|
|
304
|
-
|
|
330
|
+
## Storybook
|
|
331
|
+
|
|
305
332
|
We use [Storybook](https://storybooks.js.org) for local development. Run the following command to start it:
|
|
306
333
|
|
|
307
334
|
```bash
|
|
@@ -314,7 +341,7 @@ You can use knobs and other storybook addons to create your stories. However, it
|
|
|
314
341
|
|
|
315
342
|
Storybook is shared among every packages of the Design System. Follow the naming of the components that already exists in the same package to make sure it will appear in the correct section.
|
|
316
343
|
|
|
317
|
-
|
|
344
|
+
## Documentation
|
|
318
345
|
|
|
319
346
|
We use a [Next.js](https://nextjs.org/) app with [MDX](https://mdxjs.com/) support as a documentation and demonstration site for the Design System. This app can be run as following:
|
|
320
347
|
|
|
@@ -329,6 +356,7 @@ To add documentation for a component, a MDX file should be created in the `packa
|
|
|
329
356
|
To appear in the website's Side Panel, the page should be listed in `packages/website/components/CustomAppSidePanel/CustomAppSidePanel.tsx`) under the corresponding section.
|
|
330
357
|
|
|
331
358
|
A component page should be structured as following:
|
|
359
|
+
|
|
332
360
|
- **Introduction**
|
|
333
361
|
- **Installation**: explains which package to install and how
|
|
334
362
|
- **Usage**: explains how to import the component
|
|
@@ -357,9 +385,12 @@ To display a demo, first create a demo (a simple `tsx` file) in the demo folder
|
|
|
357
385
|
To display simple code, use the `CodeBlock` as following:
|
|
358
386
|
|
|
359
387
|
```ts
|
|
360
|
-
<CodeBlock
|
|
388
|
+
<CodeBlock
|
|
389
|
+
codeString={`
|
|
361
390
|
yarn add @redsift/design-system
|
|
362
|
-
`}
|
|
391
|
+
`}
|
|
392
|
+
language="sh"
|
|
393
|
+
/>
|
|
363
394
|
```
|
|
364
395
|
|
|
365
396
|
## Build
|
package/index.js
CHANGED
|
@@ -161,7 +161,7 @@ const PieChartTooltipVariant = {
|
|
|
161
161
|
const StyledPieChart = styled.div`
|
|
162
162
|
margin: 8px;
|
|
163
163
|
padding: 8px;
|
|
164
|
-
color: var(--redsift-color-
|
|
164
|
+
color: var(--redsift-color-neutral-black);
|
|
165
165
|
|
|
166
166
|
.redsift-piechart__container {
|
|
167
167
|
display: flex;
|
|
@@ -215,7 +215,7 @@ const StyledPieChartCenterText = styled.div`
|
|
|
215
215
|
|
|
216
216
|
> b {
|
|
217
217
|
font-family: var(--redsift-typography-font-family-source-code-pro);
|
|
218
|
-
color: var(--redsift-color-
|
|
218
|
+
color: var(--redsift-color-neutral-black);
|
|
219
219
|
font-weight: var(--redsift-typography-font-weight-medium);
|
|
220
220
|
font-size: ${_ref2 => {
|
|
221
221
|
let {
|
|
@@ -249,7 +249,7 @@ const StyledPieChartCenterText = styled.div`
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
> span {
|
|
252
|
-
color: var(--redsift-color-
|
|
252
|
+
color: var(--redsift-color-neutral-black);
|
|
253
253
|
font-size: ${_ref6 => {
|
|
254
254
|
let {
|
|
255
255
|
$textSize
|
|
@@ -313,7 +313,7 @@ const StyledPieChartEmptyText = styled.div`
|
|
|
313
313
|
let {
|
|
314
314
|
$isDonut
|
|
315
315
|
} = _ref11;
|
|
316
|
-
return $isDonut ? css`var(--redsift-color-
|
|
316
|
+
return $isDonut ? css`var(--redsift-color-neutral-midgrey)` : css`var(--redsift-color-neutral-black)`;
|
|
317
317
|
}};
|
|
318
318
|
font-size: ${_ref12 => {
|
|
319
319
|
let {
|
|
@@ -388,7 +388,7 @@ const Tooltip = styled.div`
|
|
|
388
388
|
padding: 10px;
|
|
389
389
|
box-shadow: 0 2px 1px -1px rgb(0 0 0 / 20%), 0 1px 1px 0 rgb(0 0 0 / 14%),
|
|
390
390
|
0 1px 3px 0 rgb(0 0 0 / 12%);
|
|
391
|
-
background-color: var(--redsift-color-
|
|
391
|
+
background-color: var(--redsift-color-neutral-white);
|
|
392
392
|
`;
|
|
393
393
|
|
|
394
394
|
function _extends() {
|
|
@@ -1240,7 +1240,7 @@ const PieChart = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
1240
1240
|
path: createArc(datum),
|
|
1241
1241
|
spaced: variant === PieChartVariant.spaced || variant === PieChartVariant.spacedDonut
|
|
1242
1242
|
});
|
|
1243
|
-
})), labelVariant === PieChartLabelVariant.internal ? /*#__PURE__*/React.createElement("g", {
|
|
1243
|
+
})), labelVariant === PieChartLabelVariant.internal && !isEmpty ? /*#__PURE__*/React.createElement("g", {
|
|
1244
1244
|
className: "pie-label-group"
|
|
1245
1245
|
}, pieData.map((datum, index) => /*#__PURE__*/React.createElement("text", {
|
|
1246
1246
|
className: `pie-slice pie-label _${index}`,
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/scheme.ts","../src/components/PieChart/types.ts","../src/components/PieChart/styles.ts","../../../node_modules/reactjs-popup/dist/reactjs-popup.esm.js","../src/components/PieChart/PieChartArc.tsx","../src/components/PieChart/PieChart.tsx"],"sourcesContent":["import { PieArcDatum as D3PieArcDatum } from 'd3-shape';\nimport { ValueOf } from '~/types';\n\nexport type ChartDimensions = {\n width: number;\n height: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n};\n\nexport type Datum = {\n name: string;\n value: number;\n};\n\nexport type PieArcDatum = D3PieArcDatum<Datum>;\n\nexport const ColorTheme = {\n default: 'default',\n dark: 'dark',\n darker: 'darker',\n monochrome: 'monochrome',\n} as const;\nexport type ColorTheme = ValueOf<typeof ColorTheme>;\n\nexport type SuccessDangerColorTheme = {\n success: string;\n warning: string;\n danger: string;\n neutral?: string;\n};\n","import {\n scaleOrdinal as d3scaleOrdinal,\n ScaleOrdinal as d3ScaleOrdinal,\n} from 'd3';\nimport { ColorTheme, SuccessDangerColorTheme } from './types';\n\nexport const monochrome = '#B6DAEE';\n\nexport const scheme = {\n default: [\n '#C1AAEA',\n '#B6DAEE',\n '#B3E3C5',\n '#EAADAC',\n '#E2A7D7',\n '#AFF5F3',\n '#F2D39E',\n '#F6EFC7',\n '#E6C2A0',\n '#E5E5E5',\n ],\n dark: [\n '#A78ADB',\n '#97C5DE',\n '#90D2A9',\n '#D18785',\n '#D185C3',\n '#8CEAE6',\n '#D8B475',\n '#DED4A0',\n '#CDA279',\n '#BDBDBD',\n ],\n darker: [\n '#8D6CC9',\n '#73ADCC',\n '#6DBE8B',\n '#BA6361',\n '#BD63AC',\n '#6CDCD8',\n '#BD954F',\n '#C6BB7A',\n '#B58556',\n '#666666',\n ],\n light: [\n '#D9CAF5',\n '#D8EDF8',\n '#D3F0DE',\n '#FFD3D2',\n '#EFC8E8',\n '#D4FCFA',\n '#FFE8C0',\n '#FFFBE1',\n '#FFE3C9',\n '#F5F5F5',\n ],\n lighter: [\n '#F0E9FC',\n '#F6FBFE',\n '#EDFAF1',\n '#FFE5E5',\n '#F9E6F6',\n '#E1FFFF',\n '#FFF0D7',\n '#FFFDF0',\n '#FFEEDE',\n '#FFFFFF',\n ],\n monochrome: [monochrome],\n empty: ['#BDBDBD'],\n};\n\nexport const successDangerScheme = {\n success: '#90D2A9',\n warning: '#D8B475',\n danger: '#D18785',\n neutral: '#BDBDBD',\n};\n\nexport const getColorScale = (\n theme: ColorTheme | SuccessDangerColorTheme,\n isEmpty?: boolean\n): d3ScaleOrdinal<string, string> => {\n let d3colors = d3scaleOrdinal(scheme.default);\n if (isEmpty) {\n d3colors = d3scaleOrdinal(scheme.empty);\n } else if (typeof theme === 'string') {\n d3colors = d3scaleOrdinal(scheme[theme]);\n } else if (typeof theme === 'object') {\n d3colors = d3scaleOrdinal()\n .domain([\n theme.success,\n theme.warning,\n theme.danger,\n ...(theme.neutral ? [theme.neutral] : []),\n ])\n .range([\n successDangerScheme.success,\n successDangerScheme.warning,\n successDangerScheme.danger,\n ...(theme.neutral ? [successDangerScheme.neutral] : []),\n ])\n .unknown(monochrome) as any;\n }\n\n return d3colors;\n};\n","import { ColorTheme, Datum, SuccessDangerColorTheme } from '../../types';\nimport { ComponentProps } from 'react';\nimport { ValueOf } from '@redsift/design-system';\n\n/**\n * Component size.\n */\nexport const PieChartSize = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n} as const;\nexport type PieChartSize = ValueOf<typeof PieChartSize>;\n\n/**\n * Component variant.\n */\nexport const PieChartVariant = {\n plain: 'plain',\n spaced: 'spaced',\n donut: 'donut',\n spacedDonut: 'spacedDonut',\n} as const;\nexport type PieChartVariant = ValueOf<typeof PieChartVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const PieChartLabelVariant = {\n none: 'none',\n internal: 'internal',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n} as const;\nexport type PieChartLabelVariant = ValueOf<typeof PieChartLabelVariant>;\n\n/**\n * Component theme.\n */\nexport const PieChartTheme = ColorTheme;\nexport type PieChartTheme = ValueOf<typeof PieChartTheme>;\n\n/**\n * Tooltip label variant.\n */\nexport const PieChartTooltipVariant = {\n none: 'none',\n label: 'label',\n value: 'value',\n percent: 'percent',\n};\nexport type PieChartTooltipVariant = ValueOf<typeof PieChartTooltipVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\n/**\n * Component props.\n */\nexport interface PieChartProps extends ComponentProps<'div'> {\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Caption. */\n caption?: string;\n /** Dataset to use to generate the chart, should be a list of objects containing a name and a value. */\n data: Datum[];\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. */\n labelVariant?: PieChartLabelVariant;\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method to be called on a click on a slice. */\n onSliceClick?: (data: Datum) => void;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n /** PieChart size. */\n size?: PieChartSize;\n /** Secondary text to be displayed in the middle of the chart, between the main text and subtext. Recommended to be used with donut variants only. */\n middleText?: string;\n /** Secondary text to be displayed in the middle of the chart, above the main text. Recommended to be used with `donut` variants only. */\n subtext?: string;\n /** Main text to be displayed in the middle of the chart. Recommended to be used with `donut` variants only. */\n text?: string;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: PieChartTheme | SuccessDangerColorTheme;\n /** Title. */\n title?: string;\n /** PieChart variant. */\n variant?: PieChartVariant;\n /** Tooltip variant. */\n tooltipVariant?: PieChartTooltipVariant;\n}\n\nexport type StyledPieChartProps = Omit<PieChartProps, 'data'> & {};\n\nexport interface PieChartArcProps extends ComponentProps<'g'> {\n color: string;\n data: Datum;\n index: number;\n onClick?: () => void;\n path: string;\n spaced?: boolean;\n showTooltip: boolean;\n tooltipPercent: string | null;\n tooltipLabelOnly: boolean;\n isEmpty: boolean;\n}\n\nexport type StyledPieChartArcProps = Omit<\n PieChartArcProps,\n | 'color'\n | 'data'\n | 'index'\n | 'path'\n | 'spaced'\n | 'showTooltip'\n | 'tooltipPercent'\n | 'tooltipLabelOnly'\n | 'isEmpty'\n> & {\n $spaced: boolean;\n $clickable: boolean;\n};\n","import styled, { css } from 'styled-components';\nimport { StyledPieChartProps, StyledPieChartArcProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledPieChart = styled.div<StyledPieChartProps>`\n margin: 8px;\n padding: 8px;\n color: var(--redsift-color-text-primary);\n\n .redsift-piechart__container {\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 11px;\n justify-content: center;\n margin: 8px 0;\n\n .redsift-piechart-container__chart {\n position: relative;\n }\n }\n svg {\n display: block;\n }\n`;\n\nexport const StyledPieChartTitle = styled.div<StyledPieChartProps>`\n font-family: var(--redsift-typography-h4-font-family);\n font-size: var(--redsift-typography-h4-font-size);\n font-weight: var(--redsift-typography-h4-font-weight);\n line-height: var(--redsift-typography-h4-line-height);\n`;\n\nexport const StyledPieChartCaption = styled.p<StyledPieChartProps>`\n font-family: var(--redsift-typography-caption-font-family);\n font-size: var(--redsift-typography-caption-font-size);\n font-weight: var(--redsift-typography-caption-font-weight);\n line-height: var(--redsift-typography-caption-line-height);\n`;\n\nexport const StyledPieChartCenterText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $smallTextSize: number;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > b {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n color: var(--redsift-color-text-primary);\n font-weight: var(--redsift-typography-font-weight-medium);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n\n &:nth-child(2) {\n font-weight: normal;\n margin-top: 8px;\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > span {\n color: var(--redsift-color-text-primary);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n &:nth-child(3) {\n margin-top: 4px;\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > b + span {\n font-size: var(--redsift-typography-body-font-size);\n font-family: var(--redsift-typography-font-family-raleway);\n line-height: var(--redsift-typography-badge-line-height);\n color: rgba(0, 0, 0, 0.6);\n text-align: center;\n }\n`;\n\nexport const StyledPieChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $isDonut: boolean;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-raleway);\n color: ${({ $isDonut }) =>\n $isDonut\n ? css`var(--redsift-color-text-secondary)`\n : css`var(--redsift-color-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n\nexport const StyledPieChartLabel = styled.li<{ $color: string }>`\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n max-width: 262px;\n font-family: var(--redsift-typography-font-family-raleway);\n font-weight: var(--redsift-typography-font-weight-regular);\n font-size: var(--redsift-typography-caption-font-size);\n\n > div {\n height: 16px;\n width: 16px;\n min-width: 16px;\n background-color: ${({ $color }) => $color};\n }\n\n > b {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-weight: var(--redsift-typography-font-weight-bold);\n font-size: var(--redsift-typography-caption-font-size);\n }\n`;\n\nexport const StyledPieChartArc = styled.g<StyledPieChartArcProps>`\n ${({ $spaced }) =>\n $spaced\n ? css`\n path {\n stroke-width: 2px;\n stroke: #fff;\n }\n `\n : ''}\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `\n : ''}}\n`;\n\nexport const Tooltip = styled.div`\n font-family: var(--redsift-typography-font-family-raleway);\n border: 1px solid rgb(0 0 0 / 20%);\n padding: 10px;\n box-shadow: 0 2px 1px -1px rgb(0 0 0 / 20%), 0 1px 1px 0 rgb(0 0 0 / 14%),\n 0 1px 3px 0 rgb(0 0 0 / 12%);\n background-color: var(--redsift-color-primary-contrast);\n`;\n","import React, { useEffect, useLayoutEffect, forwardRef, useState, useRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar useOnEscape = function useOnEscape(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Escape\n if (event.key === 'Escape') handler(event);\n };\n\n document.addEventListener('keyup', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keyup', listener);\n };\n }, [handler, active]);\n};\nvar useRepositionOnResize = function useRepositionOnResize(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener() {\n handler();\n };\n\n window.addEventListener('resize', listener);\n return function () {\n if (!active) return;\n window.removeEventListener('resize', listener);\n };\n }, [handler, active]);\n};\nvar useOnClickOutside = function useOnClickOutside(ref, handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // Do nothing if clicking ref's element or descendent elements\n var refs = Array.isArray(ref) ? ref : [ref];\n var contains = false;\n refs.forEach(function (r) {\n if (!r.current || r.current.contains(event.target)) {\n contains = true;\n return;\n }\n });\n event.stopPropagation();\n if (!contains) handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler, active]);\n}; // Make sure that user is not able TAB out of the Modal content on Open\n\nvar useTabbing = function useTabbing(contentRef, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Tab\n if (event.keyCode === 9) {\n var _contentRef$current;\n\n var els = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var focusableEls = Array.prototype.slice.call(els);\n\n if (focusableEls.length === 1) {\n event.preventDefault();\n return;\n }\n\n var firstFocusableEl = focusableEls[0];\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n if (event.shiftKey && document.activeElement === firstFocusableEl) {\n event.preventDefault();\n lastFocusableEl.focus();\n } else if (document.activeElement === lastFocusableEl) {\n event.preventDefault();\n firstFocusableEl.focus();\n }\n }\n };\n\n document.addEventListener('keydown', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keydown', listener);\n };\n }, [contentRef, active]);\n};\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar Style = {\n popupContent: {\n tooltip: {\n position: 'absolute',\n zIndex: 999\n },\n modal: {\n position: 'relative',\n margin: 'auto'\n }\n },\n popupArrow: {\n height: '8px',\n width: '16px',\n position: 'absolute',\n background: 'transparent',\n color: '#FFF',\n zIndex: -1\n },\n overlay: {\n tooltip: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n zIndex: 999\n },\n modal: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n display: 'flex',\n zIndex: 999\n }\n }\n};\n\nvar POSITION_TYPES = ['top left', 'top center', 'top right', 'right top', 'right center', 'right bottom', 'bottom left', 'bottom center', 'bottom right', 'left top', 'left center', 'left bottom'];\n\nvar getCoordinatesForPosition = function getCoordinatesForPosition(triggerBounding, ContentBounding, position, //PopupPosition | PopupPosition[],\narrow, _ref) {\n var offsetX = _ref.offsetX,\n offsetY = _ref.offsetY;\n var margin = arrow ? 8 : 0;\n var args = position.split(' '); // the step N 1 : center the popup content => ok\n\n var CenterTop = triggerBounding.top + triggerBounding.height / 2;\n var CenterLeft = triggerBounding.left + triggerBounding.width / 2;\n var height = ContentBounding.height,\n width = ContentBounding.width;\n var top = CenterTop - height / 2;\n var left = CenterLeft - width / 2;\n var transform = '';\n var arrowTop = '0%';\n var arrowLeft = '0%'; // the step N 2 : => ok\n\n switch (args[0]) {\n case 'top':\n top -= height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(180deg) translateX(50%)\";\n arrowTop = '100%';\n arrowLeft = '50%';\n break;\n\n case 'bottom':\n top += height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(0deg) translateY(-100%) translateX(-50%)\";\n arrowLeft = '50%';\n break;\n\n case 'left':\n left -= width / 2 + triggerBounding.width / 2 + margin;\n transform = \" rotate(90deg) translateY(50%) translateX(-25%)\";\n arrowLeft = '100%';\n arrowTop = '50%';\n break;\n\n case 'right':\n left += width / 2 + triggerBounding.width / 2 + margin;\n transform = \"rotate(-90deg) translateY(-150%) translateX(25%)\";\n arrowTop = '50%';\n break;\n }\n\n switch (args[1]) {\n case 'top':\n top = triggerBounding.top;\n arrowTop = triggerBounding.height / 2 + \"px\";\n break;\n\n case 'bottom':\n top = triggerBounding.top - height + triggerBounding.height;\n arrowTop = height - triggerBounding.height / 2 + \"px\";\n break;\n\n case 'left':\n left = triggerBounding.left;\n arrowLeft = triggerBounding.width / 2 + \"px\";\n break;\n\n case 'right':\n left = triggerBounding.left - width + triggerBounding.width;\n arrowLeft = width - triggerBounding.width / 2 + \"px\";\n break;\n }\n\n top = args[0] === 'top' ? top - offsetY : top + offsetY;\n left = args[0] === 'left' ? left - offsetX : left + offsetX;\n return {\n top: top,\n left: left,\n transform: transform,\n arrowLeft: arrowLeft,\n arrowTop: arrowTop\n };\n};\n\nvar getTooltipBoundary = function getTooltipBoundary(keepTooltipInside) {\n // add viewport\n var boundingBox = {\n top: 0,\n left: 0,\n\n /* eslint-disable-next-line no-undef */\n width: window.innerWidth,\n\n /* eslint-disable-next-line no-undef */\n height: window.innerHeight\n };\n\n if (typeof keepTooltipInside === 'string') {\n /* eslint-disable-next-line no-undef */\n var selector = document.querySelector(keepTooltipInside);\n\n if (process.env.NODE_ENV !== 'production') {\n if (selector === null) throw new Error(keepTooltipInside + \" selector does not exist : keepTooltipInside must be a valid html selector 'class' or 'Id' or a boolean value\");\n }\n\n if (selector !== null) boundingBox = selector.getBoundingClientRect();\n }\n\n return boundingBox;\n};\n\nvar calculatePosition = function calculatePosition(triggerBounding, ContentBounding, position, arrow, _ref2, keepTooltipInside) {\n var offsetX = _ref2.offsetX,\n offsetY = _ref2.offsetY;\n var bestCoords = {\n arrowLeft: '0%',\n arrowTop: '0%',\n left: 0,\n top: 0,\n transform: 'rotate(135deg)'\n };\n var i = 0;\n var wrapperBox = getTooltipBoundary(keepTooltipInside);\n var positions = Array.isArray(position) ? position : [position]; // keepTooltipInside would be activated if the keepTooltipInside exist or the position is Array\n\n if (keepTooltipInside || Array.isArray(position)) positions = [].concat(positions, POSITION_TYPES); // add viewPort for WarpperBox\n // wrapperBox.top = wrapperBox.top + window.scrollY;\n // wrapperBox.left = wrapperBox.left + window.scrollX;\n\n while (i < positions.length) {\n bestCoords = getCoordinatesForPosition(triggerBounding, ContentBounding, positions[i], arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n });\n var contentBox = {\n top: bestCoords.top,\n left: bestCoords.left,\n width: ContentBounding.width,\n height: ContentBounding.height\n };\n\n if (contentBox.top <= wrapperBox.top || contentBox.left <= wrapperBox.left || contentBox.top + contentBox.height >= wrapperBox.top + wrapperBox.height || contentBox.left + contentBox.width >= wrapperBox.left + wrapperBox.width) {\n i++;\n } else {\n break;\n }\n }\n\n return bestCoords;\n};\n\nvar popupIdCounter = 0;\n\nvar getRootPopup = function getRootPopup() {\n var PopupRoot = document.getElementById('popup-root');\n\n if (PopupRoot === null) {\n PopupRoot = document.createElement('div');\n PopupRoot.setAttribute('id', 'popup-root');\n document.body.appendChild(PopupRoot);\n }\n\n return PopupRoot;\n};\n\nvar Popup = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref$trigger = _ref.trigger,\n trigger = _ref$trigger === void 0 ? null : _ref$trigger,\n _ref$onOpen = _ref.onOpen,\n onOpen = _ref$onOpen === void 0 ? function () {} : _ref$onOpen,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$defaultOpen = _ref.defaultOpen,\n defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,\n _ref$open = _ref.open,\n open = _ref$open === void 0 ? undefined : _ref$open,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$nested = _ref.nested,\n nested = _ref$nested === void 0 ? false : _ref$nested,\n _ref$closeOnDocumentC = _ref.closeOnDocumentClick,\n closeOnDocumentClick = _ref$closeOnDocumentC === void 0 ? true : _ref$closeOnDocumentC,\n _ref$repositionOnResi = _ref.repositionOnResize,\n repositionOnResize = _ref$repositionOnResi === void 0 ? true : _ref$repositionOnResi,\n _ref$closeOnEscape = _ref.closeOnEscape,\n closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape,\n _ref$on = _ref.on,\n on = _ref$on === void 0 ? ['click'] : _ref$on,\n _ref$contentStyle = _ref.contentStyle,\n contentStyle = _ref$contentStyle === void 0 ? {} : _ref$contentStyle,\n _ref$arrowStyle = _ref.arrowStyle,\n arrowStyle = _ref$arrowStyle === void 0 ? {} : _ref$arrowStyle,\n _ref$overlayStyle = _ref.overlayStyle,\n overlayStyle = _ref$overlayStyle === void 0 ? {} : _ref$overlayStyle,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? 'bottom center' : _ref$position,\n _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? false : _ref$modal,\n _ref$lockScroll = _ref.lockScroll,\n lockScroll = _ref$lockScroll === void 0 ? false : _ref$lockScroll,\n _ref$arrow = _ref.arrow,\n arrow = _ref$arrow === void 0 ? true : _ref$arrow,\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY,\n _ref$mouseEnterDelay = _ref.mouseEnterDelay,\n mouseEnterDelay = _ref$mouseEnterDelay === void 0 ? 100 : _ref$mouseEnterDelay,\n _ref$mouseLeaveDelay = _ref.mouseLeaveDelay,\n mouseLeaveDelay = _ref$mouseLeaveDelay === void 0 ? 100 : _ref$mouseLeaveDelay,\n _ref$keepTooltipInsid = _ref.keepTooltipInside,\n keepTooltipInside = _ref$keepTooltipInsid === void 0 ? false : _ref$keepTooltipInsid,\n children = _ref.children;\n\n var _useState = useState(open || defaultOpen),\n isOpen = _useState[0],\n setIsOpen = _useState[1];\n\n var triggerRef = useRef(null);\n var contentRef = useRef(null);\n var arrowRef = useRef(null);\n var focusedElBeforeOpen = useRef(null);\n var popupId = useRef(\"popup-\" + ++popupIdCounter);\n var isModal = modal ? true : !trigger;\n var timeOut = useRef(0);\n useIsomorphicLayoutEffect(function () {\n if (isOpen) {\n focusedElBeforeOpen.current = document.activeElement;\n setPosition();\n focusContentOnOpen(); // for accessibility\n\n lockScrolll();\n } else {\n resetScroll();\n }\n\n return function () {\n clearTimeout(timeOut.current);\n };\n }, [isOpen]); // for uncontrolled popup we need to sync isOpen with open prop\n\n useEffect(function () {\n if (typeof open === 'boolean') {\n if (open) openPopup();else closePopup();\n }\n }, [open, disabled]);\n\n var openPopup = function openPopup(event) {\n if (isOpen || disabled) return;\n setIsOpen(true);\n setTimeout(function () {\n return onOpen(event);\n }, 0);\n };\n\n var closePopup = function closePopup(event) {\n var _focusedElBeforeOpen$;\n\n if (!isOpen || disabled) return;\n setIsOpen(false);\n if (isModal) (_focusedElBeforeOpen$ = focusedElBeforeOpen.current) === null || _focusedElBeforeOpen$ === void 0 ? void 0 : _focusedElBeforeOpen$.focus();\n setTimeout(function () {\n return onClose(event);\n }, 0);\n };\n\n var togglePopup = function togglePopup(event) {\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (!isOpen) openPopup(event);else closePopup(event);\n };\n\n var onMouseEnter = function onMouseEnter(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return openPopup(event);\n }, mouseEnterDelay);\n };\n\n var onContextMenu = function onContextMenu(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n togglePopup();\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return closePopup(event);\n }, mouseLeaveDelay);\n };\n\n var lockScrolll = function lockScrolll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'hidden'; // migrate to document.body\n };\n\n var resetScroll = function resetScroll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'auto';\n };\n\n var focusContentOnOpen = function focusContentOnOpen() {\n var _contentRef$current;\n\n var focusableEls = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var firstEl = Array.prototype.slice.call(focusableEls)[0];\n firstEl === null || firstEl === void 0 ? void 0 : firstEl.focus();\n };\n\n useImperativeHandle(ref, function () {\n return {\n open: function open() {\n openPopup();\n },\n close: function close() {\n closePopup();\n },\n toggle: function toggle() {\n togglePopup();\n }\n };\n }); // set Position\n\n var setPosition = function setPosition() {\n if (isModal || !isOpen) return;\n if (!(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(contentRef === null || contentRef === void 0 ? void 0 : contentRef.current)) return; /// show error as one of ref is undefined\n\n var trigger = triggerRef.current.getBoundingClientRect();\n var content = contentRef.current.getBoundingClientRect();\n var cords = calculatePosition(trigger, content, position, arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n }, keepTooltipInside);\n contentRef.current.style.top = cords.top + window.scrollY + \"px\";\n contentRef.current.style.left = cords.left + window.scrollX + \"px\";\n\n if (arrow && !!arrowRef.current) {\n var _arrowStyle$top, _arrowStyle$left;\n\n arrowRef.current.style.transform = cords.transform;\n arrowRef.current.style.setProperty('-ms-transform', cords.transform);\n arrowRef.current.style.setProperty('-webkit-transform', cords.transform);\n arrowRef.current.style.top = ((_arrowStyle$top = arrowStyle.top) === null || _arrowStyle$top === void 0 ? void 0 : _arrowStyle$top.toString()) || cords.arrowTop;\n arrowRef.current.style.left = ((_arrowStyle$left = arrowStyle.left) === null || _arrowStyle$left === void 0 ? void 0 : _arrowStyle$left.toString()) || cords.arrowLeft;\n }\n }; // hooks\n\n\n useOnEscape(closePopup, closeOnEscape); // can be optimized if we disabled for hover\n\n useTabbing(contentRef, isOpen && isModal);\n useRepositionOnResize(setPosition, repositionOnResize);\n useOnClickOutside(!!trigger ? [contentRef, triggerRef] : [contentRef], closePopup, closeOnDocumentClick && !nested); // we need to add a ne\n // render the trigger element and add events\n\n var renderTrigger = function renderTrigger() {\n var triggerProps = {\n key: 'T',\n ref: triggerRef,\n 'aria-describedby': popupId.current\n };\n var onAsArray = Array.isArray(on) ? on : [on];\n\n for (var i = 0, len = onAsArray.length; i < len; i++) {\n switch (onAsArray[i]) {\n case 'click':\n triggerProps.onClick = togglePopup;\n break;\n\n case 'right-click':\n triggerProps.onContextMenu = onContextMenu;\n break;\n\n case 'hover':\n triggerProps.onMouseEnter = onMouseEnter;\n triggerProps.onMouseLeave = onMouseLeave;\n break;\n\n case 'focus':\n triggerProps.onFocus = onMouseEnter;\n triggerProps.onBlur = onMouseLeave;\n break;\n }\n }\n\n if (typeof trigger === 'function') {\n var comp = trigger(isOpen);\n return !!trigger && React.cloneElement(comp, triggerProps);\n }\n\n return !!trigger && React.cloneElement(trigger, triggerProps);\n };\n\n var addWarperAction = function addWarperAction() {\n var popupContentStyle = isModal ? Style.popupContent.modal : Style.popupContent.tooltip;\n var childrenElementProps = {\n className: \"popup-content \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-content\";\n }).join(' ') : ''),\n style: _extends({}, popupContentStyle, contentStyle, {\n pointerEvents: 'auto'\n }),\n ref: contentRef,\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n };\n\n if (!modal && on.indexOf('hover') >= 0) {\n childrenElementProps.onMouseEnter = onMouseEnter;\n childrenElementProps.onMouseLeave = onMouseLeave;\n }\n\n return childrenElementProps;\n };\n\n var renderContent = function renderContent() {\n return React.createElement(\"div\", Object.assign({}, addWarperAction(), {\n key: \"C\",\n role: isModal ? 'dialog' : 'tooltip',\n id: popupId.current\n }), arrow && !isModal && React.createElement(\"div\", {\n ref: arrowRef,\n style: Style.popupArrow\n }, React.createElement(\"svg\", {\n \"data-testid\": \"arrow\",\n className: \"popup-arrow \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-arrow\";\n }).join(' ') : ''),\n viewBox: \"0 0 32 16\",\n style: _extends({\n position: 'absolute'\n }, arrowStyle)\n }, React.createElement(\"path\", {\n d: \"M16 0l16 16H0z\",\n fill: \"currentcolor\"\n }))), children && typeof children === 'function' ? children(closePopup, isOpen) : children);\n };\n\n var overlay = !(on.indexOf('hover') >= 0);\n var ovStyle = isModal ? Style.overlay.modal : Style.overlay.tooltip;\n var content = [overlay && React.createElement(\"div\", {\n key: \"O\",\n \"data-testid\": \"overlay\",\n \"data-popup\": isModal ? 'modal' : 'tooltip',\n className: \"popup-overlay \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-overlay\";\n }).join(' ') : ''),\n style: _extends({}, ovStyle, overlayStyle, {\n pointerEvents: closeOnDocumentClick && nested || isModal ? 'auto' : 'none'\n }),\n onClick: closeOnDocumentClick && nested ? closePopup : undefined,\n tabIndex: -1\n }, isModal && renderContent()), !isModal && renderContent()];\n return React.createElement(React.Fragment, null, renderTrigger(), isOpen && ReactDOM.createPortal(content, getRootPopup()));\n});\n\nexport default Popup;\nexport { Popup };\n//# sourceMappingURL=reactjs-popup.esm.js.map\n","import React, { forwardRef } from 'react';\nimport Popup from 'reactjs-popup';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { PieChartArcProps } from './types';\nimport { StyledPieChartArc, Tooltip } from './styles';\n\nconst COMPONENT_NAME = 'RedSiftPieChartArc';\nconst CLASSNAME = 'redsift-piechart-arc';\nconst DEFAULT_PROPS: Partial<PieChartArcProps> = {};\n\nexport const PieChartArc: Comp<PieChartArcProps, SVGGElement> = forwardRef(\n (props, ref) => {\n const {\n color,\n data,\n index,\n onClick,\n path,\n spaced,\n showTooltip,\n tooltipPercent,\n tooltipLabelOnly,\n isEmpty,\n ...forwardedProps\n } = props;\n const Arc = (\n <StyledPieChartArc\n ref={ref as any}\n {...forwardedProps}\n role={onClick ? 'button' : undefined}\n className={`pie-slice _${index}`}\n onClick={onClick}\n $clickable={Boolean(onClick)}\n $spaced={Boolean(spaced)}\n >\n <path d={path} fill={color} />\n {!showTooltip && !isEmpty && (\n <title>{`${data.name}: ${data.value}`}</title>\n )}\n </StyledPieChartArc>\n );\n\n if (showTooltip) {\n const tooltipValue =\n tooltipPercent !== null ? `${tooltipPercent}%` : data.value;\n return (\n <Popup on=\"hover\" arrow={false} position=\"right center\" trigger={Arc}>\n <Tooltip>\n {`${data.name}${tooltipLabelOnly ? '' : ` - ${tooltipValue}`}`}\n </Tooltip>\n </Popup>\n );\n }\n\n return Arc;\n }\n);\nPieChartArc.className = CLASSNAME;\nPieChartArc.defaultProps = DEFAULT_PROPS;\nPieChartArc.displayName = COMPONENT_NAME;\n","import React, { forwardRef, useId } from 'react';\nimport { arc as d3arc, pie as d3pie, sum as d3sum } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartDimensions, Datum, PieArcDatum } from '../../types';\nimport { getColorScale } from '../../scheme';\nimport {\n PieChartLabelVariant,\n PieChartProps,\n PieChartSize,\n PieChartTheme,\n PieChartTooltipVariant,\n PieChartVariant,\n} from './types';\nimport {\n StyledPieChartCenterText,\n StyledPieChart,\n StyledPieChartCaption,\n StyledPieChartLabel,\n StyledPieChartTitle,\n StyledPieChartEmptyText,\n} from './styles';\nimport { PieChartArc } from './PieChartArc';\n\nconst COMPONENT_NAME = 'RedSiftPieChart';\nconst CLASSNAME = 'redsift-piechart';\nconst DEFAULT_PROPS: Partial<PieChartProps> = {\n labelVariant: PieChartLabelVariant.none,\n others: true,\n size: PieChartSize.medium,\n theme: PieChartTheme.default,\n variant: PieChartVariant.plain,\n tooltipVariant: PieChartTooltipVariant.value,\n localeText: {\n emptyChartText: 'No Data',\n },\n};\n\nconst sizeToDimension = (size: PieChartSize): ChartDimensions => {\n switch (size) {\n case PieChartSize.small:\n return { width: 200, height: 200 };\n case PieChartSize.large:\n return { width: 300, height: 300 };\n case PieChartSize.medium:\n default:\n return { width: 240, height: 240 };\n }\n};\n\nconst sizeToSmallFontSize = (size: PieChartSize | undefined): number => {\n switch (size) {\n case PieChartSize.small:\n return 13;\n case PieChartSize.large:\n return 18;\n case PieChartSize.medium:\n default:\n return 14;\n }\n};\n\nconst sizeToFontSize = (size: PieChartSize | undefined): number => {\n switch (size) {\n case PieChartSize.small:\n return 30;\n case PieChartSize.large:\n return 38;\n case PieChartSize.medium:\n default:\n return 34;\n }\n};\n\nconst sizeToInnerRadius = (size: PieChartSize): number => {\n switch (size) {\n case PieChartSize.small:\n return 55;\n case PieChartSize.large:\n return 80;\n case PieChartSize.medium:\n default:\n return 65;\n }\n};\n\nexport const PieChart: Comp<PieChartProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const id = useId();\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n caping,\n caption,\n className,\n data: propData,\n labelVariant,\n onSliceClick,\n others,\n size,\n text,\n middleText,\n subtext,\n theme,\n title,\n variant,\n tooltipVariant,\n localeText,\n ...forwardedProps\n } = props;\n const { emptyChartText } = {\n ...DEFAULT_PROPS.localeText,\n ...localeText,\n };\n const isEmpty = propData.every((d) => d.value === 0);\n const isDonut =\n variant === PieChartVariant.donut ||\n variant === PieChartVariant.spacedDonut;\n let data = propData.sort((a, b) => (a.value < b.value ? 1 : -1));\n if (caping) {\n if (typeof others === 'boolean' && !others) {\n data = data.slice(0, caping);\n } else {\n data = data.reduce<Datum[]>((acc, curr, index) => {\n if (index < caping) {\n acc[index] = curr;\n } else if (index === caping) {\n acc[index] = {\n name: typeof others === 'string' ? others : 'Others',\n value: curr.value,\n };\n } else {\n acc[caping] = {\n ...acc[caping],\n value: acc[caping].value + curr.value,\n };\n }\n return acc;\n }, []);\n }\n }\n if (isEmpty) {\n data = [\n {\n name: emptyChartText as string,\n value: 100,\n },\n ];\n }\n\n // Get charts dimensions based on the selected size.\n const chartDimensions = sizeToDimension(size!);\n const externalRadiusPadding = 8;\n const innerRadius = sizeToInnerRadius(size!);\n\n // Set color scheme.\n const d3colors = getColorScale(theme!, isEmpty);\n\n // Initialize the chart.\n const createPie = d3pie<Datum>()\n .value((d) => d.value)\n .sort(null);\n const createArc = d3arc<PieArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(chartDimensions.width / 2 - externalRadiusPadding);\n const pieData = createPie(data);\n const total = d3sum(data, (d) => d.value);\n return (\n <StyledPieChart\n ref={ref as any}\n {...forwardedProps}\n className={className}\n >\n {title ? (\n <StyledPieChartTitle\n className={`${PieChart.className}__title`}\n id={`id${id}__title`}\n >\n {title}\n </StyledPieChartTitle>\n ) : null}\n <div className={`${PieChart.className}__container`}>\n <div\n className={`${PieChart.className}-container__chart`}\n aria-label={\n ariaLabel\n ? ariaLabel\n : ariaLabelledby || title\n ? undefined\n : 'Pie Chart'\n }\n aria-labelledby={\n ariaLabelledby\n ? ariaLabelledby\n : title\n ? `id${id}__title`\n : undefined\n }\n >\n {text && !isEmpty ? (\n <StyledPieChartCenterText\n $maxWidth={innerRadius * 2}\n $textSize={sizeToFontSize(size)}\n $smallTextSize={sizeToSmallFontSize(size)}\n >\n {subtext ? <b>{text}</b> : <span>{text}</span>}\n {middleText ? <b>{middleText}</b> : null}\n <span>{subtext}</span>\n </StyledPieChartCenterText>\n ) : null}\n {isEmpty ? (\n <StyledPieChartEmptyText\n $maxWidth={innerRadius * 2}\n $textSize={sizeToFontSize(size) / 2}\n $isDonut={isDonut}\n >\n <span>{emptyChartText}</span>\n </StyledPieChartEmptyText>\n ) : null}\n <svg width={chartDimensions.width} height={chartDimensions.height}>\n <g\n transform={`translate(${chartDimensions.width / 2} ${\n chartDimensions.height / 2\n })`}\n >\n <g className=\"pie-slice-group\">\n {pieData.map((datum, index) => {\n const percent = ((datum.data.value / total) * 100).toFixed(\n 2\n );\n return (\n <PieChartArc\n color={d3colors(datum.data.name)}\n data={datum.data}\n isEmpty={isEmpty}\n index={index}\n key={`pie-slice _${index}`}\n onClick={\n onSliceClick\n ? () => onSliceClick(data[index])\n : undefined\n }\n showTooltip={\n tooltipVariant !== PieChartTooltipVariant.none &&\n !isEmpty\n }\n tooltipLabelOnly={\n tooltipVariant == PieChartTooltipVariant.label\n }\n tooltipPercent={\n tooltipVariant === PieChartTooltipVariant.percent\n ? percent\n : null\n }\n path={createArc(datum) as string}\n spaced={\n variant === PieChartVariant.spaced ||\n variant === PieChartVariant.spacedDonut\n }\n />\n );\n })}\n </g>\n {labelVariant === PieChartLabelVariant.internal ? (\n <g className=\"pie-label-group\">\n {pieData.map((datum, index) => (\n <text\n className={`pie-slice pie-label _${index}`}\n key={`pie-slice pie-label _${index}`}\n textAnchor=\"middle\"\n transform={`translate(${createArc.centroid(datum)})`}\n >\n {index < 2 || caping ? datum.data.name : null}\n </text>\n ))}\n </g>\n ) : null}\n </g>\n </svg>\n </div>\n {labelVariant !== PieChartLabelVariant.none &&\n labelVariant !== PieChartLabelVariant.internal ? (\n <ul>\n {data.map(({ name, value }: Datum, index) => (\n <StyledPieChartLabel\n key={`pie-external-label _${index}`}\n $color={d3colors(name)}\n >\n <div />\n {labelVariant === PieChartLabelVariant.externalLabelValue ? (\n <b>{value}</b>\n ) : labelVariant ===\n PieChartLabelVariant.externalLabelPercent ? (\n <b>{`${((value * 100) / total).toFixed(2)}%`}</b>\n ) : null}\n <span>{name}</span>\n </StyledPieChartLabel>\n ))}\n </ul>\n ) : null}\n </div>\n {caption ? (\n <StyledPieChartCaption className={`${PieChart.className}__caption`}>\n {caption}\n </StyledPieChartCaption>\n ) : null}\n </StyledPieChart>\n );\n }\n);\nPieChart.className = CLASSNAME;\nPieChart.defaultProps = DEFAULT_PROPS;\nPieChart.displayName = COMPONENT_NAME;\n"],"names":["ColorTheme","default","dark","darker","monochrome","scheme","light","lighter","empty","successDangerScheme","success","warning","danger","neutral","getColorScale","theme","isEmpty","d3colors","d3scaleOrdinal","domain","range","unknown","PieChartSize","small","medium","large","PieChartVariant","plain","spaced","donut","spacedDonut","PieChartLabelVariant","none","internal","externalLabel","externalLabelValue","externalLabelPercent","PieChartTheme","PieChartTooltipVariant","label","value","percent","StyledPieChart","styled","div","StyledPieChartTitle","StyledPieChartCaption","p","StyledPieChartCenterText","$maxWidth","$textSize","$smallTextSize","StyledPieChartEmptyText","$isDonut","css","StyledPieChartLabel","li","$color","StyledPieChartArc","g","$spaced","$clickable","Tooltip","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","PieChartArc","forwardRef","props","ref","color","data","index","onClick","path","showTooltip","tooltipPercent","tooltipLabelOnly","forwardedProps","_excluded","Arc","_extends","undefined","Boolean","name","tooltipValue","className","defaultProps","displayName","labelVariant","others","size","variant","tooltipVariant","localeText","emptyChartText","sizeToDimension","width","height","sizeToSmallFontSize","sizeToFontSize","sizeToInnerRadius","PieChart","id","useId","ariaLabel","ariaLabelledby","caping","caption","propData","onSliceClick","text","middleText","subtext","title","every","d","isDonut","sort","a","b","slice","reduce","acc","curr","chartDimensions","externalRadiusPadding","innerRadius","createPie","d3pie","createArc","d3arc","outerRadius","pieData","total","d3sum","map","datum","toFixed","centroid"],"mappings":";;;;;AAmBO,MAAMA,UAAU,GAAG;AACxBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,UAAU,EAAE,YAAA;AACd;;AClBO,MAAMA,UAAU,GAAG,UAAS;AAE5B,MAAMC,MAAM,GAAG;EACpBJ,OAAO,EAAE,CACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;EACDC,IAAI,EAAE,CACJ,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;EACDC,MAAM,EAAE,CACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;EACDG,KAAK,EAAE,CACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;EACDC,OAAO,EAAE,CACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;EACDH,UAAU,EAAE,CAACA,UAAU,CAAC;EACxBI,KAAK,EAAE,CAAC,SAAS,CAAA;AACnB,EAAC;AAEM,MAAMC,mBAAmB,GAAG;AACjCC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,SAAS;AACjBC,EAAAA,OAAO,EAAE,SAAA;AACX,EAAC;MAEYC,aAAa,GAAG,CAC3BC,KAA2C,EAC3CC,OAAiB,KACkB;AACnC,EAAA,IAAIC,QAAQ,GAAGC,YAAc,CAACb,MAAM,CAACJ,OAAO,CAAC,CAAA;AAC7C,EAAA,IAAIe,OAAO,EAAE;AACXC,IAAAA,QAAQ,GAAGC,YAAc,CAACb,MAAM,CAACG,KAAK,CAAC,CAAA;AACzC,GAAC,MAAM,IAAI,OAAOO,KAAK,KAAK,QAAQ,EAAE;AACpCE,IAAAA,QAAQ,GAAGC,YAAc,CAACb,MAAM,CAACU,KAAK,CAAC,CAAC,CAAA;AAC1C,GAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AACpCE,IAAAA,QAAQ,GAAGC,YAAc,EAAE,CACxBC,MAAM,CAAC,CACNJ,KAAK,CAACL,OAAO,EACbK,KAAK,CAACJ,OAAO,EACbI,KAAK,CAACH,MAAM,EACZ,IAAIG,KAAK,CAACF,OAAO,GAAG,CAACE,KAAK,CAACF,OAAO,CAAC,GAAG,EAAE,CAAC,CAC1C,CAAC,CACDO,KAAK,CAAC,CACLX,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACE,OAAO,EAC3BF,mBAAmB,CAACG,MAAM,EAC1B,IAAIG,KAAK,CAACF,OAAO,GAAG,CAACJ,mBAAmB,CAACI,OAAO,CAAC,GAAG,EAAE,CAAC,CACxD,CAAC,CACDQ,OAAO,CAACjB,UAAU,CAAQ,CAAA;AAC/B,GAAA;AAEA,EAAA,OAAOa,QAAQ,CAAA;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGA;AACA;AACA;AACO,MAAMK,YAAY,GAAG;AAC1BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAU;AAGV;AACA;AACA;AACO,MAAMC,eAAe,GAAG;AAC7BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,WAAW,EAAE,aAAA;AACf,EAAU;AAGV;AACA;AACA;AACO,MAAMC,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,kBAAkB,EAAE,oBAAoB;AACxCC,EAAAA,oBAAoB,EAAE,sBAAA;AACxB,EAAU;AAGV;AACA;AACA;AACO,MAAMC,aAAa,GAAGrC,WAAU;AAGvC;AACA;AACA;AACO,MAAMsC,sBAAsB,GAAG;AACpCN,EAAAA,IAAI,EAAE,MAAM;AACZO,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,OAAO,EAAE,SAAA;AACX;;AChDA;AACA;AACA;AACaC,MAAAA,cAAc,GAAGC,MAAM,CAACC,GAAyB,CAAA;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYC,MAAAA,mBAAmB,GAAGF,MAAM,CAACC,GAAyB,CAAA;AACnE;AACA;AACA;AACA;AACA,EAAC;AAEYE,MAAAA,qBAAqB,GAAGH,MAAM,CAACI,CAAuB,CAAA;AACnE;AACA;AACA;AACA;AACA,EAAC;AAEYC,MAAAA,wBAAwB,GAAGL,MAAM,CAACC,GAI5C,CAAA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAiB,EAAA,IAAA,IAAA;EAAA,IAAC;AAAEK,IAAAA,SAAAA;GAAW,GAAA,IAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,eAAiB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;GAAW,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C,iBAAmB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEA,IAAAA,SAAAA;GAAW,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAChD;AACA;AACA;AACA;AACA;AACA,iBAAmB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,cAAAA;GAAgB,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,cAAc,CAAA;AAAA,CAAC,CAAA;AAC1D,mBAAqB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEA,IAAAA,cAAAA;GAAgB,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,cAAc,CAAA;AAAA,CAAC,CAAA;AAC5D;AACA;AACA;AACA;AACA,eAAiB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAED,IAAAA,SAAAA;GAAW,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C,iBAAmB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEA,IAAAA,SAAAA;GAAW,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAChD;AACA;AACA,iBAAmB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,cAAAA;GAAgB,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,cAAc,CAAA;AAAA,CAAC,CAAA;AAC1D,mBAAqB,EAAA,KAAA,IAAA;EAAA,IAAC;AAAEA,IAAAA,cAAAA;GAAgB,GAAA,KAAA,CAAA;AAAA,EAAA,OAAKA,cAAc,CAAA;AAAA,CAAC,CAAA;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYC,MAAAA,uBAAuB,GAAGT,MAAM,CAACC,GAI3C,CAAA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAiB,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEK,IAAAA,SAAAA;GAAW,GAAA,MAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C;AACA;AACA;AACA;AACA,WAAa,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEI,IAAAA,QAAAA;GAAU,GAAA,MAAA,CAAA;AAAA,EAAA,OACpBA,QAAQ,GACJC,GAAI,CAAoC,mCAAA,CAAA,GACxCA,GAAI,CAAkC,iCAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACjD,eAAiB,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEJ,IAAAA,SAAAA;GAAW,GAAA,MAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C,iBAAmB,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEA,IAAAA,SAAAA;GAAW,GAAA,MAAA,CAAA;AAAA,EAAA,OAAKA,SAAS,CAAA;AAAA,CAAC,CAAA;AAChD;AACA,EAAC;AAEYK,MAAAA,mBAAmB,GAAGZ,MAAM,CAACa,EAAuB,CAAA;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAwB,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;GAAQ,GAAA,MAAA,CAAA;AAAA,EAAA,OAAKA,MAAM,CAAA;AAAA,CAAC,CAAA;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AAEYC,MAAAA,iBAAiB,GAAGf,MAAM,CAACgB,CAA0B,CAAA;AAClE,EAAI,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,OAAAA;GAAS,GAAA,MAAA,CAAA;EAAA,OACZA,OAAO,GACHN,GAAI,CAAA;AACZ;AACA;AACA;AACA;AACA,QAAA,CAAS,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACX;AACA,EAAI,EAAA,MAAA,IAAA;EAAA,IAAC;AAAEO,IAAAA,UAAAA;GAAY,GAAA,MAAA,CAAA;EAAA,OACfA,UAAU,GACNP,GAAI,CAAA;AACZ;AACA;AACA;AACA;AACA,QAAA,CAAS,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACX,EAAC;AAEYQ,MAAAA,OAAO,GAAGnB,MAAM,CAACC,GAAI,CAAA;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AClLA,SAAS,QAAQ,GAAG;AACpB,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;AAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAChC;AACA,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AACD;AACA,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AACxD,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,YAAY;AACxB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;AACxB;AACA,IAAI,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AAC5C;AACA,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACjD,KAAK,CAAC;AACN;AACA,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjD,IAAI,OAAO,YAAY;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO;AAC1B,MAAM,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtD,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AACF,IAAI,qBAAqB,GAAG,SAAS,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5E,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,YAAY;AACxB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;AACxB;AACA,IAAI,IAAI,QAAQ,GAAG,SAAS,QAAQ,GAAG;AACvC,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChD,IAAI,OAAO,YAAY;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO;AAC1B,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrD,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AACF,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;AACzE,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,YAAY;AACxB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;AACxB;AACA,IAAI,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AAC5C;AACA,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,IAAI,QAAQ,GAAG,KAAK,CAAC;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAChC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5D,UAAU,QAAQ,GAAG,IAAI,CAAC;AAC1B,UAAU,OAAO;AACjB,SAAS;AACT,OAAO,CAAC,CAAC;AACT,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,KAAK,CAAC;AACN;AACA,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtD,IAAI,OAAO,YAAY;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO;AAC1B,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC1D,MAAM,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3D,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE;AACzD,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,CAAC,YAAY;AACxB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;AACxB;AACA,IAAI,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AAC5C;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;AAC/B,QAAQ,IAAI,mBAAmB,CAAC;AAChC;AACA,QAAQ,IAAI,GAAG,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,UAAU,CAAC,OAAO,MAAM,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,sIAAsI,CAAC,CAAC;AACxV,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D;AACA,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,UAAU,KAAK,CAAC,cAAc,EAAE,CAAC;AACjC,UAAU,OAAO;AACjB,SAAS;AACT;AACA,QAAQ,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpE;AACA,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,gBAAgB,EAAE;AAC3E,UAAU,KAAK,CAAC,cAAc,EAAE,CAAC;AACjC,UAAU,eAAe,CAAC,KAAK,EAAE,CAAC;AAClC,SAAS,MAAM,IAAI,QAAQ,CAAC,aAAa,KAAK,eAAe,EAAE;AAC/D,UAAU,KAAK,CAAC,cAAc,EAAE,CAAC;AACjC,UAAU,gBAAgB,CAAC,KAAK,EAAE,CAAC;AACnC,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnD,IAAI,OAAO,YAAY;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO;AAC1B,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACxD,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF,IAAI,yBAAyB,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;AAC5F;AACA,IAAI,KAAK,GAAG;AACZ,EAAE,YAAY,EAAE;AAChB,IAAI,OAAO,EAAE;AACb,MAAM,QAAQ,EAAE,UAAU;AAC1B,MAAM,MAAM,EAAE,GAAG;AACjB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,QAAQ,EAAE,UAAU;AAC1B,MAAM,MAAM,EAAE,MAAM;AACpB,KAAK;AACL,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,MAAM,EAAE,CAAC,CAAC;AACd,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,EAAE;AACb,MAAM,QAAQ,EAAE,OAAO;AACvB,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,MAAM,EAAE,GAAG;AACjB,MAAM,IAAI,EAAE,GAAG;AACf,MAAM,KAAK,EAAE,GAAG;AAChB,MAAM,MAAM,EAAE,GAAG;AACjB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,QAAQ,EAAE,OAAO;AACvB,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,MAAM,EAAE,GAAG;AACjB,MAAM,IAAI,EAAE,GAAG;AACf,MAAM,KAAK,EAAE,GAAG;AAChB,MAAM,OAAO,EAAE,MAAM;AACrB,MAAM,MAAM,EAAE,GAAG;AACjB,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACpM;AACA,IAAI,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ;AAC7G,KAAK,EAAE,IAAI,EAAE;AACb,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7B,EAAE,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjC;AACA,EAAE,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AACnE,EAAE,IAAI,UAAU,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;AACpE,EAAE,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM;AACrC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;AACpC,EAAE,IAAI,GAAG,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;AACnC,EAAE,IAAI,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;AACpC,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACtB,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC;AACvB;AACA,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,KAAK;AACd,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AAC9D,MAAM,SAAS,GAAG,iCAAiC,CAAC;AACpD,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,QAAQ;AACjB,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AAC9D,MAAM,SAAS,GAAG,iDAAiD,CAAC;AACpE,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,MAAM;AACf,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7D,MAAM,SAAS,GAAG,kDAAkD,CAAC;AACrE,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,OAAO;AAChB,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7D,MAAM,SAAS,GAAG,mDAAmD,CAAC;AACtE,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,MAAM;AACZ,GAAG;AACH;AACA,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;AACjB,IAAI,KAAK,KAAK;AACd,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;AAChC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;AACnD,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,QAAQ;AACjB,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AAClE,MAAM,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;AAC5D,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,MAAM;AACf,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;AAClC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AACnD,MAAM,MAAM;AACZ;AACA,IAAI,KAAK,OAAO;AAChB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,GAAG,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;AAClE,MAAM,SAAS,GAAG,KAAK,GAAG,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3D,MAAM,MAAM;AACZ,GAAG;AACH;AACA,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;AAC1D,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AAC9D,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,iBAAiB,EAAE;AACxE;AACA,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,IAAI,EAAE,CAAC;AACX;AACA;AACA,IAAI,KAAK,EAAE,MAAM,CAAC,UAAU;AAC5B;AACA;AACA,IAAI,MAAM,EAAE,MAAM,CAAC,WAAW;AAC9B,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;AAC7C;AACA,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC7D;AACA,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC/C,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,gHAAgH,CAAC,CAAC;AACnL,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;AAC1E,GAAG;AACH;AACA,EAAE,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE;AAChI,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO;AAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,SAAS,EAAE,gBAAgB;AAC/B,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,IAAI,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACzD,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClE;AACA,EAAE,IAAI,iBAAiB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACrG;AACA;AACA;AACA,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;AAC/B,IAAI,UAAU,GAAG,yBAAyB,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAClG,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,OAAO,EAAE,OAAO;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,UAAU,GAAG;AACrB,MAAM,GAAG,EAAE,UAAU,CAAC,GAAG;AACzB,MAAM,IAAI,EAAE,UAAU,CAAC,IAAI;AAC3B,MAAM,KAAK,EAAE,eAAe,CAAC,KAAK;AAClC,MAAM,MAAM,EAAE,eAAe,CAAC,MAAM;AACpC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE;AACxO,MAAM,CAAC,EAAE,CAAC;AACV,KAAK,MAAM;AACX,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB;AACA,IAAI,YAAY,GAAG,SAAS,YAAY,GAAG;AAC3C,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACxD;AACA,EAAE,IAAI,SAAS,KAAK,IAAI,EAAE;AAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC/C,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AACF;AACA,IAAI,KAAK,gBAAgB,UAAU,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE;AACzD,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO;AACjC,MAAM,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,YAAY;AAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;AAC/B,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW;AACpE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;AACjC,MAAM,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY;AACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW;AACzC,MAAM,WAAW,GAAG,gBAAgB,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,gBAAgB;AAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI;AAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,KAAK,CAAC,GAAG,SAAS,GAAG,SAAS;AACzD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;AACnC,MAAM,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,aAAa;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;AAC/B,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,WAAW;AAC3D,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB;AACvD,MAAM,oBAAoB,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,qBAAqB;AAC5F,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB;AACrD,MAAM,kBAAkB,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,qBAAqB;AAC1F,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa;AAC7C,MAAM,aAAa,GAAG,kBAAkB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,kBAAkB;AAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;AACvB,MAAM,EAAE,GAAG,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO;AACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY;AAC3C,MAAM,YAAY,GAAG,iBAAiB,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,iBAAiB;AAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU;AACvC,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,eAAe;AACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY;AAC3C,MAAM,YAAY,GAAG,iBAAiB,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,iBAAiB;AAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS;AACrC,MAAM,SAAS,GAAG,cAAc,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,cAAc;AACjE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;AACnC,MAAM,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,GAAG,eAAe,GAAG,aAAa;AAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;AAC7B,MAAM,KAAK,GAAG,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,UAAU;AACxD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU;AACvC,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,eAAe;AACvE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;AAC7B,MAAM,KAAK,GAAG,UAAU,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,UAAU;AACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;AACjC,MAAM,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY;AAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;AACjC,MAAM,OAAO,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY;AAC1D,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe;AACjD,MAAM,eAAe,GAAG,oBAAoB,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,oBAAoB;AACpF,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe;AACjD,MAAM,eAAe,GAAG,oBAAoB,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,oBAAoB;AACpF,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB;AACpD,MAAM,iBAAiB,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,qBAAqB;AAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B;AACA,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC;AAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/B;AACA,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,IAAI,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE,cAAc,CAAC,CAAC;AACpD,EAAE,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,yBAAyB,CAAC,YAAY;AACxC,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AAC3D,MAAM,WAAW,EAAE,CAAC;AACpB,MAAM,kBAAkB,EAAE,CAAC;AAC3B;AACA,MAAM,WAAW,EAAE,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,WAAW,EAAE,CAAC;AACpB,KAAK;AACL;AACA,IAAI,OAAO,YAAY;AACvB,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpC,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;AACA,EAAE,SAAS,CAAC,YAAY;AACxB,IAAI,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;AACnC,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvB;AACA,EAAE,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,KAAK,EAAE;AAC5C,IAAI,IAAI,MAAM,IAAI,QAAQ,EAAE,OAAO;AACnC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB,IAAI,UAAU,CAAC,YAAY;AAC3B,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAK,EAAE,CAAC,CAAC,CAAC;AACV,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;AAC9C,IAAI,IAAI,qBAAqB,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,OAAO;AACpC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACrB,IAAI,IAAI,OAAO,EAAE,CAAC,qBAAqB,GAAG,mBAAmB,CAAC,OAAO,MAAM,IAAI,IAAI,qBAAqB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAC7J,IAAI,UAAU,CAAC,YAAY;AAC3B,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5B,KAAK,EAAE,CAAC,CAAC,CAAC;AACV,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAChD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;AAC1E,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;AACzD,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE;AAClD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY;AAC7C,MAAM,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK,EAAE,eAAe,CAAC,CAAC;AACxB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AACpD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;AACzE,IAAI,WAAW,EAAE,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE;AAClD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY;AAC7C,MAAM,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAK,EAAE,eAAe,CAAC,CAAC;AACxB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC3C,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClG,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC3C,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;AAChG,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,kBAAkB,GAAG,SAAS,kBAAkB,GAAG;AACzD,IAAI,IAAI,mBAAmB,CAAC;AAC5B;AACA,IAAI,IAAI,YAAY,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,UAAU,CAAC,OAAO,MAAM,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,sIAAsI,CAAC,CAAC;AAC7V,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AACtE,GAAG,CAAC;AACJ;AACA,EAAE,mBAAmB,CAAC,GAAG,EAAE,YAAY;AACvC,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,SAAS,IAAI,GAAG;AAC5B,QAAQ,SAAS,EAAE,CAAC;AACpB,OAAO;AACP,MAAM,KAAK,EAAE,SAAS,KAAK,GAAG;AAC9B,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO;AACP,MAAM,MAAM,EAAE,SAAS,MAAM,GAAG;AAChC,QAAQ,WAAW,EAAE,CAAC;AACtB,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC3C,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO;AACnC,IAAI,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO;AAChQ;AACA,IAAI,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC7D,IAAI,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC7D,IAAI,IAAI,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACrE,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,OAAO,EAAE,OAAO;AACtB,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC1B,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AACrE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AACvE;AACA,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,MAAM,IAAI,eAAe,EAAE,gBAAgB,CAAC;AAC5C;AACA,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACzD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3E,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/E,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,MAAM,IAAI,IAAI,eAAe,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC;AACvK,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,gBAAgB,GAAG,UAAU,CAAC,IAAI,MAAM,IAAI,IAAI,gBAAgB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;AAC7K,KAAK;AACL,GAAG,CAAC;AACJ;AACA;AACA,EAAE,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzC;AACA,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC;AAC5C,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AACzD,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,oBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC;AACtH;AACA;AACA,EAAE,IAAI,aAAa,GAAG,SAAS,aAAa,GAAG;AAC/C,IAAI,IAAI,YAAY,GAAG;AACvB,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,GAAG,EAAE,UAAU;AACrB,MAAM,kBAAkB,EAAE,OAAO,CAAC,OAAO;AACzC,KAAK,CAAC;AACN,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAClD;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC1D,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC;AAC1B,QAAQ,KAAK,OAAO;AACpB,UAAU,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;AAC7C,UAAU,MAAM;AAChB;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;AACrD,UAAU,MAAM;AAChB;AACA,QAAQ,KAAK,OAAO;AACpB,UAAU,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;AACnD,UAAU,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;AACnD,UAAU,MAAM;AAChB;AACA,QAAQ,KAAK,OAAO;AACpB,UAAU,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC;AAC9C,UAAU,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC;AAC7C,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,MAAM,OAAO,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACjE,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAClE,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,GAAG,SAAS,eAAe,GAAG;AACnD,IAAI,IAAI,iBAAiB,GAAG,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;AAC5F,IAAI,IAAI,oBAAoB,GAAG;AAC/B,MAAM,SAAS,EAAE,gBAAgB,IAAI,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC9F,QAAQ,OAAO,CAAC,GAAG,UAAU,CAAC;AAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;AAC3D,QAAQ,aAAa,EAAE,MAAM;AAC7B,OAAO,CAAC;AACR,MAAM,GAAG,EAAE,UAAU;AACrB,MAAM,OAAO,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE;AACnC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;AAC5B,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,oBAAoB,CAAC,YAAY,GAAG,YAAY,CAAC;AACvD,MAAM,oBAAoB,CAAC,YAAY,GAAG,YAAY,CAAC;AACvD,KAAK;AACL;AACA,IAAI,OAAO,oBAAoB,CAAC;AAChC,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,aAAa,GAAG,SAAS,aAAa,GAAG;AAC/C,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE;AAC3E,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS;AAC1C,MAAM,EAAE,EAAE,OAAO,CAAC,OAAO;AACzB,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACxD,MAAM,GAAG,EAAE,QAAQ;AACnB,MAAM,KAAK,EAAE,KAAK,CAAC,UAAU;AAC7B,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAClC,MAAM,aAAa,EAAE,OAAO;AAC5B,MAAM,SAAS,EAAE,cAAc,IAAI,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC5F,QAAQ,OAAO,CAAC,GAAG,QAAQ,CAAC;AAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,OAAO,EAAE,WAAW;AAC1B,MAAM,KAAK,EAAE,QAAQ,CAAC;AACtB,QAAQ,QAAQ,EAAE,UAAU;AAC5B,OAAO,EAAE,UAAU,CAAC;AACpB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,MAAM,CAAC,EAAE,gBAAgB;AACzB,MAAM,IAAI,EAAE,cAAc;AAC1B,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;AAChG,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,EAAE,IAAI,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AACtE,EAAE,IAAI,OAAO,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACvD,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,aAAa,EAAE,SAAS;AAC5B,IAAI,YAAY,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;AAC/C,IAAI,SAAS,EAAE,gBAAgB,IAAI,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC5F,MAAM,OAAO,CAAC,GAAG,UAAU,CAAC;AAC5B,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AAC/C,MAAM,aAAa,EAAE,oBAAoB,IAAI,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM;AAChF,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,oBAAoB,IAAI,MAAM,GAAG,UAAU,GAAG,SAAS;AACpE,IAAI,QAAQ,EAAE,CAAC,CAAC;AAChB,GAAG,EAAE,OAAO,IAAI,aAAa,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC,CAAC;AAC/D,EAAE,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAC9H,CAAC,CAAC;;;ACzmBF,MAAMmB,gBAAc,GAAG,oBAAoB,CAAA;AAC3C,MAAMC,WAAS,GAAG,sBAAsB,CAAA;AACxC,MAAMC,eAAwC,GAAG,EAAE,CAAA;AAE5C,MAAMC,WAAgD,gBAAGC,UAAU,CACxE,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,MAAM;MACJC,KAAK;MACLC,IAAI;MACJC,KAAK;MACLC,OAAO;MACPC,IAAI;MACJ9C,MAAM;MACN+C,WAAW;MACXC,cAAc;MACdC,gBAAgB;AAChB7D,MAAAA,OAAAA;AAEF,KAAC,GAAGoD,KAAK;AADJU,IAAAA,cAAc,4BACfV,KAAK,EAAAW,WAAA,CAAA,CAAA;EACT,MAAMC,GAAG,gBACP,KAAA,CAAA,aAAA,CAAC,iBAAiB,EAAAC,UAAA,CAAA;AAChB,IAAA,GAAG,EAAEZ,GAAAA;AAAW,GAAA,EACZS,cAAc,EAAA;AAClB,IAAA,IAAI,EAAEL,OAAO,GAAG,QAAQ,GAAGS,SAAU;IACrC,SAAS,EAAG,CAAaV,WAAAA,EAAAA,KAAM,CAAE,CAAA;AACjC,IAAA,OAAO,EAAEC,OAAQ;AACjB,IAAA,UAAU,EAAEU,OAAO,CAACV,OAAO,CAAE;IAC7B,OAAO,EAAEU,OAAO,CAACvD,MAAM,CAAA;GAEvB,CAAA,eAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAE8C,IAAK;AAAC,IAAA,IAAI,EAAEJ,KAAAA;AAAM,GAAA,CAAG,EAC7B,CAACK,WAAW,IAAI,CAAC3D,OAAO,iBACvB,KAAS,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EAAA,CAAA,EAAEuD,IAAI,CAACa,IAAK,CAAIb,EAAAA,EAAAA,IAAI,CAAC/B,KAAM,CAAA,CAAC,CACtC,CAEJ,CAAA;AAED,EAAA,IAAImC,WAAW,EAAE;AACf,IAAA,MAAMU,YAAY,GAChBT,cAAc,KAAK,IAAI,GAAI,CAAEA,EAAAA,cAAe,CAAE,CAAA,CAAA,GAAGL,IAAI,CAAC/B,KAAK,CAAA;AAC7D,IAAA,oBACE,oBAAC,KAAK,EAAA;AAAC,MAAA,EAAE,EAAC,OAAO;AAAC,MAAA,KAAK,EAAE,KAAM;AAAC,MAAA,QAAQ,EAAC,cAAc;AAAC,MAAA,OAAO,EAAEwC,GAAAA;AAAI,KAAA,eACnE,oBAAC,OAAO,EAAA,IAAA,EACJ,CAAET,EAAAA,IAAI,CAACa,IAAK,CAAA,EAAEP,gBAAgB,GAAG,EAAE,GAAI,CAAA,GAAA,EAAKQ,YAAa,CAAE,CAAA,CAAA,CAAC,CACtD,CACJ,CAAA;AAEZ,GAAA;AAEA,EAAA,OAAOL,GAAG,CAAA;AACZ,CAAC,CACF,CAAA;AACDd,WAAW,CAACoB,SAAS,GAAGtB,WAAS,CAAA;AACjCE,WAAW,CAACqB,YAAY,GAAGtB,eAAa,CAAA;AACxCC,WAAW,CAACsB,WAAW,GAAGzB,gBAAc;;;ACpCxC,MAAMA,cAAc,GAAG,iBAAiB,CAAA;AACxC,MAAMC,SAAS,GAAG,kBAAkB,CAAA;AACpC,MAAMC,aAAqC,GAAG;EAC5CwB,YAAY,EAAE1D,oBAAoB,CAACC,IAAI;AACvC0D,EAAAA,MAAM,EAAE,IAAI;EACZC,IAAI,EAAErE,YAAY,CAACE,MAAM;EACzBT,KAAK,EAAEsB,aAAa,CAACpC,OAAO;EAC5B2F,OAAO,EAAElE,eAAe,CAACC,KAAK;EAC9BkE,cAAc,EAAEvD,sBAAsB,CAACE,KAAK;AAC5CsD,EAAAA,UAAU,EAAE;AACVC,IAAAA,cAAc,EAAE,SAAA;AAClB,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,eAAe,GAAIL,IAAkB,IAAsB;AAC/D,EAAA,QAAQA,IAAI;IACV,KAAKrE,YAAY,CAACC,KAAK;MACrB,OAAO;AAAE0E,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAA;OAAK,CAAA;IACpC,KAAK5E,YAAY,CAACG,KAAK;MACrB,OAAO;AAAEwE,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAA;OAAK,CAAA;IACpC,KAAK5E,YAAY,CAACE,MAAM,CAAA;AACxB,IAAA;MACE,OAAO;AAAEyE,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAA;OAAK,CAAA;AAAC,GAAA;AAEzC,CAAC,CAAA;AAED,MAAMC,mBAAmB,GAAIR,IAA8B,IAAa;AACtE,EAAA,QAAQA,IAAI;IACV,KAAKrE,YAAY,CAACC,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKD,YAAY,CAACG,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKH,YAAY,CAACE,MAAM,CAAA;AACxB,IAAA;AACE,MAAA,OAAO,EAAE,CAAA;AAAC,GAAA;AAEhB,CAAC,CAAA;AAED,MAAM4E,cAAc,GAAIT,IAA8B,IAAa;AACjE,EAAA,QAAQA,IAAI;IACV,KAAKrE,YAAY,CAACC,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKD,YAAY,CAACG,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKH,YAAY,CAACE,MAAM,CAAA;AACxB,IAAA;AACE,MAAA,OAAO,EAAE,CAAA;AAAC,GAAA;AAEhB,CAAC,CAAA;AAED,MAAM6E,iBAAiB,GAAIV,IAAkB,IAAa;AACxD,EAAA,QAAQA,IAAI;IACV,KAAKrE,YAAY,CAACC,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKD,YAAY,CAACG,KAAK;AACrB,MAAA,OAAO,EAAE,CAAA;IACX,KAAKH,YAAY,CAACE,MAAM,CAAA;AACxB,IAAA;AACE,MAAA,OAAO,EAAE,CAAA;AAAC,GAAA;AAEhB,CAAC,CAAA;AAEM,MAAM8E,QAA6C,gBAAGnC,UAAU,CACrE,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,MAAMkC,EAAE,GAAGC,KAAK,EAAE,CAAA;EAElB,MAAM;AACJ,MAAA,YAAY,EAAEC,SAAS;AACvB,MAAA,iBAAiB,EAAEC,cAAc;MACjCC,MAAM;MACNC,OAAO;MACPtB,SAAS;AACTf,MAAAA,IAAI,EAAEsC,QAAQ;MACdpB,YAAY;MACZqB,YAAY;MACZpB,MAAM;MACNC,IAAI;MACJoB,IAAI;MACJC,UAAU;MACVC,OAAO;MACPlG,KAAK;MACLmG,KAAK;MACLtB,OAAO;MACPC,cAAc;AACdC,MAAAA,UAAAA;AAEF,KAAC,GAAG1B,KAAK;AADJU,IAAAA,cAAc,4BACfV,KAAK,EAAA,SAAA,CAAA,CAAA;EACT,MAAM;AAAE2B,IAAAA,cAAAA;AAAe,GAAC,qCACnB9B,aAAa,CAAC6B,UAAU,CAAA,EACxBA,UAAU,CACd,CAAA;AACD,EAAA,MAAM9E,OAAO,GAAG6F,QAAQ,CAACM,KAAK,CAAEC,CAAC,IAAKA,CAAC,CAAC5E,KAAK,KAAK,CAAC,CAAC,CAAA;AACpD,EAAA,MAAM6E,OAAO,GACXzB,OAAO,KAAKlE,eAAe,CAACG,KAAK,IACjC+D,OAAO,KAAKlE,eAAe,CAACI,WAAW,CAAA;EACzC,IAAIyC,IAAI,GAAGsC,QAAQ,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAAC/E,KAAK,GAAGgF,CAAC,CAAChF,KAAK,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,CAAA;AAChE,EAAA,IAAImE,MAAM,EAAE;AACV,IAAA,IAAI,OAAOjB,MAAM,KAAK,SAAS,IAAI,CAACA,MAAM,EAAE;MAC1CnB,IAAI,GAAGA,IAAI,CAACkD,KAAK,CAAC,CAAC,EAAEd,MAAM,CAAC,CAAA;AAC9B,KAAC,MAAM;MACLpC,IAAI,GAAGA,IAAI,CAACmD,MAAM,CAAU,CAACC,GAAG,EAAEC,IAAI,EAAEpD,KAAK,KAAK;QAChD,IAAIA,KAAK,GAAGmC,MAAM,EAAE;AAClBgB,UAAAA,GAAG,CAACnD,KAAK,CAAC,GAAGoD,IAAI,CAAA;AACnB,SAAC,MAAM,IAAIpD,KAAK,KAAKmC,MAAM,EAAE;UAC3BgB,GAAG,CAACnD,KAAK,CAAC,GAAG;YACXY,IAAI,EAAE,OAAOM,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,QAAQ;YACpDlD,KAAK,EAAEoF,IAAI,CAACpF,KAAAA;WACb,CAAA;AACH,SAAC,MAAM;AACLmF,UAAAA,GAAG,CAAChB,MAAM,CAAC,qCACNgB,GAAG,CAAChB,MAAM,CAAC,CAAA,EAAA,EAAA,EAAA;YACdnE,KAAK,EAAEmF,GAAG,CAAChB,MAAM,CAAC,CAACnE,KAAK,GAAGoF,IAAI,CAACpF,KAAAA;WACjC,CAAA,CAAA;AACH,SAAA;AACA,QAAA,OAAOmF,GAAG,CAAA;OACX,EAAE,EAAE,CAAC,CAAA;AACR,KAAA;AACF,GAAA;AACA,EAAA,IAAI3G,OAAO,EAAE;AACXuD,IAAAA,IAAI,GAAG,CACL;AACEa,MAAAA,IAAI,EAAEW,cAAwB;AAC9BvD,MAAAA,KAAK,EAAE,GAAA;AACT,KAAC,CACF,CAAA;AACH,GAAA;;AAEA;AACA,EAAA,MAAMqF,eAAe,GAAG7B,eAAe,CAACL,IAAI,CAAE,CAAA;EAC9C,MAAMmC,qBAAqB,GAAG,CAAC,CAAA;AAC/B,EAAA,MAAMC,WAAW,GAAG1B,iBAAiB,CAACV,IAAI,CAAE,CAAA;;AAE5C;AACA,EAAA,MAAM1E,QAAQ,GAAGH,aAAa,CAACC,KAAK,EAAGC,OAAO,CAAC,CAAA;;AAE/C;AACA,EAAA,MAAMgH,SAAS,GAAGC,GAAK,EAAS,CAC7BzF,KAAK,CAAE4E,CAAC,IAAKA,CAAC,CAAC5E,KAAK,CAAC,CACrB8E,IAAI,CAAC,IAAI,CAAC,CAAA;EACb,MAAMY,SAAS,GAAGC,GAAK,EAAe,CACnCJ,WAAW,CAACV,OAAO,GAAGU,WAAW,GAAG,CAAC,CAAC,CACtCK,WAAW,CAACP,eAAe,CAAC5B,KAAK,GAAG,CAAC,GAAG6B,qBAAqB,CAAC,CAAA;AACjE,EAAA,MAAMO,OAAO,GAAGL,SAAS,CAACzD,IAAI,CAAC,CAAA;EAC/B,MAAM+D,KAAK,GAAGC,GAAK,CAAChE,IAAI,EAAG6C,CAAC,IAAKA,CAAC,CAAC5E,KAAK,CAAC,CAAA;AACzC,EAAA,oBACE,oBAAC,cAAc,EAAAyC,UAAA,CAAA;AACb,IAAA,GAAG,EAAEZ,GAAAA;AAAW,GAAA,EACZS,cAAc,EAAA;AAClB,IAAA,SAAS,EAAEQ,SAAAA;GAEV4B,CAAAA,EAAAA,KAAK,gBACJ,KAAA,CAAA,aAAA,CAAC,mBAAmB,EAAA;AAClB,IAAA,SAAS,EAAG,CAAA,EAAEZ,QAAQ,CAAChB,SAAU,CAAS,OAAA,CAAA;IAC1C,EAAE,EAAG,KAAIiB,EAAG,CAAA,OAAA,CAAA;AAAS,GAAA,EAEpBW,KAAK,CACc,GACpB,IAAI,eACR,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAG,CAAA,EAAEZ,QAAQ,CAAChB,SAAU,CAAA,WAAA,CAAA;GACpC,eAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,SAAS,EAAG,CAAA,EAAEgB,QAAQ,CAAChB,SAAU,CAAmB,iBAAA,CAAA;IACpD,YACEmB,EAAAA,SAAS,GACLA,SAAS,GACTC,cAAc,IAAIQ,KAAK,GACvBhC,SAAS,GACT,WACL;IACD,iBACEwB,EAAAA,cAAc,GACVA,cAAc,GACdQ,KAAK,GACJ,CAAA,EAAA,EAAIX,EAAG,CAAA,OAAA,CAAQ,GAChBrB,SAAAA;AACL,GAAA,EAEA6B,IAAI,IAAI,CAAC/F,OAAO,gBACf,oBAAC,wBAAwB,EAAA;IACvB,SAAS,EAAE+G,WAAW,GAAG,CAAE;AAC3B,IAAA,SAAS,EAAE3B,cAAc,CAACT,IAAI,CAAE;IAChC,cAAc,EAAEQ,mBAAmB,CAACR,IAAI,CAAA;AAAE,GAAA,EAEzCsB,OAAO,gBAAG,KAAIF,CAAAA,aAAAA,CAAAA,GAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAAK,gBAAG,KAAOA,CAAAA,aAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAAQ,EAC7CC,UAAU,gBAAG,KAAIA,CAAAA,aAAAA,CAAAA,GAAAA,EAAAA,IAAAA,EAAAA,UAAU,CAAK,GAAG,IAAI,eACxC,KAAOC,CAAAA,aAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA,OAAO,CAAQ,CACG,GACzB,IAAI,EACPjG,OAAO,gBACN,KAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA;IACtB,SAAS,EAAE+G,WAAW,GAAG,CAAE;AAC3B,IAAA,SAAS,EAAE3B,cAAc,CAACT,IAAI,CAAC,GAAG,CAAE;AACpC,IAAA,QAAQ,EAAE0B,OAAAA;AAAQ,GAAA,eAElB,kCAAOtB,cAAc,CAAQ,CACL,GACxB,IAAI,eACR,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;IAAK,KAAK,EAAE8B,eAAe,CAAC5B,KAAM;IAAC,MAAM,EAAE4B,eAAe,CAAC3B,MAAAA;GACzD,eAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AACE,IAAA,SAAS,EAAG,CAAA,UAAA,EAAY2B,eAAe,CAAC5B,KAAK,GAAG,CAAE,CAAA,CAAA,EAChD4B,eAAe,CAAC3B,MAAM,GAAG,CAC1B,CAAA,CAAA,CAAA;GAED,eAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAG,IAAA,SAAS,EAAC,iBAAA;GACVmC,EAAAA,OAAO,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEjE,KAAK,KAAK;AAC7B,IAAA,MAAM/B,OAAO,GAAG,CAAEgG,KAAK,CAAClE,IAAI,CAAC/B,KAAK,GAAG8F,KAAK,GAAI,GAAG,EAAEI,OAAO,CACxD,CAAC,CACF,CAAA;AACD,IAAA,oBACE,oBAAC,WAAW,EAAA;MACV,KAAK,EAAEzH,QAAQ,CAACwH,KAAK,CAAClE,IAAI,CAACa,IAAI,CAAE;MACjC,IAAI,EAAEqD,KAAK,CAAClE,IAAK;AACjB,MAAA,OAAO,EAAEvD,OAAQ;AACjB,MAAA,KAAK,EAAEwD,KAAM;MACb,GAAG,EAAG,CAAaA,WAAAA,EAAAA,KAAM,CAAE,CAAA;AAC3B,MAAA,OAAO,EACLsC,YAAY,GACR,MAAMA,YAAY,CAACvC,IAAI,CAACC,KAAK,CAAC,CAAC,GAC/BU,SACL;MACD,WAAW,EACTW,cAAc,KAAKvD,sBAAsB,CAACN,IAAI,IAC9C,CAAChB,OACF;AACD,MAAA,gBAAgB,EACd6E,cAAc,IAAIvD,sBAAsB,CAACC,KAC1C;MACD,cAAc,EACZsD,cAAc,KAAKvD,sBAAsB,CAACG,OAAO,GAC7CA,OAAO,GACP,IACL;AACD,MAAA,IAAI,EAAEyF,SAAS,CAACO,KAAK,CAAY;MACjC,MAAM,EACJ7C,OAAO,KAAKlE,eAAe,CAACE,MAAM,IAClCgE,OAAO,KAAKlE,eAAe,CAACI,WAAAA;KAE9B,CAAA,CAAA;GAEL,CAAC,CACA,EACH2D,YAAY,KAAK1D,oBAAoB,CAACE,QAAQ,gBAC7C,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAG,IAAA,SAAS,EAAC,iBAAA;GACVoG,EAAAA,OAAO,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEjE,KAAK,kBACxB,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;IACE,SAAS,EAAG,CAAuBA,qBAAAA,EAAAA,KAAM,CAAE,CAAA;IAC3C,GAAG,EAAG,CAAuBA,qBAAAA,EAAAA,KAAM,CAAE,CAAA;AACrC,IAAA,UAAU,EAAC,QAAQ;AACnB,IAAA,SAAS,EAAG,CAAY0D,UAAAA,EAAAA,SAAS,CAACS,QAAQ,CAACF,KAAK,CAAE,CAAA,CAAA,CAAA;AAAG,GAAA,EAEpDjE,KAAK,GAAG,CAAC,IAAImC,MAAM,GAAG8B,KAAK,CAAClE,IAAI,CAACa,IAAI,GAAG,IAAI,CAEhD,CAAC,CACA,GACF,IAAI,CACN,CACA,CACF,EACLK,YAAY,KAAK1D,oBAAoB,CAACC,IAAI,IAC3CyD,YAAY,KAAK1D,oBAAoB,CAACE,QAAQ,gBAC5C,KACGsC,CAAAA,aAAAA,CAAAA,IAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAACiE,GAAG,CAAC,OAAyBhE,KAAK,KAAA;IAAA,IAA7B;MAAEY,IAAI;AAAE5C,MAAAA,KAAAA;KAAc,GAAA,IAAA,CAAA;AAAA,IAAA,oBAC/B,oBAAC,mBAAmB,EAAA;MAClB,GAAG,EAAG,CAAsBgC,oBAAAA,EAAAA,KAAM,CAAE,CAAA;MACpC,MAAM,EAAEvD,QAAQ,CAACmE,IAAI,CAAA;AAAE,KAAA,eAEvB,gCAAO,EACNK,YAAY,KAAK1D,oBAAoB,CAACI,kBAAkB,gBACvD,KAAIK,CAAAA,aAAAA,CAAAA,GAAAA,EAAAA,IAAAA,EAAAA,KAAK,CAAK,GACZiD,YAAY,KACd1D,oBAAoB,CAACK,oBAAoB,gBACzC,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EAAK,CAAE,EAAA,CAAEI,KAAK,GAAG,GAAG,GAAI8F,KAAK,EAAEI,OAAO,CAAC,CAAC,CAAE,CAAA,CAAA,CAAE,CAAK,GAC/C,IAAI,eACR,KAAOtD,CAAAA,aAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAAQ,CACC,CAAA;GACvB,CAAC,CACC,GACH,IAAI,CACJ,EACLwB,OAAO,gBACN,KAAA,CAAA,aAAA,CAAC,qBAAqB,EAAA;AAAC,IAAA,SAAS,EAAG,CAAA,EAAEN,QAAQ,CAAChB,SAAU,CAAA,SAAA,CAAA;AAAW,GAAA,EAChEsB,OAAO,CACc,GACtB,IAAI,CACO,CAAA;AAErB,CAAC,EACF;AACDN,QAAQ,CAAChB,SAAS,GAAGtB,SAAS,CAAA;AAC9BsC,QAAQ,CAACf,YAAY,GAAGtB,aAAa,CAAA;AACrCqC,QAAQ,CAACd,WAAW,GAAGzB,cAAc;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/scheme.ts","../src/components/PieChart/types.ts","../src/components/PieChart/styles.ts","../../../node_modules/reactjs-popup/dist/reactjs-popup.esm.js","../src/components/PieChart/PieChartArc.tsx","../src/components/PieChart/PieChart.tsx"],"sourcesContent":["import { PieArcDatum as D3PieArcDatum } from 'd3-shape';\nimport { ValueOf } from '~/types';\n\nexport type ChartDimensions = {\n width: number;\n height: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n};\n\nexport type Datum = {\n name: string;\n value: number;\n};\n\nexport type PieArcDatum = D3PieArcDatum<Datum>;\n\nexport const ColorTheme = {\n default: 'default',\n dark: 'dark',\n darker: 'darker',\n monochrome: 'monochrome',\n} as const;\nexport type ColorTheme = ValueOf<typeof ColorTheme>;\n\nexport type SuccessDangerColorTheme = {\n success: string;\n warning: string;\n danger: string;\n neutral?: string;\n};\n","import {\n scaleOrdinal as d3scaleOrdinal,\n ScaleOrdinal as d3ScaleOrdinal,\n} from 'd3';\nimport { ColorTheme, SuccessDangerColorTheme } from './types';\n\nexport const monochrome = '#B6DAEE';\n\nexport const scheme = {\n default: [\n '#C1AAEA',\n '#B6DAEE',\n '#B3E3C5',\n '#EAADAC',\n '#E2A7D7',\n '#AFF5F3',\n '#F2D39E',\n '#F6EFC7',\n '#E6C2A0',\n '#E5E5E5',\n ],\n dark: [\n '#A78ADB',\n '#97C5DE',\n '#90D2A9',\n '#D18785',\n '#D185C3',\n '#8CEAE6',\n '#D8B475',\n '#DED4A0',\n '#CDA279',\n '#BDBDBD',\n ],\n darker: [\n '#8D6CC9',\n '#73ADCC',\n '#6DBE8B',\n '#BA6361',\n '#BD63AC',\n '#6CDCD8',\n '#BD954F',\n '#C6BB7A',\n '#B58556',\n '#666666',\n ],\n light: [\n '#D9CAF5',\n '#D8EDF8',\n '#D3F0DE',\n '#FFD3D2',\n '#EFC8E8',\n '#D4FCFA',\n '#FFE8C0',\n '#FFFBE1',\n '#FFE3C9',\n '#F5F5F5',\n ],\n lighter: [\n '#F0E9FC',\n '#F6FBFE',\n '#EDFAF1',\n '#FFE5E5',\n '#F9E6F6',\n '#E1FFFF',\n '#FFF0D7',\n '#FFFDF0',\n '#FFEEDE',\n '#FFFFFF',\n ],\n monochrome: [monochrome],\n empty: ['#BDBDBD'],\n};\n\nexport const successDangerScheme = {\n success: '#90D2A9',\n warning: '#D8B475',\n danger: '#D18785',\n neutral: '#BDBDBD',\n};\n\nexport const getColorScale = (\n theme: ColorTheme | SuccessDangerColorTheme,\n isEmpty?: boolean\n): d3ScaleOrdinal<string, string> => {\n let d3colors = d3scaleOrdinal(scheme.default);\n if (isEmpty) {\n d3colors = d3scaleOrdinal(scheme.empty);\n } else if (typeof theme === 'string') {\n d3colors = d3scaleOrdinal(scheme[theme]);\n } else if (typeof theme === 'object') {\n d3colors = d3scaleOrdinal()\n .domain([\n theme.success,\n theme.warning,\n theme.danger,\n ...(theme.neutral ? [theme.neutral] : []),\n ])\n .range([\n successDangerScheme.success,\n successDangerScheme.warning,\n successDangerScheme.danger,\n ...(theme.neutral ? [successDangerScheme.neutral] : []),\n ])\n .unknown(monochrome) as any;\n }\n\n return d3colors;\n};\n","import { ColorTheme, Datum, SuccessDangerColorTheme } from '../../types';\nimport { ComponentProps } from 'react';\nimport { ValueOf } from '@redsift/design-system';\n\n/**\n * Component size.\n */\nexport const PieChartSize = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n} as const;\nexport type PieChartSize = ValueOf<typeof PieChartSize>;\n\n/**\n * Component variant.\n */\nexport const PieChartVariant = {\n plain: 'plain',\n spaced: 'spaced',\n donut: 'donut',\n spacedDonut: 'spacedDonut',\n} as const;\nexport type PieChartVariant = ValueOf<typeof PieChartVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const PieChartLabelVariant = {\n none: 'none',\n internal: 'internal',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n} as const;\nexport type PieChartLabelVariant = ValueOf<typeof PieChartLabelVariant>;\n\n/**\n * Component theme.\n */\nexport const PieChartTheme = ColorTheme;\nexport type PieChartTheme = ValueOf<typeof PieChartTheme>;\n\n/**\n * Tooltip label variant.\n */\nexport const PieChartTooltipVariant = {\n none: 'none',\n label: 'label',\n value: 'value',\n percent: 'percent',\n};\nexport type PieChartTooltipVariant = ValueOf<typeof PieChartTooltipVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\n/**\n * Component props.\n */\nexport interface PieChartProps extends ComponentProps<'div'> {\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Caption. */\n caption?: string;\n /** Dataset to use to generate the chart, should be a list of objects containing a name and a value. */\n data: Datum[];\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. */\n labelVariant?: PieChartLabelVariant;\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method to be called on a click on a slice. */\n onSliceClick?: (data: Datum) => void;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n /** PieChart size. */\n size?: PieChartSize;\n /** Secondary text to be displayed in the middle of the chart, between the main text and subtext. Recommended to be used with donut variants only. */\n middleText?: string;\n /** Secondary text to be displayed in the middle of the chart, above the main text. Recommended to be used with `donut` variants only. */\n subtext?: string;\n /** Main text to be displayed in the middle of the chart. Recommended to be used with `donut` variants only. */\n text?: string;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: PieChartTheme | SuccessDangerColorTheme;\n /** Title. */\n title?: string;\n /** PieChart variant. */\n variant?: PieChartVariant;\n /** Tooltip variant. */\n tooltipVariant?: PieChartTooltipVariant;\n}\n\nexport type StyledPieChartProps = Omit<PieChartProps, 'data'> & {};\n\nexport interface PieChartArcProps extends ComponentProps<'g'> {\n color: string;\n data: Datum;\n index: number;\n onClick?: () => void;\n path: string;\n spaced?: boolean;\n showTooltip: boolean;\n tooltipPercent: string | null;\n tooltipLabelOnly: boolean;\n isEmpty: boolean;\n}\n\nexport type StyledPieChartArcProps = Omit<\n PieChartArcProps,\n | 'color'\n | 'data'\n | 'index'\n | 'path'\n | 'spaced'\n | 'showTooltip'\n | 'tooltipPercent'\n | 'tooltipLabelOnly'\n | 'isEmpty'\n> & {\n $spaced: boolean;\n $clickable: boolean;\n};\n","import styled, { css } from 'styled-components';\nimport { StyledPieChartProps, StyledPieChartArcProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledPieChart = styled.div<StyledPieChartProps>`\n margin: 8px;\n padding: 8px;\n color: var(--redsift-color-neutral-black);\n\n .redsift-piechart__container {\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 11px;\n justify-content: center;\n margin: 8px 0;\n\n .redsift-piechart-container__chart {\n position: relative;\n }\n }\n svg {\n display: block;\n }\n`;\n\nexport const StyledPieChartTitle = styled.div<StyledPieChartProps>`\n font-family: var(--redsift-typography-h4-font-family);\n font-size: var(--redsift-typography-h4-font-size);\n font-weight: var(--redsift-typography-h4-font-weight);\n line-height: var(--redsift-typography-h4-line-height);\n`;\n\nexport const StyledPieChartCaption = styled.p<StyledPieChartProps>`\n font-family: var(--redsift-typography-caption-font-family);\n font-size: var(--redsift-typography-caption-font-size);\n font-weight: var(--redsift-typography-caption-font-weight);\n line-height: var(--redsift-typography-caption-line-height);\n`;\n\nexport const StyledPieChartCenterText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $smallTextSize: number;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > b {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n color: var(--redsift-color-neutral-black);\n font-weight: var(--redsift-typography-font-weight-medium);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n\n &:nth-child(2) {\n font-weight: normal;\n margin-top: 8px;\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > span {\n color: var(--redsift-color-neutral-black);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n &:nth-child(3) {\n margin-top: 4px;\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > b + span {\n font-size: var(--redsift-typography-body-font-size);\n font-family: var(--redsift-typography-font-family-raleway);\n line-height: var(--redsift-typography-badge-line-height);\n color: rgba(0, 0, 0, 0.6);\n text-align: center;\n }\n`;\n\nexport const StyledPieChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $isDonut: boolean;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-raleway);\n color: ${({ $isDonut }) =>\n $isDonut\n ? css`var(--redsift-color-neutral-midgrey)`\n : css`var(--redsift-color-neutral-black)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n\nexport const StyledPieChartLabel = styled.li<{ $color: string }>`\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n max-width: 262px;\n font-family: var(--redsift-typography-font-family-raleway);\n font-weight: var(--redsift-typography-font-weight-regular);\n font-size: var(--redsift-typography-caption-font-size);\n\n > div {\n height: 16px;\n width: 16px;\n min-width: 16px;\n background-color: ${({ $color }) => $color};\n }\n\n > b {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-weight: var(--redsift-typography-font-weight-bold);\n font-size: var(--redsift-typography-caption-font-size);\n }\n`;\n\nexport const StyledPieChartArc = styled.g<StyledPieChartArcProps>`\n ${({ $spaced }) =>\n $spaced\n ? css`\n path {\n stroke-width: 2px;\n stroke: #fff;\n }\n `\n : ''}\n\n ${({ $clickable }) =>\n $clickable\n ? css`\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `\n : ''}}\n`;\n\nexport const Tooltip = styled.div`\n font-family: var(--redsift-typography-font-family-raleway);\n border: 1px solid rgb(0 0 0 / 20%);\n padding: 10px;\n box-shadow: 0 2px 1px -1px rgb(0 0 0 / 20%), 0 1px 1px 0 rgb(0 0 0 / 14%),\n 0 1px 3px 0 rgb(0 0 0 / 12%);\n background-color: var(--redsift-color-neutral-white);\n`;\n","import React, { useEffect, useLayoutEffect, forwardRef, useState, useRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar useOnEscape = function useOnEscape(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Escape\n if (event.key === 'Escape') handler(event);\n };\n\n document.addEventListener('keyup', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keyup', listener);\n };\n }, [handler, active]);\n};\nvar useRepositionOnResize = function useRepositionOnResize(handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener() {\n handler();\n };\n\n window.addEventListener('resize', listener);\n return function () {\n if (!active) return;\n window.removeEventListener('resize', listener);\n };\n }, [handler, active]);\n};\nvar useOnClickOutside = function useOnClickOutside(ref, handler, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // Do nothing if clicking ref's element or descendent elements\n var refs = Array.isArray(ref) ? ref : [ref];\n var contains = false;\n refs.forEach(function (r) {\n if (!r.current || r.current.contains(event.target)) {\n contains = true;\n return;\n }\n });\n event.stopPropagation();\n if (!contains) handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler, active]);\n}; // Make sure that user is not able TAB out of the Modal content on Open\n\nvar useTabbing = function useTabbing(contentRef, active) {\n if (active === void 0) {\n active = true;\n }\n\n useEffect(function () {\n if (!active) return;\n\n var listener = function listener(event) {\n // check if key is an Tab\n if (event.keyCode === 9) {\n var _contentRef$current;\n\n var els = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var focusableEls = Array.prototype.slice.call(els);\n\n if (focusableEls.length === 1) {\n event.preventDefault();\n return;\n }\n\n var firstFocusableEl = focusableEls[0];\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n if (event.shiftKey && document.activeElement === firstFocusableEl) {\n event.preventDefault();\n lastFocusableEl.focus();\n } else if (document.activeElement === lastFocusableEl) {\n event.preventDefault();\n firstFocusableEl.focus();\n }\n }\n };\n\n document.addEventListener('keydown', listener);\n return function () {\n if (!active) return;\n document.removeEventListener('keydown', listener);\n };\n }, [contentRef, active]);\n};\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar Style = {\n popupContent: {\n tooltip: {\n position: 'absolute',\n zIndex: 999\n },\n modal: {\n position: 'relative',\n margin: 'auto'\n }\n },\n popupArrow: {\n height: '8px',\n width: '16px',\n position: 'absolute',\n background: 'transparent',\n color: '#FFF',\n zIndex: -1\n },\n overlay: {\n tooltip: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n zIndex: 999\n },\n modal: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n display: 'flex',\n zIndex: 999\n }\n }\n};\n\nvar POSITION_TYPES = ['top left', 'top center', 'top right', 'right top', 'right center', 'right bottom', 'bottom left', 'bottom center', 'bottom right', 'left top', 'left center', 'left bottom'];\n\nvar getCoordinatesForPosition = function getCoordinatesForPosition(triggerBounding, ContentBounding, position, //PopupPosition | PopupPosition[],\narrow, _ref) {\n var offsetX = _ref.offsetX,\n offsetY = _ref.offsetY;\n var margin = arrow ? 8 : 0;\n var args = position.split(' '); // the step N 1 : center the popup content => ok\n\n var CenterTop = triggerBounding.top + triggerBounding.height / 2;\n var CenterLeft = triggerBounding.left + triggerBounding.width / 2;\n var height = ContentBounding.height,\n width = ContentBounding.width;\n var top = CenterTop - height / 2;\n var left = CenterLeft - width / 2;\n var transform = '';\n var arrowTop = '0%';\n var arrowLeft = '0%'; // the step N 2 : => ok\n\n switch (args[0]) {\n case 'top':\n top -= height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(180deg) translateX(50%)\";\n arrowTop = '100%';\n arrowLeft = '50%';\n break;\n\n case 'bottom':\n top += height / 2 + triggerBounding.height / 2 + margin;\n transform = \"rotate(0deg) translateY(-100%) translateX(-50%)\";\n arrowLeft = '50%';\n break;\n\n case 'left':\n left -= width / 2 + triggerBounding.width / 2 + margin;\n transform = \" rotate(90deg) translateY(50%) translateX(-25%)\";\n arrowLeft = '100%';\n arrowTop = '50%';\n break;\n\n case 'right':\n left += width / 2 + triggerBounding.width / 2 + margin;\n transform = \"rotate(-90deg) translateY(-150%) translateX(25%)\";\n arrowTop = '50%';\n break;\n }\n\n switch (args[1]) {\n case 'top':\n top = triggerBounding.top;\n arrowTop = triggerBounding.height / 2 + \"px\";\n break;\n\n case 'bottom':\n top = triggerBounding.top - height + triggerBounding.height;\n arrowTop = height - triggerBounding.height / 2 + \"px\";\n break;\n\n case 'left':\n left = triggerBounding.left;\n arrowLeft = triggerBounding.width / 2 + \"px\";\n break;\n\n case 'right':\n left = triggerBounding.left - width + triggerBounding.width;\n arrowLeft = width - triggerBounding.width / 2 + \"px\";\n break;\n }\n\n top = args[0] === 'top' ? top - offsetY : top + offsetY;\n left = args[0] === 'left' ? left - offsetX : left + offsetX;\n return {\n top: top,\n left: left,\n transform: transform,\n arrowLeft: arrowLeft,\n arrowTop: arrowTop\n };\n};\n\nvar getTooltipBoundary = function getTooltipBoundary(keepTooltipInside) {\n // add viewport\n var boundingBox = {\n top: 0,\n left: 0,\n\n /* eslint-disable-next-line no-undef */\n width: window.innerWidth,\n\n /* eslint-disable-next-line no-undef */\n height: window.innerHeight\n };\n\n if (typeof keepTooltipInside === 'string') {\n /* eslint-disable-next-line no-undef */\n var selector = document.querySelector(keepTooltipInside);\n\n if (process.env.NODE_ENV !== 'production') {\n if (selector === null) throw new Error(keepTooltipInside + \" selector does not exist : keepTooltipInside must be a valid html selector 'class' or 'Id' or a boolean value\");\n }\n\n if (selector !== null) boundingBox = selector.getBoundingClientRect();\n }\n\n return boundingBox;\n};\n\nvar calculatePosition = function calculatePosition(triggerBounding, ContentBounding, position, arrow, _ref2, keepTooltipInside) {\n var offsetX = _ref2.offsetX,\n offsetY = _ref2.offsetY;\n var bestCoords = {\n arrowLeft: '0%',\n arrowTop: '0%',\n left: 0,\n top: 0,\n transform: 'rotate(135deg)'\n };\n var i = 0;\n var wrapperBox = getTooltipBoundary(keepTooltipInside);\n var positions = Array.isArray(position) ? position : [position]; // keepTooltipInside would be activated if the keepTooltipInside exist or the position is Array\n\n if (keepTooltipInside || Array.isArray(position)) positions = [].concat(positions, POSITION_TYPES); // add viewPort for WarpperBox\n // wrapperBox.top = wrapperBox.top + window.scrollY;\n // wrapperBox.left = wrapperBox.left + window.scrollX;\n\n while (i < positions.length) {\n bestCoords = getCoordinatesForPosition(triggerBounding, ContentBounding, positions[i], arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n });\n var contentBox = {\n top: bestCoords.top,\n left: bestCoords.left,\n width: ContentBounding.width,\n height: ContentBounding.height\n };\n\n if (contentBox.top <= wrapperBox.top || contentBox.left <= wrapperBox.left || contentBox.top + contentBox.height >= wrapperBox.top + wrapperBox.height || contentBox.left + contentBox.width >= wrapperBox.left + wrapperBox.width) {\n i++;\n } else {\n break;\n }\n }\n\n return bestCoords;\n};\n\nvar popupIdCounter = 0;\n\nvar getRootPopup = function getRootPopup() {\n var PopupRoot = document.getElementById('popup-root');\n\n if (PopupRoot === null) {\n PopupRoot = document.createElement('div');\n PopupRoot.setAttribute('id', 'popup-root');\n document.body.appendChild(PopupRoot);\n }\n\n return PopupRoot;\n};\n\nvar Popup = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var _ref$trigger = _ref.trigger,\n trigger = _ref$trigger === void 0 ? null : _ref$trigger,\n _ref$onOpen = _ref.onOpen,\n onOpen = _ref$onOpen === void 0 ? function () {} : _ref$onOpen,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$defaultOpen = _ref.defaultOpen,\n defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,\n _ref$open = _ref.open,\n open = _ref$open === void 0 ? undefined : _ref$open,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$nested = _ref.nested,\n nested = _ref$nested === void 0 ? false : _ref$nested,\n _ref$closeOnDocumentC = _ref.closeOnDocumentClick,\n closeOnDocumentClick = _ref$closeOnDocumentC === void 0 ? true : _ref$closeOnDocumentC,\n _ref$repositionOnResi = _ref.repositionOnResize,\n repositionOnResize = _ref$repositionOnResi === void 0 ? true : _ref$repositionOnResi,\n _ref$closeOnEscape = _ref.closeOnEscape,\n closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape,\n _ref$on = _ref.on,\n on = _ref$on === void 0 ? ['click'] : _ref$on,\n _ref$contentStyle = _ref.contentStyle,\n contentStyle = _ref$contentStyle === void 0 ? {} : _ref$contentStyle,\n _ref$arrowStyle = _ref.arrowStyle,\n arrowStyle = _ref$arrowStyle === void 0 ? {} : _ref$arrowStyle,\n _ref$overlayStyle = _ref.overlayStyle,\n overlayStyle = _ref$overlayStyle === void 0 ? {} : _ref$overlayStyle,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? 'bottom center' : _ref$position,\n _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? false : _ref$modal,\n _ref$lockScroll = _ref.lockScroll,\n lockScroll = _ref$lockScroll === void 0 ? false : _ref$lockScroll,\n _ref$arrow = _ref.arrow,\n arrow = _ref$arrow === void 0 ? true : _ref$arrow,\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY,\n _ref$mouseEnterDelay = _ref.mouseEnterDelay,\n mouseEnterDelay = _ref$mouseEnterDelay === void 0 ? 100 : _ref$mouseEnterDelay,\n _ref$mouseLeaveDelay = _ref.mouseLeaveDelay,\n mouseLeaveDelay = _ref$mouseLeaveDelay === void 0 ? 100 : _ref$mouseLeaveDelay,\n _ref$keepTooltipInsid = _ref.keepTooltipInside,\n keepTooltipInside = _ref$keepTooltipInsid === void 0 ? false : _ref$keepTooltipInsid,\n children = _ref.children;\n\n var _useState = useState(open || defaultOpen),\n isOpen = _useState[0],\n setIsOpen = _useState[1];\n\n var triggerRef = useRef(null);\n var contentRef = useRef(null);\n var arrowRef = useRef(null);\n var focusedElBeforeOpen = useRef(null);\n var popupId = useRef(\"popup-\" + ++popupIdCounter);\n var isModal = modal ? true : !trigger;\n var timeOut = useRef(0);\n useIsomorphicLayoutEffect(function () {\n if (isOpen) {\n focusedElBeforeOpen.current = document.activeElement;\n setPosition();\n focusContentOnOpen(); // for accessibility\n\n lockScrolll();\n } else {\n resetScroll();\n }\n\n return function () {\n clearTimeout(timeOut.current);\n };\n }, [isOpen]); // for uncontrolled popup we need to sync isOpen with open prop\n\n useEffect(function () {\n if (typeof open === 'boolean') {\n if (open) openPopup();else closePopup();\n }\n }, [open, disabled]);\n\n var openPopup = function openPopup(event) {\n if (isOpen || disabled) return;\n setIsOpen(true);\n setTimeout(function () {\n return onOpen(event);\n }, 0);\n };\n\n var closePopup = function closePopup(event) {\n var _focusedElBeforeOpen$;\n\n if (!isOpen || disabled) return;\n setIsOpen(false);\n if (isModal) (_focusedElBeforeOpen$ = focusedElBeforeOpen.current) === null || _focusedElBeforeOpen$ === void 0 ? void 0 : _focusedElBeforeOpen$.focus();\n setTimeout(function () {\n return onClose(event);\n }, 0);\n };\n\n var togglePopup = function togglePopup(event) {\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n if (!isOpen) openPopup(event);else closePopup(event);\n };\n\n var onMouseEnter = function onMouseEnter(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return openPopup(event);\n }, mouseEnterDelay);\n };\n\n var onContextMenu = function onContextMenu(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n togglePopup();\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(function () {\n return closePopup(event);\n }, mouseLeaveDelay);\n };\n\n var lockScrolll = function lockScrolll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'hidden'; // migrate to document.body\n };\n\n var resetScroll = function resetScroll() {\n if (isModal && lockScroll) document.getElementsByTagName('body')[0].style.overflow = 'auto';\n };\n\n var focusContentOnOpen = function focusContentOnOpen() {\n var _contentRef$current;\n\n var focusableEls = contentRef === null || contentRef === void 0 ? void 0 : (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]');\n var firstEl = Array.prototype.slice.call(focusableEls)[0];\n firstEl === null || firstEl === void 0 ? void 0 : firstEl.focus();\n };\n\n useImperativeHandle(ref, function () {\n return {\n open: function open() {\n openPopup();\n },\n close: function close() {\n closePopup();\n },\n toggle: function toggle() {\n togglePopup();\n }\n };\n }); // set Position\n\n var setPosition = function setPosition() {\n if (isModal || !isOpen) return;\n if (!(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) || !(contentRef === null || contentRef === void 0 ? void 0 : contentRef.current)) return; /// show error as one of ref is undefined\n\n var trigger = triggerRef.current.getBoundingClientRect();\n var content = contentRef.current.getBoundingClientRect();\n var cords = calculatePosition(trigger, content, position, arrow, {\n offsetX: offsetX,\n offsetY: offsetY\n }, keepTooltipInside);\n contentRef.current.style.top = cords.top + window.scrollY + \"px\";\n contentRef.current.style.left = cords.left + window.scrollX + \"px\";\n\n if (arrow && !!arrowRef.current) {\n var _arrowStyle$top, _arrowStyle$left;\n\n arrowRef.current.style.transform = cords.transform;\n arrowRef.current.style.setProperty('-ms-transform', cords.transform);\n arrowRef.current.style.setProperty('-webkit-transform', cords.transform);\n arrowRef.current.style.top = ((_arrowStyle$top = arrowStyle.top) === null || _arrowStyle$top === void 0 ? void 0 : _arrowStyle$top.toString()) || cords.arrowTop;\n arrowRef.current.style.left = ((_arrowStyle$left = arrowStyle.left) === null || _arrowStyle$left === void 0 ? void 0 : _arrowStyle$left.toString()) || cords.arrowLeft;\n }\n }; // hooks\n\n\n useOnEscape(closePopup, closeOnEscape); // can be optimized if we disabled for hover\n\n useTabbing(contentRef, isOpen && isModal);\n useRepositionOnResize(setPosition, repositionOnResize);\n useOnClickOutside(!!trigger ? [contentRef, triggerRef] : [contentRef], closePopup, closeOnDocumentClick && !nested); // we need to add a ne\n // render the trigger element and add events\n\n var renderTrigger = function renderTrigger() {\n var triggerProps = {\n key: 'T',\n ref: triggerRef,\n 'aria-describedby': popupId.current\n };\n var onAsArray = Array.isArray(on) ? on : [on];\n\n for (var i = 0, len = onAsArray.length; i < len; i++) {\n switch (onAsArray[i]) {\n case 'click':\n triggerProps.onClick = togglePopup;\n break;\n\n case 'right-click':\n triggerProps.onContextMenu = onContextMenu;\n break;\n\n case 'hover':\n triggerProps.onMouseEnter = onMouseEnter;\n triggerProps.onMouseLeave = onMouseLeave;\n break;\n\n case 'focus':\n triggerProps.onFocus = onMouseEnter;\n triggerProps.onBlur = onMouseLeave;\n break;\n }\n }\n\n if (typeof trigger === 'function') {\n var comp = trigger(isOpen);\n return !!trigger && React.cloneElement(comp, triggerProps);\n }\n\n return !!trigger && React.cloneElement(trigger, triggerProps);\n };\n\n var addWarperAction = function addWarperAction() {\n var popupContentStyle = isModal ? Style.popupContent.modal : Style.popupContent.tooltip;\n var childrenElementProps = {\n className: \"popup-content \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-content\";\n }).join(' ') : ''),\n style: _extends({}, popupContentStyle, contentStyle, {\n pointerEvents: 'auto'\n }),\n ref: contentRef,\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n };\n\n if (!modal && on.indexOf('hover') >= 0) {\n childrenElementProps.onMouseEnter = onMouseEnter;\n childrenElementProps.onMouseLeave = onMouseLeave;\n }\n\n return childrenElementProps;\n };\n\n var renderContent = function renderContent() {\n return React.createElement(\"div\", Object.assign({}, addWarperAction(), {\n key: \"C\",\n role: isModal ? 'dialog' : 'tooltip',\n id: popupId.current\n }), arrow && !isModal && React.createElement(\"div\", {\n ref: arrowRef,\n style: Style.popupArrow\n }, React.createElement(\"svg\", {\n \"data-testid\": \"arrow\",\n className: \"popup-arrow \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-arrow\";\n }).join(' ') : ''),\n viewBox: \"0 0 32 16\",\n style: _extends({\n position: 'absolute'\n }, arrowStyle)\n }, React.createElement(\"path\", {\n d: \"M16 0l16 16H0z\",\n fill: \"currentcolor\"\n }))), children && typeof children === 'function' ? children(closePopup, isOpen) : children);\n };\n\n var overlay = !(on.indexOf('hover') >= 0);\n var ovStyle = isModal ? Style.overlay.modal : Style.overlay.tooltip;\n var content = [overlay && React.createElement(\"div\", {\n key: \"O\",\n \"data-testid\": \"overlay\",\n \"data-popup\": isModal ? 'modal' : 'tooltip',\n className: \"popup-overlay \" + (className !== '' ? className.split(' ').map(function (c) {\n return c + \"-overlay\";\n }).join(' ') : ''),\n style: _extends({}, ovStyle, overlayStyle, {\n pointerEvents: closeOnDocumentClick && nested || isModal ? 'auto' : 'none'\n }),\n onClick: closeOnDocumentClick && nested ? closePopup : undefined,\n tabIndex: -1\n }, isModal && renderContent()), !isModal && renderContent()];\n return React.createElement(React.Fragment, null, renderTrigger(), isOpen && ReactDOM.createPortal(content, getRootPopup()));\n});\n\nexport default Popup;\nexport { Popup };\n//# sourceMappingURL=reactjs-popup.esm.js.map\n","import React, { forwardRef } from 'react';\nimport Popup from 'reactjs-popup';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { PieChartArcProps } from './types';\nimport { StyledPieChartArc, Tooltip } from './styles';\n\nconst COMPONENT_NAME = 'RedSiftPieChartArc';\nconst CLASSNAME = 'redsift-piechart-arc';\nconst DEFAULT_PROPS: Partial<PieChartArcProps> = {};\n\nexport const PieChartArc: Comp<PieChartArcProps, SVGGElement> = forwardRef(\n (props, ref) => {\n const {\n color,\n data,\n index,\n onClick,\n path,\n spaced,\n showTooltip,\n tooltipPercent,\n tooltipLabelOnly,\n isEmpty,\n ...forwardedProps\n } = props;\n const Arc = (\n <StyledPieChartArc\n ref={ref as any}\n {...forwardedProps}\n role={onClick ? 'button' : undefined}\n className={`pie-slice _${index}`}\n onClick={onClick}\n $clickable={Boolean(onClick)}\n $spaced={Boolean(spaced)}\n >\n <path d={path} fill={color} />\n {!showTooltip && !isEmpty && (\n <title>{`${data.name}: ${data.value}`}</title>\n )}\n </StyledPieChartArc>\n );\n\n if (showTooltip) {\n const tooltipValue =\n tooltipPercent !== null ? `${tooltipPercent}%` : data.value;\n return (\n <Popup on=\"hover\" arrow={false} position=\"right center\" trigger={Arc}>\n <Tooltip>\n {`${data.name}${tooltipLabelOnly ? '' : ` - ${tooltipValue}`}`}\n </Tooltip>\n </Popup>\n );\n }\n\n return Arc;\n }\n);\nPieChartArc.className = CLASSNAME;\nPieChartArc.defaultProps = DEFAULT_PROPS;\nPieChartArc.displayName = COMPONENT_NAME;\n","import React, { forwardRef, useId } from 'react';\nimport { arc as d3arc, pie as d3pie, sum as d3sum } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartDimensions, Datum, PieArcDatum } from '../../types';\nimport { getColorScale } from '../../scheme';\nimport {\n PieChartLabelVariant,\n PieChartProps,\n PieChartSize,\n PieChartTheme,\n PieChartTooltipVariant,\n PieChartVariant,\n} from './types';\nimport {\n StyledPieChartCenterText,\n StyledPieChart,\n StyledPieChartCaption,\n StyledPieChartLabel,\n StyledPieChartTitle,\n StyledPieChartEmptyText,\n} from './styles';\nimport { PieChartArc } from './PieChartArc';\n\nconst COMPONENT_NAME = 'RedSiftPieChart';\nconst CLASSNAME = 'redsift-piechart';\nconst DEFAULT_PROPS: Partial<PieChartProps> = {\n labelVariant: PieChartLabelVariant.none,\n others: true,\n size: PieChartSize.medium,\n theme: PieChartTheme.default,\n variant: PieChartVariant.plain,\n tooltipVariant: PieChartTooltipVariant.value,\n localeText: {\n emptyChartText: 'No Data',\n },\n};\n\nconst sizeToDimension = (size: PieChartSize): ChartDimensions => {\n switch (size) {\n case PieChartSize.small:\n return { width: 200, height: 200 };\n case PieChartSize.large:\n return { width: 300, height: 300 };\n case PieChartSize.medium:\n default:\n return { width: 240, height: 240 };\n }\n};\n\nconst sizeToSmallFontSize = (size: PieChartSize | undefined): number => {\n switch (size) {\n case PieChartSize.small:\n return 13;\n case PieChartSize.large:\n return 18;\n case PieChartSize.medium:\n default:\n return 14;\n }\n};\n\nconst sizeToFontSize = (size: PieChartSize | undefined): number => {\n switch (size) {\n case PieChartSize.small:\n return 30;\n case PieChartSize.large:\n return 38;\n case PieChartSize.medium:\n default:\n return 34;\n }\n};\n\nconst sizeToInnerRadius = (size: PieChartSize): number => {\n switch (size) {\n case PieChartSize.small:\n return 55;\n case PieChartSize.large:\n return 80;\n case PieChartSize.medium:\n default:\n return 65;\n }\n};\n\nexport const PieChart: Comp<PieChartProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const id = useId();\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n caping,\n caption,\n className,\n data: propData,\n labelVariant,\n onSliceClick,\n others,\n size,\n text,\n middleText,\n subtext,\n theme,\n title,\n variant,\n tooltipVariant,\n localeText,\n ...forwardedProps\n } = props;\n const { emptyChartText } = {\n ...DEFAULT_PROPS.localeText,\n ...localeText,\n };\n const isEmpty = propData.every((d) => d.value === 0);\n const isDonut =\n variant === PieChartVariant.donut ||\n variant === PieChartVariant.spacedDonut;\n let data = propData.sort((a, b) => (a.value < b.value ? 1 : -1));\n if (caping) {\n if (typeof others === 'boolean' && !others) {\n data = data.slice(0, caping);\n } else {\n data = data.reduce<Datum[]>((acc, curr, index) => {\n if (index < caping) {\n acc[index] = curr;\n } else if (index === caping) {\n acc[index] = {\n name: typeof others === 'string' ? others : 'Others',\n value: curr.value,\n };\n } else {\n acc[caping] = {\n ...acc[caping],\n value: acc[caping].value + curr.value,\n };\n }\n return acc;\n }, []);\n }\n }\n if (isEmpty) {\n data = [\n {\n name: emptyChartText as string,\n value: 100,\n },\n ];\n }\n\n // Get charts dimensions based on the selected size.\n const chartDimensions = sizeToDimension(size!);\n const externalRadiusPadding = 8;\n const innerRadius = sizeToInnerRadius(size!);\n\n // Set color scheme.\n const d3colors = getColorScale(theme!, isEmpty);\n\n // Initialize the chart.\n const createPie = d3pie<Datum>()\n .value((d) => d.value)\n .sort(null);\n const createArc = d3arc<PieArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(chartDimensions.width / 2 - externalRadiusPadding);\n const pieData = createPie(data);\n const total = d3sum(data, (d) => d.value);\n return (\n <StyledPieChart\n ref={ref as any}\n {...forwardedProps}\n className={className}\n >\n {title ? (\n <StyledPieChartTitle\n className={`${PieChart.className}__title`}\n id={`id${id}__title`}\n >\n {title}\n </StyledPieChartTitle>\n ) : null}\n <div className={`${PieChart.className}__container`}>\n <div\n className={`${PieChart.className}-container__chart`}\n aria-label={\n ariaLabel\n ? ariaLabel\n : ariaLabelledby || title\n ? undefined\n : 'Pie Chart'\n }\n aria-labelledby={\n ariaLabelledby\n ? ariaLabelledby\n : title\n ? `id${id}__title`\n : undefined\n }\n >\n {text && !isEmpty ? (\n <StyledPieChartCenterText\n $maxWidth={innerRadius * 2}\n $textSize={sizeToFontSize(size)}\n $smallTextSize={sizeToSmallFontSize(size)}\n >\n {subtext ? <b>{text}</b> : <span>{text}</span>}\n {middleText ? <b>{middleText}</b> : null}\n <span>{subtext}</span>\n </StyledPieChartCenterText>\n ) : null}\n {isEmpty ? (\n <StyledPieChartEmptyText\n $maxWidth={innerRadius * 2}\n $textSize={sizeToFontSize(size) / 2}\n $isDonut={isDonut}\n >\n <span>{emptyChartText}</span>\n </StyledPieChartEmptyText>\n ) : null}\n <svg width={chartDimensions.width} height={chartDimensions.height}>\n <g\n transform={`translate(${chartDimensions.width / 2} ${\n chartDimensions.height / 2\n })`}\n >\n <g className=\"pie-slice-group\">\n {pieData.map((datum, index) => {\n const percent = ((datum.data.value / total) * 100).toFixed(\n 2\n );\n return (\n <PieChartArc\n color={d3colors(datum.data.name)}\n data={datum.data}\n isEmpty={isEmpty}\n index={index}\n key={`pie-slice _${index}`}\n onClick={\n onSliceClick\n ? () => onSliceClick(data[index])\n : undefined\n }\n showTooltip={\n tooltipVariant !== PieChartTooltipVariant.none &&\n !isEmpty\n }\n tooltipLabelOnly={\n tooltipVariant == PieChartTooltipVariant.label\n }\n tooltipPercent={\n tooltipVariant === PieChartTooltipVariant.percent\n ? percent\n : null\n }\n path={createArc(datum) as string}\n spaced={\n variant === PieChartVariant.spaced ||\n variant === PieChartVariant.spacedDonut\n }\n />\n );\n })}\n </g>\n {labelVariant === PieChartLabelVariant.internal && !isEmpty ? (\n <g className=\"pie-label-group\">\n {pieData.map((datum, index) => (\n <text\n className={`pie-slice pie-label _${index}`}\n key={`pie-slice pie-label _${index}`}\n textAnchor=\"middle\"\n transform={`translate(${createArc.centroid(datum)})`}\n >\n {index < 2 || caping ? datum.data.name : null}\n </text>\n ))}\n </g>\n ) : null}\n </g>\n </svg>\n </div>\n {labelVariant !== PieChartLabelVariant.none &&\n labelVariant !== PieChartLabelVariant.internal ? (\n <ul>\n {data.map(({ name, value }: Datum, index) => (\n <StyledPieChartLabel\n key={`pie-external-label _${index}`}\n $color={d3colors(name)}\n >\n <div />\n {labelVariant === PieChartLabelVariant.externalLabelValue ? (\n <b>{value}</b>\n ) : labelVariant ===\n PieChartLabelVariant.externalLabelPercent ? (\n <b>{`${((value * 100) / total).toFixed(2)}%`}</b>\n ) : null}\n <span>{name}</span>\n </StyledPieChartLabel>\n ))}\n </ul>\n ) : null}\n </div>\n {caption ? (\n <StyledPieChartCaption className={`${PieChart.className}__caption`}>\n {caption}\n </StyledPieChartCaption>\n ) : null}\n </StyledPieChart>\n );\n }\n);\nPieChart.className = CLASSNAME;\nPieChart.defaultProps = DEFAULT_PROPS;\nPieChart.displayName = COMPONENT_NAME;\n"],"names":["ColorTheme","default","dark","darker","monochrome","scheme","light","lighter","empty","successDangerScheme","success","warning","danger","neutral","getColorScale","theme","isEmpty","d3colors","d3scaleOrdinal","domain","range","unknown","PieChartSize","small","medium","large","PieChartVariant","plain","spaced","donut","spacedDonut","PieChartLabelVariant","none","internal","externalLabel","externalLabelValue","externalLabelPercent","PieChartTheme","PieChartTooltipVariant","label","value","percent","StyledPieChart","styled","div","StyledPieChartTitle","StyledPieChartCaption","p","StyledPieChartCenterText","$maxWidth","$textSize","$smallTextSize","StyledPieChartEmptyText","$isDonut","css","StyledPieChartLabel","li","$color","StyledPieChartArc","g","$spaced","$clickable","Tooltip","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","PieChartArc","forwardRef","props","ref","color","data","index","onClick","path","showTooltip","tooltipPercent","tooltipLabelOnly","forwardedProps","_excluded","Arc","_extends","undefined","Boolean","name","tooltipValue","className","defaultProps","displayName","labelVariant","others","size","variant","tooltipVariant","localeText","emptyChartText","sizeToDimension","width","height","sizeToSmallFontSize","sizeToFontSize","sizeToInnerRadius","PieChart","id","useId","ariaLabel","ariaLabelledby","caping","caption","propData","onSliceClick","text","middleText","subtext","title","every","d","isDonut","sort","a","b","slice","reduce","acc","curr","chartDimensions","externalRadiusPadding","innerRadius","createPie","d3pie","createArc","d3arc","outerRadius","pieData","total","d3sum","map","datum","toFixed","centroid"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"test": "NODE_ENV=test jest --verbose"
|
|
29
29
|
},
|
|
30
30
|
"types": "types.d.ts",
|
|
31
|
-
"version": "
|
|
31
|
+
"version": "7.0.0-alpha.0",
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@emotion/react": "^11.10.4",
|
|
34
34
|
"@emotion/styled": "^11.10.4",
|
|
35
|
-
"@redsift/design-system": "^
|
|
36
|
-
"@redsift/table": "^
|
|
35
|
+
"@redsift/design-system": "^7.0.0-alpha.0",
|
|
36
|
+
"@redsift/table": "^7.0.0-alpha.0",
|
|
37
37
|
"d3": "^7.6.1",
|
|
38
38
|
"d3-shape": "^3.1.0"
|
|
39
39
|
},
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"react-dom": "18",
|
|
95
95
|
"styled-components": "^5.3.3"
|
|
96
96
|
},
|
|
97
|
-
"gitHead": "
|
|
97
|
+
"gitHead": "49c0e4c8f8dad94eed4101fb388c62c95c7f4d69"
|
|
98
98
|
}
|