@moderneinc/react-charts 1.1.0-next.3836ed
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/LICENSE +24 -0
- package/README.md +44 -0
- package/dist/components/parliament-chart/hooks/use-parliament-chart.d.ts +22 -0
- package/dist/components/parliament-chart/parliament-chart.constants.d.ts +40 -0
- package/dist/components/parliament-chart/parliament-chart.d.ts +8 -0
- package/dist/components/parliament-chart/parliament-chart.types.d.ts +36 -0
- package/dist/components/parliament-chart/utils/parliament-arc-calculator.d.ts +27 -0
- package/dist/components/parliament-chart/utils/parliament-chart-data.utils.d.ts +18 -0
- package/dist/components/parliament-chart/utils/parliament-svg-enhanced.d.ts +28 -0
- package/dist/components/parliament-chart/utils/parliament-svg-patterns.d.ts +35 -0
- package/dist/components/parliament-chart/utils/parliament-svg.d.ts +20 -0
- package/dist/index.cjs +27 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +5383 -0
- package/dist/theme/default-colors.d.ts +30 -0
- package/package.json +112 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For more information, please refer to <https://unlicense.org>
|
package/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @moderneinc/react-charts
|
|
2
|
+
|
|
3
|
+
A React component library for parliament-style chart visualizations, perfect for displaying repository statistics, compliance metrics, and migration progress.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @moderneinc/react-charts
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Peer Dependencies
|
|
12
|
+
|
|
13
|
+
This package requires the following peer dependencies:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
18
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
19
|
+
"@mui/material": ">=7.0.0",
|
|
20
|
+
"@mui/icons-material": ">=7.0.0",
|
|
21
|
+
"@emotion/react": ">=11.0.0",
|
|
22
|
+
"@emotion/styled": ">=11.0.0"
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Development
|
|
27
|
+
|
|
28
|
+
### Run Storybook
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm run storybook
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Build Library
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm run build
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Run Tests
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm test
|
|
44
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import { ChartConfig, HoveredData, ProcessedDataItem } from '../parliament-chart.types';
|
|
3
|
+
type UseParliamentChartProps = {
|
|
4
|
+
containerRef: RefObject<HTMLDivElement>;
|
|
5
|
+
processedData: ProcessedDataItem[];
|
|
6
|
+
totalRepositories: number;
|
|
7
|
+
arcAngle: number;
|
|
8
|
+
useEnhanced: boolean;
|
|
9
|
+
maxSeats: number;
|
|
10
|
+
setHoveredData: (data: HoveredData) => void;
|
|
11
|
+
activePartyName: string | null;
|
|
12
|
+
setActivePartyName: (name: string | null) => void;
|
|
13
|
+
chartConfig: ChartConfig;
|
|
14
|
+
seatSize: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Hook that manages parliament chart rendering and interactivity.
|
|
18
|
+
* Generates SVG visualization with seat circles and handles hover states
|
|
19
|
+
* for displaying repository statistics.
|
|
20
|
+
*/
|
|
21
|
+
export declare const useParliamentChart: ({ containerRef, processedData, totalRepositories, arcAngle, useEnhanced, maxSeats, setHoveredData, activePartyName, setActivePartyName, chartConfig, seatSize }: UseParliamentChartProps) => void;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const DEFAULT_CHART_CONFIG: {
|
|
2
|
+
readonly arcAngle: 180;
|
|
3
|
+
readonly maxSeats: 200;
|
|
4
|
+
readonly useEnhanced: true;
|
|
5
|
+
readonly chartConfig: {
|
|
6
|
+
readonly radius: 220;
|
|
7
|
+
readonly seatSize: 5;
|
|
8
|
+
readonly minSeatSize: 4;
|
|
9
|
+
readonly maxSeatSize: 18;
|
|
10
|
+
readonly spacing: 1.1;
|
|
11
|
+
readonly innerRadiusRatio: 0.4;
|
|
12
|
+
readonly arcAngleFlexibility: 5;
|
|
13
|
+
};
|
|
14
|
+
readonly colors: {
|
|
15
|
+
readonly emptySeats: "#f8f8f8";
|
|
16
|
+
readonly emptySeatsBorder: "#d8d8d8";
|
|
17
|
+
readonly seatBorder: "#fff";
|
|
18
|
+
};
|
|
19
|
+
readonly animation: {
|
|
20
|
+
readonly transitionDuration: "0.2s";
|
|
21
|
+
readonly hoverOpacity: {
|
|
22
|
+
readonly active: "1";
|
|
23
|
+
readonly dimmed: "0.2";
|
|
24
|
+
readonly empty: "0.3";
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
readonly scaling: {
|
|
28
|
+
readonly enableScaling: true;
|
|
29
|
+
readonly scaleThreshold: 200;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export declare const MODERNE_VULNERABILITY_COLORS: {
|
|
33
|
+
COMPLETED: "#40c048";
|
|
34
|
+
NOT_APPLICABLE: string;
|
|
35
|
+
NO_LST: string;
|
|
36
|
+
DATA_MISSING: string;
|
|
37
|
+
};
|
|
38
|
+
export declare const CAMPAIGN_NOT_APPLICABLE = "N/A";
|
|
39
|
+
export declare const CAMPAIGN_NO_LST = "No LST";
|
|
40
|
+
export declare const CAMPAIGN_DATA_MISSING = "Data Missing";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import { ParliamentChartProps } from './parliament-chart.types';
|
|
3
|
+
/**
|
|
4
|
+
* Renders an interactive parliament-style chart visualization for repository statistics.
|
|
5
|
+
* Displays repository counts as seats in a semi-circular or arc layout, with scaling
|
|
6
|
+
* applied for large datasets. Includes hover interactions and a summary table.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ParliamentChart: FunctionComponent<ParliamentChartProps>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ParliamentChartTheme } from '../../theme/default-colors';
|
|
2
|
+
type ParliamentDataSeries = {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export type ParliamentChartProps = {
|
|
7
|
+
dataSeries: Array<ParliamentDataSeries>;
|
|
8
|
+
totalRepositories: number;
|
|
9
|
+
notApplicableRepositories: number;
|
|
10
|
+
noLstRepositories: number;
|
|
11
|
+
unavailableRepositories: number;
|
|
12
|
+
arcAngle?: number;
|
|
13
|
+
useEnhanced?: boolean;
|
|
14
|
+
theme?: ParliamentChartTheme;
|
|
15
|
+
};
|
|
16
|
+
export type ProcessedDataItem = {
|
|
17
|
+
id: string | number;
|
|
18
|
+
label: string;
|
|
19
|
+
value: number;
|
|
20
|
+
color: string;
|
|
21
|
+
};
|
|
22
|
+
export type HoveredData = {
|
|
23
|
+
label: string;
|
|
24
|
+
value: number;
|
|
25
|
+
color: string;
|
|
26
|
+
} | null;
|
|
27
|
+
export type ChartConfig = {
|
|
28
|
+
radius: number;
|
|
29
|
+
seatSize: number;
|
|
30
|
+
minSeatSize: number;
|
|
31
|
+
maxSeatSize: number;
|
|
32
|
+
spacing: number;
|
|
33
|
+
innerRadiusRatio: number;
|
|
34
|
+
arcAngleFlexibility: number;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates optimal arc angle based on repository count.
|
|
3
|
+
* Smaller repository counts get smaller arcs for better visual density,
|
|
4
|
+
* while larger counts expand to full parliament-style semicircle.
|
|
5
|
+
*
|
|
6
|
+
* Algorithm uses smooth interpolation between breakpoints:
|
|
7
|
+
* - < 10 repos: 60° (compact, focused visualization)
|
|
8
|
+
* - 10-25 repos: 60-90° (gradual expansion)
|
|
9
|
+
* - 25-50 repos: 90-120° (quarter to third circle)
|
|
10
|
+
* - 50-100 repos: 120-150° (approaching semicircle)
|
|
11
|
+
* - 100-200 repos: 150-180° (near-full parliament)
|
|
12
|
+
* - > 200 repos: 180° (full semicircle)
|
|
13
|
+
*/
|
|
14
|
+
export declare const calculateOptimalArcAngle: ({ repositoryCount }: {
|
|
15
|
+
repositoryCount: number;
|
|
16
|
+
}) => number;
|
|
17
|
+
/**
|
|
18
|
+
* Calculates optimal seat size based on repository count.
|
|
19
|
+
* Smaller repository counts get larger seats for better visibility,
|
|
20
|
+
* while larger counts use smaller seats to fit more in the arc.
|
|
21
|
+
*
|
|
22
|
+
* Uses the same breakpoint system as arc angle calculation
|
|
23
|
+
* for consistent visual scaling.
|
|
24
|
+
*/
|
|
25
|
+
export declare const calculateOptimalSeatSize: ({ repositoryCount }: {
|
|
26
|
+
repositoryCount: number;
|
|
27
|
+
}) => number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type NotAppleWatchDataSeries = {
|
|
2
|
+
value: number;
|
|
3
|
+
label: string;
|
|
4
|
+
};
|
|
5
|
+
type ParliamentDataSeries = Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
value: number;
|
|
9
|
+
color: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const calculateDataSeries: ({ dataSeries, notApplicableRepositories, noLstRepositories, unavailableRepositories }: {
|
|
12
|
+
dataSeries: Array<NotAppleWatchDataSeries>;
|
|
13
|
+
notApplicableRepositories: number;
|
|
14
|
+
noLstRepositories: number;
|
|
15
|
+
totalRepositories: number;
|
|
16
|
+
unavailableRepositories: number;
|
|
17
|
+
}) => ParliamentDataSeries;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Element } from 'hast';
|
|
2
|
+
import { s as hastH } from 'hastscript';
|
|
3
|
+
type Party = {
|
|
4
|
+
id: string | number;
|
|
5
|
+
name: string;
|
|
6
|
+
seats: number;
|
|
7
|
+
colour: string;
|
|
8
|
+
};
|
|
9
|
+
type EnhancedParliamentOptions = {
|
|
10
|
+
seatCount?: boolean;
|
|
11
|
+
arcAngle?: number;
|
|
12
|
+
arcAngleFlexibility?: number;
|
|
13
|
+
radius?: number;
|
|
14
|
+
seatSize?: number;
|
|
15
|
+
minSeatSize?: number;
|
|
16
|
+
maxSeatSize?: number;
|
|
17
|
+
spacing?: number;
|
|
18
|
+
innerRadiusRatio?: number;
|
|
19
|
+
showLabels?: boolean;
|
|
20
|
+
hFunction?: typeof hastH;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Generates enhanced parliament visualization with optimized seat placement.
|
|
24
|
+
* Automatically adjusts arc angle and seat sizing to maximize visual appeal
|
|
25
|
+
* while maintaining proportional representation.
|
|
26
|
+
*/
|
|
27
|
+
export declare const generateEnhancedParliament: (parties: Party[], options?: EnhancedParliamentOptions) => Element;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Element } from 'hast';
|
|
2
|
+
import { s as hastH } from 'hastscript';
|
|
3
|
+
/**
|
|
4
|
+
* Creates the grey hatch pattern definition for N/A category.
|
|
5
|
+
* Uses horizontal lines for clear differentiation.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createGreyHatchPattern: (hFunction?: typeof hastH) => Element;
|
|
8
|
+
/**
|
|
9
|
+
* Creates the yellow hatch pattern definition for Data Missing category.
|
|
10
|
+
* Uses 45-degree diagonal lines.
|
|
11
|
+
*/
|
|
12
|
+
export declare const createDataMissingHatchPattern: (hFunction?: typeof hastH) => Element;
|
|
13
|
+
/**
|
|
14
|
+
* Creates the red hatch pattern definition for No LST category.
|
|
15
|
+
* Uses -45-degree diagonal lines.
|
|
16
|
+
*/
|
|
17
|
+
export declare const createNoLstHatchPattern: (hFunction?: typeof hastH) => Element;
|
|
18
|
+
/**
|
|
19
|
+
* Color values for hatch patterns to use in CSS and hover states.
|
|
20
|
+
* Exported for consistency across components.
|
|
21
|
+
*/
|
|
22
|
+
export declare const HATCH_PATTERN_COLORS: {
|
|
23
|
+
readonly greyHatch: {
|
|
24
|
+
readonly background: "#EDEFEF";
|
|
25
|
+
readonly lines: "#ADB5BD";
|
|
26
|
+
};
|
|
27
|
+
readonly dataMissingHatch: {
|
|
28
|
+
readonly background: "#FFF3CC";
|
|
29
|
+
readonly lines: "#FFB800";
|
|
30
|
+
};
|
|
31
|
+
readonly noLstHatch: {
|
|
32
|
+
readonly background: "#FFE5E5";
|
|
33
|
+
readonly lines: "#ED4134";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Element } from 'hast';
|
|
2
|
+
import { s as hastH } from 'hastscript';
|
|
3
|
+
type Party = {
|
|
4
|
+
id: string | number;
|
|
5
|
+
name: string;
|
|
6
|
+
seats: number;
|
|
7
|
+
colour: string;
|
|
8
|
+
};
|
|
9
|
+
type ParliamentOptions = {
|
|
10
|
+
seatCount?: boolean;
|
|
11
|
+
arcAngle?: number;
|
|
12
|
+
hFunction?: typeof hastH;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Generates parliament-style SVG visualization from party seat data.
|
|
16
|
+
* Arranges seats in a semicircular arc pattern using the Sainte-Laguë method
|
|
17
|
+
* for proportional distribution across rings.
|
|
18
|
+
*/
|
|
19
|
+
export declare const generateParliament: (parliament: Party[], options?: ParliamentOptions) => Element;
|
|
20
|
+
export {};
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react/jsx-runtime"),_s=require("@mui/icons-material"),M=require("@mui/material"),fe=require("react"),Ss=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class ve{constructor(e,n,t){this.normal=n,this.property=e,t&&(this.space=t)}}ve.prototype.normal={};ve.prototype.property={};ve.prototype.space=void 0;function Sl(r,e){const n={},t={};for(const a of r)Object.assign(n,a.property),Object.assign(t,a.normal);return new ve(n,t,e)}function ye(r){return r.toLowerCase()}class B{constructor(e,n){this.attribute=n,this.property=e}}B.prototype.attribute="";B.prototype.booleanish=!1;B.prototype.boolean=!1;B.prototype.commaOrSpaceSeparated=!1;B.prototype.commaSeparated=!1;B.prototype.defined=!1;B.prototype.mustUseProperty=!1;B.prototype.number=!1;B.prototype.overloadedBoolean=!1;B.prototype.property="";B.prototype.spaceSeparated=!1;B.prototype.space=void 0;let xs=0;const x=Q(),E=Q(),zn=Q(),p=Q(),O=Q(),te=Q(),U=Q();function Q(){return 2**++xs}const Bn=Object.freeze(Object.defineProperty({__proto__:null,boolean:x,booleanish:E,commaOrSpaceSeparated:U,commaSeparated:te,number:p,overloadedBoolean:zn,spaceSeparated:O},Symbol.toStringTag,{value:"Module"})),Be=Object.keys(Bn);class Wn extends B{constructor(e,n,t,a){let i=-1;if(super(e,n),sa(this,"space",a),typeof t=="number")for(;++i<Be.length;){const o=Be[i];sa(this,Be[i],(t&Bn[o])===Bn[o])}}}Wn.prototype.defined=!0;function sa(r,e,n){n&&(r[e]=n)}function ie(r){const e={},n={};for(const[t,a]of Object.entries(r.properties)){const i=new Wn(t,r.transform(r.attributes||{},t),a,r.space);r.mustUseProperty&&r.mustUseProperty.includes(t)&&(i.mustUseProperty=!0),e[t]=i,n[ye(t)]=t,n[ye(i.attribute)]=t}return new ve(e,n,r.space)}const xl=ie({properties:{ariaActiveDescendant:null,ariaAtomic:E,ariaAutoComplete:null,ariaBusy:E,ariaChecked:E,ariaColCount:p,ariaColIndex:p,ariaColSpan:p,ariaControls:O,ariaCurrent:null,ariaDescribedBy:O,ariaDetails:null,ariaDisabled:E,ariaDropEffect:O,ariaErrorMessage:null,ariaExpanded:E,ariaFlowTo:O,ariaGrabbed:E,ariaHasPopup:null,ariaHidden:E,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:O,ariaLevel:p,ariaLive:null,ariaModal:E,ariaMultiLine:E,ariaMultiSelectable:E,ariaOrientation:null,ariaOwns:O,ariaPlaceholder:null,ariaPosInSet:p,ariaPressed:E,ariaReadOnly:E,ariaRelevant:null,ariaRequired:E,ariaRoleDescription:O,ariaRowCount:p,ariaRowIndex:p,ariaRowSpan:p,ariaSelected:E,ariaSetSize:p,ariaSort:null,ariaValueMax:p,ariaValueMin:p,ariaValueNow:p,ariaValueText:null,role:null},transform(r,e){return e==="role"?e:"aria-"+e.slice(4).toLowerCase()}});function Al(r,e){return e in r?r[e]:e}function ql(r,e){return Al(r,e.toLowerCase())}const As=ie({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:te,acceptCharset:O,accessKey:O,action:null,allow:null,allowFullScreen:x,allowPaymentRequest:x,allowUserMedia:x,alt:null,as:null,async:x,autoCapitalize:null,autoComplete:O,autoFocus:x,autoPlay:x,blocking:O,capture:null,charSet:null,checked:x,cite:null,className:O,cols:p,colSpan:null,content:null,contentEditable:E,controls:x,controlsList:O,coords:p|te,crossOrigin:null,data:null,dateTime:null,decoding:null,default:x,defer:x,dir:null,dirName:null,disabled:x,download:zn,draggable:E,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:x,formTarget:null,headers:O,height:p,hidden:zn,high:p,href:null,hrefLang:null,htmlFor:O,httpEquiv:O,id:null,imageSizes:null,imageSrcSet:null,inert:x,inputMode:null,integrity:null,is:null,isMap:x,itemId:null,itemProp:O,itemRef:O,itemScope:x,itemType:O,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:x,low:p,manifest:null,max:null,maxLength:p,media:null,method:null,min:null,minLength:p,multiple:x,muted:x,name:null,nonce:null,noModule:x,noValidate:x,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:x,optimum:p,pattern:null,ping:O,placeholder:null,playsInline:x,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:x,referrerPolicy:null,rel:O,required:x,reversed:x,rows:p,rowSpan:p,sandbox:O,scope:null,scoped:x,seamless:x,selected:x,shadowRootClonable:x,shadowRootDelegatesFocus:x,shadowRootMode:null,shape:null,size:p,sizes:null,slot:null,span:p,spellCheck:E,src:null,srcDoc:null,srcLang:null,srcSet:null,start:p,step:null,style:null,tabIndex:p,target:null,title:null,translate:null,type:null,typeMustMatch:x,useMap:null,value:E,width:p,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:O,axis:null,background:null,bgColor:null,border:p,borderColor:null,bottomMargin:p,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:x,declare:x,event:null,face:null,frame:null,frameBorder:null,hSpace:p,leftMargin:p,link:null,longDesc:null,lowSrc:null,marginHeight:p,marginWidth:p,noResize:x,noHref:x,noShade:x,noWrap:x,object:null,profile:null,prompt:null,rev:null,rightMargin:p,rules:null,scheme:null,scrolling:E,standby:null,summary:null,text:null,topMargin:p,valueType:null,version:null,vAlign:null,vLink:null,vSpace:p,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:x,disableRemotePlayback:x,prefix:null,property:null,results:p,security:null,unselectable:null},space:"html",transform:ql}),qs=ie({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:U,accentHeight:p,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:p,amplitude:p,arabicForm:null,ascent:p,attributeName:null,attributeType:null,azimuth:p,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:p,by:null,calcMode:null,capHeight:p,className:O,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:p,diffuseConstant:p,direction:null,display:null,dur:null,divisor:p,dominantBaseline:null,download:x,dx:null,dy:null,edgeMode:null,editable:null,elevation:p,enableBackground:null,end:null,event:null,exponent:p,externalResourcesRequired:null,fill:null,fillOpacity:p,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:te,g2:te,glyphName:te,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:p,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:p,horizOriginX:p,horizOriginY:p,id:null,ideographic:p,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:p,k:p,k1:p,k2:p,k3:p,k4:p,kernelMatrix:U,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:p,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:p,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:p,overlineThickness:p,paintOrder:null,panose1:null,path:null,pathLength:p,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:O,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:p,pointsAtY:p,pointsAtZ:p,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:U,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:U,rev:U,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:U,requiredFeatures:U,requiredFonts:U,requiredFormats:U,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:p,specularExponent:p,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:p,strikethroughThickness:p,string:null,stroke:null,strokeDashArray:U,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:p,strokeOpacity:p,strokeWidth:null,style:null,surfaceScale:p,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:U,tabIndex:p,tableValues:null,target:null,targetX:p,targetY:p,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:U,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:p,underlineThickness:p,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:p,values:null,vAlphabetic:p,vMathematical:p,vectorEffect:null,vHanging:p,vIdeographic:p,version:null,vertAdvY:p,vertOriginX:p,vertOriginY:p,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:p,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Al}),Cl=ie({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(r,e){return"xlink:"+e.slice(5).toLowerCase()}}),Rl=ie({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:ql}),wl=ie({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(r,e){return"xml:"+e.slice(3).toLowerCase()}}),Cs=/[A-Z]/g,ua=/-[a-z]/g,Rs=/^data[-\w.:]+$/i;function Tl(r,e){const n=ye(e);let t=e,a=B;if(n in r.normal)return r.property[r.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Rs.test(e)){if(e.charAt(4)==="-"){const i=e.slice(5).replace(ua,Ts);t="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=e.slice(4);if(!ua.test(i)){let o=i.replace(Cs,ws);o.charAt(0)!=="-"&&(o="-"+o),e="data"+o}}a=Wn}return new a(t,e)}function ws(r){return"-"+r.toLowerCase()}function Ts(r){return r.charAt(1).toUpperCase()}const Ol=Sl([xl,As,Cl,Rl,wl],"html"),Vn=Sl([xl,qs,Cl,Rl,wl],"svg"),ca={}.hasOwnProperty;function Os(r,e){const n=e||{};function t(a,...i){let o=t.invalid;const l=t.handlers;if(a&&ca.call(a,r)){const s=String(a[r]);o=ca.call(l,s)?l[s]:t.unknown}if(o)return o.call(this,a,...i)}return t.handlers=n.handlers||{},t.invalid=n.invalid,t.unknown=n.unknown,t}const Ms=/["&'<>`]/g,Ps=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Es=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Is=/[|\\{}()[\]^$+*?.]/g,fa=new WeakMap;function Ls(r,e){if(r=r.replace(e.subset?Ds(e.subset):Ms,t),e.subset||e.escapeOnly)return r;return r.replace(Ps,n).replace(Es,t);function n(a,i,o){return e.format((a.charCodeAt(0)-55296)*1024+a.charCodeAt(1)-56320+65536,o.charCodeAt(i+2),e)}function t(a,i,o){return e.format(a.charCodeAt(0),o.charCodeAt(i+1),e)}}function Ds(r){let e=fa.get(r);return e||(e=Ns(r),fa.set(r,e)),e}function Ns(r){const e=[];let n=-1;for(;++n<r.length;)e.push(r[n].replace(Is,"\\$&"));return new RegExp("(?:"+e.join("|")+")","g")}const ks=/[\dA-Fa-f]/;function Fs(r,e,n){const t="&#x"+r.toString(16).toUpperCase();return n&&e&&!ks.test(String.fromCharCode(e))?t:t+";"}const js=/\d/;function Hs(r,e,n){const t="&#"+String(r);return n&&e&&!js.test(String.fromCharCode(e))?t:t+";"}const zs=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],Ge={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},Bs=["cent","copy","divide","gt","lt","not","para","times"],Ml={}.hasOwnProperty,Gn={};let Ce;for(Ce in Ge)Ml.call(Ge,Ce)&&(Gn[Ge[Ce]]=Ce);const Gs=/[^\dA-Za-z]/;function Us(r,e,n,t){const a=String.fromCharCode(r);if(Ml.call(Gn,a)){const i=Gn[a],o="&"+i;return n&&zs.includes(i)&&!Bs.includes(i)&&(!t||e&&e!==61&&Gs.test(String.fromCharCode(e)))?o:o+";"}return""}function Ks(r,e,n){let t=Fs(r,e,n.omitOptionalSemicolons),a;if((n.useNamedReferences||n.useShortestReferences)&&(a=Us(r,e,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!a)&&n.useShortestReferences){const i=Hs(r,e,n.omitOptionalSemicolons);i.length<t.length&&(t=i)}return a&&(!n.useShortestReferences||a.length<t.length)?a:t}function ne(r,e){return Ls(r,Object.assign({format:Ks},e))}const $s=/^>|^->|<!--|-->|--!>|<!-$/g,Ws=[">"],Vs=["<",">"];function Ys(r,e,n,t){return t.settings.bogusComments?"<?"+ne(r.value,Object.assign({},t.settings.characterReferences,{subset:Ws}))+">":"<!--"+r.value.replace($s,a)+"-->";function a(i){return ne(i,Object.assign({},t.settings.characterReferences,{subset:Vs}))}}function Xs(r,e,n,t){return"<!"+(t.settings.upperDoctype?"DOCTYPE":"doctype")+(t.settings.tightDoctype?"":" ")+"html>"}function da(r,e){const n=String(r);if(typeof e!="string")throw new TypeError("Expected character");let t=0,a=n.indexOf(e);for(;a!==-1;)t++,a=n.indexOf(e,a+e.length);return t}function ha(r){const e=[],n=String(r||"");let t=n.indexOf(","),a=0,i=!1;for(;!i;){t===-1&&(t=n.length,i=!0);const o=n.slice(a,t).trim();(o||!i)&&e.push(o),a=t+1,t=n.indexOf(",",a)}return e}function Zs(r,e){const n=e||{};return(r[r.length-1]===""?[...r,""]:r).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function pa(r){const e=String(r||"").trim();return e?e.split(/[ \t\n\r\f]+/g):[]}function Js(r){return r.join(" ").trim()}const Qs=/[ \t\n\f\r]/g;function Yn(r){return typeof r=="object"?r.type==="text"?ga(r.value):!1:ga(r)}function ga(r){return r.replace(Qs,"")===""}const L=El(1),Pl=El(-1),eu=[];function El(r){return e;function e(n,t,a){const i=n?n.children:eu;let o=(t||0)+r,l=i[o];if(!a)for(;l&&Yn(l);)o+=r,l=i[o];return l}}const ru={}.hasOwnProperty;function Il(r){return e;function e(n,t,a){return ru.call(r,n.tagName)&&r[n.tagName](n,t,a)}}const Xn=Il({body:nu,caption:Ue,colgroup:Ue,dd:lu,dt:ou,head:Ue,html:tu,li:iu,optgroup:su,option:uu,p:au,rp:ma,rt:ma,tbody:fu,td:ya,tfoot:du,th:ya,thead:cu,tr:hu});function Ue(r,e,n){const t=L(n,e,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&Yn(t.value.charAt(0)))}function tu(r,e,n){const t=L(n,e);return!t||t.type!=="comment"}function nu(r,e,n){const t=L(n,e);return!t||t.type!=="comment"}function au(r,e,n){const t=L(n,e);return t?t.type==="element"&&(t.tagName==="address"||t.tagName==="article"||t.tagName==="aside"||t.tagName==="blockquote"||t.tagName==="details"||t.tagName==="div"||t.tagName==="dl"||t.tagName==="fieldset"||t.tagName==="figcaption"||t.tagName==="figure"||t.tagName==="footer"||t.tagName==="form"||t.tagName==="h1"||t.tagName==="h2"||t.tagName==="h3"||t.tagName==="h4"||t.tagName==="h5"||t.tagName==="h6"||t.tagName==="header"||t.tagName==="hgroup"||t.tagName==="hr"||t.tagName==="main"||t.tagName==="menu"||t.tagName==="nav"||t.tagName==="ol"||t.tagName==="p"||t.tagName==="pre"||t.tagName==="section"||t.tagName==="table"||t.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function iu(r,e,n){const t=L(n,e);return!t||t.type==="element"&&t.tagName==="li"}function ou(r,e,n){const t=L(n,e);return!!(t&&t.type==="element"&&(t.tagName==="dt"||t.tagName==="dd"))}function lu(r,e,n){const t=L(n,e);return!t||t.type==="element"&&(t.tagName==="dt"||t.tagName==="dd")}function ma(r,e,n){const t=L(n,e);return!t||t.type==="element"&&(t.tagName==="rp"||t.tagName==="rt")}function su(r,e,n){const t=L(n,e);return!t||t.type==="element"&&t.tagName==="optgroup"}function uu(r,e,n){const t=L(n,e);return!t||t.type==="element"&&(t.tagName==="option"||t.tagName==="optgroup")}function cu(r,e,n){const t=L(n,e);return!!(t&&t.type==="element"&&(t.tagName==="tbody"||t.tagName==="tfoot"))}function fu(r,e,n){const t=L(n,e);return!t||t.type==="element"&&(t.tagName==="tbody"||t.tagName==="tfoot")}function du(r,e,n){return!L(n,e)}function hu(r,e,n){const t=L(n,e);return!t||t.type==="element"&&t.tagName==="tr"}function ya(r,e,n){const t=L(n,e);return!t||t.type==="element"&&(t.tagName==="td"||t.tagName==="th")}const pu=Il({body:yu,colgroup:vu,head:mu,html:gu,tbody:bu});function gu(r){const e=L(r,-1);return!e||e.type!=="comment"}function mu(r){const e=new Set;for(const t of r.children)if(t.type==="element"&&(t.tagName==="base"||t.tagName==="title")){if(e.has(t.tagName))return!1;e.add(t.tagName)}const n=r.children[0];return!n||n.type==="element"}function yu(r){const e=L(r,-1,!0);return!e||e.type!=="comment"&&!(e.type==="text"&&Yn(e.value.charAt(0)))&&!(e.type==="element"&&(e.tagName==="meta"||e.tagName==="link"||e.tagName==="script"||e.tagName==="style"||e.tagName==="template"))}function vu(r,e,n){const t=Pl(n,e),a=L(r,-1,!0);return n&&t&&t.type==="element"&&t.tagName==="colgroup"&&Xn(t,n.children.indexOf(t),n)?!1:!!(a&&a.type==="element"&&a.tagName==="col")}function bu(r,e,n){const t=Pl(n,e),a=L(r,-1);return n&&t&&t.type==="element"&&(t.tagName==="thead"||t.tagName==="tbody")&&Xn(t,n.children.indexOf(t),n)?!1:!!(a&&a.type==="element"&&a.tagName==="tr")}const Re={name:[[`
|
|
2
|
+
\f\r &/=>`.split(""),`
|
|
3
|
+
\f\r "&'/=>\``.split("")],[`\0
|
|
4
|
+
\f\r "&'/<=>`.split(""),`\0
|
|
5
|
+
\f\r "&'/<=>\``.split("")]],unquoted:[[`
|
|
6
|
+
\f\r &>`.split(""),`\0
|
|
7
|
+
\f\r "&'<=>\``.split("")],[`\0
|
|
8
|
+
\f\r "&'<=>\``.split(""),`\0
|
|
9
|
+
\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function _u(r,e,n,t){const a=t.schema,i=a.space==="svg"?!1:t.settings.omitOptionalTags;let o=a.space==="svg"?t.settings.closeEmptyElements:t.settings.voids.includes(r.tagName.toLowerCase());const l=[];let s;a.space==="html"&&r.tagName==="svg"&&(t.schema=Vn);const u=Su(t,r.properties),f=t.all(a.space==="html"&&r.tagName==="template"?r.content:r);return t.schema=a,f&&(o=!1),(u||!i||!pu(r,e,n))&&(l.push("<",r.tagName,u?" "+u:""),o&&(a.space==="svg"||t.settings.closeSelfClosing)&&(s=u.charAt(u.length-1),(!t.settings.tightSelfClosing||s==="/"||s&&s!=='"'&&s!=="'")&&l.push(" "),l.push("/")),l.push(">")),l.push(f),!o&&(!i||!Xn(r,e,n))&&l.push("</"+r.tagName+">"),l.join("")}function Su(r,e){const n=[];let t=-1,a;if(e){for(a in e)if(e[a]!==null&&e[a]!==void 0){const i=xu(r,a,e[a]);i&&n.push(i)}}for(;++t<n.length;){const i=r.settings.tightAttributes?n[t].charAt(n[t].length-1):void 0;t!==n.length-1&&i!=='"'&&i!=="'"&&(n[t]+=" ")}return n.join("")}function xu(r,e,n){const t=Tl(r.schema,e),a=r.settings.allowParseErrors&&r.schema.space==="html"?0:1,i=r.settings.allowDangerousCharacters?0:1;let o=r.quote,l;if(t.overloadedBoolean&&(n===t.attribute||n==="")?n=!0:(t.boolean||t.overloadedBoolean)&&(typeof n!="string"||n===t.attribute||n==="")&&(n=!!n),n==null||n===!1||typeof n=="number"&&Number.isNaN(n))return"";const s=ne(t.attribute,Object.assign({},r.settings.characterReferences,{subset:Re.name[a][i]}));return n===!0||(n=Array.isArray(n)?(t.commaSeparated?Zs:Js)(n,{padLeft:!r.settings.tightCommaSeparatedLists}):String(n),r.settings.collapseEmptyAttributes&&!n)?s:(r.settings.preferUnquoted&&(l=ne(n,Object.assign({},r.settings.characterReferences,{attribute:!0,subset:Re.unquoted[a][i]}))),l!==n&&(r.settings.quoteSmart&&da(n,o)>da(n,r.alternative)&&(o=r.alternative),l=o+ne(n,Object.assign({},r.settings.characterReferences,{subset:(o==="'"?Re.single:Re.double)[a][i],attribute:!0}))+o),s+(l&&"="+l))}const Au=["<","&"];function Ll(r,e,n,t){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?r.value:ne(r.value,Object.assign({},t.settings.characterReferences,{subset:Au}))}function qu(r,e,n,t){return t.settings.allowDangerousHtml?r.value:Ll(r,e,n,t)}function Cu(r,e,n,t){return t.all(r)}const Ru=Os("type",{invalid:wu,unknown:Tu,handlers:{comment:Ys,doctype:Xs,element:_u,raw:qu,root:Cu,text:Ll}});function wu(r){throw new Error("Expected node, not `"+r+"`")}function Tu(r){const e=r;throw new Error("Cannot compile unknown node `"+e.type+"`")}const Ou={},Mu={},Pu=[];function Eu(r,e){const n=Ou,t=n.quote||'"',a=t==='"'?"'":'"';if(t!=='"'&&t!=="'")throw new Error("Invalid quote `"+t+"`, expected `'` or `\"`");return{one:Iu,all:Lu,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||Ss,characterReferences:n.characterReferences||Mu,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?Vn:Ol,quote:t,alternative:a}.one(Array.isArray(r)?{type:"root",children:r}:r,void 0,void 0)}function Iu(r,e,n){return Ru(r,e,n,this)}function Lu(r){const e=[],n=r&&r.children||Pu;let t=-1;for(;++t<n.length;)e[t]=this.one(n[t],t,r);return e.join("")}const J={neoGrey:{200:"#EDEFEF",400:"#ADB5BD"},neoDigitalGreen:{600:"#40c048"}},H={arcAngle:180,maxSeats:200,useEnhanced:!0,chartConfig:{radius:220,seatSize:5,minSeatSize:4,maxSeatSize:18,spacing:1.1,innerRadiusRatio:.4,arcAngleFlexibility:5},colors:{emptySeats:"#f8f8f8",emptySeatsBorder:"#d8d8d8",seatBorder:"#fff"},animation:{transitionDuration:"0.2s",hoverOpacity:{active:"1",dimmed:"0.2",empty:"0.3"}},scaling:{enableScaling:!0,scaleThreshold:200}},ae={COMPLETED:J.neoDigitalGreen[600],NOT_APPLICABLE:"url(#greyHatchPattern)",NO_LST:"url(#noLstHatchPattern)",DATA_MISSING:"url(#dataMissingHatchPattern)"},pe="N/A",ge="No LST",me="Data Missing",va=/[#.]/g;function Du(r,e){const n=r||"",t={};let a=0,i,o;for(;a<n.length;){va.lastIndex=a;const l=va.exec(n),s=n.slice(a,l?l.index:n.length);s&&(i?i==="#"?t.id=s:Array.isArray(t.className)?t.className.push(s):t.className=[s]:o=s,a+=s.length),l&&(i=l[0],a++)}return{type:"element",tagName:o||e||"div",properties:t,children:[]}}function Dl(r,e,n){const t=n?ju(n):void 0;function a(i,o,...l){let s;if(i==null){s={type:"root",children:[]};const u=o;l.unshift(u)}else{s=Du(i,e);const u=s.tagName.toLowerCase(),f=t?t.get(u):void 0;if(s.tagName=f||u,Nu(o))l.unshift(o);else for(const[d,c]of Object.entries(o))ku(r,s.properties,d,c)}for(const u of l)Un(s.children,u);return s.type==="element"&&s.tagName==="template"&&(s.content={type:"root",children:s.children},s.children=[]),s}return a}function Nu(r){if(r===null||typeof r!="object"||Array.isArray(r))return!0;if(typeof r.type!="string")return!1;const e=r,n=Object.keys(r);for(const t of n){const a=e[t];if(a&&typeof a=="object"){if(!Array.isArray(a))return!0;const i=a;for(const o of i)if(typeof o!="number"&&typeof o!="string")return!0}}return!!("children"in r&&Array.isArray(r.children))}function ku(r,e,n,t){const a=Tl(r,n);let i;if(t!=null){if(typeof t=="number"){if(Number.isNaN(t))return;i=t}else typeof t=="boolean"?i=t:typeof t=="string"?a.spaceSeparated?i=pa(t):a.commaSeparated?i=ha(t):a.commaOrSpaceSeparated?i=pa(ha(t).join(" ")):i=ba(a,a.property,t):Array.isArray(t)?i=[...t]:i=a.property==="style"?Fu(t):String(t);if(Array.isArray(i)){const o=[];for(const l of i)o.push(ba(a,a.property,l));i=o}a.property==="className"&&Array.isArray(e.className)&&(i=e.className.concat(i)),e[a.property]=i}}function Un(r,e){if(e!=null)if(typeof e=="number"||typeof e=="string")r.push({type:"text",value:String(e)});else if(Array.isArray(e))for(const n of e)Un(r,n);else if(typeof e=="object"&&"type"in e)e.type==="root"?Un(r,e.children):r.push(e);else throw new Error("Expected node, nodes, or string, got `"+e+"`")}function ba(r,e,n){if(typeof n=="string"){if(r.number&&n&&!Number.isNaN(Number(n)))return Number(n);if((r.boolean||r.overloadedBoolean)&&(n===""||ye(n)===ye(e)))return!0}return n}function Fu(r){const e=[];for(const[n,t]of Object.entries(r))e.push([n,t].join(": "));return e.join("; ")}function ju(r){const e=new Map;for(const n of r)e.set(n.toLowerCase(),n);return e}const Hu=["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","solidColor","textArea","textPath"];Dl(Ol,"div");const be=Dl(Vn,"g",Hu);var we=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function oe(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Ke,_a;function Nl(){if(_a)return Ke;_a=1;var r=typeof we=="object"&&we&&we.Object===Object&&we;return Ke=r,Ke}var $e,Sa;function Y(){if(Sa)return $e;Sa=1;var r=Nl(),e=typeof self=="object"&&self&&self.Object===Object&&self,n=r||e||Function("return this")();return $e=n,$e}var We,xa;function zu(){if(xa)return We;xa=1;var r=/\s/;function e(n){for(var t=n.length;t--&&r.test(n.charAt(t)););return t}return We=e,We}var Ve,Aa;function Bu(){if(Aa)return Ve;Aa=1;var r=zu(),e=/^\s+/;function n(t){return t&&t.slice(0,r(t)+1).replace(e,"")}return Ve=n,Ve}var Ye,qa;function _e(){if(qa)return Ye;qa=1;function r(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}return Ye=r,Ye}var Xe,Ca;function Se(){if(Ca)return Xe;Ca=1;var r=Y(),e=r.Symbol;return Xe=e,Xe}var Ze,Ra;function Gu(){if(Ra)return Ze;Ra=1;var r=Se(),e=Object.prototype,n=e.hasOwnProperty,t=e.toString,a=r?r.toStringTag:void 0;function i(o){var l=n.call(o,a),s=o[a];try{o[a]=void 0;var u=!0}catch{}var f=t.call(o);return u&&(l?o[a]=s:delete o[a]),f}return Ze=i,Ze}var Je,wa;function Uu(){if(wa)return Je;wa=1;var r=Object.prototype,e=r.toString;function n(t){return e.call(t)}return Je=n,Je}var Qe,Ta;function xe(){if(Ta)return Qe;Ta=1;var r=Se(),e=Gu(),n=Uu(),t="[object Null]",a="[object Undefined]",i=r?r.toStringTag:void 0;function o(l){return l==null?l===void 0?a:t:i&&i in Object(l)?e(l):n(l)}return Qe=o,Qe}var er,Oa;function Ae(){if(Oa)return er;Oa=1;function r(e){return e!=null&&typeof e=="object"}return er=r,er}var rr,Ma;function qe(){if(Ma)return rr;Ma=1;var r=xe(),e=Ae(),n="[object Symbol]";function t(a){return typeof a=="symbol"||e(a)&&r(a)==n}return rr=t,rr}var tr,Pa;function kl(){if(Pa)return tr;Pa=1;var r=Bu(),e=_e(),n=qe(),t=NaN,a=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,o=/^0o[0-7]+$/i,l=parseInt;function s(u){if(typeof u=="number")return u;if(n(u))return t;if(e(u)){var f=typeof u.valueOf=="function"?u.valueOf():u;u=e(f)?f+"":f}if(typeof u!="string")return u===0?u:+u;u=r(u);var d=i.test(u);return d||o.test(u)?l(u.slice(2),d?2:8):a.test(u)?t:+u}return tr=s,tr}var nr,Ea;function Fl(){if(Ea)return nr;Ea=1;var r=kl(),e=1/0,n=17976931348623157e292;function t(a){if(!a)return a===0?a:0;if(a=r(a),a===e||a===-e){var i=a<0?-1:1;return i*n}return a===a?a:0}return nr=t,nr}var ar,Ia;function jl(){if(Ia)return ar;Ia=1;var r=Fl();function e(n){var t=r(n),a=t%1;return t===t?a?t-a:t:0}return ar=e,ar}var ir,La;function Oe(){if(La)return ir;La=1;function r(e,n){for(var t=-1,a=e==null?0:e.length,i=Array(a);++t<a;)i[t]=n(e[t],t,e);return i}return ir=r,ir}var or,Da;function V(){if(Da)return or;Da=1;var r=Array.isArray;return or=r,or}var lr,Na;function Ku(){if(Na)return lr;Na=1;var r=Se(),e=Oe(),n=V(),t=qe(),a=r?r.prototype:void 0,i=a?a.toString:void 0;function o(l){if(typeof l=="string")return l;if(n(l))return e(l,o)+"";if(t(l))return i?i.call(l):"";var s=l+"";return s=="0"&&1/l==-1/0?"-0":s}return lr=o,lr}var sr,ka;function Hl(){if(ka)return sr;ka=1;var r=Ku();function e(n){return n==null?"":r(n)}return sr=e,sr}var ur,Fa;function $u(){if(Fa)return ur;Fa=1;var r=Y(),e=jl(),n=kl(),t=Hl(),a=r.isFinite,i=Math.min;function o(l){var s=Math[l];return function(u,f){if(u=n(u),f=f==null?0:i(e(f),292),f&&a(u)){var d=(t(u)+"e").split("e"),c=s(d[0]+"e"+(+d[1]+f));return d=(t(c)+"e").split("e"),+(d[0]+"e"+(+d[1]-f))}return s(u)}}return ur=o,ur}var cr,ja;function Wu(){if(ja)return cr;ja=1;var r=$u(),e=r("round");return cr=e,cr}var Vu=Wu();const Yu=oe(Vu);var fr,Ha;function zl(){if(Ha)return fr;Ha=1;function r(e,n){for(var t=-1,a=n.length,i=e.length;++t<a;)e[i+t]=n[t];return e}return fr=r,fr}var dr,za;function Xu(){if(za)return dr;za=1;var r=xe(),e=Ae(),n="[object Arguments]";function t(a){return e(a)&&r(a)==n}return dr=t,dr}var hr,Ba;function Zn(){if(Ba)return hr;Ba=1;var r=Xu(),e=Ae(),n=Object.prototype,t=n.hasOwnProperty,a=n.propertyIsEnumerable,i=r((function(){return arguments})())?r:function(o){return e(o)&&t.call(o,"callee")&&!a.call(o,"callee")};return hr=i,hr}var pr,Ga;function Zu(){if(Ga)return pr;Ga=1;var r=Se(),e=Zn(),n=V(),t=r?r.isConcatSpreadable:void 0;function a(i){return n(i)||e(i)||!!(t&&i&&i[t])}return pr=a,pr}var gr,Ua;function Bl(){if(Ua)return gr;Ua=1;var r=zl(),e=Zu();function n(t,a,i,o,l){var s=-1,u=t.length;for(i||(i=e),l||(l=[]);++s<u;){var f=t[s];a>0&&i(f)?a>1?n(f,a-1,i,o,l):r(l,f):o||(l[l.length]=f)}return l}return gr=n,gr}var mr,Ka;function Jn(){if(Ka)return mr;Ka=1;var r=V(),e=qe(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,t=/^\w*$/;function a(i,o){if(r(i))return!1;var l=typeof i;return l=="number"||l=="symbol"||l=="boolean"||i==null||e(i)?!0:t.test(i)||!n.test(i)||o!=null&&i in Object(o)}return mr=a,mr}var yr,$a;function Gl(){if($a)return yr;$a=1;var r=xe(),e=_e(),n="[object AsyncFunction]",t="[object Function]",a="[object GeneratorFunction]",i="[object Proxy]";function o(l){if(!e(l))return!1;var s=r(l);return s==t||s==a||s==n||s==i}return yr=o,yr}var vr,Wa;function Ju(){if(Wa)return vr;Wa=1;var r=Y(),e=r["__core-js_shared__"];return vr=e,vr}var br,Va;function Qu(){if(Va)return br;Va=1;var r=Ju(),e=(function(){var t=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function n(t){return!!e&&e in t}return br=n,br}var _r,Ya;function Ul(){if(Ya)return _r;Ya=1;var r=Function.prototype,e=r.toString;function n(t){if(t!=null){try{return e.call(t)}catch{}try{return t+""}catch{}}return""}return _r=n,_r}var Sr,Xa;function ec(){if(Xa)return Sr;Xa=1;var r=Gl(),e=Qu(),n=_e(),t=Ul(),a=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,o=Function.prototype,l=Object.prototype,s=o.toString,u=l.hasOwnProperty,f=RegExp("^"+s.call(u).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function d(c){if(!n(c)||e(c))return!1;var h=r(c)?f:i;return h.test(t(c))}return Sr=d,Sr}var xr,Za;function rc(){if(Za)return xr;Za=1;function r(e,n){return e==null?void 0:e[n]}return xr=r,xr}var Ar,Ja;function ee(){if(Ja)return Ar;Ja=1;var r=ec(),e=rc();function n(t,a){var i=e(t,a);return r(i)?i:void 0}return Ar=n,Ar}var qr,Qa;function Me(){if(Qa)return qr;Qa=1;var r=ee(),e=r(Object,"create");return qr=e,qr}var Cr,ei;function tc(){if(ei)return Cr;ei=1;var r=Me();function e(){this.__data__=r?r(null):{},this.size=0}return Cr=e,Cr}var Rr,ri;function nc(){if(ri)return Rr;ri=1;function r(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}return Rr=r,Rr}var wr,ti;function ac(){if(ti)return wr;ti=1;var r=Me(),e="__lodash_hash_undefined__",n=Object.prototype,t=n.hasOwnProperty;function a(i){var o=this.__data__;if(r){var l=o[i];return l===e?void 0:l}return t.call(o,i)?o[i]:void 0}return wr=a,wr}var Tr,ni;function ic(){if(ni)return Tr;ni=1;var r=Me(),e=Object.prototype,n=e.hasOwnProperty;function t(a){var i=this.__data__;return r?i[a]!==void 0:n.call(i,a)}return Tr=t,Tr}var Or,ai;function oc(){if(ai)return Or;ai=1;var r=Me(),e="__lodash_hash_undefined__";function n(t,a){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=r&&a===void 0?e:a,this}return Or=n,Or}var Mr,ii;function lc(){if(ii)return Mr;ii=1;var r=tc(),e=nc(),n=ac(),t=ic(),a=oc();function i(o){var l=-1,s=o==null?0:o.length;for(this.clear();++l<s;){var u=o[l];this.set(u[0],u[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=n,i.prototype.has=t,i.prototype.set=a,Mr=i,Mr}var Pr,oi;function sc(){if(oi)return Pr;oi=1;function r(){this.__data__=[],this.size=0}return Pr=r,Pr}var Er,li;function Qn(){if(li)return Er;li=1;function r(e,n){return e===n||e!==e&&n!==n}return Er=r,Er}var Ir,si;function Pe(){if(si)return Ir;si=1;var r=Qn();function e(n,t){for(var a=n.length;a--;)if(r(n[a][0],t))return a;return-1}return Ir=e,Ir}var Lr,ui;function uc(){if(ui)return Lr;ui=1;var r=Pe(),e=Array.prototype,n=e.splice;function t(a){var i=this.__data__,o=r(i,a);if(o<0)return!1;var l=i.length-1;return o==l?i.pop():n.call(i,o,1),--this.size,!0}return Lr=t,Lr}var Dr,ci;function cc(){if(ci)return Dr;ci=1;var r=Pe();function e(n){var t=this.__data__,a=r(t,n);return a<0?void 0:t[a][1]}return Dr=e,Dr}var Nr,fi;function fc(){if(fi)return Nr;fi=1;var r=Pe();function e(n){return r(this.__data__,n)>-1}return Nr=e,Nr}var kr,di;function dc(){if(di)return kr;di=1;var r=Pe();function e(n,t){var a=this.__data__,i=r(a,n);return i<0?(++this.size,a.push([n,t])):a[i][1]=t,this}return kr=e,kr}var Fr,hi;function Ee(){if(hi)return Fr;hi=1;var r=sc(),e=uc(),n=cc(),t=fc(),a=dc();function i(o){var l=-1,s=o==null?0:o.length;for(this.clear();++l<s;){var u=o[l];this.set(u[0],u[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=n,i.prototype.has=t,i.prototype.set=a,Fr=i,Fr}var jr,pi;function ea(){if(pi)return jr;pi=1;var r=ee(),e=Y(),n=r(e,"Map");return jr=n,jr}var Hr,gi;function hc(){if(gi)return Hr;gi=1;var r=lc(),e=Ee(),n=ea();function t(){this.size=0,this.__data__={hash:new r,map:new(n||e),string:new r}}return Hr=t,Hr}var zr,mi;function pc(){if(mi)return zr;mi=1;function r(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}return zr=r,zr}var Br,yi;function Ie(){if(yi)return Br;yi=1;var r=pc();function e(n,t){var a=n.__data__;return r(t)?a[typeof t=="string"?"string":"hash"]:a.map}return Br=e,Br}var Gr,vi;function gc(){if(vi)return Gr;vi=1;var r=Ie();function e(n){var t=r(this,n).delete(n);return this.size-=t?1:0,t}return Gr=e,Gr}var Ur,bi;function mc(){if(bi)return Ur;bi=1;var r=Ie();function e(n){return r(this,n).get(n)}return Ur=e,Ur}var Kr,_i;function yc(){if(_i)return Kr;_i=1;var r=Ie();function e(n){return r(this,n).has(n)}return Kr=e,Kr}var $r,Si;function vc(){if(Si)return $r;Si=1;var r=Ie();function e(n,t){var a=r(this,n),i=a.size;return a.set(n,t),this.size+=a.size==i?0:1,this}return $r=e,$r}var Wr,xi;function ra(){if(xi)return Wr;xi=1;var r=hc(),e=gc(),n=mc(),t=yc(),a=vc();function i(o){var l=-1,s=o==null?0:o.length;for(this.clear();++l<s;){var u=o[l];this.set(u[0],u[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=n,i.prototype.has=t,i.prototype.set=a,Wr=i,Wr}var Vr,Ai;function bc(){if(Ai)return Vr;Ai=1;var r=ra(),e="Expected a function";function n(t,a){if(typeof t!="function"||a!=null&&typeof a!="function")throw new TypeError(e);var i=function(){var o=arguments,l=a?a.apply(this,o):o[0],s=i.cache;if(s.has(l))return s.get(l);var u=t.apply(this,o);return i.cache=s.set(l,u)||s,u};return i.cache=new(n.Cache||r),i}return n.Cache=r,Vr=n,Vr}var Yr,qi;function _c(){if(qi)return Yr;qi=1;var r=bc(),e=500;function n(t){var a=r(t,function(o){return i.size===e&&i.clear(),o}),i=a.cache;return a}return Yr=n,Yr}var Xr,Ci;function Sc(){if(Ci)return Xr;Ci=1;var r=_c(),e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g,t=r(function(a){var i=[];return a.charCodeAt(0)===46&&i.push(""),a.replace(e,function(o,l,s,u){i.push(s?u.replace(n,"$1"):l||o)}),i});return Xr=t,Xr}var Zr,Ri;function Kl(){if(Ri)return Zr;Ri=1;var r=V(),e=Jn(),n=Sc(),t=Hl();function a(i,o){return r(i)?i:e(i,o)?[i]:n(t(i))}return Zr=a,Zr}var Jr,wi;function Le(){if(wi)return Jr;wi=1;var r=qe();function e(n){if(typeof n=="string"||r(n))return n;var t=n+"";return t=="0"&&1/n==-1/0?"-0":t}return Jr=e,Jr}var Qr,Ti;function ta(){if(Ti)return Qr;Ti=1;var r=Kl(),e=Le();function n(t,a){a=r(a,t);for(var i=0,o=a.length;t!=null&&i<o;)t=t[e(a[i++])];return i&&i==o?t:void 0}return Qr=n,Qr}var et,Oi;function xc(){if(Oi)return et;Oi=1;var r=Ee();function e(){this.__data__=new r,this.size=0}return et=e,et}var rt,Mi;function Ac(){if(Mi)return rt;Mi=1;function r(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}return rt=r,rt}var tt,Pi;function qc(){if(Pi)return tt;Pi=1;function r(e){return this.__data__.get(e)}return tt=r,tt}var nt,Ei;function Cc(){if(Ei)return nt;Ei=1;function r(e){return this.__data__.has(e)}return nt=r,nt}var at,Ii;function Rc(){if(Ii)return at;Ii=1;var r=Ee(),e=ea(),n=ra(),t=200;function a(i,o){var l=this.__data__;if(l instanceof r){var s=l.__data__;if(!e||s.length<t-1)return s.push([i,o]),this.size=++l.size,this;l=this.__data__=new n(s)}return l.set(i,o),this.size=l.size,this}return at=a,at}var it,Li;function $l(){if(Li)return it;Li=1;var r=Ee(),e=xc(),n=Ac(),t=qc(),a=Cc(),i=Rc();function o(l){var s=this.__data__=new r(l);this.size=s.size}return o.prototype.clear=e,o.prototype.delete=n,o.prototype.get=t,o.prototype.has=a,o.prototype.set=i,it=o,it}var ot,Di;function wc(){if(Di)return ot;Di=1;var r="__lodash_hash_undefined__";function e(n){return this.__data__.set(n,r),this}return ot=e,ot}var lt,Ni;function Tc(){if(Ni)return lt;Ni=1;function r(e){return this.__data__.has(e)}return lt=r,lt}var st,ki;function Oc(){if(ki)return st;ki=1;var r=ra(),e=wc(),n=Tc();function t(a){var i=-1,o=a==null?0:a.length;for(this.__data__=new r;++i<o;)this.add(a[i])}return t.prototype.add=t.prototype.push=e,t.prototype.has=n,st=t,st}var ut,Fi;function Mc(){if(Fi)return ut;Fi=1;function r(e,n){for(var t=-1,a=e==null?0:e.length;++t<a;)if(n(e[t],t,e))return!0;return!1}return ut=r,ut}var ct,ji;function Pc(){if(ji)return ct;ji=1;function r(e,n){return e.has(n)}return ct=r,ct}var ft,Hi;function Wl(){if(Hi)return ft;Hi=1;var r=Oc(),e=Mc(),n=Pc(),t=1,a=2;function i(o,l,s,u,f,d){var c=s&t,h=o.length,g=l.length;if(h!=g&&!(c&&g>h))return!1;var v=d.get(o),b=d.get(l);if(v&&b)return v==l&&b==o;var y=-1,_=!0,m=s&a?new r:void 0;for(d.set(o,l),d.set(l,o);++y<h;){var S=o[y],T=l[y];if(u)var A=c?u(T,S,y,l,o,d):u(S,T,y,o,l,d);if(A!==void 0){if(A)continue;_=!1;break}if(m){if(!e(l,function(q,P){if(!n(m,P)&&(S===q||f(S,q,s,u,d)))return m.push(P)})){_=!1;break}}else if(!(S===T||f(S,T,s,u,d))){_=!1;break}}return d.delete(o),d.delete(l),_}return ft=i,ft}var dt,zi;function Ec(){if(zi)return dt;zi=1;var r=Y(),e=r.Uint8Array;return dt=e,dt}var ht,Bi;function Ic(){if(Bi)return ht;Bi=1;function r(e){var n=-1,t=Array(e.size);return e.forEach(function(a,i){t[++n]=[i,a]}),t}return ht=r,ht}var pt,Gi;function Lc(){if(Gi)return pt;Gi=1;function r(e){var n=-1,t=Array(e.size);return e.forEach(function(a){t[++n]=a}),t}return pt=r,pt}var gt,Ui;function Dc(){if(Ui)return gt;Ui=1;var r=Se(),e=Ec(),n=Qn(),t=Wl(),a=Ic(),i=Lc(),o=1,l=2,s="[object Boolean]",u="[object Date]",f="[object Error]",d="[object Map]",c="[object Number]",h="[object RegExp]",g="[object Set]",v="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",m=r?r.prototype:void 0,S=m?m.valueOf:void 0;function T(A,q,P,N,j,C,K){switch(P){case _:if(A.byteLength!=q.byteLength||A.byteOffset!=q.byteOffset)return!1;A=A.buffer,q=q.buffer;case y:return!(A.byteLength!=q.byteLength||!C(new e(A),new e(q)));case s:case u:case c:return n(+A,+q);case f:return A.name==q.name&&A.message==q.message;case h:case v:return A==q+"";case d:var z=a;case g:var Z=N&o;if(z||(z=i),A.size!=q.size&&!Z)return!1;var re=K.get(A);if(re)return re==q;N|=l,K.set(A,q);var Fe=t(z(A),z(q),N,j,C,K);return K.delete(A),Fe;case b:if(S)return S.call(A)==S.call(q)}return!1}return gt=T,gt}var mt,Ki;function Nc(){if(Ki)return mt;Ki=1;var r=zl(),e=V();function n(t,a,i){var o=a(t);return e(t)?o:r(o,i(t))}return mt=n,mt}var yt,$i;function kc(){if($i)return yt;$i=1;function r(e,n){for(var t=-1,a=e==null?0:e.length,i=0,o=[];++t<a;){var l=e[t];n(l,t,e)&&(o[i++]=l)}return o}return yt=r,yt}var vt,Wi;function Fc(){if(Wi)return vt;Wi=1;function r(){return[]}return vt=r,vt}var bt,Vi;function jc(){if(Vi)return bt;Vi=1;var r=kc(),e=Fc(),n=Object.prototype,t=n.propertyIsEnumerable,a=Object.getOwnPropertySymbols,i=a?function(o){return o==null?[]:(o=Object(o),r(a(o),function(l){return t.call(o,l)}))}:e;return bt=i,bt}var _t,Yi;function Hc(){if(Yi)return _t;Yi=1;function r(e,n){for(var t=-1,a=Array(e);++t<e;)a[t]=n(t);return a}return _t=r,_t}var de={exports:{}},St,Xi;function zc(){if(Xi)return St;Xi=1;function r(){return!1}return St=r,St}de.exports;var Zi;function Vl(){return Zi||(Zi=1,(function(r,e){var n=Y(),t=zc(),a=e&&!e.nodeType&&e,i=a&&!0&&r&&!r.nodeType&&r,o=i&&i.exports===a,l=o?n.Buffer:void 0,s=l?l.isBuffer:void 0,u=s||t;r.exports=u})(de,de.exports)),de.exports}var xt,Ji;function na(){if(Ji)return xt;Ji=1;var r=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function n(t,a){var i=typeof t;return a=a??r,!!a&&(i=="number"||i!="symbol"&&e.test(t))&&t>-1&&t%1==0&&t<a}return xt=n,xt}var At,Qi;function aa(){if(Qi)return At;Qi=1;var r=9007199254740991;function e(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=r}return At=e,At}var qt,eo;function Bc(){if(eo)return qt;eo=1;var r=xe(),e=aa(),n=Ae(),t="[object Arguments]",a="[object Array]",i="[object Boolean]",o="[object Date]",l="[object Error]",s="[object Function]",u="[object Map]",f="[object Number]",d="[object Object]",c="[object RegExp]",h="[object Set]",g="[object String]",v="[object WeakMap]",b="[object ArrayBuffer]",y="[object DataView]",_="[object Float32Array]",m="[object Float64Array]",S="[object Int8Array]",T="[object Int16Array]",A="[object Int32Array]",q="[object Uint8Array]",P="[object Uint8ClampedArray]",N="[object Uint16Array]",j="[object Uint32Array]",C={};C[_]=C[m]=C[S]=C[T]=C[A]=C[q]=C[P]=C[N]=C[j]=!0,C[t]=C[a]=C[b]=C[i]=C[y]=C[o]=C[l]=C[s]=C[u]=C[f]=C[d]=C[c]=C[h]=C[g]=C[v]=!1;function K(z){return n(z)&&e(z.length)&&!!C[r(z)]}return qt=K,qt}var Ct,ro;function Yl(){if(ro)return Ct;ro=1;function r(e){return function(n){return e(n)}}return Ct=r,Ct}var he={exports:{}};he.exports;var to;function Gc(){return to||(to=1,(function(r,e){var n=Nl(),t=e&&!e.nodeType&&e,a=t&&!0&&r&&!r.nodeType&&r,i=a&&a.exports===t,o=i&&n.process,l=(function(){try{var s=a&&a.require&&a.require("util").types;return s||o&&o.binding&&o.binding("util")}catch{}})();r.exports=l})(he,he.exports)),he.exports}var Rt,no;function Xl(){if(no)return Rt;no=1;var r=Bc(),e=Yl(),n=Gc(),t=n&&n.isTypedArray,a=t?e(t):r;return Rt=a,Rt}var wt,ao;function Uc(){if(ao)return wt;ao=1;var r=Hc(),e=Zn(),n=V(),t=Vl(),a=na(),i=Xl(),o=Object.prototype,l=o.hasOwnProperty;function s(u,f){var d=n(u),c=!d&&e(u),h=!d&&!c&&t(u),g=!d&&!c&&!h&&i(u),v=d||c||h||g,b=v?r(u.length,String):[],y=b.length;for(var _ in u)(f||l.call(u,_))&&!(v&&(_=="length"||h&&(_=="offset"||_=="parent")||g&&(_=="buffer"||_=="byteLength"||_=="byteOffset")||a(_,y)))&&b.push(_);return b}return wt=s,wt}var Tt,io;function Kc(){if(io)return Tt;io=1;var r=Object.prototype;function e(n){var t=n&&n.constructor,a=typeof t=="function"&&t.prototype||r;return n===a}return Tt=e,Tt}var Ot,oo;function $c(){if(oo)return Ot;oo=1;function r(e,n){return function(t){return e(n(t))}}return Ot=r,Ot}var Mt,lo;function Wc(){if(lo)return Mt;lo=1;var r=$c(),e=r(Object.keys,Object);return Mt=e,Mt}var Pt,so;function Vc(){if(so)return Pt;so=1;var r=Kc(),e=Wc(),n=Object.prototype,t=n.hasOwnProperty;function a(i){if(!r(i))return e(i);var o=[];for(var l in Object(i))t.call(i,l)&&l!="constructor"&&o.push(l);return o}return Pt=a,Pt}var Et,uo;function De(){if(uo)return Et;uo=1;var r=Gl(),e=aa();function n(t){return t!=null&&e(t.length)&&!r(t)}return Et=n,Et}var It,co;function Ne(){if(co)return It;co=1;var r=Uc(),e=Vc(),n=De();function t(a){return n(a)?r(a):e(a)}return It=t,It}var Lt,fo;function Yc(){if(fo)return Lt;fo=1;var r=Nc(),e=jc(),n=Ne();function t(a){return r(a,n,e)}return Lt=t,Lt}var Dt,ho;function Xc(){if(ho)return Dt;ho=1;var r=Yc(),e=1,n=Object.prototype,t=n.hasOwnProperty;function a(i,o,l,s,u,f){var d=l&e,c=r(i),h=c.length,g=r(o),v=g.length;if(h!=v&&!d)return!1;for(var b=h;b--;){var y=c[b];if(!(d?y in o:t.call(o,y)))return!1}var _=f.get(i),m=f.get(o);if(_&&m)return _==o&&m==i;var S=!0;f.set(i,o),f.set(o,i);for(var T=d;++b<h;){y=c[b];var A=i[y],q=o[y];if(s)var P=d?s(q,A,y,o,i,f):s(A,q,y,i,o,f);if(!(P===void 0?A===q||u(A,q,l,s,f):P)){S=!1;break}T||(T=y=="constructor")}if(S&&!T){var N=i.constructor,j=o.constructor;N!=j&&"constructor"in i&&"constructor"in o&&!(typeof N=="function"&&N instanceof N&&typeof j=="function"&&j instanceof j)&&(S=!1)}return f.delete(i),f.delete(o),S}return Dt=a,Dt}var Nt,po;function Zc(){if(po)return Nt;po=1;var r=ee(),e=Y(),n=r(e,"DataView");return Nt=n,Nt}var kt,go;function Jc(){if(go)return kt;go=1;var r=ee(),e=Y(),n=r(e,"Promise");return kt=n,kt}var Ft,mo;function Qc(){if(mo)return Ft;mo=1;var r=ee(),e=Y(),n=r(e,"Set");return Ft=n,Ft}var jt,yo;function ef(){if(yo)return jt;yo=1;var r=ee(),e=Y(),n=r(e,"WeakMap");return jt=n,jt}var Ht,vo;function rf(){if(vo)return Ht;vo=1;var r=Zc(),e=ea(),n=Jc(),t=Qc(),a=ef(),i=xe(),o=Ul(),l="[object Map]",s="[object Object]",u="[object Promise]",f="[object Set]",d="[object WeakMap]",c="[object DataView]",h=o(r),g=o(e),v=o(n),b=o(t),y=o(a),_=i;return(r&&_(new r(new ArrayBuffer(1)))!=c||e&&_(new e)!=l||n&&_(n.resolve())!=u||t&&_(new t)!=f||a&&_(new a)!=d)&&(_=function(m){var S=i(m),T=S==s?m.constructor:void 0,A=T?o(T):"";if(A)switch(A){case h:return c;case g:return l;case v:return u;case b:return f;case y:return d}return S}),Ht=_,Ht}var zt,bo;function tf(){if(bo)return zt;bo=1;var r=$l(),e=Wl(),n=Dc(),t=Xc(),a=rf(),i=V(),o=Vl(),l=Xl(),s=1,u="[object Arguments]",f="[object Array]",d="[object Object]",c=Object.prototype,h=c.hasOwnProperty;function g(v,b,y,_,m,S){var T=i(v),A=i(b),q=T?f:a(v),P=A?f:a(b);q=q==u?d:q,P=P==u?d:P;var N=q==d,j=P==d,C=q==P;if(C&&o(v)){if(!o(b))return!1;T=!0,N=!1}if(C&&!N)return S||(S=new r),T||l(v)?e(v,b,y,_,m,S):n(v,b,q,y,_,m,S);if(!(y&s)){var K=N&&h.call(v,"__wrapped__"),z=j&&h.call(b,"__wrapped__");if(K||z){var Z=K?v.value():v,re=z?b.value():b;return S||(S=new r),m(Z,re,y,_,S)}}return C?(S||(S=new r),t(v,b,y,_,m,S)):!1}return zt=g,zt}var Bt,_o;function Zl(){if(_o)return Bt;_o=1;var r=tf(),e=Ae();function n(t,a,i,o,l){return t===a?!0:t==null||a==null||!e(t)&&!e(a)?t!==t&&a!==a:r(t,a,i,o,n,l)}return Bt=n,Bt}var Gt,So;function nf(){if(So)return Gt;So=1;var r=$l(),e=Zl(),n=1,t=2;function a(i,o,l,s){var u=l.length,f=u,d=!s;if(i==null)return!f;for(i=Object(i);u--;){var c=l[u];if(d&&c[2]?c[1]!==i[c[0]]:!(c[0]in i))return!1}for(;++u<f;){c=l[u];var h=c[0],g=i[h],v=c[1];if(d&&c[2]){if(g===void 0&&!(h in i))return!1}else{var b=new r;if(s)var y=s(g,v,h,i,o,b);if(!(y===void 0?e(v,g,n|t,s,b):y))return!1}}return!0}return Gt=a,Gt}var Ut,xo;function Jl(){if(xo)return Ut;xo=1;var r=_e();function e(n){return n===n&&!r(n)}return Ut=e,Ut}var Kt,Ao;function af(){if(Ao)return Kt;Ao=1;var r=Jl(),e=Ne();function n(t){for(var a=e(t),i=a.length;i--;){var o=a[i],l=t[o];a[i]=[o,l,r(l)]}return a}return Kt=n,Kt}var $t,qo;function Ql(){if(qo)return $t;qo=1;function r(e,n){return function(t){return t==null?!1:t[e]===n&&(n!==void 0||e in Object(t))}}return $t=r,$t}var Wt,Co;function of(){if(Co)return Wt;Co=1;var r=nf(),e=af(),n=Ql();function t(a){var i=e(a);return i.length==1&&i[0][2]?n(i[0][0],i[0][1]):function(o){return o===a||r(o,a,i)}}return Wt=t,Wt}var Vt,Ro;function lf(){if(Ro)return Vt;Ro=1;var r=ta();function e(n,t,a){var i=n==null?void 0:r(n,t);return i===void 0?a:i}return Vt=e,Vt}var Yt,wo;function sf(){if(wo)return Yt;wo=1;function r(e,n){return e!=null&&n in Object(e)}return Yt=r,Yt}var Xt,To;function uf(){if(To)return Xt;To=1;var r=Kl(),e=Zn(),n=V(),t=na(),a=aa(),i=Le();function o(l,s,u){s=r(s,l);for(var f=-1,d=s.length,c=!1;++f<d;){var h=i(s[f]);if(!(c=l!=null&&u(l,h)))break;l=l[h]}return c||++f!=d?c:(d=l==null?0:l.length,!!d&&a(d)&&t(h,d)&&(n(l)||e(l)))}return Xt=o,Xt}var Zt,Oo;function cf(){if(Oo)return Zt;Oo=1;var r=sf(),e=uf();function n(t,a){return t!=null&&e(t,a,r)}return Zt=n,Zt}var Jt,Mo;function ff(){if(Mo)return Jt;Mo=1;var r=Zl(),e=lf(),n=cf(),t=Jn(),a=Jl(),i=Ql(),o=Le(),l=1,s=2;function u(f,d){return t(f)&&a(d)?i(o(f),d):function(c){var h=e(c,f);return h===void 0&&h===d?n(c,f):r(d,h,l|s)}}return Jt=u,Jt}var Qt,Po;function ke(){if(Po)return Qt;Po=1;function r(e){return e}return Qt=r,Qt}var en,Eo;function df(){if(Eo)return en;Eo=1;function r(e){return function(n){return n==null?void 0:n[e]}}return en=r,en}var rn,Io;function hf(){if(Io)return rn;Io=1;var r=ta();function e(n){return function(t){return r(t,n)}}return rn=e,rn}var tn,Lo;function pf(){if(Lo)return tn;Lo=1;var r=df(),e=hf(),n=Jn(),t=Le();function a(i){return n(i)?r(t(i)):e(i)}return tn=a,tn}var nn,Do;function es(){if(Do)return nn;Do=1;var r=of(),e=ff(),n=ke(),t=V(),a=pf();function i(o){return typeof o=="function"?o:o==null?n:typeof o=="object"?t(o)?e(o[0],o[1]):r(o):a(o)}return nn=i,nn}var an,No;function gf(){if(No)return an;No=1;function r(e){return function(n,t,a){for(var i=-1,o=Object(n),l=a(n),s=l.length;s--;){var u=l[e?s:++i];if(t(o[u],u,o)===!1)break}return n}}return an=r,an}var on,ko;function mf(){if(ko)return on;ko=1;var r=gf(),e=r();return on=e,on}var ln,Fo;function yf(){if(Fo)return ln;Fo=1;var r=mf(),e=Ne();function n(t,a){return t&&r(t,a,e)}return ln=n,ln}var sn,jo;function vf(){if(jo)return sn;jo=1;var r=De();function e(n,t){return function(a,i){if(a==null)return a;if(!r(a))return n(a,i);for(var o=a.length,l=t?o:-1,s=Object(a);(t?l--:++l<o)&&i(s[l],l,s)!==!1;);return a}}return sn=e,sn}var un,Ho;function bf(){if(Ho)return un;Ho=1;var r=yf(),e=vf(),n=e(r);return un=n,un}var cn,zo;function rs(){if(zo)return cn;zo=1;var r=bf(),e=De();function n(t,a){var i=-1,o=e(t)?Array(t.length):[];return r(t,function(l,s,u){o[++i]=a(l,s,u)}),o}return cn=n,cn}var fn,Bo;function _f(){if(Bo)return fn;Bo=1;function r(e,n){var t=e.length;for(e.sort(n);t--;)e[t]=e[t].value;return e}return fn=r,fn}var dn,Go;function Sf(){if(Go)return dn;Go=1;var r=qe();function e(n,t){if(n!==t){var a=n!==void 0,i=n===null,o=n===n,l=r(n),s=t!==void 0,u=t===null,f=t===t,d=r(t);if(!u&&!d&&!l&&n>t||l&&s&&f&&!u&&!d||i&&s&&f||!a&&f||!o)return 1;if(!i&&!l&&!d&&n<t||d&&a&&o&&!i&&!l||u&&a&&o||!s&&o||!f)return-1}return 0}return dn=e,dn}var hn,Uo;function xf(){if(Uo)return hn;Uo=1;var r=Sf();function e(n,t,a){for(var i=-1,o=n.criteria,l=t.criteria,s=o.length,u=a.length;++i<s;){var f=r(o[i],l[i]);if(f){if(i>=u)return f;var d=a[i];return f*(d=="desc"?-1:1)}}return n.index-t.index}return hn=e,hn}var pn,Ko;function Af(){if(Ko)return pn;Ko=1;var r=Oe(),e=ta(),n=es(),t=rs(),a=_f(),i=Yl(),o=xf(),l=ke(),s=V();function u(f,d,c){d.length?d=r(d,function(v){return s(v)?function(b){return e(b,v.length===1?v[0]:v)}:v}):d=[l];var h=-1;d=r(d,i(n));var g=t(f,function(v,b,y){var _=r(d,function(m){return m(v)});return{criteria:_,index:++h,value:v}});return a(g,function(v,b){return o(v,b,c)})}return pn=u,pn}var gn,$o;function qf(){if($o)return gn;$o=1;function r(e,n,t){switch(t.length){case 0:return e.call(n);case 1:return e.call(n,t[0]);case 2:return e.call(n,t[0],t[1]);case 3:return e.call(n,t[0],t[1],t[2])}return e.apply(n,t)}return gn=r,gn}var mn,Wo;function Cf(){if(Wo)return mn;Wo=1;var r=qf(),e=Math.max;function n(t,a,i){return a=e(a===void 0?t.length-1:a,0),function(){for(var o=arguments,l=-1,s=e(o.length-a,0),u=Array(s);++l<s;)u[l]=o[a+l];l=-1;for(var f=Array(a+1);++l<a;)f[l]=o[l];return f[a]=i(u),r(t,this,f)}}return mn=n,mn}var yn,Vo;function Rf(){if(Vo)return yn;Vo=1;function r(e){return function(){return e}}return yn=r,yn}var vn,Yo;function wf(){if(Yo)return vn;Yo=1;var r=ee(),e=(function(){try{var n=r(Object,"defineProperty");return n({},"",{}),n}catch{}})();return vn=e,vn}var bn,Xo;function Tf(){if(Xo)return bn;Xo=1;var r=Rf(),e=wf(),n=ke(),t=e?function(a,i){return e(a,"toString",{configurable:!0,enumerable:!1,value:r(i),writable:!0})}:n;return bn=t,bn}var _n,Zo;function Of(){if(Zo)return _n;Zo=1;var r=800,e=16,n=Date.now;function t(a){var i=0,o=0;return function(){var l=n(),s=e-(l-o);if(o=l,s>0){if(++i>=r)return arguments[0]}else i=0;return a.apply(void 0,arguments)}}return _n=t,_n}var Sn,Jo;function Mf(){if(Jo)return Sn;Jo=1;var r=Tf(),e=Of(),n=e(r);return Sn=n,Sn}var xn,Qo;function Pf(){if(Qo)return xn;Qo=1;var r=ke(),e=Cf(),n=Mf();function t(a,i){return n(e(a,i,r),a+"")}return xn=t,xn}var An,el;function ia(){if(el)return An;el=1;var r=Qn(),e=De(),n=na(),t=_e();function a(i,o,l){if(!t(l))return!1;var s=typeof o;return(s=="number"?e(l)&&n(o,l.length):s=="string"&&o in l)?r(l[o],i):!1}return An=a,An}var qn,rl;function Ef(){if(rl)return qn;rl=1;var r=Bl(),e=Af(),n=Pf(),t=ia(),a=n(function(i,o){if(i==null)return[];var l=o.length;return l>1&&t(i,o[0],o[1])?o=[]:l>2&&t(o[0],o[1],o[2])&&(o=[o[0]]),e(i,r(o,1),[])});return qn=a,qn}var If=Ef();const Lf=oe(If);var Cn,tl;function Df(){if(tl)return Cn;tl=1;function r(e){for(var n=-1,t=e==null?0:e.length,a={};++n<t;){var i=e[n];a[i[0]]=i[1]}return a}return Cn=r,Cn}var Nf=Df();const nl=oe(Nf);var Rn,al;function kf(){if(al)return Rn;al=1;var r=Math.ceil,e=Math.max;function n(t,a,i,o){for(var l=-1,s=e(r((a-t)/(i||1)),0),u=Array(s);s--;)u[o?s:++l]=t,t+=i;return u}return Rn=n,Rn}var wn,il;function Ff(){if(il)return wn;il=1;var r=kf(),e=ia(),n=Fl();function t(a){return function(i,o,l){return l&&typeof l!="number"&&e(i,o,l)&&(o=l=void 0),i=n(i),o===void 0?(o=i,i=0):o=n(o),l=l===void 0?i<o?1:-1:n(l),r(i,o,l,a)}}return wn=t,wn}var Tn,ol;function jf(){if(ol)return Tn;ol=1;var r=Ff(),e=r();return Tn=e,Tn}var Hf=jf();const zf=oe(Hf);var On,ll;function Bf(){if(ll)return On;ll=1;var r=Oe(),e=es(),n=rs(),t=V();function a(i,o){var l=t(i)?r:n;return l(i,e(o,3))}return On=a,On}var Mn,sl;function Gf(){if(sl)return Mn;sl=1;var r=Bl(),e=Bf();function n(t,a){return r(e(t,a),1)}return Mn=n,Mn}var Uf=Gf();const Kf=oe(Uf);var Pn,ul;function ts(){if(ul)return Pn;ul=1;function r(e,n,t){return e===e&&(t!==void 0&&(e=e<=t?e:t),n!==void 0&&(e=e>=n?e:n)),e}return Pn=r,Pn}var En,cl;function $f(){if(cl)return En;cl=1;function r(e,n){var t=-1,a=e.length;for(n||(n=Array(a));++t<a;)n[t]=e[t];return n}return En=r,En}var In,fl;function Wf(){if(fl)return In;fl=1;var r=Math.floor,e=Math.random;function n(t,a){return t+r(e()*(a-t+1))}return In=n,In}var Ln,dl;function ns(){if(dl)return Ln;dl=1;var r=Wf();function e(n,t){var a=-1,i=n.length,o=i-1;for(t=t===void 0?i:t;++a<t;){var l=r(a,o),s=n[l];n[l]=n[a],n[a]=s}return n.length=t,n}return Ln=e,Ln}var Dn,hl;function Vf(){if(hl)return Dn;hl=1;var r=ts(),e=$f(),n=ns();function t(a,i){return n(e(a),r(i,0,a.length))}return Dn=t,Dn}var Nn,pl;function Yf(){if(pl)return Nn;pl=1;var r=Oe();function e(n,t){return r(t,function(a){return n[a]})}return Nn=e,Nn}var kn,gl;function Xf(){if(gl)return kn;gl=1;var r=Yf(),e=Ne();function n(t){return t==null?[]:r(t,e(t))}return kn=n,kn}var Fn,ml;function Zf(){if(ml)return Fn;ml=1;var r=ts(),e=ns(),n=Xf();function t(a,i){var o=n(a);return e(o,r(i,0,o.length))}return Fn=t,Fn}var jn,yl;function Jf(){if(yl)return jn;yl=1;var r=Vf(),e=Zf(),n=V(),t=ia(),a=jl();function i(o,l,s){(s?t(o,l,s):l===void 0)?l=1:l=a(l);var u=n(o)?r:e;return u(o,l)}return jn=i,jn}var Qf=Jf();const ed=oe(Qf),rd=r=>Yu(r,14),vl=r=>Object.values(r).reduce((e,n)=>e+n,0),td=(r,e,n={})=>{const t=Object.assign({draw:!1},n);if(Object.values(r).length<1)throw new Error("vote distribution must contain at least one party");if(!Object.values(r).every(g=>typeof g=="number"&&g>=0))throw new Error("party vote counts must be non-negative integers");if(!Number.isInteger(e)||e<=0)throw new Error("seats must be a positive integer");if(typeof t.draw!="boolean")throw new Error("opt.draw must be a boolean");const a=vl(r),i=nl(Object.entries(r).map(([g,v])=>{const b=Math.max(e-Object.keys(r).length,0),y=Math.round(b*v/a);return[g,y]})),o=nl(Object.entries(r).map(([g,v])=>{const b=e+Object.keys(r).length,y=Math.min(Math.round(b*v/a),e);return[g,y]})),l=Kf(Object.entries(r).map(([g,v])=>{const b=i[g],y=o[g];return zf(b,y).map(_=>{const m=rd(v/(_+.5));return{party:g,quotient:m}})})),s=vl(i),u=e-s,f=Lf(l,({quotient:g})=>-g),d=f[u-1].quotient,c=f.filter(({quotient:g})=>g>d),h=f.filter(({quotient:g})=>g===d);if(c.length+h.length===u)c.push(...h);else{if(!t.draw)throw new Error("result is ambiguous, a draw would need to be made, but opt.draw is disabled");c.push(...ed(h,u-c.length))}return c.reduce((g,{party:v})=>(g[v]+=1,g),i)},as=(r=be)=>r("pattern",{id:"greyHatchPattern",x:0,y:0,width:8,height:8,patternUnits:"userSpaceOnUse"},[r("rect",{x:0,y:0,width:8,height:8,fill:J.neoGrey[200]}),r("path",{d:"M0,2 L8,2",stroke:J.neoGrey[400],"stroke-width":.5}),r("path",{d:"M0,6 L8,6",stroke:J.neoGrey[400],"stroke-width":.5})]),is=(r=be)=>r("pattern",{id:"dataMissingHatchPattern",x:0,y:0,width:8,height:8,patternUnits:"userSpaceOnUse"},[r("rect",{x:0,y:0,width:8,height:8,fill:"#FFF3CC"}),r("path",{d:"M0,8 L8,0",stroke:"#FFB800","stroke-width":.5}),r("path",{d:"M-2,2 L2,-2",stroke:"#FFB800","stroke-width":.5}),r("path",{d:"M6,10 L10,6",stroke:"#FFB800","stroke-width":.5})]),os=(r=be)=>r("pattern",{id:"noLstHatchPattern",x:0,y:0,width:8,height:8,patternUnits:"userSpaceOnUse"},[r("rect",{x:0,y:0,width:8,height:8,fill:"#FFE5E5"}),r("path",{d:"M0,0 L8,8",stroke:"#ED4134","stroke-width":.5}),r("path",{d:"M-2,6 L2,10",stroke:"#ED4134","stroke-width":.5}),r("path",{d:"M6,-2 L10,2",stroke:"#ED4134","stroke-width":.5})]),F={greyHatch:{background:J.neoGrey[200],lines:J.neoGrey[400]},dataMissingHatch:{background:"#FFF3CC",lines:"#FFB800"},noLstHatch:{background:"#FFE5E5",lines:"#ED4134"}},Te=r=>Math.round(r*1e10)/1e10,nd=r=>r.reduce((e,n)=>e+n.seats,0),ad=r=>r.flat(),id=(r,e,n)=>{const t=(Math.PI-n)/2,a=e/r+t-Math.PI;return{x:Te(r*Math.cos(a)),y:Te(r*Math.sin(a))}},ls=(r,e,n,t)=>{const a=t*e*n/(r-e),i=1+t*(e-1)*e/2/(r-e);return a/i},ue=(r,e,n,t)=>{const a=t/Math.PI*.7142857142857143;return Math.abs(ls(r,e,n,t)*e/n-a)},od=(r,e,n)=>{let t=Math.floor(Math.log(r)/Math.log(2))||1,a=ue(r,t,e,n),i=0;for(ue(r,t+1,e,n)<a&&(i=1),ue(r,t-1,e,n)<a&&t>1&&(i=-1);ue(r,t+i,e,n)<a&&t>0;)a=ue(r,t+i,e,n),t+=i;return t},ld=(r,e)=>{var a,i;let n,t;for(let o=0;o<r.length;o++)t=Te((e[o]||0)/(((a=r[o])==null?void 0:a.length)??1)),(!n||t<n)&&(n=t);for(let o=0;o<r.length;o++)if(t=Te((e[o]||0)/(((i=r[o])==null?void 0:i.length)??1)),t===n)return o;return 0},sd=(r,e,n)=>{const t=nd(r),a=od(t,e,n),i=ls(t,a,e,n);let o={};for(let c=1;c<=a;c++)o[c]=e-(c-1)*i;o=td(o,t);const l=[];let s,u,f;for(let c=1;c<=a;c++){const h=[];s=e-(c-1)*i,u=n*s/((o[c]??1)-1||1);for(let g=0;g<=(o[c]??1)-1;g++)f={...id(s,g*u,n),r:.4*i},h.push(f);l.push(h)}const d=Array(l.length).fill(0);for(const c of r)for(let h=0;h<c.seats;h++){const g=ld(l,d),v=l[g],b=d[g]??0,y=v==null?void 0:v[b];y&&(y.fill=c.colour,y.party=String(c.id)),d[g]=b+1}return ad(l)},ud=r=>e=>r("circle",{cx:e.x,cy:e.y,r:e.r,fill:e.fill,class:e.party}),cd={seatCount:!1,arcAngle:180,hFunction:be},fd=(r,e={})=>{var b;const{seatCount:n,arcAngle:t,hFunction:a}=Object.assign({},cd,e);if(typeof n!="boolean")throw new Error("`seatCount` option must be a boolean");if(typeof a!="function")throw new Error("`hFunction` option must be a function");if(typeof t!="number"||t<=0||t>360)throw new Error("`arcAngle` option must be a number between 0 and 360");const i=t*Math.PI/180,o=20,l=sd(r,o,i),s=(((b=l[0])==null?void 0:b.r)??0)/.4||0,u=l.map(ud(a));n&&u.push(a("text",{x:0,y:0,"text-anchor":"middle",style:{"font-family":"Helvetica","font-size":.25*o+"px"},class:"seatNumber"},String(u.length)));const f=t<=180?o+s:o*(1+Math.sin((i-Math.PI)/2))+s,d=o+s,c=Math.max(f,d),h=t<=180?-o-s/2:-o*(1+Math.sin((i-Math.PI)/2))-s/2,g=a("defs",[as(a),is(a),os(a)]);return a("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:[-o-s/2,h,2*o+s,c].join(",")},[g,...u])},dd={seatCount:!1,arcAngle:200,arcAngleFlexibility:5,radius:380,seatSize:4.5,minSeatSize:1.8,maxSeatSize:3,spacing:1.8,innerRadiusRatio:.6,showLabels:!0,hFunction:be},hd=(r,e={})=>{const n={...dd,...e},{arcAngle:t,arcAngleFlexibility:a,radius:i,seatSize:o,minSeatSize:l,maxSeatSize:s,spacing:u,innerRadiusRatio:f,showLabels:d,hFunction:c}=n,h=i*f,g=r.reduce((R,D)=>R+D.seats,0);let v={seatSize:o,arcAngle:t,score:-1};const b=t-a,y=t+a;for(let R=b;R<=y;R+=2.5){const D=R*Math.PI/180;for(let I=s;I>=l;I-=.1){const G=I*2,$=G*u,X=Math.floor((i-h)/$);for(let W=1;W<=Math.min(X,10);W++){let k=0;for(let le=0;le<W;le++){const He=h+(le+.5)*$,se=G*u/He,ze=Math.floor(D/se);k+=ze}if(k>=g){const le=g/k,He=(I-l)/(s-l),se=(k-g)/g,ze=se<.15?1:se<.3?.7:se<.5?.4:.1,bs=1-Math.abs(R-t)/a,la=ze*.5+He*.3+le*.15+bs*.05;la>v.score&&(v={seatSize:I,arcAngle:R,rings:W,score:la})}}}}const _=v.seatSize,m=v.arcAngle,S=m*Math.PI/180,T=_*2,A=T*u,q=Math.floor((i-h)/A),P=[],N=-S/2-Math.PI/2,j=[];let C=0,K=[];for(let R=1;R<=q;R++){let D=0;const I=[];for(let G=0;G<R;G++){const $=h+(G+.5)*A,X=T*u/$,W=Math.floor(S/X);I.push(W),D+=W}if(D>=g){C=R,K=I;break}}if(C>0)j.push(...K);else for(let R=0;R<q;R++){const D=h+(R+.5)*A,I=T*u/D,G=Math.floor(S/I);j.push(G)}for(let R=0;R<j.length;R++){const D=h+(R+.5)*A,I=j[R]??0;if(I>0){const G=S/I;for(let $=0;$<I;$++){const X=N+($+.5)*G,W=Math.cos(X)*D,k=Math.sin(X)*D;P.push({ring:R,index:$,angle:X,x:W,y:k})}}}P.sort((R,D)=>{const I=R.angle-D.angle;return Math.abs(I)>.001?I:R.ring-D.ring});const z=[];let Z=0;r.forEach(R=>{const D=[],I=Math.min(R.seats,P.length-Z);let G=1/0,$=-1/0;for(let W=0;W<I&&Z<P.length;W++){const k=P[Z++];k&&(G=Math.min(G,k.angle),$=Math.max($,k.angle),Math.sqrt(k.x*k.x+k.y*k.y),D.push(c("circle",{fill:R.colour,stroke:R.colour,className:"circle seat-visual seat-hover-zone",transform:`translate(${k.x}, ${k.y})`,r:_,"data-party":R.name,"data-party-id":String(R.id),style:"pointer-events: all; cursor: pointer;"})))}const X=D;z.push(c("g",{className:"party-group","data-party":R.name,style:"opacity: 1; outline: none;"},X))});const re=c("g",{className:"arc-bg"},[c("circle",{className:"outer",cx:0,cy:0,fill:"#ffffff",r:i}),c("circle",{className:"inner",cx:0,cy:0,fill:"#ffffff",r:h})]),Fe=c("g",{className:"points-container"},z),hs=d?c("g",{className:"label-container",mask:"url(#label-clip)",style:"pointer-events: none;"},[c("text",{className:"party_count",dy:"-0.05em",style:"font-size: 24vw; font-weight: bold; text-anchor: middle; display: none; opacity: 0; fill: rgb(19, 90, 225); transform: scale(1);"}),c("text",{className:"party_name",y:0,dy:"1em",style:"font-size: 6vw; font-weight: normal; text-anchor: middle; display: none; opacity: 0; fill: rgb(19, 90, 225); transform: scale(1);"})]):null,ps=c("defs",[c("radialGradient",{id:"label-gradient"},[c("stop",{offset:"0%",style:"stop-color: rgb(255, 255, 255); stop-opacity: 1;"}),c("stop",{offset:"80%",style:"stop-color: rgb(255, 255, 255); stop-opacity: 1;"}),c("stop",{offset:"90%",style:"stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"}),c("stop",{offset:"100%",style:"stop-color: rgb(255, 255, 255); stop-opacity: 0;"})]),c("mask",{id:"label-clip"},[c("circle",{fill:"url(#label-gradient)",r:h})]),as(c),is(c),os(c)]),gs=c("g",{className:"arc-container",transform:`translate(${i}, ${i})`},[re,Fe,hs].filter(Boolean)),oa=S/2;let je;if(m<=180)je=i*Math.sin(oa)+_;else{const R=oa-Math.PI/2;je=i*(1+Math.sin(R))+_}const ms=i+_,ys=i*2,vs=Math.max(je,ms);return c("svg",{id:"chart-container","font-family":"Canva Sans Variable",viewBox:`0 0 ${ys} ${vs}`,preserveAspectRatio:"xMidYMid meet",xmlns:"http://www.w3.org/2000/svg"},[gs,ps])};function ss(r){return!r||!r.color?"#cccccc":r.color==="url(#hatchPattern)"?ae.COMPLETED:r.color==="url(#greyHatchPattern)"?F.greyHatch.lines:r.color}function Kn(r,e){if(!r)return;const n=r.querySelectorAll(".party-group");n&&n.length>0&&n.forEach(t=>{if(!t)return;const a=t,i=a.getAttribute("data-party");e?i===e?a.style.opacity=H.animation.hoverOpacity.active:a.style.opacity=H.animation.hoverOpacity.dimmed:a.style.opacity="1"})}function $n(r,e){r.forEach(n=>{const t=n,a=n.getAttribute("class")||"";e?a===e?(t.setAttribute("fill-opacity","1"),t.setAttribute("stroke-opacity","1")):(t.setAttribute("fill-opacity",H.animation.hoverOpacity.dimmed),t.setAttribute("stroke-opacity","0.2")):(t.setAttribute("fill-opacity","1"),t.setAttribute("stroke-opacity","1"))})}const pd=({containerRef:r,processedData:e,totalRepositories:n,arcAngle:t,useEnhanced:a,maxSeats:i,setHoveredData:o,activePartyName:l,setActivePartyName:s,chartConfig:u,seatSize:f})=>{fe.useEffect(()=>{if(!r.current||e.length===0)return;for(;r.current.firstChild;)r.current.removeChild(r.current.firstChild);const d=n<=i?1:i/n,c=e.filter(m=>m.value>0).map(m=>{const S=n<=i?m.value:Math.max(1,Math.floor(m.value*d));return{id:String(m.id),name:m.label,seats:S,colour:m.color==="url(#hatchPattern)"?ae.COMPLETED:m.color}}),h=a?hd(c,{arcAngle:t,arcAngleFlexibility:u.arcAngleFlexibility,radius:u.radius,seatSize:f,minSeatSize:u.minSeatSize,maxSeatSize:u.maxSeatSize,spacing:u.spacing,innerRadiusRatio:u.innerRadiusRatio,showLabels:!0}):fd(c,{arcAngle:t});h.properties&&(h.properties.width="100%",h.properties.height="100%",h.properties.style="display: block; width: 100%; max-width: 100%; height: auto;",h.properties.preserveAspectRatio="xMidYMid meet");const g=Eu(h),y=new DOMParser().parseFromString(g,"image/svg+xml").documentElement;if(!y)return;y.setAttribute("width","100%"),y.setAttribute("height","100%"),y.style.width="100%",y.style.height="auto",y.style.display="block",a?gd(y,c,e,o,l,s):md(y,c,e,o,l,s);const _=()=>{if(o(null),s(null),a)Kn(y,null);else{const m=y.querySelectorAll("circle");$n(m,null)}};return y&&y.addEventListener("mouseleave",_),r.current.appendChild(y),()=>{if(y&&y.removeEventListener("mouseleave",_),r.current)for(;r.current.firstChild;)r.current.removeChild(r.current.firstChild)}},[e,n,t,a,i,o,l,s,r,u,f])};function gd(r,e,n,t,a,i){if(!r)return;const o=r.querySelectorAll(".seat-hover-zone"),l=r.querySelectorAll(".party-group circle.seat-visual");l&&l.length>0&&l.forEach(s=>{if(s){const u=s;u.style.stroke=H.colors.seatBorder,u.style.strokeWidth="0.5",u.setAttribute("fill-opacity","1"),u.style.transition=`fill-opacity ${H.animation.transitionDuration} ease, stroke-opacity ${H.animation.transitionDuration} ease`}}),o&&o.length>0&&o.forEach(s=>{if(!s)return;const u=s.getAttribute("data-party"),f=s.getAttribute("data-party-id"),d=()=>{if(u&&u!==a){const c=e.find(h=>h.name===u||String(h.id)===f);if(c){const h=n.find(g=>g.label===c.name||String(g.id)===c.id);if(h){const g=ss(h);t({label:h.label||"Unknown",value:h.value||0,color:g}),i(c.name),Kn(r,c.name)}}}};s.addEventListener("mouseenter",d)}),a&&Kn(r,a)}function md(r,e,n,t,a,i){if(!r)return;const o=r.querySelectorAll("circle");if(o&&o.length>0&&(o.forEach(l=>{if(l){const s=l;s.style.cursor="pointer",s.style.stroke=H.colors.seatBorder,s.style.strokeWidth="0.5",s.setAttribute("fill-opacity","1"),s.style.transition=`fill-opacity ${H.animation.transitionDuration} ease, stroke-opacity ${H.animation.transitionDuration} ease`}}),o.forEach(l=>{if(!l)return;const s=l.getAttribute("class")||"",u=parseInt(s,10),f=e[u],d=()=>{if(f){const c=f.name;if(c&&c!==a){const h=n.find(g=>g.label===f.name||String(g.id)===f.id);if(h){const g=ss(h);t({label:h.label||"Unknown",value:h.value||0,color:g}),i(c),$n(o,s)}}}};l.addEventListener("mouseenter",d)})),a){const l=e.find(s=>s.name===a);if(l){const s=e.indexOf(l);$n(o,String(s))}}}const us=[{minRepos:0,maxRepos:10,minArc:90,maxArc:90,minSeatSize:18,maxSeatSize:18},{minRepos:10,maxRepos:25,minArc:90,maxArc:110,minSeatSize:14,maxSeatSize:14},{minRepos:25,maxRepos:50,minArc:110,maxArc:120,minSeatSize:10,maxSeatSize:10},{minRepos:50,maxRepos:100,minArc:120,maxArc:150,minSeatSize:7,maxSeatSize:7},{minRepos:100,maxRepos:200,minArc:150,maxArc:180,minSeatSize:5.5,maxSeatSize:5.5},{minRepos:200,maxRepos:1/0,minArc:180,maxArc:180,minSeatSize:5,maxSeatSize:5}],cs=({repositoryCount:r})=>{const e=us.find(l=>r>=l.minRepos&&r<l.maxRepos);if(!e)return 180;if(e.minArc===e.maxArc)return e.minArc;const n=e.maxRepos-e.minRepos,a=(r-e.minRepos)/n,i=e.maxArc-e.minArc,o=e.minArc+i*a;return Math.round(o)},fs=({repositoryCount:r})=>{const e=us.find(l=>r>=l.minRepos&&r<l.maxRepos);if(!e)return 5;if(e.minSeatSize===e.maxSeatSize)return e.minSeatSize;const n=e.maxRepos-e.minRepos,a=(r-e.minRepos)/n,i=e.maxSeatSize-e.minSeatSize,o=e.minSeatSize+i*a;return Math.round(o*10)/10},Hn=["#4CA75A","#FDDA04","#FFC008","#FF9800","#F9A91B","#FF5C24","#ED4134","#CB3446"],bl={[pe]:ae.NOT_APPLICABLE,[ge]:ae.NO_LST,[me]:ae.DATA_MISSING},ce=(r,e,n)=>{if(r in bl)return bl[r];const t=n-1-e,a=Hn.length,i=Math.floor(t/Math.max(1,n-1)*(a-1)),o=Math.min(Math.max(0,i),a-1);return Hn[o]??Hn[0]??"#000000"},ds=({dataSeries:r,notApplicableRepositories:e,noLstRepositories:n,unavailableRepositories:t})=>{const{special:a,regular:i}=r.reduce((h,g,v)=>([pe,ge,me].includes(g.label)?h.special.push({...g,originalIndex:v}):h.regular.push({...g,originalIndex:v}),h),{special:[],regular:[]}),o=i.reverse().map((h,g)=>({id:`measure-${g}`,label:h.label,value:h.value,color:ce(h.label,i.length-1-g,i.length)})),l=a.map((h,g)=>({id:h.label.toLowerCase().replace(" ","-"),label:h.label,value:h.value,color:ce(h.label,g,a.length)})),s=t,u={id:"no-lst",label:ge,value:n,color:ce(ge,0,1)},f={id:"data-missing",label:me,value:s,color:ce(me,0,1)},d={id:"n/a",label:pe,value:e,color:ce(pe,0,1)},c=[...o,...l];return u.value>0&&c.push(u),f.value>0&&c.push(f),d.value>0&&c.push(d),c},_l={"N/A":"Repos that aren't applicable to this migration.","No LST":"There are no LSTs for these repos.","Data Missing":"There is data missing in the LSTs."},yd=({dataSeries:r,totalRepositories:e,notApplicableRepositories:n,noLstRepositories:t,unavailableRepositories:a,arcAngle:i,useEnhanced:o=H.useEnhanced})=>{const l=fe.useRef(null),[s,u]=fe.useState(null),[f,d]=fe.useState(null),h=ds({dataSeries:r,notApplicableRepositories:n,noLstRepositories:t,unavailableRepositories:a}).map(m=>{const S=typeof m.color=="function"?m.color("arc"):m.color,T=typeof m.label=="function"?m.label("arc"):m.label;return{...m,color:S,label:T}}),g=i??cs({repositoryCount:e}),v=fs({repositoryCount:e});pd({containerRef:l,processedData:h,totalRepositories:e,arcAngle:g,useEnhanced:o,maxSeats:H.maxSeats,setHoveredData:u,activePartyName:f,setActivePartyName:d,chartConfig:H.chartConfig,seatSize:v});const b=h.map(m=>{const S=m.value/e*100,T=S>0&&S<1?"< 1":S.toFixed(0);return{id:String(m.id),label:m.label,value:m.value,percentage:T,color:m.color}}),y=e>H.maxSeats,_=y?Math.round(e/H.maxSeats):1;return w.jsxs(M.Stack,{sx:{width:"100%",alignItems:"center",gap:{xs:.5,sm:.75,md:1,lg:1},py:0,"@media (min-width: 1024px) and (max-width: 1225px)":{gap:.25}},children:[w.jsxs(M.Box,{className:"parliament-chart-container",sx:{position:"relative",width:"100%",minHeight:"200px",mb:{xs:.5,sm:.75,md:1},"@media (min-width: 1024px) and (max-width: 1225px)":{maxHeight:"250px",mb:.25}},children:[w.jsx(M.Box,{className:"parliament-chart-svg-container",ref:l,sx:{width:"100%",height:"100%",position:"relative",display:"flex",justifyContent:"center",alignItems:"center","& svg":{width:"100%",height:"100%",maxWidth:"100%","@media (min-width: 1024px) and (max-width: 1225px)":{maxHeight:"230px"}}}}),w.jsxs(M.Box,{className:"parliament-chart-tooltip",sx:{position:"absolute",bottom:"0%",left:"50%",transform:"translate(-50%, 0%)",pointerEvents:"none",textAlign:"center",zIndex:10,"@media (min-width: 1024px) and (max-width: 1225px)":{bottom:"5%"}},children:[s&&w.jsxs(fe.Fragment,{children:[w.jsx(M.Typography,{sx:{color:"text.secondary",mb:.3,fontSize:"clamp(0.75rem, 1.5vw, 0.85rem)",display:"block","@media (min-width: 1024px) and (max-width: 1225px)":{fontSize:"0.7rem",mb:.2}},children:s.label}),w.jsxs(M.Typography,{sx:{fontWeight:"bold",color:s.color,lineHeight:1,fontSize:"clamp(1.1rem, 2.2vw, 1.3rem)","@media (min-width: 1024px) and (max-width: 1225px)":{fontSize:"1rem"}},children:[s.value," ",s.value>1?"repos":"repo"]})]}),y&&w.jsxs(M.Box,{className:"parliament-chart-scaled-indicator",sx:{display:"flex",alignItems:"center",justifyContent:"center",gap:.5,mt:s?.5:0,color:"text.secondary",fontSize:"clamp(0.65rem, 1.2vw, 0.72rem)"},children:[w.jsx(M.Box,{className:"parliament-chart-scaled-indicator-dot",sx:{width:8,height:8,borderRadius:"50%",backgroundColor:"#888888",flexShrink:0}}),w.jsxs(M.Typography,{variant:"caption",sx:{fontSize:"inherit",fontStyle:"italic"},children:["= ~",_," repos"]})]})]})]}),w.jsx(M.Box,{className:"parliament-chart-data-table",sx:{width:"100%",display:"flex",justifyContent:"center","@media (min-width: 1024px) and (max-width: 1225px)":{overflowX:"auto",maxWidth:"100%"}},onMouseLeave:()=>{u(null),d(null)},children:w.jsxs(M.Table,{"aria-label":"Repository categories summary",className:"parliament-chart-table",size:"small",sx:{maxWidth:{xs:"clamp(360px, 90%, 400px)",sm:"clamp(360px, 90%, 400px)",md:"clamp(360px, 85%, 420px)",lg:"clamp(360px, 90%, 400px)"},"@media (min-width: 1024px) and (max-width: 1225px)":{maxWidth:"360px","& .MuiTableCell-root":{padding:"1px 4px",fontSize:"9.5px"}},"& .MuiTableCell-root":{padding:"2px 8px",borderBottom:"none",fontSize:"clamp(10px, 1.8vw, 11.5px)"}},children:[w.jsx("thead",{children:w.jsxs(M.TableRow,{children:[w.jsx(M.TableCell,{}),w.jsx(M.TableCell,{sx:{fontWeight:"bold"},children:"Category"}),w.jsx(M.TableCell,{align:"right",sx:{fontWeight:"bold"},children:"# of repos"}),w.jsx(M.TableCell,{align:"right",sx:{fontWeight:"bold"},children:"% of org"})]})}),w.jsx("tbody",{children:b.map(m=>{const S=m.color==="url(#greyHatchPattern)"?F.greyHatch.lines:m.color==="url(#dataMissingHatchPattern)"?F.dataMissingHatch.lines:m.color==="url(#noLstHatchPattern)"?F.noLstHatch.lines:m.color;return w.jsxs(M.TableRow,{onMouseEnter:()=>{d(m.label),u({label:m.label,value:m.value,color:m.color==="url(#greyHatchPattern)"?F.greyHatch.lines:m.color==="url(#dataMissingHatchPattern)"?F.dataMissingHatch.lines:m.color==="url(#noLstHatchPattern)"?F.noLstHatch.lines:m.color})},sx:{cursor:"pointer",transition:"background-color 0.15s ease",backgroundColor:f===m.label?`${S}15`:"transparent","&:hover":{backgroundColor:`${S}15`}},children:[w.jsx(M.TableCell,{align:"center",sx:{width:20},children:w.jsx(M.Box,{sx:{width:12,height:12,backgroundColor:m.color==="url(#greyHatchPattern)"?F.greyHatch.background:m.color==="url(#dataMissingHatchPattern)"?F.dataMissingHatch.background:m.color==="url(#noLstHatchPattern)"?F.noLstHatch.background:m.color,borderRadius:"50%",position:"relative",overflow:"hidden",transition:"transform 0.15s ease",transform:f===m.label?"scale(1.2)":"scale(1)",...m.label==="N/A"&&{"&::after":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundImage:`repeating-linear-gradient(
|
|
10
|
+
0deg,
|
|
11
|
+
transparent,
|
|
12
|
+
transparent 3px,
|
|
13
|
+
${F.greyHatch.lines} 3px,
|
|
14
|
+
${F.greyHatch.lines} 4px
|
|
15
|
+
)`,borderRadius:"50%"}},...m.label==="Data Missing"&&{"&::after":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundImage:`repeating-linear-gradient(
|
|
16
|
+
45deg,
|
|
17
|
+
transparent,
|
|
18
|
+
transparent 3px,
|
|
19
|
+
${F.dataMissingHatch.lines} 3px,
|
|
20
|
+
${F.dataMissingHatch.lines} 4px
|
|
21
|
+
)`,borderRadius:"50%"}},...m.label==="No LST"&&{"&::after":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundImage:`repeating-linear-gradient(
|
|
22
|
+
-45deg,
|
|
23
|
+
transparent,
|
|
24
|
+
transparent 3px,
|
|
25
|
+
${F.noLstHatch.lines} 3px,
|
|
26
|
+
${F.noLstHatch.lines} 4px
|
|
27
|
+
)`,borderRadius:"50%"}}}})}),w.jsx(M.TableCell,{children:w.jsxs(M.Stack,{direction:"row",alignItems:"center",gap:.5,children:[w.jsx("span",{children:m.label}),_l[m.label]&&w.jsx(M.Tooltip,{title:_l[m.label],placement:"right",arrow:!0,children:w.jsx(_s.InfoOutlined,{sx:{fontSize:".875rem",color:"text.secondary"}})})]})}),w.jsx(M.TableCell,{align:"right",children:m.value}),w.jsxs(M.TableCell,{align:"right",children:[m.percentage,"%"]})]},m.id)})})]})})]})};exports.CAMPAIGN_DATA_MISSING=me;exports.CAMPAIGN_NOT_APPLICABLE=pe;exports.CAMPAIGN_NO_LST=ge;exports.DEFAULT_CHART_COLORS=J;exports.DEFAULT_CHART_CONFIG=H;exports.MODERNE_VULNERABILITY_COLORS=ae;exports.ParliamentChart=yd;exports.calculateDataSeries=ds;exports.calculateOptimalArcAngle=cs;exports.calculateOptimalSeatSize=fs;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @moderneinc/react-charts
|
|
3
|
+
* Parliament chart visualization library for React
|
|
4
|
+
*/
|
|
5
|
+
export { ParliamentChart } from './components/parliament-chart/parliament-chart';
|
|
6
|
+
export type { ParliamentChartProps, ProcessedDataItem, HoveredData, ChartConfig } from './components/parliament-chart/parliament-chart.types';
|
|
7
|
+
export type { ParliamentChartTheme, ParliamentChartColors } from './theme/default-colors';
|
|
8
|
+
export { DEFAULT_CHART_CONFIG, MODERNE_VULNERABILITY_COLORS, CAMPAIGN_NOT_APPLICABLE, CAMPAIGN_NO_LST, CAMPAIGN_DATA_MISSING } from './components/parliament-chart/parliament-chart.constants';
|
|
9
|
+
export { calculateOptimalArcAngle, calculateOptimalSeatSize } from './components/parliament-chart/utils/parliament-arc-calculator';
|
|
10
|
+
export { calculateDataSeries } from './components/parliament-chart/utils/parliament-chart-data.utils';
|
|
11
|
+
export { DEFAULT_CHART_COLORS } from './theme/default-colors';
|