@onewelcome/react-lib-components 0.1.0-alpha → 0.1.1-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Button/IconButton.d.ts +1 -1
- package/dist/Form/Fieldset/Fieldset.d.ts +6 -4
- package/dist/Form/FormControl/FormControl.d.ts +2 -1
- package/dist/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +2 -1
- package/dist/{BaseModal → Notifications/BaseModal}/BaseModal.d.ts +4 -2
- package/dist/{BaseModal → Notifications/BaseModal}/BaseModalActions/BaseModalActions.d.ts +0 -0
- package/dist/{BaseModal → Notifications/BaseModal}/BaseModalContent/BaseModalContent.d.ts +0 -0
- package/dist/{BaseModal → Notifications/BaseModal}/BaseModalContext.d.ts +0 -0
- package/dist/{BaseModal → Notifications/BaseModal}/BaseModalHeader/BaseModalHeader.d.ts +1 -1
- package/dist/{Dialog → Notifications/Dialog}/Dialog.d.ts +4 -3
- package/dist/{Dialog → Notifications/Dialog}/DialogActions/DialogActions.d.ts +0 -0
- package/dist/{Dialog → Notifications/Dialog}/DialogTitle/DialogTitle.d.ts +0 -0
- package/dist/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.d.ts +12 -0
- package/dist/Notifications/DiscardChangesModal/DiscardChangesModal.d.ts +11 -0
- package/dist/{Modal → Notifications/Modal}/Modal.d.ts +0 -0
- package/dist/{Modal → Notifications/Modal}/ModalActions/ModalActions.d.ts +0 -0
- package/dist/{Modal → Notifications/Modal}/ModalContent/ModalContent.d.ts +0 -0
- package/dist/{Modal → Notifications/Modal}/ModalHeader/ModalHeader.d.ts +0 -0
- package/dist/{Snackbar → Notifications/Snackbar}/SnackbarContainer/SnackbarContainer.d.ts +0 -0
- package/dist/{Snackbar → Notifications/Snackbar}/SnackbarItem/SnackbarItem.d.ts +0 -0
- package/dist/{Snackbar → Notifications/Snackbar}/SnackbarProvider/SnackbarProvider.d.ts +1 -1
- package/dist/{Snackbar → Notifications/Snackbar}/SnackbarProvider/SnackbarStateProvider.d.ts +0 -0
- package/dist/{Snackbar → Notifications/Snackbar}/interfaces.d.ts +0 -0
- package/dist/{Snackbar → Notifications/Snackbar}/useSnackbar.d.ts +0 -0
- package/dist/Tiles/Tile.d.ts +4 -5
- package/dist/index.d.ts +8 -7
- package/dist/react-lib-components.cjs.development.js +226 -125
- package/dist/react-lib-components.cjs.development.js.map +1 -1
- package/dist/react-lib-components.cjs.production.min.js +1 -1
- package/dist/react-lib-components.cjs.production.min.js.map +1 -1
- package/dist/react-lib-components.esm.js +226 -126
- package/dist/react-lib-components.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/Button/IconButton.tsx +8 -4
- package/src/Form/Checkbox/Checkbox.module.scss +4 -0
- package/src/Form/Checkbox/Checkbox.tsx +11 -6
- package/src/Form/Fieldset/Fieldset.module.scss +11 -1
- package/src/Form/Fieldset/Fieldset.test.tsx +2 -2
- package/src/Form/Fieldset/Fieldset.tsx +22 -10
- package/src/Form/FormControl/FormControl.tsx +3 -0
- package/src/Form/Radio/Radio.module.scss +4 -0
- package/src/Form/Radio/Radio.tsx +12 -2
- package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.test.tsx +1 -1
- package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +1 -1
- package/src/Form/Wrapper/RadioWrapper/RadioWrapper.test.tsx +1 -1
- package/src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +1 -1
- package/src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +2 -1
- package/src/{BaseModal → Notifications/BaseModal}/BaseModal.module.scss +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModal.test.tsx +8 -15
- package/src/{BaseModal → Notifications/BaseModal}/BaseModal.tsx +11 -24
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalActions/BaseModalActions.module.scss +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalActions/BaseModalActions.test.tsx +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalActions/BaseModalActions.tsx +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalContent/BaseModalContent.module.scss +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalContent/BaseModalContent.test.tsx +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalContent/BaseModalContent.tsx +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalContext.ts +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalHeader/BaseModalHeader.module.scss +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalHeader/BaseModalHeader.test.tsx +0 -0
- package/src/{BaseModal → Notifications/BaseModal}/BaseModalHeader/BaseModalHeader.tsx +6 -6
- package/src/{Dialog → Notifications/Dialog}/Dialog.module.scss +0 -0
- package/src/{Dialog → Notifications/Dialog}/Dialog.test.tsx +13 -16
- package/src/{Dialog → Notifications/Dialog}/Dialog.tsx +17 -6
- package/src/{Dialog → Notifications/Dialog}/DialogActions/DialogActions.module.scss +0 -0
- package/src/{Dialog → Notifications/Dialog}/DialogActions/DialogActions.test.tsx +0 -0
- package/src/{Dialog → Notifications/Dialog}/DialogActions/DialogActions.tsx +0 -0
- package/src/{Dialog → Notifications/Dialog}/DialogTitle/DialogTitle.module.scss +0 -0
- package/src/{Dialog → Notifications/Dialog}/DialogTitle/DialogTitle.test.tsx +0 -0
- package/src/{Dialog → Notifications/Dialog}/DialogTitle/DialogTitle.tsx +3 -3
- package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.test.tsx +55 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx +48 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesModal.test.tsx +111 -0
- package/src/Notifications/DiscardChangesModal/DiscardChangesModal.tsx +56 -0
- package/src/{Modal → Notifications/Modal}/Modal.test.tsx +0 -0
- package/src/{Modal → Notifications/Modal}/Modal.tsx +0 -0
- package/src/{Modal → Notifications/Modal}/ModalActions/ModalActions.tsx +0 -0
- package/src/{Modal → Notifications/Modal}/ModalContent/ModalContent.tsx +0 -0
- package/src/{Modal → Notifications/Modal}/ModalHeader/ModalHeader.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarContainer/SnackbarContainer.module.scss +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarContainer/SnackbarContainer.test.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarContainer/SnackbarContainer.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarItem/SnackbarItem.module.scss +1 -1
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarItem/SnackbarItem.test.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarItem/SnackbarItem.tsx +5 -6
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarProvider/SnackbarProvider.test.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarProvider/SnackbarProvider.tsx +2 -2
- package/src/{Snackbar → Notifications/Snackbar}/SnackbarProvider/SnackbarStateProvider.tsx +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/interfaces.ts +0 -0
- package/src/{Snackbar → Notifications/Snackbar}/useSnackbar.ts +0 -0
- package/src/Popover/Popover.test.tsx +3 -3
- package/src/Tiles/Tile.module.scss +1 -1
- package/src/Tiles/Tile.test.tsx +21 -11
- package/src/Tiles/Tile.tsx +52 -15
- package/src/Tiles/Tiles.test.tsx +11 -9
- package/src/Tiles/Tiles.tsx +3 -3
- package/src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx +3 -3
- package/src/Wizard/Wizard.tsx +2 -2
- package/src/Wizard/WizardActions/WizardActions.tsx +3 -3
- package/src/hooks/usePosition.test.tsx +3 -3
- package/src/index.ts +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-lib-components.esm.js","sources":["../src/_BaseStyling_/BaseStyling.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/hooks/useSpacing.ts","../src/Typography/Typography.tsx","../src/Button/BaseButton.tsx","../src/Button/Button.tsx","../src/Link/Link.tsx","../src/Button/IconButton.tsx","../src/Icon/Icon.tsx","../src/BaseModal/BaseModalContext.ts","../src/BaseModal/BaseModal.tsx","../src/BaseModal/BaseModalContent/BaseModalContent.tsx","../src/BaseModal/BaseModalActions/BaseModalActions.tsx","../src/Dialog/DialogActions/DialogActions.tsx","../src/Dialog/DialogTitle/DialogTitle.tsx","../src/Dialog/Dialog.tsx","../src/BaseModal/BaseModalHeader/BaseModalHeader.tsx","../src/util/helper.tsx","../src/hooks/usePosition.ts","../src/Tooltip/Tooltip.tsx","../src/Tiles/Tile.tsx","../src/Tiles/Tiles.tsx","../src/Popover/Popover.tsx","../src/hooks/useBodyClick.ts","../src/ContextMenu/ContextMenu.tsx","../src/ContextMenu/ContextMenuItem.tsx","../src/Breadcrumbs/Breadcrumbs.tsx","../src/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx","../src/Snackbar/SnackbarContainer/SnackbarContainer.tsx","../src/hooks/useAnimation.ts","../src/Snackbar/SnackbarItem/SnackbarItem.tsx","../src/Snackbar/SnackbarProvider/SnackbarProvider.tsx","../src/Snackbar/useSnackbar.ts","../src/Form/Form.tsx","../src/Form/Fieldset/Fieldset.tsx","../src/Form/FormControl/FormControl.tsx","../src/Form/FormHelperText/FormHelperText.tsx","../src/Form/FormGroup/FormGroup.tsx","../src/Form/Label/Label.tsx","../src/Form/Input/Input.tsx","../src/hooks/useScroll.ts","../src/Form/Select/Select.tsx","../src/Form/Select/Option.tsx","../src/Form/Textarea/Textarea.tsx","../src/hooks/useWrapper.ts","../src/Form/Wrapper/Wrapper/Wrapper.tsx","../src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx","../src/Form/Wrapper/InputWrapper/InputWrapper.tsx","../src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx","../src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx","../src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx","../src/hooks/useFormSelector.ts","../src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx","../src/Form/Radio/Radio.tsx","../src/Form/Checkbox/Checkbox.tsx","../src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx","../src/Wizard/wizardStateReducer.ts","../src/Wizard/WizardStateProvider.tsx","../src/Wizard/WizardActions/WizardActions.tsx","../src/Wizard/WizardSteps/WizardSteps.tsx","../src/Wizard/Wizard.tsx"],"sourcesContent":["import React, { Fragment, HTMLAttributes, ReactChild, useEffect, useState } from 'react';\n\ninterface CSSProperties {\n colorPrimary?: string;\n colorSecondary?: string;\n colorTertiary?: string;\n defaultLineHeight?: string;\n buttonBorderRadius?: string;\n buttonBorderWidth?: string;\n buttonFontSize?: string;\n buttonBorderStyle?: string;\n buttonFillTextColor?: string;\n buttonFillBackgroundColor?: string;\n buttonOutlineHoverTextColor?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputBorderWidth?: string;\n inputBorderStyle?: string;\n modalShadowColor?: string;\n modalBackgroundColor?: string;\n modalHeaderBackgroundColor?: string;\n snackbarTextColor?: string;\n snackbarInfoBackgroundColor?: string;\n snackbarSuccessBackgroundColor?: string;\n snackbarErrorBackgroundColor?: string;\n snackbarBorderRadius?: string;\n default?: string;\n success?: string;\n error?: string;\n disabled?: string;\n greyedOut?: string;\n warning?: string;\n fontFamily?: string;\n fontFamilyCode?: string;\n fontSize?: string;\n fontSizeH1?: string;\n fontSizeH2?: string;\n fontSizeH3?: string;\n fontSizeH4?: string;\n fontSizeSub?: string;\n fontSizeCode?: string;\n}\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n children?: ReactChild;\n properties?: CSSProperties;\n}\n\nexport const BaseStyling = ({ children, properties = {} }: Props) => {\n const defaultProperties: CSSProperties = {\n colorPrimary: '#9e006b',\n colorSecondary: '#003b5e',\n colorTertiary: '#ff1e4e',\n defaultLineHeight: '26px',\n buttonBorderRadius: '20px',\n buttonBorderWidth: '2px',\n buttonFontSize: '1rem',\n buttonBorderStyle: 'solid',\n buttonFillTextColor: '#FFF',\n buttonFillBackgroundColor: '#FFF',\n buttonOutlineHoverTextColor: '#FFF',\n inputBorderColor: '#e9e9eb',\n inputBorderRadius: '8px',\n inputBorderWidth: '1px',\n inputBorderStyle: 'solid',\n modalShadowColor: 'rgba(0, 0, 0, 0.16)',\n modalBackgroundColor: '#F5F8F8',\n modalHeaderBackgroundColor: '#FFF',\n snackbarTextColor: '#fff',\n snackbarInfoBackgroundColor: '#003b5e',\n snackbarSuccessBackgroundColor: '#008a28',\n snackbarErrorBackgroundColor: '#e22a1d',\n snackbarBorderRadius: '8px',\n default: '#0f0f1e',\n success: '#008a28',\n error: '#e22a1d',\n disabled: '#e9e9eb',\n greyedOut: '#6f6f76',\n warning: '#ff6105',\n fontFamily: \"'Red Hat Display', sans-serif\",\n fontFamilyCode: \"'Red Hat Mono', sans-serif\",\n fontSize: '1rem',\n fontSizeH1: '2.5rem',\n fontSizeH2: '1.625rem',\n fontSizeH3: '1.5rem',\n fontSizeH4: '1.25rem',\n fontSizeSub: '.75rem',\n fontSizeCode: '1rem',\n };\n\n /** We need a loading state, because otherwise you see the colors flash from the default to the possible overridden ones. */\n const [isLoading, setIsLoading] = useState(true);\n\n /** Set the actual CSS properties on the HTML :root object */\n const setCSSProperties = (CSSPropertiesObject: CSSProperties) => {\n for (const [key, value] of Object.entries(CSSPropertiesObject)) {\n const formattedPropertyName = key.replaceAll(/([A-Z])/g, (val) => `-${val.toLowerCase()}`);\n document.documentElement.style.setProperty(`--${formattedPropertyName}`, value);\n }\n };\n\n /** Check if the properties prop object is filled with anything. If it is, we want to shallow merge it with the default BaseStyling. */\n useEffect(() => {\n if (Object.keys(properties).length !== 0) {\n const mergedState = { ...defaultProperties, ...properties };\n setCSSProperties(mergedState);\n } else {\n setCSSProperties(defaultProperties);\n }\n setIsLoading(false);\n }, [properties]);\n\n /** Only render if we're not loading */\n return !isLoading ? <Fragment>{children}</Fragment> : null;\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { CSSProperties } from 'react';\n\ntype SpacingMultiplier = 0 | 0.5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\ntype SpacingMultiplierStringOrNumber = `${SpacingMultiplier}` | SpacingMultiplier;\ntype MultiValueSpacingMultiplier =\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier}`\n | SpacingMultiplierStringOrNumber;\n\nexport interface Spacing {\n padding?: MultiValueSpacingMultiplier;\n paddingTop?: SpacingMultiplierStringOrNumber;\n paddingBottom?: SpacingMultiplierStringOrNumber;\n paddingLeft?: SpacingMultiplierStringOrNumber;\n paddingRight?: SpacingMultiplierStringOrNumber;\n margin?: MultiValueSpacingMultiplier;\n marginTop?: SpacingMultiplierStringOrNumber;\n marginBottom?: SpacingMultiplierStringOrNumber;\n marginLeft?: SpacingMultiplierStringOrNumber;\n marginRight?: SpacingMultiplierStringOrNumber;\n}\n\nconst defaultFactor = 0.25;\nconst defaultUnit = 'rem';\nconst spacingNumberRegex = /(\\d+\\.?\\d*)+/g;\n\nexport const useSpacing = (\n spacingProps?: Spacing,\n style?: CSSProperties\n): CSSProperties | undefined => {\n if (spacingProps) {\n return Object.entries(spacingProps).reduce<CSSProperties>((prev, [spacing, multiplier]) => {\n const matches = String(multiplier).matchAll(spacingNumberRegex);\n const cssSpacingValue = Array.from(matches)\n .map(([multiplierValue]) => `${Number(multiplierValue) * defaultFactor}${defaultUnit}`)\n .join(' ');\n return { ...prev, [spacing]: cssSpacingValue };\n }, style ?? {});\n }\n return style;\n};\n","import React, { HTMLAttributes, ReactNode } from 'react';\nimport classes from './Typography.module.scss';\nimport { Spacing, useSpacing } from '../hooks/useSpacing';\n\nconst validVariants = ['h1', 'h2', 'h3', 'h4', 'body', 'body-bold', 'sub-text', 'code'] as const;\nexport type Variant = typeof validVariants[number];\n\nexport interface Props extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n variant: Variant;\n tag?:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'p'\n | 'div'\n | 'code'\n | 'span'\n | 'sup'\n | 'sub'\n | 'strong'\n | 'em'\n | 'small'\n | 'mark'\n | 'del'\n | 'ins'\n | 'blockquote';\n spacing?: Spacing;\n}\n\nexport const Typography = ({\n children,\n variant,\n tag,\n style,\n spacing,\n className = '',\n ...rest\n}: Props) => {\n if (!validVariants.includes(variant)) {\n throw new Error(\n `You entered an invalid variant. You can choose from: ${validVariants}, you entered: ${variant}`\n );\n }\n\n const styleWithSpacing = useSpacing(spacing, style);\n\n if (!tag) {\n switch (variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'code':\n tag = variant;\n break;\n case 'body':\n tag = 'p';\n break;\n case 'body-bold':\n tag = 'p';\n break;\n case 'sub-text':\n tag = 'span';\n break;\n default:\n tag = 'div';\n break;\n }\n }\n\n let TagName = tag;\n\n return (\n <TagName\n {...rest}\n style={styleWithSpacing}\n className={`${classes['typography_style_' + variant]} ${className}`}\n >\n {children}\n </TagName>\n );\n};\n","import React, { RefObject } from 'react';\nimport classes from './BaseButton.module.scss';\n\nexport interface Props extends Omit<React.HTMLProps<HTMLButtonElement>, 'ref'> {\n type?: 'submit' | 'button' | 'reset';\n disabled?: boolean;\n ref?: RefObject<HTMLButtonElement>;\n color?: 'primary' | 'secondary' | 'tertiary' | 'default';\n}\n\nexport const BaseButton = React.forwardRef<HTMLButtonElement, Props>(\n ({ children, type = 'button', className, ...rest }, ref) => {\n const validTypes = ['submit', 'button', 'reset'];\n\n if (!validTypes.includes(type))\n throw new Error(\n `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`\n );\n\n return (\n <button\n {...rest}\n ref={ref}\n type={type}\n className={`${classes.button} ${className ? className : ''}`}\n >\n {children}\n </button>\n );\n }\n);\n","import React, { RefObject } from 'react';\nimport { BaseButton, Props as BaseButtonProps } from './BaseButton';\nimport classes from './Button.module.scss';\n\nexport interface Props extends Omit<BaseButtonProps, 'ref'> {\n startIcon?: React.ReactNode | false;\n endIcon?: React.ReactNode | false;\n children?: React.ReactNode;\n variant?: 'text' | 'fill' | 'outline';\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, Props>(\n (\n { children, variant = 'fill', color = 'primary', startIcon = false, endIcon = false, ...rest },\n ref\n ) => {\n const additionalClasses = [];\n\n if (startIcon || endIcon) {\n additionalClasses.push(classes['has-icon']);\n }\n\n if (startIcon) {\n additionalClasses.push(classes['start-icon']);\n }\n\n if (endIcon) {\n additionalClasses.push(classes['end-icon']);\n }\n\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(' ')}`}\n >\n {startIcon && <i>{startIcon} </i>}\n <span>{children}</span>\n {endIcon && <i> {endIcon}</i>}\n </BaseButton>\n );\n }\n);\n","import React, { ForwardRefExoticComponent, Ref, RefAttributes } from 'react';\nimport { HTMLProps } from '../interfaces';\nimport classes from './Link.module.scss';\nimport { LinkProps } from './types';\n\ntype AnchorType = 'external' | 'internal' | 'download';\n\nexport interface Props extends HTMLProps<HTMLAnchorElement> {\n children?: string;\n color?: 'primary' | 'secondary' | 'tertiary';\n type?: AnchorType;\n to: string;\n disabled?: boolean;\n component?: ForwardRefExoticComponent<LinkProps & RefAttributes<HTMLAnchorElement>>;\n ref?: Ref<HTMLAnchorElement>;\n}\n\nexport const Link = React.forwardRef(\n (\n {\n children,\n className,\n disabled = false,\n to,\n color = 'primary',\n type = 'internal',\n component,\n ...rest\n }: Props,\n ref: Ref<HTMLAnchorElement>\n ) => {\n const determineTarget = () => {\n if (rest.target) {\n return rest.target;\n }\n\n if (type === 'external') {\n return '_blank';\n }\n\n return '';\n };\n\n const classNames = [classes['link'], classes[color]];\n disabled && classNames.push(classes['disabled']);\n className && classNames.push(className);\n\n if (component) {\n return React.createElement(component, {\n ...rest,\n ref: ref,\n to: to,\n className: classNames.join(' '),\n 'aria-disabled': disabled,\n style: {\n ...rest.style,\n },\n children: children,\n });\n }\n\n return (\n <a\n {...rest}\n ref={ref}\n download={type === 'download'}\n rel={type === 'external' ? 'noopener noreferer' : undefined}\n href={!disabled ? to : undefined}\n className={classNames.join(' ')}\n aria-disabled={disabled}\n target={determineTarget()}\n style={{\n ...rest.style,\n }}\n >\n {children}\n </a>\n );\n }\n);\n","import React, { RefObject } from 'react';\nimport { BaseButton, Props as BaseButtonProps } from './BaseButton';\nimport classes from './IconButton.module.scss';\nimport readyclasses from '../readyclasses.module.scss';\n\nexport interface Props extends Omit<BaseButtonProps, 'ref'> {\n children?: React.ReactNode;\n iconSize?: 's' | 'm' | 'l';\n className?: string;\n title: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, Props>(\n ({ children, color = 'primary', iconSize = 'm', title, ...rest }, ref) => {\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes['icon-button']} ${classes[color]} ${classes['button-' + iconSize]}`}\n >\n <>\n {children}\n <span className={readyclasses['sr-only']}>{title}</span>\n </>\n </BaseButton>\n );\n }\n);\n","import React from 'react';\nimport classes from './Icon.module.scss';\nimport { HTMLAttributes } from '../interfaces';\n\nexport enum Icons {\n Bell = 'bell',\n BellAlt = 'bell-alt',\n Bookmark = 'bookmark',\n BookmarkAlt = 'bookmark-alt',\n Build = 'build',\n Calendar = 'calendar',\n Change = 'change',\n Checkmark = 'checkmark',\n CheckmarkCircle = 'checkmark-circle',\n CheckmarkCircleAlt = 'checkmark-circle-alt',\n CheckmarkCircleBreakout = 'checkmark-circle-breakout',\n CheckmarkSquare = 'checkmark-square',\n ChevronUp = 'chevron-up',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n Circle = 'circle',\n Clock = 'clock',\n Copy = 'copy',\n Edit = 'edit',\n Ellipsis = 'ellipsis',\n EllipsisAlt = 'ellipsis-alt',\n Equal = 'equal',\n Eye = 'eye',\n Filter = 'filter',\n FilterAlt = 'filter-alt',\n FilterAltArrow = 'filter-alt-arrow',\n FilterAltTimes = 'filter-alt-times',\n Forbidden = 'forbidden',\n Fullscreen = 'fullscreen',\n FullscreenExit = 'fullscreen-exit',\n Gearwheel = 'gearwheel',\n Grid = 'grid',\n Hamburger = 'hamburger',\n Heart = 'heart',\n Image = 'image',\n InfoBell = 'info-bell',\n InfoCircle = 'info-circle',\n Link = 'link',\n MinusSquare = 'minus-square',\n NavigationFirst = 'navigation-first',\n NavigationLast = 'navigation-last',\n Plus = 'plus',\n Radio = 'radio',\n Refresh = 'refresh',\n Search = 'search',\n Share = 'share',\n Square = 'square',\n Star = 'star',\n StarAlt = 'star-alt',\n Times = 'times',\n TimesCircle = 'times-circle',\n TimesCircleAlt = 'times-circle-alt',\n TimesThin = 'times-thin',\n Trash = 'trash',\n TriangleDown = 'triangle-down',\n TriangleDownCircle = 'triangle-down-circle',\n TriangleLeft = 'triangle-left',\n TriangleRight = 'triangle-right',\n TriangleUp = 'triangle-up',\n Undo = 'undo',\n Warning = 'warning',\n}\n\ntype Tag = 'span' | 'div' | 'i';\n\nexport interface Props extends Omit<HTMLAttributes<HTMLOrSVGElement>, 'size'> {\n icon: Icons;\n color?: string;\n size?: string;\n tag?: Tag;\n}\n\nexport const Icon = React.forwardRef(\n ({ icon, color, className, style, size, tag = 'span', ...rest }: Props, ref) => {\n const Component = tag;\n\n return (\n <Component\n {...rest}\n ref={ref as React.LegacyRef<HTMLDivElement>}\n style={{ color: color, ...style, fontSize: size }}\n data-icon\n aria-hidden=\"true\"\n className={`${classes['icon']} ${classes['icon-' + icon]} ${className ? className : ''}`}\n />\n );\n }\n);\n","export const labelId = (id: string) => `${id}-label`;\nexport const descriptionId = (id: string) => `${id}-description`;\n","import React, { HTMLAttributes, useEffect, useRef } from 'react';\nimport classes from './BaseModal.module.scss';\nimport { labelId, descriptionId } from './BaseModalContext';\n\nconst SCROLL_PROPERTY_NAME = 'overflow';\nconst SCROLL_PROPERTY_VALUE = 'hidden';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id: string;\n children: React.ReactNode;\n open: boolean;\n onClose?: (event?: React.MouseEvent<HTMLElement>) => unknown;\n className?: string;\n containerClassName?: string;\n labelledby?: string;\n describedby?: string;\n disableEscapeKeyDown?: boolean;\n disableBackdrop?: boolean;\n zIndex?: number;\n}\n\nconst useBackdropOnCloseClick = (\n disableBackdrop: boolean,\n onClose?: (event?: React.MouseEvent<HTMLElement>) => unknown\n) => {\n const backdropRef = useRef<HTMLDivElement>(null);\n const onBackdropClick = () => onClose && onClose();\n\n useEffect(() => {\n !disableBackdrop && backdropRef.current?.addEventListener('click', onBackdropClick);\n return () => {\n !disableBackdrop && backdropRef.current?.removeEventListener('click', onBackdropClick);\n };\n }, []);\n\n return {\n backdropRef,\n };\n};\n\nexport const useSetBodyScroll = (open: boolean) => {\n const hideBodyScroll = () => {\n document.body.style[SCROLL_PROPERTY_NAME] = SCROLL_PROPERTY_VALUE;\n };\n\n const showBodyScroll = () => {\n const allModalsClosed =\n document.querySelectorAll('[role=dialog][data-hidden=false]').length === 0;\n if (allModalsClosed) {\n document.body.style.removeProperty(SCROLL_PROPERTY_NAME);\n }\n };\n\n useEffect(() => {\n if (open) {\n hideBodyScroll();\n } else {\n showBodyScroll();\n }\n }, [open]);\n};\n\nexport const BaseModal = ({\n id,\n children,\n open,\n onClose,\n className = '',\n containerClassName = '',\n labelledby,\n describedby,\n disableEscapeKeyDown = false,\n disableBackdrop = false,\n zIndex,\n ...restProps\n}: Props) => {\n const { backdropRef } = useBackdropOnCloseClick(disableBackdrop, onClose);\n useSetBodyScroll(open);\n\n const handleEscKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disableEscapeKeyDown && event.key === 'Escape') {\n event.stopPropagation();\n onClose && onClose();\n }\n };\n\n return (\n <div\n {...restProps}\n id={id}\n className={`${classes['modal']} ${open && classes['visible']} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledby || labelId(id)}\n aria-describedby={describedby || descriptionId(id)}\n aria-hidden={!open}\n tabIndex={-1}\n data-hidden={!open}\n onKeyDown={handleEscKeyPress}\n style={{ zIndex }}\n >\n <div ref={backdropRef} className={classes['backdrop']}></div>\n {open && (\n <div\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes['container']} ${containerClassName}`}\n >\n {children}\n </div>\n )}\n </div>\n );\n};\n","import React, { HTMLAttributes, useEffect, useRef } from 'react';\nimport classes from './BaseModalContent.module.scss';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n children: React.ReactNode;\n className?: string;\n disableAutoFocus?: boolean;\n}\n\nexport const BaseModalContent = ({\n id,\n children,\n className = '',\n disableAutoFocus = false,\n ...restProps\n}: Props) => {\n const contentRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n !disableAutoFocus && contentRef.current?.focus();\n }, []);\n\n /**tabIndex is set to be able to do focus on that element which we need for catching keyDown events */\n return (\n <div\n {...restProps}\n ref={contentRef}\n id={id}\n className={`${classes['content']} ${className}`}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport classes from './BaseModalActions.module.scss';\n\nexport interface Props extends HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\nexport const BaseModalActions = ({ children, className = '', ...restProps }: Props) => {\n return (\n <footer {...restProps} className={`${classes['actions']} ${className}`}>\n {children}\n </footer>\n );\n};\n","import React from 'react';\nimport {\n BaseModalActions,\n Props as BaseModalActionsProps,\n} from '../../BaseModal/BaseModalActions/BaseModalActions';\nimport classes from './DialogActions.module.scss';\n\nexport interface Props extends BaseModalActionsProps {\n align: 'left' | 'right';\n}\n\nexport const DialogActions = ({ children, align, ...restProps }: Props) => {\n return (\n <BaseModalActions\n {...restProps}\n className={`${classes['actions']}${align === 'left' ? ' ' + classes['left'] : ''}`}\n >\n {children}\n </BaseModalActions>\n );\n};\n","import React from 'react';\nimport { Typography } from '../../Typography/Typography';\nimport classes from './DialogTitle.module.scss';\n\nexport interface Props {\n id: string;\n title: string;\n}\n\nexport const DialogTitle = ({ id, title }: Props) => {\n return (\n <header className={classes['header']}>\n <Typography id={id} className={classes['title']} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n </header>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport { BaseModal } from '../BaseModal/BaseModal';\nimport { BaseModalContent } from '../BaseModal/BaseModalContent/BaseModalContent';\nimport { DialogActions } from './DialogActions/DialogActions';\nimport classes from './Dialog.module.scss';\nimport { DialogTitle } from './DialogTitle/DialogTitle';\nimport { Button, Props as ButtonProps } from '../Button/Button';\nimport { labelId, descriptionId } from '../BaseModal/BaseModalContext';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id: string;\n open: boolean;\n children: React.ReactNode;\n alignActions: 'left' | 'right';\n onClose: () => void;\n title: string;\n primaryAction: Action;\n secondaryAction?: Action;\n zIndex?: number;\n}\n\nexport interface Action extends Omit<ButtonProps, 'variant' | 'ref'> {\n label: string;\n onClick: (event?: React.MouseEvent<HTMLButtonElement>) => unknown;\n}\n\nexport const Dialog = ({\n id,\n open,\n children,\n alignActions,\n onClose,\n title,\n primaryAction,\n secondaryAction,\n zIndex,\n ...restProps\n}: Props) => {\n const { label: primaryLabel, ...restOfPrimaryAction } = primaryAction;\n const PrimaryButton = (\n <Button key=\"primary\" {...restOfPrimaryAction}>\n {primaryLabel}\n </Button>\n );\n const TertiaryButton =\n secondaryAction &&\n (function () {\n const { label: secondaryLabel, ...restOfSecondaryAction } = secondaryAction;\n return (\n <Button key=\"tertiary\" variant=\"text\" {...restOfSecondaryAction}>\n {secondaryLabel}\n </Button>\n );\n })();\n\n const onHiddenInputKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n /** It has to be here because then we will need to check if user doesn't click tab to select action button and want to do another action then primary one? */\n if (event.key === 'Enter') {\n primaryAction.onClick();\n }\n };\n\n return (\n <BaseModal\n {...restProps}\n id={id}\n className={classes['dialog']}\n containerClassName={classes['container']}\n open={open}\n disableBackdrop\n onClose={onClose}\n zIndex={zIndex}\n >\n <DialogTitle id={labelId(id)} title={title} />\n <BaseModalContent id={descriptionId(id)} className={classes['content']} disableAutoFocus>\n {children}\n </BaseModalContent>\n <DialogActions align={alignActions}>\n {alignActions === 'left'\n ? [PrimaryButton, TertiaryButton]\n : [TertiaryButton, PrimaryButton]}\n </DialogActions>\n <input\n autoFocus\n style={{\n position: 'absolute',\n width: 0,\n height: 0,\n opacity: 0,\n }}\n tabIndex={-1}\n onKeyPress={onHiddenInputKeyPress}\n />\n </BaseModal>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport classes from './BaseModalHeader.module.scss';\nimport { IconButton } from '../../Button/IconButton';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Typography } from '../../Typography/Typography';\n\nexport interface Props extends HTMLAttributes<HTMLElement> {\n id: string;\n title: string;\n children?: React.ReactNode;\n onClose: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const BaseModalHeader = ({ id, title, children, onClose, ...restProps }: Props) => {\n return (\n <header {...restProps} className={classes['header']}>\n <div className={classes['headline']}>\n <Typography id={id} className={classes['title']} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n <IconButton onClick={onClose} className={classes['closeBtn']} title=\"close modal\">\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n {children}\n </header>\n );\n};\n","export const generateID = (length = 15, stringToWeaveIn?: string) => {\n /** We will make sure to mesh the generate id and name property together to basically create a unique ID */\n let hashCharacters = [\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '0',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n ];\n\n let id = '';\n\n /** Generate an id of x characters in length */\n for (let i = 0; i < length && id.length < length; i++) {\n let stringCharacter =\n stringToWeaveIn && stringToWeaveIn[i] !== undefined && !/\\s/.test(stringToWeaveIn[i])\n ? stringToWeaveIn[i]\n : '';\n id = id + stringCharacter + hashCharacters[Math.floor(Math.random() * hashCharacters.length)];\n }\n\n return id.slice(0, length);\n};\n","import React, { useState } from 'react';\n\nexport interface ConfigObject {\n relativeElement: RefElement;\n elementToBePositioned: RefElement;\n transformOrigin?: Placement;\n placement?: Placement;\n offset?: Offset;\n}\n\nexport type HorizontalPlacment = 'left' | 'center' | 'centerh' | 'right';\nexport type VerticalPlacement = 'top' | 'center' | 'centerv' | 'bottom';\n\ntype Axis = 'vertical' | 'horizontal';\ntype RefElement = React.RefObject<HTMLOrSVGElement> | undefined;\n\ninterface DomRectObject {\n top: number;\n right: number;\n bottom: number;\n left: number;\n center: number;\n centerh: number;\n centerv: number;\n width: number;\n height: number;\n x: number;\n y: number;\n}\n\nexport interface Placement {\n horizontal: HorizontalPlacment;\n vertical: VerticalPlacement;\n}\n\nexport interface Offset {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface Position {\n top: PositionType;\n right: PositionType;\n bottom: PositionType;\n left: PositionType;\n}\n\ninterface Dimensions {\n height: number;\n width: number;\n}\n\ntype PositionType = number | 'initial';\n\nconst defaultConfigObject: ConfigObject = {\n relativeElement: undefined,\n elementToBePositioned: undefined,\n transformOrigin: {\n horizontal: 'left',\n vertical: 'top',\n },\n placement: {\n horizontal: 'left',\n vertical: 'top',\n },\n offset: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n};\n\nexport const usePosition = (providedConfigObject: ConfigObject = defaultConfigObject) => {\n const configObject = { ...defaultConfigObject, ...providedConfigObject };\n\n if (configObject.transformOrigin === undefined) {\n configObject.transformOrigin = defaultConfigObject.transformOrigin;\n }\n\n if (configObject.placement === undefined) {\n configObject.placement = defaultConfigObject.placement;\n }\n\n if (configObject.offset === undefined) {\n configObject.offset = defaultConfigObject.offset;\n }\n\n const [position, setPosition] = useState<Position>({\n left: 0,\n top: 0,\n right: 'initial',\n bottom: 'initial',\n });\n\n const _fixPossibleViewportOverflow = (\n value: number,\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n elDimensions: Dimensions\n ) => {\n let returnValue = value;\n\n if (\n (transformOrigin[requestedReturnValue] === 'left' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'top' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'center' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'bottom' && returnValue < 0)\n ) {\n returnValue = 0;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === 'left' &&\n returnValue > window.innerWidth - elDimensions.width) ||\n (transformOrigin[requestedReturnValue] === 'center' &&\n requestedReturnValue === 'horizontal' &&\n returnValue > window.innerWidth - elDimensions.width)\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === 'top' &&\n returnValue > window.innerHeight - elDimensions.height) ||\n (transformOrigin[requestedReturnValue] === 'center' &&\n requestedReturnValue === 'vertical' &&\n returnValue > window.innerHeight - elDimensions.height)\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n if (\n transformOrigin[requestedReturnValue] === 'right' &&\n returnValue > window.innerWidth - elDimensions.width\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n transformOrigin[requestedReturnValue] === 'bottom' &&\n returnValue > window.innerHeight - elDimensions.height\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n return returnValue;\n };\n\n const _applyOffsetToPlacementValue = (\n value: number,\n requestedReturnValue: Axis,\n transformOrigin: Placement\n ) => {\n let returnValue = value;\n if (\n (requestedReturnValue === 'horizontal' && configObject.offset?.left !== 0) ||\n (requestedReturnValue === 'horizontal' && configObject.offset?.right !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === 'left' ||\n transformOrigin[requestedReturnValue] === 'center'\n ) {\n returnValue += configObject.offset?.left!;\n returnValue -= configObject.offset?.right!;\n }\n\n if (transformOrigin[requestedReturnValue] === 'right') {\n returnValue -= configObject.offset?.left!;\n returnValue += configObject.offset?.right!;\n }\n }\n\n if (\n (requestedReturnValue === 'vertical' && configObject.offset?.top !== 0) ||\n (requestedReturnValue === 'vertical' && configObject.offset?.bottom !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === 'top' ||\n transformOrigin[requestedReturnValue] === 'center'\n ) {\n returnValue += configObject.offset?.top!;\n returnValue -= configObject.offset?.bottom!;\n }\n\n if (transformOrigin[requestedReturnValue] === 'bottom') {\n returnValue -= configObject.offset?.top!;\n returnValue += configObject.offset?.bottom!;\n }\n }\n\n return returnValue;\n };\n\n const _calculateInitialPlacementValue = (\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n placementOriginDefinition: HorizontalPlacment | VerticalPlacement,\n elDimensions: Dimensions\n ) => {\n let value = 0;\n\n if (\n transformOrigin[requestedReturnValue] === 'left' ||\n transformOrigin[requestedReturnValue] === 'top'\n ) {\n value = relEl[placementOriginDefinition];\n } else if (transformOrigin[requestedReturnValue] === 'center') {\n value =\n relEl[placementOriginDefinition] -\n elDimensions[requestedReturnValue === 'horizontal' ? 'width' : 'height'] / 2;\n } else if (\n transformOrigin[requestedReturnValue] === 'right' ||\n transformOrigin[requestedReturnValue] === 'bottom'\n ) {\n value =\n window[requestedReturnValue === 'horizontal' ? 'innerWidth' : 'innerHeight'] -\n relEl[placementOriginDefinition];\n }\n\n return value;\n };\n\n /**\n *\n * @param requestedReturnValue whether the requested return value is for the horizontal or vertical axis\n * @returns either the horizontally centered placement definition (centerh) or the vertically centered one (centerv)\n */\n const _determineCenteredPlacementOrigin = (requestedReturnValue: Axis) => {\n if (requestedReturnValue === 'horizontal') {\n return 'centerh';\n } else if (requestedReturnValue === 'vertical') {\n return 'centerv';\n }\n throw new Error(\n `the requested return value isn\\'t \"vertical\" or \"horizontal\" ${requestedReturnValue} was given.`\n );\n };\n\n const _calculatePlacementValue = (\n transformOrigin: Placement,\n placement: HorizontalPlacment | VerticalPlacement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n elDimensions: Dimensions\n ): number => {\n const placementOriginDefinition =\n placement === 'center' ? _determineCenteredPlacementOrigin(requestedReturnValue) : placement;\n\n const value = _calculateInitialPlacementValue(\n transformOrigin,\n requestedReturnValue,\n relEl,\n placementOriginDefinition,\n elDimensions\n );\n\n const valueWithOffset = _applyOffsetToPlacementValue(\n value,\n requestedReturnValue,\n transformOrigin\n );\n\n const valueCorrectionForViewportOverflow = _fixPossibleViewportOverflow(\n valueWithOffset,\n transformOrigin,\n requestedReturnValue,\n elDimensions\n );\n\n return valueCorrectionForViewportOverflow;\n };\n\n const _calculatePlacement = (relEl: DomRectObject, elDimensions: Dimensions, axis: Axis) => {\n const placementValue = _calculatePlacementValue(\n configObject.transformOrigin!,\n configObject.placement![axis]!,\n axis,\n relEl,\n elDimensions\n );\n\n let direction = 'left';\n let oppositeDirection = 'right';\n\n if (axis === 'horizontal' && configObject.transformOrigin?.horizontal === 'right') {\n direction = 'right';\n oppositeDirection = 'left';\n } else if (axis === 'horizontal') {\n direction = 'left';\n oppositeDirection = 'right';\n }\n\n if (axis === 'vertical' && configObject.transformOrigin?.vertical === 'bottom') {\n direction = 'bottom';\n oppositeDirection = 'top';\n } else if (axis === 'vertical') {\n direction = 'top';\n oppositeDirection = 'bottom';\n }\n\n setPosition((prevState) => ({\n ...prevState,\n [direction]: placementValue,\n [oppositeDirection]: 'initial',\n }));\n };\n\n const calculatePosition = () => {\n if (!configObject.relativeElement?.current) return;\n const relativeElRect = (configObject.relativeElement!\n .current as HTMLElement)!.getBoundingClientRect();\n const elementToBePositionedDimensions: Dimensions = {\n height: (configObject.elementToBePositioned!.current as HTMLElement).offsetHeight,\n width: (configObject.elementToBePositioned!.current as HTMLElement).offsetWidth,\n };\n\n /** We want to add a center (horizontal and vertical) property to the DOMRect object. Since it's a special object we can't modify so we clone it and add it. */\n const clonedRelEl = {\n top: relativeElRect.top,\n right: relativeElRect.right,\n bottom: relativeElRect.bottom,\n center: 0,\n centerv: relativeElRect.top + relativeElRect.height / 2,\n centerh: relativeElRect.left + relativeElRect.width / 2,\n left: relativeElRect.left,\n width: relativeElRect.width,\n height: relativeElRect.height,\n x: relativeElRect.x,\n y: relativeElRect.y,\n };\n\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, 'horizontal');\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, 'vertical');\n };\n\n return {\n top: position.top,\n bottom: position.bottom,\n left: position.left,\n right: position.right,\n calculatePosition,\n };\n};\n","import React, { HTMLProps, ReactNode, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { Icon, Icons } from '../Icon/Icon';\nimport classes from './Tooltip.module.scss';\nimport { generateID } from '../util/helper';\nimport { Offset, Placement, usePosition } from '../hooks/usePosition';\nimport { createPortal } from 'react-dom';\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'label'> {\n label: string | ReactNode;\n children: string;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n domRoot?: HTMLElement;\n}\n\ninterface DefaultPosition {\n placement: Placement;\n offset: Offset;\n transformOrigin: Placement;\n}\n\nconst defaultPosition: DefaultPosition = {\n placement: { horizontal: 'right', vertical: 'center' },\n offset: { left: 16, right: 0, top: 0, bottom: 0 },\n transformOrigin: { horizontal: 'left', vertical: 'center' },\n};\n\nexport const Tooltip = ({\n children,\n className,\n placement = defaultPosition.placement,\n offset = defaultPosition.offset,\n transformOrigin = defaultPosition.transformOrigin,\n domRoot = document.body,\n label,\n ...rest\n}: Props) => {\n const [identifier] = useState(generateID());\n const [visible, setVisible] = useState(false);\n\n const relativeElement = useRef<HTMLOrSVGElement>(null);\n const elementToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, bottom, right, left, calculatePosition } = usePosition({\n relativeElement: relativeElement,\n elementToBePositioned: elementToBePositioned,\n placement: placement,\n offset: offset,\n transformOrigin: transformOrigin,\n });\n\n useEffect(() => {\n if (!visible) return;\n\n function escapePressHandler(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n setVisible(false);\n }\n }\n\n document.addEventListener('keyup', escapePressHandler);\n\n return () => {\n document.removeEventListener('keyup', escapePressHandler);\n };\n }, [visible]);\n\n useLayoutEffect(() => {\n calculatePosition();\n }, [visible]);\n\n const renderChildren = () => {\n if (React.isValidElement(label)) {\n return React.cloneElement(label, {\n onFocus: () => setVisible(true),\n onBlur: () => setVisible(false),\n 'aria-describedby': identifier,\n tabIndex: 0,\n className: classes['label'],\n });\n }\n\n return (\n <span\n className={classes['label']}\n tabIndex={0}\n onFocus={() => setVisible(true)}\n onBlur={() => setVisible(false)}\n aria-describedby={identifier}\n >\n {label}\n </span>\n );\n };\n\n return (\n <div {...rest} className={`${classes.wrapper} ${className ?? ''}`}>\n {renderChildren()}\n <div className={`${classes['tooltip-wrapper']}`}>\n <Icon\n ref={relativeElement}\n tag=\"div\"\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n icon={Icons.InfoCircle}\n className={classes.icon}\n />\n {createPortal(\n <div\n ref={elementToBePositioned}\n style={{\n ...rest.style,\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n }}\n aria-hidden={!visible}\n id={identifier}\n className={`${classes.tooltip} ${visible ? classes.visible : ''}`}\n >\n {children}\n </div>,\n domRoot\n )}\n </div>\n </div>\n );\n};\n","import React, { HTMLProps, ReactElement } from 'react';\nimport { Icon, Icons, Props as IconProps } from '../Icon/Icon';\nimport classes from './Tile.module.scss';\n\nimport { Props as ContextMenuProps } from '../ContextMenu/ContextMenu';\n\ninterface ImageProps {\n src: string;\n alt: string;\n}\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'contextMenu'> {\n title: string;\n imageProps?: ImageProps;\n iconProps?: IconProps;\n loading?: boolean;\n menu?: ReactElement<ContextMenuProps>;\n}\n\nexport const Tile = ({\n title,\n imageProps,\n iconProps,\n className,\n loading,\n menu,\n ...rest\n}: Props) => {\n if (!title) {\n throw new Error('Please make sure to pass a title prop to your Tile component.');\n }\n\n return (\n <div {...rest} className={`${classes['tile']} ${loading ? classes['loading'] : ''}`}>\n <header>\n {iconProps && <Icon {...iconProps} className={`${classes['icon']} ${className ?? ''}`} />}\n {menu ?? null}\n </header>\n <div className={classes['content']}>\n {imageProps && imageProps.src && imageProps.alt && (\n <figure className={classes['image']}>{!loading && <img {...imageProps} />}</figure>\n )}\n {!imageProps && <Icon className={classes['placeholder']} icon={Icons.Image} />}\n <span className={classes['title']}>{title}</span>\n </div>\n </div>\n );\n};\n","import React, { HTMLProps, ReactNode } from 'react';\nimport classes from './Tiles.module.scss';\nimport { Tile } from './Tile';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactNode;\n loading?: boolean;\n}\n\nexport const Tiles = ({ children, className, loading = false, ...rest }: Props) => {\n const renderChildren = () => {\n if (loading) {\n return [\n <Tile\n key=\"placeholder1\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder', alt: 'placeholder' }}\n loading={true}\n />,\n <Tile\n key=\"placeholder2\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder', alt: 'placeholder' }}\n loading={true}\n />,\n <Tile\n key=\"placeholder3\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder', alt: 'placeholder' }}\n loading={true}\n />,\n ];\n }\n\n return children;\n };\n\n return (\n <div\n {...rest}\n className={`${classes['tiles']} ${className ?? ''}`}\n aria-live=\"polite\"\n aria-busy={loading}\n >\n {renderChildren()}\n </div>\n );\n};\n","import React, { forwardRef, HTMLProps, ReactNode, RefObject, useEffect, useRef } from 'react';\nimport { usePosition, Offset, Placement } from '../hooks/usePosition';\nimport classes from './Popover.module.scss';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n show?: boolean;\n anchorEl?: RefObject<HTMLOrSVGElement>;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n}\n\nexport const Popover = forwardRef<HTMLDivElement, Props>(\n ({ children, className, show, placement, offset, transformOrigin, anchorEl, ...rest }, ref) => {\n const elToBePositioned = useRef<HTMLDivElement>(null);\n\n if (show === undefined) {\n throw new Error('Please make sure to define the \"show\" property on your Popover component');\n }\n\n const { top, left, right, bottom, calculatePosition } = usePosition({\n elementToBePositioned: elToBePositioned,\n relativeElement: anchorEl,\n offset: offset,\n placement: placement,\n transformOrigin: transformOrigin,\n });\n\n useEffect(() => {\n calculatePosition();\n }, [show]);\n\n return (\n <div ref={ref} {...rest}>\n <div\n ref={elToBePositioned}\n className={`${classes.popover} ${className ?? ''} ${show ? classes.show : ''}`}\n style={{ top: top, left: left, right: right, bottom: bottom }}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n","import { useEffect } from 'react';\n\nexport const useBodyClick = (\n checkFunction: (event: MouseEvent) => boolean,\n callbackFunction: (...args: unknown[]) => unknown,\n dependingStateVariable: React.ComponentState | React.ComponentState[]\n) => {\n function bodyClickListener(event: MouseEvent) {\n if (checkFunction(event)) {\n callbackFunction();\n }\n }\n useEffect(() => {\n window.addEventListener('click', bodyClickListener);\n\n return () => {\n window.removeEventListener('click', bodyClickListener);\n };\n }, [dependingStateVariable]);\n};\n","import React, { HTMLProps, ReactElement, useEffect, useRef, useState } from 'react';\nimport { Props as ButtonProps } from '../Button/Button';\nimport { Props as IconButtonProps } from '../Button/IconButton';\nimport { Popover } from '../Popover/Popover';\nimport { Placement, Offset } from '../hooks/usePosition';\nimport { Props as ContextMenuItemProps } from './ContextMenuItem';\nimport classes from './ContextMenu.module.scss';\nimport { useBodyClick } from '../hooks/useBodyClick';\nimport { createPortal } from 'react-dom';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n trigger: ReactElement<ButtonProps> | ReactElement<IconButtonProps>;\n children: ReactElement<ContextMenuItemProps> | ReactElement<ContextMenuItemProps>[];\n placement?: Placement;\n transformOrigin?: Placement;\n offset?: Offset;\n id: string;\n show?: boolean;\n domRoot?: HTMLElement;\n onShow?: () => void;\n onClose?: () => void;\n}\n\nexport const ContextMenu = ({\n trigger,\n children,\n id,\n show = false,\n onShow,\n onClose,\n placement = { horizontal: 'right', vertical: 'top' },\n offset = { top: 0, bottom: 0, left: 0, right: 0 },\n transformOrigin = { horizontal: 'left', vertical: 'top' },\n domRoot = document.body,\n ...rest\n}: Props) => {\n const anchorEl = useRef<HTMLButtonElement>(null);\n const [showContextMenu, setShowContextMenu] = useState(show);\n\n if (!id) {\n throw new Error('You need to provide an ID to the context menu');\n }\n\n useBodyClick(\n (event) => {\n return showContextMenu && anchorEl.current !== event.target;\n },\n () => {\n setShowContextMenu(false);\n },\n showContextMenu\n );\n\n useEffect(() => {\n if (showContextMenu === true) {\n onShow && onShow();\n } else {\n onClose && onClose();\n }\n }, [showContextMenu]);\n\n const renderTrigger = () =>\n React.cloneElement(trigger, {\n id: id,\n ['aria-haspopup']: 'true',\n ['aria-controls']: `${id}-menu`,\n ['aria-expanded']: show,\n onClick: () => setShowContextMenu(!showContextMenu),\n ref: anchorEl,\n });\n\n return (\n <div {...rest} className={classes['context-menu']}>\n {renderTrigger()}\n {createPortal(\n <Popover\n placement={placement}\n transformOrigin={transformOrigin}\n offset={offset}\n anchorEl={anchorEl}\n show={showContextMenu}\n >\n <ul className={classes.menu} id={`${id}-menu`} aria-describedby={id} role=\"menu\">\n {children}\n </ul>\n </Popover>,\n domRoot\n )}\n </div>\n );\n};\n","import React, { HTMLProps } from 'react';\nimport classes from './ContextMenuItem.module.scss';\n\nexport interface Props extends Omit<HTMLProps<HTMLLIElement>, 'onClick'> {\n children?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const ContextMenuItem = ({ children, onClick, ...rest }: Props) => {\n return (\n <li {...rest} role=\"menuitem\" className={classes['context-menu-item']}>\n <button onClick={(event) => onClick && onClick(event)}>{children}</button>\n </li>\n );\n};\n","import React, { Fragment, HTMLProps, ReactElement } from 'react';\nimport { Icon, Icons } from '../Icon/Icon';\nimport { Link, Props as LinkProps } from '../Link/Link';\nimport { Typography } from '../Typography/Typography';\nimport classes from './Breadcrumbs.module.scss';\n\ntype ChildrenType = ReactElement<LinkProps, typeof Link>;\n\nexport interface Props extends HTMLProps<HTMLElement> {\n children: ChildrenType | ChildrenType[];\n 'aria-label': string;\n}\n\nexport const Breadcrumbs = ({\n children,\n 'aria-label': ariaLabel,\n className = '',\n ...rest\n}: Props) => {\n const items = React.Children.map(children, (child, index) => {\n const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;\n if (isLastElement) {\n return (\n <Typography\n key={child.key}\n variant=\"body\"\n tag=\"span\"\n className={classes['last']}\n aria-current=\"page\"\n >\n {child.props.children}\n </Typography>\n );\n } else {\n return (\n <Fragment key={child.key}>\n {React.cloneElement(child)}\n <Icon icon={Icons.ChevronRight} className={classes['icon']} />\n </Fragment>\n );\n }\n });\n return (\n <nav {...rest} aria-label={ariaLabel} className={`${classes['breadcrumbs']} ${className}`}>\n {items}\n </nav>\n );\n};\n","import React, { createContext } from 'react';\nimport { SnackbarOptionsProps } from '../interfaces';\n\ninterface SnackbarContextProps {\n enqueueSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueSuccessSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueErrorSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n}\n\nconst SnackbarContext = createContext<SnackbarContextProps>({\n enqueueSnackbar: () => null,\n enqueueSuccessSnackbar: () => null,\n enqueueErrorSnackbar: () => null,\n});\n\ninterface Props {\n initialState: SnackbarContextProps;\n children?: React.ReactNode;\n}\n\nconst SnackbarContextProvider = ({ children, initialState }: Props) => {\n return <SnackbarContext.Provider value={initialState}>{children}</SnackbarContext.Provider>;\n};\n\nexport { SnackbarContextProvider, SnackbarContext, SnackbarContextProps };\n","import React from 'react';\nimport classes from './SnackbarContainer.module.scss';\n\nexport interface Placement {\n vertical: 'top' | 'bottom';\n horizontal: 'start' | 'center' | 'end';\n}\n\nexport interface Props {\n placement: Placement;\n children?: React.ReactNode;\n zIndex?: number;\n className?: string;\n}\n\nexport const SnackbarContainer = ({ placement, children, zIndex, className, ...rest }: Props) => {\n return (\n <div\n {...rest}\n style={{ zIndex }}\n className={`${classes['snackbars']} ${classes[placement.horizontal]} ${\n classes[placement.vertical]\n } ${className ?? ''}`}\n >\n {children}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport const useAnimation = <RefElement extends HTMLElement>(callback: () => void) => {\n const animatedObjectRef = useRef<RefElement>(null);\n /** We need to store flag that says us when to call the callback */\n const [animationStarted, setAnimationStarted] = useState(false);\n\n const onAnimationEnd = () => animationStarted && callback();\n\n useEffect(() => {\n animatedObjectRef.current?.addEventListener('animationend', onAnimationEnd);\n return () => animatedObjectRef.current?.removeEventListener('animationend', onAnimationEnd);\n }, [animationStarted]);\n\n return {\n ref: animatedObjectRef,\n animationStarted,\n startAnimation: () => setAnimationStarted(true),\n };\n};\n","import React, { useEffect, useRef } from 'react';\nimport { IconButton } from '../../Button/IconButton';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Variant, Actions } from '../interfaces';\nimport classes from './SnackbarItem.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { useAnimation } from '../../hooks/useAnimation';\nimport { Typography } from '../../Typography/Typography';\n\nconst textColor = 'var(--snackbar-text-color)';\n\nexport interface Props {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n onClose: (key: string) => void;\n closeButtonTitle: string;\n content?: string;\n actions?: Actions;\n}\n\nexport const SnackbarItem = ({\n id,\n title,\n duration,\n variant,\n content,\n actions = [],\n onClose,\n closeButtonTitle,\n}: Props) => {\n const timerHandler = useRef<ReturnType<typeof setTimeout>>();\n const onAnimationEnd = () => onClose(id);\n const { ref, animationStarted, startAnimation } = useAnimation<HTMLDivElement>(onAnimationEnd);\n\n useEffect(() => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n return () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n }, []);\n\n const onMouseEnter = () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n\n const onMouseLeave = () => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n };\n\n const getVariantIcon = () => {\n if (variant === 'error') {\n return Icons.TimesCircleAlt;\n }\n return variant === 'success' ? Icons.CheckmarkCircleBreakout : Icons.InfoCircle;\n };\n\n const actionButtons = actions.map((actionProp, index) => (\n <button\n key={index}\n {...actionProp}\n onClick={(e) => {\n onClose(id);\n actionProp.onClick && actionProp.onClick(e);\n }}\n children={actionProp.label}\n className={classes['action-button']}\n ></button>\n ));\n\n return (\n <div\n ref={ref}\n className={`${classes['snackbar']} ${classes[variant]} ${\n animationStarted ? readyclasses['slide-out'] : readyclasses['slide-in']\n }`}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <Icon icon={getVariantIcon()} className={classes['icon']} />\n <div className={classes['container']}>\n <div className={classes['headline']}>\n <Typography className={classes['title']} variant=\"h4\" tag=\"span\">\n {title}\n </Typography>\n <IconButton\n onClick={() => startAnimation()}\n className={classes['close-btn']}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} color={textColor} />\n </IconButton>\n </div>\n {/* @TODO: change it to Typography*/}\n {!!content && (\n <Typography className={classes['content']} variant=\"body\">\n {content}\n </Typography>\n )}\n {actionButtons.length > 0 && <div className={classes['actions']}>{actionButtons}</div>}\n </div>\n </div>\n );\n};\n","import React, { ReactNode, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { SnackbarContextProvider } from './SnackbarStateProvider';\nimport { Actions, SnackbarOptionsProps, Variant } from '../interfaces';\nimport { Placement, SnackbarContainer } from '../SnackbarContainer/SnackbarContainer';\nimport { generateID } from '../../util/helper';\nimport { SnackbarItem } from '../SnackbarItem/SnackbarItem';\n\n/** Short msg is when only title is provided. Long one when content or/and actions are provided (or type is error). */\ninterface Duration {\n long: number;\n short: number;\n}\n\nexport interface Props {\n closeButtonTitle: string;\n children?: ReactNode | ReactNode[];\n placement?: Placement;\n stackSize?: number;\n domRoot?: HTMLElement;\n autoHideDuration?: Duration;\n className?: string;\n}\n\ninterface Item {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n content?: string;\n actions?: Actions;\n}\n\nexport const SnackbarProvider = (\n {\n closeButtonTitle,\n placement = { vertical: 'bottom', horizontal: 'center' },\n autoHideDuration = { long: 8000, short: 4000 },\n stackSize = 3,\n domRoot = document.body,\n children,\n className,\n }: Props = { closeButtonTitle: '' }\n) => {\n const [snackbars, setSnackbars] = useState<Item[]>([]);\n\n const addSnackbar = (item: Item) => {\n setSnackbars((items) => [...items, item]);\n };\n\n const getDuration = (variant: Variant, actions?: Actions, content?: string) => {\n const hasError = variant === 'error';\n const hasContentOrActions = content || actions;\n if (hasError || hasContentOrActions) {\n return autoHideDuration.long;\n }\n return autoHideDuration.short;\n };\n\n const enqueueSnackbar = (\n title: string,\n content?: string,\n options: SnackbarOptionsProps = {}\n ): void => {\n const {\n variant = 'info',\n actions,\n duration = getDuration(variant, actions, content),\n } = options;\n const item: Item = {\n title,\n content,\n variant,\n actions,\n duration,\n id: generateID(15, title),\n };\n addSnackbar(item);\n };\n\n const enqueueSuccessSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: 'success' });\n };\n\n const enqueueErrorSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: 'error' });\n };\n\n const onItemClosed = (id: string) => {\n setSnackbars((items) => [...items].filter((item) => item.id !== id));\n };\n\n const snackbarList = snackbars.map((item, index) =>\n index < stackSize ? (\n <SnackbarItem\n {...item}\n key={item.id}\n onClose={onItemClosed}\n closeButtonTitle={closeButtonTitle}\n />\n ) : null\n );\n\n const snackbarPortal = createPortal(\n <SnackbarContainer placement={placement} className={className}>\n {snackbarList}\n </SnackbarContainer>,\n domRoot\n );\n\n return (\n <SnackbarContextProvider\n initialState={{ enqueueSnackbar, enqueueSuccessSnackbar, enqueueErrorSnackbar }}\n >\n {children}\n {snackbarPortal}\n </SnackbarContextProvider>\n );\n};\n","import { useContext } from 'react';\nimport { SnackbarContext } from './SnackbarProvider/SnackbarStateProvider';\n\nexport const useSnackbar = () => useContext(SnackbarContext);\n","import React, { HTMLProps, ReactNode } from 'react';\nimport classes from './Form.module.scss';\n\nexport interface Props extends HTMLProps<HTMLFormElement> {\n children?: ReactNode;\n}\n\nexport const Form = ({ children, className, ...rest }: Props) => {\n return (\n <form className={`${classes.form} ${className ?? ''}`} {...rest}>\n {children}\n </form>\n );\n};\n","import React, { ReactElement } from 'react';\nimport readyclasses from '../../readyclasses.module.scss';\nimport classes from './Fieldset.module.scss';\nimport { HTMLProps } from '../../interfaces';\nimport { Typography, Variant } from '../../Typography/Typography';\n\nexport interface Props extends HTMLProps<HTMLFieldSetElement> {\n children?: ReactElement | ReactElement[];\n title: string;\n titleVariant?: Variant;\n hideTitle?: boolean;\n background?: string;\n noPadding?: boolean;\n noBackground?: boolean;\n}\n\nexport const Fieldset = ({\n children,\n className,\n title,\n titleVariant = 'body',\n hideTitle = false,\n noBackground,\n background = noBackground ? '' : '#FFF',\n noPadding = false,\n disabled = false,\n ...rest\n}: Props) => {\n const renderChildren = () => {\n if (!children) return;\n\n return React.Children.map(children, (child: ReactElement) =>\n React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n })\n );\n };\n\n return (\n <fieldset\n {...rest}\n disabled={disabled}\n style={{ backgroundColor: background, ...rest.style }}\n className={`${classes.fieldset} ${noPadding ? classes['no-padding'] : ''} ${className ?? ''}`}\n >\n {title && <legend className={readyclasses['sr-only']}>{title}</legend>}\n {title && !hideTitle && (\n <Typography variant={titleVariant} tag=\"span\" aria-hidden=\"true\" className={classes.title}>\n {title}\n </Typography>\n )}\n {renderChildren()}\n </fieldset>\n );\n};\n","import React, { ReactElement } from 'react';\nimport classes from './FormControl.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactElement | ReactElement[];\n grid?: 1 | 2 | 3;\n align?: 'top' | 'start' | 'middle' | 'center' | 'bottom' | 'end' | 'stretch';\n}\n\nexport const FormControl = ({\n children,\n disabled,\n className,\n grid,\n align = 'center',\n ...rest\n}: Props) => {\n const renderChildren = () =>\n React.Children.map(children, (child) => {\n if (!child) {\n return null;\n }\n\n const childElement = React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n });\n\n if (grid && grid > 1) {\n return <div className={`${classes['col-' + grid]} ${classes.column}`}>{childElement}</div>;\n }\n\n return childElement;\n });\n\n return (\n <div\n {...rest}\n data-formcontrol\n className={`${classes['form-control']} ${className ? className : ''} ${\n grid && grid > 1 ? `${classes.grid} ${classes['grid-' + grid]}` : ''\n } ${classes[align]}`}\n >\n {renderChildren()}\n </div>\n );\n};\n","import React, { ReactNode } from 'react';\nimport classes from './FormHelperText.module.scss';\nimport { HTMLProps } from '../../interfaces';\nimport { Typography } from '../../Typography/Typography';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n error?: boolean;\n}\n\nexport const FormHelperText = ({ children, error, className, ...rest }: Props) => {\n return (\n <Typography\n {...rest}\n variant=\"sub-text\"\n tag=\"div\"\n className={`${classes['form-helper-text']} ${error ? classes.error : ''} ${className ?? ''}`}\n >\n {children}\n </Typography>\n );\n};\n","/** The empty className property on FormHelperText is on purpose! We want to basically \"filter\" out the className from helperProps because we're adding this to the surrounding div. This makes it so also the errormessage receives this styling. */\n\nimport React, { ReactChild } from 'react';\nimport classes from './FormGroup.module.scss';\nimport { FormHelperText, Props as HelperProps } from '../FormHelperText/FormHelperText';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactChild[] | ReactChild;\n error?: boolean;\n errorMessageIcon?: Icons;\n errorMessageIconPosition?: 'before' | 'after';\n errorMessage?: string;\n errorId?: string;\n helperIndent?: number;\n helperText?: string;\n helperId?: string;\n helperProps?: HelperProps;\n}\n\nexport const FormGroup = ({\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition = 'before',\n helperText,\n helperId,\n helperProps,\n helperIndent,\n ...rest\n}: Props) => {\n return (\n <div\n {...rest}\n className={`${classes['form-group']} ${error ? classes.error : ''} ${className ?? ''}`}\n >\n {children}\n\n {(helperText || errorMessage) && (\n <div\n style={{ marginLeft: `${helperIndent}px` }}\n className={`${classes['default-helper']} ${\n helperProps?.className ? helperProps.className : ''\n }`}\n >\n {helperText && !error && (\n <FormHelperText {...helperProps} className={''} id={helperId}>\n {helperText}\n </FormHelperText>\n )}\n {error && errorMessage && (\n <span className={classes['error-message']}>\n <span className={classes.message} id={errorId}>\n {errorMessageIcon && errorMessageIconPosition === 'before' && (\n <Icon\n className={`${classes['error-icon']} ${classes['error-icon-before']}`}\n icon={errorMessageIcon}\n />\n )}\n {errorMessage}\n {errorMessageIcon && errorMessageIconPosition === 'after' && (\n <Icon\n className={`${classes['error-icon']} ${classes['error-icon-after']}`}\n icon={errorMessageIcon}\n />\n )}\n </span>\n </span>\n )}\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport classes from './Label.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLLabelElement> {\n children?: string;\n}\n\nexport const Label = ({ children, className, hidden = false, ...rest }: Props) => {\n return (\n <label\n {...rest}\n className={`${hidden ? readyclasses['sr-only'] : ''} ${classes['label']} ${className ?? ''}`}\n >\n {children}\n </label>\n );\n};\n","import React, { useEffect } from 'react';\nimport classes from './Input.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\n\nconst dateTypes = ['date', 'time', 'datetime-local'] as const;\n\nexport type Type =\n | 'text'\n | 'email'\n | 'file'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'url'\n | 'hidden'\n | typeof dateTypes[number];\n\nexport interface Props extends HTMLProps<HTMLInputElement> {\n wrapperProps?: HTMLProps<HTMLInputElement>;\n labeledBy?: string;\n type: Type;\n error?: boolean;\n}\n\nexport const Input = ({\n error = false,\n className,\n name,\n style,\n wrapperProps,\n type,\n labeledBy,\n ...rest\n}: Props) => {\n useEffect(() => {\n if (name === undefined) {\n throw new Error(\"Please give your <Input /> component a 'name' attribute\");\n }\n }, []);\n\n const inputClassNames = [classes['input']];\n error && inputClassNames.push(classes['error']);\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n inputClassNames.push(classes['remove-extra-indent']);\n className && inputClassNames.push(className);\n\n const iconClassNames = [classes['warning']];\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n iconClassNames.push(classes['extra-indent']);\n\n return (\n <div\n {...wrapperProps}\n style={{ ...style }}\n className={`${classes['input-wrapper']} ${wrapperProps?.className ?? ''} ${\n type === 'hidden' ? readyclasses['hidden'] : ''\n }`}\n >\n <input\n {...rest}\n aria-labelledby={labeledBy}\n type={type}\n name={name}\n className={inputClassNames.join(' ')}\n />\n {error && <Icon className={iconClassNames.join(' ')} icon={Icons.Warning} />}\n </div>\n );\n};\n","import React, { useLayoutEffect } from 'react';\n\nexport const useScroll = (\n callbackFunction: (event: Event) => unknown,\n dependingStateVariable: React.ComponentState[] = []\n) => {\n const scrollListener = (event: Event) => callbackFunction(event);\n\n useLayoutEffect(() => {\n window.addEventListener('scroll', scrollListener);\n\n return () => {\n window.removeEventListener('scroll', scrollListener);\n };\n }, [...dependingStateVariable]);\n};\n","import classes from './Select.module.scss';\n\nimport React, {\n HTMLProps,\n ReactElement,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { Input } from '../Input/Input';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { FormElement } from '../form.interfaces';\nimport { useBodyClick } from '../../hooks/useBodyClick';\nimport { Position } from '../../hooks/usePosition';\nimport { useScroll } from '../../hooks/useScroll';\n\nexport interface Props extends FormElement<HTMLSelectElement> {\n children: ReactElement[];\n name?: string;\n labeledBy?: string;\n describedBy?: string;\n placeholder?: string;\n searchPlaceholder?: string;\n className?: string;\n value?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>, child?: ReactElement) => void;\n onClear?: (event: React.MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const Select = ({\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n searchPlaceholder = 'Search item',\n className,\n error = false,\n value = '',\n onChange,\n onClear,\n ...rest\n}: Props) => {\n const [expanded, setExpanded] = useState(false);\n const [filter, setFilter] = useState('');\n const [display, setDisplay] = useState('');\n const [listPosition, setListPosition] = useState<Partial<Position>>({});\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest('.custom-select') && expanded,\n () => {\n setExpanded(!expanded);\n },\n expanded\n );\n\n const rePositionList = () => {\n if (!expanded || !optionListReference.current || !containerReference.current) {\n return;\n }\n const windowHeight = window.innerHeight;\n const containerTopWithListHeight =\n containerReference.current.getBoundingClientRect().bottom -\n containerReference.current.getBoundingClientRect().height +\n optionListReference.current.getBoundingClientRect().height;\n\n if (containerTopWithListHeight > windowHeight) {\n setListPosition({ top: 'initial', bottom: 0 });\n } else {\n setListPosition({ top: 0, bottom: 'initial' });\n }\n };\n\n useScroll(rePositionList, [expanded]);\n\n useLayoutEffect(() => {\n rePositionList();\n }, [expanded]);\n\n const onOptionChangeHandler = (child: ReactElement) => (event: React.ChangeEvent) => {\n /**\n * We expose this to the outside inside of the onChange function as a parameter along with an optional second\n * parameter of the option that was clicked.\n */\n\n setDisplay(child.props.children);\n\n let newValue;\n let multiple = false; // Potential support for future multiple select. This should be a prop obviously.\n\n if (multiple) {\n /** We will implement the mulitple select in the next iteration */\n } else {\n newValue = child.props.value;\n }\n\n if (onChange) {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // Clone the event to not override `target` of the original event.\n // Don't know how to fix this any.. compiler whines that it can't construct it otherwise.\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent as React.ChangeEvent<HTMLSelectElement>, 'target', {\n writable: true,\n value: { value: newValue },\n });\n\n onChange(clonedEvent as React.ChangeEvent<HTMLSelectElement>, child);\n }\n\n setDisplay((event.currentTarget as HTMLElement).innerText);\n setExpanded(false);\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n onOptionSelect: onOptionChangeHandler(child),\n selected: child.props.value === value,\n filter: filter,\n })\n );\n\n const renderSearch = () => (\n <Input\n autoFocus\n onChange={filterResults}\n className={classes['select-search']}\n wrapperProps={{ className: classes['select-search-wrapper'] }}\n type=\"text\"\n name=\"search-option\"\n placeholder={searchPlaceholder}\n />\n );\n\n const filterResults = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFilter(event.currentTarget.value);\n };\n\n const statusIcon = () => {\n if (error) {\n return <Icon className={classes['warning']} icon={Icons.Warning} />;\n }\n if (value.length !== 0 && onClear) {\n return <Icon tag=\"div\" icon={Icons.TimesThin} onClick={onClear} />;\n }\n return null;\n };\n\n /** Set initial display value */\n useEffect(() => {\n for (let child of children) {\n if (child.props.value === value) {\n setDisplay(child.props.children);\n }\n }\n }, []);\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n\n return (\n <div\n {...(rest as HTMLProps<HTMLDivElement>)}\n ref={containerReference}\n className={`custom-select ${classes.select} ${additionalClasses.join(' ')} ${\n className ?? ''\n }`}\n >\n <button\n onClick={() => setExpanded(!expanded)}\n type=\"button\"\n name={name}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes['selected']}>\n {value.length === 0 && placeholder && (\n <span className={classes['placeholder']}>{placeholder}</span>\n )}\n {value.length > 0 && <span>{display}</span>}\n </div>\n <div className={classes['status']}>\n {statusIcon()}\n <Icon className={classes['triangle-down']} icon={Icons.TriangleDown} />\n </div>\n </button>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes['list-wrapper']}`}\n style={{ display: expanded ? 'block' : 'none', ...listPosition }}\n >\n {Array.isArray(children) && children.length > 10 && renderSearch()}\n <ul role=\"listbox\" tabIndex={-1}>\n {renderOptions()}\n </ul>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport classes from './Select.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLLIElement> {\n children: string;\n value: string;\n disabled?: boolean;\n selected?: boolean;\n label?: string;\n filter?: string;\n onOptionSelect?: (event: React.SyntheticEvent<HTMLLIElement>) => void;\n}\n\nexport const Option = ({\n children,\n className,\n selected = false,\n onOptionSelect,\n disabled,\n filter,\n ...rest\n}: Props) => {\n const [showOption, setShowOption] = useState(true);\n\n const onSelectHandler = (event: React.SyntheticEvent<HTMLLIElement>) => {\n if (onOptionSelect) onOptionSelect(event);\n };\n\n useEffect(() => {\n if (filter) {\n setShowOption(children.toLowerCase().match(filter.toLowerCase()) !== null);\n } else {\n setShowOption(true);\n }\n }, [filter]);\n\n if (!showOption) return null;\n\n return (\n <li\n {...rest}\n className={`${selected ? classes['selected-option'] : ''} ${\n disabled ? classes.disabled : ''\n } ${className ?? ''}`}\n onClick={onSelectHandler}\n onKeyPress={(e) => {\n e.key === 'Enter' && onSelectHandler(e);\n }}\n aria-selected={selected}\n role=\"option\"\n tabIndex={disabled ? -1 : 0}\n >\n {children}\n </li>\n );\n};\n","import React from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { FormElement } from '../form.interfaces';\nimport classes from './Textarea.module.scss';\n\nexport interface Props extends FormElement<HTMLTextAreaElement> {\n wrapperClassName?: string;\n errorClassName?: string;\n}\n\nexport const Textarea = ({\n error = false,\n disabled = false,\n className,\n rows = 4,\n wrapperClassName,\n errorClassName,\n ...rest\n}: Props) => {\n return (\n <div className={`${classes['textarea-wrapper']} ${wrapperClassName ? wrapperClassName : ''}`}>\n <textarea\n {...rest}\n rows={rows}\n className={`${error ? classes['error'] : ''} ${classes['textarea']} ${className ?? ''}`}\n disabled={disabled}\n />\n {error && (\n <Icon className={`${classes['warning']} ${errorClassName ?? ''}`} icon={Icons.Warning} />\n )}\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { generateID } from '../util/helper';\nimport { Type as InputTypes } from '../Form/Input/Input';\n\nexport const useWrapper = (value?: string, placeholder?: string, type?: InputTypes) => {\n const [helperId] = useState(generateID(20));\n const [errorId] = useState(generateID(20));\n const [labelId] = useState(generateID(20));\n const [floatingLabelActive, setFloatingLabelActive] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n\n useEffect(() => {\n if (value?.length || placeholder || type === 'datetime-local' || type === 'time') {\n setFloatingLabelActive(true);\n }\n }, []);\n\n useEffect(() => {\n if (value?.length || hasFocus) {\n setFloatingLabelActive(true);\n } else if (!placeholder && !hasFocus && type !== 'datetime-local' && type !== 'time') {\n setFloatingLabelActive(false);\n }\n }, [value, placeholder, type, hasFocus]);\n\n return {\n helperId,\n errorId,\n labelId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n };\n};\n","import React, { ReactElement } from 'react';\nimport { FormGroup, Props as FormGroupProps } from '../../FormGroup/FormGroup';\nimport { Label, Props as LabelProps } from '../../Label/Label';\nimport classes from './Wrapper.module.scss';\nimport { Props as HelperProps } from '../../FormHelperText/FormHelperText';\nimport { HTMLProps } from '../../../interfaces';\n\nexport interface Props extends Omit<FormGroupProps, 'children'> {\n children: ReactElement | ReactElement[];\n floatingLabelActive?: boolean;\n floatingLabel?: boolean;\n helperIndent?: number;\n label?: string;\n labelProps?: LabelProps;\n name: string;\n /** This does NOT add validation! It simply adds an asterix on the Label! */\n required?: boolean;\n innerClassName?: string;\n}\n\n/** For components that extend this component we create an interface (InputWrapper, SelectWrapper, etc.) */\nexport interface WrapperProps extends HTMLProps<HTMLDivElement> {\n errorMessage?: string;\n error: boolean;\n helperText?: string;\n helperProps?: HelperProps;\n label?: string;\n name: string;\n required?: boolean;\n}\n\nexport const Wrapper = ({\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition,\n helperText,\n helperId,\n floatingLabel = true,\n floatingLabelActive,\n required,\n helperProps,\n helperIndent,\n labelProps,\n label,\n disabled,\n name,\n innerClassName,\n ...rest\n}: Props) => {\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n disabled,\n })\n );\n\n const labelClasses = [];\n\n floatingLabel && labelClasses.push(classes['floating-label']);\n floatingLabel && floatingLabelActive && labelClasses.push(classes['floating-label-active']);\n labelProps?.className && labelClasses.push(labelProps.className);\n required && labelClasses.push(classes['required']);\n error && labelClasses.push(classes['error']);\n\n return (\n <div {...rest} className={`${classes.wrapper} ${className ? className : ''}`}>\n <FormGroup\n error={error}\n errorMessage={errorMessage}\n errorId={errorId}\n errorMessageIcon={errorMessageIcon}\n errorMessageIconPosition={errorMessageIconPosition}\n helperText={helperText}\n helperId={helperId}\n helperProps={helperProps}\n helperIndent={helperIndent}\n >\n <div\n className={`${floatingLabel ? classes['floating-wrapper'] : ''} ${\n innerClassName ? innerClassName : ''\n }`}\n >\n {label && (\n <Label\n {...labelProps}\n className={`${classes.label} ${labelClasses.join(' ')}`}\n htmlFor={name}\n >\n {label}\n </Label>\n )}\n {renderChildren()}\n </div>\n </FormGroup>\n </div>\n );\n};\n","import React, { ReactElement, useEffect } from 'react';\nimport classes from './CheckboxWrapper.module.scss';\nimport { useWrapper } from '../../../hooks/useWrapper';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Icons } from '../../../Icon/Icon';\nimport { Fieldset, Props as FieldsetProps } from '../../../Form/Fieldset/Fieldset';\n\nexport interface Props extends WrapperProps {\n children: ReactElement[] | ReactElement;\n fieldsetProps: FieldsetProps;\n}\n\nexport const CheckboxWrapper = ({\n children,\n error = false,\n helperText,\n helperProps,\n fieldsetProps,\n ...rest\n}: Props) => {\n const { errorId, helperId } = useWrapper();\n\n useEffect(() => {\n if (fieldsetProps.title === undefined) {\n console.error(\n `You should give your Fieldset component a title prop so a legend element is rendered. This error was thrown in CheckboxWrapper. You can add this title prop through the fieldsetProps prop by passing an object (fieldsetProps={{ title: \"title here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n parentHelperId: helperText ? helperId : false,\n disabled: rest.disabled,\n })\n );\n\n return (\n <Fieldset {...fieldsetProps}>\n <Wrapper\n {...rest}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['checkbox-wrapper-helper']} ${\n error ? classes['checkbox-wrapper-error'] : ''\n } ${helperProps?.className ?? ''}`,\n }}\n error={error}\n errorMessageIcon={Icons.Warning}\n errorId={errorId}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n","import React from 'react';\nimport { Input, Type, Props as InputProps } from '../../Input/Input';\nimport classes from './InputWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\ninterface OptionalInputProps extends Omit<InputProps, 'type'> {}\n\nexport interface Props extends WrapperProps {\n label: string;\n type: Type;\n name: string;\n inputProps?: OptionalInputProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n}\n\nexport const InputWrapper = ({\n type,\n name,\n inputProps,\n helperText,\n helperProps,\n value,\n error,\n onChange,\n onBlur,\n onFocus,\n ...rest\n}: Props) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId,\n } = useWrapper(value, inputProps?.placeholder, type);\n\n return (\n <Wrapper\n {...rest}\n name={name}\n className={classes['input-wrapper']}\n labelProps={{\n id: labelId,\n className: `${classes['input-label']} ${hasFocus ? classes['focus'] : ''}`,\n }}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n error={error}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['input-wrapper-helper']} ${helperProps?.className ?? ''} `,\n }}\n helperIndent={20}\n >\n <Input\n {...inputProps}\n aria-labelledby={labelId}\n aria-describedby={error ? errorId : helperId}\n onChange={onChange}\n onFocus={(e) => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={(e) => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value ||\n inputProps?.placeholder?.length ||\n type === 'datetime-local' ||\n type === 'time'\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n className={floatingLabelActive ? classes['floating-label'] : ''}\n name={name}\n error={error}\n id={name}\n value={value}\n type={type}\n />\n </Wrapper>\n );\n};\n","import React, { ReactElement, useEffect } from 'react';\nimport classes from './RadioWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { useWrapper } from '../../../hooks/useWrapper';\nimport { Icons } from '../../../Icon/Icon';\nimport { Fieldset, Props as FieldsetProps } from '../../../Form/Fieldset/Fieldset';\n\nexport interface Props extends WrapperProps {\n children: ReactElement | ReactElement[];\n fieldsetProps: FieldsetProps;\n value: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const RadioWrapper = ({\n children,\n error,\n name,\n helperText,\n helperProps,\n fieldsetProps,\n value,\n onChange,\n disabled,\n ...rest\n}: Props) => {\n const { errorId, helperId } = useWrapper(value);\n\n useEffect(() => {\n if (fieldsetProps.title === undefined) {\n console.error(\n `You should give your Fieldset component a title prop so a legend element is rendered. This error was thrown in RadioWrapper. You can add this title prop through the fieldsetProps prop by passing an object (fieldsetProps={{ title: \"title here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n checked: child.props.value === value,\n name: name,\n parentHelperId: helperText ? helperId : false,\n onChange: onChange,\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n })\n );\n\n return (\n <Fieldset {...fieldsetProps}>\n <Wrapper\n {...rest}\n disabled={disabled}\n name={name}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['radio-wrapper-helper']} ${\n error ? classes['radio-wrapper-error'] : ''\n } ${helperProps?.className ?? ''}`,\n }}\n error={error}\n errorId={errorId}\n errorMessageIcon={Icons.Warning}\n floatingLabel={false}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n","import React, { ReactChild, ReactElement } from 'react';\nimport classes from './SelectWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Select, Props as SelectProps } from '../../Select/Select';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\nexport interface Props extends Omit<WrapperProps, 'onChange'> {\n children: ReactChild | ReactChild[];\n placeholder?: string;\n value: string;\n selectProps?: SelectProps;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n onClear?: () => void;\n}\n\nexport const SelectWrapper = ({\n children,\n error,\n value,\n placeholder,\n selectProps,\n helperProps,\n onChange,\n onClear,\n ...rest\n}: Props) => {\n const { errorId, floatingLabelActive, helperId, labelId } = useWrapper(value, placeholder);\n\n return (\n <Wrapper\n {...rest}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n helperId={helperId}\n labelProps={{ id: labelId, className: classes['select-label'] }}\n helperProps={{\n ...helperProps,\n className: `${classes['select-helper-text']} ${helperProps?.className ?? ''}`,\n }}\n error={error}\n >\n <Select\n {...selectProps}\n value={value}\n labeledBy={labelId}\n error={error}\n describedBy={error ? errorId : helperId}\n onChange={onChange}\n onClear={onClear}\n placeholder={placeholder}\n className={`${floatingLabelActive ? classes['floating-label-active'] : ''} ${\n selectProps?.className ?? ''\n }`}\n >\n {children as ReactElement[]}\n </Select>\n </Wrapper>\n );\n};\n","import React, { useState } from 'react';\nimport classes from './TextareaWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Textarea, Props as TextareaProps } from '../../Textarea/Textarea';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\nexport interface Props\n extends Omit<WrapperProps, 'onFocus' | 'onChange' | 'onBlur' | 'onMouseEnter' | 'onMouseLeave'> {\n placeholder?: string;\n textareaProps?: TextareaProps;\n value: string;\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n}\n\nexport const TextareaWrapper = ({\n name,\n error,\n value,\n label,\n placeholder,\n textareaProps,\n helperProps,\n onChange,\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n disabled,\n ...rest\n}: Props) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId,\n } = useWrapper(value, placeholder);\n\n const [focus, setFocus] = useState(false);\n const [hover, setHover] = useState(false);\n\n return (\n <Wrapper\n {...rest}\n disabled={disabled}\n labelProps={{\n id: labelId,\n className: `${classes['textarea-label']} ${hasFocus ? classes['focus'] : ''}`,\n }}\n name={name}\n label={label}\n helperId={helperId}\n helperProps={{\n ...helperProps,\n className: classes['textarea-helper-text'],\n }}\n error={error}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n >\n <Textarea\n {...textareaProps}\n error={error}\n aria-labelledby={label && labelId}\n aria-describedby={error ? errorId : helperId}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n onFocus={(e) => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n setFocus(true);\n }}\n onBlur={(e) => {\n onBlur && onBlur(e);\n setHasFocus(false);\n setFocus(false);\n e.target.value || textareaProps?.placeholder?.length\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n onMouseEnter={(e) => {\n onMouseEnter && onMouseEnter(e);\n setHover(true);\n }}\n onMouseLeave={(e) => {\n onMouseLeave && onMouseLeave(e);\n setHover(false);\n }}\n className={classes['textarea']}\n wrapperClassName={`${classes['textarea-wrapper']} ${focus ? classes['focus'] : ''} ${\n hover ? classes['hover'] : ''\n } ${disabled ? classes['disabled'] : ''} ${error ? classes['error'] : ''}`}\n errorClassName={classes['error-icon']}\n />\n </Wrapper>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { generateID } from '../util/helper';\n\nexport interface ConfigObject {\n name: string | undefined;\n errorMessage?: string;\n error?: boolean;\n parentErrorId?: string;\n helperText?: string;\n parentHelperId?: string;\n}\n\nexport const useFormSelector = (configObject: ConfigObject) => {\n const [identifier] = useState(generateID(15, configObject.name));\n const [describedBy, setDescribedBy] = useState('');\n const [errorId] = useState(generateID(15, configObject.errorMessage));\n\n useEffect(() => {\n if (configObject.error && configObject.parentErrorId) {\n setDescribedBy(configObject.parentErrorId);\n }\n\n if (\n (!configObject.error && configObject.helperText) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.helperText)\n ) {\n setDescribedBy(`${identifier}`);\n }\n\n if (\n (!configObject.error && !configObject.helperText && configObject.parentHelperId) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.parentHelperId)\n ) {\n setDescribedBy(`${configObject.parentHelperId}`);\n }\n\n if (configObject.errorMessage && !configObject.parentErrorId && configObject.error) {\n setDescribedBy(errorId);\n }\n }, [identifier, configObject.error, configObject.parentErrorId]);\n\n return {\n describedBy,\n errorId,\n identifier,\n };\n};\n","import React, { ReactNode } from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\nimport { FormHelperText, Props as FormHelperTextProps } from '../FormHelperText/FormHelperText';\nimport classes from './FormSelectorWrapper.module.scss';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n nestedChildren?: ReactNode;\n containerProps: HTMLProps<HTMLDivElement>;\n helperProps?: FormHelperTextProps;\n error?: boolean;\n disabled?: boolean;\n helperText?: string;\n errorMessage?: string;\n parentHelperId?: string;\n parentErrorId?: string;\n errorId: string;\n identifier: string;\n}\n\nexport const FormSelectorWrapper = ({\n children,\n className,\n nestedChildren,\n containerProps,\n helperProps,\n error,\n disabled,\n helperText,\n errorMessage,\n parentErrorId,\n errorId,\n identifier,\n ...rest\n}: Props) => {\n return (\n <div\n {...rest}\n className={`${error ? classes['error'] : ''} ${disabled ? classes['disabled'] : ''} ${\n className ?? ''\n }`}\n >\n <div {...containerProps}>{children}</div>\n {helperText && (!error || parentErrorId || !errorMessage) && (\n <FormHelperText\n {...helperProps}\n id={`${identifier}`}\n className={`${classes['helper-text']} ${helperProps?.className ?? ''} ${\n error ? classes['error'] : ''\n }`}\n >\n {helperText}\n </FormHelperText>\n )}\n {errorMessage && !parentErrorId && error && (\n <span className={classes['error-message']}>\n <Icon className={classes['error-icon']} icon={Icons.Warning} />\n <span id={errorId}>{errorMessage}</span>\n </span>\n )}\n {nestedChildren}\n </div>\n );\n};\n","import React from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Props as HelperProps } from '../FormHelperText/FormHelperText';\nimport classes from './Radio.module.scss';\nimport { useFormSelector } from '../../hooks/useFormSelector';\nimport { FormSelector } from '../form.interfaces';\nimport { HTMLProps } from '../../interfaces';\nimport { FormSelectorWrapper } from '../FormSelectorWrapper/FormSelectorWrapper';\n\nexport interface Props extends FormSelector<HTMLInputElement> {\n children: string;\n value: string;\n wrapperProps?: HTMLProps<HTMLDivElement>;\n helperProps?: HelperProps;\n}\n\nexport const Radio = ({\n children,\n disabled,\n className,\n value,\n name,\n helperText,\n parentErrorId,\n parentHelperId,\n error,\n errorMessage,\n checked = false,\n wrapperProps,\n helperProps,\n onChange,\n ...rest\n}: Props) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId,\n });\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent) => {\n if (disabled) {\n return;\n }\n /** We have to clone the native event we got here and change the \"target\" property to the value. Otherwise, this regular event has \"on\" as it's event.target.value, which is useless. */\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: { value: value },\n });\n\n onChange && onChange(clonedEvent);\n };\n\n /** Default return value is the default radio */\n return (\n <FormSelectorWrapper\n {...wrapperProps}\n className={`${classes['radio-wrapper']} ${className ?? ''}`}\n containerProps={{ className: classes['radio-container'] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n >\n <input\n {...rest}\n disabled={disabled}\n tabIndex={0}\n className={`${classes['native-input']} ${error ? classes['error'] : ''}`}\n onChange={onChangeHandler}\n checked={checked}\n aria-invalid={error ? true : false}\n aria-checked={checked}\n aria-describedby={describedBy}\n name={name}\n value={value}\n id={`${identifier}-radio`}\n type=\"radio\"\n />\n\n {checked && <Icon className={classes.input} icon={Icons.Radio} />}\n {!checked && <Icon className={classes.input} icon={Icons.Circle} />}\n\n <label onClick={onChangeHandler} htmlFor={`${identifier}-radio`}>\n {children}\n </label>\n </FormSelectorWrapper>\n );\n};\n","import React, { ReactElement, ReactNode, useEffect } from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Props as FormHelperTextProps } from '../FormHelperText/FormHelperText';\nimport classes from './Checkbox.module.scss';\nimport { useFormSelector } from '../../hooks/useFormSelector';\nimport { FormSelector } from '../form.interfaces';\nimport { HTMLProps } from '../../interfaces';\nimport { FormSelectorWrapper } from '../FormSelectorWrapper/FormSelectorWrapper';\n\nconst isToggle = (children: ReactNode) => (children as ReactElement)?.props?.['data-toggle'];\n\nexport interface CheckboxProps extends FormSelector<HTMLInputElement> {\n children: ReactNode;\n label?: string;\n indeterminate?: boolean;\n helperProps?: FormHelperTextProps;\n wrapperProps?: HTMLProps<HTMLDivElement>;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const Checkbox = ({\n children,\n name,\n helperText,\n helperProps,\n indeterminate,\n parentErrorId,\n errorMessage,\n disabled,\n label,\n parentHelperId,\n className,\n error,\n checked = false,\n wrapperProps,\n onChange,\n ...rest\n}: CheckboxProps) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId,\n });\n\n useEffect(() => {\n if (!name) {\n console.error(\"Please pass a 'name' prop to your <Checkbox> component.\");\n }\n\n if (typeof children === 'object' && !isToggle(children) && indeterminate === undefined) {\n throw new Error(\n 'If you have nested checkboxes you have to manage the indeterminate state by passing a boolean to the `indeterminate` prop.'\n );\n }\n }, []);\n\n const determineLabel = () => {\n if (label) {\n return label;\n } else if (children === undefined) {\n throw new Error(\n 'Please make sure to pass either a string or more Checkbox components as a child of your Checkbox component.'\n );\n }\n\n if (typeof children === 'string') {\n return children;\n }\n\n throw new Error(\n 'If you pass Checkboxes as a child component (to create nested checkbox tree) you need to pass a label to the parent checkbox.'\n );\n };\n\n const renderNestedCheckboxes = () => (\n <ul className={classes['checkbox-list']}>\n {React.Children.map(children as ReactElement[], (child) => {\n return (\n <li>\n <Checkbox\n {...child.props}\n parentHelperId={parentHelperId}\n parentErrorId={parentErrorId}\n error={error}\n >\n {child.props.children}\n </Checkbox>\n </li>\n );\n })}\n </ul>\n );\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n onChange && onChange(event);\n };\n\n const renderToggle = () => React.Children.toArray(children).filter(isToggle);\n\n /** Default return value is the default checkbox */\n return (\n <FormSelectorWrapper\n {...wrapperProps}\n className={`${classes['checkbox-wrapper']} ${className ? className : ''}`}\n containerProps={{ className: classes['checkbox-container'] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n nestedChildren={\n typeof children === 'object' && !isToggle(children) && renderNestedCheckboxes()\n }\n >\n <input\n {...rest}\n disabled={disabled}\n className={`${classes['native-input']} ${error ? classes['error'] : ''}`}\n checked={checked}\n onChange={onChangeHandler}\n aria-invalid={error as boolean}\n aria-checked={indeterminate ? 'mixed' : checked}\n aria-describedby={describedBy}\n id={`${identifier}-checkbox`}\n name={name}\n type=\"checkbox\"\n />\n {renderToggle()}\n\n {indeterminate && <Icon className={classes.input} icon={Icons.MinusSquare} />}\n {checked && !indeterminate && <Icon className={classes.input} icon={Icons.CheckmarkSquare} />}\n {!checked && !indeterminate && <Icon className={classes.input} icon={Icons.Square} />}\n <label htmlFor={`${identifier}-checkbox`}>{determineLabel()}</label>\n </FormSelectorWrapper>\n );\n};\n","import React from 'react';\nimport classes from './BaseWizardSteps.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { Icon, Icons } from '../../Icon/Icon';\n\ntype StepState = 'finished' | 'current' | 'future';\n\nexport interface Step {\n label: string;\n disabled?: boolean;\n}\n\nexport interface Props extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {\n steps: Step[];\n currentStepNo: number;\n onClick?: (stepNo: number) => void;\n futureStepsClickable?: boolean;\n stepScreenReaderLabel: string;\n}\n\nexport const BaseWizardSteps = ({\n steps,\n currentStepNo,\n onClick,\n futureStepsClickable = false,\n stepScreenReaderLabel,\n ...restProps\n}: Props) => {\n const getStepState = (stepNo: number): StepState => {\n if (currentStepNo === stepNo) {\n return 'current';\n } else if (stepNo < currentStepNo) {\n return 'finished';\n }\n return 'future';\n };\n\n const getStepContent = (stepState: StepState, index: number, disabled?: boolean) => {\n const stepNumberString = String(index + 1);\n if (stepState === 'finished') {\n return disabled ? null : <Icon className={classes['checkmark']} icon={Icons.Checkmark} />;\n } else {\n return (\n <>\n <span className={readyclasses['sr-only']}>{stepScreenReaderLabel} </span>\n {stepNumberString}\n </>\n );\n }\n };\n\n const generatedSteps = steps.map((step, index) => {\n const stepState = getStepState(index);\n const disabledStyleClassName = step.disabled ? classes['disabled'] : '';\n const clickableClassName = futureStepsClickable ? classes['clickable'] : '';\n\n return (\n <button\n key={step.label.toLowerCase().replace(/\\s/, '-')}\n disabled={\n step.disabled ||\n (stepState === 'future' && !futureStepsClickable) ||\n stepState === 'current'\n }\n aria-current={stepState === 'current' ? 'step' : undefined}\n onClick={() => onClick && onClick(index)}\n className={`${classes['wizard-element']} ${classes[stepState]} ${clickableClassName} ${disabledStyleClassName}`}\n >\n <div className={classes['number-wrapper']}>\n <span className={classes['number']}>\n {getStepContent(stepState, index, step.disabled)}\n </span>\n </div>\n <div className={classes['two-line-text-overflow']}>\n <span className={classes['label']}>{step.label}</span>\n </div>\n </button>\n );\n });\n\n return (\n <div {...restProps} className={classes['wizard']}>\n {generatedSteps}\n </div>\n );\n};\n","import { Reducer } from 'react';\nimport { Step } from './BaseWizardSteps/BaseWizardSteps';\nimport { WizardMode } from './Wizard';\n\ntype WizardStateType = {\n steps: Step[];\n currentStepNo: number;\n mode: WizardMode;\n stepScreenReaderLabel: string;\n};\n\ninterface SetWizardStateAction {\n type: 'SET_STATE';\n payload: {\n steps: Step[];\n mode: WizardMode;\n stepScreenReaderLabel: string;\n };\n}\n\ninterface ChangeCurrentStepNoAction {\n type: 'CHANGE_CURRENT_STEP_NO';\n payload: number;\n}\n\nconst setWizardState = (\n steps: Step[],\n mode: WizardMode,\n stepScreenReaderLabel: string\n): SetWizardStateAction => {\n return { type: 'SET_STATE', payload: { steps, mode, stepScreenReaderLabel } };\n};\n\nconst changeCurrentStepNo = (currentStepNo: number): ChangeCurrentStepNoAction => {\n return { type: 'CHANGE_CURRENT_STEP_NO', payload: currentStepNo };\n};\n\ntype WizardActions = SetWizardStateAction | ChangeCurrentStepNoAction;\n\nconst reducer: Reducer<WizardStateType, WizardActions> = (state, action) => {\n switch (action.type) {\n case 'SET_STATE':\n return { ...state, ...action.payload };\n case 'CHANGE_CURRENT_STEP_NO':\n return { ...state, currentStepNo: action.payload };\n default:\n return state;\n }\n};\n\nexport { setWizardState, changeCurrentStepNo, reducer, WizardActions, WizardStateType };\n","import React, { createContext, Dispatch, useReducer } from 'react';\nimport { WizardActions, WizardStateType, reducer } from './wizardStateReducer';\n\nconst WizardStateContext = createContext<{\n state: WizardStateType;\n dispatch: Dispatch<WizardActions>;\n}>({\n state: {} as WizardStateType,\n dispatch: () => null,\n});\n\nexport interface Props {\n initialState: WizardStateType;\n children?: React.ReactNode;\n}\n\nconst WizardStateProvider = ({ children, initialState }: Props) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n return (\n <WizardStateContext.Provider value={{ state, dispatch }}>\n {children}\n </WizardStateContext.Provider>\n );\n};\n\nexport { WizardStateProvider, WizardStateContext };\n","import React, { useContext, useMemo } from 'react';\nimport { Button } from '../../Button/Button';\nimport { Step } from '../BaseWizardSteps/BaseWizardSteps';\nimport { WizardMode } from '../Wizard';\nimport { WizardStateContext } from '../WizardStateProvider';\nimport { changeCurrentStepNo } from '../wizardStateReducer';\n\nexport interface Props extends React.HTMLProps<HTMLDivElement> {\n cancelButtonLabel: string;\n previousButtonLabel: string;\n nextButtonLabel: string;\n saveAndCloseButtonLabel: string;\n onCancel: () => void;\n onNext: (currentStepNo: number) => boolean;\n onPrevious?: () => void;\n onSaveAndClose: (currentStepNo: number) => void;\n}\n\nconst calculateNextStepNo = (steps: Step[], currentStepNo: number) => () =>\n steps.findIndex((step, stepNo) => stepNo > currentStepNo && !step.disabled);\n\nconst calculatePrevStepNo = (steps: Step[], currentStepNo: number) => () => {\n const reversedCurrentStepNo = steps.length - 1 - currentStepNo;\n const reversedPrevStepNo = [...steps]\n .reverse()\n .findIndex((step, stepNo) => stepNo > reversedCurrentStepNo && !step.disabled);\n if (reversedPrevStepNo > 0) {\n return steps.length - 1 - reversedPrevStepNo;\n }\n return -1;\n};\n\nconst useNextStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculateNextStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nconst usePreviousStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculatePrevStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nexport const WizardActions = ({\n onCancel,\n onNext,\n onPrevious,\n onSaveAndClose,\n cancelButtonLabel,\n previousButtonLabel,\n nextButtonLabel,\n saveAndCloseButtonLabel,\n}: Props) => {\n const {\n state: { mode, steps, currentStepNo },\n dispatch,\n } = useContext(WizardStateContext);\n const nextStepNo = useNextStepNo(mode, currentStepNo, steps);\n const hasNextStep = nextStepNo !== -1;\n const previousStepNo = usePreviousStepNo(mode, currentStepNo, steps);\n const hasPreviousStep = previousStepNo !== -1;\n const isLastStepOrEditMode = !hasNextStep || mode === 'edit';\n\n const changeStepNo = (direction: 'forward' | 'backward') => {\n if (direction === 'forward') {\n hasNextStep && dispatch(changeCurrentStepNo(nextStepNo));\n } else {\n hasPreviousStep && dispatch(changeCurrentStepNo(previousStepNo));\n }\n };\n\n const onNextWrapper = () => {\n onNext(currentStepNo) && changeStepNo('forward');\n };\n\n const onPreviousWrapper = () => {\n onPrevious && onPrevious();\n changeStepNo('backward');\n };\n\n const onSaveAndCloseWrapper = () => {\n onSaveAndClose(currentStepNo);\n };\n\n return (\n <>\n <Button variant=\"text\" onClick={onCancel}>\n {cancelButtonLabel}\n </Button>\n {hasPreviousStep && (\n <Button variant=\"outline\" onClick={onPreviousWrapper}>\n {previousButtonLabel}\n </Button>\n )}\n {hasNextStep && (\n <Button variant={mode === 'edit' ? 'outline' : 'fill'} onClick={onNextWrapper}>\n {nextButtonLabel}\n </Button>\n )}\n {isLastStepOrEditMode && (\n <Button onClick={onSaveAndCloseWrapper}>{saveAndCloseButtonLabel}</Button>\n )}\n </>\n );\n};\n","import React, { useContext } from 'react';\nimport { WizardStateContext } from '../WizardStateProvider';\nimport { BaseWizardSteps } from '../BaseWizardSteps/BaseWizardSteps';\nimport { changeCurrentStepNo } from '../wizardStateReducer';\n\nexport interface Props extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {\n onStepClick: (currentStepNo: number, selectedStepNo: number) => boolean;\n}\n\nexport const WizardSteps = ({ onStepClick, ...restProps }: Props) => {\n const {\n state: { currentStepNo, mode, stepScreenReaderLabel, steps },\n dispatch,\n } = useContext(WizardStateContext);\n\n const onClick = (selectedStepNo: number) => {\n onStepClick(currentStepNo, selectedStepNo) && dispatch(changeCurrentStepNo(selectedStepNo));\n };\n\n return (\n <BaseWizardSteps\n {...restProps}\n onClick={onClick}\n steps={steps}\n currentStepNo={currentStepNo}\n stepScreenReaderLabel={stepScreenReaderLabel}\n futureStepsClickable={mode === 'edit'}\n />\n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Step } from './BaseWizardSteps/BaseWizardSteps';\nimport { WizardStateContext, WizardStateProvider } from './WizardStateProvider';\nimport { setWizardState } from './wizardStateReducer';\n\nexport type WizardMode = 'add' | 'edit';\n\nexport interface Props {\n steps: Step[];\n mode: WizardMode;\n initialStepNo?: number;\n onStepChange: (stepNo: number) => void;\n stepScreenReaderLabel: string;\n children: React.ReactNode;\n}\n\nconst useSetWizardState = (steps: Step[], mode: WizardMode, stepScreenReaderLabel: string) => {\n const { dispatch } = useContext(WizardStateContext);\n\n useEffect(() => {\n dispatch(setWizardState(steps, mode, stepScreenReaderLabel));\n }, [steps, mode, stepScreenReaderLabel]);\n};\n\nconst useStepChanging = (onStepChange: (stepNo: number) => void) => {\n const {\n state: { currentStepNo },\n } = useContext(WizardStateContext);\n\n useEffect(() => {\n onStepChange(currentStepNo);\n }, [currentStepNo]);\n};\n\nconst WizardContent = ({ steps, mode, stepScreenReaderLabel, onStepChange, children }: Props) => {\n useSetWizardState(steps, mode, stepScreenReaderLabel);\n useStepChanging(onStepChange);\n\n return <>{children}</>;\n};\n\nexport const Wizard = (props: Props) => {\n const { steps, initialStepNo: currentStepNo = 0, mode, stepScreenReaderLabel } = props;\n return (\n <WizardStateProvider initialState={{ steps, currentStepNo, mode, stepScreenReaderLabel }}>\n <WizardContent {...props} />\n </WizardStateProvider>\n );\n};\n"],"names":["BaseStyling","children","properties","defaultProperties","colorPrimary","colorSecondary","colorTertiary","defaultLineHeight","buttonBorderRadius","buttonBorderWidth","buttonFontSize","buttonBorderStyle","buttonFillTextColor","buttonFillBackgroundColor","buttonOutlineHoverTextColor","inputBorderColor","inputBorderRadius","inputBorderWidth","inputBorderStyle","modalShadowColor","modalBackgroundColor","modalHeaderBackgroundColor","snackbarTextColor","snackbarInfoBackgroundColor","snackbarSuccessBackgroundColor","snackbarErrorBackgroundColor","snackbarBorderRadius","success","error","disabled","greyedOut","warning","fontFamily","fontFamilyCode","fontSize","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontSizeSub","fontSizeCode","useState","isLoading","setIsLoading","setCSSProperties","CSSPropertiesObject","Object","entries","key","value","formattedPropertyName","replaceAll","val","toLowerCase","document","documentElement","style","setProperty","useEffect","keys","length","mergedState","React","Fragment","defaultFactor","defaultUnit","spacingNumberRegex","useSpacing","spacingProps","reduce","prev","spacing","multiplier","matches","String","matchAll","cssSpacingValue","Array","from","map","multiplierValue","Number","join","validVariants","Typography","variant","tag","className","rest","includes","Error","styleWithSpacing","TagName","classes","BaseButton","forwardRef","ref","type","validTypes","button","Button","color","startIcon","endIcon","additionalClasses","push","Link","to","component","determineTarget","target","classNames","createElement","download","rel","undefined","href","IconButton","iconSize","title","readyclasses","Icons","Icon","icon","size","Component","labelId","id","descriptionId","SCROLL_PROPERTY_NAME","SCROLL_PROPERTY_VALUE","useBackdropOnCloseClick","disableBackdrop","onClose","backdropRef","useRef","onBackdropClick","current","addEventListener","removeEventListener","useSetBodyScroll","open","hideBodyScroll","body","showBodyScroll","allModalsClosed","querySelectorAll","removeProperty","BaseModal","containerClassName","labelledby","describedby","disableEscapeKeyDown","zIndex","restProps","handleEscKeyPress","event","stopPropagation","role","tabIndex","onKeyDown","BaseModalContent","disableAutoFocus","contentRef","focus","BaseModalActions","DialogActions","align","DialogTitle","Dialog","alignActions","primaryAction","secondaryAction","primaryLabel","label","restOfPrimaryAction","PrimaryButton","TertiaryButton","secondaryLabel","restOfSecondaryAction","onHiddenInputKeyPress","onClick","autoFocus","position","width","height","opacity","onKeyPress","BaseModalHeader","Times","generateID","stringToWeaveIn","hashCharacters","i","stringCharacter","test","Math","floor","random","slice","defaultConfigObject","relativeElement","elementToBePositioned","transformOrigin","horizontal","vertical","placement","offset","top","right","bottom","left","usePosition","providedConfigObject","configObject","setPosition","_fixPossibleViewportOverflow","requestedReturnValue","elDimensions","returnValue","window","innerWidth","innerHeight","_applyOffsetToPlacementValue","_calculateInitialPlacementValue","relEl","placementOriginDefinition","_determineCenteredPlacementOrigin","_calculatePlacementValue","valueWithOffset","valueCorrectionForViewportOverflow","_calculatePlacement","axis","placementValue","direction","oppositeDirection","prevState","calculatePosition","relativeElRect","getBoundingClientRect","elementToBePositionedDimensions","offsetHeight","offsetWidth","clonedRelEl","center","centerv","centerh","x","y","defaultPosition","Tooltip","domRoot","identifier","visible","setVisible","escapePressHandler","useLayoutEffect","renderChildren","isValidElement","cloneElement","onFocus","onBlur","wrapper","onMouseEnter","onMouseLeave","InfoCircle","createPortal","tooltip","Tile","imageProps","iconProps","loading","menu","src","alt","Image","Tiles","Popover","show","anchorEl","elToBePositioned","popover","useBodyClick","checkFunction","callbackFunction","dependingStateVariable","bodyClickListener","ContextMenu","trigger","onShow","showContextMenu","setShowContextMenu","renderTrigger","ContextMenuItem","Breadcrumbs","ariaLabel","items","Children","child","index","isLastElement","isArray","props","ChevronRight","SnackbarContext","createContext","enqueueSnackbar","enqueueSuccessSnackbar","enqueueErrorSnackbar","SnackbarContextProvider","initialState","Provider","SnackbarContainer","useAnimation","callback","animatedObjectRef","animationStarted","setAnimationStarted","onAnimationEnd","startAnimation","textColor","SnackbarItem","duration","content","actions","closeButtonTitle","timerHandler","setTimeout","clearTimeout","getVariantIcon","TimesCircleAlt","CheckmarkCircleBreakout","actionButtons","actionProp","e","SnackbarProvider","autoHideDuration","stackSize","snackbars","setSnackbars","addSnackbar","item","getDuration","hasError","hasContentOrActions","options","onItemClosed","filter","snackbarList","snackbarPortal","useSnackbar","useContext","Form","form","Fieldset","titleVariant","hideTitle","noBackground","background","noPadding","backgroundColor","fieldset","FormControl","grid","childElement","column","FormHelperText","FormGroup","errorMessage","errorId","errorMessageIcon","errorMessageIconPosition","helperText","helperId","helperProps","helperIndent","marginLeft","message","Label","hidden","dateTypes","Input","name","wrapperProps","labeledBy","inputClassNames","iconClassNames","Warning","useScroll","scrollListener","Select","placeholder","describedBy","searchPlaceholder","onChange","onClear","expanded","setExpanded","setFilter","display","setDisplay","listPosition","setListPosition","containerReference","optionListReference","closest","rePositionList","windowHeight","containerTopWithListHeight","onOptionChangeHandler","newValue","nativeEvent","clonedEvent","constructor","defineProperty","writable","currentTarget","innerText","renderOptions","onOptionSelect","selected","renderSearch","filterResults","statusIcon","TimesThin","select","TriangleDown","Option","showOption","setShowOption","onSelectHandler","match","Textarea","rows","wrapperClassName","errorClassName","useWrapper","floatingLabelActive","setFloatingLabelActive","hasFocus","setHasFocus","Wrapper","floatingLabel","required","labelProps","innerClassName","labelClasses","htmlFor","CheckboxWrapper","fieldsetProps","console","parentErrorId","parentHelperId","InputWrapper","inputProps","RadioWrapper","checked","SelectWrapper","selectProps","TextareaWrapper","textareaProps","setFocus","hover","setHover","useFormSelector","setDescribedBy","FormSelectorWrapper","nestedChildren","containerProps","Radio","onChangeHandler","input","Circle","isToggle","Checkbox","indeterminate","determineLabel","renderNestedCheckboxes","renderToggle","toArray","MinusSquare","CheckmarkSquare","Square","BaseWizardSteps","steps","currentStepNo","futureStepsClickable","stepScreenReaderLabel","getStepState","stepNo","getStepContent","stepState","stepNumberString","Checkmark","generatedSteps","step","disabledStyleClassName","clickableClassName","replace","setWizardState","mode","payload","changeCurrentStepNo","reducer","state","action","WizardStateContext","dispatch","WizardStateProvider","useReducer","calculateNextStepNo","findIndex","calculatePrevStepNo","reversedCurrentStepNo","reversedPrevStepNo","reverse","useNextStepNo","useMemo","usePreviousStepNo","WizardActions","onCancel","onNext","onPrevious","onSaveAndClose","cancelButtonLabel","previousButtonLabel","nextButtonLabel","saveAndCloseButtonLabel","nextStepNo","hasNextStep","previousStepNo","hasPreviousStep","isLastStepOrEditMode","changeStepNo","onNextWrapper","onPreviousWrapper","onSaveAndCloseWrapper","WizardSteps","onStepClick","selectedStepNo","useSetWizardState","useStepChanging","onStepChange","WizardContent","Wizard","initialStepNo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-lib-components.esm.js","sources":["../src/_BaseStyling_/BaseStyling.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/hooks/useSpacing.ts","../src/Typography/Typography.tsx","../src/Button/BaseButton.tsx","../src/Button/Button.tsx","../src/Link/Link.tsx","../src/Button/IconButton.tsx","../src/Icon/Icon.tsx","../src/Notifications/BaseModal/BaseModalContext.ts","../src/Notifications/BaseModal/BaseModal.tsx","../src/Notifications/BaseModal/BaseModalContent/BaseModalContent.tsx","../src/Notifications/BaseModal/BaseModalActions/BaseModalActions.tsx","../src/Notifications/Dialog/DialogActions/DialogActions.tsx","../src/Notifications/Dialog/DialogTitle/DialogTitle.tsx","../src/util/helper.tsx","../src/Notifications/Dialog/Dialog.tsx","../src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesModal.tsx","../src/hooks/usePosition.ts","../src/Tooltip/Tooltip.tsx","../src/Tiles/Tile.tsx","../src/Tiles/Tiles.tsx","../src/Popover/Popover.tsx","../src/hooks/useBodyClick.ts","../src/ContextMenu/ContextMenu.tsx","../src/ContextMenu/ContextMenuItem.tsx","../src/Breadcrumbs/Breadcrumbs.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx","../src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.tsx","../src/hooks/useAnimation.ts","../src/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx","../src/Notifications/Snackbar/useSnackbar.ts","../src/Form/Form.tsx","../src/Form/Fieldset/Fieldset.tsx","../src/Form/FormControl/FormControl.tsx","../src/Form/FormHelperText/FormHelperText.tsx","../src/Form/FormGroup/FormGroup.tsx","../src/Form/Label/Label.tsx","../src/Form/Input/Input.tsx","../src/hooks/useScroll.ts","../src/Form/Select/Select.tsx","../src/Form/Select/Option.tsx","../src/Form/Textarea/Textarea.tsx","../src/hooks/useWrapper.ts","../src/Form/Wrapper/Wrapper/Wrapper.tsx","../src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx","../src/Form/Wrapper/InputWrapper/InputWrapper.tsx","../src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx","../src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx","../src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx","../src/hooks/useFormSelector.ts","../src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx","../src/Form/Radio/Radio.tsx","../src/Form/Checkbox/Checkbox.tsx","../src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx","../src/Wizard/wizardStateReducer.ts","../src/Wizard/WizardStateProvider.tsx","../src/Wizard/WizardActions/WizardActions.tsx","../src/Wizard/WizardSteps/WizardSteps.tsx","../src/Wizard/Wizard.tsx"],"sourcesContent":["import React, { Fragment, HTMLAttributes, ReactChild, useEffect, useState } from 'react';\n\ninterface CSSProperties {\n colorPrimary?: string;\n colorSecondary?: string;\n colorTertiary?: string;\n defaultLineHeight?: string;\n buttonBorderRadius?: string;\n buttonBorderWidth?: string;\n buttonFontSize?: string;\n buttonBorderStyle?: string;\n buttonFillTextColor?: string;\n buttonFillBackgroundColor?: string;\n buttonOutlineHoverTextColor?: string;\n inputBorderColor?: string;\n inputBorderRadius?: string;\n inputBorderWidth?: string;\n inputBorderStyle?: string;\n modalShadowColor?: string;\n modalBackgroundColor?: string;\n modalHeaderBackgroundColor?: string;\n snackbarTextColor?: string;\n snackbarInfoBackgroundColor?: string;\n snackbarSuccessBackgroundColor?: string;\n snackbarErrorBackgroundColor?: string;\n snackbarBorderRadius?: string;\n default?: string;\n success?: string;\n error?: string;\n disabled?: string;\n greyedOut?: string;\n warning?: string;\n fontFamily?: string;\n fontFamilyCode?: string;\n fontSize?: string;\n fontSizeH1?: string;\n fontSizeH2?: string;\n fontSizeH3?: string;\n fontSizeH4?: string;\n fontSizeSub?: string;\n fontSizeCode?: string;\n}\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n children?: ReactChild;\n properties?: CSSProperties;\n}\n\nexport const BaseStyling = ({ children, properties = {} }: Props) => {\n const defaultProperties: CSSProperties = {\n colorPrimary: '#9e006b',\n colorSecondary: '#003b5e',\n colorTertiary: '#ff1e4e',\n defaultLineHeight: '26px',\n buttonBorderRadius: '20px',\n buttonBorderWidth: '2px',\n buttonFontSize: '1rem',\n buttonBorderStyle: 'solid',\n buttonFillTextColor: '#FFF',\n buttonFillBackgroundColor: '#FFF',\n buttonOutlineHoverTextColor: '#FFF',\n inputBorderColor: '#e9e9eb',\n inputBorderRadius: '8px',\n inputBorderWidth: '1px',\n inputBorderStyle: 'solid',\n modalShadowColor: 'rgba(0, 0, 0, 0.16)',\n modalBackgroundColor: '#F5F8F8',\n modalHeaderBackgroundColor: '#FFF',\n snackbarTextColor: '#fff',\n snackbarInfoBackgroundColor: '#003b5e',\n snackbarSuccessBackgroundColor: '#008a28',\n snackbarErrorBackgroundColor: '#e22a1d',\n snackbarBorderRadius: '8px',\n default: '#0f0f1e',\n success: '#008a28',\n error: '#e22a1d',\n disabled: '#e9e9eb',\n greyedOut: '#6f6f76',\n warning: '#ff6105',\n fontFamily: \"'Red Hat Display', sans-serif\",\n fontFamilyCode: \"'Red Hat Mono', sans-serif\",\n fontSize: '1rem',\n fontSizeH1: '2.5rem',\n fontSizeH2: '1.625rem',\n fontSizeH3: '1.5rem',\n fontSizeH4: '1.25rem',\n fontSizeSub: '.75rem',\n fontSizeCode: '1rem',\n };\n\n /** We need a loading state, because otherwise you see the colors flash from the default to the possible overridden ones. */\n const [isLoading, setIsLoading] = useState(true);\n\n /** Set the actual CSS properties on the HTML :root object */\n const setCSSProperties = (CSSPropertiesObject: CSSProperties) => {\n for (const [key, value] of Object.entries(CSSPropertiesObject)) {\n const formattedPropertyName = key.replaceAll(/([A-Z])/g, (val) => `-${val.toLowerCase()}`);\n document.documentElement.style.setProperty(`--${formattedPropertyName}`, value);\n }\n };\n\n /** Check if the properties prop object is filled with anything. If it is, we want to shallow merge it with the default BaseStyling. */\n useEffect(() => {\n if (Object.keys(properties).length !== 0) {\n const mergedState = { ...defaultProperties, ...properties };\n setCSSProperties(mergedState);\n } else {\n setCSSProperties(defaultProperties);\n }\n setIsLoading(false);\n }, [properties]);\n\n /** Only render if we're not loading */\n return !isLoading ? <Fragment>{children}</Fragment> : null;\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { CSSProperties } from 'react';\n\ntype SpacingMultiplier = 0 | 0.5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\ntype SpacingMultiplierStringOrNumber = `${SpacingMultiplier}` | SpacingMultiplier;\ntype MultiValueSpacingMultiplier =\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier}`\n | SpacingMultiplierStringOrNumber;\n\nexport interface Spacing {\n padding?: MultiValueSpacingMultiplier;\n paddingTop?: SpacingMultiplierStringOrNumber;\n paddingBottom?: SpacingMultiplierStringOrNumber;\n paddingLeft?: SpacingMultiplierStringOrNumber;\n paddingRight?: SpacingMultiplierStringOrNumber;\n margin?: MultiValueSpacingMultiplier;\n marginTop?: SpacingMultiplierStringOrNumber;\n marginBottom?: SpacingMultiplierStringOrNumber;\n marginLeft?: SpacingMultiplierStringOrNumber;\n marginRight?: SpacingMultiplierStringOrNumber;\n}\n\nconst defaultFactor = 0.25;\nconst defaultUnit = 'rem';\nconst spacingNumberRegex = /(\\d+\\.?\\d*)+/g;\n\nexport const useSpacing = (\n spacingProps?: Spacing,\n style?: CSSProperties\n): CSSProperties | undefined => {\n if (spacingProps) {\n return Object.entries(spacingProps).reduce<CSSProperties>((prev, [spacing, multiplier]) => {\n const matches = String(multiplier).matchAll(spacingNumberRegex);\n const cssSpacingValue = Array.from(matches)\n .map(([multiplierValue]) => `${Number(multiplierValue) * defaultFactor}${defaultUnit}`)\n .join(' ');\n return { ...prev, [spacing]: cssSpacingValue };\n }, style ?? {});\n }\n return style;\n};\n","import React, { HTMLAttributes, ReactNode } from 'react';\nimport classes from './Typography.module.scss';\nimport { Spacing, useSpacing } from '../hooks/useSpacing';\n\nconst validVariants = ['h1', 'h2', 'h3', 'h4', 'body', 'body-bold', 'sub-text', 'code'] as const;\nexport type Variant = typeof validVariants[number];\n\nexport interface Props extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n variant: Variant;\n tag?:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'p'\n | 'div'\n | 'code'\n | 'span'\n | 'sup'\n | 'sub'\n | 'strong'\n | 'em'\n | 'small'\n | 'mark'\n | 'del'\n | 'ins'\n | 'blockquote';\n spacing?: Spacing;\n}\n\nexport const Typography = ({\n children,\n variant,\n tag,\n style,\n spacing,\n className = '',\n ...rest\n}: Props) => {\n if (!validVariants.includes(variant)) {\n throw new Error(\n `You entered an invalid variant. You can choose from: ${validVariants}, you entered: ${variant}`\n );\n }\n\n const styleWithSpacing = useSpacing(spacing, style);\n\n if (!tag) {\n switch (variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'code':\n tag = variant;\n break;\n case 'body':\n tag = 'p';\n break;\n case 'body-bold':\n tag = 'p';\n break;\n case 'sub-text':\n tag = 'span';\n break;\n default:\n tag = 'div';\n break;\n }\n }\n\n let TagName = tag;\n\n return (\n <TagName\n {...rest}\n style={styleWithSpacing}\n className={`${classes['typography_style_' + variant]} ${className}`}\n >\n {children}\n </TagName>\n );\n};\n","import React, { RefObject } from 'react';\nimport classes from './BaseButton.module.scss';\n\nexport interface Props extends Omit<React.HTMLProps<HTMLButtonElement>, 'ref'> {\n type?: 'submit' | 'button' | 'reset';\n disabled?: boolean;\n ref?: RefObject<HTMLButtonElement>;\n color?: 'primary' | 'secondary' | 'tertiary' | 'default';\n}\n\nexport const BaseButton = React.forwardRef<HTMLButtonElement, Props>(\n ({ children, type = 'button', className, ...rest }, ref) => {\n const validTypes = ['submit', 'button', 'reset'];\n\n if (!validTypes.includes(type))\n throw new Error(\n `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`\n );\n\n return (\n <button\n {...rest}\n ref={ref}\n type={type}\n className={`${classes.button} ${className ? className : ''}`}\n >\n {children}\n </button>\n );\n }\n);\n","import React, { RefObject } from 'react';\nimport { BaseButton, Props as BaseButtonProps } from './BaseButton';\nimport classes from './Button.module.scss';\n\nexport interface Props extends Omit<BaseButtonProps, 'ref'> {\n startIcon?: React.ReactNode | false;\n endIcon?: React.ReactNode | false;\n children?: React.ReactNode;\n variant?: 'text' | 'fill' | 'outline';\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, Props>(\n (\n { children, variant = 'fill', color = 'primary', startIcon = false, endIcon = false, ...rest },\n ref\n ) => {\n const additionalClasses = [];\n\n if (startIcon || endIcon) {\n additionalClasses.push(classes['has-icon']);\n }\n\n if (startIcon) {\n additionalClasses.push(classes['start-icon']);\n }\n\n if (endIcon) {\n additionalClasses.push(classes['end-icon']);\n }\n\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(' ')}`}\n >\n {startIcon && <i>{startIcon} </i>}\n <span>{children}</span>\n {endIcon && <i> {endIcon}</i>}\n </BaseButton>\n );\n }\n);\n","import React, { ForwardRefExoticComponent, Ref, RefAttributes } from 'react';\nimport { HTMLProps } from '../interfaces';\nimport classes from './Link.module.scss';\nimport { LinkProps } from './types';\n\ntype AnchorType = 'external' | 'internal' | 'download';\n\nexport interface Props extends HTMLProps<HTMLAnchorElement> {\n children?: string;\n color?: 'primary' | 'secondary' | 'tertiary';\n type?: AnchorType;\n to: string;\n disabled?: boolean;\n component?: ForwardRefExoticComponent<LinkProps & RefAttributes<HTMLAnchorElement>>;\n ref?: Ref<HTMLAnchorElement>;\n}\n\nexport const Link = React.forwardRef(\n (\n {\n children,\n className,\n disabled = false,\n to,\n color = 'primary',\n type = 'internal',\n component,\n ...rest\n }: Props,\n ref: Ref<HTMLAnchorElement>\n ) => {\n const determineTarget = () => {\n if (rest.target) {\n return rest.target;\n }\n\n if (type === 'external') {\n return '_blank';\n }\n\n return '';\n };\n\n const classNames = [classes['link'], classes[color]];\n disabled && classNames.push(classes['disabled']);\n className && classNames.push(className);\n\n if (component) {\n return React.createElement(component, {\n ...rest,\n ref: ref,\n to: to,\n className: classNames.join(' '),\n 'aria-disabled': disabled,\n style: {\n ...rest.style,\n },\n children: children,\n });\n }\n\n return (\n <a\n {...rest}\n ref={ref}\n download={type === 'download'}\n rel={type === 'external' ? 'noopener noreferer' : undefined}\n href={!disabled ? to : undefined}\n className={classNames.join(' ')}\n aria-disabled={disabled}\n target={determineTarget()}\n style={{\n ...rest.style,\n }}\n >\n {children}\n </a>\n );\n }\n);\n","import React, { Fragment, RefObject } from 'react';\nimport { BaseButton, Props as BaseButtonProps } from './BaseButton';\nimport classes from './IconButton.module.scss';\nimport readyclasses from '../readyclasses.module.scss';\n\nexport interface Props extends Omit<BaseButtonProps, 'ref'> {\n children?: React.ReactNode;\n iconSize?: 's' | 'm' | 'l';\n className?: string;\n title?: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, Props>(\n ({ children, color = 'primary', iconSize = 'm', title, ...rest }, ref) => {\n if (!title) {\n console.error(\"Please make sure to specify a 'title' prop to your IconButton component! \");\n }\n\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes['icon-button']} ${classes[color]} ${classes['button-' + iconSize]}`}\n >\n <Fragment>\n {children}\n <span className={readyclasses['sr-only']}>{title}</span>\n </Fragment>\n </BaseButton>\n );\n }\n);\n","import React from 'react';\nimport classes from './Icon.module.scss';\nimport { HTMLAttributes } from '../interfaces';\n\nexport enum Icons {\n Bell = 'bell',\n BellAlt = 'bell-alt',\n Bookmark = 'bookmark',\n BookmarkAlt = 'bookmark-alt',\n Build = 'build',\n Calendar = 'calendar',\n Change = 'change',\n Checkmark = 'checkmark',\n CheckmarkCircle = 'checkmark-circle',\n CheckmarkCircleAlt = 'checkmark-circle-alt',\n CheckmarkCircleBreakout = 'checkmark-circle-breakout',\n CheckmarkSquare = 'checkmark-square',\n ChevronUp = 'chevron-up',\n ChevronDown = 'chevron-down',\n ChevronLeft = 'chevron-left',\n ChevronRight = 'chevron-right',\n Circle = 'circle',\n Clock = 'clock',\n Copy = 'copy',\n Edit = 'edit',\n Ellipsis = 'ellipsis',\n EllipsisAlt = 'ellipsis-alt',\n Equal = 'equal',\n Eye = 'eye',\n Filter = 'filter',\n FilterAlt = 'filter-alt',\n FilterAltArrow = 'filter-alt-arrow',\n FilterAltTimes = 'filter-alt-times',\n Forbidden = 'forbidden',\n Fullscreen = 'fullscreen',\n FullscreenExit = 'fullscreen-exit',\n Gearwheel = 'gearwheel',\n Grid = 'grid',\n Hamburger = 'hamburger',\n Heart = 'heart',\n Image = 'image',\n InfoBell = 'info-bell',\n InfoCircle = 'info-circle',\n Link = 'link',\n MinusSquare = 'minus-square',\n NavigationFirst = 'navigation-first',\n NavigationLast = 'navigation-last',\n Plus = 'plus',\n Radio = 'radio',\n Refresh = 'refresh',\n Search = 'search',\n Share = 'share',\n Square = 'square',\n Star = 'star',\n StarAlt = 'star-alt',\n Times = 'times',\n TimesCircle = 'times-circle',\n TimesCircleAlt = 'times-circle-alt',\n TimesThin = 'times-thin',\n Trash = 'trash',\n TriangleDown = 'triangle-down',\n TriangleDownCircle = 'triangle-down-circle',\n TriangleLeft = 'triangle-left',\n TriangleRight = 'triangle-right',\n TriangleUp = 'triangle-up',\n Undo = 'undo',\n Warning = 'warning',\n}\n\ntype Tag = 'span' | 'div' | 'i';\n\nexport interface Props extends Omit<HTMLAttributes<HTMLOrSVGElement>, 'size'> {\n icon: Icons;\n color?: string;\n size?: string;\n tag?: Tag;\n}\n\nexport const Icon = React.forwardRef(\n ({ icon, color, className, style, size, tag = 'span', ...rest }: Props, ref) => {\n const Component = tag;\n\n return (\n <Component\n {...rest}\n ref={ref as React.LegacyRef<HTMLDivElement>}\n style={{ color: color, ...style, fontSize: size }}\n data-icon\n aria-hidden=\"true\"\n className={`${classes['icon']} ${classes['icon-' + icon]} ${className ? className : ''}`}\n />\n );\n }\n);\n","export const labelId = (id: string) => `${id}-label`;\nexport const descriptionId = (id: string) => `${id}-description`;\n","import React, { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { HTMLAttributes } from '../../interfaces';\nimport classes from './BaseModal.module.scss';\nimport { labelId, descriptionId } from './BaseModalContext';\n\nconst SCROLL_PROPERTY_NAME = 'overflow';\nconst SCROLL_PROPERTY_VALUE = 'hidden';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id: string;\n children: React.ReactNode;\n open: boolean;\n onClose?: (event?: React.MouseEvent<HTMLElement>) => unknown;\n className?: string;\n containerClassName?: string;\n labelledby?: string;\n describedby?: string;\n disableEscapeKeyDown?: boolean;\n disableBackdrop?: boolean;\n zIndex?: number;\n domRoot?: HTMLElement;\n}\n\nexport const useSetBodyScroll = (open: boolean) => {\n const hideBodyScroll = () => {\n document.body.style[SCROLL_PROPERTY_NAME] = SCROLL_PROPERTY_VALUE;\n };\n\n const showBodyScroll = () => {\n const allModalsClosed =\n document.querySelectorAll('[role=dialog][data-hidden=false]').length === 0;\n if (allModalsClosed) {\n document.body.style.removeProperty(SCROLL_PROPERTY_NAME);\n }\n };\n\n useEffect(() => {\n if (open) {\n hideBodyScroll();\n } else {\n showBodyScroll();\n }\n }, [open]);\n};\n\nexport const BaseModal = ({\n id,\n children,\n open,\n onClose,\n className = '',\n containerClassName = '',\n labelledby,\n describedby,\n disableEscapeKeyDown = false,\n disableBackdrop = false,\n zIndex,\n domRoot = document.body,\n ...restProps\n}: Props) => {\n useSetBodyScroll(open);\n\n const handleEscKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disableEscapeKeyDown && event.key === 'Escape') {\n event.stopPropagation();\n onClose && onClose();\n }\n };\n\n const handleBackdropClick = () => !disableBackdrop && onClose && onClose();\n\n return createPortal(\n <div\n {...restProps}\n id={id}\n className={`${classes['modal']} ${open && classes['visible']} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledby || labelId(id)}\n aria-describedby={describedby || descriptionId(id)}\n aria-hidden={!open}\n tabIndex={-1}\n data-hidden={!open}\n onKeyDown={handleEscKeyPress}\n style={{ zIndex }}\n >\n <div className={classes['backdrop']} onClick={handleBackdropClick}></div>\n {open && (\n <div\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes['container']} ${containerClassName}`}\n >\n {children}\n </div>\n )}\n </div>,\n domRoot\n );\n};\n","import React, { HTMLAttributes, useEffect, useRef } from 'react';\nimport classes from './BaseModalContent.module.scss';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n children: React.ReactNode;\n className?: string;\n disableAutoFocus?: boolean;\n}\n\nexport const BaseModalContent = ({\n id,\n children,\n className = '',\n disableAutoFocus = false,\n ...restProps\n}: Props) => {\n const contentRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n !disableAutoFocus && contentRef.current?.focus();\n }, []);\n\n /**tabIndex is set to be able to do focus on that element which we need for catching keyDown events */\n return (\n <div\n {...restProps}\n ref={contentRef}\n id={id}\n className={`${classes['content']} ${className}`}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport classes from './BaseModalActions.module.scss';\n\nexport interface Props extends HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\nexport const BaseModalActions = ({ children, className = '', ...restProps }: Props) => {\n return (\n <footer {...restProps} className={`${classes['actions']} ${className}`}>\n {children}\n </footer>\n );\n};\n","import React from 'react';\nimport {\n BaseModalActions,\n Props as BaseModalActionsProps,\n} from '../../BaseModal/BaseModalActions/BaseModalActions';\nimport classes from './DialogActions.module.scss';\n\nexport interface Props extends BaseModalActionsProps {\n align: 'left' | 'right';\n}\n\nexport const DialogActions = ({ children, align, ...restProps }: Props) => {\n return (\n <BaseModalActions\n {...restProps}\n className={`${classes['actions']}${align === 'left' ? ' ' + classes['left'] : ''}`}\n >\n {children}\n </BaseModalActions>\n );\n};\n","import React from 'react';\nimport { Typography } from '../../../Typography/Typography';\nimport classes from './DialogTitle.module.scss';\n\nexport interface Props {\n id: string;\n title: string;\n}\n\nexport const DialogTitle = ({ id, title }: Props) => {\n return (\n <div className={classes['header']}>\n <Typography id={id} className={classes['title']} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n </div>\n );\n};\n","export const generateID = (length = 15, stringToWeaveIn?: string) => {\n /** We will make sure to mesh the generate id and name property together to basically create a unique ID */\n let hashCharacters = [\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '0',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n ];\n\n let id = '';\n\n /** Generate an id of x characters in length */\n for (let i = 0; i < length && id.length < length; i++) {\n let stringCharacter =\n stringToWeaveIn && stringToWeaveIn[i] !== undefined && !/\\s/.test(stringToWeaveIn[i])\n ? stringToWeaveIn[i]\n : '';\n id = id + stringCharacter + hashCharacters[Math.floor(Math.random() * hashCharacters.length)];\n }\n\n return id.slice(0, length);\n};\n","import React, { HTMLAttributes, useState } from 'react';\nimport { BaseModal } from '../BaseModal/BaseModal';\nimport { BaseModalContent } from '../BaseModal/BaseModalContent/BaseModalContent';\nimport { DialogActions } from './DialogActions/DialogActions';\nimport classes from './Dialog.module.scss';\nimport { DialogTitle } from './DialogTitle/DialogTitle';\nimport { Button, Props as ButtonProps } from '../../Button/Button';\nimport { labelId, descriptionId } from '../BaseModal/BaseModalContext';\nimport { generateID } from '../../util/helper';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n open: boolean;\n children: React.ReactNode;\n alignActions: 'left' | 'right';\n onClose: () => void;\n title: string;\n primaryAction: Action;\n secondaryAction?: Action;\n zIndex?: number;\n disableEscapeKeyDown?: boolean;\n}\n\nexport interface Action extends Omit<ButtonProps, 'variant' | 'ref'> {\n label: string;\n onClick: (event?: React.MouseEvent<HTMLButtonElement>) => unknown;\n}\n\nexport const Dialog = ({\n id,\n open,\n children,\n alignActions,\n onClose,\n title,\n primaryAction,\n secondaryAction,\n zIndex,\n disableEscapeKeyDown = true,\n ...restProps\n}: Props) => {\n const [dialogId] = useState(id ?? generateID(20));\n const { label: primaryLabel, ...restOfPrimaryAction } = primaryAction;\n const PrimaryButton = (\n <Button key=\"primary\" {...restOfPrimaryAction}>\n {primaryLabel}\n </Button>\n );\n const TertiaryButton =\n secondaryAction &&\n (function () {\n const { label: secondaryLabel, ...restOfSecondaryAction } = secondaryAction;\n return (\n <Button key=\"tertiary\" variant=\"text\" {...restOfSecondaryAction}>\n {secondaryLabel}\n </Button>\n );\n })();\n\n const onHiddenInputKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n /** It has to be here because then we will need to check if user doesn't click tab to select action button and want to do another action then primary one? */\n if (event.key === 'Enter') {\n primaryAction.onClick();\n }\n };\n\n return (\n <BaseModal\n {...restProps}\n id={dialogId}\n className={classes['dialog']}\n containerClassName={classes['container']}\n open={open}\n disableBackdrop\n onClose={onClose}\n zIndex={zIndex}\n disableEscapeKeyDown={disableEscapeKeyDown}\n >\n <DialogTitle id={labelId(dialogId)} title={title} />\n <BaseModalContent\n id={descriptionId(dialogId)}\n className={classes['content']}\n disableAutoFocus\n >\n {children}\n </BaseModalContent>\n <DialogActions align={alignActions}>\n {alignActions === 'left'\n ? [PrimaryButton, TertiaryButton]\n : [TertiaryButton, PrimaryButton]}\n </DialogActions>\n <input\n autoFocus\n aria-hidden={true}\n style={{\n position: 'absolute',\n width: 0,\n height: 0,\n opacity: 0,\n }}\n maxLength={0}\n tabIndex={-1}\n onKeyPress={onHiddenInputKeyPress}\n />\n </BaseModal>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport classes from './BaseModalHeader.module.scss';\nimport { IconButton } from '../../../Button/IconButton';\nimport { Icon, Icons } from '../../../Icon/Icon';\nimport { Typography } from '../../../Typography/Typography';\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n id: string;\n title: string;\n children?: React.ReactNode;\n onClose: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const BaseModalHeader = ({ id, title, children, onClose, ...restProps }: Props) => {\n return (\n <div {...restProps} className={classes['header']}>\n <div className={classes['headline']}>\n <Typography id={id} className={classes['title']} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n <IconButton onClick={onClose} className={classes['closeBtn']} title=\"close modal\">\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { Dialog } from '../../Dialog/Dialog';\nimport { HTMLProps } from '../../../interfaces';\nimport { Typography } from '../../../Typography/Typography';\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'children'> {\n open: boolean;\n discardChangesButtonLabel: string;\n keepEditingButtonLabel: string;\n contentLabel: string;\n titleLabel: string;\n onKeepEditing: () => void;\n onDiscardChanges: () => void;\n}\n\nexport const DiscardChangesDialog = ({\n open,\n onKeepEditing,\n onDiscardChanges,\n discardChangesButtonLabel,\n keepEditingButtonLabel,\n contentLabel,\n titleLabel,\n ...rest\n}: Props) => {\n return (\n <Dialog\n {...rest}\n open={open}\n alignActions=\"left\"\n title={titleLabel}\n onClose={onKeepEditing}\n primaryAction={{\n label: discardChangesButtonLabel,\n onClick: onDiscardChanges,\n }}\n secondaryAction={{\n label: keepEditingButtonLabel,\n onClick: onKeepEditing,\n }}\n disableEscapeKeyDown={false}\n >\n <Typography variant=\"body\" spacing={{ margin: 0 }}>\n {contentLabel}\n </Typography>\n </Dialog>\n );\n};\n","import React, { Fragment, useState } from 'react';\nimport { Modal, Props as ModalProps } from '../Modal/Modal';\nimport { ModalHeader, Props as ModalHeaderProps } from '../Modal/ModalHeader/ModalHeader';\nimport {\n DiscardChangesDialog,\n Props as DiscardChangesDialogProps,\n} from './DiscardChangesDialog/DiscardChangesDialog';\n\nexport interface Props extends Omit<ModalProps, 'onClose'> {\n hasUnsavedChanges: () => boolean;\n onClose: (event?: React.MouseEvent<HTMLElement>) => unknown;\n headerProps: Omit<ModalHeaderProps, 'onClose' | 'id'>;\n discardChangedDialogProps: Omit<\n DiscardChangesDialogProps,\n 'open' | 'onKeepEditing' | 'onDiscardChanges'\n >;\n}\n\nexport const DiscardChangesModal = ({\n id,\n onClose,\n children,\n hasUnsavedChanges,\n headerProps,\n discardChangedDialogProps,\n ...rest\n}: Props) => {\n const [openDiscardChangesDialog, setOpenDiscardChangesDialog] = useState(false);\n\n const onCloseWrapper = () =>\n hasUnsavedChanges() ? setOpenDiscardChangesDialog(true) : onClose();\n\n const onDialogKeepEditing = () => {\n setOpenDiscardChangesDialog(false);\n };\n\n const onDialogDiscardChanges = () => {\n setOpenDiscardChangesDialog(false);\n onClose();\n };\n\n return (\n <Fragment>\n <Modal id={id} onClose={onCloseWrapper} {...rest}>\n <ModalHeader {...headerProps} id={`${id}-label`} onClose={onCloseWrapper} />\n {children}\n </Modal>\n <DiscardChangesDialog\n {...discardChangedDialogProps}\n open={openDiscardChangesDialog}\n onKeepEditing={onDialogKeepEditing}\n onDiscardChanges={onDialogDiscardChanges}\n />\n </Fragment>\n );\n};\n","import React, { useState } from 'react';\n\nexport interface ConfigObject {\n relativeElement: RefElement;\n elementToBePositioned: RefElement;\n transformOrigin?: Placement;\n placement?: Placement;\n offset?: Offset;\n}\n\nexport type HorizontalPlacment = 'left' | 'center' | 'centerh' | 'right';\nexport type VerticalPlacement = 'top' | 'center' | 'centerv' | 'bottom';\n\ntype Axis = 'vertical' | 'horizontal';\ntype RefElement = React.RefObject<HTMLOrSVGElement> | undefined;\n\ninterface DomRectObject {\n top: number;\n right: number;\n bottom: number;\n left: number;\n center: number;\n centerh: number;\n centerv: number;\n width: number;\n height: number;\n x: number;\n y: number;\n}\n\nexport interface Placement {\n horizontal: HorizontalPlacment;\n vertical: VerticalPlacement;\n}\n\nexport interface Offset {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface Position {\n top: PositionType;\n right: PositionType;\n bottom: PositionType;\n left: PositionType;\n}\n\ninterface Dimensions {\n height: number;\n width: number;\n}\n\ntype PositionType = number | 'initial';\n\nconst defaultConfigObject: ConfigObject = {\n relativeElement: undefined,\n elementToBePositioned: undefined,\n transformOrigin: {\n horizontal: 'left',\n vertical: 'top',\n },\n placement: {\n horizontal: 'left',\n vertical: 'top',\n },\n offset: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n};\n\nexport const usePosition = (providedConfigObject: ConfigObject = defaultConfigObject) => {\n const configObject = { ...defaultConfigObject, ...providedConfigObject };\n\n if (configObject.transformOrigin === undefined) {\n configObject.transformOrigin = defaultConfigObject.transformOrigin;\n }\n\n if (configObject.placement === undefined) {\n configObject.placement = defaultConfigObject.placement;\n }\n\n if (configObject.offset === undefined) {\n configObject.offset = defaultConfigObject.offset;\n }\n\n const [position, setPosition] = useState<Position>({\n left: 0,\n top: 0,\n right: 'initial',\n bottom: 'initial',\n });\n\n const _fixPossibleViewportOverflow = (\n value: number,\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n elDimensions: Dimensions\n ) => {\n let returnValue = value;\n\n if (\n (transformOrigin[requestedReturnValue] === 'left' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'top' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'center' && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === 'bottom' && returnValue < 0)\n ) {\n returnValue = 0;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === 'left' &&\n returnValue > window.innerWidth - elDimensions.width) ||\n (transformOrigin[requestedReturnValue] === 'center' &&\n requestedReturnValue === 'horizontal' &&\n returnValue > window.innerWidth - elDimensions.width)\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === 'top' &&\n returnValue > window.innerHeight - elDimensions.height) ||\n (transformOrigin[requestedReturnValue] === 'center' &&\n requestedReturnValue === 'vertical' &&\n returnValue > window.innerHeight - elDimensions.height)\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n if (\n transformOrigin[requestedReturnValue] === 'right' &&\n returnValue > window.innerWidth - elDimensions.width\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n transformOrigin[requestedReturnValue] === 'bottom' &&\n returnValue > window.innerHeight - elDimensions.height\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n return returnValue;\n };\n\n const _applyOffsetToPlacementValue = (\n value: number,\n requestedReturnValue: Axis,\n transformOrigin: Placement\n ) => {\n let returnValue = value;\n if (\n (requestedReturnValue === 'horizontal' && configObject.offset?.left !== 0) ||\n (requestedReturnValue === 'horizontal' && configObject.offset?.right !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === 'left' ||\n transformOrigin[requestedReturnValue] === 'center'\n ) {\n returnValue += configObject.offset?.left!;\n returnValue -= configObject.offset?.right!;\n }\n\n if (transformOrigin[requestedReturnValue] === 'right') {\n returnValue -= configObject.offset?.left!;\n returnValue += configObject.offset?.right!;\n }\n }\n\n if (\n (requestedReturnValue === 'vertical' && configObject.offset?.top !== 0) ||\n (requestedReturnValue === 'vertical' && configObject.offset?.bottom !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === 'top' ||\n transformOrigin[requestedReturnValue] === 'center'\n ) {\n returnValue += configObject.offset?.top!;\n returnValue -= configObject.offset?.bottom!;\n }\n\n if (transformOrigin[requestedReturnValue] === 'bottom') {\n returnValue -= configObject.offset?.top!;\n returnValue += configObject.offset?.bottom!;\n }\n }\n\n return returnValue;\n };\n\n const _calculateInitialPlacementValue = (\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n placementOriginDefinition: HorizontalPlacment | VerticalPlacement,\n elDimensions: Dimensions\n ) => {\n let value = 0;\n\n if (\n transformOrigin[requestedReturnValue] === 'left' ||\n transformOrigin[requestedReturnValue] === 'top'\n ) {\n value = relEl[placementOriginDefinition];\n } else if (transformOrigin[requestedReturnValue] === 'center') {\n value =\n relEl[placementOriginDefinition] -\n elDimensions[requestedReturnValue === 'horizontal' ? 'width' : 'height'] / 2;\n } else if (\n transformOrigin[requestedReturnValue] === 'right' ||\n transformOrigin[requestedReturnValue] === 'bottom'\n ) {\n value =\n window[requestedReturnValue === 'horizontal' ? 'innerWidth' : 'innerHeight'] -\n relEl[placementOriginDefinition];\n }\n\n return value;\n };\n\n /**\n *\n * @param requestedReturnValue whether the requested return value is for the horizontal or vertical axis\n * @returns either the horizontally centered placement definition (centerh) or the vertically centered one (centerv)\n */\n const _determineCenteredPlacementOrigin = (requestedReturnValue: Axis) => {\n if (requestedReturnValue === 'horizontal') {\n return 'centerh';\n } else if (requestedReturnValue === 'vertical') {\n return 'centerv';\n }\n throw new Error(\n `the requested return value isn\\'t \"vertical\" or \"horizontal\" ${requestedReturnValue} was given.`\n );\n };\n\n const _calculatePlacementValue = (\n transformOrigin: Placement,\n placement: HorizontalPlacment | VerticalPlacement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n elDimensions: Dimensions\n ): number => {\n const placementOriginDefinition =\n placement === 'center' ? _determineCenteredPlacementOrigin(requestedReturnValue) : placement;\n\n const value = _calculateInitialPlacementValue(\n transformOrigin,\n requestedReturnValue,\n relEl,\n placementOriginDefinition,\n elDimensions\n );\n\n const valueWithOffset = _applyOffsetToPlacementValue(\n value,\n requestedReturnValue,\n transformOrigin\n );\n\n const valueCorrectionForViewportOverflow = _fixPossibleViewportOverflow(\n valueWithOffset,\n transformOrigin,\n requestedReturnValue,\n elDimensions\n );\n\n return valueCorrectionForViewportOverflow;\n };\n\n const _calculatePlacement = (relEl: DomRectObject, elDimensions: Dimensions, axis: Axis) => {\n const placementValue = _calculatePlacementValue(\n configObject.transformOrigin!,\n configObject.placement![axis]!,\n axis,\n relEl,\n elDimensions\n );\n\n let direction = 'left';\n let oppositeDirection = 'right';\n\n if (axis === 'horizontal' && configObject.transformOrigin?.horizontal === 'right') {\n direction = 'right';\n oppositeDirection = 'left';\n } else if (axis === 'horizontal') {\n direction = 'left';\n oppositeDirection = 'right';\n }\n\n if (axis === 'vertical' && configObject.transformOrigin?.vertical === 'bottom') {\n direction = 'bottom';\n oppositeDirection = 'top';\n } else if (axis === 'vertical') {\n direction = 'top';\n oppositeDirection = 'bottom';\n }\n\n setPosition((prevState) => ({\n ...prevState,\n [direction]: placementValue,\n [oppositeDirection]: 'initial',\n }));\n };\n\n const calculatePosition = () => {\n if (!configObject.relativeElement?.current) return;\n const relativeElRect = (configObject.relativeElement!\n .current as HTMLElement)!.getBoundingClientRect();\n const elementToBePositionedDimensions: Dimensions = {\n height: (configObject.elementToBePositioned!.current as HTMLElement).offsetHeight,\n width: (configObject.elementToBePositioned!.current as HTMLElement).offsetWidth,\n };\n\n /** We want to add a center (horizontal and vertical) property to the DOMRect object. Since it's a special object we can't modify so we clone it and add it. */\n const clonedRelEl = {\n top: relativeElRect.top,\n right: relativeElRect.right,\n bottom: relativeElRect.bottom,\n center: 0,\n centerv: relativeElRect.top + relativeElRect.height / 2,\n centerh: relativeElRect.left + relativeElRect.width / 2,\n left: relativeElRect.left,\n width: relativeElRect.width,\n height: relativeElRect.height,\n x: relativeElRect.x,\n y: relativeElRect.y,\n };\n\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, 'horizontal');\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, 'vertical');\n };\n\n return {\n top: position.top,\n bottom: position.bottom,\n left: position.left,\n right: position.right,\n calculatePosition,\n };\n};\n","import React, { HTMLProps, ReactNode, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { Icon, Icons } from '../Icon/Icon';\nimport classes from './Tooltip.module.scss';\nimport { generateID } from '../util/helper';\nimport { Offset, Placement, usePosition } from '../hooks/usePosition';\nimport { createPortal } from 'react-dom';\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'label'> {\n label: string | ReactNode;\n children: string;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n domRoot?: HTMLElement;\n}\n\ninterface DefaultPosition {\n placement: Placement;\n offset: Offset;\n transformOrigin: Placement;\n}\n\nconst defaultPosition: DefaultPosition = {\n placement: { horizontal: 'right', vertical: 'center' },\n offset: { left: 16, right: 0, top: 0, bottom: 0 },\n transformOrigin: { horizontal: 'left', vertical: 'center' },\n};\n\nexport const Tooltip = ({\n children,\n className,\n placement = defaultPosition.placement,\n offset = defaultPosition.offset,\n transformOrigin = defaultPosition.transformOrigin,\n domRoot = document.body,\n label,\n ...rest\n}: Props) => {\n const [identifier] = useState(generateID());\n const [visible, setVisible] = useState(false);\n\n const relativeElement = useRef<HTMLOrSVGElement>(null);\n const elementToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, bottom, right, left, calculatePosition } = usePosition({\n relativeElement: relativeElement,\n elementToBePositioned: elementToBePositioned,\n placement: placement,\n offset: offset,\n transformOrigin: transformOrigin,\n });\n\n useEffect(() => {\n if (!visible) return;\n\n function escapePressHandler(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n setVisible(false);\n }\n }\n\n document.addEventListener('keyup', escapePressHandler);\n\n return () => {\n document.removeEventListener('keyup', escapePressHandler);\n };\n }, [visible]);\n\n useLayoutEffect(() => {\n calculatePosition();\n }, [visible]);\n\n const renderChildren = () => {\n if (React.isValidElement(label)) {\n return React.cloneElement(label, {\n onFocus: () => setVisible(true),\n onBlur: () => setVisible(false),\n 'aria-describedby': identifier,\n tabIndex: 0,\n className: classes['label'],\n });\n }\n\n return (\n <span\n className={classes['label']}\n tabIndex={0}\n onFocus={() => setVisible(true)}\n onBlur={() => setVisible(false)}\n aria-describedby={identifier}\n >\n {label}\n </span>\n );\n };\n\n return (\n <div {...rest} className={`${classes.wrapper} ${className ?? ''}`}>\n {renderChildren()}\n <div className={`${classes['tooltip-wrapper']}`}>\n <Icon\n ref={relativeElement}\n tag=\"div\"\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n icon={Icons.InfoCircle}\n className={classes.icon}\n />\n {createPortal(\n <div\n ref={elementToBePositioned}\n style={{\n ...rest.style,\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n }}\n aria-hidden={!visible}\n id={identifier}\n className={`${classes.tooltip} ${visible ? classes.visible : ''}`}\n >\n {children}\n </div>,\n domRoot\n )}\n </div>\n </div>\n );\n};\n","import React, { HTMLProps, ReactElement, useState } from 'react';\nimport { Icon, Icons } from '../Icon/Icon';\nimport classes from './Tile.module.scss';\nimport readyClasses from '../readyclasses.module.scss';\n\nimport { Props as ContextMenuProps } from '../ContextMenu/ContextMenu';\nimport { generateID } from '../util/helper';\nimport { Props as IconButtonProps } from '../Button/IconButton';\n\ninterface ImageProps {\n src: string;\n}\n\nexport interface Props extends Omit<HTMLProps<HTMLDivElement>, 'contextMenu'> {\n title: string;\n imageProps?: ImageProps;\n enabled?: boolean;\n loading?: boolean;\n tileAction?: ReactElement<ContextMenuProps> | ReactElement<IconButtonProps>;\n}\n\nexport const Tile = ({\n title,\n imageProps,\n enabled,\n className,\n loading,\n tileAction,\n ...rest\n}: Props) => {\n const [tileDescriptionID] = useState(generateID(20));\n\n if (!title) {\n throw new Error('Please make sure to pass a title prop to your Tile component.');\n }\n\n const statusMessage = () => {\n if (enabled) {\n return 'Status: enabled';\n }\n\n return 'Status: disabled';\n };\n\n return (\n <article\n tabIndex={0}\n aria-labelledby={tileDescriptionID}\n {...rest}\n className={`${classes['tile']} ${loading ? classes['loading'] : ''}`}\n >\n <header style={{ justifyContent: enabled === undefined ? 'flex-end' : 'space-between' }}>\n {enabled === true && (\n <Icon\n color=\"var(--success)\"\n icon={Icons.Checkmark}\n className={`${classes['icon']} ${className ?? ''}`}\n />\n )}\n {enabled === false && (\n <Icon\n color=\"var(--greyed-out)\"\n icon={Icons.Forbidden}\n className={`${classes['icon']} ${className ?? ''}`}\n />\n )}\n {enabled !== undefined && (\n <span id={tileDescriptionID} className={readyClasses['sr-only']}>\n {`${title}. ${statusMessage()}`}\n </span>\n )}\n {tileAction ?? null}\n </header>\n <div className={classes['content']}>\n {imageProps && imageProps.src.length > 0 && (\n <figure className={classes['image']}>{!loading && <img {...imageProps} alt=\"\" />}</figure>\n )}\n {(!imageProps || imageProps.src.length === 0) && (\n <Icon className={classes['placeholder']} icon={Icons.Image} />\n )}\n <span className={classes['title']}>{title}</span>\n </div>\n </article>\n );\n};\n","import React, { HTMLProps, ReactNode } from 'react';\nimport classes from './Tiles.module.scss';\nimport { Tile } from './Tile';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactNode;\n loading?: boolean;\n}\n\nexport const Tiles = ({ children, className, loading = false, ...rest }: Props) => {\n const renderChildren = () => {\n if (loading) {\n return [\n <Tile\n key=\"placeholder1\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder' }}\n loading={true}\n />,\n <Tile\n key=\"placeholder2\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder' }}\n loading={true}\n />,\n <Tile\n key=\"placeholder3\"\n title=\"placeholder\"\n imageProps={{ src: 'placeholder' }}\n loading={true}\n />,\n ];\n }\n\n return children;\n };\n\n return (\n <div\n {...rest}\n className={`${classes['tiles']} ${className ?? ''}`}\n aria-live=\"polite\"\n aria-busy={loading}\n >\n {renderChildren()}\n </div>\n );\n};\n","import React, { forwardRef, HTMLProps, ReactNode, RefObject, useEffect, useRef } from 'react';\nimport { usePosition, Offset, Placement } from '../hooks/usePosition';\nimport classes from './Popover.module.scss';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n show?: boolean;\n anchorEl?: RefObject<HTMLOrSVGElement>;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n}\n\nexport const Popover = forwardRef<HTMLDivElement, Props>(\n ({ children, className, show, placement, offset, transformOrigin, anchorEl, ...rest }, ref) => {\n const elToBePositioned = useRef<HTMLDivElement>(null);\n\n if (show === undefined) {\n throw new Error('Please make sure to define the \"show\" property on your Popover component');\n }\n\n const { top, left, right, bottom, calculatePosition } = usePosition({\n elementToBePositioned: elToBePositioned,\n relativeElement: anchorEl,\n offset: offset,\n placement: placement,\n transformOrigin: transformOrigin,\n });\n\n useEffect(() => {\n calculatePosition();\n }, [show]);\n\n return (\n <div ref={ref} {...rest}>\n <div\n ref={elToBePositioned}\n className={`${classes.popover} ${className ?? ''} ${show ? classes.show : ''}`}\n style={{ top: top, left: left, right: right, bottom: bottom }}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n","import { useEffect } from 'react';\n\nexport const useBodyClick = (\n checkFunction: (event: MouseEvent) => boolean,\n callbackFunction: (...args: unknown[]) => unknown,\n dependingStateVariable: React.ComponentState | React.ComponentState[]\n) => {\n function bodyClickListener(event: MouseEvent) {\n if (checkFunction(event)) {\n callbackFunction();\n }\n }\n useEffect(() => {\n window.addEventListener('click', bodyClickListener);\n\n return () => {\n window.removeEventListener('click', bodyClickListener);\n };\n }, [dependingStateVariable]);\n};\n","import React, { HTMLProps, ReactElement, useEffect, useRef, useState } from 'react';\nimport { Props as ButtonProps } from '../Button/Button';\nimport { Props as IconButtonProps } from '../Button/IconButton';\nimport { Popover } from '../Popover/Popover';\nimport { Placement, Offset } from '../hooks/usePosition';\nimport { Props as ContextMenuItemProps } from './ContextMenuItem';\nimport classes from './ContextMenu.module.scss';\nimport { useBodyClick } from '../hooks/useBodyClick';\nimport { createPortal } from 'react-dom';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n trigger: ReactElement<ButtonProps> | ReactElement<IconButtonProps>;\n children: ReactElement<ContextMenuItemProps> | ReactElement<ContextMenuItemProps>[];\n placement?: Placement;\n transformOrigin?: Placement;\n offset?: Offset;\n id: string;\n show?: boolean;\n domRoot?: HTMLElement;\n onShow?: () => void;\n onClose?: () => void;\n}\n\nexport const ContextMenu = ({\n trigger,\n children,\n id,\n show = false,\n onShow,\n onClose,\n placement = { horizontal: 'right', vertical: 'top' },\n offset = { top: 0, bottom: 0, left: 0, right: 0 },\n transformOrigin = { horizontal: 'left', vertical: 'top' },\n domRoot = document.body,\n ...rest\n}: Props) => {\n const anchorEl = useRef<HTMLButtonElement>(null);\n const [showContextMenu, setShowContextMenu] = useState(show);\n\n if (!id) {\n throw new Error('You need to provide an ID to the context menu');\n }\n\n useBodyClick(\n (event) => {\n return showContextMenu && anchorEl.current !== event.target;\n },\n () => {\n setShowContextMenu(false);\n },\n showContextMenu\n );\n\n useEffect(() => {\n if (showContextMenu === true) {\n onShow && onShow();\n } else {\n onClose && onClose();\n }\n }, [showContextMenu]);\n\n const renderTrigger = () =>\n React.cloneElement(trigger, {\n id: id,\n ['aria-haspopup']: 'true',\n ['aria-controls']: `${id}-menu`,\n ['aria-expanded']: show,\n onClick: () => setShowContextMenu(!showContextMenu),\n ref: anchorEl,\n });\n\n return (\n <div {...rest} className={classes['context-menu']}>\n {renderTrigger()}\n {createPortal(\n <Popover\n placement={placement}\n transformOrigin={transformOrigin}\n offset={offset}\n anchorEl={anchorEl}\n show={showContextMenu}\n >\n <ul className={classes.menu} id={`${id}-menu`} aria-describedby={id} role=\"menu\">\n {children}\n </ul>\n </Popover>,\n domRoot\n )}\n </div>\n );\n};\n","import React, { HTMLProps } from 'react';\nimport classes from './ContextMenuItem.module.scss';\n\nexport interface Props extends Omit<HTMLProps<HTMLLIElement>, 'onClick'> {\n children?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const ContextMenuItem = ({ children, onClick, ...rest }: Props) => {\n return (\n <li {...rest} role=\"menuitem\" className={classes['context-menu-item']}>\n <button onClick={(event) => onClick && onClick(event)}>{children}</button>\n </li>\n );\n};\n","import React, { Fragment, HTMLProps, ReactElement } from 'react';\nimport { Icon, Icons } from '../Icon/Icon';\nimport { Link, Props as LinkProps } from '../Link/Link';\nimport { Typography } from '../Typography/Typography';\nimport classes from './Breadcrumbs.module.scss';\n\ntype ChildrenType = ReactElement<LinkProps, typeof Link>;\n\nexport interface Props extends HTMLProps<HTMLElement> {\n children: ChildrenType | ChildrenType[];\n 'aria-label': string;\n}\n\nexport const Breadcrumbs = ({\n children,\n 'aria-label': ariaLabel,\n className = '',\n ...rest\n}: Props) => {\n const items = React.Children.map(children, (child, index) => {\n const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;\n if (isLastElement) {\n return (\n <Typography\n key={child.key}\n variant=\"body\"\n tag=\"span\"\n className={classes['last']}\n aria-current=\"page\"\n >\n {child.props.children}\n </Typography>\n );\n } else {\n return (\n <Fragment key={child.key}>\n {React.cloneElement(child)}\n <Icon icon={Icons.ChevronRight} className={classes['icon']} />\n </Fragment>\n );\n }\n });\n return (\n <nav {...rest} aria-label={ariaLabel} className={`${classes['breadcrumbs']} ${className}`}>\n {items}\n </nav>\n );\n};\n","import React, { createContext } from 'react';\nimport { SnackbarOptionsProps } from '../interfaces';\n\ninterface SnackbarContextProps {\n enqueueSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueSuccessSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueErrorSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n}\n\nconst SnackbarContext = createContext<SnackbarContextProps>({\n enqueueSnackbar: () => null,\n enqueueSuccessSnackbar: () => null,\n enqueueErrorSnackbar: () => null,\n});\n\ninterface Props {\n initialState: SnackbarContextProps;\n children?: React.ReactNode;\n}\n\nconst SnackbarContextProvider = ({ children, initialState }: Props) => {\n return <SnackbarContext.Provider value={initialState}>{children}</SnackbarContext.Provider>;\n};\n\nexport { SnackbarContextProvider, SnackbarContext, SnackbarContextProps };\n","import React from 'react';\nimport classes from './SnackbarContainer.module.scss';\n\nexport interface Placement {\n vertical: 'top' | 'bottom';\n horizontal: 'start' | 'center' | 'end';\n}\n\nexport interface Props {\n placement: Placement;\n children?: React.ReactNode;\n zIndex?: number;\n className?: string;\n}\n\nexport const SnackbarContainer = ({ placement, children, zIndex, className, ...rest }: Props) => {\n return (\n <div\n {...rest}\n style={{ zIndex }}\n className={`${classes['snackbars']} ${classes[placement.horizontal]} ${\n classes[placement.vertical]\n } ${className ?? ''}`}\n >\n {children}\n </div>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport const useAnimation = <RefElement extends HTMLElement>(callback: () => void) => {\n const animatedObjectRef = useRef<RefElement>(null);\n /** We need to store flag that says us when to call the callback */\n const [animationStarted, setAnimationStarted] = useState(false);\n\n const onAnimationEnd = () => animationStarted && callback();\n\n useEffect(() => {\n animatedObjectRef.current?.addEventListener('animationend', onAnimationEnd);\n return () => animatedObjectRef.current?.removeEventListener('animationend', onAnimationEnd);\n }, [animationStarted]);\n\n return {\n ref: animatedObjectRef,\n animationStarted,\n startAnimation: () => setAnimationStarted(true),\n };\n};\n","import React, { useEffect, useRef } from 'react';\nimport { IconButton } from '../../../Button/IconButton';\nimport { Icon, Icons } from '../../../Icon/Icon';\nimport { Variant, Actions } from '../interfaces';\nimport classes from './SnackbarItem.module.scss';\nimport readyclasses from '../../../readyclasses.module.scss';\nimport { useAnimation } from '../../../hooks/useAnimation';\nimport { Typography } from '../../../Typography/Typography';\n\nconst textColor = 'var(--snackbar-text-color)';\n\nexport interface Props {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n onClose: (key: string) => void;\n closeButtonTitle: string;\n content?: string;\n actions?: Actions;\n}\n\nexport const SnackbarItem = ({\n id,\n title,\n duration,\n variant,\n content,\n actions = [],\n onClose,\n closeButtonTitle,\n}: Props) => {\n const timerHandler = useRef<ReturnType<typeof setTimeout>>();\n const onAnimationEnd = () => onClose(id);\n const { ref, animationStarted, startAnimation } = useAnimation<HTMLDivElement>(onAnimationEnd);\n\n useEffect(() => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n return () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n }, []);\n\n const onMouseEnter = () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n\n const onMouseLeave = () => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n };\n\n const getVariantIcon = () => {\n if (variant === 'error') {\n return Icons.TimesCircleAlt;\n }\n return variant === 'success' ? Icons.CheckmarkCircleBreakout : Icons.InfoCircle;\n };\n\n const actionButtons = actions.map((actionProp, index) => (\n <button\n key={index}\n {...actionProp}\n onClick={(e) => {\n onClose(id);\n actionProp.onClick && actionProp.onClick(e);\n }}\n children={actionProp.label}\n className={classes['action-button']}\n ></button>\n ));\n\n return (\n <div\n ref={ref}\n className={`${classes['snackbar']} ${classes[variant]} ${\n animationStarted ? readyclasses['slide-out'] : readyclasses['slide-in']\n }`}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <Icon icon={getVariantIcon()} className={classes['icon']} />\n <div className={classes['container']}>\n <div className={classes['headline']}>\n <Typography className={classes['title']} variant=\"h4\" tag=\"span\">\n {title}\n </Typography>\n <IconButton\n onClick={() => startAnimation()}\n className={classes['close-btn']}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} color={textColor} />\n </IconButton>\n </div>\n {!!content && (\n <Typography className={classes['content']} variant=\"body\">\n {content}\n </Typography>\n )}\n {actionButtons.length > 0 && <div className={classes['actions']}>{actionButtons}</div>}\n </div>\n </div>\n );\n};\n","import React, { ReactNode, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { SnackbarContextProvider } from './SnackbarStateProvider';\nimport { Actions, SnackbarOptionsProps, Variant } from '../interfaces';\nimport { Placement, SnackbarContainer } from '../SnackbarContainer/SnackbarContainer';\nimport { generateID } from '../../../util/helper';\nimport { SnackbarItem } from '../SnackbarItem/SnackbarItem';\n\n/** Short msg is when only title is provided. Long one when content or/and actions are provided (or type is error). */\ninterface Duration {\n long: number;\n short: number;\n}\n\nexport interface Props {\n closeButtonTitle: string;\n children?: ReactNode;\n placement?: Placement;\n stackSize?: number;\n domRoot?: HTMLElement;\n autoHideDuration?: Duration;\n className?: string;\n}\n\ninterface Item {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n content?: string;\n actions?: Actions;\n}\n\nexport const SnackbarProvider = (\n {\n closeButtonTitle,\n placement = { vertical: 'bottom', horizontal: 'center' },\n autoHideDuration = { long: 8000, short: 4000 },\n stackSize = 3,\n domRoot = document.body,\n children,\n className,\n }: Props = { closeButtonTitle: '' }\n) => {\n const [snackbars, setSnackbars] = useState<Item[]>([]);\n\n const addSnackbar = (item: Item) => {\n setSnackbars((items) => [...items, item]);\n };\n\n const getDuration = (variant: Variant, actions?: Actions, content?: string) => {\n const hasError = variant === 'error';\n const hasContentOrActions = content || actions;\n if (hasError || hasContentOrActions) {\n return autoHideDuration.long;\n }\n return autoHideDuration.short;\n };\n\n const enqueueSnackbar = (\n title: string,\n content?: string,\n options: SnackbarOptionsProps = {}\n ): void => {\n const {\n variant = 'info',\n actions,\n duration = getDuration(variant, actions, content),\n } = options;\n const item: Item = {\n title,\n content,\n variant,\n actions,\n duration,\n id: generateID(15, title),\n };\n addSnackbar(item);\n };\n\n const enqueueSuccessSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: 'success' });\n };\n\n const enqueueErrorSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: 'error' });\n };\n\n const onItemClosed = (id: string) => {\n setSnackbars((items) => [...items].filter((item) => item.id !== id));\n };\n\n const snackbarList = snackbars.map((item, index) =>\n index < stackSize ? (\n <SnackbarItem\n {...item}\n key={item.id}\n onClose={onItemClosed}\n closeButtonTitle={closeButtonTitle}\n />\n ) : null\n );\n\n const snackbarPortal = createPortal(\n <SnackbarContainer placement={placement} className={className}>\n {snackbarList}\n </SnackbarContainer>,\n domRoot\n );\n\n return (\n <SnackbarContextProvider\n initialState={{ enqueueSnackbar, enqueueSuccessSnackbar, enqueueErrorSnackbar }}\n >\n {children}\n {snackbarPortal}\n </SnackbarContextProvider>\n );\n};\n","import { useContext } from 'react';\nimport { SnackbarContext } from './SnackbarProvider/SnackbarStateProvider';\n\nexport const useSnackbar = () => useContext(SnackbarContext);\n","import React, { HTMLProps, ReactNode } from 'react';\nimport classes from './Form.module.scss';\n\nexport interface Props extends HTMLProps<HTMLFormElement> {\n children?: ReactNode;\n}\n\nexport const Form = ({ children, className, ...rest }: Props) => {\n return (\n <form className={`${classes.form} ${className ?? ''}`} {...rest}>\n {children}\n </form>\n );\n};\n","import React, { ReactElement } from 'react';\nimport readyclasses from '../../readyclasses.module.scss';\nimport classes from './Fieldset.module.scss';\nimport { HTMLProps } from '../../interfaces';\nimport { Typography, Variant } from '../../Typography/Typography';\n\nexport interface Props extends HTMLProps<HTMLFieldSetElement> {\n children?: ReactElement | ReactElement[];\n legend: string;\n legendStyle?: Variant;\n hideLegend?: boolean;\n background?: string;\n noPadding?: boolean;\n noBackground?: boolean;\n required?: boolean;\n error?: boolean;\n}\n\nexport const Fieldset = ({\n children,\n className,\n legend,\n legendStyle = 'body',\n hideLegend = false,\n noBackground,\n background = noBackground ? '' : '#FFF',\n noPadding = false,\n disabled = false,\n required = false,\n error = false,\n ...rest\n}: Props) => {\n const renderChildren = () => {\n if (!children) return;\n\n return React.Children.map(children, (child: ReactElement) =>\n React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n error: child.props.error !== undefined ? child.props.error : error,\n })\n );\n };\n\n return (\n <fieldset\n {...rest}\n disabled={disabled}\n style={{ backgroundColor: background, ...rest.style }}\n className={`${classes.fieldset} ${noPadding ? classes['no-padding'] : ''} ${className ?? ''}`}\n >\n {legend && <legend className={readyclasses['sr-only']}>{legend}</legend>}\n {legend && !hideLegend && (\n <Typography\n variant={legendStyle}\n tag=\"span\"\n aria-hidden=\"true\"\n className={`${classes['legend']} ${required ? classes['required'] : ''} ${\n error ? classes['error'] : ''\n }`}\n >\n {legend}\n </Typography>\n )}\n {renderChildren()}\n </fieldset>\n );\n};\n","import React, { ReactElement } from 'react';\nimport classes from './FormControl.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactElement | ReactElement[];\n grid?: 1 | 2 | 3;\n align?: 'top' | 'start' | 'middle' | 'center' | 'bottom' | 'end' | 'stretch';\n error?: boolean;\n}\n\nexport const FormControl = ({\n children,\n disabled,\n error,\n className,\n grid,\n align = 'center',\n ...rest\n}: Props) => {\n const renderChildren = () =>\n React.Children.map(children, (child) => {\n if (!child) {\n return null;\n }\n\n const childElement = React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n error: child.props.error !== undefined ? child.props.error : error,\n });\n\n if (grid && grid > 1) {\n return <div className={`${classes['col-' + grid]} ${classes.column}`}>{childElement}</div>;\n }\n\n return childElement;\n });\n\n return (\n <div\n {...rest}\n data-formcontrol\n className={`${classes['form-control']} ${className ? className : ''} ${\n grid && grid > 1 ? `${classes.grid} ${classes['grid-' + grid]}` : ''\n } ${classes[align]}`}\n >\n {renderChildren()}\n </div>\n );\n};\n","import React, { ReactNode } from 'react';\nimport classes from './FormHelperText.module.scss';\nimport { HTMLProps } from '../../interfaces';\nimport { Typography } from '../../Typography/Typography';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n error?: boolean;\n}\n\nexport const FormHelperText = ({ children, error, className, ...rest }: Props) => {\n return (\n <Typography\n {...rest}\n variant=\"sub-text\"\n tag=\"div\"\n className={`${classes['form-helper-text']} ${error ? classes.error : ''} ${className ?? ''}`}\n >\n {children}\n </Typography>\n );\n};\n","/** The empty className property on FormHelperText is on purpose! We want to basically \"filter\" out the className from helperProps because we're adding this to the surrounding div. This makes it so also the errormessage receives this styling. */\n\nimport React, { ReactChild } from 'react';\nimport classes from './FormGroup.module.scss';\nimport { FormHelperText, Props as HelperProps } from '../FormHelperText/FormHelperText';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children: ReactChild[] | ReactChild;\n error?: boolean;\n errorMessageIcon?: Icons;\n errorMessageIconPosition?: 'before' | 'after';\n errorMessage?: string;\n errorId?: string;\n helperIndent?: number;\n helperText?: string;\n helperId?: string;\n helperProps?: HelperProps;\n}\n\nexport const FormGroup = ({\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition = 'before',\n helperText,\n helperId,\n helperProps,\n helperIndent,\n ...rest\n}: Props) => {\n return (\n <div\n {...rest}\n className={`${classes['form-group']} ${error ? classes.error : ''} ${className ?? ''}`}\n >\n {children}\n\n {(helperText || errorMessage) && (\n <div\n style={{ marginLeft: `${helperIndent}px` }}\n className={`${classes['default-helper']} ${\n helperProps?.className ? helperProps.className : ''\n }`}\n >\n {helperText && !error && (\n <FormHelperText {...helperProps} className={''} id={helperId}>\n {helperText}\n </FormHelperText>\n )}\n {error && errorMessage && (\n <span className={classes['error-message']}>\n <span className={classes.message} id={errorId}>\n {errorMessageIcon && errorMessageIconPosition === 'before' && (\n <Icon\n className={`${classes['error-icon']} ${classes['error-icon-before']}`}\n icon={errorMessageIcon}\n />\n )}\n {errorMessage}\n {errorMessageIcon && errorMessageIconPosition === 'after' && (\n <Icon\n className={`${classes['error-icon']} ${classes['error-icon-after']}`}\n icon={errorMessageIcon}\n />\n )}\n </span>\n </span>\n )}\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport classes from './Label.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLLabelElement> {\n children?: string;\n}\n\nexport const Label = ({ children, className, hidden = false, ...rest }: Props) => {\n return (\n <label\n {...rest}\n className={`${hidden ? readyclasses['sr-only'] : ''} ${classes['label']} ${className ?? ''}`}\n >\n {children}\n </label>\n );\n};\n","import React, { useEffect } from 'react';\nimport classes from './Input.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\n\nconst dateTypes = ['date', 'time', 'datetime-local'] as const;\n\nexport type Type =\n | 'text'\n | 'email'\n | 'file'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'url'\n | 'hidden'\n | typeof dateTypes[number];\n\nexport interface Props extends HTMLProps<HTMLInputElement> {\n wrapperProps?: HTMLProps<HTMLInputElement>;\n labeledBy?: string;\n type: Type;\n error?: boolean;\n}\n\nexport const Input = ({\n error = false,\n className,\n name,\n style,\n wrapperProps,\n type,\n labeledBy,\n ...rest\n}: Props) => {\n useEffect(() => {\n if (name === undefined) {\n throw new Error(\"Please give your <Input /> component a 'name' attribute\");\n }\n }, []);\n\n const inputClassNames = [classes['input']];\n error && inputClassNames.push(classes['error']);\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n inputClassNames.push(classes['remove-extra-indent']);\n className && inputClassNames.push(className);\n\n const iconClassNames = [classes['warning']];\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n iconClassNames.push(classes['extra-indent']);\n\n return (\n <div\n {...wrapperProps}\n style={{ ...style }}\n className={`${classes['input-wrapper']} ${wrapperProps?.className ?? ''} ${\n type === 'hidden' ? readyclasses['hidden'] : ''\n }`}\n >\n <input\n {...rest}\n aria-labelledby={labeledBy}\n type={type}\n name={name}\n className={inputClassNames.join(' ')}\n />\n {error && <Icon className={iconClassNames.join(' ')} icon={Icons.Warning} />}\n </div>\n );\n};\n","import React, { useLayoutEffect } from 'react';\n\nexport const useScroll = (\n callbackFunction: (event: Event) => unknown,\n dependingStateVariable: React.ComponentState[] = []\n) => {\n const scrollListener = (event: Event) => callbackFunction(event);\n\n useLayoutEffect(() => {\n window.addEventListener('scroll', scrollListener);\n\n return () => {\n window.removeEventListener('scroll', scrollListener);\n };\n }, [...dependingStateVariable]);\n};\n","import classes from './Select.module.scss';\n\nimport React, {\n HTMLProps,\n ReactElement,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { Input } from '../Input/Input';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { FormElement } from '../form.interfaces';\nimport { useBodyClick } from '../../hooks/useBodyClick';\nimport { Position } from '../../hooks/usePosition';\nimport { useScroll } from '../../hooks/useScroll';\n\nexport interface Props extends FormElement<HTMLSelectElement> {\n children: ReactElement[];\n name?: string;\n labeledBy?: string;\n describedBy?: string;\n placeholder?: string;\n searchPlaceholder?: string;\n className?: string;\n value?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>, child?: ReactElement) => void;\n onClear?: (event: React.MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const Select = ({\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n searchPlaceholder = 'Search item',\n className,\n error = false,\n value = '',\n onChange,\n onClear,\n ...rest\n}: Props) => {\n const [expanded, setExpanded] = useState(false);\n const [filter, setFilter] = useState('');\n const [display, setDisplay] = useState('');\n const [listPosition, setListPosition] = useState<Partial<Position>>({});\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest('.custom-select') && expanded,\n () => {\n setExpanded(!expanded);\n },\n expanded\n );\n\n const rePositionList = () => {\n if (!expanded || !optionListReference.current || !containerReference.current) {\n return;\n }\n const windowHeight = window.innerHeight;\n const containerTopWithListHeight =\n containerReference.current.getBoundingClientRect().bottom -\n containerReference.current.getBoundingClientRect().height +\n optionListReference.current.getBoundingClientRect().height;\n\n if (containerTopWithListHeight > windowHeight) {\n setListPosition({ top: 'initial', bottom: 0 });\n } else {\n setListPosition({ top: 0, bottom: 'initial' });\n }\n };\n\n useScroll(rePositionList, [expanded]);\n\n useLayoutEffect(() => {\n rePositionList();\n }, [expanded]);\n\n const onOptionChangeHandler = (child: ReactElement) => (event: React.ChangeEvent) => {\n /**\n * We expose this to the outside inside of the onChange function as a parameter along with an optional second\n * parameter of the option that was clicked.\n */\n\n setDisplay(child.props.children);\n\n let newValue;\n let multiple = false; // Potential support for future multiple select. This should be a prop obviously.\n\n if (multiple) {\n /** We will implement the mulitple select in the next iteration */\n } else {\n newValue = child.props.value;\n }\n\n if (onChange) {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // Clone the event to not override `target` of the original event.\n // Don't know how to fix this any.. compiler whines that it can't construct it otherwise.\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent as React.ChangeEvent<HTMLSelectElement>, 'target', {\n writable: true,\n value: { value: newValue },\n });\n\n onChange(clonedEvent as React.ChangeEvent<HTMLSelectElement>, child);\n }\n\n setDisplay((event.currentTarget as HTMLElement).innerText);\n setExpanded(false);\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n onOptionSelect: onOptionChangeHandler(child),\n selected: child.props.value === value,\n filter: filter,\n })\n );\n\n const renderSearch = () => (\n <Input\n autoFocus\n onChange={filterResults}\n className={classes['select-search']}\n wrapperProps={{ className: classes['select-search-wrapper'] }}\n type=\"text\"\n name=\"search-option\"\n placeholder={searchPlaceholder}\n />\n );\n\n const filterResults = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFilter(event.currentTarget.value);\n };\n\n const statusIcon = () => {\n if (error) {\n return <Icon className={classes['warning']} icon={Icons.Warning} />;\n }\n if (value.length !== 0 && onClear) {\n return <Icon tag=\"div\" icon={Icons.TimesThin} onClick={onClear} />;\n }\n return null;\n };\n\n /** Set initial display value */\n useEffect(() => {\n for (let child of children) {\n if (child.props.value === value) {\n setDisplay(child.props.children);\n }\n }\n }, []);\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n\n return (\n <div\n {...(rest as HTMLProps<HTMLDivElement>)}\n ref={containerReference}\n className={`custom-select ${classes.select} ${additionalClasses.join(' ')} ${\n className ?? ''\n }`}\n >\n <button\n onClick={() => setExpanded(!expanded)}\n type=\"button\"\n name={name}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes['selected']}>\n {value.length === 0 && placeholder && (\n <span className={classes['placeholder']}>{placeholder}</span>\n )}\n {value.length > 0 && <span>{display}</span>}\n </div>\n <div className={classes['status']}>\n {statusIcon()}\n <Icon className={classes['triangle-down']} icon={Icons.TriangleDown} />\n </div>\n </button>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes['list-wrapper']}`}\n style={{ display: expanded ? 'block' : 'none', ...listPosition }}\n >\n {Array.isArray(children) && children.length > 10 && renderSearch()}\n <ul role=\"listbox\" tabIndex={-1}>\n {renderOptions()}\n </ul>\n </div>\n </div>\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport classes from './Select.module.scss';\nimport { HTMLProps } from '../../interfaces';\n\nexport interface Props extends HTMLProps<HTMLLIElement> {\n children: string;\n value: string;\n disabled?: boolean;\n selected?: boolean;\n label?: string;\n filter?: string;\n onOptionSelect?: (event: React.SyntheticEvent<HTMLLIElement>) => void;\n}\n\nexport const Option = ({\n children,\n className,\n selected = false,\n onOptionSelect,\n disabled,\n filter,\n ...rest\n}: Props) => {\n const [showOption, setShowOption] = useState(true);\n\n const onSelectHandler = (event: React.SyntheticEvent<HTMLLIElement>) => {\n if (onOptionSelect) onOptionSelect(event);\n };\n\n useEffect(() => {\n if (filter) {\n setShowOption(children.toLowerCase().match(filter.toLowerCase()) !== null);\n } else {\n setShowOption(true);\n }\n }, [filter]);\n\n if (!showOption) return null;\n\n return (\n <li\n {...rest}\n className={`${selected ? classes['selected-option'] : ''} ${\n disabled ? classes.disabled : ''\n } ${className ?? ''}`}\n onClick={onSelectHandler}\n onKeyPress={(e) => {\n e.key === 'Enter' && onSelectHandler(e);\n }}\n aria-selected={selected}\n role=\"option\"\n tabIndex={disabled ? -1 : 0}\n >\n {children}\n </li>\n );\n};\n","import React from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { FormElement } from '../form.interfaces';\nimport classes from './Textarea.module.scss';\n\nexport interface Props extends FormElement<HTMLTextAreaElement> {\n wrapperClassName?: string;\n errorClassName?: string;\n}\n\nexport const Textarea = ({\n error = false,\n disabled = false,\n className,\n rows = 4,\n wrapperClassName,\n errorClassName,\n ...rest\n}: Props) => {\n return (\n <div className={`${classes['textarea-wrapper']} ${wrapperClassName ? wrapperClassName : ''}`}>\n <textarea\n {...rest}\n rows={rows}\n className={`${error ? classes['error'] : ''} ${classes['textarea']} ${className ?? ''}`}\n disabled={disabled}\n />\n {error && (\n <Icon className={`${classes['warning']} ${errorClassName ?? ''}`} icon={Icons.Warning} />\n )}\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { generateID } from '../util/helper';\nimport { Type as InputTypes } from '../Form/Input/Input';\n\nexport const useWrapper = (value?: string, placeholder?: string, type?: InputTypes) => {\n const [helperId] = useState(generateID(20));\n const [errorId] = useState(generateID(20));\n const [labelId] = useState(generateID(20));\n const [floatingLabelActive, setFloatingLabelActive] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n\n useEffect(() => {\n if (value?.length || placeholder || type === 'datetime-local' || type === 'time') {\n setFloatingLabelActive(true);\n }\n }, []);\n\n useEffect(() => {\n if (value?.length || hasFocus) {\n setFloatingLabelActive(true);\n } else if (!placeholder && !hasFocus && type !== 'datetime-local' && type !== 'time') {\n setFloatingLabelActive(false);\n }\n }, [value, placeholder, type, hasFocus]);\n\n return {\n helperId,\n errorId,\n labelId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n };\n};\n","import React, { ReactElement } from 'react';\nimport { FormGroup, Props as FormGroupProps } from '../../FormGroup/FormGroup';\nimport { Label, Props as LabelProps } from '../../Label/Label';\nimport classes from './Wrapper.module.scss';\nimport { Props as HelperProps } from '../../FormHelperText/FormHelperText';\nimport { HTMLProps } from '../../../interfaces';\n\nexport interface Props extends Omit<FormGroupProps, 'children'> {\n children: ReactElement | ReactElement[];\n floatingLabelActive?: boolean;\n floatingLabel?: boolean;\n helperIndent?: number;\n label?: string;\n labelProps?: LabelProps;\n name: string;\n /** This does NOT add validation! It simply adds an asterix on the Label! */\n required?: boolean;\n innerClassName?: string;\n}\n\n/** For components that extend this component we create an interface (InputWrapper, SelectWrapper, etc.) */\nexport interface WrapperProps extends HTMLProps<HTMLDivElement> {\n errorMessage?: string;\n error: boolean;\n helperText?: string;\n helperProps?: HelperProps;\n label?: string;\n name: string;\n required?: boolean;\n}\n\nexport const Wrapper = ({\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition,\n helperText,\n helperId,\n floatingLabel = true,\n floatingLabelActive,\n required,\n helperProps,\n helperIndent,\n labelProps,\n label,\n disabled,\n name,\n innerClassName,\n ...rest\n}: Props) => {\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n disabled,\n })\n );\n\n const labelClasses = [];\n\n floatingLabel && labelClasses.push(classes['floating-label']);\n floatingLabel && floatingLabelActive && labelClasses.push(classes['floating-label-active']);\n labelProps?.className && labelClasses.push(labelProps.className);\n required && labelClasses.push(classes['required']);\n error && labelClasses.push(classes['error']);\n\n return (\n <div {...rest} className={`${classes.wrapper} ${className ? className : ''}`}>\n <FormGroup\n error={error}\n errorMessage={errorMessage}\n errorId={errorId}\n errorMessageIcon={errorMessageIcon}\n errorMessageIconPosition={errorMessageIconPosition}\n helperText={helperText}\n helperId={helperId}\n helperProps={helperProps}\n helperIndent={helperIndent}\n >\n <div\n className={`${floatingLabel ? classes['floating-wrapper'] : ''} ${\n innerClassName ? innerClassName : ''\n }`}\n >\n {label && (\n <Label\n {...labelProps}\n className={`${classes.label} ${labelClasses.join(' ')}`}\n htmlFor={name}\n >\n {label}\n </Label>\n )}\n {renderChildren()}\n </div>\n </FormGroup>\n </div>\n );\n};\n","import React, { ReactElement, useEffect } from 'react';\nimport classes from './CheckboxWrapper.module.scss';\nimport { useWrapper } from '../../../hooks/useWrapper';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Icons } from '../../../Icon/Icon';\nimport { Fieldset, Props as FieldsetProps } from '../../../Form/Fieldset/Fieldset';\n\nexport interface Props extends WrapperProps {\n children: ReactElement[] | ReactElement;\n fieldsetProps: FieldsetProps;\n}\n\nexport const CheckboxWrapper = ({\n children,\n error = false,\n helperText,\n helperProps,\n fieldsetProps,\n ...rest\n}: Props) => {\n const { errorId, helperId } = useWrapper();\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a title prop so a legend element is rendered. This error was thrown in CheckboxWrapper. You can add this title prop through the fieldsetProps prop by passing an object (fieldsetProps={{ title: \"title here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n parentHelperId: helperText ? helperId : false,\n disabled: rest.disabled,\n })\n );\n\n return (\n <Fieldset {...fieldsetProps}>\n <Wrapper\n {...rest}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['checkbox-wrapper-helper']} ${\n error ? classes['checkbox-wrapper-error'] : ''\n } ${helperProps?.className ?? ''}`,\n }}\n error={error}\n errorMessageIcon={Icons.Warning}\n errorId={errorId}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n","import React from 'react';\nimport { Input, Type, Props as InputProps } from '../../Input/Input';\nimport classes from './InputWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\ninterface OptionalInputProps extends Omit<InputProps, 'type'> {}\n\nexport interface Props extends WrapperProps {\n label: string;\n type: Type;\n name: string;\n inputProps?: OptionalInputProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n}\n\nexport const InputWrapper = ({\n type,\n name,\n inputProps,\n helperText,\n helperProps,\n value,\n error,\n onChange,\n onBlur,\n onFocus,\n ...rest\n}: Props) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId,\n } = useWrapper(value, inputProps?.placeholder, type);\n\n return (\n <Wrapper\n {...rest}\n name={name}\n className={classes['input-wrapper']}\n labelProps={{\n id: labelId,\n className: `${classes['input-label']} ${hasFocus ? classes['focus'] : ''}`,\n }}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n error={error}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['input-wrapper-helper']} ${helperProps?.className ?? ''} `,\n }}\n helperIndent={20}\n >\n <Input\n {...inputProps}\n aria-labelledby={labelId}\n aria-describedby={error ? errorId : helperId}\n onChange={onChange}\n onFocus={(e) => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={(e) => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value ||\n inputProps?.placeholder?.length ||\n type === 'datetime-local' ||\n type === 'time'\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n className={floatingLabelActive ? classes['floating-label'] : ''}\n name={name}\n error={error}\n id={name}\n value={value}\n type={type}\n />\n </Wrapper>\n );\n};\n","import React, { ReactElement, useEffect } from 'react';\nimport classes from './RadioWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { useWrapper } from '../../../hooks/useWrapper';\nimport { Icons } from '../../../Icon/Icon';\nimport { Fieldset, Props as FieldsetProps } from '../../../Form/Fieldset/Fieldset';\n\nexport interface Props extends WrapperProps {\n children: ReactElement | ReactElement[];\n fieldsetProps: FieldsetProps;\n value: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const RadioWrapper = ({\n children,\n error,\n name,\n helperText,\n helperProps,\n fieldsetProps,\n value,\n onChange,\n disabled,\n ...rest\n}: Props) => {\n const { errorId, helperId } = useWrapper(value);\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a title prop so a legend element is rendered. This error was thrown in RadioWrapper. You can add this title prop through the fieldsetProps prop by passing an object (fieldsetProps={{ title: \"title here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, (child) =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n checked: child.props.value === value,\n name: name,\n parentHelperId: helperText ? helperId : false,\n onChange: onChange,\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n })\n );\n\n return (\n <Fieldset {...fieldsetProps}>\n <Wrapper\n {...rest}\n disabled={disabled}\n name={name}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes['radio-wrapper-helper']} ${\n error ? classes['radio-wrapper-error'] : ''\n } ${helperProps?.className ?? ''}`,\n }}\n error={error}\n errorId={errorId}\n errorMessageIcon={Icons.Warning}\n floatingLabel={false}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n","import React, { ReactChild, ReactElement } from 'react';\nimport classes from './SelectWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Select, Props as SelectProps } from '../../Select/Select';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\nexport interface Props extends Omit<WrapperProps, 'onChange' | 'error'> {\n children: ReactChild | ReactChild[];\n placeholder?: string;\n value: string;\n error?: boolean;\n selectProps?: SelectProps;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n onClear?: () => void;\n}\n\nexport const SelectWrapper = ({\n children,\n error,\n value,\n placeholder,\n selectProps,\n helperProps,\n onChange,\n onClear,\n ...rest\n}: Props) => {\n const { errorId, floatingLabelActive, helperId, labelId } = useWrapper(value, placeholder);\n\n return (\n <Wrapper\n {...rest}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n helperId={helperId}\n labelProps={{ id: labelId, className: classes['select-label'] }}\n helperProps={{\n ...helperProps,\n className: `${classes['select-helper-text']} ${helperProps?.className ?? ''}`,\n }}\n error={error}\n >\n <Select\n {...selectProps}\n value={value}\n labeledBy={labelId}\n error={error}\n describedBy={error ? errorId : helperId}\n onChange={onChange}\n onClear={onClear}\n placeholder={placeholder}\n className={`${floatingLabelActive ? classes['floating-label-active'] : ''} ${\n selectProps?.className ?? ''\n }`}\n >\n {children as ReactElement[]}\n </Select>\n </Wrapper>\n );\n};\n","import React, { useState } from 'react';\nimport classes from './TextareaWrapper.module.scss';\nimport { Wrapper, WrapperProps } from '../Wrapper/Wrapper';\nimport { Textarea, Props as TextareaProps } from '../../Textarea/Textarea';\nimport { useWrapper } from '../../../hooks/useWrapper';\n\nexport interface Props\n extends Omit<WrapperProps, 'onFocus' | 'onChange' | 'onBlur' | 'onMouseEnter' | 'onMouseLeave'> {\n placeholder?: string;\n textareaProps?: TextareaProps;\n value: string;\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n}\n\nexport const TextareaWrapper = ({\n name,\n error,\n value,\n label,\n placeholder,\n textareaProps,\n helperProps,\n onChange,\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n disabled,\n ...rest\n}: Props) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId,\n } = useWrapper(value, placeholder);\n\n const [focus, setFocus] = useState(false);\n const [hover, setHover] = useState(false);\n\n return (\n <Wrapper\n {...rest}\n disabled={disabled}\n labelProps={{\n id: labelId,\n className: `${classes['textarea-label']} ${hasFocus ? classes['focus'] : ''}`,\n }}\n name={name}\n label={label}\n helperId={helperId}\n helperProps={{\n ...helperProps,\n className: classes['textarea-helper-text'],\n }}\n error={error}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n >\n <Textarea\n {...textareaProps}\n error={error}\n aria-labelledby={label && labelId}\n aria-describedby={error ? errorId : helperId}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n onFocus={(e) => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n setFocus(true);\n }}\n onBlur={(e) => {\n onBlur && onBlur(e);\n setHasFocus(false);\n setFocus(false);\n e.target.value || textareaProps?.placeholder?.length\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n onMouseEnter={(e) => {\n onMouseEnter && onMouseEnter(e);\n setHover(true);\n }}\n onMouseLeave={(e) => {\n onMouseLeave && onMouseLeave(e);\n setHover(false);\n }}\n className={classes['textarea']}\n wrapperClassName={`${classes['textarea-wrapper']} ${focus ? classes['focus'] : ''} ${\n hover ? classes['hover'] : ''\n } ${disabled ? classes['disabled'] : ''} ${error ? classes['error'] : ''}`}\n errorClassName={classes['error-icon']}\n />\n </Wrapper>\n );\n};\n","import { useEffect, useState } from 'react';\nimport { generateID } from '../util/helper';\n\nexport interface ConfigObject {\n name: string | undefined;\n errorMessage?: string;\n error?: boolean;\n parentErrorId?: string;\n helperText?: string;\n parentHelperId?: string;\n}\n\nexport const useFormSelector = (configObject: ConfigObject) => {\n const [identifier] = useState(generateID(15, configObject.name));\n const [describedBy, setDescribedBy] = useState('');\n const [errorId] = useState(generateID(15, configObject.errorMessage));\n\n useEffect(() => {\n if (configObject.error && configObject.parentErrorId) {\n setDescribedBy(configObject.parentErrorId);\n }\n\n if (\n (!configObject.error && configObject.helperText) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.helperText)\n ) {\n setDescribedBy(`${identifier}`);\n }\n\n if (\n (!configObject.error && !configObject.helperText && configObject.parentHelperId) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.parentHelperId)\n ) {\n setDescribedBy(`${configObject.parentHelperId}`);\n }\n\n if (configObject.errorMessage && !configObject.parentErrorId && configObject.error) {\n setDescribedBy(errorId);\n }\n }, [identifier, configObject.error, configObject.parentErrorId]);\n\n return {\n describedBy,\n errorId,\n identifier,\n };\n};\n","import React, { ReactNode } from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { HTMLProps } from '../../interfaces';\nimport { FormHelperText, Props as FormHelperTextProps } from '../FormHelperText/FormHelperText';\nimport classes from './FormSelectorWrapper.module.scss';\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n children?: ReactNode;\n nestedChildren?: ReactNode;\n containerProps: HTMLProps<HTMLDivElement>;\n helperProps?: FormHelperTextProps;\n error?: boolean;\n disabled?: boolean;\n helperText?: string;\n errorMessage?: string;\n parentHelperId?: string;\n parentErrorId?: string;\n errorId: string;\n identifier: string;\n}\n\nexport const FormSelectorWrapper = ({\n children,\n className,\n nestedChildren,\n containerProps,\n helperProps,\n error,\n disabled,\n helperText,\n errorMessage,\n parentErrorId,\n errorId,\n identifier,\n ...rest\n}: Props) => {\n return (\n <div\n {...rest}\n className={`${error ? classes['error'] : ''} ${disabled ? classes['disabled'] : ''} ${\n className ?? ''\n }`}\n >\n <div {...containerProps}>{children}</div>\n {helperText && (!error || parentErrorId || !errorMessage) && (\n <FormHelperText\n {...helperProps}\n id={`${identifier}`}\n className={`${classes['helper-text']} ${helperProps?.className ?? ''} ${\n error ? classes['error'] : ''\n }`}\n >\n {helperText}\n </FormHelperText>\n )}\n {errorMessage && !parentErrorId && error && (\n <span className={classes['error-message']}>\n <Icon className={classes['error-icon']} icon={Icons.Warning} />\n <span id={errorId}>{errorMessage}</span>\n </span>\n )}\n {nestedChildren}\n </div>\n );\n};\n","import React from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Props as HelperProps } from '../FormHelperText/FormHelperText';\nimport classes from './Radio.module.scss';\nimport { useFormSelector } from '../../hooks/useFormSelector';\nimport { FormSelector } from '../form.interfaces';\nimport { HTMLProps } from '../../interfaces';\nimport { FormSelectorWrapper } from '../FormSelectorWrapper/FormSelectorWrapper';\n\nexport interface Props extends FormSelector<HTMLInputElement> {\n children: string;\n value: string;\n wrapperProps?: HTMLProps<HTMLDivElement>;\n helperProps?: HelperProps;\n}\n\nexport const Radio = ({\n children,\n disabled,\n className,\n value,\n name,\n helperText,\n parentErrorId,\n parentHelperId,\n error,\n errorMessage,\n checked = false,\n wrapperProps,\n helperProps,\n onChange,\n ...rest\n}: Props) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId,\n });\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent) => {\n if (disabled) {\n return;\n }\n /** We have to clone the native event we got here and change the \"target\" property to the value. Otherwise, this regular event has \"on\" as it's event.target.value, which is useless. */\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: { value: value },\n });\n\n onChange && onChange(clonedEvent);\n };\n\n /** Default return value is the default radio */\n return (\n <FormSelectorWrapper\n {...wrapperProps}\n className={`${classes['radio-wrapper']} ${className ?? ''}`}\n containerProps={{ className: classes['radio-container'] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n >\n <input\n {...rest}\n disabled={disabled}\n tabIndex={0}\n className={`${classes['native-input']} ${error ? classes['error'] : ''}`}\n onChange={onChangeHandler}\n checked={checked}\n aria-invalid={error ? true : false}\n aria-checked={checked}\n aria-describedby={describedBy}\n name={name}\n value={value}\n id={`${identifier}-radio`}\n type=\"radio\"\n />\n\n {checked && (\n <Icon\n className={`${classes['input']} ${disabled ? classes['disabled'] : ''}`}\n icon={Icons.Radio}\n />\n )}\n {!checked && (\n <Icon\n className={`${classes['input']} ${disabled ? classes['disabled'] : ''}`}\n icon={Icons.Circle}\n />\n )}\n\n <label onClick={onChangeHandler} htmlFor={`${identifier}-radio`}>\n {children}\n </label>\n </FormSelectorWrapper>\n );\n};\n","import React, { ReactElement, ReactNode, useEffect } from 'react';\nimport { Icon, Icons } from '../../Icon/Icon';\nimport { Props as FormHelperTextProps } from '../FormHelperText/FormHelperText';\nimport classes from './Checkbox.module.scss';\nimport { useFormSelector } from '../../hooks/useFormSelector';\nimport { FormSelector } from '../form.interfaces';\nimport { HTMLProps } from '../../interfaces';\nimport { FormSelectorWrapper } from '../FormSelectorWrapper/FormSelectorWrapper';\n\nconst isToggle = (children: ReactNode) => (children as ReactElement)?.props?.['data-toggle'];\n\nexport interface CheckboxProps extends FormSelector<HTMLInputElement> {\n children: ReactNode;\n label?: string;\n indeterminate?: boolean;\n helperProps?: FormHelperTextProps;\n wrapperProps?: HTMLProps<HTMLDivElement>;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const Checkbox = ({\n children,\n name,\n helperText,\n helperProps,\n indeterminate,\n parentErrorId,\n errorMessage,\n disabled,\n label,\n parentHelperId,\n className,\n error,\n checked = false,\n wrapperProps,\n onChange,\n ...rest\n}: CheckboxProps) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId,\n });\n\n useEffect(() => {\n if (!name) {\n console.error(\"Please pass a 'name' prop to your <Checkbox> component.\");\n }\n\n if (typeof children === 'object' && !isToggle(children) && indeterminate === undefined) {\n throw new Error(\n 'If you have nested checkboxes you have to manage the indeterminate state by passing a boolean to the `indeterminate` prop.'\n );\n }\n }, []);\n\n const determineLabel = () => {\n if (label) {\n return label;\n } else if (children === undefined) {\n throw new Error(\n 'Please make sure to pass either a string or more Checkbox components as a child of your Checkbox component.'\n );\n }\n\n if (typeof children === 'string') {\n return children;\n }\n\n throw new Error(\n 'If you pass Checkboxes as a child component (to create nested checkbox tree) you need to pass a label to the parent checkbox.'\n );\n };\n\n const renderNestedCheckboxes = () => (\n <ul className={classes['checkbox-list']}>\n {React.Children.map(children as ReactNode[], (child) => {\n return (\n <li>\n <Checkbox\n {...(child as ReactElement).props}\n parentHelperId={parentHelperId}\n parentErrorId={parentErrorId}\n error={error}\n disabled={disabled ? disabled : (child as CheckboxProps).disabled}\n >\n {(child as ReactElement).props.children}\n </Checkbox>\n </li>\n );\n })}\n </ul>\n );\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n onChange && onChange(event);\n };\n\n const renderToggle = () => React.Children.toArray(children).filter(isToggle);\n\n const iconClasses = [classes['input'], disabled ? classes['disabled'] : ''];\n\n /** Default return value is the default checkbox */\n return (\n <FormSelectorWrapper\n {...wrapperProps}\n className={`${classes['checkbox-wrapper']} ${className ? className : ''}`}\n containerProps={{ className: classes['checkbox-container'] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n nestedChildren={\n typeof children === 'object' && !isToggle(children) && renderNestedCheckboxes()\n }\n >\n <input\n {...rest}\n disabled={disabled}\n className={`${classes['native-input']} ${error ? classes['error'] : ''}`}\n checked={checked}\n onChange={onChangeHandler}\n aria-invalid={error as boolean}\n aria-checked={indeterminate ? 'mixed' : checked}\n aria-describedby={describedBy}\n id={`${identifier}-checkbox`}\n name={name}\n type=\"checkbox\"\n />\n {renderToggle()}\n\n {indeterminate && <Icon className={iconClasses.join(' ')} icon={Icons.MinusSquare} />}\n {checked && !indeterminate && (\n <Icon className={iconClasses.join(' ')} icon={Icons.CheckmarkSquare} />\n )}\n {!checked && !indeterminate && <Icon className={iconClasses.join(' ')} icon={Icons.Square} />}\n <label htmlFor={`${identifier}-checkbox`}>{determineLabel()}</label>\n </FormSelectorWrapper>\n );\n};\n","import React, { Fragment } from 'react';\nimport classes from './BaseWizardSteps.module.scss';\nimport readyclasses from '../../readyclasses.module.scss';\nimport { Icon, Icons } from '../../Icon/Icon';\n\ntype StepState = 'finished' | 'current' | 'future';\n\nexport interface Step {\n label: string;\n disabled?: boolean;\n}\n\nexport interface Props extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {\n steps: Step[];\n currentStepNo: number;\n onClick?: (stepNo: number) => void;\n futureStepsClickable?: boolean;\n stepScreenReaderLabel: string;\n}\n\nexport const BaseWizardSteps = ({\n steps,\n currentStepNo,\n onClick,\n futureStepsClickable = false,\n stepScreenReaderLabel,\n ...restProps\n}: Props) => {\n const getStepState = (stepNo: number): StepState => {\n if (currentStepNo === stepNo) {\n return 'current';\n } else if (stepNo < currentStepNo) {\n return 'finished';\n }\n return 'future';\n };\n\n const getStepContent = (stepState: StepState, index: number, disabled?: boolean) => {\n const stepNumberString = String(index + 1);\n if (stepState === 'finished') {\n return disabled ? null : <Icon className={classes['checkmark']} icon={Icons.Checkmark} />;\n } else {\n return (\n <Fragment>\n <span className={readyclasses['sr-only']}>{stepScreenReaderLabel} </span>\n {stepNumberString}\n </Fragment>\n );\n }\n };\n\n const generatedSteps = steps.map((step, index) => {\n const stepState = getStepState(index);\n const disabledStyleClassName = step.disabled ? classes['disabled'] : '';\n const clickableClassName = futureStepsClickable ? classes['clickable'] : '';\n\n return (\n <button\n key={step.label.toLowerCase().replace(/\\s/, '-')}\n disabled={\n step.disabled ||\n (stepState === 'future' && !futureStepsClickable) ||\n stepState === 'current'\n }\n aria-current={stepState === 'current' ? 'step' : undefined}\n onClick={() => onClick && onClick(index)}\n className={`${classes['wizard-element']} ${classes[stepState]} ${clickableClassName} ${disabledStyleClassName}`}\n >\n <div className={classes['number-wrapper']}>\n <span className={classes['number']}>\n {getStepContent(stepState, index, step.disabled)}\n </span>\n </div>\n <div className={classes['two-line-text-overflow']}>\n <span className={classes['label']}>{step.label}</span>\n </div>\n </button>\n );\n });\n\n return (\n <div {...restProps} className={classes['wizard']}>\n {generatedSteps}\n </div>\n );\n};\n","import { Reducer } from 'react';\nimport { Step } from './BaseWizardSteps/BaseWizardSteps';\nimport { WizardMode } from './Wizard';\n\ntype WizardStateType = {\n steps: Step[];\n currentStepNo: number;\n mode: WizardMode;\n stepScreenReaderLabel: string;\n};\n\ninterface SetWizardStateAction {\n type: 'SET_STATE';\n payload: {\n steps: Step[];\n mode: WizardMode;\n stepScreenReaderLabel: string;\n };\n}\n\ninterface ChangeCurrentStepNoAction {\n type: 'CHANGE_CURRENT_STEP_NO';\n payload: number;\n}\n\nconst setWizardState = (\n steps: Step[],\n mode: WizardMode,\n stepScreenReaderLabel: string\n): SetWizardStateAction => {\n return { type: 'SET_STATE', payload: { steps, mode, stepScreenReaderLabel } };\n};\n\nconst changeCurrentStepNo = (currentStepNo: number): ChangeCurrentStepNoAction => {\n return { type: 'CHANGE_CURRENT_STEP_NO', payload: currentStepNo };\n};\n\ntype WizardActions = SetWizardStateAction | ChangeCurrentStepNoAction;\n\nconst reducer: Reducer<WizardStateType, WizardActions> = (state, action) => {\n switch (action.type) {\n case 'SET_STATE':\n return { ...state, ...action.payload };\n case 'CHANGE_CURRENT_STEP_NO':\n return { ...state, currentStepNo: action.payload };\n default:\n return state;\n }\n};\n\nexport { setWizardState, changeCurrentStepNo, reducer, WizardActions, WizardStateType };\n","import React, { createContext, Dispatch, useReducer } from 'react';\nimport { WizardActions, WizardStateType, reducer } from './wizardStateReducer';\n\nconst WizardStateContext = createContext<{\n state: WizardStateType;\n dispatch: Dispatch<WizardActions>;\n}>({\n state: {} as WizardStateType,\n dispatch: () => null,\n});\n\nexport interface Props {\n initialState: WizardStateType;\n children?: React.ReactNode;\n}\n\nconst WizardStateProvider = ({ children, initialState }: Props) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n return (\n <WizardStateContext.Provider value={{ state, dispatch }}>\n {children}\n </WizardStateContext.Provider>\n );\n};\n\nexport { WizardStateProvider, WizardStateContext };\n","import React, { Fragment, useContext, useMemo } from 'react';\nimport { Button } from '../../Button/Button';\nimport { Step } from '../BaseWizardSteps/BaseWizardSteps';\nimport { WizardMode } from '../Wizard';\nimport { WizardStateContext } from '../WizardStateProvider';\nimport { changeCurrentStepNo } from '../wizardStateReducer';\n\nexport interface Props extends React.HTMLProps<HTMLDivElement> {\n cancelButtonLabel: string;\n previousButtonLabel: string;\n nextButtonLabel: string;\n saveAndCloseButtonLabel: string;\n onCancel: () => void;\n onNext: (currentStepNo: number) => boolean;\n onPrevious?: () => void;\n onSaveAndClose: (currentStepNo: number) => void;\n}\n\nconst calculateNextStepNo = (steps: Step[], currentStepNo: number) => () =>\n steps.findIndex((step, stepNo) => stepNo > currentStepNo && !step.disabled);\n\nconst calculatePrevStepNo = (steps: Step[], currentStepNo: number) => () => {\n const reversedCurrentStepNo = steps.length - 1 - currentStepNo;\n const reversedPrevStepNo = [...steps]\n .reverse()\n .findIndex((step, stepNo) => stepNo > reversedCurrentStepNo && !step.disabled);\n if (reversedPrevStepNo > 0) {\n return steps.length - 1 - reversedPrevStepNo;\n }\n return -1;\n};\n\nconst useNextStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculateNextStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nconst usePreviousStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculatePrevStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nexport const WizardActions = ({\n onCancel,\n onNext,\n onPrevious,\n onSaveAndClose,\n cancelButtonLabel,\n previousButtonLabel,\n nextButtonLabel,\n saveAndCloseButtonLabel,\n}: Props) => {\n const {\n state: { mode, steps, currentStepNo },\n dispatch,\n } = useContext(WizardStateContext);\n const nextStepNo = useNextStepNo(mode, currentStepNo, steps);\n const hasNextStep = nextStepNo !== -1;\n const previousStepNo = usePreviousStepNo(mode, currentStepNo, steps);\n const hasPreviousStep = previousStepNo !== -1;\n const isLastStepOrEditMode = !hasNextStep || mode === 'edit';\n\n const changeStepNo = (direction: 'forward' | 'backward') => {\n if (direction === 'forward') {\n hasNextStep && dispatch(changeCurrentStepNo(nextStepNo));\n } else {\n hasPreviousStep && dispatch(changeCurrentStepNo(previousStepNo));\n }\n };\n\n const onNextWrapper = () => {\n onNext(currentStepNo) && changeStepNo('forward');\n };\n\n const onPreviousWrapper = () => {\n onPrevious && onPrevious();\n changeStepNo('backward');\n };\n\n const onSaveAndCloseWrapper = () => {\n onSaveAndClose(currentStepNo);\n };\n\n return (\n <Fragment>\n <Button variant=\"text\" onClick={onCancel}>\n {cancelButtonLabel}\n </Button>\n {hasPreviousStep && (\n <Button variant=\"outline\" onClick={onPreviousWrapper}>\n {previousButtonLabel}\n </Button>\n )}\n {hasNextStep && (\n <Button variant={mode === 'edit' ? 'outline' : 'fill'} onClick={onNextWrapper}>\n {nextButtonLabel}\n </Button>\n )}\n {isLastStepOrEditMode && (\n <Button onClick={onSaveAndCloseWrapper}>{saveAndCloseButtonLabel}</Button>\n )}\n </Fragment>\n );\n};\n","import React, { useContext } from 'react';\nimport { WizardStateContext } from '../WizardStateProvider';\nimport { BaseWizardSteps } from '../BaseWizardSteps/BaseWizardSteps';\nimport { changeCurrentStepNo } from '../wizardStateReducer';\n\nexport interface Props extends Omit<React.HTMLProps<HTMLDivElement>, 'onClick'> {\n onStepClick: (currentStepNo: number, selectedStepNo: number) => boolean;\n}\n\nexport const WizardSteps = ({ onStepClick, ...restProps }: Props) => {\n const {\n state: { currentStepNo, mode, stepScreenReaderLabel, steps },\n dispatch,\n } = useContext(WizardStateContext);\n\n const onClick = (selectedStepNo: number) => {\n onStepClick(currentStepNo, selectedStepNo) && dispatch(changeCurrentStepNo(selectedStepNo));\n };\n\n return (\n <BaseWizardSteps\n {...restProps}\n onClick={onClick}\n steps={steps}\n currentStepNo={currentStepNo}\n stepScreenReaderLabel={stepScreenReaderLabel}\n futureStepsClickable={mode === 'edit'}\n />\n );\n};\n","import React, { Fragment, useContext, useEffect } from 'react';\nimport { Step } from './BaseWizardSteps/BaseWizardSteps';\nimport { WizardStateContext, WizardStateProvider } from './WizardStateProvider';\nimport { setWizardState } from './wizardStateReducer';\n\nexport type WizardMode = 'add' | 'edit';\n\nexport interface Props {\n steps: Step[];\n mode: WizardMode;\n initialStepNo?: number;\n onStepChange: (stepNo: number) => void;\n stepScreenReaderLabel: string;\n children: React.ReactNode;\n}\n\nconst useSetWizardState = (steps: Step[], mode: WizardMode, stepScreenReaderLabel: string) => {\n const { dispatch } = useContext(WizardStateContext);\n\n useEffect(() => {\n dispatch(setWizardState(steps, mode, stepScreenReaderLabel));\n }, [steps, mode, stepScreenReaderLabel]);\n};\n\nconst useStepChanging = (onStepChange: (stepNo: number) => void) => {\n const {\n state: { currentStepNo },\n } = useContext(WizardStateContext);\n\n useEffect(() => {\n onStepChange(currentStepNo);\n }, [currentStepNo]);\n};\n\nconst WizardContent = ({ steps, mode, stepScreenReaderLabel, onStepChange, children }: Props) => {\n useSetWizardState(steps, mode, stepScreenReaderLabel);\n useStepChanging(onStepChange);\n\n return <Fragment>{children}</Fragment>;\n};\n\nexport const Wizard = (props: Props) => {\n const { steps, initialStepNo: currentStepNo = 0, mode, stepScreenReaderLabel } = props;\n return (\n <WizardStateProvider initialState={{ steps, currentStepNo, mode, stepScreenReaderLabel }}>\n <WizardContent {...props} />\n </WizardStateProvider>\n );\n};\n"],"names":["BaseStyling","children","properties","defaultProperties","colorPrimary","colorSecondary","colorTertiary","defaultLineHeight","buttonBorderRadius","buttonBorderWidth","buttonFontSize","buttonBorderStyle","buttonFillTextColor","buttonFillBackgroundColor","buttonOutlineHoverTextColor","inputBorderColor","inputBorderRadius","inputBorderWidth","inputBorderStyle","modalShadowColor","modalBackgroundColor","modalHeaderBackgroundColor","snackbarTextColor","snackbarInfoBackgroundColor","snackbarSuccessBackgroundColor","snackbarErrorBackgroundColor","snackbarBorderRadius","success","error","disabled","greyedOut","warning","fontFamily","fontFamilyCode","fontSize","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontSizeSub","fontSizeCode","useState","isLoading","setIsLoading","setCSSProperties","CSSPropertiesObject","Object","entries","key","value","formattedPropertyName","replaceAll","val","toLowerCase","document","documentElement","style","setProperty","useEffect","keys","length","mergedState","React","Fragment","defaultFactor","defaultUnit","spacingNumberRegex","useSpacing","spacingProps","reduce","prev","spacing","multiplier","matches","String","matchAll","cssSpacingValue","Array","from","map","multiplierValue","Number","join","validVariants","Typography","variant","tag","className","rest","includes","Error","styleWithSpacing","TagName","classes","BaseButton","forwardRef","ref","type","validTypes","button","Button","color","startIcon","endIcon","additionalClasses","push","Link","to","component","determineTarget","target","classNames","createElement","download","rel","undefined","href","IconButton","iconSize","title","console","readyclasses","Icons","Icon","icon","size","Component","labelId","id","descriptionId","SCROLL_PROPERTY_NAME","SCROLL_PROPERTY_VALUE","useSetBodyScroll","open","hideBodyScroll","body","showBodyScroll","allModalsClosed","querySelectorAll","removeProperty","BaseModal","onClose","containerClassName","labelledby","describedby","disableEscapeKeyDown","disableBackdrop","zIndex","domRoot","restProps","handleEscKeyPress","event","stopPropagation","handleBackdropClick","createPortal","role","tabIndex","onKeyDown","onClick","BaseModalContent","disableAutoFocus","contentRef","useRef","current","focus","BaseModalActions","DialogActions","align","DialogTitle","generateID","stringToWeaveIn","hashCharacters","i","stringCharacter","test","Math","floor","random","slice","Dialog","alignActions","primaryAction","secondaryAction","dialogId","primaryLabel","label","restOfPrimaryAction","PrimaryButton","TertiaryButton","secondaryLabel","restOfSecondaryAction","onHiddenInputKeyPress","autoFocus","position","width","height","opacity","maxLength","onKeyPress","BaseModalHeader","Times","DiscardChangesDialog","onKeepEditing","onDiscardChanges","discardChangesButtonLabel","keepEditingButtonLabel","contentLabel","titleLabel","margin","DiscardChangesModal","hasUnsavedChanges","headerProps","discardChangedDialogProps","openDiscardChangesDialog","setOpenDiscardChangesDialog","onCloseWrapper","onDialogKeepEditing","onDialogDiscardChanges","Modal","ModalHeader","defaultConfigObject","relativeElement","elementToBePositioned","transformOrigin","horizontal","vertical","placement","offset","top","right","bottom","left","usePosition","providedConfigObject","configObject","setPosition","_fixPossibleViewportOverflow","requestedReturnValue","elDimensions","returnValue","window","innerWidth","innerHeight","_applyOffsetToPlacementValue","_calculateInitialPlacementValue","relEl","placementOriginDefinition","_determineCenteredPlacementOrigin","_calculatePlacementValue","valueWithOffset","valueCorrectionForViewportOverflow","_calculatePlacement","axis","placementValue","direction","oppositeDirection","prevState","calculatePosition","relativeElRect","getBoundingClientRect","elementToBePositionedDimensions","offsetHeight","offsetWidth","clonedRelEl","center","centerv","centerh","x","y","defaultPosition","Tooltip","identifier","visible","setVisible","escapePressHandler","addEventListener","removeEventListener","useLayoutEffect","renderChildren","isValidElement","cloneElement","onFocus","onBlur","wrapper","onMouseEnter","onMouseLeave","InfoCircle","tooltip","Tile","imageProps","enabled","loading","tileAction","tileDescriptionID","statusMessage","justifyContent","Checkmark","Forbidden","readyClasses","src","alt","Image","Tiles","Popover","show","anchorEl","elToBePositioned","popover","useBodyClick","checkFunction","callbackFunction","dependingStateVariable","bodyClickListener","ContextMenu","trigger","onShow","showContextMenu","setShowContextMenu","renderTrigger","menu","ContextMenuItem","Breadcrumbs","ariaLabel","items","Children","child","index","isLastElement","isArray","props","ChevronRight","SnackbarContext","createContext","enqueueSnackbar","enqueueSuccessSnackbar","enqueueErrorSnackbar","SnackbarContextProvider","initialState","Provider","SnackbarContainer","useAnimation","callback","animatedObjectRef","animationStarted","setAnimationStarted","onAnimationEnd","startAnimation","textColor","SnackbarItem","duration","content","actions","closeButtonTitle","timerHandler","setTimeout","clearTimeout","getVariantIcon","TimesCircleAlt","CheckmarkCircleBreakout","actionButtons","actionProp","e","SnackbarProvider","autoHideDuration","stackSize","snackbars","setSnackbars","addSnackbar","item","getDuration","hasError","hasContentOrActions","options","onItemClosed","filter","snackbarList","snackbarPortal","useSnackbar","useContext","Form","form","Fieldset","legend","legendStyle","hideLegend","noBackground","background","noPadding","required","backgroundColor","fieldset","FormControl","grid","childElement","column","FormHelperText","FormGroup","errorMessage","errorId","errorMessageIcon","errorMessageIconPosition","helperText","helperId","helperProps","helperIndent","marginLeft","message","Label","hidden","dateTypes","Input","name","wrapperProps","labeledBy","inputClassNames","iconClassNames","Warning","useScroll","scrollListener","Select","placeholder","describedBy","searchPlaceholder","onChange","onClear","expanded","setExpanded","setFilter","display","setDisplay","listPosition","setListPosition","containerReference","optionListReference","closest","rePositionList","windowHeight","containerTopWithListHeight","onOptionChangeHandler","newValue","nativeEvent","clonedEvent","constructor","defineProperty","writable","currentTarget","innerText","renderOptions","onOptionSelect","selected","renderSearch","filterResults","statusIcon","TimesThin","select","TriangleDown","Option","showOption","setShowOption","onSelectHandler","match","Textarea","rows","wrapperClassName","errorClassName","useWrapper","floatingLabelActive","setFloatingLabelActive","hasFocus","setHasFocus","Wrapper","floatingLabel","labelProps","innerClassName","labelClasses","htmlFor","CheckboxWrapper","fieldsetProps","parentErrorId","parentHelperId","InputWrapper","inputProps","RadioWrapper","checked","SelectWrapper","selectProps","TextareaWrapper","textareaProps","setFocus","hover","setHover","useFormSelector","setDescribedBy","FormSelectorWrapper","nestedChildren","containerProps","Radio","onChangeHandler","Circle","isToggle","Checkbox","indeterminate","determineLabel","renderNestedCheckboxes","renderToggle","toArray","iconClasses","MinusSquare","CheckmarkSquare","Square","BaseWizardSteps","steps","currentStepNo","futureStepsClickable","stepScreenReaderLabel","getStepState","stepNo","getStepContent","stepState","stepNumberString","generatedSteps","step","disabledStyleClassName","clickableClassName","replace","setWizardState","mode","payload","changeCurrentStepNo","reducer","state","action","WizardStateContext","dispatch","WizardStateProvider","useReducer","calculateNextStepNo","findIndex","calculatePrevStepNo","reversedCurrentStepNo","reversedPrevStepNo","reverse","useNextStepNo","useMemo","usePreviousStepNo","WizardActions","onCancel","onNext","onPrevious","onSaveAndClose","cancelButtonLabel","previousButtonLabel","nextButtonLabel","saveAndCloseButtonLabel","nextStepNo","hasNextStep","previousStepNo","hasPreviousStep","isLastStepOrEditMode","changeStepNo","onNextWrapper","onPreviousWrapper","onSaveAndCloseWrapper","WizardSteps","onStepClick","selectedStepNo","useSetWizardState","useStepChanging","onStepChange","WizardContent","Wizard","initialStepNo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDaA,WAAW,GAAG,SAAdA,WAAc;MAAGC,gBAAAA;6BAAUC;MAAAA,0CAAa;AACnD,MAAMC,iBAAiB,GAAkB;AACvCC,IAAAA,YAAY,EAAE,SADyB;AAEvCC,IAAAA,cAAc,EAAE,SAFuB;AAGvCC,IAAAA,aAAa,EAAE,SAHwB;AAIvCC,IAAAA,iBAAiB,EAAE,MAJoB;AAKvCC,IAAAA,kBAAkB,EAAE,MALmB;AAMvCC,IAAAA,iBAAiB,EAAE,KANoB;AAOvCC,IAAAA,cAAc,EAAE,MAPuB;AAQvCC,IAAAA,iBAAiB,EAAE,OARoB;AASvCC,IAAAA,mBAAmB,EAAE,MATkB;AAUvCC,IAAAA,yBAAyB,EAAE,MAVY;AAWvCC,IAAAA,2BAA2B,EAAE,MAXU;AAYvCC,IAAAA,gBAAgB,EAAE,SAZqB;AAavCC,IAAAA,iBAAiB,EAAE,KAboB;AAcvCC,IAAAA,gBAAgB,EAAE,KAdqB;AAevCC,IAAAA,gBAAgB,EAAE,OAfqB;AAgBvCC,IAAAA,gBAAgB,EAAE,qBAhBqB;AAiBvCC,IAAAA,oBAAoB,EAAE,SAjBiB;AAkBvCC,IAAAA,0BAA0B,EAAE,MAlBW;AAmBvCC,IAAAA,iBAAiB,EAAE,MAnBoB;AAoBvCC,IAAAA,2BAA2B,EAAE,SApBU;AAqBvCC,IAAAA,8BAA8B,EAAE,SArBO;AAsBvCC,IAAAA,4BAA4B,EAAE,SAtBS;AAuBvCC,IAAAA,oBAAoB,EAAE,KAvBiB;AAwBvC,eAAS,SAxB8B;AAyBvCC,IAAAA,OAAO,EAAE,SAzB8B;AA0BvCC,IAAAA,KAAK,EAAE,SA1BgC;AA2BvCC,IAAAA,QAAQ,EAAE,SA3B6B;AA4BvCC,IAAAA,SAAS,EAAE,SA5B4B;AA6BvCC,IAAAA,OAAO,EAAE,SA7B8B;AA8BvCC,IAAAA,UAAU,EAAE,+BA9B2B;AA+BvCC,IAAAA,cAAc,EAAE,4BA/BuB;AAgCvCC,IAAAA,QAAQ,EAAE,MAhC6B;AAiCvCC,IAAAA,UAAU,EAAE,QAjC2B;AAkCvCC,IAAAA,UAAU,EAAE,UAlC2B;AAmCvCC,IAAAA,UAAU,EAAE,QAnC2B;AAoCvCC,IAAAA,UAAU,EAAE,SApC2B;AAqCvCC,IAAAA,WAAW,EAAE,QArC0B;AAsCvCC,IAAAA,YAAY,EAAE;AAtCyB,GAAzC;AAyCA;;AACA,kBAAkCC,QAAQ,CAAC,IAAD,CAA1C;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;AAEA;;;AACA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,mBAAD;AACvB,uCAA2BC,MAAM,CAACC,OAAP,CAAeF,mBAAf,CAA3B,qCAAgE;AAA3D;AAAA,UAAOG,GAAP;AAAA,UAAYC,KAAZ;AACH,UAAMC,qBAAqB,GAAGF,GAAG,CAACG,UAAJ,CAAe,UAAf,EAA2B,UAACC,GAAD;AAAA,qBAAaA,GAAG,CAACC,WAAJ,EAAb;AAAA,OAA3B,CAA9B;AACAC,MAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,QAAgDP,qBAAhD,EAAyED,KAAzE;AACD;AACF,GALD;AAOA;;;AACAS,EAAAA,SAAS,CAAC;AACR,QAAIZ,MAAM,CAACa,IAAP,CAAYzD,UAAZ,EAAwB0D,MAAxB,KAAmC,CAAvC,EAA0C;AACxC,UAAMC,WAAW,gBAAQ1D,iBAAR,EAA8BD,UAA9B,CAAjB;;AACA0C,MAAAA,gBAAgB,CAACiB,WAAD,CAAhB;AACD,KAHD,MAGO;AACLjB,MAAAA,gBAAgB,CAACzC,iBAAD,CAAhB;AACD;;AACDwC,IAAAA,YAAY,CAAC,KAAD,CAAZ;AACD,GARQ,EAQN,CAACzC,UAAD,CARM,CAAT;AAUA;;AACA,SAAO,CAACwC,SAAD,GAAaoB,mBAAA,CAACC,QAAD,MAAA,EAAW9D,QAAX,CAAb,GAA+C,IAAtD;AACD;;AClHD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;ACuBruB,IAAM+D,aAAa,GAAG,IAAtB;AACA,IAAMC,WAAW,GAAG,KAApB;AACA,IAAMC,kBAAkB,GAAG,eAA3B;AAEO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CACxBC,YADwB,EAExBZ,KAFwB;AAIxB,MAAIY,YAAJ,EAAkB;AAChB,WAAOtB,MAAM,CAACC,OAAP,CAAeqB,YAAf,EAA6BC,MAA7B,CAAmD,UAACC,IAAD;;;UAAQC;UAASC;AACzE,UAAMC,OAAO,GAAGC,MAAM,CAACF,UAAD,CAAN,CAAmBG,QAAnB,CAA4BT,kBAA5B,CAAhB;AACA,UAAMU,eAAe,GAAGC,KAAK,CAACC,IAAN,CAAWL,OAAX,EACrBM,GADqB,CACjB;AAAA,YAAEC,eAAF;AAAA,oBAA0BC,MAAM,CAACD,eAAD,CAAN,GAA0BhB,aAApD,GAAoEC,WAApE;AAAA,OADiB,EAErBiB,IAFqB,CAEhB,GAFgB,CAAxB;AAGA,0BAAYZ,IAAZ,6BAAmBC,OAAnB,IAA6BK,eAA7B;AACD,KANM,EAMJpB,KANI,WAMJA,KANI,GAMK,EANL,CAAP;AAOD;;AACD,SAAOA,KAAP;AACD,CAdM;;;ACvBP,IAAM2B,aAAa,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,MAAzB,EAAiC,WAAjC,EAA8C,UAA9C,EAA0D,MAA1D,CAAtB;IA2BaC,UAAU,GAAG,SAAbA,UAAa;MACxBnF,gBAAAA;MACAoF,eAAAA;MACAC,WAAAA;MACA9B,aAAAA;MACAe,eAAAA;4BACAgB;MAAAA,wCAAY;MACTC;;AAEH,MAAI,CAACL,aAAa,CAACM,QAAd,CAAuBJ,OAAvB,CAAL,EAAsC;AACpC,UAAM,IAAIK,KAAJ,2DACoDP,aADpD,uBACmFE,OADnF,CAAN;AAGD;;AAED,MAAMM,gBAAgB,GAAGxB,UAAU,CAACI,OAAD,EAAUf,KAAV,CAAnC;;AAEA,MAAI,CAAC8B,GAAL,EAAU;AACR,YAAQD,OAAR;AACE,WAAK,IAAL;AACA,WAAK,IAAL;AACA,WAAK,IAAL;AACA,WAAK,IAAL;AACA,WAAK,MAAL;AACEC,QAAAA,GAAG,GAAGD,OAAN;AACA;;AACF,WAAK,MAAL;AACEC,QAAAA,GAAG,GAAG,GAAN;AACA;;AACF,WAAK,WAAL;AACEA,QAAAA,GAAG,GAAG,GAAN;AACA;;AACF,WAAK,UAAL;AACEA,QAAAA,GAAG,GAAG,MAAN;AACA;;AACF;AACEA,QAAAA,GAAG,GAAG,KAAN;AACA;AAnBJ;AAqBD;;AAED,MAAIM,OAAO,GAAGN,GAAd;AAEA,SACExB,mBAAA,CAAC8B,OAAD,eACMJ,IADN;AAEEhC,IAAAA,KAAK,EAAEmC,gBAFT;AAGEJ,IAAAA,SAAS,EAAKM,gBAAO,CAAC,sBAAsBR,OAAvB,CAAZ,SAA+CE;AAH1D,MAKGtF,QALH,CADF;AASD;;;;;;;ACzEM,IAAM6F,UAAU,gBAAGhC,KAAK,CAACiC,UAAN,CACxB,gBAAoDC,GAApD;MAAG/F,gBAAAA;uBAAUgG;MAAAA,8BAAO;MAAUV,iBAAAA;MAAcC;;AAC1C,MAAMU,UAAU,GAAG,CAAC,QAAD,EAAW,QAAX,EAAqB,OAArB,CAAnB;AAEA,MAAI,CAACA,UAAU,CAACT,QAAX,CAAoBQ,IAApB,CAAL,EACE,MAAM,IAAIP,KAAJ,0FACmFO,IADnF,CAAN;AAIF,SACEnC,mBAAA,SAAA,eACM0B,IADN;AAEEQ,IAAAA,GAAG,EAAEA,GAFP;AAGEC,IAAAA,IAAI,EAAEA,IAHR;AAIEV,IAAAA,SAAS,EAAKM,gBAAO,CAACM,MAAb,UAAuBZ,SAAS,GAAGA,SAAH,GAAe,EAA/C;AAJX,MAMGtF,QANH,CADF;AAUD,CAnBuB,CAAnB;;;;;;;ICEMmG,MAAM,gBAAGtC,KAAK,CAACiC,UAAN,CACpB,gBAEEC,GAFF;MACI/F,gBAAAA;0BAAUoF;MAAAA,oCAAU;wBAAQgB;MAAAA,gCAAQ;4BAAWC;MAAAA,wCAAY;0BAAOC;MAAAA,oCAAU;MAAUf;;AAGxF,MAAMgB,iBAAiB,GAAG,EAA1B;;AAEA,MAAIF,SAAS,IAAIC,OAAjB,EAA0B;AACxBC,IAAAA,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAAC,UAAD,CAA9B;AACD;;AAED,MAAIS,SAAJ,EAAe;AACbE,IAAAA,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAAC,YAAD,CAA9B;AACD;;AAED,MAAIU,OAAJ,EAAa;AACXC,IAAAA,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAAC,UAAD,CAA9B;AACD;;AAED,SACE/B,mBAAA,CAACgC,UAAD,eACMN,IADN;AAEEQ,IAAAA,GAAG,EAAEA,GAFP;AAGET,IAAAA,SAAS,EAAKM,gBAAO,CAACQ,KAAD,CAAZ,SAAuBR,gBAAO,CAACR,OAAD,CAA9B,SAA2CmB,iBAAiB,CAACtB,IAAlB,CAAuB,GAAvB;AAHtD,MAKGoB,SAAS,IAAIxC,mBAAA,IAAA,MAAA,EAAIwC,SAAJ,QAAA,CALhB,EAMExC,mBAAA,OAAA,MAAA,EAAO7D,QAAP,CANF,EAOGsG,OAAO,IAAIzC,mBAAA,IAAA,MAAA,QAAA,EAAUyC,OAAV,CAPd,CADF;AAWD,CA9BmB;;;;;;;ICKTG,IAAI,gBAAG5C,KAAK,CAACiC,UAAN,CAClB,gBAWEC,GAXF;MAEI/F,gBAAAA;MACAsF,iBAAAA;2BACA1D;MAAAA,sCAAW;MACX8E,UAAAA;wBACAN;MAAAA,gCAAQ;uBACRJ;MAAAA,8BAAO;MACPW,iBAAAA;MACGpB;;AAIL,MAAMqB,eAAe,GAAG,SAAlBA,eAAkB;AACtB,QAAIrB,IAAI,CAACsB,MAAT,EAAiB;AACf,aAAOtB,IAAI,CAACsB,MAAZ;AACD;;AAED,QAAIb,IAAI,KAAK,UAAb,EAAyB;AACvB,aAAO,QAAP;AACD;;AAED,WAAO,EAAP;AACD,GAVD;;AAYA,MAAMc,UAAU,GAAG,CAAClB,gBAAO,CAAC,MAAD,CAAR,EAAkBA,gBAAO,CAACQ,KAAD,CAAzB,CAAnB;AACAxE,EAAAA,QAAQ,IAAIkF,UAAU,CAACN,IAAX,CAAgBZ,gBAAO,CAAC,UAAD,CAAvB,CAAZ;AACAN,EAAAA,SAAS,IAAIwB,UAAU,CAACN,IAAX,CAAgBlB,SAAhB,CAAb;;AAEA,MAAIqB,SAAJ,EAAe;AACb,WAAO9C,KAAK,CAACkD,aAAN,CAAoBJ,SAApB,eACFpB,IADE;AAELQ,MAAAA,GAAG,EAAEA,GAFA;AAGLW,MAAAA,EAAE,EAAEA,EAHC;AAILpB,MAAAA,SAAS,EAAEwB,UAAU,CAAC7B,IAAX,CAAgB,GAAhB,CAJN;AAKL,uBAAiBrD,QALZ;AAML2B,MAAAA,KAAK,eACAgC,IAAI,CAAChC,KADL,CANA;AASLvD,MAAAA,QAAQ,EAAEA;AATL,OAAP;AAWD;;AAED,SACE6D,mBAAA,IAAA,eACM0B,IADN;AAEEQ,IAAAA,GAAG,EAAEA,GAFP;AAGEiB,IAAAA,QAAQ,EAAEhB,IAAI,KAAK,UAHrB;AAIEiB,IAAAA,GAAG,EAAEjB,IAAI,KAAK,UAAT,GAAsB,oBAAtB,GAA6CkB,SAJpD;AAKEC,IAAAA,IAAI,EAAE,CAACvF,QAAD,GAAY8E,EAAZ,GAAiBQ,SALzB;AAME5B,IAAAA,SAAS,EAAEwB,UAAU,CAAC7B,IAAX,CAAgB,GAAhB,CANb;qBAOiBrD,QAPjB;AAQEiF,IAAAA,MAAM,EAAED,eAAe,EARzB;AASErD,IAAAA,KAAK,eACAgC,IAAI,CAAChC,KADL;AATP,MAaGvD,QAbH,CADF;AAiBD,CA7DiB;;;;;;;;;;;ICJPoH,UAAU,gBAAGvD,KAAK,CAACiC,UAAN,CACxB,gBAAkEC,GAAlE;MAAG/F,gBAAAA;wBAAUoG;MAAAA,gCAAQ;2BAAWiB;MAAAA,sCAAW;MAAKC,aAAAA;MAAU/B;;AACxD,MAAI,CAAC+B,KAAL,EAAY;AACVC,IAAAA,OAAO,CAAC5F,KAAR,CAAc,2EAAd;AACD;;AAED,SACEkC,mBAAA,CAACgC,UAAD,eACMN,IADN;AAEEQ,IAAAA,GAAG,EAAEA,GAFP;AAGET,IAAAA,SAAS,EAAKM,gBAAO,CAAC,aAAD,CAAZ,SAA+BA,gBAAO,CAACQ,KAAD,CAAtC,SAAiDR,gBAAO,CAAC,YAAYyB,QAAb;AAHnE,MAKExD,mBAAA,CAACC,QAAD,MAAA,EACG9D,QADH,EAEE6D,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEkC,gBAAY,CAAC,SAAD;GAA7B,EAA2CF,KAA3C,CAFF,CALF,CADF;AAYD,CAlBuB;;;;;;;ICTdG;;AAAZ,WAAYA;AACVA,EAAAA,aAAA,SAAA;AACAA,EAAAA,gBAAA,aAAA;AACAA,EAAAA,iBAAA,aAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,iBAAA,aAAA;AACAA,EAAAA,eAAA,WAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,wBAAA,qBAAA;AACAA,EAAAA,2BAAA,yBAAA;AACAA,EAAAA,gCAAA,8BAAA;AACAA,EAAAA,wBAAA,qBAAA;AACAA,EAAAA,kBAAA,eAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,qBAAA,kBAAA;AACAA,EAAAA,eAAA,WAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,iBAAA,aAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,YAAA,QAAA;AACAA,EAAAA,eAAA,WAAA;AACAA,EAAAA,kBAAA,eAAA;AACAA,EAAAA,uBAAA,qBAAA;AACAA,EAAAA,uBAAA,qBAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,mBAAA,eAAA;AACAA,EAAAA,uBAAA,oBAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,iBAAA,cAAA;AACAA,EAAAA,mBAAA,gBAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,wBAAA,qBAAA;AACAA,EAAAA,uBAAA,oBAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,gBAAA,YAAA;AACAA,EAAAA,eAAA,WAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,eAAA,WAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,gBAAA,aAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,oBAAA,iBAAA;AACAA,EAAAA,uBAAA,qBAAA;AACAA,EAAAA,kBAAA,eAAA;AACAA,EAAAA,cAAA,UAAA;AACAA,EAAAA,qBAAA,kBAAA;AACAA,EAAAA,2BAAA,yBAAA;AACAA,EAAAA,qBAAA,kBAAA;AACAA,EAAAA,sBAAA,mBAAA;AACAA,EAAAA,mBAAA,gBAAA;AACAA,EAAAA,aAAA,SAAA;AACAA,EAAAA,gBAAA,YAAA;AACD,CA/DD,EAAYA,KAAK,KAALA,KAAK,KAAA,CAAjB;;IA0EaC,IAAI,gBAAG7D,KAAK,CAACiC,UAAN,CAClB,gBAAwEC,GAAxE;MAAG4B,YAAAA;MAAMvB,aAAAA;MAAOd,iBAAAA;MAAW/B,aAAAA;MAAOqE,YAAAA;sBAAMvC;MAAAA,4BAAM;MAAWE;;AACvD,MAAMsC,SAAS,GAAGxC,GAAlB;AAEA,SACExB,mBAAA,CAACgE,SAAD,eACMtC,IADN;AAEEQ,IAAAA,GAAG,EAAEA,GAFP;AAGExC,IAAAA,KAAK;AAAI6C,MAAAA,KAAK,EAAEA;AAAX,OAAqB7C,KAArB;AAA4BtB,MAAAA,QAAQ,EAAE2F;AAAtC,MAHP;qBAAA;mBAKc,MALd;AAMEtC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,MAAD,CAAZ,SAAwBA,gBAAO,CAAC,UAAU+B,IAAX,CAA/B,UAAmDrC,SAAS,GAAGA,SAAH,GAAe,EAA3E;AANX,KADF;AAUD,CAdiB;;;;;;AC9Eb,IAAMwC,OAAO,GAAG,SAAVA,OAAU,CAACC,EAAD;AAAA,SAAmBA,EAAnB;AAAA,CAAhB;AACA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,EAAD;AAAA,SAAmBA,EAAnB;AAAA,CAAtB;;;ACKP,IAAME,oBAAoB,GAAG,UAA7B;AACA,IAAMC,qBAAqB,GAAG,QAA9B;AAiBO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,IAAD;AAC9B,MAAMC,cAAc,GAAG,SAAjBA,cAAiB;AACrBhF,IAAAA,QAAQ,CAACiF,IAAT,CAAc/E,KAAd,CAAoB0E,oBAApB,IAA4CC,qBAA5C;AACD,GAFD;;AAIA,MAAMK,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAMC,eAAe,GACnBnF,QAAQ,CAACoF,gBAAT,CAA0B,kCAA1B,EAA8D9E,MAA9D,KAAyE,CAD3E;;AAEA,QAAI6E,eAAJ,EAAqB;AACnBnF,MAAAA,QAAQ,CAACiF,IAAT,CAAc/E,KAAd,CAAoBmF,cAApB,CAAmCT,oBAAnC;AACD;AACF,GAND;;AAQAxE,EAAAA,SAAS,CAAC;AACR,QAAI2E,IAAJ,EAAU;AACRC,MAAAA,cAAc;AACf,KAFD,MAEO;AACLE,MAAAA,cAAc;AACf;AACF,GANQ,EAMN,CAACH,IAAD,CANM,CAAT;AAOD,CApBM;IAsBMO,SAAS,GAAG,SAAZA,SAAY;MACvBZ,UAAAA;MACA/H,gBAAAA;MACAoI,YAAAA;MACAQ,eAAAA;4BACAtD;MAAAA,wCAAY;mCACZuD;MAAAA,wDAAqB;MACrBC,kBAAAA;MACAC,mBAAAA;mCACAC;MAAAA,0DAAuB;kCACvBC;MAAAA,oDAAkB;MAClBC,cAAAA;0BACAC;MAAAA,oCAAU9F,QAAQ,CAACiF;MAChBc;;AAEHjB,EAAAA,gBAAgB,CAACC,IAAD,CAAhB;;AAEA,MAAMiB,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD;AACxB,QAAI,CAACN,oBAAD,IAAyBM,KAAK,CAACvG,GAAN,KAAc,QAA3C,EAAqD;AACnDuG,MAAAA,KAAK,CAACC,eAAN;AACAX,MAAAA,OAAO,IAAIA,OAAO,EAAlB;AACD;AACF,GALD;;AAOA,MAAMY,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,WAAM,CAACP,eAAD,IAAoBL,OAApB,IAA+BA,OAAO,EAA5C;AAAA,GAA5B;;AAEA,SAAOa,YAAY,CACjB5F,mBAAA,MAAA,eACMuF,SADN;AAEErB,IAAAA,EAAE,EAAEA,EAFN;AAGEzC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,OAAD,CAAZ,UAAyBwC,IAAI,IAAIxC,gBAAO,CAAC,SAAD,CAAxC,UAAuDN,SAHlE;AAIEoE,IAAAA,IAAI,EAAC,QAJP;kBAKa,MALb;uBAMmBZ,UAAU,IAAIhB,OAAO,CAACC,EAAD,CANxC;wBAOoBgB,WAAW,IAAIf,aAAa,CAACD,EAAD,CAPhD;mBAQe,CAACK,IARhB;AASEuB,IAAAA,QAAQ,EAAE,CAAC,CATb;mBAUe,CAACvB,IAVhB;AAWEwB,IAAAA,SAAS,EAAEP,iBAXb;AAYE9F,IAAAA,KAAK,EAAE;AAAE2F,MAAAA,MAAM,EAANA;AAAF;AAZT,MAcErF,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD;AAAciE,IAAAA,OAAO,EAAEL;GAA9C,CAdF,EAeGpB,IAAI,IACHvE,mBAAA,MAAA;AACEN,IAAAA,KAAK,EAAE;AAAE2F,MAAAA,MAAM,EAAEA,MAAM,IAAIA,MAAM,GAAG;AAA7B;AACP5D,IAAAA,SAAS,EAAKM,gBAAO,CAAC,WAAD,CAAZ,SAA6BiD;GAFxC,EAIG7I,QAJH,CAhBJ,CADiB,EAyBjBmJ,OAzBiB,CAAnB;AA2BD;;;;;;;ICzFYW,gBAAgB,GAAG,SAAnBA,gBAAmB;MAC9B/B,UAAAA;MACA/H,gBAAAA;4BACAsF;MAAAA,wCAAY;mCACZyE;MAAAA,sDAAmB;MAChBX;;AAEH,MAAMY,UAAU,GAAGC,MAAM,CAAiB,IAAjB,CAAzB;AACAxG,EAAAA,SAAS,CAAC;;;AACR,KAACsG,gBAAD,4BAAqBC,UAAU,CAACE,OAAhC,qBAAqB,oBAAoBC,KAApB,EAArB;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA;;AACA,SACEtG,mBAAA,MAAA,eACMuF,SADN;AAEErD,IAAAA,GAAG,EAAEiE,UAFP;AAGEjC,IAAAA,EAAE,EAAEA,EAHN;AAIEzC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,SAAD,CAAZ,SAA2BN,SAJtC;AAKEqE,IAAAA,QAAQ,EAAE,CAAC;AALb,MAOG3J,QAPH,CADF;AAWD;;;;;;;IC3BYoK,gBAAgB,GAAG,SAAnBA,gBAAmB;MAAGpK,gBAAAA;4BAAUsF;MAAAA,wCAAY;MAAO8D;;AAC9D,SACEvF,mBAAA,SAAA,eAAYuF,SAAZ;AAAuB9D,IAAAA,SAAS,EAAKM,gBAAO,CAAC,SAAD,CAAZ,SAA2BN;AAA3D,MACGtF,QADH,CADF;AAKD;;;;;;;ACFM,IAAMqK,aAAa,GAAG,SAAhBA,aAAgB;MAAGrK,gBAAAA;MAAUsK,aAAAA;MAAUlB;;AAClD,SACEvF,mBAAA,CAACuG,gBAAD,eACMhB,SADN;AAEE9D,IAAAA,SAAS,OAAKM,gBAAO,CAAC,SAAD,CAAZ,IAA0B0E,KAAK,KAAK,MAAV,GAAmB,MAAM1E,gBAAO,CAAC,MAAD,CAAhC,GAA2C,EAArE;AAFX,MAIG5F,QAJH,CADF;AAQD,CATM;;;;;;;;;;ACFA,IAAMuK,WAAW,GAAG,SAAdA,WAAc;MAAGxC,UAAAA;MAAIT,aAAAA;AAChC,SACEzD,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD;GAAvB,EACE/B,mBAAA,CAACsB,UAAD;AAAY4C,IAAAA,EAAE,EAAEA;AAAIzC,IAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;AAAWP,IAAAA,GAAG,EAAC;AAAKD,IAAAA,OAAO,EAAC;GAAlE,EACGkC,KADH,CADF,CADF;AAOD,CARM;;ACTA,IAAMkD,UAAU,GAAG,SAAbA,UAAa,CAAC7G,MAAD,EAAc8G,eAAd;MAAC9G;AAAAA,IAAAA,SAAS;;;AAClC;AACA,MAAI+G,cAAc,GAAG,CACnB,GADmB,EAEnB,GAFmB,EAGnB,GAHmB,EAInB,GAJmB,EAKnB,GALmB,EAMnB,GANmB,EAOnB,GAPmB,EAQnB,GARmB,EASnB,GATmB,EAUnB,GAVmB,EAWnB,GAXmB,EAYnB,GAZmB,EAanB,GAbmB,EAcnB,GAdmB,EAenB,GAfmB,EAgBnB,GAhBmB,EAiBnB,GAjBmB,EAkBnB,GAlBmB,EAmBnB,GAnBmB,EAoBnB,GApBmB,EAqBnB,GArBmB,EAsBnB,GAtBmB,EAuBnB,GAvBmB,EAwBnB,GAxBmB,EAyBnB,GAzBmB,EA0BnB,GA1BmB,EA2BnB,GA3BmB,EA4BnB,GA5BmB,EA6BnB,GA7BmB,EA8BnB,GA9BmB,EA+BnB,GA/BmB,EAgCnB,GAhCmB,EAiCnB,GAjCmB,EAkCnB,GAlCmB,EAmCnB,GAnCmB,EAoCnB,GApCmB,EAqCnB,GArCmB,EAsCnB,GAtCmB,EAuCnB,GAvCmB,EAwCnB,GAxCmB,EAyCnB,GAzCmB,EA0CnB,GA1CmB,EA2CnB,GA3CmB,EA4CnB,GA5CmB,EA6CnB,GA7CmB,EA8CnB,GA9CmB,EA+CnB,GA/CmB,EAgDnB,GAhDmB,EAiDnB,GAjDmB,EAkDnB,GAlDmB,EAmDnB,GAnDmB,EAoDnB,GApDmB,EAqDnB,GArDmB,EAsDnB,GAtDmB,EAuDnB,GAvDmB,EAwDnB,GAxDmB,EAyDnB,GAzDmB,EA0DnB,GA1DmB,EA2DnB,GA3DmB,EA4DnB,GA5DmB,EA6DnB,GA7DmB,EA8DnB,GA9DmB,CAArB;AAiEA,MAAI3C,EAAE,GAAG,EAAT;AAEA;;AACA,OAAK,IAAI4C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGhH,MAAJ,IAAcoE,EAAE,CAACpE,MAAH,GAAYA,MAA1C,EAAkDgH,CAAC,EAAnD,EAAuD;AACrD,QAAIC,eAAe,GACjBH,eAAe,IAAIA,eAAe,CAACE,CAAD,CAAf,KAAuBzD,SAA1C,IAAuD,CAAC,KAAK2D,IAAL,CAAUJ,eAAe,CAACE,CAAD,CAAzB,CAAxD,GACIF,eAAe,CAACE,CAAD,CADnB,GAEI,EAHN;AAIA5C,IAAAA,EAAE,GAAGA,EAAE,GAAG6C,eAAL,GAAuBF,cAAc,CAACI,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgBN,cAAc,CAAC/G,MAA1C,CAAD,CAA1C;AACD;;AAED,SAAOoE,EAAE,CAACkD,KAAH,CAAS,CAAT,EAAYtH,MAAZ,CAAP;AACD,CA/EM;;;;;IC4BMuH,MAAM,GAAG,SAATA,MAAS;MACpBnD,UAAAA;MACAK,YAAAA;MACApI,gBAAAA;MACAmL,oBAAAA;MACAvC,eAAAA;MACAtB,aAAAA;MACA8D,qBAAAA;MACAC,uBAAAA;MACAnC,cAAAA;mCACAF;MAAAA,0DAAuB;MACpBI;;AAEH,kBAAmB5G,QAAQ,CAACuF,EAAD,WAACA,EAAD,GAAOyC,UAAU,CAAC,EAAD,CAAjB,CAA3B;AAAA,MAAOc,QAAP;;AACA,MAAeC,YAAf,GAAwDH,aAAxD,CAAQI,KAAR;AAAA,MAAgCC,mBAAhC,iCAAwDL,aAAxD;;AACA,MAAMM,aAAa,GACjB7H,mBAAA,CAACsC,MAAD;AAAQpD,IAAAA,GAAG,EAAC;AAAZ,KAA0B0I,mBAA1B,GACGF,YADH,CADF;;AAKA,MAAMI,cAAc,GAClBN,eAAe,IACd;AACC,QAAeO,cAAf,GAA4DP,eAA5D,CAAQG,KAAR;AAAA,QAAkCK,qBAAlC,iCAA4DR,eAA5D;;AACA,WACExH,mBAAA,CAACsC,MAAD;AAAQpD,MAAAA,GAAG,EAAC,UAAZ;AAAuBqC,MAAAA,OAAO,EAAC;AAA/B,OAA0CyG,qBAA1C,GACGD,cADH,CADF;AAKD,GAPD,EAFF;;AAWA,MAAME,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACxC,KAAD;AAC5B;AACA,QAAIA,KAAK,CAACvG,GAAN,KAAc,OAAlB,EAA2B;AACzBqI,MAAAA,aAAa,CAACvB,OAAd;AACD;AACF,GALD;;AAOA,SACEhG,mBAAA,CAAC8E,SAAD,eACMS,SADN;AAEErB,IAAAA,EAAE,EAAEuD,QAFN;AAGEhG,IAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD,CAHpB;AAIEiD,IAAAA,kBAAkB,EAAEjD,gBAAO,CAAC,WAAD,CAJ7B;AAKEwC,IAAAA,IAAI,EAAEA,IALR;AAMEa,IAAAA,eAAe,MANjB;AAOEL,IAAAA,OAAO,EAAEA,OAPX;AAQEM,IAAAA,MAAM,EAAEA,MARV;AASEF,IAAAA,oBAAoB,EAAEA;AATxB,MAWEnF,mBAAA,CAAC0G,WAAD;AAAaxC,IAAAA,EAAE,EAAED,OAAO,CAACwD,QAAD;AAAYhE,IAAAA,KAAK,EAAEA;GAA3C,CAXF,EAYEzD,mBAAA,CAACiG,gBAAD;AACE/B,IAAAA,EAAE,EAAEC,aAAa,CAACsD,QAAD;AACjBhG,IAAAA,SAAS,EAAEM,gBAAO,CAAC,SAAD;AAClBmE,IAAAA,gBAAgB;GAHlB,EAKG/J,QALH,CAZF,EAmBE6D,mBAAA,CAACwG,aAAD;AAAeC,IAAAA,KAAK,EAAEa;GAAtB,EACGA,YAAY,KAAK,MAAjB,GACG,CAACO,aAAD,EAAgBC,cAAhB,CADH,GAEG,CAACA,cAAD,EAAiBD,aAAjB,CAHN,CAnBF,EAwBE7H,mBAAA,QAAA;AACEkI,IAAAA,SAAS;mBACI;AACbxI,IAAAA,KAAK,EAAE;AACLyI,MAAAA,QAAQ,EAAE,UADL;AAELC,MAAAA,KAAK,EAAE,CAFF;AAGLC,MAAAA,MAAM,EAAE,CAHH;AAILC,MAAAA,OAAO,EAAE;AAJJ;AAMPC,IAAAA,SAAS,EAAE;AACXzC,IAAAA,QAAQ,EAAE,CAAC;AACX0C,IAAAA,UAAU,EAAEP;GAXd,CAxBF,CADF;AAwCD;;;;;;;IC7FYQ,eAAe,GAAG,SAAlBA,eAAkB;MAAGvE,UAAAA;MAAIT,aAAAA;MAAOtH,gBAAAA;MAAU4I,eAAAA;MAAYQ;;AACjE,SACEvF,mBAAA,MAAA,eAASuF,SAAT;AAAoB9D,IAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD;AAAtC,MACE/B,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD;GAAvB,EACE/B,mBAAA,CAACsB,UAAD;AAAY4C,IAAAA,EAAE,EAAEA;AAAIzC,IAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;AAAWP,IAAAA,GAAG,EAAC;AAAKD,IAAAA,OAAO,EAAC;GAAlE,EACGkC,KADH,CADF,EAIEzD,mBAAA,CAACuD,UAAD;AAAYyC,IAAAA,OAAO,EAAEjB;AAAStD,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD;AAAc0B,IAAAA,KAAK,EAAC;GAApE,EACEzD,mBAAA,CAAC6D,IAAD;AAAMC,IAAAA,IAAI,EAAEF,KAAK,CAAC8E;GAAlB,CADF,CAJF,CADF,EASGvM,QATH,CADF;AAaD;;;ACZM,IAAMwM,oBAAoB,GAAG,SAAvBA,oBAAuB;MAClCpE,YAAAA;MACAqE,qBAAAA;MACAC,wBAAAA;MACAC,iCAAAA;MACAC,8BAAAA;MACAC,oBAAAA;MACAC,kBAAAA;MACGvH;;AAEH,SACE1B,mBAAA,CAACqH,MAAD,eACM3F,IADN;AAEE6C,IAAAA,IAAI,EAAEA,IAFR;AAGE+C,IAAAA,YAAY,EAAC,MAHf;AAIE7D,IAAAA,KAAK,EAAEwF,UAJT;AAKElE,IAAAA,OAAO,EAAE6D,aALX;AAMErB,IAAAA,aAAa,EAAE;AACbI,MAAAA,KAAK,EAAEmB,yBADM;AAEb9C,MAAAA,OAAO,EAAE6C;AAFI,KANjB;AAUErB,IAAAA,eAAe,EAAE;AACfG,MAAAA,KAAK,EAAEoB,sBADQ;AAEf/C,MAAAA,OAAO,EAAE4C;AAFM,KAVnB;AAcEzD,IAAAA,oBAAoB,EAAE;AAdxB,MAgBEnF,mBAAA,CAACsB,UAAD;AAAYC,IAAAA,OAAO,EAAC;AAAOd,IAAAA,OAAO,EAAE;AAAEyI,MAAAA,MAAM,EAAE;AAAV;GAApC,EACGF,YADH,CAhBF,CADF;AAsBD,CAhCM;;;ICGMG,mBAAmB,GAAG,SAAtBA,mBAAsB;MACjCjF,UAAAA;MACAa,eAAAA;MACA5I,gBAAAA;MACAiN,yBAAAA;MACAC,mBAAAA;MACAC,iCAAAA;MACG5H;;AAEH,kBAAgE/C,QAAQ,CAAC,KAAD,CAAxE;AAAA,MAAO4K,wBAAP;AAAA,MAAiCC,2BAAjC;;AAEA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WACrBL,iBAAiB,KAAKI,2BAA2B,CAAC,IAAD,CAAhC,GAAyCzE,OAAO,EAD5C;AAAA,GAAvB;;AAGA,MAAM2E,mBAAmB,GAAG,SAAtBA,mBAAsB;AAC1BF,IAAAA,2BAA2B,CAAC,KAAD,CAA3B;AACD,GAFD;;AAIA,MAAMG,sBAAsB,GAAG,SAAzBA,sBAAyB;AAC7BH,IAAAA,2BAA2B,CAAC,KAAD,CAA3B;AACAzE,IAAAA,OAAO;AACR,GAHD;;AAKA,SACE/E,mBAAA,CAACC,QAAD,MAAA,EACED,mBAAA,CAAC4J,SAAD;AAAO1F,IAAAA,EAAE,EAAEA,EAAX;AAAea,IAAAA,OAAO,EAAE0E;AAAxB,KAA4C/H,IAA5C,GACE1B,mBAAA,CAAC6J,eAAD,eAAiBR,WAAjB;AAA8BnF,IAAAA,EAAE,EAAKA,EAAL,WAAhC;AAAiDa,IAAAA,OAAO,EAAE0E;AAA1D,KADF,EAEGtN,QAFH,CADF,EAKE6D,mBAAA,CAAC2I,oBAAD,eACMW,yBADN;AAEE/E,IAAAA,IAAI,EAAEgF,wBAFR;AAGEX,IAAAA,aAAa,EAAEc,mBAHjB;AAIEb,IAAAA,gBAAgB,EAAEc;AAJpB,KALF,CADF;AAcD;;;;;;ACCD,IAAMG,mBAAmB,GAAiB;AACxCC,EAAAA,eAAe,EAAE1G,SADuB;AAExC2G,EAAAA,qBAAqB,EAAE3G,SAFiB;AAGxC4G,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,MADG;AAEfC,IAAAA,QAAQ,EAAE;AAFK,GAHuB;AAOxCC,EAAAA,SAAS,EAAE;AACTF,IAAAA,UAAU,EAAE,MADH;AAETC,IAAAA,QAAQ,EAAE;AAFD,GAP6B;AAWxCE,EAAAA,MAAM,EAAE;AACNC,IAAAA,GAAG,EAAE,CADC;AAENC,IAAAA,KAAK,EAAE,CAFD;AAGNC,IAAAA,MAAM,EAAE,CAHF;AAINC,IAAAA,IAAI,EAAE;AAJA;AAXgC,CAA1C;AAmBO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,oBAAD;MAACA;AAAAA,IAAAA,uBAAqCb;;;AAC/D,MAAMc,YAAY,gBAAQd,mBAAR,EAAgCa,oBAAhC,CAAlB;;AAEA,MAAIC,YAAY,CAACX,eAAb,KAAiC5G,SAArC,EAAgD;AAC9CuH,IAAAA,YAAY,CAACX,eAAb,GAA+BH,mBAAmB,CAACG,eAAnD;AACD;;AAED,MAAIW,YAAY,CAACR,SAAb,KAA2B/G,SAA/B,EAA0C;AACxCuH,IAAAA,YAAY,CAACR,SAAb,GAAyBN,mBAAmB,CAACM,SAA7C;AACD;;AAED,MAAIQ,YAAY,CAACP,MAAb,KAAwBhH,SAA5B,EAAuC;AACrCuH,IAAAA,YAAY,CAACP,MAAb,GAAsBP,mBAAmB,CAACO,MAA1C;AACD;;AAED,kBAAgC1L,QAAQ,CAAW;AACjD8L,IAAAA,IAAI,EAAE,CAD2C;AAEjDH,IAAAA,GAAG,EAAE,CAF4C;AAGjDC,IAAAA,KAAK,EAAE,SAH0C;AAIjDC,IAAAA,MAAM,EAAE;AAJyC,GAAX,CAAxC;AAAA,MAAOrC,QAAP;AAAA,MAAiB0C,WAAjB;;AAOA,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnC3L,KADmC,EAEnC8K,eAFmC,EAGnCc,oBAHmC,EAInCC,YAJmC;AAMnC,QAAIC,WAAW,GAAG9L,KAAlB;;AAEA,QACG8K,eAAe,CAACc,oBAAD,CAAf,KAA0C,MAA1C,IAAoDE,WAAW,GAAG,CAAnE,IACChB,eAAe,CAACc,oBAAD,CAAf,KAA0C,KAA1C,IAAmDE,WAAW,GAAG,CADlE,IAEChB,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA1C,IAAsDE,WAAW,GAAG,CAFrE,IAGChB,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA1C,IAAsDE,WAAW,GAAG,CAJvE,EAKE;AACAA,MAAAA,WAAW,GAAG,CAAd;AACD;;AAED,QACGhB,eAAe,CAACc,oBAAD,CAAf,KAA0C,MAA1C,IACCE,WAAW,GAAGC,MAAM,CAACC,UAAP,GAAoBH,YAAY,CAAC5C,KADjD,IAEC6B,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA1C,IACCA,oBAAoB,KAAK,YAD1B,IAECE,WAAW,GAAGC,MAAM,CAACC,UAAP,GAAoBH,YAAY,CAAC5C,KALnD,EAME;AACA6C,MAAAA,WAAW,GAAGC,MAAM,CAACC,UAAP,GAAoBH,YAAY,CAAC5C,KAA/C;AACD;;AAED,QACG6B,eAAe,CAACc,oBAAD,CAAf,KAA0C,KAA1C,IACCE,WAAW,GAAGC,MAAM,CAACE,WAAP,GAAqBJ,YAAY,CAAC3C,MADlD,IAEC4B,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA1C,IACCA,oBAAoB,KAAK,UAD1B,IAECE,WAAW,GAAGC,MAAM,CAACE,WAAP,GAAqBJ,YAAY,CAAC3C,MALpD,EAME;AACA4C,MAAAA,WAAW,GAAGC,MAAM,CAACE,WAAP,GAAqBJ,YAAY,CAAC3C,MAAhD;AACD;;AAED,QACE4B,eAAe,CAACc,oBAAD,CAAf,KAA0C,OAA1C,IACAE,WAAW,GAAGC,MAAM,CAACC,UAAP,GAAoBH,YAAY,CAAC5C,KAFjD,EAGE;AACA6C,MAAAA,WAAW,GAAGC,MAAM,CAACC,UAAP,GAAoBH,YAAY,CAAC5C,KAA/C;AACD;;AAED,QACE6B,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA1C,IACAE,WAAW,GAAGC,MAAM,CAACE,WAAP,GAAqBJ,YAAY,CAAC3C,MAFlD,EAGE;AACA4C,MAAAA,WAAW,GAAGC,MAAM,CAACE,WAAP,GAAqBJ,YAAY,CAAC3C,MAAhD;AACD;;AAED,WAAO4C,WAAP;AACD,GApDD;;AAsDA,MAAMI,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnClM,KADmC,EAEnC4L,oBAFmC,EAGnCd,eAHmC;;;AAKnC,QAAIgB,WAAW,GAAG9L,KAAlB;;AACA,QACG4L,oBAAoB,KAAK,YAAzB,IAAyC,yBAAAH,YAAY,CAACP,MAAb,0CAAqBI,IAArB,MAA8B,CAAxE,IACCM,oBAAoB,KAAK,YAAzB,IAAyC,0BAAAH,YAAY,CAACP,MAAb,2CAAqBE,KAArB,MAA+B,CAF3E,EAGE;AACA,UACEN,eAAe,CAACc,oBAAD,CAAf,KAA0C,MAA1C,IACAd,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAF5C,EAGE;AAAA;;AACAE,QAAAA,WAAW,6BAAIL,YAAY,CAACP,MAAjB,qBAAI,sBAAqBI,IAApC;AACAQ,QAAAA,WAAW,6BAAIL,YAAY,CAACP,MAAjB,qBAAI,sBAAqBE,KAApC;AACD;;AAED,UAAIN,eAAe,CAACc,oBAAD,CAAf,KAA0C,OAA9C,EAAuD;AAAA;;AACrDE,QAAAA,WAAW,6BAAIL,YAAY,CAACP,MAAjB,qBAAI,sBAAqBI,IAApC;AACAQ,QAAAA,WAAW,6BAAIL,YAAY,CAACP,MAAjB,qBAAI,sBAAqBE,KAApC;AACD;AACF;;AAED,QACGQ,oBAAoB,KAAK,UAAzB,IAAuC,0BAAAH,YAAY,CAACP,MAAb,2CAAqBC,GAArB,MAA6B,CAArE,IACCS,oBAAoB,KAAK,UAAzB,IAAuC,0BAAAH,YAAY,CAACP,MAAb,2CAAqBG,MAArB,MAAgC,CAF1E,EAGE;AACA,UACEP,eAAe,CAACc,oBAAD,CAAf,KAA0C,KAA1C,IACAd,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAF5C,EAGE;AAAA;;AACAE,QAAAA,WAAW,6BAAIL,YAAY,CAACP,MAAjB,qBAAI,sBAAqBC,GAApC;AACAW,QAAAA,WAAW,8BAAIL,YAAY,CAACP,MAAjB,qBAAI,uBAAqBG,MAApC;AACD;;AAED,UAAIP,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA9C,EAAwD;AAAA;;AACtDE,QAAAA,WAAW,8BAAIL,YAAY,CAACP,MAAjB,qBAAI,uBAAqBC,GAApC;AACAW,QAAAA,WAAW,8BAAIL,YAAY,CAACP,MAAjB,qBAAI,uBAAqBG,MAApC;AACD;AACF;;AAED,WAAOS,WAAP;AACD,GA3CD;;AA6CA,MAAMK,+BAA+B,GAAG,SAAlCA,+BAAkC,CACtCrB,eADsC,EAEtCc,oBAFsC,EAGtCQ,KAHsC,EAItCC,yBAJsC,EAKtCR,YALsC;AAOtC,QAAI7L,KAAK,GAAG,CAAZ;;AAEA,QACE8K,eAAe,CAACc,oBAAD,CAAf,KAA0C,MAA1C,IACAd,eAAe,CAACc,oBAAD,CAAf,KAA0C,KAF5C,EAGE;AACA5L,MAAAA,KAAK,GAAGoM,KAAK,CAACC,yBAAD,CAAb;AACD,KALD,MAKO,IAAIvB,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAA9C,EAAwD;AAC7D5L,MAAAA,KAAK,GACHoM,KAAK,CAACC,yBAAD,CAAL,GACAR,YAAY,CAACD,oBAAoB,KAAK,YAAzB,GAAwC,OAAxC,GAAkD,QAAnD,CAAZ,GAA2E,CAF7E;AAGD,KAJM,MAIA,IACLd,eAAe,CAACc,oBAAD,CAAf,KAA0C,OAA1C,IACAd,eAAe,CAACc,oBAAD,CAAf,KAA0C,QAFrC,EAGL;AACA5L,MAAAA,KAAK,GACH+L,MAAM,CAACH,oBAAoB,KAAK,YAAzB,GAAwC,YAAxC,GAAuD,aAAxD,CAAN,GACAQ,KAAK,CAACC,yBAAD,CAFP;AAGD;;AAED,WAAOrM,KAAP;AACD,GA5BD;AA8BA;;;;;;;AAKA,MAAMsM,iCAAiC,GAAG,SAApCA,iCAAoC,CAACV,oBAAD;AACxC,QAAIA,oBAAoB,KAAK,YAA7B,EAA2C;AACzC,aAAO,SAAP;AACD,KAFD,MAEO,IAAIA,oBAAoB,KAAK,UAA7B,EAAyC;AAC9C,aAAO,SAAP;AACD;;AACD,UAAM,IAAInJ,KAAJ,sEAC4DmJ,oBAD5D,iBAAN;AAGD,GATD;;AAWA,MAAMW,wBAAwB,GAAG,SAA3BA,wBAA2B,CAC/BzB,eAD+B,EAE/BG,SAF+B,EAG/BW,oBAH+B,EAI/BQ,KAJ+B,EAK/BP,YAL+B;AAO/B,QAAMQ,yBAAyB,GAC7BpB,SAAS,KAAK,QAAd,GAAyBqB,iCAAiC,CAACV,oBAAD,CAA1D,GAAmFX,SADrF;;AAGA,QAAMjL,KAAK,GAAGmM,+BAA+B,CAC3CrB,eAD2C,EAE3Cc,oBAF2C,EAG3CQ,KAH2C,EAI3CC,yBAJ2C,EAK3CR,YAL2C,CAA7C;;AAQA,QAAMW,eAAe,GAAGN,4BAA4B,CAClDlM,KADkD,EAElD4L,oBAFkD,EAGlDd,eAHkD,CAApD;;AAMA,QAAM2B,kCAAkC,GAAGd,4BAA4B,CACrEa,eADqE,EAErE1B,eAFqE,EAGrEc,oBAHqE,EAIrEC,YAJqE,CAAvE;;AAOA,WAAOY,kCAAP;AACD,GAhCD;;AAkCA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACN,KAAD,EAAuBP,YAAvB,EAAiDc,IAAjD;;;AAC1B,QAAMC,cAAc,GAAGL,wBAAwB,CAC7Cd,YAAY,CAACX,eADgC,EAE7CW,YAAY,CAACR,SAAb,CAAwB0B,IAAxB,CAF6C,EAG7CA,IAH6C,EAI7CP,KAJ6C,EAK7CP,YAL6C,CAA/C;;AAQA,QAAIgB,SAAS,GAAG,MAAhB;AACA,QAAIC,iBAAiB,GAAG,OAAxB;;AAEA,QAAIH,IAAI,KAAK,YAAT,IAAyB,0BAAAlB,YAAY,CAACX,eAAb,2CAA8BC,UAA9B,MAA6C,OAA1E,EAAmF;AACjF8B,MAAAA,SAAS,GAAG,OAAZ;AACAC,MAAAA,iBAAiB,GAAG,MAApB;AACD,KAHD,MAGO,IAAIH,IAAI,KAAK,YAAb,EAA2B;AAChCE,MAAAA,SAAS,GAAG,MAAZ;AACAC,MAAAA,iBAAiB,GAAG,OAApB;AACD;;AAED,QAAIH,IAAI,KAAK,UAAT,IAAuB,2BAAAlB,YAAY,CAACX,eAAb,4CAA8BE,QAA9B,MAA2C,QAAtE,EAAgF;AAC9E6B,MAAAA,SAAS,GAAG,QAAZ;AACAC,MAAAA,iBAAiB,GAAG,KAApB;AACD,KAHD,MAGO,IAAIH,IAAI,KAAK,UAAb,EAAyB;AAC9BE,MAAAA,SAAS,GAAG,KAAZ;AACAC,MAAAA,iBAAiB,GAAG,QAApB;AACD;;AAEDpB,IAAAA,WAAW,CAAC,UAACqB,SAAD;AAAA;;AAAA,0BACPA,SADO,6BAETF,SAFS,IAEGD,cAFH,YAGTE,iBAHS,IAGW,SAHX;AAAA,KAAD,CAAX;AAKD,GAjCD;;AAmCA,MAAME,iBAAiB,GAAG,SAApBA,iBAAoB;;;AACxB,QAAI,2BAACvB,YAAY,CAACb,eAAd,aAAC,sBAA8B1D,OAA/B,CAAJ,EAA4C;AAC5C,QAAM+F,cAAc,GAAIxB,YAAY,CAACb,eAAb,CACrB1D,OADqB,CACIgG,qBADJ,EAAxB;AAEA,QAAMC,+BAA+B,GAAe;AAClDjE,MAAAA,MAAM,EAAGuC,YAAY,CAACZ,qBAAb,CAAoC3D,OAApC,CAA4DkG,YADnB;AAElDnE,MAAAA,KAAK,EAAGwC,YAAY,CAACZ,qBAAb,CAAoC3D,OAApC,CAA4DmG;AAFlB,KAApD;AAKA;;AACA,QAAMC,WAAW,GAAG;AAClBnC,MAAAA,GAAG,EAAE8B,cAAc,CAAC9B,GADF;AAElBC,MAAAA,KAAK,EAAE6B,cAAc,CAAC7B,KAFJ;AAGlBC,MAAAA,MAAM,EAAE4B,cAAc,CAAC5B,MAHL;AAIlBkC,MAAAA,MAAM,EAAE,CAJU;AAKlBC,MAAAA,OAAO,EAAEP,cAAc,CAAC9B,GAAf,GAAqB8B,cAAc,CAAC/D,MAAf,GAAwB,CALpC;AAMlBuE,MAAAA,OAAO,EAAER,cAAc,CAAC3B,IAAf,GAAsB2B,cAAc,CAAChE,KAAf,GAAuB,CANpC;AAOlBqC,MAAAA,IAAI,EAAE2B,cAAc,CAAC3B,IAPH;AAQlBrC,MAAAA,KAAK,EAAEgE,cAAc,CAAChE,KARJ;AASlBC,MAAAA,MAAM,EAAE+D,cAAc,CAAC/D,MATL;AAUlBwE,MAAAA,CAAC,EAAET,cAAc,CAACS,CAVA;AAWlBC,MAAAA,CAAC,EAAEV,cAAc,CAACU;AAXA,KAApB;;AAcAjB,IAAAA,mBAAmB,CAACY,WAAD,EAAcH,+BAAd,EAA+C,YAA/C,CAAnB;;AACAT,IAAAA,mBAAmB,CAACY,WAAD,EAAcH,+BAAd,EAA+C,UAA/C,CAAnB;AACD,GA1BD;;AA4BA,SAAO;AACLhC,IAAAA,GAAG,EAAEnC,QAAQ,CAACmC,GADT;AAELE,IAAAA,MAAM,EAAErC,QAAQ,CAACqC,MAFZ;AAGLC,IAAAA,IAAI,EAAEtC,QAAQ,CAACsC,IAHV;AAILF,IAAAA,KAAK,EAAEpC,QAAQ,CAACoC,KAJX;AAKL4B,IAAAA,iBAAiB,EAAjBA;AALK,GAAP;AAOD,CA/QM;;;ACrDP,IAAMY,eAAe,GAAoB;AACvC3C,EAAAA,SAAS,EAAE;AAAEF,IAAAA,UAAU,EAAE,OAAd;AAAuBC,IAAAA,QAAQ,EAAE;AAAjC,GAD4B;AAEvCE,EAAAA,MAAM,EAAE;AAAEI,IAAAA,IAAI,EAAE,EAAR;AAAYF,IAAAA,KAAK,EAAE,CAAnB;AAAsBD,IAAAA,GAAG,EAAE,CAA3B;AAA8BE,IAAAA,MAAM,EAAE;AAAtC,GAF+B;AAGvCP,EAAAA,eAAe,EAAE;AAAEC,IAAAA,UAAU,EAAE,MAAd;AAAsBC,IAAAA,QAAQ,EAAE;AAAhC;AAHsB,CAAzC;IAMa6C,OAAO,GAAG,SAAVA,OAAU;MACrB7Q,gBAAAA;MACAsF,iBAAAA;4BACA2I;MAAAA,wCAAY2C,eAAe,CAAC3C;yBAC5BC;MAAAA,kCAAS0C,eAAe,CAAC1C;kCACzBJ;MAAAA,oDAAkB8C,eAAe,CAAC9C;0BAClC3E;MAAAA,oCAAU9F,QAAQ,CAACiF;MACnBkD,aAAAA;MACGjG;;AAEH,kBAAqB/C,QAAQ,CAACgI,UAAU,EAAX,CAA7B;AAAA,MAAOsG,UAAP;;AACA,mBAA8BtO,QAAQ,CAAC,KAAD,CAAtC;AAAA,MAAOuO,OAAP;AAAA,MAAgBC,UAAhB;;AAEA,MAAMpD,eAAe,GAAG3D,MAAM,CAAmB,IAAnB,CAA9B;AACA,MAAM4D,qBAAqB,GAAG5D,MAAM,CAAiB,IAAjB,CAApC;;AAEA,qBAAwDsE,WAAW,CAAC;AAClEX,IAAAA,eAAe,EAAEA,eADiD;AAElEC,IAAAA,qBAAqB,EAAEA,qBAF2C;AAGlEI,IAAAA,SAAS,EAAEA,SAHuD;AAIlEC,IAAAA,MAAM,EAAEA,MAJ0D;AAKlEJ,IAAAA,eAAe,EAAEA;AALiD,GAAD,CAAnE;AAAA,MAAQK,GAAR,gBAAQA,GAAR;AAAA,MAAaE,MAAb,gBAAaA,MAAb;AAAA,MAAqBD,KAArB,gBAAqBA,KAArB;AAAA,MAA4BE,IAA5B,gBAA4BA,IAA5B;AAAA,MAAkC0B,iBAAlC,gBAAkCA,iBAAlC;;AAQAvM,EAAAA,SAAS,CAAC;AACR,QAAI,CAACsN,OAAL,EAAc;;AAEd,aAASE,kBAAT,CAA4B3H,KAA5B;AACE,UAAIA,KAAK,CAACvG,GAAN,KAAc,QAAlB,EAA4B;AAC1BiO,QAAAA,UAAU,CAAC,KAAD,CAAV;AACD;AACF;;AAED3N,IAAAA,QAAQ,CAAC6N,gBAAT,CAA0B,OAA1B,EAAmCD,kBAAnC;AAEA,WAAO;AACL5N,MAAAA,QAAQ,CAAC8N,mBAAT,CAA6B,OAA7B,EAAsCF,kBAAtC;AACD,KAFD;AAGD,GAdQ,EAcN,CAACF,OAAD,CAdM,CAAT;AAgBAK,EAAAA,eAAe,CAAC;AACdpB,IAAAA,iBAAiB;AAClB,GAFc,EAEZ,CAACe,OAAD,CAFY,CAAf;;AAIA,MAAMM,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAIxN,KAAK,CAACyN,cAAN,CAAqB9F,KAArB,CAAJ,EAAiC;AAC/B,aAAO3H,KAAK,CAAC0N,YAAN,CAAmB/F,KAAnB,EAA0B;AAC/BgG,QAAAA,OAAO,EAAE;AAAA,iBAAMR,UAAU,CAAC,IAAD,CAAhB;AAAA,SADsB;AAE/BS,QAAAA,MAAM,EAAE;AAAA,iBAAMT,UAAU,CAAC,KAAD,CAAhB;AAAA,SAFuB;AAG/B,4BAAoBF,UAHW;AAI/BnH,QAAAA,QAAQ,EAAE,CAJqB;AAK/BrE,QAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;AALa,OAA1B,CAAP;AAOD;;AAED,WACE/B,mBAAA,OAAA;AACEyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;AAClB+D,MAAAA,QAAQ,EAAE;AACV6H,MAAAA,OAAO,EAAE;AAAA,eAAMR,UAAU,CAAC,IAAD,CAAhB;AAAA;AACTS,MAAAA,MAAM,EAAE;AAAA,eAAMT,UAAU,CAAC,KAAD,CAAhB;AAAA;0BACUF;KALpB,EAOGtF,KAPH,CADF;AAWD,GAtBD;;AAwBA,SACE3H,mBAAA,MAAA,eAAS0B,IAAT;AAAeD,IAAAA,SAAS,EAAKM,gBAAO,CAAC8L,OAAb,UAAwBpM,SAAxB,WAAwBA,SAAxB,GAAqC,EAArC;AAAxB,MACG+L,cAAc,EADjB,EAEExN,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,OAAKM,gBAAO,CAAC,iBAAD;GAA1B,EACE/B,mBAAA,CAAC6D,IAAD;AACE3B,IAAAA,GAAG,EAAE6H;AACLvI,IAAAA,GAAG,EAAC;AACJsM,IAAAA,YAAY,EAAE;AAAA,aAAMX,UAAU,CAAC,IAAD,CAAhB;AAAA;AACdY,IAAAA,YAAY,EAAE;AAAA,aAAMZ,UAAU,CAAC,KAAD,CAAhB;AAAA;AACdrJ,IAAAA,IAAI,EAAEF,KAAK,CAACoK;AACZvM,IAAAA,SAAS,EAAEM,gBAAO,CAAC+B;GANrB,CADF,EASG8B,YAAY,CACX5F,mBAAA,MAAA;AACEkC,IAAAA,GAAG,EAAE8H;AACLtK,IAAAA,KAAK,eACAgC,IAAI,CAAChC,KADL;AAEH4K,MAAAA,GAAG,EAAEA,GAFF;AAGHG,MAAAA,IAAI,EAAEA,IAHH;AAIHF,MAAAA,KAAK,EAAEA,KAJJ;AAKHC,MAAAA,MAAM,EAAEA;AALL;mBAOQ,CAAC0C;AACdhJ,IAAAA,EAAE,EAAE+I;AACJxL,IAAAA,SAAS,EAAKM,gBAAO,CAACkM,OAAb,UAAwBf,OAAO,GAAGnL,gBAAO,CAACmL,OAAX,GAAqB,EAApD;GAXX,EAaG/Q,QAbH,CADW,EAgBXmJ,OAhBW,CATf,CAFF,CADF;AAiCD;;;;;;;;;;;IC5GY4I,IAAI,GAAG,SAAPA,IAAO;MAClBzK,aAAAA;MACA0K,kBAAAA;MACAC,eAAAA;MACA3M,iBAAAA;MACA4M,eAAAA;MACAC,kBAAAA;MACG5M;;AAEH,kBAA4B/C,QAAQ,CAACgI,UAAU,CAAC,EAAD,CAAX,CAApC;AAAA,MAAO4H,iBAAP;;AAEA,MAAI,CAAC9K,KAAL,EAAY;AACV,UAAM,IAAI7B,KAAJ,CAAU,+DAAV,CAAN;AACD;;AAED,MAAM4M,aAAa,GAAG,SAAhBA,aAAgB;AACpB,QAAIJ,OAAJ,EAAa;AACX,aAAO,iBAAP;AACD;;AAED,WAAO,kBAAP;AACD,GAND;;AAQA,SACEpO,mBAAA,UAAA;AACE8F,IAAAA,QAAQ,EAAE,CADZ;uBAEmByI;AAFnB,KAGM7M,IAHN;AAIED,IAAAA,SAAS,EAAKM,gBAAO,CAAC,MAAD,CAAZ,UAAwBsM,OAAO,GAAGtM,gBAAO,CAAC,SAAD,CAAV,GAAwB,EAAvD;AAJX,MAME/B,mBAAA,SAAA;AAAQN,IAAAA,KAAK,EAAE;AAAE+O,MAAAA,cAAc,EAAEL,OAAO,KAAK/K,SAAZ,GAAwB,UAAxB,GAAqC;AAAvD;GAAf,EACG+K,OAAO,KAAK,IAAZ,IACCpO,mBAAA,CAAC6D,IAAD;AACEtB,IAAAA,KAAK,EAAC;AACNuB,IAAAA,IAAI,EAAEF,KAAK,CAAC8K;AACZjN,IAAAA,SAAS,EAAKM,gBAAO,CAAC,MAAD,CAAZ,UAAwBN,SAAxB,WAAwBA,SAAxB,GAAqC,EAArC;GAHX,CAFJ,EAQG2M,OAAO,KAAK,KAAZ,IACCpO,mBAAA,CAAC6D,IAAD;AACEtB,IAAAA,KAAK,EAAC;AACNuB,IAAAA,IAAI,EAAEF,KAAK,CAAC+K;AACZlN,IAAAA,SAAS,EAAKM,gBAAO,CAAC,MAAD,CAAZ,UAAwBN,SAAxB,WAAwBA,SAAxB,GAAqC,EAArC;GAHX,CATJ,EAeG2M,OAAO,KAAK/K,SAAZ,IACCrD,mBAAA,OAAA;AAAMkE,IAAAA,EAAE,EAAEqK;AAAmB9M,IAAAA,SAAS,EAAEmN,gBAAY,CAAC,SAAD;GAApD,EACMnL,KADN,UACgB+K,aAAa,EAD7B,CAhBJ,EAoBGF,UApBH,WAoBGA,UApBH,GAoBiB,IApBjB,CANF,EA4BEtO,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,SAAD;GAAvB,EACGoM,UAAU,IAAIA,UAAU,CAACU,GAAX,CAAe/O,MAAf,GAAwB,CAAtC,IACCE,mBAAA,SAAA;AAAQyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;GAA1B,EAAsC,CAACsM,OAAD,IAAYrO,mBAAA,MAAA,eAASmO,UAAT;AAAqBW,IAAAA,GAAG,EAAC;AAAzB,KAAlD,CAFJ,EAIG,CAAC,CAACX,UAAD,IAAeA,UAAU,CAACU,GAAX,CAAe/O,MAAf,KAA0B,CAA1C,KACCE,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEM,gBAAO,CAAC,aAAD;AAAiB+B,IAAAA,IAAI,EAAEF,KAAK,CAACmL;GAArD,CALJ,EAOE/O,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;GAAxB,EAAoC0B,KAApC,CAPF,CA5BF,CADF;AAwCD;;;IC3EYuL,KAAK,GAAG,SAARA,KAAQ;MAAG7S,gBAAAA;MAAUsF,iBAAAA;0BAAW4M;MAAAA,oCAAU;MAAU3M;;AAC/D,MAAM8L,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAIa,OAAJ,EAAa;AACX,aAAO,CACLrO,mBAAA,CAACkO,IAAD;AACEhP,QAAAA,GAAG,EAAC;AACJuE,QAAAA,KAAK,EAAC;AACN0K,QAAAA,UAAU,EAAE;AAAEU,UAAAA,GAAG,EAAE;AAAP;AACZR,QAAAA,OAAO,EAAE;OAJX,CADK,EAOLrO,mBAAA,CAACkO,IAAD;AACEhP,QAAAA,GAAG,EAAC;AACJuE,QAAAA,KAAK,EAAC;AACN0K,QAAAA,UAAU,EAAE;AAAEU,UAAAA,GAAG,EAAE;AAAP;AACZR,QAAAA,OAAO,EAAE;OAJX,CAPK,EAaLrO,mBAAA,CAACkO,IAAD;AACEhP,QAAAA,GAAG,EAAC;AACJuE,QAAAA,KAAK,EAAC;AACN0K,QAAAA,UAAU,EAAE;AAAEU,UAAAA,GAAG,EAAE;AAAP;AACZR,QAAAA,OAAO,EAAE;OAJX,CAbK,CAAP;AAoBD;;AAED,WAAOlS,QAAP;AACD,GAzBD;;AA2BA,SACE6D,mBAAA,MAAA,eACM0B,IADN;AAEED,IAAAA,SAAS,EAAKM,gBAAO,CAAC,OAAD,CAAZ,UAAyBN,SAAzB,WAAyBA,SAAzB,GAAsC,EAAtC,CAFX;iBAGY,QAHZ;iBAIa4M;AAJb,MAMGb,cAAc,EANjB,CADF;AAUD;;;;;;;AClCM,IAAMyB,OAAO,gBAAGhN,UAAU,CAC/B,gBAAuFC,GAAvF;MAAG/F,gBAAAA;MAAUsF,iBAAAA;MAAWyN,YAAAA;MAAM9E,iBAAAA;MAAWC,cAAAA;MAAQJ,uBAAAA;MAAiBkF,gBAAAA;MAAazN;;AAC7E,MAAM0N,gBAAgB,GAAGhJ,MAAM,CAAiB,IAAjB,CAA/B;;AAEA,MAAI8I,IAAI,KAAK7L,SAAb,EAAwB;AACtB,UAAM,IAAIzB,KAAJ,CAAU,0EAAV,CAAN;AACD;;AAED,qBAAwD8I,WAAW,CAAC;AAClEV,IAAAA,qBAAqB,EAAEoF,gBAD2C;AAElErF,IAAAA,eAAe,EAAEoF,QAFiD;AAGlE9E,IAAAA,MAAM,EAAEA,MAH0D;AAIlED,IAAAA,SAAS,EAAEA,SAJuD;AAKlEH,IAAAA,eAAe,EAAEA;AALiD,GAAD,CAAnE;AAAA,MAAQK,GAAR,gBAAQA,GAAR;AAAA,MAAaG,IAAb,gBAAaA,IAAb;AAAA,MAAmBF,KAAnB,gBAAmBA,KAAnB;AAAA,MAA0BC,MAA1B,gBAA0BA,MAA1B;AAAA,MAAkC2B,iBAAlC,gBAAkCA,iBAAlC;;AAQAvM,EAAAA,SAAS,CAAC;AACRuM,IAAAA,iBAAiB;AAClB,GAFQ,EAEN,CAAC+C,IAAD,CAFM,CAAT;AAIA,SACElP,mBAAA,MAAA;AAAKkC,IAAAA,GAAG,EAAEA;AAAV,KAAmBR,IAAnB,GACE1B,mBAAA,MAAA;AACEkC,IAAAA,GAAG,EAAEkN;AACL3N,IAAAA,SAAS,EAAKM,gBAAO,CAACsN,OAAb,UAAwB5N,SAAxB,WAAwBA,SAAxB,GAAqC,EAArC,WAA2CyN,IAAI,GAAGnN,gBAAO,CAACmN,IAAX,GAAkB,EAAjE;AACTxP,IAAAA,KAAK,EAAE;AAAE4K,MAAAA,GAAG,EAAEA,GAAP;AAAYG,MAAAA,IAAI,EAAEA,IAAlB;AAAwBF,MAAAA,KAAK,EAAEA,KAA/B;AAAsCC,MAAAA,MAAM,EAAEA;AAA9C;GAHT,EAKGrO,QALH,CADF,CADF;AAWD,CA/B8B,CAA1B;;;;;;ACXA,IAAMmT,YAAY,GAAG,SAAfA,YAAe,CAC1BC,aAD0B,EAE1BC,gBAF0B,EAG1BC,sBAH0B;AAK1B,WAASC,iBAAT,CAA2BjK,KAA3B;AACE,QAAI8J,aAAa,CAAC9J,KAAD,CAAjB,EAA0B;AACxB+J,MAAAA,gBAAgB;AACjB;AACF;;AACD5P,EAAAA,SAAS,CAAC;AACRsL,IAAAA,MAAM,CAACmC,gBAAP,CAAwB,OAAxB,EAAiCqC,iBAAjC;AAEA,WAAO;AACLxE,MAAAA,MAAM,CAACoC,mBAAP,CAA2B,OAA3B,EAAoCoC,iBAApC;AACD,KAFD;AAGD,GANQ,EAMN,CAACD,sBAAD,CANM,CAAT;AAOD,CAjBM;;;ICqBME,WAAW,GAAG,SAAdA,WAAc;MACzBC,eAAAA;MACAzT,gBAAAA;MACA+H,UAAAA;uBACAgL;MAAAA,8BAAO;MACPW,cAAAA;MACA9K,eAAAA;4BACAqF;MAAAA,wCAAY;AAAEF,IAAAA,UAAU,EAAE,OAAd;AAAuBC,IAAAA,QAAQ,EAAE;AAAjC;yBACZE;MAAAA,kCAAS;AAAEC,IAAAA,GAAG,EAAE,CAAP;AAAUE,IAAAA,MAAM,EAAE,CAAlB;AAAqBC,IAAAA,IAAI,EAAE,CAA3B;AAA8BF,IAAAA,KAAK,EAAE;AAArC;kCACTN;MAAAA,oDAAkB;AAAEC,IAAAA,UAAU,EAAE,MAAd;AAAsBC,IAAAA,QAAQ,EAAE;AAAhC;0BAClB7E;MAAAA,oCAAU9F,QAAQ,CAACiF;MAChB/C;;AAEH,MAAMyN,QAAQ,GAAG/I,MAAM,CAAoB,IAApB,CAAvB;;AACA,kBAA8CzH,QAAQ,CAACuQ,IAAD,CAAtD;AAAA,MAAOY,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,MAAI,CAAC7L,EAAL,EAAS;AACP,UAAM,IAAItC,KAAJ,CAAU,+CAAV,CAAN;AACD;;AAED0N,EAAAA,YAAY,CACV,UAAC7J,KAAD;AACE,WAAOqK,eAAe,IAAIX,QAAQ,CAAC9I,OAAT,KAAqBZ,KAAK,CAACzC,MAArD;AACD,GAHS,EAIV;AACE+M,IAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD,GANS,EAOVD,eAPU,CAAZ;AAUAlQ,EAAAA,SAAS,CAAC;AACR,QAAIkQ,eAAe,KAAK,IAAxB,EAA8B;AAC5BD,MAAAA,MAAM,IAAIA,MAAM,EAAhB;AACD,KAFD,MAEO;AACL9K,MAAAA,OAAO,IAAIA,OAAO,EAAlB;AACD;AACF,GANQ,EAMN,CAAC+K,eAAD,CANM,CAAT;;AAQA,MAAME,aAAa,GAAG,SAAhBA,aAAgB;AAAA;;AAAA,WACpBhQ,KAAK,CAAC0N,YAAN,CAAmBkC,OAAnB;AACE1L,MAAAA,EAAE,EAAEA;AADN,2BAEG,eAFH,IAEqB,MAFrB,sBAGG,eAHH,IAGwBA,EAHxB,gCAIG,eAJH,IAIqBgL,IAJrB,sBAKElJ,OALF,GAKW;AAAA,aAAM+J,kBAAkB,CAAC,CAACD,eAAF,CAAxB;AAAA,KALX,sBAME5N,GANF,GAMOiN,QANP,uBADoB;AAAA,GAAtB;;AAUA,SACEnP,mBAAA,MAAA,eAAS0B,IAAT;AAAeD,IAAAA,SAAS,EAAEM,gBAAO,CAAC,cAAD;AAAjC,MACGiO,aAAa,EADhB,EAEGpK,YAAY,CACX5F,mBAAA,CAACiP,OAAD;AACE7E,IAAAA,SAAS,EAAEA;AACXH,IAAAA,eAAe,EAAEA;AACjBI,IAAAA,MAAM,EAAEA;AACR8E,IAAAA,QAAQ,EAAEA;AACVD,IAAAA,IAAI,EAAEY;GALR,EAOE9P,mBAAA,KAAA;AAAIyB,IAAAA,SAAS,EAAEM,gBAAO,CAACkO;AAAM/L,IAAAA,EAAE,EAAKA,EAAL;wBAAkCA;AAAI2B,IAAAA,IAAI,EAAC;GAA1E,EACG1J,QADH,CAPF,CADW,EAYXmJ,OAZW,CAFf,CADF;AAmBD;;;;;;;IClFY4K,eAAe,GAAG,SAAlBA,eAAkB;MAAG/T,gBAAAA;MAAU6J,gBAAAA;MAAYtE;;AACtD,SACE1B,mBAAA,KAAA,eAAQ0B,IAAR;AAAcmE,IAAAA,IAAI,EAAC,UAAnB;AAA8BpE,IAAAA,SAAS,EAAEM,gBAAO,CAAC,mBAAD;AAAhD,MACE/B,mBAAA,SAAA;AAAQgG,IAAAA,OAAO,EAAE,iBAACP,KAAD;AAAA,aAAWO,QAAO,IAAIA,QAAO,CAACP,KAAD,CAA7B;AAAA;GAAjB,EAAwDtJ,QAAxD,CADF,CADF;AAKD;;;;;;;ICDYgU,WAAW,GAAG,SAAdA,WAAc;MACzBhU,gBAAAA;MACciU,iBAAd;4BACA3O;MAAAA,wCAAY;MACTC;;AAEH,MAAM2O,KAAK,GAAGrQ,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD,EAAQC,KAAR;AACzC,QAAMC,aAAa,GAAG1P,KAAK,CAAC2P,OAAN,CAAcvU,QAAd,IAA0BqU,KAAK,KAAKrU,QAAQ,CAAC2D,MAAT,GAAkB,CAAtD,GAA0D,IAAhF;;AACA,QAAI2Q,aAAJ,EAAmB;AACjB,aACEzQ,mBAAA,CAACsB,UAAD;AACEpC,QAAAA,GAAG,EAAEqR,KAAK,CAACrR;AACXqC,QAAAA,OAAO,EAAC;AACRC,QAAAA,GAAG,EAAC;AACJC,QAAAA,SAAS,EAAEM,gBAAO,CAAC,MAAD;wBACL;OALf,EAOGwO,KAAK,CAACI,KAAN,CAAYxU,QAPf,CADF;AAWD,KAZD,MAYO;AACL,aACE6D,mBAAA,CAACC,QAAD;AAAUf,QAAAA,GAAG,EAAEqR,KAAK,CAACrR;OAArB,EACGc,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,CADH,EAEEvQ,mBAAA,CAAC6D,IAAD;AAAMC,QAAAA,IAAI,EAAEF,KAAK,CAACgN;AAAcnP,QAAAA,SAAS,EAAEM,gBAAO,CAAC,MAAD;OAAlD,CAFF,CADF;AAMD;AACF,GAtBa,CAAd;AAuBA,SACE/B,mBAAA,MAAA,eAAS0B,IAAT;kBAA2B0O,SAA3B;AAAsC3O,IAAAA,SAAS,EAAKM,gBAAO,CAAC,aAAD,CAAZ,SAA+BN;AAA9E,MACG4O,KADH,CADF;AAKD;;ACtCD,IAAMQ,eAAe,gBAAGC,aAAa,CAAuB;AAC1DC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GADyC;AAE1DC,EAAAA,sBAAsB,EAAE;AAAA,WAAM,IAAN;AAAA,GAFkC;AAG1DC,EAAAA,oBAAoB,EAAE;AAAA,WAAM,IAAN;AAAA;AAHoC,CAAvB,CAArC;;AAWA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B;MAAG/U,gBAAAA;MAAUgV,oBAAAA;AAC3C,SAAOnR,mBAAA,CAAC6Q,eAAe,CAACO,QAAjB;AAA0BjS,IAAAA,KAAK,EAAEgS;GAAjC,EAAgDhV,QAAhD,CAAP;AACD,CAFD;;;;;;;ACLO,IAAMkV,iBAAiB,GAAG,SAApBA,iBAAoB;MAAGjH,iBAAAA;MAAWjO,gBAAAA;MAAUkJ,cAAAA;MAAQ5D,iBAAAA;MAAcC;;AAC7E,SACE1B,mBAAA,MAAA,eACM0B,IADN;AAEEhC,IAAAA,KAAK,EAAE;AAAE2F,MAAAA,MAAM,EAANA;AAAF,KAFT;AAGE5D,IAAAA,SAAS,EAAKM,gBAAO,CAAC,WAAD,CAAZ,SAA6BA,gBAAO,CAACqI,SAAS,CAACF,UAAX,CAApC,SACPnI,gBAAO,CAACqI,SAAS,CAACD,QAAX,CADA,UAEL1I,SAFK,WAELA,SAFK,GAEQ,EAFR;AAHX,MAOGtF,QAPH,CADF;AAWD,CAZM;;;;;;ACbA,IAAMmV,YAAY,GAAG,SAAfA,YAAe,CAAiCC,QAAjC;AAC1B,MAAMC,iBAAiB,GAAGpL,MAAM,CAAa,IAAb,CAAhC;AACA;;AACA,kBAAgDzH,QAAQ,CAAC,KAAD,CAAxD;AAAA,MAAO8S,gBAAP;AAAA,MAAyBC,mBAAzB;;AAEA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WAAMF,gBAAgB,IAAIF,QAAQ,EAAlC;AAAA,GAAvB;;AAEA3R,EAAAA,SAAS,CAAC;;;AACR,6BAAA4R,iBAAiB,CAACnL,OAAlB,2CAA2BgH,gBAA3B,CAA4C,cAA5C,EAA4DsE,cAA5D;AACA,WAAO;AAAA;;AAAA,uCAAMH,iBAAiB,CAACnL,OAAxB,qBAAM,uBAA2BiH,mBAA3B,CAA+C,cAA/C,EAA+DqE,cAA/D,CAAN;AAAA,KAAP;AACD,GAHQ,EAGN,CAACF,gBAAD,CAHM,CAAT;AAKA,SAAO;AACLvP,IAAAA,GAAG,EAAEsP,iBADA;AAELC,IAAAA,gBAAgB,EAAhBA,gBAFK;AAGLG,IAAAA,cAAc,EAAE;AAAA,aAAMF,mBAAmB,CAAC,IAAD,CAAzB;AAAA;AAHX,GAAP;AAKD,CAjBM;;ACOP,IAAMG,SAAS,GAAG,4BAAlB;AAaO,IAAMC,YAAY,GAAG,SAAfA,YAAe;MAC1B5N,UAAAA;MACAT,aAAAA;MACAsO,gBAAAA;MACAxQ,eAAAA;MACAyQ,eAAAA;0BACAC;MAAAA,oCAAU;MACVlN,eAAAA;MACAmN,wBAAAA;AAEA,MAAMC,YAAY,GAAG/L,MAAM,EAA3B;;AACA,MAAMuL,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WAAM5M,OAAO,CAACb,EAAD,CAAb;AAAA,GAAvB;;AACA,sBAAkDoN,YAAY,CAAiBK,cAAjB,CAA9D;AAAA,MAAQzP,GAAR,iBAAQA,GAAR;AAAA,MAAauP,gBAAb,iBAAaA,gBAAb;AAAA,MAA+BG,cAA/B,iBAA+BA,cAA/B;;AAEAhS,EAAAA,SAAS,CAAC;AACRuS,IAAAA,YAAY,CAAC9L,OAAb,GAAuB+L,UAAU,CAAC;AAAA,aAAMR,cAAc,EAApB;AAAA,KAAD,EAAyBG,QAAzB,CAAjC;AACA,WAAO;AACLI,MAAAA,YAAY,CAAC9L,OAAb,IAAwBgM,YAAY,CAACF,YAAY,CAAC9L,OAAd,CAApC;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;;AAOA,MAAMyH,YAAY,GAAG,SAAfA,YAAe;AACnBqE,IAAAA,YAAY,CAAC9L,OAAb,IAAwBgM,YAAY,CAACF,YAAY,CAAC9L,OAAd,CAApC;AACD,GAFD;;AAIA,MAAM0H,YAAY,GAAG,SAAfA,YAAe;AACnBoE,IAAAA,YAAY,CAAC9L,OAAb,GAAuB+L,UAAU,CAAC;AAAA,aAAMR,cAAc,EAApB;AAAA,KAAD,EAAyBG,QAAzB,CAAjC;AACD,GAFD;;AAIA,MAAMO,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAI/Q,OAAO,KAAK,OAAhB,EAAyB;AACvB,aAAOqC,KAAK,CAAC2O,cAAb;AACD;;AACD,WAAOhR,OAAO,KAAK,SAAZ,GAAwBqC,KAAK,CAAC4O,uBAA9B,GAAwD5O,KAAK,CAACoK,UAArE;AACD,GALD;;AAOA,MAAMyE,aAAa,GAAGR,OAAO,CAAChR,GAAR,CAAY,UAACyR,UAAD,EAAalC,KAAb;AAAA,WAChCxQ,mBAAA,SAAA;AACEd,MAAAA,GAAG,EAAEsR;AADP,OAEMkC,UAFN;AAGE1M,MAAAA,OAAO,EAAE,iBAAC2M,CAAD;AACP5N,QAAAA,OAAO,CAACb,EAAD,CAAP;AACAwO,QAAAA,UAAU,CAAC1M,OAAX,IAAsB0M,UAAU,CAAC1M,OAAX,CAAmB2M,CAAnB,CAAtB;AACD,OANH;AAOExW,MAAAA,QAAQ,EAAEuW,UAAU,CAAC/K,KAPvB;AAQElG,MAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;AARpB,OADgC;AAAA,GAAZ,CAAtB;AAaA,SACE/B,mBAAA,MAAA;AACEkC,IAAAA,GAAG,EAAEA;AACLT,IAAAA,SAAS,EAAKM,gBAAO,CAAC,UAAD,CAAZ,SAA4BA,gBAAO,CAACR,OAAD,CAAnC,UACPkQ,gBAAgB,GAAG9N,gBAAY,CAAC,WAAD,CAAf,GAA+BA,gBAAY,CAAC,UAAD,CADpD;AAGTmK,IAAAA,YAAY,EAAEA;AACdC,IAAAA,YAAY,EAAEA;GANhB,EAQE/N,mBAAA,CAAC6D,IAAD;AAAMC,IAAAA,IAAI,EAAEwO,cAAc;AAAI7Q,IAAAA,SAAS,EAAEM,gBAAO,CAAC,MAAD;GAAhD,CARF,EASE/B,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,WAAD;GAAvB,EACE/B,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD;GAAvB,EACE/B,mBAAA,CAACsB,UAAD;AAAYG,IAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;AAAWR,IAAAA,OAAO,EAAC;AAAKC,IAAAA,GAAG,EAAC;GAA1D,EACGiC,KADH,CADF,EAIEzD,mBAAA,CAACuD,UAAD;AACEyC,IAAAA,OAAO,EAAE;AAAA,aAAM4L,cAAc,EAApB;AAAA;AACTnQ,IAAAA,SAAS,EAAEM,gBAAO,CAAC,WAAD;AAClB0B,IAAAA,KAAK,EAAEyO;GAHT,EAKElS,mBAAA,CAAC6D,IAAD;AAAMC,IAAAA,IAAI,EAAEF,KAAK,CAAC8E;AAAOnG,IAAAA,KAAK,EAAEsP;GAAhC,CALF,CAJF,CADF,EAaG,CAAC,CAACG,OAAF,IACChS,mBAAA,CAACsB,UAAD;AAAYG,IAAAA,SAAS,EAAEM,gBAAO,CAAC,SAAD;AAAaR,IAAAA,OAAO,EAAC;GAAnD,EACGyQ,OADH,CAdJ,EAkBGS,aAAa,CAAC3S,MAAd,GAAuB,CAAvB,IAA4BE,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,SAAD;GAAvB,EAAqC0Q,aAArC,CAlB/B,CATF,CADF;AAgCD,CAjFM;;ICWMG,gBAAgB,GAAG,SAAnBA,gBAAmB;gCASnB;AAAEV,IAAAA,gBAAgB,EAAE;AAApB;MAPTA,wBAAAA;4BACA9H;MAAAA,wCAAY;AAAED,IAAAA,QAAQ,EAAE,QAAZ;AAAsBD,IAAAA,UAAU,EAAE;AAAlC;mCACZ2I;MAAAA,sDAAmB;AAAE,YAAM,IAAR;AAAc,aAAO;AAArB;4BACnBC;MAAAA,wCAAY;0BACZxN;MAAAA,oCAAU9F,QAAQ,CAACiF;MACnBtI,gBAAAA;MACAsF,iBAAAA;;AAGF,kBAAkC9C,QAAQ,CAAS,EAAT,CAA1C;AAAA,MAAOoU,SAAP;AAAA,MAAkBC,YAAlB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD;AAClBF,IAAAA,YAAY,CAAC,UAAC3C,KAAD;AAAA,uBAAeA,KAAf,GAAsB6C,IAAtB;AAAA,KAAD,CAAZ;AACD,GAFD;;AAIA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC5R,OAAD,EAAmB0Q,OAAnB,EAAsCD,OAAtC;AAClB,QAAMoB,QAAQ,GAAG7R,OAAO,KAAK,OAA7B;AACA,QAAM8R,mBAAmB,GAAGrB,OAAO,IAAIC,OAAvC;;AACA,QAAImB,QAAQ,IAAIC,mBAAhB,EAAqC;AACnC,aAAOR,gBAAgB,QAAvB;AACD;;AACD,WAAOA,gBAAgB,SAAvB;AACD,GAPD;;AASA,MAAM9B,eAAe,GAAG,SAAlBA,eAAkB,CACtBtN,KADsB,EAEtBuO,OAFsB,EAGtBsB,OAHsB;QAGtBA;AAAAA,MAAAA,UAAgC;;;AAEhC,mBAIIA,OAJJ;AAAA,oCACE/R,OADF;AAAA,QACEA,OADF,iCACY,MADZ;AAAA,QAEE0Q,OAFF,YAEEA,OAFF;AAAA,qCAGEF,QAHF;AAAA,QAGEA,QAHF,kCAGaoB,WAAW,CAAC5R,OAAD,EAAU0Q,OAAV,EAAmBD,OAAnB,CAHxB;AAKA,QAAMkB,IAAI,GAAS;AACjBzP,MAAAA,KAAK,EAALA,KADiB;AAEjBuO,MAAAA,OAAO,EAAPA,OAFiB;AAGjBzQ,MAAAA,OAAO,EAAPA,OAHiB;AAIjB0Q,MAAAA,OAAO,EAAPA,OAJiB;AAKjBF,MAAAA,QAAQ,EAARA,QALiB;AAMjB7N,MAAAA,EAAE,EAAEyC,UAAU,CAAC,EAAD,EAAKlD,KAAL;AANG,KAAnB;AAQAwP,IAAAA,WAAW,CAACC,IAAD,CAAX;AACD,GAnBD;;AAqBA,MAAMlC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BvN,KAD6B,EAE7BuO,OAF6B,EAG7BsB,OAH6B;AAK7BvC,IAAAA,eAAe,CAACtN,KAAD,EAAQuO,OAAR,eAAsBsB,OAAtB;AAA+B/R,MAAAA,OAAO,EAAE;AAAxC,OAAf;AACD,GAND;;AAQA,MAAM0P,oBAAoB,GAAG,SAAvBA,oBAAuB,CAC3BxN,KAD2B,EAE3BuO,OAF2B,EAG3BsB,OAH2B;AAK3BvC,IAAAA,eAAe,CAACtN,KAAD,EAAQuO,OAAR,eAAsBsB,OAAtB;AAA+B/R,MAAAA,OAAO,EAAE;AAAxC,OAAf;AACD,GAND;;AAQA,MAAMgS,YAAY,GAAG,SAAfA,YAAe,CAACrP,EAAD;AACnB8O,IAAAA,YAAY,CAAC,UAAC3C,KAAD;AAAA,aAAW,UAAIA,KAAJ,EAAWmD,MAAX,CAAkB,UAACN,IAAD;AAAA,eAAUA,IAAI,CAAChP,EAAL,KAAYA,EAAtB;AAAA,OAAlB,CAAX;AAAA,KAAD,CAAZ;AACD,GAFD;;AAIA,MAAMuP,YAAY,GAAGV,SAAS,CAAC9R,GAAV,CAAc,UAACiS,IAAD,EAAO1C,KAAP;AAAA,WACjCA,KAAK,GAAGsC,SAAR,GACE9S,mBAAA,CAAC8R,YAAD,eACMoB,IADN;AAEEhU,MAAAA,GAAG,EAAEgU,IAAI,CAAChP,EAFZ;AAGEa,MAAAA,OAAO,EAAEwO,YAHX;AAIErB,MAAAA,gBAAgB,EAAEA;AAJpB,OADF,GAOI,IAR6B;AAAA,GAAd,CAArB;AAWA,MAAMwB,cAAc,GAAG9N,YAAY,CACjC5F,mBAAA,CAACqR,iBAAD;AAAmBjH,IAAAA,SAAS,EAAEA;AAAW3I,IAAAA,SAAS,EAAEA;GAApD,EACGgS,YADH,CADiC,EAIjCnO,OAJiC,CAAnC;AAOA,SACEtF,mBAAA,CAACkR,uBAAD;AACEC,IAAAA,YAAY,EAAE;AAAEJ,MAAAA,eAAe,EAAfA,eAAF;AAAmBC,MAAAA,sBAAsB,EAAtBA,sBAAnB;AAA2CC,MAAAA,oBAAoB,EAApBA;AAA3C;GADhB,EAGG9U,QAHH,EAIGuX,cAJH,CADF;AAQD;;IC3HYC,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAMC,UAAU,CAAC/C,eAAD,CAAhB;AAAA;;;;;;;ICIdgD,IAAI,GAAG,SAAPA,IAAO;MAAG1X,gBAAAA;MAAUsF,iBAAAA;MAAcC;;AAC7C,SACE1B,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAKM,gBAAO,CAAC+R,IAAb,UAAqBrS,SAArB,WAAqBA,SAArB,GAAkC,EAAlC;AAAf,KAA2DC,IAA3D,GACGvF,QADH,CADF;AAKD;;;;;;;ICKY4X,QAAQ,GAAG,SAAXA,QAAW;MACtB5X,gBAAAA;MACAsF,iBAAAA;MACAuS,cAAAA;8BACAC;MAAAA,4CAAc;6BACdC;MAAAA,0CAAa;MACbC,oBAAAA;6BACAC;MAAAA,0CAAaD,YAAY,GAAG,EAAH,GAAQ;4BACjCE;MAAAA,wCAAY;2BACZtW;MAAAA,sCAAW;2BACXuW;MAAAA,sCAAW;wBACXxW;MAAAA,gCAAQ;MACL4D;;AAEH,MAAM8L,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAI,CAACrR,QAAL,EAAe;AAEf,WAAO6D,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAAA,aAClCvQ,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AACxBxS,QAAAA,QAAQ,EAAEwS,KAAK,CAACI,KAAN,CAAY5S,QAAZ,KAAyBsF,SAAzB,GAAqCkN,KAAK,CAACI,KAAN,CAAY5S,QAAjD,GAA4DA,QAD9C;AAExBD,QAAAA,KAAK,EAAEyS,KAAK,CAACI,KAAN,CAAY7S,KAAZ,KAAsBuF,SAAtB,GAAkCkN,KAAK,CAACI,KAAN,CAAY7S,KAA9C,GAAsDA;AAFrC,OAA1B,CADkC;AAAA,KAA7B,CAAP;AAMD,GATD;;AAWA,SACEkC,mBAAA,WAAA,eACM0B,IADN;AAEE3D,IAAAA,QAAQ,EAAEA,QAFZ;AAGE2B,IAAAA,KAAK;AAAI6U,MAAAA,eAAe,EAAEH;AAArB,OAAoC1S,IAAI,CAAChC,KAAzC,CAHP;AAIE+B,IAAAA,SAAS,EAAKM,gBAAO,CAACyS,QAAb,UAAyBH,SAAS,GAAGtS,gBAAO,CAAC,YAAD,CAAV,GAA2B,EAA7D,WAAmEN,SAAnE,WAAmEA,SAAnE,GAAgF,EAAhF;AAJX,MAMGuS,MAAM,IAAIhU,mBAAA,SAAA;AAAQyB,IAAAA,SAAS,EAAEkC,gBAAY,CAAC,SAAD;GAA/B,EAA6CqQ,MAA7C,CANb,EAOGA,MAAM,IAAI,CAACE,UAAX,IACClU,mBAAA,CAACsB,UAAD;AACEC,IAAAA,OAAO,EAAE0S;AACTzS,IAAAA,GAAG,EAAC;mBACQ;AACZC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,QAAD,CAAZ,UAA0BuS,QAAQ,GAAGvS,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAA3D,WACPjE,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EADpB;GAJX,EAQGiS,MARH,CARJ,EAmBGxG,cAAc,EAnBjB,CADF;AAuBD;;;;;;;ICvDYiH,WAAW,GAAG,SAAdA,WAAc;MACzBtY,gBAAAA;MACA4B,gBAAAA;MACAD,aAAAA;MACA2D,iBAAAA;MACAiT,YAAAA;wBACAjO;MAAAA,gCAAQ;MACL/E;;AAEH,MAAM8L,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WACrBxN,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAC3B,UAAI,CAACA,KAAL,EAAY;AACV,eAAO,IAAP;AACD;;AAED,UAAMoE,YAAY,GAAG3U,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AAC7CxS,QAAAA,QAAQ,EAAEwS,KAAK,CAACI,KAAN,CAAY5S,QAAZ,KAAyBsF,SAAzB,GAAqCkN,KAAK,CAACI,KAAN,CAAY5S,QAAjD,GAA4DA,QADzB;AAE7CD,QAAAA,KAAK,EAAEyS,KAAK,CAACI,KAAN,CAAY7S,KAAZ,KAAsBuF,SAAtB,GAAkCkN,KAAK,CAACI,KAAN,CAAY7S,KAA9C,GAAsDA;AAFhB,OAA1B,CAArB;;AAKA,UAAI4W,IAAI,IAAIA,IAAI,GAAG,CAAnB,EAAsB;AACpB,eAAO1U,mBAAA,MAAA;AAAKyB,UAAAA,SAAS,EAAKM,gBAAO,CAAC,SAAS2S,IAAV,CAAZ,SAA+B3S,gBAAO,CAAC6S;SAArD,EAAgED,YAAhE,CAAP;AACD;;AAED,aAAOA,YAAP;AACD,KAfD,CADqB;AAAA,GAAvB;;AAkBA,SACE3U,mBAAA,MAAA,eACM0B,IADN;4BAAA;AAGED,IAAAA,SAAS,EAAKM,gBAAO,CAAC,cAAD,CAAZ,UAAgCN,SAAS,GAAGA,SAAH,GAAe,EAAxD,WACPiT,IAAI,IAAIA,IAAI,GAAG,CAAf,GAAsB3S,gBAAO,CAAC2S,IAA9B,SAAsC3S,gBAAO,CAAC,UAAU2S,IAAX,CAA7C,GAAkE,EAD3D,UAEL3S,gBAAO,CAAC0E,KAAD;AALb,MAOG+G,cAAc,EAPjB,CADF;AAWD;;;;;;;;;;;ICvCYqH,cAAc,GAAG,SAAjBA,cAAiB;MAAG1Y,gBAAAA;MAAU2B,aAAAA;MAAO2D,iBAAAA;MAAcC;;AAC9D,SACE1B,mBAAA,CAACsB,UAAD,eACMI,IADN;AAEEH,IAAAA,OAAO,EAAC,UAFV;AAGEC,IAAAA,GAAG,EAAC,KAHN;AAIEC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,kBAAD,CAAZ,UAAoCjE,KAAK,GAAGiE,gBAAO,CAACjE,KAAX,GAAmB,EAA5D,WAAkE2D,SAAlE,WAAkEA,SAAlE,GAA+E,EAA/E;AAJX,MAMGtF,QANH,CADF;AAUD;;;ICAY2Y,SAAS,GAAG,SAAZA,SAAY;MACvB3Y,gBAAAA;MACAsF,iBAAAA;MACA3D,aAAAA;MACAiX,oBAAAA;MACAC,eAAAA;MACAC,wBAAAA;mCACAC;MAAAA,8DAA2B;MAC3BC,kBAAAA;MACAC,gBAAAA;MACAC,mBAAAA;MACAC,oBAAAA;MACG5T;;AAEH,SACE1B,mBAAA,MAAA,eACM0B,IADN;AAEED,IAAAA,SAAS,EAAKM,gBAAO,CAAC,YAAD,CAAZ,UAA8BjE,KAAK,GAAGiE,gBAAO,CAACjE,KAAX,GAAmB,EAAtD,WAA4D2D,SAA5D,WAA4DA,SAA5D,GAAyE,EAAzE;AAFX,MAIGtF,QAJH,EAMG,CAACgZ,UAAU,IAAIJ,YAAf,KACC/U,mBAAA,MAAA;AACEN,IAAAA,KAAK,EAAE;AAAE6V,MAAAA,UAAU,EAAKD,YAAL;AAAZ;AACP7T,IAAAA,SAAS,EAAKM,gBAAO,CAAC,gBAAD,CAAZ,UACPsT,WAAW,QAAX,IAAAA,WAAW,CAAE5T,SAAb,GAAyB4T,WAAW,CAAC5T,SAArC,GAAiD,EAD1C;GAFX,EAMG0T,UAAU,IAAI,CAACrX,KAAf,IACCkC,mBAAA,CAAC6U,cAAD,eAAoBQ,WAApB;AAAiC5T,IAAAA,SAAS,EAAE,EAA5C;AAAgDyC,IAAAA,EAAE,EAAEkR;AAApD,MACGD,UADH,CAPJ,EAWGrX,KAAK,IAAIiX,YAAT,IACC/U,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;GAAxB,EACE/B,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEM,gBAAO,CAACyT;AAAStR,IAAAA,EAAE,EAAE8Q;GAAtC,EACGC,gBAAgB,IAAIC,wBAAwB,KAAK,QAAjD,IACClV,mBAAA,CAAC6D,IAAD;AACEpC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,YAAD,CAAZ,SAA8BA,gBAAO,CAAC,mBAAD;AAC9C+B,IAAAA,IAAI,EAAEmR;GAFR,CAFJ,EAOGF,YAPH,EAQGE,gBAAgB,IAAIC,wBAAwB,KAAK,OAAjD,IACClV,mBAAA,CAAC6D,IAAD;AACEpC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,YAAD,CAAZ,SAA8BA,gBAAO,CAAC,kBAAD;AAC9C+B,IAAAA,IAAI,EAAEmR;GAFR,CATJ,CADF,CAZJ,CAPJ,CADF;AA0CD;;;;;;;ICpEYQ,KAAK,GAAG,SAARA,KAAQ;MAAGtZ,gBAAAA;MAAUsF,iBAAAA;yBAAWiU;MAAAA,kCAAS;MAAUhU;;AAC9D,SACE1B,mBAAA,QAAA,eACM0B,IADN;AAEED,IAAAA,SAAS,GAAKiU,MAAM,GAAG/R,gBAAY,CAAC,SAAD,CAAf,GAA6B,EAAxC,UAA8C5B,gBAAO,CAAC,OAAD,CAArD,UAAkEN,SAAlE,WAAkEA,SAAlE,GAA+E,EAA/E;AAFX,MAIGtF,QAJH,CADF;AAQD;;;;;;;;;;;ACZD,IAAMwZ,SAAS,GAAG,CAAC,MAAD,EAAS,MAAT,EAAiB,gBAAjB,CAAlB;IAqBaC,KAAK,GAAG,SAARA,KAAQ;;;wBACnB9X;MAAAA,gCAAQ;MACR2D,iBAAAA;MACAoU,YAAAA;MACAnW,aAAAA;MACAoW,oBAAAA;MACA3T,YAAAA;MACA4T,iBAAAA;MACGrU;;AAEH9B,EAAAA,SAAS,CAAC;AACR,QAAIiW,IAAI,KAAKxS,SAAb,EAAwB;AACtB,YAAM,IAAIzB,KAAJ,CAAU,yDAAV,CAAN;AACD;AACF,GAJQ,EAIN,EAJM,CAAT;AAMA,MAAMoU,eAAe,GAAG,CAACjU,gBAAO,CAAC,OAAD,CAAR,CAAxB;AACAjE,EAAAA,KAAK,IAAIkY,eAAe,CAACrT,IAAhB,CAAqBZ,gBAAO,CAAC,OAAD,CAA5B,CAAT;AACC4T,EAAAA,SAAmC,CAAChU,QAApC,CAA6CQ,IAA7C,KACC6T,eAAe,CAACrT,IAAhB,CAAqBZ,gBAAO,CAAC,qBAAD,CAA5B,CADD;AAEDN,EAAAA,SAAS,IAAIuU,eAAe,CAACrT,IAAhB,CAAqBlB,SAArB,CAAb;AAEA,MAAMwU,cAAc,GAAG,CAAClU,gBAAO,CAAC,SAAD,CAAR,CAAvB;AACC4T,EAAAA,SAAmC,CAAChU,QAApC,CAA6CQ,IAA7C,KACC8T,cAAc,CAACtT,IAAf,CAAoBZ,gBAAO,CAAC,cAAD,CAA3B,CADD;AAGD,SACE/B,mBAAA,MAAA,eACM8V,YADN;AAEEpW,IAAAA,KAAK,eAAOA,KAAP,CAFP;AAGE+B,IAAAA,SAAS,EAAKM,gBAAO,CAAC,eAAD,CAAZ,mCAAiC+T,YAAjC,oBAAiCA,YAAY,CAAErU,SAA/C,oCAA4D,EAA5D,WACPU,IAAI,KAAK,QAAT,GAAoBwB,gBAAY,CAAC,QAAD,CAAhC,GAA6C,EADtC;AAHX,MAOE3D,mBAAA,QAAA,eACM0B,IADN;uBAEmBqU,SAFnB;AAGE5T,IAAAA,IAAI,EAAEA,IAHR;AAIE0T,IAAAA,IAAI,EAAEA,IAJR;AAKEpU,IAAAA,SAAS,EAAEuU,eAAe,CAAC5U,IAAhB,CAAqB,GAArB;AALb,KAPF,EAcGtD,KAAK,IAAIkC,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEwU,cAAc,CAAC7U,IAAf,CAAoB,GAApB;AAA0B0C,IAAAA,IAAI,EAAEF,KAAK,CAACsS;GAAvD,CAdZ,CADF;AAkBD;;ACrEM,IAAMC,SAAS,GAAG,SAAZA,SAAY,CACvB3G,gBADuB,EAEvBC,sBAFuB;MAEvBA;AAAAA,IAAAA,yBAAiD;;;AAEjD,MAAM2G,cAAc,GAAG,SAAjBA,cAAiB,CAAC3Q,KAAD;AAAA,WAAkB+J,gBAAgB,CAAC/J,KAAD,CAAlC;AAAA,GAAvB;;AAEA8H,EAAAA,eAAe,CAAC;AACdrC,IAAAA,MAAM,CAACmC,gBAAP,CAAwB,QAAxB,EAAkC+I,cAAlC;AAEA,WAAO;AACLlL,MAAAA,MAAM,CAACoC,mBAAP,CAA2B,QAA3B,EAAqC8I,cAArC;AACD,KAFD;AAGD,GANc,YAMR3G,sBANQ,EAAf;AAOD,CAbM;;;IC4BM4G,MAAM,GAAG,SAATA,MAAS;MACpBla,gBAAAA;MACA0Z,YAAAA;2BACA9X;MAAAA,sCAAW;MACXgY,iBAAAA;MACAO,mBAAAA;MACAC,mBAAAA;mCACAC;MAAAA,uDAAoB;MACpB/U,iBAAAA;wBACA3D;MAAAA,gCAAQ;wBACRqB;MAAAA,gCAAQ;MACRsX,gBAAAA;MACAC,eAAAA;MACGhV;;AAEH,kBAAgC/C,QAAQ,CAAC,KAAD,CAAxC;AAAA,MAAOgY,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAA4BjY,QAAQ,CAAC,EAAD,CAApC;AAAA,MAAO6U,MAAP;AAAA,MAAeqD,SAAf;;AACA,mBAA8BlY,QAAQ,CAAC,EAAD,CAAtC;AAAA,MAAOmY,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAAwCpY,QAAQ,CAAoB,EAApB,CAAhD;AAAA,MAAOqY,YAAP;AAAA,MAAqBC,eAArB;;AACA,MAAMC,kBAAkB,GAAG9Q,MAAM,CAAiB,IAAjB,CAAjC;AACA,MAAM+Q,mBAAmB,GAAG/Q,MAAM,CAAiB,IAAjB,CAAlC;AAEAkJ,EAAAA,YAAY,CACV,UAAC7J,KAAD;AAAA,WAAuB,CAAEA,KAAK,CAACzC,MAAN,CAAyBoU,OAAzB,CAAiC,gBAAjC,CAAF,IAAwDT,QAA/E;AAAA,GADU,EAEV;AACEC,IAAAA,WAAW,CAAC,CAACD,QAAF,CAAX;AACD,GAJS,EAKVA,QALU,CAAZ;;AAQA,MAAMU,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAI,CAACV,QAAD,IAAa,CAACQ,mBAAmB,CAAC9Q,OAAlC,IAA6C,CAAC6Q,kBAAkB,CAAC7Q,OAArE,EAA8E;AAC5E;AACD;;AACD,QAAMiR,YAAY,GAAGpM,MAAM,CAACE,WAA5B;AACA,QAAMmM,0BAA0B,GAC9BL,kBAAkB,CAAC7Q,OAAnB,CAA2BgG,qBAA3B,GAAmD7B,MAAnD,GACA0M,kBAAkB,CAAC7Q,OAAnB,CAA2BgG,qBAA3B,GAAmDhE,MADnD,GAEA8O,mBAAmB,CAAC9Q,OAApB,CAA4BgG,qBAA5B,GAAoDhE,MAHtD;;AAKA,QAAIkP,0BAA0B,GAAGD,YAAjC,EAA+C;AAC7CL,MAAAA,eAAe,CAAC;AAAE3M,QAAAA,GAAG,EAAE,SAAP;AAAkBE,QAAAA,MAAM,EAAE;AAA1B,OAAD,CAAf;AACD,KAFD,MAEO;AACLyM,MAAAA,eAAe,CAAC;AAAE3M,QAAAA,GAAG,EAAE,CAAP;AAAUE,QAAAA,MAAM,EAAE;AAAlB,OAAD,CAAf;AACD;AACF,GAfD;;AAiBA2L,EAAAA,SAAS,CAACkB,cAAD,EAAiB,CAACV,QAAD,CAAjB,CAAT;AAEApJ,EAAAA,eAAe,CAAC;AACd8J,IAAAA,cAAc;AACf,GAFc,EAEZ,CAACV,QAAD,CAFY,CAAf;;AAIA,MAAMa,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACjH,KAAD;AAAA,WAAyB,UAAC9K,KAAD;AACrD;;;;AAKAsR,MAAAA,UAAU,CAACxG,KAAK,CAACI,KAAN,CAAYxU,QAAb,CAAV;AAEA,UAAIsb,QAAJ;;AAGA,MAEO;AACLA,QAAAA,QAAQ,GAAGlH,KAAK,CAACI,KAAN,CAAYxR,KAAvB;AACD;;AAED,UAAIsX,QAAJ,EAAc;AACZ;AACA;AACA;AACA;AACA,YAAMiB,WAAW,GAAQjS,KAAK,CAACiS,WAAN,IAAqBjS,KAA9C;AACA,YAAMkS,WAAW,GAAG,IAAID,WAAW,CAACE,WAAhB,CAA4BF,WAAW,CAACvV,IAAxC,EAA8CuV,WAA9C,CAApB;AAEA1Y,QAAAA,MAAM,CAAC6Y,cAAP,CAAsBF,WAAtB,EAA2E,QAA3E,EAAqF;AACnFG,UAAAA,QAAQ,EAAE,IADyE;AAEnF3Y,UAAAA,KAAK,EAAE;AAAEA,YAAAA,KAAK,EAAEsY;AAAT;AAF4E,SAArF;AAKAhB,QAAAA,QAAQ,CAACkB,WAAD,EAAsDpH,KAAtD,CAAR;AACD;;AAEDwG,MAAAA,UAAU,CAAEtR,KAAK,CAACsS,aAAN,CAAoCC,SAAtC,CAAV;AACApB,MAAAA,WAAW,CAAC,KAAD,CAAX;AACD,KAnC6B;AAAA,GAA9B;AAqCA;;;;;;AAIA,MAAMqB,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WACpBjY,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAAA,aAC3BvQ,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AACxB2H,QAAAA,cAAc,EAAEV,qBAAqB,CAACjH,KAAD,CADb;AAExB4H,QAAAA,QAAQ,EAAE5H,KAAK,CAACI,KAAN,CAAYxR,KAAZ,KAAsBA,KAFR;AAGxBqU,QAAAA,MAAM,EAAEA;AAHgB,OAA1B,CAD2B;AAAA,KAA7B,CADoB;AAAA,GAAtB;;AASA,MAAM4E,YAAY,GAAG,SAAfA,YAAe;AAAA,WACnBpY,mBAAA,CAAC4V,KAAD;AACE1N,MAAAA,SAAS;AACTuO,MAAAA,QAAQ,EAAE4B;AACV5W,MAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;AAClB+T,MAAAA,YAAY,EAAE;AAAErU,QAAAA,SAAS,EAAEM,gBAAO,CAAC,uBAAD;AAApB;AACdI,MAAAA,IAAI,EAAC;AACL0T,MAAAA,IAAI,EAAC;AACLS,MAAAA,WAAW,EAAEE;KAPf,CADmB;AAAA,GAArB;;AAYA,MAAM6B,aAAa,GAAG,SAAhBA,aAAgB,CAAC5S,KAAD;AACpBoR,IAAAA,SAAS,CAACpR,KAAK,CAACsS,aAAN,CAAoB5Y,KAArB,CAAT;AACD,GAFD;;AAIA,MAAMmZ,UAAU,GAAG,SAAbA,UAAa;AACjB,QAAIxa,KAAJ,EAAW;AACT,aAAOkC,mBAAA,CAAC6D,IAAD;AAAMpC,QAAAA,SAAS,EAAEM,gBAAO,CAAC,SAAD;AAAa+B,QAAAA,IAAI,EAAEF,KAAK,CAACsS;OAAjD,CAAP;AACD;;AACD,QAAI/W,KAAK,CAACW,MAAN,KAAiB,CAAjB,IAAsB4W,OAA1B,EAAmC;AACjC,aAAO1W,mBAAA,CAAC6D,IAAD;AAAMrC,QAAAA,GAAG,EAAC;AAAMsC,QAAAA,IAAI,EAAEF,KAAK,CAAC2U;AAAWvS,QAAAA,OAAO,EAAE0Q;OAAhD,CAAP;AACD;;AACD,WAAO,IAAP;AACD,GARD;AAUA;;;AACA9W,EAAAA,SAAS,CAAC;AACR,yDAAkBzD,QAAlB,wCAA4B;AAAA,UAAnBoU,KAAmB;;AAC1B,UAAIA,KAAK,CAACI,KAAN,CAAYxR,KAAZ,KAAsBA,KAA1B,EAAiC;AAC/B4X,QAAAA,UAAU,CAACxG,KAAK,CAACI,KAAN,CAAYxU,QAAb,CAAV;AACD;AACF;AACF,GANQ,EAMN,EANM,CAAT;AAQA,MAAMuG,iBAAiB,GAAG,EAA1B;AACAiU,EAAAA,QAAQ,IAAIjU,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAAC4U,QAA/B,CAAZ;AACA7Y,EAAAA,KAAK,IAAI4E,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAACjE,KAA/B,CAAT;AACAC,EAAAA,QAAQ,IAAI2E,iBAAiB,CAACC,IAAlB,CAAuBZ,gBAAO,CAAChE,QAA/B,CAAZ;AAEA,SACEiC,mBAAA,MAAA,eACO0B,IADP;AAEEQ,IAAAA,GAAG,EAAEgV,kBAFP;AAGEzV,IAAAA,SAAS,qBAAmBM,gBAAO,CAACyW,MAA3B,SAAqC9V,iBAAiB,CAACtB,IAAlB,CAAuB,GAAvB,CAArC,UACPK,SADO,WACPA,SADO,GACM,EADN;AAHX,MAOEzB,mBAAA,SAAA;AACEgG,IAAAA,OAAO,EAAE;AAAA,aAAM4Q,WAAW,CAAC,CAACD,QAAF,CAAjB;AAAA;AACTxU,IAAAA,IAAI,EAAC;AACL0T,IAAAA,IAAI,EAAEA;AACN9X,IAAAA,QAAQ,EAAEA;qBACKA;oBACDD;qBACC6Y;qBACD;uBACGZ;wBACCQ;GAVpB,EAYEvW,mBAAA,MAAA;;AAAkByB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD;GAApC,EACG5C,KAAK,CAACW,MAAN,KAAiB,CAAjB,IAAsBwW,WAAtB,IACCtW,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,aAAD;GAAxB,EAA0CuU,WAA1C,CAFJ,EAIGnX,KAAK,CAACW,MAAN,GAAe,CAAf,IAAoBE,mBAAA,OAAA,MAAA,EAAO8W,OAAP,CAJvB,CAZF,EAkBE9W,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD;GAAvB,EACGuW,UAAU,EADb,EAEEtY,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;AAAmB+B,IAAAA,IAAI,EAAEF,KAAK,CAAC6U;GAAvD,CAFF,CAlBF,CAPF,EA8BEzY,mBAAA,MAAA;AACEkC,IAAAA,GAAG,EAAEiV;AACL1V,IAAAA,SAAS,oBAAkBM,gBAAO,CAAC,cAAD;AAClCrC,IAAAA,KAAK;AAAIoX,MAAAA,OAAO,EAAEH,QAAQ,GAAG,OAAH,GAAa;AAAlC,OAA6CK,YAA7C;GAHP,EAKGjW,KAAK,CAAC2P,OAAN,CAAcvU,QAAd,KAA2BA,QAAQ,CAAC2D,MAAT,GAAkB,EAA7C,IAAmDsY,YAAY,EALlE,EAMEpY,mBAAA,KAAA;AAAI6F,IAAAA,IAAI,EAAC;AAAUC,IAAAA,QAAQ,EAAE,CAAC;GAA9B,EACGmS,aAAa,EADhB,CANF,CA9BF,CADF;AA2CD;;;IC1MYS,MAAM,GAAG,SAATA,MAAS;MACpBvc,gBAAAA;MACAsF,iBAAAA;2BACA0W;MAAAA,sCAAW;MACXD,sBAAAA;MACAna,gBAAAA;MACAyV,cAAAA;MACG9R;;AAEH,kBAAoC/C,QAAQ,CAAC,IAAD,CAA5C;AAAA,MAAOga,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACpT,KAAD;AACtB,QAAIyS,cAAJ,EAAoBA,cAAc,CAACzS,KAAD,CAAd;AACrB,GAFD;;AAIA7F,EAAAA,SAAS,CAAC;AACR,QAAI4T,MAAJ,EAAY;AACVoF,MAAAA,aAAa,CAACzc,QAAQ,CAACoD,WAAT,GAAuBuZ,KAAvB,CAA6BtF,MAAM,CAACjU,WAAP,EAA7B,MAAuD,IAAxD,CAAb;AACD,KAFD,MAEO;AACLqZ,MAAAA,aAAa,CAAC,IAAD,CAAb;AACD;AACF,GANQ,EAMN,CAACpF,MAAD,CANM,CAAT;AAQA,MAAI,CAACmF,UAAL,EAAiB,OAAO,IAAP;AAEjB,SACE3Y,mBAAA,KAAA,eACM0B,IADN;AAEED,IAAAA,SAAS,GAAK0W,QAAQ,GAAGpW,gBAAO,CAAC,iBAAD,CAAV,GAAgC,EAA7C,WACPhE,QAAQ,GAAGgE,gBAAO,CAAChE,QAAX,GAAsB,EADvB,WAEL0D,SAFK,WAELA,SAFK,GAEQ,EAFR,CAFX;AAKEuE,IAAAA,OAAO,EAAE6S,eALX;AAMErQ,IAAAA,UAAU,EAAE,oBAACmK,CAAD;AACVA,MAAAA,CAAC,CAACzT,GAAF,KAAU,OAAV,IAAqB2Z,eAAe,CAAClG,CAAD,CAApC;AACD,KARH;qBASiBwF,QATjB;AAUEtS,IAAAA,IAAI,EAAC,QAVP;AAWEC,IAAAA,QAAQ,EAAE/H,QAAQ,GAAG,CAAC,CAAJ,GAAQ;AAX5B,MAaG5B,QAbH,CADF;AAiBD;;;;;;;IC9CY4c,QAAQ,GAAG,SAAXA,QAAW;wBACtBjb;MAAAA,gCAAQ;2BACRC;MAAAA,sCAAW;MACX0D,iBAAAA;uBACAuX;MAAAA,8BAAO;MACPC,wBAAAA;MACAC,sBAAAA;MACGxX;;AAEH,SACE1B,mBAAA,MAAA;AAAKyB,IAAAA,SAAS,EAAKM,gBAAO,CAAC,kBAAD,CAAZ,UAAoCkX,gBAAgB,GAAGA,gBAAH,GAAsB,EAA1E;GAAd,EACEjZ,mBAAA,WAAA,eACM0B,IADN;AAEEsX,IAAAA,IAAI,EAAEA,IAFR;AAGEvX,IAAAA,SAAS,GAAK3D,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAAhC,UAAsCA,gBAAO,CAAC,UAAD,CAA7C,UAA6DN,SAA7D,WAA6DA,SAA7D,GAA0E,EAA1E,CAHX;AAIE1D,IAAAA,QAAQ,EAAEA;AAJZ,KADF,EAOGD,KAAK,IACJkC,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,SAAD,CAAZ,UAA2BmX,cAA3B,WAA2BA,cAA3B,GAA6C,EAA7C;AAAmDpV,IAAAA,IAAI,EAAEF,KAAK,CAACsS;GAA9E,CARJ,CADF;AAaD;;;;;;AC5BM,IAAMiD,UAAU,GAAG,SAAbA,UAAa,CAACha,KAAD,EAAiBmX,WAAjB,EAAuCnU,IAAvC;AACxB,kBAAmBxD,QAAQ,CAACgI,UAAU,CAAC,EAAD,CAAX,CAA3B;AAAA,MAAOyO,QAAP;;AACA,mBAAkBzW,QAAQ,CAACgI,UAAU,CAAC,EAAD,CAAX,CAA1B;AAAA,MAAOqO,OAAP;;AACA,mBAAkBrW,QAAQ,CAACgI,UAAU,CAAC,EAAD,CAAX,CAA1B;AAAA,MAAO1C,OAAP;;AACA,mBAAsDtF,QAAQ,CAAC,KAAD,CAA9D;AAAA,MAAOya,mBAAP;AAAA,MAA4BC,sBAA5B;;AACA,mBAAgC1a,QAAQ,CAAC,KAAD,CAAxC;AAAA,MAAO2a,QAAP;AAAA,MAAiBC,WAAjB;;AAEA3Z,EAAAA,SAAS,CAAC;AACR,QAAIT,KAAK,QAAL,IAAAA,KAAK,CAAEW,MAAP,IAAiBwW,WAAjB,IAAgCnU,IAAI,KAAK,gBAAzC,IAA6DA,IAAI,KAAK,MAA1E,EAAkF;AAChFkX,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACD;AACF,GAJQ,EAIN,EAJM,CAAT;AAMAzZ,EAAAA,SAAS,CAAC;AACR,QAAIT,KAAK,QAAL,IAAAA,KAAK,CAAEW,MAAP,IAAiBwZ,QAArB,EAA+B;AAC7BD,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACD,KAFD,MAEO,IAAI,CAAC/C,WAAD,IAAgB,CAACgD,QAAjB,IAA6BnX,IAAI,KAAK,gBAAtC,IAA0DA,IAAI,KAAK,MAAvE,EAA+E;AACpFkX,MAAAA,sBAAsB,CAAC,KAAD,CAAtB;AACD;AACF,GANQ,EAMN,CAACla,KAAD,EAAQmX,WAAR,EAAqBnU,IAArB,EAA2BmX,QAA3B,CANM,CAAT;AAQA,SAAO;AACLlE,IAAAA,QAAQ,EAARA,QADK;AAELJ,IAAAA,OAAO,EAAPA,OAFK;AAGL/Q,IAAAA,OAAO,EAAPA,OAHK;AAILmV,IAAAA,mBAAmB,EAAnBA,mBAJK;AAKLC,IAAAA,sBAAsB,EAAtBA,sBALK;AAMLC,IAAAA,QAAQ,EAARA,QANK;AAOLC,IAAAA,WAAW,EAAXA;AAPK,GAAP;AASD,CA9BM;;;;;;;AC2BA,IAAMC,OAAO,GAAG,SAAVA,OAAU;MACrBrd,gBAAAA;MACAsF,iBAAAA;MACA3D,aAAAA;MACAiX,oBAAAA;MACAC,eAAAA;MACAC,wBAAAA;MACAC,gCAAAA;MACAC,kBAAAA;MACAC,gBAAAA;gCACAqE;MAAAA,gDAAgB;MAChBL,2BAAAA;MACA9E,gBAAAA;MACAe,mBAAAA;MACAC,oBAAAA;MACAoE,kBAAAA;MACA/R,aAAAA;MACA5J,gBAAAA;MACA8X,YAAAA;MACA8D,sBAAAA;MACGjY;;AAEH,MAAM8L,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WACrBxN,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAAA,aAC3BvQ,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AACxBxS,QAAAA,QAAQ,EAARA;AADwB,OAA1B,CAD2B;AAAA,KAA7B,CADqB;AAAA,GAAvB;;AAOA,MAAM6b,YAAY,GAAG,EAArB;AAEAH,EAAAA,aAAa,IAAIG,YAAY,CAACjX,IAAb,CAAkBZ,gBAAO,CAAC,gBAAD,CAAzB,CAAjB;AACA0X,EAAAA,aAAa,IAAIL,mBAAjB,IAAwCQ,YAAY,CAACjX,IAAb,CAAkBZ,gBAAO,CAAC,uBAAD,CAAzB,CAAxC;AACA,GAAA2X,UAAU,QAAV,YAAAA,UAAU,CAAEjY,SAAZ,KAAyBmY,YAAY,CAACjX,IAAb,CAAkB+W,UAAU,CAACjY,SAA7B,CAAzB;AACA6S,EAAAA,QAAQ,IAAIsF,YAAY,CAACjX,IAAb,CAAkBZ,gBAAO,CAAC,UAAD,CAAzB,CAAZ;AACAjE,EAAAA,KAAK,IAAI8b,YAAY,CAACjX,IAAb,CAAkBZ,gBAAO,CAAC,OAAD,CAAzB,CAAT;AAEA,SACE/B,mBAAA,MAAA,eAAS0B,IAAT;AAAeD,IAAAA,SAAS,EAAKM,gBAAO,CAAC8L,OAAb,UAAwBpM,SAAS,GAAGA,SAAH,GAAe,EAAhD;AAAxB,MACEzB,mBAAA,CAAC8U,SAAD;AACEhX,IAAAA,KAAK,EAAEA;AACPiX,IAAAA,YAAY,EAAEA;AACdC,IAAAA,OAAO,EAAEA;AACTC,IAAAA,gBAAgB,EAAEA;AAClBC,IAAAA,wBAAwB,EAAEA;AAC1BC,IAAAA,UAAU,EAAEA;AACZC,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,WAAW,EAAEA;AACbC,IAAAA,YAAY,EAAEA;GAThB,EAWEtV,mBAAA,MAAA;AACEyB,IAAAA,SAAS,GAAKgY,aAAa,GAAG1X,gBAAO,CAAC,kBAAD,CAAV,GAAiC,EAAnD,WACP4X,cAAc,GAAGA,cAAH,GAAoB,EAD3B;GADX,EAKGhS,KAAK,IACJ3H,mBAAA,CAACyV,KAAD,eACMiE,UADN;AAEEjY,IAAAA,SAAS,EAAKM,gBAAO,CAAC4F,KAAb,SAAsBiS,YAAY,CAACxY,IAAb,CAAkB,GAAlB,CAFjC;AAGEyY,IAAAA,OAAO,EAAEhE;AAHX,MAKGlO,KALH,CANJ,EAcG6F,cAAc,EAdjB,CAXF,CADF,CADF;AAgCD,CArEM;;;ICnBMsM,eAAe,GAAG,SAAlBA,eAAkB;;;MAC7B3d,gBAAAA;wBACA2B;MAAAA,gCAAQ;MACRqX,kBAAAA;MACAE,mBAAAA;MACA0E,qBAAAA;MACGrY;;AAEH,oBAA8ByX,UAAU,EAAxC;AAAA,MAAQnE,OAAR,eAAQA,OAAR;AAAA,MAAiBI,QAAjB,eAAiBA,QAAjB;;AAEAxV,EAAAA,SAAS,CAAC;AACR,QAAIma,aAAa,CAAC/F,MAAd,KAAyB3Q,SAA7B,EAAwC;AACtCK,MAAAA,OAAO,CAAC5F,KAAR;AAGD;AACF,GANQ,EAMN,EANM,CAAT;;AAQA,MAAM0P,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WACrBxN,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAAA,aAC3BvQ,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AACxByJ,QAAAA,aAAa,EAAEhF,OADS;AAExBlX,QAAAA,KAAK,EAAEA,KAFiB;AAGxBmc,QAAAA,cAAc,EAAE9E,UAAU,GAAGC,QAAH,GAAc,KAHhB;AAIxBrX,QAAAA,QAAQ,EAAE2D,IAAI,CAAC3D;AAJS,OAA1B,CAD2B;AAAA,KAA7B,CADqB;AAAA,GAAvB;;AAUA,SACEiC,mBAAA,CAAC+T,QAAD,eAAcgG,aAAd,GACE/Z,mBAAA,CAACwZ,OAAD,eACM9X,IADN;AAEEiG,IAAAA,KAAK,EAAC,EAFR;AAGEyN,IAAAA,QAAQ,EAAEA,QAHZ;AAIED,IAAAA,UAAU,EAAEA,UAJd;AAKEE,IAAAA,WAAW,eACNA,WADM;AAET5T,MAAAA,SAAS,EAAKM,gBAAO,CAAC,yBAAD,CAAZ,UACPjE,KAAK,GAAGiE,gBAAO,CAAC,wBAAD,CAAV,GAAuC,EADrC,oCAELsT,WAFK,oBAELA,WAAW,CAAE5T,SAFR,oCAEqB,EAFrB;AAFA,MALb;AAWE3D,IAAAA,KAAK,EAAEA,KAXT;AAYEmX,IAAAA,gBAAgB,EAAErR,KAAK,CAACsS,OAZ1B;AAaElB,IAAAA,OAAO,EAAEA;AAbX,MAeGxH,cAAc,EAfjB,CADF,CADF;AAqBD;;;;;;;IC1CY0M,YAAY,GAAG,SAAfA,YAAe;;;MAC1B/X,YAAAA;MACA0T,YAAAA;MACAsE,kBAAAA;MACAhF,kBAAAA;MACAE,mBAAAA;MACAlW,aAAAA;MACArB,aAAAA;MACA2Y,gBAAAA;MACA7I,eAAAA;MACAD,gBAAAA;MACGjM;;AAEH,oBAQIyX,UAAU,CAACha,KAAD,EAAQgb,UAAR,oBAAQA,UAAU,CAAE7D,WAApB,EAAiCnU,IAAjC,CARd;AAAA,MACE6S,OADF,eACEA,OADF;AAAA,MAEEoE,mBAFF,eAEEA,mBAFF;AAAA,MAGEC,sBAHF,eAGEA,sBAHF;AAAA,MAIEC,QAJF,eAIEA,QAJF;AAAA,MAKEC,WALF,eAKEA,WALF;AAAA,MAMEnE,QANF,eAMEA,QANF;AAAA,MAOEnR,OAPF,eAOEA,OAPF;;AAUA,SACEjE,mBAAA,CAACwZ,OAAD,eACM9X,IADN;AAEEmU,IAAAA,IAAI,EAAEA,IAFR;AAGEpU,IAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD,CAHpB;AAIE2X,IAAAA,UAAU,EAAE;AACVxV,MAAAA,EAAE,EAAED,OADM;AAEVxC,MAAAA,SAAS,EAAKM,gBAAO,CAAC,aAAD,CAAZ,UAA+BuX,QAAQ,GAAGvX,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAA7D;AAFC,KAJd;AAQEqX,IAAAA,mBAAmB,EAAEA,mBARvB;AASEpE,IAAAA,OAAO,EAAEA,OATX;AAUElX,IAAAA,KAAK,EAAEA,KAVT;AAWEsX,IAAAA,QAAQ,EAAEA,QAXZ;AAYED,IAAAA,UAAU,EAAEA,UAZd;AAaEE,IAAAA,WAAW,eACNA,WADM;AAET5T,MAAAA,SAAS,EAAKM,gBAAO,CAAC,sBAAD,CAAZ,mCAAwCsT,WAAxC,oBAAwCA,WAAW,CAAE5T,SAArD,oCAAkE,EAAlE;AAFA,MAbb;AAiBE6T,IAAAA,YAAY,EAAE;AAjBhB,MAmBEtV,mBAAA,CAAC4V,KAAD,eACMuE,UADN;uBAEmBlW,OAFnB;wBAGoBnG,KAAK,GAAGkX,OAAH,GAAaI,QAHtC;AAIEqB,IAAAA,QAAQ,EAAEA,QAJZ;AAKE9I,IAAAA,OAAO,EAAE,iBAACgF,CAAD;AACPhF,MAAAA,QAAO,IAAIA,QAAO,CAACgF,CAAD,CAAlB;AACA4G,MAAAA,WAAW,CAAC,IAAD,CAAX;AACAF,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACD,KATH;AAUEzL,IAAAA,MAAM,EAAE,gBAAC+E,CAAD;;;AACN/E,MAAAA,OAAM,IAAIA,OAAM,CAAC+E,CAAD,CAAhB;AACA4G,MAAAA,WAAW,CAAC,KAAD,CAAX;AACA5G,MAAAA,CAAC,CAAC3P,MAAF,CAAS7D,KAAT,IACAgb,UADA,qCACAA,UAAU,CAAE7D,WADZ,aACA,sBAAyBxW,MADzB,IAEAqC,IAAI,KAAK,gBAFT,IAGAA,IAAI,KAAK,MAHT,GAIIkX,sBAAsB,CAAC,IAAD,CAJ1B,GAKIA,sBAAsB,CAAC,KAAD,CAL1B;AAMD,KAnBH;AAoBE5X,IAAAA,SAAS,EAAE2X,mBAAmB,GAAGrX,gBAAO,CAAC,gBAAD,CAAV,GAA+B,EApB/D;AAqBE8T,IAAAA,IAAI,EAAEA,IArBR;AAsBE/X,IAAAA,KAAK,EAAEA,KAtBT;AAuBEoG,IAAAA,EAAE,EAAE2R,IAvBN;AAwBE1W,IAAAA,KAAK,EAAEA,KAxBT;AAyBEgD,IAAAA,IAAI,EAAEA;AAzBR,KAnBF,CADF;AAiDD;;;;;;;IC7EYiY,YAAY,GAAG,SAAfA,YAAe;;;MAC1Bje,gBAAAA;MACA2B,aAAAA;MACA+X,YAAAA;MACAV,kBAAAA;MACAE,mBAAAA;MACA0E,qBAAAA;MACA5a,aAAAA;MACAsX,gBAAAA;MACA1Y,gBAAAA;MACG2D;;AAEH,oBAA8ByX,UAAU,CAACha,KAAD,CAAxC;AAAA,MAAQ6V,OAAR,eAAQA,OAAR;AAAA,MAAiBI,QAAjB,eAAiBA,QAAjB;;AAEAxV,EAAAA,SAAS,CAAC;AACR,QAAIma,aAAa,CAAC/F,MAAd,KAAyB3Q,SAA7B,EAAwC;AACtCK,MAAAA,OAAO,CAAC5F,KAAR;AAGD;AACF,GANQ,EAMN,EANM,CAAT;;AAQA,MAAM0P,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WACrBxN,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA6B,UAACoU,KAAD;AAAA,aAC3BvQ,KAAK,CAAC0N,YAAN,CAAmB6C,KAAnB,EAA0B;AACxByJ,QAAAA,aAAa,EAAEhF,OADS;AAExBlX,QAAAA,KAAK,EAAEA,KAFiB;AAGxBuc,QAAAA,OAAO,EAAE9J,KAAK,CAACI,KAAN,CAAYxR,KAAZ,KAAsBA,KAHP;AAIxB0W,QAAAA,IAAI,EAAEA,IAJkB;AAKxBoE,QAAAA,cAAc,EAAE9E,UAAU,GAAGC,QAAH,GAAc,KALhB;AAMxBqB,QAAAA,QAAQ,EAAEA,QANc;AAOxB1Y,QAAAA,QAAQ,EAAEwS,KAAK,CAACI,KAAN,CAAY5S,QAAZ,KAAyBsF,SAAzB,GAAqCkN,KAAK,CAACI,KAAN,CAAY5S,QAAjD,GAA4DA;AAP9C,OAA1B,CAD2B;AAAA,KAA7B,CADqB;AAAA,GAAvB;;AAaA,SACEiC,mBAAA,CAAC+T,QAAD,eAAcgG,aAAd,GACE/Z,mBAAA,CAACwZ,OAAD,eACM9X,IADN;AAEE3D,IAAAA,QAAQ,EAAEA,QAFZ;AAGE8X,IAAAA,IAAI,EAAEA,IAHR;AAIElO,IAAAA,KAAK,EAAC,EAJR;AAKEyN,IAAAA,QAAQ,EAAEA,QALZ;AAMED,IAAAA,UAAU,EAAEA,UANd;AAOEE,IAAAA,WAAW,eACNA,WADM;AAET5T,MAAAA,SAAS,EAAKM,gBAAO,CAAC,sBAAD,CAAZ,UACPjE,KAAK,GAAGiE,gBAAO,CAAC,qBAAD,CAAV,GAAoC,EADlC,oCAELsT,WAFK,oBAELA,WAAW,CAAE5T,SAFR,oCAEqB,EAFrB;AAFA,MAPb;AAaE3D,IAAAA,KAAK,EAAEA,KAbT;AAcEkX,IAAAA,OAAO,EAAEA,OAdX;AAeEC,IAAAA,gBAAgB,EAAErR,KAAK,CAACsS,OAf1B;AAgBEuD,IAAAA,aAAa,EAAE;AAhBjB,MAkBGjM,cAAc,EAlBjB,CADF,CADF;AAwBD;;;;;;;ICzDY8M,aAAa,GAAG,SAAhBA,aAAgB;;;MAC3Bne,gBAAAA;MACA2B,aAAAA;MACAqB,aAAAA;MACAmX,mBAAAA;MACAiE,mBAAAA;MACAlF,mBAAAA;MACAoB,gBAAAA;MACAC,eAAAA;MACGhV;;AAEH,oBAA4DyX,UAAU,CAACha,KAAD,EAAQmX,WAAR,CAAtE;AAAA,MAAQtB,OAAR,eAAQA,OAAR;AAAA,MAAiBoE,mBAAjB,eAAiBA,mBAAjB;AAAA,MAAsChE,QAAtC,eAAsCA,QAAtC;AAAA,MAAgDnR,OAAhD,eAAgDA,OAAhD;;AAEA,SACEjE,mBAAA,CAACwZ,OAAD,eACM9X,IADN;AAEE0X,IAAAA,mBAAmB,EAAEA,mBAFvB;AAGEpE,IAAAA,OAAO,EAAEA,OAHX;AAIEI,IAAAA,QAAQ,EAAEA,QAJZ;AAKEsE,IAAAA,UAAU,EAAE;AAAExV,MAAAA,EAAE,EAAED,OAAN;AAAexC,MAAAA,SAAS,EAAEM,gBAAO,CAAC,cAAD;AAAjC,KALd;AAMEsT,IAAAA,WAAW,eACNA,WADM;AAET5T,MAAAA,SAAS,EAAKM,gBAAO,CAAC,oBAAD,CAAZ,mCAAsCsT,WAAtC,oBAAsCA,WAAW,CAAE5T,SAAnD,oCAAgE,EAAhE;AAFA,MANb;AAUE3D,IAAAA,KAAK,EAAEA;AAVT,MAYEkC,mBAAA,CAACqW,MAAD,eACMkE,WADN;AAEEpb,IAAAA,KAAK,EAAEA,KAFT;AAGE4W,IAAAA,SAAS,EAAE9R,OAHb;AAIEnG,IAAAA,KAAK,EAAEA,KAJT;AAKEyY,IAAAA,WAAW,EAAEzY,KAAK,GAAGkX,OAAH,GAAaI,QALjC;AAMEqB,IAAAA,QAAQ,EAAEA,QANZ;AAOEC,IAAAA,OAAO,EAAEA,OAPX;AAQEJ,IAAAA,WAAW,EAAEA,WARf;AASE7U,IAAAA,SAAS,GAAK2X,mBAAmB,GAAGrX,gBAAO,CAAC,uBAAD,CAAV,GAAsC,EAA9D,oCACPwY,WADO,oBACPA,WAAW,CAAE9Y,SADN,oCACmB,EADnB;AATX,MAaGtF,QAbH,CAZF,CADF;AA8BD;;;;;;;ICzCYqe,eAAe,GAAG,SAAlBA,eAAkB;MAC7B3E,YAAAA;MACA/X,aAAAA;MACAqB,aAAAA;MACAwI,aAAAA;MACA2O,mBAAAA;MACAmE,qBAAAA;MACApF,mBAAAA;MACAoB,gBAAAA;MACA9I,gBAAAA;MACAC,eAAAA;MACAE,qBAAAA;MACAC,qBAAAA;MACAhQ,gBAAAA;MACG2D;;AAEH,oBAQIyX,UAAU,CAACha,KAAD,EAAQmX,WAAR,CARd;AAAA,MACEtB,OADF,eACEA,OADF;AAAA,MAEEoE,mBAFF,eAEEA,mBAFF;AAAA,MAGEC,sBAHF,eAGEA,sBAHF;AAAA,MAIEC,QAJF,eAIEA,QAJF;AAAA,MAKEC,WALF,eAKEA,WALF;AAAA,MAMEnE,QANF,eAMEA,QANF;AAAA,MAOEnR,OAPF,eAOEA,OAPF;;AAUA,kBAA0BtF,QAAQ,CAAC,KAAD,CAAlC;AAAA,MAAO2H,KAAP;AAAA,MAAcoU,QAAd;;AACA,mBAA0B/b,QAAQ,CAAC,KAAD,CAAlC;AAAA,MAAOgc,KAAP;AAAA,MAAcC,QAAd;;AAEA,SACE5a,mBAAA,CAACwZ,OAAD,eACM9X,IADN;AAEE3D,IAAAA,QAAQ,EAAEA,QAFZ;AAGE2b,IAAAA,UAAU,EAAE;AACVxV,MAAAA,EAAE,EAAED,OADM;AAEVxC,MAAAA,SAAS,EAAKM,gBAAO,CAAC,gBAAD,CAAZ,UAAkCuX,QAAQ,GAAGvX,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAAhE;AAFC,KAHd;AAOE8T,IAAAA,IAAI,EAAEA,IAPR;AAQElO,IAAAA,KAAK,EAAEA,KART;AASEyN,IAAAA,QAAQ,EAAEA,QATZ;AAUEC,IAAAA,WAAW,eACNA,WADM;AAET5T,MAAAA,SAAS,EAAEM,gBAAO,CAAC,sBAAD;AAFT,MAVb;AAcEjE,IAAAA,KAAK,EAAEA,KAdT;AAeEsb,IAAAA,mBAAmB,EAAEA,mBAfvB;AAgBEpE,IAAAA,OAAO,EAAEA;AAhBX,MAkBEhV,mBAAA,CAAC+Y,QAAD,eACM0B,aADN;AAEE3c,IAAAA,KAAK,EAAEA,KAFT;uBAGmB6J,KAAK,IAAI1D,OAH5B;wBAIoBnG,KAAK,GAAGkX,OAAH,GAAaI,QAJtC;AAKEkB,IAAAA,WAAW,EAAEA,WALf;AAMEnX,IAAAA,KAAK,EAAEA,KANT;AAOEsX,IAAAA,QAAQ,EAAEA,QAPZ;AAQE9I,IAAAA,OAAO,EAAE,iBAACgF,CAAD;AACPhF,MAAAA,QAAO,IAAIA,QAAO,CAACgF,CAAD,CAAlB;AACA4G,MAAAA,WAAW,CAAC,IAAD,CAAX;AACAF,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACAqB,MAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,KAbH;AAcE9M,IAAAA,MAAM,EAAE,gBAAC+E,CAAD;;;AACN/E,MAAAA,OAAM,IAAIA,OAAM,CAAC+E,CAAD,CAAhB;AACA4G,MAAAA,WAAW,CAAC,KAAD,CAAX;AACAmB,MAAAA,QAAQ,CAAC,KAAD,CAAR;AACA/H,MAAAA,CAAC,CAAC3P,MAAF,CAAS7D,KAAT,IAAkBsb,aAAlB,qCAAkBA,aAAa,CAAEnE,WAAjC,aAAkB,sBAA4BxW,MAA9C,GACIuZ,sBAAsB,CAAC,IAAD,CAD1B,GAEIA,sBAAsB,CAAC,KAAD,CAF1B;AAGD,KArBH;AAsBEvL,IAAAA,YAAY,EAAE,sBAAC6E,CAAD;AACZ7E,MAAAA,aAAY,IAAIA,aAAY,CAAC6E,CAAD,CAA5B;AACAiI,MAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,KAzBH;AA0BE7M,IAAAA,YAAY,EAAE,sBAAC4E,CAAD;AACZ5E,MAAAA,aAAY,IAAIA,aAAY,CAAC4E,CAAD,CAA5B;AACAiI,MAAAA,QAAQ,CAAC,KAAD,CAAR;AACD,KA7BH;AA8BEnZ,IAAAA,SAAS,EAAEM,gBAAO,CAAC,UAAD,CA9BpB;AA+BEkX,IAAAA,gBAAgB,EAAKlX,gBAAO,CAAC,kBAAD,CAAZ,UAAoCuE,KAAK,GAAGvE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAA/D,WACd4Y,KAAK,GAAG5Y,gBAAO,CAAC,OAAD,CAAV,GAAsB,EADb,WAEZhE,QAAQ,GAAGgE,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAFrB,WAE2BjE,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAFtD,CA/BlB;AAkCEmX,IAAAA,cAAc,EAAEnX,gBAAO,CAAC,YAAD;AAlCzB,KAlBF,CADF;AAyDD;;;;;;AC5FM,IAAM8Y,eAAe,GAAG,SAAlBA,eAAkB,CAACjQ,YAAD;AAC7B,kBAAqBjM,QAAQ,CAACgI,UAAU,CAAC,EAAD,EAAKiE,YAAY,CAACiL,IAAlB,CAAX,CAA7B;AAAA,MAAO5I,UAAP;;AACA,mBAAsCtO,QAAQ,CAAC,EAAD,CAA9C;AAAA,MAAO4X,WAAP;AAAA,MAAoBuE,cAApB;;AACA,mBAAkBnc,QAAQ,CAACgI,UAAU,CAAC,EAAD,EAAKiE,YAAY,CAACmK,YAAlB,CAAX,CAA1B;AAAA,MAAOC,OAAP;;AAEApV,EAAAA,SAAS,CAAC;AACR,QAAIgL,YAAY,CAAC9M,KAAb,IAAsB8M,YAAY,CAACoP,aAAvC,EAAsD;AACpDc,MAAAA,cAAc,CAAClQ,YAAY,CAACoP,aAAd,CAAd;AACD;;AAED,QACG,CAACpP,YAAY,CAAC9M,KAAd,IAAuB8M,YAAY,CAACuK,UAArC,IACC,CAACvK,YAAY,CAACoP,aAAd,IAA+B,CAACpP,YAAY,CAACmK,YAA7C,IAA6DnK,YAAY,CAACuK,UAF7E,EAGE;AACA2F,MAAAA,cAAc,MAAI7N,UAAJ,CAAd;AACD;;AAED,QACG,CAACrC,YAAY,CAAC9M,KAAd,IAAuB,CAAC8M,YAAY,CAACuK,UAArC,IAAmDvK,YAAY,CAACqP,cAAjE,IACC,CAACrP,YAAY,CAACoP,aAAd,IAA+B,CAACpP,YAAY,CAACmK,YAA7C,IAA6DnK,YAAY,CAACqP,cAF7E,EAGE;AACAa,MAAAA,cAAc,MAAIlQ,YAAY,CAACqP,cAAjB,CAAd;AACD;;AAED,QAAIrP,YAAY,CAACmK,YAAb,IAA6B,CAACnK,YAAY,CAACoP,aAA3C,IAA4DpP,YAAY,CAAC9M,KAA7E,EAAoF;AAClFgd,MAAAA,cAAc,CAAC9F,OAAD,CAAd;AACD;AACF,GAtBQ,EAsBN,CAAC/H,UAAD,EAAarC,YAAY,CAAC9M,KAA1B,EAAiC8M,YAAY,CAACoP,aAA9C,CAtBM,CAAT;AAwBA,SAAO;AACLzD,IAAAA,WAAW,EAAXA,WADK;AAELvB,IAAAA,OAAO,EAAPA,OAFK;AAGL/H,IAAAA,UAAU,EAAVA;AAHK,GAAP;AAKD,CAlCM;;;;;;;ACSA,IAAM8N,mBAAmB,GAAG,SAAtBA,mBAAsB;;;MACjC5e,gBAAAA;MACAsF,iBAAAA;MACAuZ,sBAAAA;MACAC,sBAAAA;MACA5F,mBAAAA;MACAvX,aAAAA;MACAC,gBAAAA;MACAoX,kBAAAA;MACAJ,oBAAAA;MACAiF,qBAAAA;MACAhF,eAAAA;MACA/H,kBAAAA;MACGvL;;AAEH,SACE1B,mBAAA,MAAA,eACM0B,IADN;AAEED,IAAAA,SAAS,GAAK3D,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAAhC,WAAsChE,QAAQ,GAAGgE,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAAvE,WACPN,SADO,WACPA,SADO,GACM,EADN;AAFX,MAMEzB,mBAAA,MAAA,eAASib,cAAT,GAA0B9e,QAA1B,CANF,EAOGgZ,UAAU,KAAK,CAACrX,KAAD,IAAUkc,aAAV,IAA2B,CAACjF,YAAjC,CAAV,IACC/U,mBAAA,CAAC6U,cAAD,eACMQ,WADN;AAEEnR,IAAAA,EAAE,OAAK+I,UAFT;AAGExL,IAAAA,SAAS,EAAKM,gBAAO,CAAC,aAAD,CAAZ,mCAA+BsT,WAA/B,oBAA+BA,WAAW,CAAE5T,SAA5C,oCAAyD,EAAzD,WACP3D,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EADpB;AAHX,MAOGoT,UAPH,CARJ,EAkBGJ,YAAY,IAAI,CAACiF,aAAjB,IAAkClc,KAAlC,IACCkC,mBAAA,OAAA;AAAMyB,IAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;GAAxB,EACE/B,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEM,gBAAO,CAAC,YAAD;AAAgB+B,IAAAA,IAAI,EAAEF,KAAK,CAACsS;GAApD,CADF,EAEElW,mBAAA,OAAA;AAAMkE,IAAAA,EAAE,EAAE8Q;GAAV,EAAoBD,YAApB,CAFF,CAnBJ,EAwBGiG,cAxBH,CADF;AA4BD,CA3CM;;;ICLME,KAAK,GAAG,SAARA,KAAQ;MACnB/e,gBAAAA;MACA4B,gBAAAA;MACA0D,iBAAAA;MACAtC,aAAAA;MACA0W,YAAAA;MACAV,kBAAAA;MACA6E,qBAAAA;MACAC,sBAAAA;MACAnc,aAAAA;MACAiX,oBAAAA;0BACAsF;MAAAA,oCAAU;MACVvE,oBAAAA;MACAT,mBAAAA;MACAoB,gBAAAA;MACG/U;;AAEH,yBAA6CmZ,eAAe,CAAC;AAC3DhF,IAAAA,IAAI,EAAJA,IAD2D;AAE3DV,IAAAA,UAAU,EAAVA,UAF2D;AAG3D6E,IAAAA,aAAa,EAAbA,aAH2D;AAI3DjF,IAAAA,YAAY,EAAZA,YAJ2D;AAK3DjX,IAAAA,KAAK,EAALA,KAL2D;AAM3Dmc,IAAAA,cAAc,EAAdA;AAN2D,GAAD,CAA5D;AAAA,MAAQjF,OAAR,oBAAQA,OAAR;AAAA,MAAiB/H,UAAjB,oBAAiBA,UAAjB;AAAA,MAA6BsJ,WAA7B,oBAA6BA,WAA7B;;AASA,MAAM4E,eAAe,GAAG,SAAlBA,eAAkB,CAAC1V,KAAD;AACtB,QAAI1H,QAAJ,EAAc;AACZ;AACD;AACD;;;AACA,QAAM2Z,WAAW,GAAQjS,KAAK,CAACiS,WAAN,IAAqBjS,KAA9C;AACA,QAAMkS,WAAW,GAAG,IAAID,WAAW,CAACE,WAAhB,CAA4BF,WAAW,CAACvV,IAAxC,EAA8CuV,WAA9C,CAApB;AAEA1Y,IAAAA,MAAM,CAAC6Y,cAAP,CAAsBF,WAAtB,EAAmC,QAAnC,EAA6C;AAC3CG,MAAAA,QAAQ,EAAE,IADiC;AAE3C3Y,MAAAA,KAAK,EAAE;AAAEA,QAAAA,KAAK,EAAEA;AAAT;AAFoC,KAA7C;AAKAsX,IAAAA,QAAQ,IAAIA,QAAQ,CAACkB,WAAD,CAApB;AACD,GAdD;AAgBA;;;AACA,SACE3X,mBAAA,CAAC+a,mBAAD,eACMjF,YADN;AAEErU,IAAAA,SAAS,EAAKM,gBAAO,CAAC,eAAD,CAAZ,UAAiCN,SAAjC,WAAiCA,SAAjC,GAA8C,EAA9C,CAFX;AAGEwZ,IAAAA,cAAc,EAAE;AAAExZ,MAAAA,SAAS,EAAEM,gBAAO,CAAC,iBAAD;AAApB,KAHlB;AAIEoT,IAAAA,UAAU,EAAEA,UAJd;AAKEE,IAAAA,WAAW,EAAEA,WALf;AAME2E,IAAAA,aAAa,EAAEA,aANjB;AAOEhF,IAAAA,OAAO,EAAEA,OAPX;AAQED,IAAAA,YAAY,EAAEA,YARhB;AASEjX,IAAAA,KAAK,EAAEA,KATT;AAUEC,IAAAA,QAAQ,EAAEA,QAVZ;AAWEkP,IAAAA,UAAU,EAAEA;AAXd,MAaEjN,mBAAA,QAAA,eACM0B,IADN;AAEE3D,IAAAA,QAAQ,EAAEA,QAFZ;AAGE+H,IAAAA,QAAQ,EAAE,CAHZ;AAIErE,IAAAA,SAAS,EAAKM,gBAAO,CAAC,cAAD,CAAZ,UAAgCjE,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAA3D,CAJX;AAKE0U,IAAAA,QAAQ,EAAE0E,eALZ;AAMEd,IAAAA,OAAO,EAAEA,OANX;oBAOgBvc,KAAK,GAAG,IAAH,GAAU,KAP/B;oBAQgBuc,OARhB;wBASoB9D,WATpB;AAUEV,IAAAA,IAAI,EAAEA,IAVR;AAWE1W,IAAAA,KAAK,EAAEA,KAXT;AAYE+E,IAAAA,EAAE,EAAK+I,UAAL,WAZJ;AAaE9K,IAAAA,IAAI,EAAC;AAbP,KAbF,EA6BGkY,OAAO,IACNra,mBAAA,CAAC6D,IAAD;AACEpC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,OAAD,CAAZ,UAAyBhE,QAAQ,GAAGgE,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAA1D;AACT+B,IAAAA,IAAI,EAAEF,KAAK,CAACsX;GAFd,CA9BJ,EAmCG,CAACb,OAAD,IACCra,mBAAA,CAAC6D,IAAD;AACEpC,IAAAA,SAAS,EAAKM,gBAAO,CAAC,OAAD,CAAZ,UAAyBhE,QAAQ,GAAGgE,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAA1D;AACT+B,IAAAA,IAAI,EAAEF,KAAK,CAACwX;GAFd,CApCJ,EA0CEpb,mBAAA,QAAA;AAAOgG,IAAAA,OAAO,EAAEmV;AAAiBtB,IAAAA,OAAO,EAAK5M,UAAL;GAAxC,EACG9Q,QADH,CA1CF,CADF;AAgDD;;;;;;;;AClGD,IAAMkf,QAAQ,GAAG,SAAXA,QAAW,CAAClf,QAAD;AAAA;;AAAA,SAA0BA,QAA1B,uCAA0BA,QAAyB,CAAEwU,KAArD,qBAA0B,gBAAmC,aAAnC,CAA1B;AAAA,CAAjB;;IAWa2K,QAAQ,GAAG,SAAXA,QAAW;MACtBnf,gBAAAA;MACA0Z,YAAAA;MACAV,kBAAAA;MACAE,mBAAAA;MACAkG,qBAAAA;MACAvB,qBAAAA;MACAjF,oBAAAA;MACAhX,gBAAAA;MACA4J,aAAAA;MACAsS,sBAAAA;MACAxY,iBAAAA;MACA3D,aAAAA;0BACAuc;MAAAA,oCAAU;MACVvE,oBAAAA;MACAW,gBAAAA;MACG/U;;AAEH,yBAA6CmZ,eAAe,CAAC;AAC3DhF,IAAAA,IAAI,EAAJA,IAD2D;AAE3DV,IAAAA,UAAU,EAAVA,UAF2D;AAG3D6E,IAAAA,aAAa,EAAbA,aAH2D;AAI3DjF,IAAAA,YAAY,EAAZA,YAJ2D;AAK3DjX,IAAAA,KAAK,EAALA,KAL2D;AAM3Dmc,IAAAA,cAAc,EAAdA;AAN2D,GAAD,CAA5D;AAAA,MAAQjF,OAAR,oBAAQA,OAAR;AAAA,MAAiB/H,UAAjB,oBAAiBA,UAAjB;AAAA,MAA6BsJ,WAA7B,oBAA6BA,WAA7B;;AASA3W,EAAAA,SAAS,CAAC;AACR,QAAI,CAACiW,IAAL,EAAW;AACTnS,MAAAA,OAAO,CAAC5F,KAAR,CAAc,yDAAd;AACD;;AAED,QAAI,OAAO3B,QAAP,KAAoB,QAApB,IAAgC,CAACkf,QAAQ,CAAClf,QAAD,CAAzC,IAAuDof,aAAa,KAAKlY,SAA7E,EAAwF;AACtF,YAAM,IAAIzB,KAAJ,CACJ,4HADI,CAAN;AAGD;AACF,GAVQ,EAUN,EAVM,CAAT;;AAYA,MAAM4Z,cAAc,GAAG,SAAjBA,cAAiB;AACrB,QAAI7T,KAAJ,EAAW;AACT,aAAOA,KAAP;AACD,KAFD,MAEO,IAAIxL,QAAQ,KAAKkH,SAAjB,EAA4B;AACjC,YAAM,IAAIzB,KAAJ,CACJ,6GADI,CAAN;AAGD;;AAED,QAAI,OAAOzF,QAAP,KAAoB,QAAxB,EAAkC;AAChC,aAAOA,QAAP;AACD;;AAED,UAAM,IAAIyF,KAAJ,CACJ,+HADI,CAAN;AAGD,GAhBD;;AAkBA,MAAM6Z,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,WAC7Bzb,mBAAA,KAAA;AAAIyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,eAAD;KAAtB,EACG/B,KAAK,CAACsQ,QAAN,CAAerP,GAAf,CAAmB9E,QAAnB,EAA4C,UAACoU,KAAD;AAC3C,aACEvQ,mBAAA,KAAA,MAAA,EACEA,mBAAA,CAACsb,QAAD,eACO/K,KAAsB,CAACI,KAD9B;AAEEsJ,QAAAA,cAAc,EAAEA,cAFlB;AAGED,QAAAA,aAAa,EAAEA,aAHjB;AAIElc,QAAAA,KAAK,EAAEA,KAJT;AAKEC,QAAAA,QAAQ,EAAEA,QAAQ,GAAGA,QAAH,GAAewS,KAAuB,CAACxS;AAL3D,UAOIwS,KAAsB,CAACI,KAAvB,CAA6BxU,QAPjC,CADF,CADF;AAaD,KAdA,CADH,CAD6B;AAAA,GAA/B;;AAoBA,MAAMgf,eAAe,GAAG,SAAlBA,eAAkB,CAAC1V,KAAD;AACtB,QAAI1H,QAAJ,EAAc;AACZ;AACD;;AACD0Y,IAAAA,QAAQ,IAAIA,QAAQ,CAAChR,KAAD,CAApB;AACD,GALD;;AAOA,MAAMiW,YAAY,GAAG,SAAfA,YAAe;AAAA,WAAM1b,KAAK,CAACsQ,QAAN,CAAeqL,OAAf,CAAuBxf,QAAvB,EAAiCqX,MAAjC,CAAwC6H,QAAxC,CAAN;AAAA,GAArB;;AAEA,MAAMO,WAAW,GAAG,CAAC7Z,gBAAO,CAAC,OAAD,CAAR,EAAmBhE,QAAQ,GAAGgE,gBAAO,CAAC,UAAD,CAAV,GAAyB,EAApD,CAApB;AAEA;;AACA,SACE/B,mBAAA,CAAC+a,mBAAD,eACMjF,YADN;AAEErU,IAAAA,SAAS,EAAKM,gBAAO,CAAC,kBAAD,CAAZ,UAAoCN,SAAS,GAAGA,SAAH,GAAe,EAA5D,CAFX;AAGEwZ,IAAAA,cAAc,EAAE;AAAExZ,MAAAA,SAAS,EAAEM,gBAAO,CAAC,oBAAD;AAApB,KAHlB;AAIEoT,IAAAA,UAAU,EAAEA,UAJd;AAKEE,IAAAA,WAAW,EAAEA,WALf;AAME2E,IAAAA,aAAa,EAAEA,aANjB;AAOEhF,IAAAA,OAAO,EAAEA,OAPX;AAQED,IAAAA,YAAY,EAAEA,YARhB;AASEjX,IAAAA,KAAK,EAAEA,KATT;AAUEC,IAAAA,QAAQ,EAAEA,QAVZ;AAWEkP,IAAAA,UAAU,EAAEA,UAXd;AAYE+N,IAAAA,cAAc,EACZ,OAAO7e,QAAP,KAAoB,QAApB,IAAgC,CAACkf,QAAQ,CAAClf,QAAD,CAAzC,IAAuDsf,sBAAsB;AAbjF,MAgBEzb,mBAAA,QAAA,eACM0B,IADN;AAEE3D,IAAAA,QAAQ,EAAEA,QAFZ;AAGE0D,IAAAA,SAAS,EAAKM,gBAAO,CAAC,cAAD,CAAZ,UAAgCjE,KAAK,GAAGiE,gBAAO,CAAC,OAAD,CAAV,GAAsB,EAA3D,CAHX;AAIEsY,IAAAA,OAAO,EAAEA,OAJX;AAKE5D,IAAAA,QAAQ,EAAE0E,eALZ;oBAMgBrd,KANhB;oBAOgByd,aAAa,GAAG,OAAH,GAAalB,OAP1C;wBAQoB9D,WARpB;AASErS,IAAAA,EAAE,EAAK+I,UAAL,cATJ;AAUE4I,IAAAA,IAAI,EAAEA,IAVR;AAWE1T,IAAAA,IAAI,EAAC;AAXP,KAhBF,EA6BGuZ,YAAY,EA7Bf,EA+BGH,aAAa,IAAIvb,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEma,WAAW,CAACxa,IAAZ,CAAiB,GAAjB;AAAuB0C,IAAAA,IAAI,EAAEF,KAAK,CAACiY;GAApD,CA/BpB,EAgCGxB,OAAO,IAAI,CAACkB,aAAZ,IACCvb,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEma,WAAW,CAACxa,IAAZ,CAAiB,GAAjB;AAAuB0C,IAAAA,IAAI,EAAEF,KAAK,CAACkY;GAApD,CAjCJ,EAmCG,CAACzB,OAAD,IAAY,CAACkB,aAAb,IAA8Bvb,mBAAA,CAAC6D,IAAD;AAAMpC,IAAAA,SAAS,EAAEma,WAAW,CAACxa,IAAZ,CAAiB,GAAjB;AAAuB0C,IAAAA,IAAI,EAAEF,KAAK,CAACmY;GAApD,CAnCjC,EAoCE/b,mBAAA,QAAA;AAAO6Z,IAAAA,OAAO,EAAK5M,UAAL;GAAd,EAA2CuO,cAAc,EAAzD,CApCF,CADF;AAwCD;;;;;;;ICjIYQ,eAAe,GAAG,SAAlBA,eAAkB;MAC7BC,aAAAA;MACAC,qBAAAA;MACAlW,gBAAAA;mCACAmW;MAAAA,0DAAuB;MACvBC,6BAAAA;MACG7W;;AAEH,MAAM8W,YAAY,GAAG,SAAfA,YAAe,CAACC,MAAD;AACnB,QAAIJ,aAAa,KAAKI,MAAtB,EAA8B;AAC5B,aAAO,SAAP;AACD,KAFD,MAEO,IAAIA,MAAM,GAAGJ,aAAb,EAA4B;AACjC,aAAO,UAAP;AACD;;AACD,WAAO,QAAP;AACD,GAPD;;AASA,MAAMK,cAAc,GAAG,SAAjBA,cAAiB,CAACC,SAAD,EAAuBhM,KAAvB,EAAsCzS,QAAtC;AACrB,QAAM0e,gBAAgB,GAAG7b,MAAM,CAAC4P,KAAK,GAAG,CAAT,CAA/B;;AACA,QAAIgM,SAAS,KAAK,UAAlB,EAA8B;AAC5B,aAAOze,QAAQ,GAAG,IAAH,GAAUiC,mBAAA,CAAC6D,IAAD;AAAMpC,QAAAA,SAAS,EAAEM,gBAAO,CAAC,WAAD;AAAe+B,QAAAA,IAAI,EAAEF,KAAK,CAAC8K;OAAnD,CAAzB;AACD,KAFD,MAEO;AACL,aACE1O,mBAAA,CAACC,QAAD,MAAA,EACED,mBAAA,OAAA;AAAMyB,QAAAA,SAAS,EAAEkC,gBAAY,CAAC,SAAD;OAA7B,EAA2CyY,qBAA3C,KAAA,CADF,EAEGK,gBAFH,CADF;AAMD;AACF,GAZD;;AAcA,MAAMC,cAAc,GAAGT,KAAK,CAAChb,GAAN,CAAU,UAAC0b,IAAD,EAAOnM,KAAP;AAC/B,QAAMgM,SAAS,GAAGH,YAAY,CAAC7L,KAAD,CAA9B;AACA,QAAMoM,sBAAsB,GAAGD,IAAI,CAAC5e,QAAL,GAAgBgE,gBAAO,CAAC,UAAD,CAAvB,GAAsC,EAArE;AACA,QAAM8a,kBAAkB,GAAGV,oBAAoB,GAAGpa,gBAAO,CAAC,WAAD,CAAV,GAA0B,EAAzE;AAEA,WACE/B,mBAAA,SAAA;AACEd,MAAAA,GAAG,EAAEyd,IAAI,CAAChV,KAAL,CAAWpI,WAAX,GAAyBud,OAAzB,CAAiC,IAAjC,EAAuC,GAAvC;AACL/e,MAAAA,QAAQ,EACN4e,IAAI,CAAC5e,QAAL,IACCye,SAAS,KAAK,QAAd,IAA0B,CAACL,oBAD5B,IAEAK,SAAS,KAAK;sBAEFA,SAAS,KAAK,SAAd,GAA0B,MAA1B,GAAmCnZ;AACjD2C,MAAAA,OAAO,EAAE;AAAA,eAAMA,QAAO,IAAIA,QAAO,CAACwK,KAAD,CAAxB;AAAA;AACT/O,MAAAA,SAAS,EAAKM,gBAAO,CAAC,gBAAD,CAAZ,SAAkCA,gBAAO,CAACya,SAAD,CAAzC,SAAwDK,kBAAxD,SAA8ED;KATzF,EAWE5c,mBAAA,MAAA;AAAKyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,gBAAD;KAAvB,EACE/B,mBAAA,OAAA;AAAMyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD;KAAxB,EACGwa,cAAc,CAACC,SAAD,EAAYhM,KAAZ,EAAmBmM,IAAI,CAAC5e,QAAxB,CADjB,CADF,CAXF,EAgBEiC,mBAAA,MAAA;AAAKyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,wBAAD;KAAvB,EACE/B,mBAAA,OAAA;AAAMyB,MAAAA,SAAS,EAAEM,gBAAO,CAAC,OAAD;KAAxB,EAAoC4a,IAAI,CAAChV,KAAzC,CADF,CAhBF,CADF;AAsBD,GA3BsB,CAAvB;AA6BA,SACE3H,mBAAA,MAAA,eAASuF,SAAT;AAAoB9D,IAAAA,SAAS,EAAEM,gBAAO,CAAC,QAAD;AAAtC,MACG2a,cADH,CADF;AAKD;;AC5DD,IAAMK,cAAc,GAAG,SAAjBA,cAAiB,CACrBd,KADqB,EAErBe,IAFqB,EAGrBZ,qBAHqB;AAKrB,SAAO;AAAEja,IAAAA,IAAI,EAAE,WAAR;AAAqB8a,IAAAA,OAAO,EAAE;AAAEhB,MAAAA,KAAK,EAALA,KAAF;AAASe,MAAAA,IAAI,EAAJA,IAAT;AAAeZ,MAAAA,qBAAqB,EAArBA;AAAf;AAA9B,GAAP;AACD,CAND;;AAQA,IAAMc,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAChB,aAAD;AAC1B,SAAO;AAAE/Z,IAAAA,IAAI,EAAE,wBAAR;AAAkC8a,IAAAA,OAAO,EAAEf;AAA3C,GAAP;AACD,CAFD;;AAMA,IAAMiB,OAAO,GAA4C,SAAnDA,OAAmD,CAACC,KAAD,EAAQC,MAAR;AACvD,UAAQA,MAAM,CAAClb,IAAf;AACE,SAAK,WAAL;AACE,0BAAYib,KAAZ,EAAsBC,MAAM,CAACJ,OAA7B;;AACF,SAAK,wBAAL;AACE,0BAAYG,KAAZ;AAAmBlB,QAAAA,aAAa,EAAEmB,MAAM,CAACJ;AAAzC;;AACF;AACE,aAAOG,KAAP;AANJ;AAQD,CATD;;ACpCA,IAAME,kBAAkB,gBAAGxM,aAAa,CAGrC;AACDsM,EAAAA,KAAK,EAAE,EADN;AAEDG,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA;AAFT,CAHqC,CAAxC;;AAaA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;MAAGrhB,gBAAAA;MAAUgV,oBAAAA;;AACvC,oBAA0BsM,UAAU,CAACN,OAAD,EAAUhM,YAAV,CAApC;AAAA,MAAOiM,KAAP;AAAA,MAAcG,QAAd;;AACA,SACEvd,mBAAA,CAACsd,kBAAkB,CAAClM,QAApB;AAA6BjS,IAAAA,KAAK,EAAE;AAAEie,MAAAA,KAAK,EAALA,KAAF;AAASG,MAAAA,QAAQ,EAARA;AAAT;GAApC,EACGphB,QADH,CADF;AAKD,CAPD;;ACEA,IAAMuhB,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACzB,KAAD,EAAgBC,aAAhB;AAAA,SAA0C;AAAA,WACpED,KAAK,CAAC0B,SAAN,CAAgB,UAAChB,IAAD,EAAOL,MAAP;AAAA,aAAkBA,MAAM,GAAGJ,aAAT,IAA0B,CAACS,IAAI,CAAC5e,QAAlD;AAAA,KAAhB,CADoE;AAAA,GAA1C;AAAA,CAA5B;;AAGA,IAAM6f,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC3B,KAAD,EAAgBC,aAAhB;AAAA,SAA0C;AACpE,QAAM2B,qBAAqB,GAAG5B,KAAK,CAACnc,MAAN,GAAe,CAAf,GAAmBoc,aAAjD;AACA,QAAM4B,kBAAkB,GAAG,UAAI7B,KAAJ,EACxB8B,OADwB,GAExBJ,SAFwB,CAEd,UAAChB,IAAD,EAAOL,MAAP;AAAA,aAAkBA,MAAM,GAAGuB,qBAAT,IAAkC,CAAClB,IAAI,CAAC5e,QAA1D;AAAA,KAFc,CAA3B;;AAGA,QAAI+f,kBAAkB,GAAG,CAAzB,EAA4B;AAC1B,aAAO7B,KAAK,CAACnc,MAAN,GAAe,CAAf,GAAmBge,kBAA1B;AACD;;AACD,WAAO,CAAC,CAAR;AACD,GAT2B;AAAA,CAA5B;;AAWA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAChB,IAAD,EAAmBd,aAAnB,EAA0CD,KAA1C;AAAA,SACpBgC,OAAO,CAACP,mBAAmB,CAACzB,KAAD,EAAQC,aAAR,CAApB,EAA4C,CAACc,IAAD,EAAOd,aAAP,EAAsBD,KAAtB,CAA5C,CADa;AAAA,CAAtB;;AAGA,IAAMiC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAClB,IAAD,EAAmBd,aAAnB,EAA0CD,KAA1C;AAAA,SACxBgC,OAAO,CAACL,mBAAmB,CAAC3B,KAAD,EAAQC,aAAR,CAApB,EAA4C,CAACc,IAAD,EAAOd,aAAP,EAAsBD,KAAtB,CAA5C,CADiB;AAAA,CAA1B;;IAGakC,aAAa,GAAG,SAAhBA,aAAgB;MAC3BC,gBAAAA;MACAC,cAAAA;MACAC,kBAAAA;MACAC,sBAAAA;MACAC,yBAAAA;MACAC,2BAAAA;MACAC,uBAAAA;MACAC,+BAAAA;;AAEA,oBAGI/K,UAAU,CAAC0J,kBAAD,CAHd;AAAA,sCACEF,KADF;AAAA,MACWJ,IADX,qBACWA,IADX;AAAA,MACiBf,KADjB,qBACiBA,KADjB;AAAA,MACwBC,aADxB,qBACwBA,aADxB;AAAA,MAEEqB,QAFF,eAEEA,QAFF;;AAIA,MAAMqB,UAAU,GAAGZ,aAAa,CAAChB,IAAD,EAAOd,aAAP,EAAsBD,KAAtB,CAAhC;AACA,MAAM4C,WAAW,GAAGD,UAAU,KAAK,CAAC,CAApC;AACA,MAAME,cAAc,GAAGZ,iBAAiB,CAAClB,IAAD,EAAOd,aAAP,EAAsBD,KAAtB,CAAxC;AACA,MAAM8C,eAAe,GAAGD,cAAc,KAAK,CAAC,CAA5C;AACA,MAAME,oBAAoB,GAAG,CAACH,WAAD,IAAgB7B,IAAI,KAAK,MAAtD;;AAEA,MAAMiC,YAAY,GAAG,SAAfA,YAAe,CAACjT,SAAD;AACnB,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B6S,MAAAA,WAAW,IAAItB,QAAQ,CAACL,mBAAmB,CAAC0B,UAAD,CAApB,CAAvB;AACD,KAFD,MAEO;AACLG,MAAAA,eAAe,IAAIxB,QAAQ,CAACL,mBAAmB,CAAC4B,cAAD,CAApB,CAA3B;AACD;AACF,GAND;;AAQA,MAAMI,aAAa,GAAG,SAAhBA,aAAgB;AACpBb,IAAAA,MAAM,CAACnC,aAAD,CAAN,IAAyB+C,YAAY,CAAC,SAAD,CAArC;AACD,GAFD;;AAIA,MAAME,iBAAiB,GAAG,SAApBA,iBAAoB;AACxBb,IAAAA,UAAU,IAAIA,UAAU,EAAxB;AACAW,IAAAA,YAAY,CAAC,UAAD,CAAZ;AACD,GAHD;;AAKA,MAAMG,qBAAqB,GAAG,SAAxBA,qBAAwB;AAC5Bb,IAAAA,cAAc,CAACrC,aAAD,CAAd;AACD,GAFD;;AAIA,SACElc,mBAAA,CAACC,QAAD,MAAA,EACED,mBAAA,CAACsC,MAAD;AAAQf,IAAAA,OAAO,EAAC;AAAOyE,IAAAA,OAAO,EAAEoY;GAAhC,EACGI,iBADH,CADF,EAIGO,eAAe,IACd/e,mBAAA,CAACsC,MAAD;AAAQf,IAAAA,OAAO,EAAC;AAAUyE,IAAAA,OAAO,EAAEmZ;GAAnC,EACGV,mBADH,CALJ,EASGI,WAAW,IACV7e,mBAAA,CAACsC,MAAD;AAAQf,IAAAA,OAAO,EAAEyb,IAAI,KAAK,MAAT,GAAkB,SAAlB,GAA8B;AAAQhX,IAAAA,OAAO,EAAEkZ;GAAhE,EACGR,eADH,CAVJ,EAcGM,oBAAoB,IACnBhf,mBAAA,CAACsC,MAAD;AAAQ0D,IAAAA,OAAO,EAAEoZ;GAAjB,EAAyCT,uBAAzC,CAfJ,CADF;AAoBD;;;IC1FYU,WAAW,GAAG,SAAdA,WAAc;MAAGC,mBAAAA;MAAgB/Z;;AAC5C,oBAGIqO,UAAU,CAAC0J,kBAAD,CAHd;AAAA,sCACEF,KADF;AAAA,MACWlB,aADX,qBACWA,aADX;AAAA,MAC0Bc,IAD1B,qBAC0BA,IAD1B;AAAA,MACgCZ,qBADhC,qBACgCA,qBADhC;AAAA,MACuDH,KADvD,qBACuDA,KADvD;AAAA,MAEEsB,QAFF,eAEEA,QAFF;;AAKA,MAAMvX,OAAO,GAAG,SAAVA,OAAU,CAACuZ,cAAD;AACdD,IAAAA,WAAW,CAACpD,aAAD,EAAgBqD,cAAhB,CAAX,IAA8ChC,QAAQ,CAACL,mBAAmB,CAACqC,cAAD,CAApB,CAAtD;AACD,GAFD;;AAIA,SACEvf,mBAAA,CAACgc,eAAD,eACMzW,SADN;AAEES,IAAAA,OAAO,EAAEA,OAFX;AAGEiW,IAAAA,KAAK,EAAEA,KAHT;AAIEC,IAAAA,aAAa,EAAEA,aAJjB;AAKEE,IAAAA,qBAAqB,EAAEA,qBALzB;AAMED,IAAAA,oBAAoB,EAAEa,IAAI,KAAK;AANjC,KADF;AAUD;;ACbD,IAAMwC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACvD,KAAD,EAAgBe,IAAhB,EAAkCZ,qBAAlC;AACxB,oBAAqBxI,UAAU,CAAC0J,kBAAD,CAA/B;AAAA,MAAQC,QAAR,eAAQA,QAAR;;AAEA3d,EAAAA,SAAS,CAAC;AACR2d,IAAAA,QAAQ,CAACR,cAAc,CAACd,KAAD,EAAQe,IAAR,EAAcZ,qBAAd,CAAf,CAAR;AACD,GAFQ,EAEN,CAACH,KAAD,EAAQe,IAAR,EAAcZ,qBAAd,CAFM,CAAT;AAGD,CAND;;AAQA,IAAMqD,eAAe,GAAG,SAAlBA,eAAkB,CAACC,YAAD;AACtB,qBAEI9L,UAAU,CAAC0J,kBAAD,CAFd;AAAA,MACWpB,aADX,gBACEkB,KADF,CACWlB,aADX;;AAIAtc,EAAAA,SAAS,CAAC;AACR8f,IAAAA,YAAY,CAACxD,aAAD,CAAZ;AACD,GAFQ,EAEN,CAACA,aAAD,CAFM,CAAT;AAGD,CARD;;AAUA,IAAMyD,aAAa,GAAG,SAAhBA,aAAgB;MAAG1D,aAAAA;MAAOe,YAAAA;MAAMZ,6BAAAA;MAAuBsD,oBAAAA;MAAcvjB,gBAAAA;AACzEqjB,EAAAA,iBAAiB,CAACvD,KAAD,EAAQe,IAAR,EAAcZ,qBAAd,CAAjB;AACAqD,EAAAA,eAAe,CAACC,YAAD,CAAf;AAEA,SAAO1f,mBAAA,CAACC,QAAD,MAAA,EAAW9D,QAAX,CAAP;AACD,CALD;;IAOayjB,MAAM,GAAG,SAATA,MAAS,CAACjP,KAAD;AACpB,MAAQsL,KAAR,GAAiFtL,KAAjF,CAAQsL,KAAR;AAAA,6BAAiFtL,KAAjF,CAAekP,aAAf;AAAA,MAA8B3D,aAA9B,qCAA8C,CAA9C;AAAA,MAAiDc,IAAjD,GAAiFrM,KAAjF,CAAiDqM,IAAjD;AAAA,MAAuDZ,qBAAvD,GAAiFzL,KAAjF,CAAuDyL,qBAAvD;AACA,SACEpc,mBAAA,CAACwd,mBAAD;AAAqBrM,IAAAA,YAAY,EAAE;AAAE8K,MAAAA,KAAK,EAALA,KAAF;AAASC,MAAAA,aAAa,EAAbA,aAAT;AAAwBc,MAAAA,IAAI,EAAJA,IAAxB;AAA8BZ,MAAAA,qBAAqB,EAArBA;AAA9B;GAAnC,EACEpc,mBAAA,CAAC2f,aAAD,eAAmBhP,KAAnB,EADF,CADF;AAKD;;;;"}
|