@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 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
- #### Architecture
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
- #### Shared code
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
- #### Dependencies
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
- #### Scaffolding
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((props, ref) => {
126
- const {
127
- // props
128
- ...forwardedProps
129
- } = props;
130
-
131
- return (
132
- <StyledBadge
133
- {...forwardedProps}
134
- // transient props
135
- className={classNames(Badge.className, `${Badge.className}-${variant}`, className)}
136
- ref={badgeRef as RefObject<HTMLDivElement>}
137
- >
138
- // content of the component if needed
139
- </StyledBadge>
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
- #### API
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?: ButtonSize;
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
- ### Tests
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
- *Visual tests*
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
- *Unit tests*
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
- ### Linting
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
- ### TypeScript
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
- ### Styling
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 }) => $color ? css`
286
- color: var(--redsift-color-${$color}-contrast);
287
- background-color: var(--redsift-color-${$color}-main);
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
- ### Accessibility
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
- ### Storybook
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
- ### Documentation
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 codeString={`
388
+ <CodeBlock
389
+ codeString={`
361
390
  yarn add @redsift/design-system
362
- `} language="sh" />
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-text-primary);
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-text-primary);
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-text-primary);
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-text-secondary)` : css`var(--redsift-color-text-primary)`;
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-primary-contrast);
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": "6.3.1",
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": "^6.3.1",
36
- "@redsift/table": "^6.3.1",
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": "389da11f3efb89ed456332d5dc8a099fb235237c"
97
+ "gitHead": "49c0e4c8f8dad94eed4101fb388c62c95c7f4d69"
98
98
  }