@7shifts/sous-chef 1.2.1 → 1.2.2
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/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +2 -2
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/icons/constants.ts","../src/icons/iconUtils.ts","../src/icons/IconArrowDown.tsx","../src/icons/IconArrowLeft.tsx","../src/icons/IconArrowRight.tsx","../src/icons/IconArrowUp.tsx","../src/icons/IconCalendar.tsx","../src/icons/IconChevronDown.tsx","../src/icons/IconChevronUp.tsx","../src/icons/IconClose.tsx","../src/icons/IconComment.tsx","../src/icons/IconDelete.tsx","../src/icons/IconEdit.tsx","../src/icons/IconEye.tsx","../src/icons/IconEyeSlash.tsx","../src/icons/IconExclaim.tsx","../src/icons/IconLocation.tsx","../src/icons/IconMinusCircle.tsx","../src/icons/IconMore.tsx","../src/icons/IconRemove.tsx","../src/icons/IconUser.tsx","../src/icons/IconUserPlus.tsx","../src/core/ResourceTable/ResourceTableContext.ts","../src/overlay/Menu/MenuContext.ts","../src/overlay/Menu/Menu.tsx","../src/overlay/Menu/MenuItem.tsx","../src/core/Flex/Flex.tsx","../src/core/Inline/Inline.tsx","../src/feedback/Spinner/Spinner.tsx","../src/overlay/Tooltip/constants.ts","../src/overlay/Tooltip/TooltipOverlay/domain.ts","../src/core/Stack/Stack.tsx","../src/hooks/useIsMounted.ts","../src/foundation/constants.ts","../src/hooks/usePortalContainer.ts","../src/core/Portal/Portal.tsx","../src/overlay/Tooltip/TooltipOverlay/TooltipOverlay.tsx","../src/overlay/Tooltip/Tooltip.tsx","../src/actions/Button/Button.tsx","../src/overlay/Menu/MenuButton.tsx","../src/overlay/hooks/useOnClickOutside.ts","../src/overlay/Menu/MenuList.tsx","../src/core/ResourceTableRow/ResourceTableRow.tsx","../src/core/ResourceTable/ResourceTableHeader.tsx","../src/utils/i18n.ts","../src/actions/PaginationControls/PaginationControls.tsx","../src/core/ResourceTable/ResourceTable.tsx","../src/forms/Form/FormContext.ts","../src/forms/Form/Form.tsx","../src/forms/FormRow/FormRow.tsx","../src/forms/Label/Label.tsx","../src/forms/Caption/Caption.tsx","../src/foundation/colors.ts","../src/forms/ErrorMessage/ErrorMessage.tsx","../src/forms/Field/Field.tsx","../src/forms/hooks/useFieldId.ts","../src/utils/formik.ts","../src/forms/hooks/useFieldControllers.ts","../src/forms/hooks/useGrowTextAreaRef.ts","../src/forms/TextAreaField/TextAreaField.tsx","../src/forms/AffixContainer/AffixContainer.tsx","../src/forms/TextField/TextField.tsx","../src/forms/hooks/useCheckBoxFieldControllers.ts","../src/forms/CheckboxField/CheckboxField.tsx","../src/forms/hooks/useRadioGroupFieldControllers.ts","../src/forms/RadioGroupField/RadioGroupFieldContext.ts","../src/forms/RadioGroupField/RadioGroupField.tsx","../src/forms/RadioGroupOption/RadioGroupOption.tsx","../src/forms/PasswordCriteria/PasswordCriteria.tsx","../src/forms/hooks/usePasswordCriteria.tsx","../src/forms/PasswordField/PasswordField.tsx","../src/forms/hooks/useMultiSelectFieldControllers.ts","../src/forms/SelectField/SelectField.styles.ts","../src/forms/MultiSelectField/CustomOption/CustomOption.tsx","../src/forms/MultiSelectField/MultiSelectField.tsx","../src/forms/hooks/useSelectFieldControllers.ts","../src/forms/SelectField/CustomControl/CustomControl.tsx","../src/forms/SelectField/CustomOption/CustomOption.tsx","../src/forms/SelectField/SelectField.tsx","../src/forms/hooks/useDateFieldControllers.ts","../src/forms/DatePickerCalendar/DatePickerCalendar.tsx","../src/utils/date.ts","../src/forms/DateField/DateField.tsx","../src/forms/hooks/useRangeFieldControllers.ts","../src/forms/DateRangeField/FromDate/FromDate.tsx","../src/forms/DateRangeField/ToDate/ToDate.tsx","../src/forms/DateRangeField/DateRangeField.tsx","../src/forms/WeekField/WeekField.tsx","../src/actions/Toggle/Toggle.tsx","../src/overlay/Modal/ModalHeader/ModalHeader.tsx","../src/overlay/Modal/Modal.tsx","../src/overlay/Modal/ModalBody/ModalBody.tsx","../src/overlay/Modal/ModalFooter/ModalFooter.tsx","../src/media/Badge/Badge.tsx","../src/media/Avatar/AvatarImage/AvatarImage.tsx","../src/media/Avatar/constants.ts","../src/media/Avatar/Avatar.tsx"],"sourcesContent":["export const ICON_SIZES = {\n small: '12px',\n medium: '16px',\n default: '20px',\n large: '24px'\n};\n","import { ICON_SIZES } from './constants';\nimport { IconSize } from './types';\n\nexport const getIconStyles = (size: IconSize, rotate?: number): Object => ({\n width: ICON_SIZES[size],\n height: ICON_SIZES[size],\n transform: rotate && `rotate(${rotate}deg)`,\n verticalAlign: 'middle'\n});\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n rotate?: number;\n dataTestId?: string;\n};\nconst IconArrowDown: React.FC<Props> = ({\n size = 'default',\n color,\n rotate,\n dataTestId = 'icon-arrow-down'\n}) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size, rotate)}\n data-testid={dataTestId}\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M443.5 248.5l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L241 419.9V44c0-6.6-5.4-12-12-12h-10c-6.6 0-12 5.4-12 12v375.9L28.5 241.4c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.8 4.8-12.3.1-17z\"\n />\n </svg>\n );\n};\n\nexport default IconArrowDown;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowLeft: React.FC<Props> = (props) => {\n return (\n <IconArrowDown {...props} rotate={90} dataTestId=\"icon-arrow-left\" />\n );\n};\n\nexport default IconArrowLeft;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowRight: React.FC<Props> = (props) => {\n return (\n <IconArrowDown {...props} rotate={-90} dataTestId=\"icon-arrow-right\" />\n );\n};\n\nexport default IconArrowRight;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowUp: React.FC<Props> = (props) => {\n return <IconArrowDown {...props} rotate={180} dataTestId=\"icon-arrow-up\" />;\n};\n\nexport default IconArrowUp;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconCalendar: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-calendar\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M25.214 3.75H22.43V.703A.702.702 0 0 0 21.732 0h-.464a.702.702 0 0 0-.697.703V3.75H9.43V.703A.702.702 0 0 0 8.732 0h-.464a.702.702 0 0 0-.697.703V3.75H4.786C3.248 3.75 2 5.01 2 6.563v20.625C2 28.74 3.248 30 4.786 30h20.428C26.752 30 28 28.74 28 27.187V6.563c0-1.552-1.248-2.812-2.786-2.812zM4.786 5.625h20.428c.511 0 .929.422.929.938v2.812H3.857V6.562c0-.515.418-.937.929-.937zm20.428 22.5H4.786a.936.936 0 0 1-.929-.938V11.25h22.286v15.938a.936.936 0 0 1-.929.937zM10.59 18.75H8.268a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm5.572 0h-2.322a.702.702 0 0 1-.696-.703v-2.344c0-.387.313-.703.696-.703h2.322c.383 0 .696.316.696.703v2.344a.702.702 0 0 1-.696.703zm5.571 0h-2.321a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm-5.571 5.625h-2.322a.702.702 0 0 1-.696-.703v-2.344c0-.387.313-.703.696-.703h2.322c.383 0 .696.316.696.703v2.344a.702.702 0 0 1-.696.703zm-5.572 0H8.268a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm11.143 0h-2.321a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconCalendar;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\n\ntype Props = {\n size?: 'small' | 'medium';\n color?: string;\n rotate?: number;\n dataTestId?: string;\n};\nconst IconChevronDown: React.FC<Props> = ({\n size = 'small',\n color,\n rotate,\n dataTestId = 'icon-chevron-down'\n}) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size, rotate)}\n data-testid={dataTestId}\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M443.5 162.6l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L224 351 28.5 155.5c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.7 4.8-12.3.1-17z\"\n />\n </svg>\n );\n};\n\nexport default IconChevronDown;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconChevronDown from './IconChevronDown';\n\ntype Props = {\n size?: 'small' | 'medium';\n color?: Color;\n};\nconst IconChevronUp: React.FC<Props> = (props) => {\n return (\n <IconChevronDown {...props} rotate={180} dataTestId=\"icon-chevron-up\" />\n );\n};\n\nexport default IconChevronUp;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconClose: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-close\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n transform=\"translate(11.993600, 11.979816) rotate(-315.000000) translate(-11.993600, -11.979816)\"\n d=\"M26.9457415,10.8753243 L13.1323685,10.8664553 L13.0980917,-2.97232553 C13.0980917,-3.17951303 12.9302792,-3.34732553 12.7230917,-3.34732553 L11.2230917,-3.34732553 C11.0159042,-3.34732553 10.8480917,-3.17951303 10.8480917,-2.97232553 L10.8823685,10.8664553 L-2.95854067,10.8343068 C-3.16572817,10.8343068 -3.33354067,11.0021193 -3.33354067,11.2093068 C-3.33354067,11.3474318 -3.33354067,11.8474318 -3.33354067,12.7093068 C-3.33354067,12.9164943 -3.16572817,13.0843068 -2.95854067,13.0843068 L10.8823685,13.1164553 L10.8891092,26.9319567 C10.8891092,27.1391442 11.0569217,27.3069567 11.2641092,27.3069567 L12.7641092,27.3069567 C12.9712967,27.3069567 13.1391092,27.1391442 13.1391092,26.9319567 L13.1323685,13.1164553 L26.9457415,13.1253243 C27.152929,13.1253243 27.3207415,12.9575118 27.3207415,12.7503243 L27.3207415,11.2503243 C27.3207415,11.0431368 27.152929,10.8753243 26.9457415,10.8753243 Z\"\n />\n </svg>\n );\n};\n\nexport default IconClose;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconComment: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M256 64c123.5 0 224 79 224 176S379.5 416 256 416c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176m0-32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26 3.8 8.8 12.4 14.5 22 14.5 61.5 0 110-25.7 139.1-46.3 29 9.1 60.2 14.3 93 14.3 141.4 0 256-93.1 256-208S397.4 32 256 32z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconComment;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconDelete: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-delete\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143zm-129.2 14.8l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L256 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.7 4.7 4.7 12.3 0 17L281.5 256l69.3 69.3c4.6 4.7 4.6 12.3 0 17z\"\n />\n </svg>\n );\n};\n\nexport default IconDelete;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEdit: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-edit\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"m493.255 56.236-37.49-37.49c-24.993-24.993-65.515-24.994-90.51 0l-352.417 352.416-12.687 114.184c-1.698 15.286 11.22 28.203 26.504 26.504l114.184-12.687 352.417-352.417c24.992-24.994 24.992-65.517-.001-90.51zm-95.196 140.45-224.059 224.059v-34.745h-48v-48h-34.745l224.059-224.059zm-271.912 271.912-58.995 6.555-30.305-30.305 6.555-58.995 19.853-19.853h34.745v48h48v34.745zm344.48-344.48-49.941 49.941-82.745-82.745 49.941-49.941c12.505-12.505 32.748-12.507 45.255 0l37.49 37.49c12.506 12.506 12.507 32.747 0 45.255z\"\n />\n </svg>\n );\n};\n\nexport default IconEdit;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEye: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.00001 3C11.328 3 14.2492 4.77633 15.8154 7.43419C16.0615 7.85191 16.0615 8.37031 15.8154 8.78803C14.2499 11.4446 11.3295 13.2222 8.00001 13.2222C4.67201 13.2222 1.7509 11.4459 0.184624 8.78803C-0.0615414 8.37031 -0.0615414 7.85188 0.184624 7.43417C1.75012 4.77761 4.67057 3 8.00001 3ZM8.00007 10.7778C9.96374 10.7778 11.5556 9.23563 11.5556 7.33332C11.5556 5.43101 9.96374 3.88888 8.00007 3.88888C6.03641 3.88888 4.44452 5.43101 4.44452 7.33332C4.44452 9.23563 6.03641 10.7778 8.00007 10.7778ZM15.0495 8.33673C13.6066 10.7855 10.9407 12.3333 7.99998 12.3333C5.04746 12.3333 2.38718 10.7748 0.950428 8.33676C0.868404 8.19751 0.868404 8.02471 0.950428 7.88545C1.75798 6.51509 2.98768 5.37337 4.49654 4.66637C3.91234 5.39418 3.55554 6.32132 3.55554 7.33332C3.55554 9.71715 5.5339 11.6666 7.99998 11.6666C10.4658 11.6666 12.4444 9.71726 12.4444 7.33332C12.4444 6.3219 12.088 5.39459 11.5035 4.66637C12.9968 5.36607 14.2333 6.50029 15.0496 7.88545C15.1316 8.02471 15.1316 8.19749 15.0495 8.33673ZM6.43135 6.3851C6.29794 6.63457 6.22219 6.91954 6.22219 7.22224C6.22219 8.20407 7.01813 9.00001 7.99997 9.00001C8.9818 9.00001 9.77774 8.20407 9.77774 7.22224C9.77774 6.2404 8.9818 5.44446 7.99997 5.44446C7.69727 5.44446 7.4123 5.52021 7.16283 5.65363H7.16338C7.56766 5.65363 7.89541 5.98138 7.89541 6.38565C7.89541 6.78993 7.56766 7.11768 7.16338 7.11768C6.7591 7.11768 6.43135 6.78993 6.43135 6.38565V6.3851Z\"\n />\n </svg>\n );\n};\n\nexport default IconEye;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEyeSlash: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 640 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye-slash\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M637 485.25L23 1.75A8 8 0 0 0 11.76 3l-10 12.51A8 8 0 0 0 3 26.75l614 483.5a8 8 0 0 0 11.25-1.25l10-12.51a8 8 0 0 0-1.25-11.24zM320 96a128.14 128.14 0 0 1 128 128c0 21.62-5.9 41.69-15.4 59.57l25.45 20C471.65 280.09 480 253.14 480 224c0-36.83-12.91-70.31-33.78-97.33A294.88 294.88 0 0 1 576.05 256a299.73 299.73 0 0 1-67.77 87.16l25.32 19.94c28.47-26.28 52.87-57.26 70.93-92.51a32.35 32.35 0 0 0 0-29.19C550.3 135.59 442.94 64 320 64a311.23 311.23 0 0 0-130.12 28.43l45.77 36C258.24 108.52 287.56 96 320 96zm60.86 146.83A63.15 63.15 0 0 0 320 160c-1 0-1.89.24-2.85.29a45.11 45.11 0 0 1-.24 32.19zm-217.62-49.16A154.29 154.29 0 0 0 160 224a159.39 159.39 0 0 0 226.27 145.29L356.69 346c-11.7 3.53-23.85 6-36.68 6A128.15 128.15 0 0 1 192 224c0-2.44.59-4.72.72-7.12zM320 416c-107.36 0-205.47-61.31-256-160 17.43-34 41.09-62.72 68.31-86.72l-25.86-20.37c-28.48 26.28-52.87 57.25-70.93 92.5a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448a311.25 311.25 0 0 0 130.12-28.43l-29.25-23C389.06 408.84 355.15 416 320 416z\"\n />\n </svg>\n );\n};\n\nexport default IconEyeSlash;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconExclaim: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-exclaim\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M10.9785 0H13.0363C13.6473 0 14.1355 0.508836 14.1101 1.1194L13.4832 16.1642C13.4592 16.7398 12.9856 17.194 12.4095 17.194H11.6054C11.0293 17.194 10.5556 16.7397 10.5316 16.1642L9.90478 1.1194C9.87943 0.508836 10.3675 0 10.9785 0ZM12.0075 18.9851C10.6226 18.9851 9.5 20.1077 9.5 21.4925C9.5 22.8774 10.6226 24 12.0075 24C13.3923 24 14.5149 22.8774 14.5149 21.4925C14.5149 20.1077 13.3923 18.9851 12.0075 18.9851Z\"\n />\n </svg>\n );\n};\n\nexport default IconExclaim;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconLocation: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 384 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M192 96c-52.935 0-96 43.065-96 96s43.065 96 96 96 96-43.065 96-96-43.065-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm0-256C85.961 0 0 85.961 0 192c0 77.413 26.97 99.031 172.268 309.67 9.534 13.772 29.929 13.774 39.465 0C357.03 291.031 384 269.413 384 192 384 85.961 298.039 0 192 0zm0 473.931C52.705 272.488 32 256.494 32 192c0-42.738 16.643-82.917 46.863-113.137S149.262 32 192 32s82.917 16.643 113.137 46.863S352 149.262 352 192c0 64.49-20.692 80.47-160 281.931z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconLocation;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconMinusCircle: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M140 274c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v12c0 6.6-5.4 12-12 12H140zm364-18c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-32 0c0-119.9-97.3-216-216-216-119.9 0-216 97.3-216 216 0 119.9 97.3 216 216 216 119.9 0 216-97.3 216-216z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconMinusCircle;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconMore: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M12,9.5 C13.3828125,9.5 14.5,10.6171875 14.5,12 C14.5,13.3828125 13.3828125,14.5 12,14.5 C10.6171875,14.5 9.5,13.3828125 9.5,12 C9.5,10.6171875 10.6171875,9.5 12,9.5 Z M9.5,2.625 C9.5,4.0078125 10.6171875,5.125 12,5.125 C13.3828125,5.125 14.5,4.0078125 14.5,2.625 C14.5,1.2421875 13.3828125,0.125 12,0.125 C10.6171875,0.125 9.5,1.2421875 9.5,2.625 Z M9.5,21.375 C9.5,22.7578125 10.6171875,23.875 12,23.875 C13.3828125,23.875 14.5,22.7578125 14.5,21.375 C14.5,19.9921875 13.3828125,18.875 12,18.875 C10.6171875,18.875 9.5,19.9921875 9.5,21.375 Z\"\n />\n </svg>\n );\n};\n\nexport default IconMore;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\n\ntype Props = {\n size?: 'small' | 'medium' | 'default' | 'large';\n color?: Color;\n};\nconst IconRemove: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-remove\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M336 64l-33.6-44.8C293.3 7.1 279.1 0 264 0h-80c-15.1 0-29.3 7.1-38.4 19.2L112 64H24C10.7 64 0 74.7 0 88v2c0 3.3 2.7 6 6 6h26v368c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V96h26c3.3 0 6-2.7 6-6v-2c0-13.3-10.7-24-24-24h-88zM184 32h80c5 0 9.8 2.4 12.8 6.4L296 64H152l19.2-25.6c3-4 7.8-6.4 12.8-6.4zm200 432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V96h320v368zm-176-44V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm-80 0V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm160 0V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12z\"\n />\n </svg>\n );\n};\n\nexport default IconRemove;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: string;\n};\nconst IconUser: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-user\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M12 12C15.1562 12 17.7143 9.31406 17.7143 6C17.7143 2.68594 15.1562 0 12 0C8.84375 0 6.28571 2.68594 6.28571 6C6.28571 9.31406 8.84375 12 12 12ZM16 13.5H15.2545C14.2634 13.9781 13.1607 14.25 12 14.25C10.8393 14.25 9.74107 13.9781 8.74554 13.5H8C4.6875 13.5 2 16.3219 2 19.8V21.75C2 22.9922 2.95982 24 4.14286 24H19.8571C21.0402 24 22 22.9922 22 21.75V19.8C22 16.3219 19.3125 13.5 16 13.5Z\"\n />\n </svg>\n );\n};\n\nexport default IconUser;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconUserPlus: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-user\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M23.7248 10.875H20.6998V7.78125C20.6998 7.62656 20.5761 7.5 20.4248 7.5H19.8748C19.7236 7.5 19.5998 7.62656 19.5998 7.78125V10.875H16.5748C16.4236 10.875 16.2998 11.0016 16.2998 11.1562V11.7188C16.2998 11.8734 16.4236 12 16.5748 12H19.5998V15.0938C19.5998 15.2484 19.7236 15.375 19.8748 15.375H20.4248C20.5761 15.375 20.6998 15.2484 20.6998 15.0938V12H23.7248C23.8761 12 23.9998 11.8734 23.9998 11.7188V11.1562C23.9998 11.0016 23.8761 10.875 23.7248 10.875Z\"\n />\n <path\n fill={color ?? ''}\n d=\"M8 12C10.525 12 12.5714 9.76172 12.5714 7C12.5714 4.23828 10.525 2 8 2C5.475 2 3.42857 4.23828 3.42857 7C3.42857 9.76172 5.475 12 8 12ZM11.2 13.25H10.6036C9.81071 13.6484 8.92857 13.875 8 13.875C7.07143 13.875 6.19286 13.6484 5.39643 13.25H4.8C2.15 13.25 0 15.6016 0 18.5V20.125C0 21.1602 0.767857 22 1.71429 22H14.2857C15.2321 22 16 21.1602 16 20.125V18.5C16 15.6016 13.85 13.25 11.2 13.25Z\"\n />\n </svg>\n );\n};\n\nexport default IconUserPlus;\n","import { createContext, useContext } from 'react';\n\nexport type ResourceTableContextType = {\n columnSizes?: number[];\n showActionMenu?: boolean;\n};\n\nconst initialValue: ResourceTableContextType = {};\nconst Context = createContext<ResourceTableContextType>(initialValue);\n\nexport const useResourceTableContext = (): ResourceTableContextType => {\n const context = useContext(Context);\n\n if (!context) {\n throw Error(\n 'useResourceTableContext should be used withing `ResourceTable`. Probably you are using `ResourceTableRow` without a `ResourceTable` component'\n );\n }\n return context;\n};\n\nexport default Context;\n","// @flow\nimport React from 'react';\n\nexport type MenuContextType = {\n onToggleMenu: () => void;\n isOpen: boolean;\n triggerRef: any;\n};\n\nconst MenuContext: React.Context<MenuContextType> =\n React.createContext<MenuContextType>({\n onToggleMenu: () => {},\n isOpen: false,\n triggerRef: undefined\n });\n\nexport const useMenuContext = (): MenuContextType =>\n React.useContext(MenuContext);\n\nexport default MenuContext;\n","import React, { useState, useRef } from 'react';\nimport MenuContext from './MenuContext';\n\ntype Props = {\n children: React.ReactNode;\n};\n/**\n * STATUS: IN DRAFT (Don't use this component yet)\n * It is working to cover the ResourceTable actions menu but there are some functionalities pending such as `dividers` and `direction`.\n */\nconst Menu: React.FC<Props> = ({ children }) => {\n const [isOpen, setIsOpen] = useState(false);\n const triggerRef = useRef();\n\n return (\n <MenuContext.Provider\n value={{\n isOpen,\n onToggleMenu: () => setIsOpen(!isOpen),\n triggerRef\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n\nexport default Menu;\n","import React from 'react';\nimport { useMenuContext } from './MenuContext';\nimport styles from './menu.scss';\n\ntype Props = {\n onClick: () => void;\n children: React.ReactNode;\n};\n\nconst MenuItem: React.FC<Props> = ({ onClick, children }) => {\n const { onToggleMenu } = useMenuContext();\n const handleClick = (e: React.MouseEvent | React.KeyboardEvent) => {\n onToggleMenu();\n onClick();\n e.stopPropagation();\n };\n return (\n <li\n className={styles['list-item']}\n onClick={handleClick}\n onKeyPress={handleClick}\n tabIndex={0}\n role=\"menuitem\"\n >\n {children}\n </li>\n );\n};\n\nexport default MenuItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport type { AlignItems, FlexWrap, JustifyContent, Space } from './types';\nimport styles from './flex.scss';\n\ntype Props = {\n children: React.ReactNode;\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n alignItems?: AlignItems;\n justifyContent?: JustifyContent;\n inlineFlex?: boolean;\n direction?: 'row' | 'column';\n flexItems?: boolean;\n flexWrap?: FlexWrap;\n};\n\n/**\n * Flex is a internal component used by Stack and Inline. DON'T use this component outside of Sous Chef\n */\nconst Flex: React.FC<Props> = ({\n children,\n space = 20,\n flex,\n alignItems = 'flex-start',\n justifyContent = 'start',\n inlineFlex = false,\n direction = 'row',\n flexItems = false,\n flexWrap = 'nowrap'\n}) => {\n const className = classNames(styles['flex'], {\n [styles['align-start']]: alignItems === 'flex-start',\n [styles['align-end']]: alignItems === 'flex-end',\n [styles['align-center']]: alignItems === 'center',\n [styles['justify-start']]: justifyContent === 'start',\n [styles['justify-end']]: justifyContent === 'end',\n [styles['justify-center']]: justifyContent === 'center',\n [styles['justify-space-between']]: justifyContent === 'space-between',\n [styles['inline-flex']]: inlineFlex\n });\n const items = React.Children.toArray(children).filter(Boolean);\n const lastItemIndex = items.length - 1;\n\n return (\n <div\n className={className}\n style={{ flexDirection: direction, flexWrap }}\n data-testid={`flex-${direction}`}\n >\n {items.map((child, i) => (\n <div\n key={i}\n style={{\n display: (flexItems && 'flex') || 'inline',\n flex: flex ? flex[i] || '0 1 auto' : '0 1 auto',\n marginRight:\n direction === 'row' && i < lastItemIndex\n ? space\n : 0,\n marginBottom:\n direction === 'column' && i < lastItemIndex\n ? space\n : 0\n }}\n >\n {child}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Flex;\n","import React from 'react';\nimport Flex from '../Flex';\nimport type {\n AlignItems,\n FlexWrap,\n JustifyContent,\n Space\n} from '../Flex/types';\n\ntype Props = {\n children: React.ReactNode;\n /** From `0` to `60` with multiples of `4`, eg. `8`, `12`, `16` and so on. */\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n /** One of: `flex-start`, `flex-end`, `center`, `stretch` */\n alignItems?: AlignItems;\n /** One of: `start`, `end`, `center`, `space-between` */\n justifyContent?: JustifyContent;\n inlineFlex?: boolean;\n flexWrap?: FlexWrap;\n};\n/**\n * Layout component to easily line elements up in a row.\n */\nconst Inline: React.FC<Props> = (props) => <Flex {...props} direction=\"row\" />;\n\nexport default Inline;\n","import React from 'react';\nimport classnames from 'classnames';\nimport styles from './spinner.scss';\n\ntype Props = {\n size?: number;\n theme?: 'mint' | 'disabled' | 'contrast';\n block?: boolean;\n};\nconst Spinner: React.FC<Props> = ({\n size = 28,\n theme = 'mint',\n block = false\n}) => {\n return (\n <div className={classnames({ [styles['spinner--block']]: block })}>\n <svg\n className={styles['spinner']}\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 66 66\"\n data-testid=\"spinner\"\n >\n <circle\n className={classnames(\n styles['path'],\n styles[`path--${theme}`]\n )}\n fill=\"none\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n cx=\"33\"\n cy=\"33\"\n r=\"30\"\n />\n </svg>\n </div>\n );\n};\n\nexport default Spinner;\n","export const TOOLTIP_THEME = {\n BLACK: 'black' as 'black',\n WHITE: 'white' as 'white'\n};\n\nexport const TOOLTIP_PLACEMENT = {\n BOTTOM: 'bottom' as 'bottom',\n TOP: 'top' as 'top'\n};\n\nexport const TOOLTIP_DELAY_ON_CLOSE = 350;\nexport const TOOLTIP_DELAY_ON_OPEN = 600;\nexport const SPACE = 14;\nexport const PADDING = 12;\nexport const BUFFER = 2;\nexport const ARROW_WIDTH = 10;\nexport const ARROW_MARGIN = 5;\n","import { Placement, ActualPlacement } from '../types';\nimport {\n TOOLTIP_PLACEMENT,\n SPACE,\n PADDING,\n BUFFER,\n ARROW_WIDTH,\n ARROW_MARGIN\n} from '../constants';\n\ntype Position = {\n width: number;\n left: number;\n top: number;\n};\n\nexport const calculatePosition = (\n placement: Placement,\n anchorPosition: DOMRect,\n tooltipRectPosition?: DOMRect\n): {\n overlay?: Position;\n arrow?: ArrowPosition;\n actualPlacement: ActualPlacement;\n} => {\n if (!tooltipRectPosition) {\n return {\n overlay: undefined,\n arrow: undefined,\n actualPlacement: {\n placement,\n top: 0\n }\n };\n }\n\n const actualPlacement = getActualPlacement(\n placement,\n anchorPosition,\n tooltipRectPosition.height\n );\n const overlayPosition = calculateOverlayPosition(\n actualPlacement,\n anchorPosition,\n tooltipRectPosition.width\n );\n const arrowPosition =\n overlayPosition &&\n calculateArrowPosition(\n actualPlacement.placement,\n overlayPosition,\n anchorPosition,\n tooltipRectPosition\n );\n\n return {\n overlay: updateMisalignedOverlay(\n overlayPosition,\n arrowPosition,\n tooltipRectPosition\n ),\n arrow: arrowPosition,\n actualPlacement\n };\n};\n\nexport const updateMisalignedOverlay = (\n overlayPosition: Position,\n arrowPosition: ArrowPosition,\n tooltipRectPosition: DOMRect\n): Position => {\n let left = overlayPosition.left;\n // Checking when there is a horizontal scrool and the arrow is not aligned with the tooltip in the LEFT side\n if (overlayPosition.left > arrowPosition.left) {\n left = arrowPosition.left - ARROW_MARGIN;\n }\n // Checking when there is a horizontal scrool and the arrow is not aligned with the tooltip in the RIGHT side\n else if (\n overlayPosition.left + tooltipRectPosition.width <\n arrowPosition.left + ARROW_WIDTH\n ) {\n left =\n arrowPosition.left -\n tooltipRectPosition.width +\n ARROW_WIDTH +\n ARROW_MARGIN;\n }\n return { ...overlayPosition, left };\n};\n\nexport const calculateOverlayPosition = (\n actualPlacement: ActualPlacement,\n anchorPosition: DOMRect,\n tooltipWidth: number = 156\n): Position => {\n // some maths to align the tooltip with whatever you just hovered over (the 'target')\n const position: Position = {\n width: tooltipWidth - PADDING * 2,\n left: 0,\n top: 0\n };\n\n // center align the tooltip by taking both the target and tooltip widths into account\n position.left =\n anchorPosition.width / 2 +\n anchorPosition.left -\n tooltipWidth / 2 -\n BUFFER;\n position.left = Math.max(SPACE, position.left); // make sure it doesn't poke off the left side of the page\n position.left = Math.min(\n position.left,\n window.innerWidth - tooltipWidth - SPACE\n ); // or off the right\n\n position.top = actualPlacement.top;\n\n return position;\n};\n\nexport const getActualPlacement = (\n placement: Placement,\n anchorPosition: DOMRect,\n tooltipHeight: number\n): ActualPlacement => {\n const topPosition = anchorPosition.top - tooltipHeight - SPACE;\n const bottomPosition = anchorPosition.top + anchorPosition.height + SPACE;\n\n let actualPlacement: Placement;\n\n if (placement === TOOLTIP_PLACEMENT.BOTTOM) {\n actualPlacement =\n bottomPosition + tooltipHeight < window.innerHeight\n ? TOOLTIP_PLACEMENT.BOTTOM\n : TOOLTIP_PLACEMENT.TOP;\n } else {\n actualPlacement =\n topPosition <= 0 ? TOOLTIP_PLACEMENT.BOTTOM : TOOLTIP_PLACEMENT.TOP;\n }\n const top =\n actualPlacement === TOOLTIP_PLACEMENT.BOTTOM\n ? bottomPosition\n : topPosition;\n\n return {\n placement: actualPlacement,\n top\n };\n};\n\ntype ArrowPosition = {\n left: number;\n top: number;\n};\nexport const calculateArrowPosition = (\n placement: Placement,\n tooltipPosition: Position,\n anchorPosition: DOMRect,\n tooltipRectPosition?: DOMRect\n): ArrowPosition => {\n let top;\n if (placement === TOOLTIP_PLACEMENT.BOTTOM) {\n top = (tooltipPosition?.top || 0) - 3;\n } else {\n top = tooltipPosition.top + (tooltipRectPosition?.height || 0) - 8;\n }\n return {\n left: anchorPosition.width / 2 + anchorPosition.left - ARROW_WIDTH / 2,\n top\n };\n};\n","import * as React from 'react';\nimport Flex from '../Flex';\nimport type { JustifyContent, Space, AlignItems } from '../Flex/types';\n\ntype Props = {\n children: React.ReactNode;\n /** From `0` to `60` with multiples of `4`, eg. `8`, `12`, `16` and so on. */\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n /** One of: `flex-start`, `flex-end`, `center`, `stretch` */\n alignItems?: AlignItems;\n /** One of: `start`, `end`, `center`, `space-between` */\n justifyContent?: JustifyContent;\n flexItems?: boolean;\n};\n/**\n * Layout component to easily stack elements up in a column.\n */\nconst Stack: React.FC<Props> = ({ alignItems = 'stretch', ...props }) => (\n <Flex {...props} alignItems={alignItems} direction=\"column\" />\n);\n\nexport default Stack;\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport const useIsMounted = (): (() => boolean) => {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return function cleanup(): void {\n isMounted.current = false;\n };\n }, []);\n const checker = useCallback((): boolean => {\n return isMounted.current;\n }, []);\n return checker;\n};\n","/** This is to help us centralize all the zIndexes layers in here so we avoid side effects with wrong styles */\nexport const Z_INDEX_LAYERS = {\n BASE: 1,\n MODAL: 100,\n MENU: 200,\n TOOLTIP: 300\n};\n\nexport const FONT_FAMILY = \"'Proxima Nova', sans-serif\";\n","import { useState, useEffect } from 'react';\n\n/**\n * Used when you need to create a DOM element and remove it after the component unmounts\n */\nexport const usePortalContainer = (): HTMLElement | undefined => {\n const [container, setContainer] = useState<HTMLElement | undefined>();\n\n useEffect(() => {\n const containerElement = document.createElement('div');\n containerElement.setAttribute('style', `position: absolute;`);\n document.body?.prepend(containerElement);\n setContainer(containerElement);\n\n return () => {\n containerElement.remove();\n };\n }, []);\n\n return container;\n};\n","// @flow\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePortalContainer } from '../../hooks/usePortalContainer';\n\ntype Props = {\n children: React.ReactNode;\n};\nconst Portal: React.FC<Props> = ({ children }) => {\n const container = usePortalContainer();\n\n if (!container) {\n return null;\n }\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './tooltip-overlay.scss';\nimport classnames from 'classnames';\nimport { Placement, TooltipTheme } from '../types';\nimport { calculatePosition } from './domain';\nimport Stack from '../../../core/Stack';\nimport { useIsMounted } from '../../../hooks/useIsMounted';\nimport { TOOLTIP_THEME, TOOLTIP_PLACEMENT } from '../constants';\nimport { Z_INDEX_LAYERS } from '../../../foundation/constants';\nimport Portal from '../../../core/Portal/Portal';\n\ntype Props = {\n theme: TooltipTheme;\n children: React.ReactNode;\n anchorPosition: DOMRect;\n placement: Placement;\n header?: React.ReactNode;\n onClose: () => void;\n onFocusIn: () => void;\n onFocusOut: () => void;\n extraClass?: string;\n};\nconst TooltipOverlay: React.FC<Props> = ({\n children,\n anchorPosition,\n placement,\n theme,\n header,\n onClose,\n onFocusIn,\n onFocusOut,\n extraClass\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const checkIsMounted = useIsMounted();\n\n useEffect(() => {\n setTimeout(() => {\n checkIsMounted() && setIsVisible(true);\n }, 50);\n }, [checkIsMounted]);\n\n useEffect(() => {\n window.addEventListener('scroll', onClose);\n return () => {\n window.removeEventListener('scroll', onClose);\n };\n }, []);\n\n const tooltipRectPosition = tooltipRef?.current?.getBoundingClientRect();\n const position = calculatePosition(\n placement,\n anchorPosition,\n tooltipRectPosition\n );\n\n return (\n <Portal>\n <div>\n <div\n ref={tooltipRef}\n style={{\n ...position.overlay,\n zIndex: Z_INDEX_LAYERS.TOOLTIP\n }}\n className={classnames(\n styles['tooltip-overlay'],\n extraClass,\n {\n [styles['tooltip-overlay--visible']]: isVisible,\n [styles['tooltip-overlay--black-theme']]:\n theme === TOOLTIP_THEME.BLACK,\n [styles['tooltip-overlay--white-theme']]:\n theme === TOOLTIP_THEME.WHITE\n }\n )}\n onMouseEnter={onFocusIn}\n onMouseLeave={onFocusOut}\n >\n <Stack space={8}>\n {header && (\n <div className={styles['tooltip-overlay__header']}>\n {header}\n </div>\n )}\n {children}\n </Stack>\n </div>\n <div\n className={classnames(\n styles['tooltip-overlay-arrow'],\n extraClass,\n {\n [styles['tooltip-overlay-arrow--visible']]:\n isVisible,\n [styles['tooltip-overlay-arrow--top']]:\n position.actualPlacement.placement ===\n TOOLTIP_PLACEMENT.TOP,\n [styles['tooltip-overlay-arrow--bottom']]:\n position.actualPlacement.placement ===\n TOOLTIP_PLACEMENT.BOTTOM,\n [styles['tooltip-overlay-arrow--black-theme']]:\n theme === TOOLTIP_THEME.BLACK,\n [styles['tooltip-overlay-arrow--white-theme']]:\n theme === TOOLTIP_THEME.WHITE\n }\n )}\n style={{\n ...position.arrow,\n zIndex: Z_INDEX_LAYERS.TOOLTIP\n }}\n onMouseEnter={onFocusIn}\n />\n </div>\n </Portal>\n );\n};\n\nexport default TooltipOverlay;\n","import React, { useState, useRef, Fragment, forwardRef } from 'react';\nimport styles from './tooltip.scss';\nimport classnames from 'classnames';\nimport TooltipOverlay from './TooltipOverlay';\nimport { Placement, TooltipTheme } from './types';\nimport { useIsMounted } from '../../hooks/useIsMounted';\nimport {\n TOOLTIP_THEME,\n TOOLTIP_PLACEMENT,\n TOOLTIP_DELAY_ON_OPEN,\n TOOLTIP_DELAY_ON_CLOSE\n} from './constants';\nimport { RefType } from '../../utils/types';\n\ntype Props = {\n theme?: TooltipTheme;\n /** It defines the overlay position on the screen. The component might not use the value defined in here as it will place the tooltip on the best place based on the anchor position on the screen. */\n placement?: Placement;\n /** It can be text or a JSX. */\n overlay?: React.ReactNode;\n /** Used on the `white` theme when there is a need of adding a header to the tooltip. */\n header?: React.ReactNode;\n /** If `true` it allow the overlay to keep open if the user hover it so, user can iteract with it (click on a link or copy the text). */\n delayOnClose?: boolean;\n /** If `true` it will add a delay on opening the overlay, if the user is not hovering the anchor it will not open the overlay. */\n delayOnOpen?: boolean;\n extraClass?: string;\n children: React.ReactElement;\n};\n\nconst Tooltip = (\n {\n theme = TOOLTIP_THEME.BLACK,\n placement = TOOLTIP_PLACEMENT.BOTTOM,\n delayOnClose = false,\n delayOnOpen = false,\n overlay,\n header,\n extraClass,\n children\n }: Props,\n forwardedRef: RefType<HTMLDivElement>\n) => {\n const checkIsMounted = useIsMounted();\n const internalRef = useRef<HTMLDivElement>(null);\n const containerRef = forwardedRef || internalRef;\n const [isVisible, setIsVisible] = useState(false);\n const isFocusingOnTooltip = useRef(false);\n const isFocusingOnAnchor = useRef(false);\n\n const onAnchorFocusIn = () => {\n isFocusingOnAnchor.current = true;\n };\n const onAnchorFocusOut = () => {\n isFocusingOnAnchor.current = false;\n };\n const openTooltip = () => {\n onAnchorFocusIn();\n if (delayOnOpen) {\n setTimeout(() => {\n checkIsMounted() &&\n isFocusingOnAnchor.current &&\n setIsVisible(true);\n }, TOOLTIP_DELAY_ON_OPEN);\n } else {\n setIsVisible(true);\n }\n };\n\n const closeTooltip = () => setIsVisible(false);\n const closeTooltipWithDelay = () => {\n onAnchorFocusOut();\n if (delayOnClose) {\n setTimeout(() => {\n checkIsMounted() &&\n !isFocusingOnTooltip.current &&\n closeTooltip();\n }, TOOLTIP_DELAY_ON_CLOSE);\n } else {\n closeTooltip();\n }\n };\n const anchorElements = React.Children.count(children);\n\n if ((!overlay && !header) || anchorElements === 0) {\n return children;\n }\n\n const anchorPosition =\n typeof containerRef !== 'function' &&\n containerRef?.current?.getBoundingClientRect();\n\n const Overlay = () =>\n isVisible && anchorPosition ? (\n <TooltipOverlay\n anchorPosition={anchorPosition}\n placement={placement}\n theme={theme}\n header={\n theme === TOOLTIP_THEME.BLACK && !header ? overlay : header\n }\n onClose={closeTooltip}\n onFocusIn={() => {\n isFocusingOnTooltip.current = true;\n }}\n onFocusOut={() => {\n isFocusingOnTooltip.current = false;\n closeTooltip();\n }}\n extraClass={extraClass}\n >\n {theme === TOOLTIP_THEME.BLACK && !header ? null : overlay}\n </TooltipOverlay>\n ) : null;\n\n if (React.Children.count(children) === 1) {\n return (\n <Fragment>\n {React.Children.map(children, (child: React.ReactElement) => {\n return React.cloneElement(child, {\n onMouseEnter: openTooltip,\n onMouseLeave: closeTooltipWithDelay,\n onFocus: openTooltip,\n onBlur: closeTooltipWithDelay,\n ref: containerRef\n });\n })}\n <Overlay />\n </Fragment>\n );\n }\n\n return (\n <div\n className={classnames(styles['tooltip'])}\n onMouseEnter={openTooltip}\n onMouseLeave={closeTooltipWithDelay}\n onFocus={openTooltip}\n onBlur={closeTooltipWithDelay}\n ref={containerRef}\n >\n {children}\n <Overlay />\n </div>\n );\n};\n\nexport default forwardRef<HTMLDivElement, Props>(Tooltip);\n","import React, { Children, forwardRef } from 'react';\nimport classnames from 'classnames';\nimport Inline from '../../core/Inline';\nimport Spinner from '../../feedback/Spinner';\nimport Tooltip from '../../overlay/Tooltip';\nimport styles from './button.scss';\nimport { RefType } from '../../utils/types';\n\ntype ButtonTheme =\n | 'default'\n | 'primary'\n | 'danger'\n | 'upsell'\n | 'marketing'\n | 'hollow'\n | 'link-primary'\n | 'link-danger'\n | 'link-upsell'\n | 'link-toolbar'\n | 'link-contrast'\n | 'link-icon';\n\ntype Props = {\n children: React.ReactNode;\n type?: 'button' | 'submit' | 'reset';\n /** It controls the button theme */\n theme?: ButtonTheme;\n disabled?: boolean;\n onClick?: React.MouseEventHandler;\n id?: string;\n wide?: boolean;\n loading?: boolean;\n /** This will show a black tooltip when the user hover the button */\n title?: string;\n href?: string;\n target?: '_blank' | '_self';\n};\n\nconst Button = (\n {\n children,\n type = 'button',\n theme = 'default',\n disabled = false,\n onClick,\n id,\n wide,\n loading,\n title,\n href,\n target = '_self'\n }: Props,\n ref: RefType<HTMLButtonElement | HTMLAnchorElement>\n) => {\n const contrastSpinner = [\n 'primary',\n 'danger',\n 'upsell',\n 'marketing',\n 'link-contrast'\n ];\n\n const childrenArr = Children.toArray(children);\n const isIconOnly = childrenArr.length === 1 && typeof childrenArr[0] != 'string';\n\n return (\n <Tooltip overlay={title}>\n <ButtonElement\n id={id}\n onClick={onClick}\n className={classnames(styles['button'], {\n [styles['button--default']]: theme === 'default',\n [styles['button--primary']]: theme === 'primary',\n [styles['button--danger']]: theme === 'danger',\n [styles['button--upsell']]: theme === 'upsell',\n [styles['button--marketing']]: theme === 'marketing',\n [styles['button--hollow']]: theme === 'hollow',\n [styles['button--link-primary']]: theme === 'link-primary',\n [styles['button--link-danger']]: theme === 'link-danger',\n [styles['button--link-upsell']]: theme === 'link-upsell',\n [styles['button--link-toolbar']]: theme === 'link-toolbar',\n [styles['button--link-contrast']]:\n theme === 'link-contrast',\n [styles['button--link-icon']]: theme === 'link-icon',\n [styles['button--wide']]: wide,\n [styles['button--loading']]: loading,\n [styles['button--icon-only']]: isIconOnly\n })}\n type={type}\n disabled={disabled || loading}\n href={href}\n ref={ref}\n target={target}\n >\n <Inline space={8} alignItems=\"center\">\n {children}\n </Inline>\n {loading && (\n <div className={styles['button__spinner']}>\n <Spinner\n theme={\n contrastSpinner.includes(theme)\n ? 'contrast'\n : 'disabled'\n }\n />\n </div>\n )}\n </ButtonElement>\n </Tooltip>\n );\n};\n\ntype ButtonElementProps = {\n id?: string;\n onClick?: React.MouseEventHandler;\n className: string;\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n children: React.ReactNode;\n href?: string;\n target: '_blank' | '_self';\n};\nconst ButtonElement = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonElementProps\n>(\n (\n {\n id,\n onClick,\n className,\n type,\n disabled,\n href,\n target,\n children,\n ...rest\n }: ButtonElementProps,\n ref: RefType<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n const commonProps = {\n id: id,\n onClick: onClick,\n className,\n disabled\n };\n if (href) {\n return (\n <a\n {...commonProps}\n {...rest}\n href={href}\n target={target}\n aria-disabled={disabled}\n ref={ref as RefType<HTMLAnchorElement>}\n >\n {children}\n </a>\n );\n }\n return (\n <button\n {...commonProps}\n {...rest}\n type={type}\n ref={ref as RefType<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n }\n);\n\nexport default forwardRef<HTMLButtonElement | HTMLAnchorElement, Props>(Button);\n","import React from 'react';\nimport Button from '../../actions/Button';\nimport { useMenuContext } from './MenuContext';\n\ntype ButtonTheme =\n | 'default'\n | 'primary'\n | 'danger'\n | 'upsell'\n | 'marketing'\n | 'hollow'\n | 'link-primary'\n | 'link-danger'\n | 'link-upsell'\n | 'link-toolbar'\n | 'link-contrast'\n | 'link-icon';\n\ntype Props = {\n children: React.ReactNode;\n theme?: ButtonTheme;\n};\n\n// @ts-ignore: This will be implmented soon\nconst MenuButton: React.FC<Props> = ({ theme = 'link-icon', children }) => {\n const { onToggleMenu, triggerRef } = useMenuContext();\n\n return (\n <Button\n onClick={(e) => {\n onToggleMenu();\n e.stopPropagation();\n }}\n theme={theme}\n ref={triggerRef}\n >\n {children}\n </Button>\n );\n};\n\nexport default MenuButton;\n","import React from 'react';\n\ntype Event = MouseEvent | TouchEvent;\n\n// Determine if click was inside of provided element\nfunction isClickInside<T = HTMLElement>(\n ref: { current: T | null },\n event: Event\n): boolean {\n return (\n !ref.current ||\n // @ts-ignore: `.contains` should exist on T type\n (event.target instanceof Node && ref.current.contains(event.target))\n );\n}\n\n// Make sure to wrap your callback function in useCallback before passing so that it doesn't rerender\nexport default function useOnClickOutside<T = HTMLElement>(\n ref: { current: T | null },\n cb: (event?: Event) => void\n) {\n React.useEffect(() => {\n const listener = (event: Event) => {\n if (isClickInside<T>(ref, event)) {\n return;\n }\n\n cb(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, cb]);\n}\n","// @flow\n\nimport React, { useRef, useEffect, useCallback, useState } from 'react';\nimport classnames from 'classnames';\nimport useOnClickOutside from '../hooks/useOnClickOutside';\nimport { useMenuContext } from './MenuContext';\nimport styles from './menu.scss';\nimport Portal from '../../core/Portal/Portal';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MenuList: React.FC<Props> = ({ children }) => {\n const paneElement = useRef<HTMLUListElement>(null);\n const { isOpen, onToggleMenu, triggerRef } = useMenuContext();\n const [position, setPosition] = useState({});\n\n const clickOutisideCallback = useCallback(() => {\n if (isOpen) {\n onToggleMenu();\n }\n }, [isOpen]);\n\n useOnClickOutside(paneElement, clickOutisideCallback);\n\n useEffect(() => {\n const triggerPosition = triggerRef.current.getBoundingClientRect();\n const panePosition = paneElement.current?.getBoundingClientRect();\n const paneWidth = panePosition?.width || 160;\n\n const pos = {\n left: triggerPosition.left + triggerPosition.width - paneWidth,\n top:\n triggerPosition.top +\n window.scrollY +\n triggerPosition.height +\n 3\n };\n setPosition(pos);\n }, [isOpen, triggerRef]);\n\n return (\n <Portal>\n <ul\n className={classnames(styles['list'], {\n [styles['list--active']]: isOpen\n })}\n role=\"menu\"\n style={position}\n ref={paneElement}\n >\n {children}\n </ul>\n </Portal>\n );\n};\n\nexport default MenuList;\n","//@flow\nimport React from 'react';\nimport classnames from 'classnames';\nimport { useResourceTableContext } from '../ResourceTable/ResourceTableContext';\nimport type { Action } from '../ResourceTable/types';\nimport Menu from '../../overlay/Menu/Menu';\nimport MenuItem from '../../overlay/Menu/MenuItem';\nimport MenuButton from '../../overlay/Menu/MenuButton';\nimport MenuList from '../../overlay/Menu/MenuList';\nimport { IconMore } from '../../icons';\nimport styles from './resource-table-row.scss';\n\ntype Props = {\n children: React.ReactNode;\n onClick?: () => void;\n isSelected?: boolean;\n actions?: Action[];\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTableRow: React.FC<Props> = ({\n children,\n onClick,\n isSelected = false,\n actions = []\n}) => {\n const { columnSizes, showActionMenu } = useResourceTableContext();\n const styleNames = classnames(styles['item'], {\n [styles['clickable']]: onClick,\n [styles['selected']]: isSelected\n });\n const renderColumn = (columnElement: React.ReactNode, index: number) => {\n return (\n <div\n className={styles['item-column']}\n style={{\n flex: (columnSizes && columnSizes[index]) || 1\n }}\n key={index}\n data-testid=\"resource-table-column\"\n >\n {columnElement}\n </div>\n );\n };\n const columnElements = React.Children.toArray(children);\n return (\n <div\n className={styleNames}\n onClick={onClick ? onClick : undefined}\n onKeyPress={onClick ? onClick : undefined}\n data-testid=\"resource-table-row\"\n role=\"row\"\n tabIndex={0}\n >\n {columnElements.map(renderColumn)}\n {showActionMenu && (\n <div\n className={classnames(\n styles['item-column'],\n styles['actions']\n )}\n data-testid=\"resource-table-dropdown-menu\"\n >\n {actions.length > 0 && (\n <Menu>\n <MenuButton>\n <IconMore />\n </MenuButton>\n <MenuList>\n {actions.map(\n (action: Action, index: number) => (\n <MenuItem\n onClick={action.onAction}\n key={index}\n >\n {action.label}\n </MenuItem>\n )\n )}\n </MenuList>\n </Menu>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default ResourceTableRow;\n","//@flow\nimport React from 'react';\nimport type { Column, Sort, SortDirection } from './types';\nimport classnames from 'classnames';\nimport styles from './resource-table.scss';\nimport { IconChevronUp, IconChevronDown } from '../../icons';\n\ntype SortOrder = {\n ASC: 'asc';\n DESC: 'desc';\n};\nconst SORT_ORDER: SortOrder = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\ntype Props = {\n columns: Column[];\n onSort?: (sort: Sort) => void;\n showActionMenu?: boolean;\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTableHeader: React.FC<Props> = ({\n columns,\n onSort,\n showActionMenu\n}) => {\n //Handling the case where the columns is used only to define the size\n const haveLabels = columns.find(\n (column) => column.label && column.label !== ''\n );\n if (!haveLabels) {\n return null;\n }\n\n const handleSort = (column: Column) => {\n const nextDirection = getNextSort(column);\n if (onSort) {\n onSort({\n columnName: column.name,\n direction: nextDirection\n });\n }\n };\n return (\n <div className={styles['header']}>\n {columns.map((column: Column) => {\n const isSortable = column.isSortable;\n const sortDir = column.currentSort;\n return (\n <div\n className={classnames({\n [styles['header-item']]: true,\n [styles['header-item--sortable']]: isSortable\n })}\n style={{\n flex: column.size || 1\n }}\n key={column.name}\n onClick={() => isSortable && handleSort(column)}\n onKeyPress={() => isSortable && handleSort(column)}\n role=\"columnheader\"\n tabIndex={0}\n >\n {column.label}{' '}\n {isSortable && (\n <span className={styles['header-sort-icon']}>\n <IconSort sortDirection={sortDir} />\n </span>\n )}\n </div>\n );\n })}\n {showActionMenu && (\n <div\n className={classnames(\n styles['header-item'],\n styles['header-item--action']\n )}\n />\n )}\n </div>\n );\n};\n\nconst getNextSort = (column: Column): SortDirection => {\n switch (column.currentSort) {\n case SORT_ORDER.ASC:\n return null;\n case SORT_ORDER.DESC:\n return SORT_ORDER.ASC;\n default:\n return SORT_ORDER.DESC;\n }\n};\n\ntype IconSortProps = {\n sortDirection?: SortDirection;\n};\nconst IconSort = ({ sortDirection }: IconSortProps) => {\n const sortDir = sortDirection || null;\n return (\n <div style={{ display: 'inline-flex', flexDirection: 'column' }}>\n {sortDir !== 'desc' && <IconChevronUp size=\"small\" />}\n {sortDir !== 'asc' && (\n <span style={{ marginTop: '-4px' }}>\n <IconChevronDown size=\"small\" />\n </span>\n )}\n </div>\n );\n};\n\nexport default ResourceTableHeader;\n","// This is basicaly a copy from `Util/localization.js` so we can remove the dependency from webapp until we find a better way of dealing with translations\nexport const getLocalizedString = (key: string): string => {\n // Just a hacky way to see if we are in the webapp and have the Shifts var defined\n // @ts-ignore: TODO: Fix it\n if (!window.Shifts) {\n return getLocalTranslation(key);\n }\n return getWebAppTranslation(key);\n};\n\nconst getWebAppTranslation = (key: string): string => {\n // @ts-ignore: TODO: Fix it\n declare var Shifts: any;\n // If the Shifts is not present, return the key capitalized, for example, `default.next` => `Next`\n if (!Shifts || Shifts?.Lang?.cache === undefined) {\n return getLocalTranslation(key);\n }\n\n var [moduleName, id] = key.split('.');\n if (\n Shifts.Lang.cache === undefined ||\n Shifts.Lang.cache[moduleName] === undefined ||\n Shifts.Lang.cache[moduleName][id] === undefined\n ) {\n return key;\n }\n return Shifts.Lang.cache[moduleName][id];\n};\n\n// If the Shifts is not present, return the key capitalized, for example, `default.next` => `Next`\nconst getLocalTranslation = (key: string): string => {\n const translationParts = key.split('.');\n if (translationParts.length > 1) {\n const literal = translationParts[1];\n return literal.charAt(0).toUpperCase() + literal.slice(1).toLowerCase();\n }\n return key;\n};\n","import React from 'react';\nimport Button from '../Button';\nimport { IconArrowLeft, IconArrowRight } from '../../icons';\nimport styles from './pagination-controls.scss';\nimport { getLocalizedString as __ } from '../../utils/i18n';\n\ntype Props = {\n hasPrevious?: boolean;\n hasNext?: boolean;\n onPreviousClick: () => void;\n onNextClick: () => void;\n};\n\n/**\n * `PaginationControls` are two buttons side by side, currently most used within ResourceTable.\n */\nconst PaginationControls: React.FC<Props> = ({\n hasPrevious = true,\n hasNext = true,\n onPreviousClick,\n onNextClick\n}) => {\n return (\n <div className={styles['pagination-controls']}>\n <Button\n disabled={!hasPrevious}\n onClick={onPreviousClick}\n title={__('default.PREVIOUS')}\n >\n <IconArrowLeft size=\"small\" />\n </Button>\n <Button\n disabled={!hasNext}\n onClick={onNextClick}\n title={__('default.next')}\n >\n <IconArrowRight size=\"small\" />\n </Button>\n </div>\n );\n};\n\nexport default PaginationControls;\n","//@flow\nimport React from 'react';\nimport ResourceTableRow from '../ResourceTableRow';\nimport ResourceTableHeader from './ResourceTableHeader';\nimport PaginationControls from '../../actions/PaginationControls';\nimport Spinner from '../../feedback/Spinner';\nimport Context from './ResourceTableContext';\nimport type { Column, CustomComponent, Item, Sort } from './types';\nimport styles from './resource-table.scss';\n\ntype Props<T> = {\n /** Each element represents a row and each key of the object represents a column */\n items: Item<T>[];\n /** For each column element, the `name` property should match the key on `items` */\n columns?: Column[];\n /** A custom component for customizing how the each item is rendered. It pass as props: `item`, `index`, `columnSizes` and `columns` */\n itemComponent?: React.ComponentType<CustomComponent<T>>;\n maxHeight?: number;\n /** Used for pagination */\n hasPrevious?: boolean;\n /** Used for pagination */\n hasNext?: boolean;\n /** Used for pagination */\n onPreviousClick?: () => void;\n /** Used for pagination */\n onNextClick?: () => void;\n isLoading?: boolean;\n /** It is fired when a sorted column is clicked to be sorted */\n onSort?: (sort: Sort) => void;\n showActionMenu?: boolean;\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTable = <T extends unknown>({\n items,\n columns,\n itemComponent,\n maxHeight,\n hasPrevious = true,\n hasNext = true,\n onPreviousClick,\n onNextClick,\n onSort,\n isLoading = false,\n showActionMenu = false\n}: Props<T>) => {\n const RowItem = itemComponent || DefaultItemComponent;\n let conditionalStyles = {};\n if (maxHeight !== null) {\n conditionalStyles = {\n ...conditionalStyles,\n maxHeight,\n overflowY: 'auto'\n };\n }\n\n const columnSizes = columns && columns.map((column) => column.size || 1);\n\n return (\n <Context.Provider value={{ columnSizes, showActionMenu }}>\n {columns && (\n <ResourceTableHeader\n columns={columns}\n onSort={onSort}\n showActionMenu={showActionMenu}\n />\n )}\n <div\n className={styles['body']}\n style={conditionalStyles}\n role=\"table\"\n >\n {isLoading && <Spinner block />}\n {!isLoading &&\n items.map((item, index) => (\n <RowItem\n item={item}\n columns={columns}\n key={index}\n index={index}\n />\n ))}\n </div>\n {onPreviousClick && onNextClick && (hasPrevious || hasNext) && (\n <div\n className={styles['footer']}\n data-testid=\"pagination-controls\"\n >\n <PaginationControls\n hasPrevious={hasPrevious && !isLoading}\n hasNext={hasNext && !isLoading}\n onPreviousClick={onPreviousClick}\n onNextClick={onNextClick}\n />\n </div>\n )}\n </Context.Provider>\n );\n};\n\nconst DefaultItemComponent = ({ columns, item }: CustomComponent<any>) => {\n const headingKeys = columns\n ? columns.map((column) => column.name)\n : Object.keys(item);\n\n const columnsToShow = headingKeys.filter(\n (key: string) => key !== 'actions'\n );\n\n return (\n <ResourceTableRow actions={item.actions}>\n {columnsToShow.map((headingKey) => (\n <div key={headingKey}>{item[headingKey] || ''}</div>\n ))}\n </ResourceTableRow>\n );\n};\n\nexport default ResourceTable;\n","import React, { createContext, useContext } from 'react';\nimport { FormikType } from './types';\n\nexport type FormContextType = {\n formik?: FormikType;\n};\n\nconst Context: React.Context<FormContextType> = createContext<FormContextType>(\n {}\n);\n\nexport const useFormContext = (): FormContextType => {\n const context = useContext(Context);\n\n return context || {};\n};\n\nexport default Context;\n","import React from 'react';\nimport classnames from 'classnames';\nimport Stack from '../../core/Stack';\nimport Context from './FormContext';\nimport { FormikType } from './types';\nimport styles from './form.scss';\n\ntype Props = {\n children: React.ReactNode;\n onSubmit?: (e: Object) => void;\n /** By default forms are `500px`. If you want the form to use all the space you can turn this ON. */\n wide?: boolean;\n /** If set it will controll the state of the form using `Formik` */\n formik?: FormikType;\n stackContent?: boolean;\n};\nconst Form: React.FC<Props> = ({\n children,\n onSubmit,\n wide = false,\n formik,\n stackContent = true\n}) => {\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n onSubmit && onSubmit(e.currentTarget.elements);\n };\n return (\n <Context.Provider value={{ formik }}>\n <form\n onSubmit={onSubmit ? handleSubmit : formik?.handleSubmit}\n className={classnames({\n [styles['form--standard-size']]: !wide\n })}\n data-testid=\"form\"\n >\n {stackContent ? <Stack>{children}</Stack> : children}\n </form>\n </Context.Provider>\n );\n};\n\nexport default Form;\n","// @flow strict\nimport React from 'react';\nimport Inline from '../../core/Inline';\n\ntype Size25Percent = '25%';\nexport const SIZE_25_PERCENT: Size25Percent = '25%';\n\ntype Size33Percent = '33.333%';\nexport const SIZE_33_PERCENT: Size33Percent = '33.333%';\n\ntype Size50Percent = '50%';\nexport const SIZE_50_PERCENT: Size50Percent = '50%';\n\ntype Size66Percent = '66.666%';\nexport const SIZE_66_PERCENT: Size66Percent = '66.666%';\n\ntype Size75Percent = '75%';\nexport const SIZE_75_PERCENT: Size75Percent = '75%';\n\ntype Size =\n | Size25Percent\n | Size33Percent\n | Size50Percent\n | Size66Percent\n | Size75Percent;\n\ntype Props = {\n children: React.ReactNode;\n columns?: number;\n sizes?: Size[];\n};\n/** Easily add form fields side by side with equal size. */\nconst FormRow: React.FC<Props> = ({ children, columns, sizes }) => {\n const items = React.Children.toArray(children).filter(Boolean);\n const additionalColumns = [];\n if (columns !== undefined) {\n if (columns > items.length) {\n additionalColumns.push(\n ...new Array(columns - items.length).map(() => '')\n );\n }\n }\n return (\n <Inline\n flex={[...items, ...additionalColumns].map(\n (_, index) => sizes?.[index] || 1\n )}\n space={20}\n >\n {children}\n {additionalColumns.map((_, index) => (\n <span key={index} data-testid=\"empty-cell\" />\n ))}\n </Inline>\n );\n};\n\nexport default FormRow;\n","import React from 'react';\nimport styles from './label.scss';\n\ntype Props = {\n htmlFor: string;\n children: React.ReactNode;\n};\nconst Label: React.FC<Props> = ({ htmlFor, children }) => {\n return (\n <label htmlFor={htmlFor} className={styles['label']}>\n {children}\n </label>\n );\n};\n\nexport default Label;\n","import React from 'react';\nimport styles from './caption.scss';\n\ntype Props = {\n fieldId?: string;\n children: React.ReactNode;\n};\nconst Caption: React.FC<Props> = ({ fieldId, children }) => {\n return (\n <div\n id={fieldId && `${fieldId}-describer`}\n className={styles['caption']}\n >\n {children}\n </div>\n );\n};\n\nexport default Caption;\n","/*\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nTHIS IS A JAVASCRIPT CONVERSION OF _colors.scss\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n*/\n\nexport const WHITE: '#ffffff' = '#ffffff';\nexport const BLACK: '#000000' = '#000000';\n\n// TANGERINE (oranges)\nexport const TANGERINE100: '#fef1ed' = '#fef1ed';\nexport const TANGERINE200: '#fdd5c8' = '#fdd5c8';\nexport const TANGERINE300: '#fcab91' = '#fcab91';\nexport const TANGERINE400: '#fb7448' = '#fb7448'; // Base\nexport const TANGERINE500: '#e16840' = '#e16840';\nexport const TANGERINE600: '#96452b' = '#96452b';\nexport const TANGERINE700: '#4a2215' = '#4a2215';\n\n// EGGPLANT (purples)\nexport const EGGPLANT100: '#f0f3fb' = '#f0f3fb';\nexport const EGGPLANT200: '#d3dbf4' = '#d3dbf4';\nexport const EGGPLANT300: '#a7b7ea' = '#a7b7ea';\nexport const EGGPLANT400: '#6d87dd' = '#6d87dd'; // Base\nexport const EGGPLANT500: '#6179c6' = '#6179c6';\nexport const EGGPLANT600: '#415184' = '#415184';\nexport const EGGPLANT700: '#32295c' = '#32295c';\n\n// MINT (teals)\nexport const MINT100: '#ecfaf8' = '#ecfaf8';\nexport const MINT200: '#c6f1eb' = '#c6f1eb';\nexport const MINT300: '#8de4d7' = '#8de4d7';\nexport const MINT400: '#3abda9' = '#3abda9'; // Base\nexport const MINT500: '#35ac9a' = '#35ac9a';\nexport const MINT600: '#277e71' = '#277e71';\nexport const MINT700: '#133e38' = '#133e38';\n\n// RADISH (reds)\nexport const RADISH100: '#fcf0f0' = '#fcf0f0';\nexport const RADISH200: '#f7d1d1' = '#f7d1d1';\nexport const RADISH300: '#f0a3a3' = '#f0a3a3';\nexport const RADISH400: '#e76767' = '#e76767'; // Base\nexport const RADISH500: '#cf5c5c' = '#cf5c5c';\nexport const RADISH600: '#8a3d3d' = '#8a3d3d';\nexport const RADISH700: '#441e1e' = '#441e1e';\n\n// BLUEBERRY (blues)\nexport const BLUEBERRY100: '#f6fdff' = '#f6fdff';\nexport const BLUEBERRY200: '#ceecf5' = '#ceecf5';\nexport const BLUEBERRY300: '#9cd9eb' = '#9cd9eb';\nexport const BLUEBERRY400: '#5bc0de' = '#5bc0de'; // Base\nexport const BLUEBERRY500: '#51acc7' = '#51acc7';\nexport const BLUEBERRY600: '#367385' = '#367385';\nexport const BLUEBERRY700: '#1b3942' = '#1b3942';\n\n//BANANA (yellows)\nexport const BANANA100: '#fff9ed' = '#fff9ed';\nexport const BANANA200: '#ffeec9' = '#ffeec9';\nexport const BANANA300: '#ffdd92' = '#ffdd92';\nexport const BANANA400: '#ffc74a' = '#ffc74a'; // Base\nexport const BANANA500: '#e5b242' = '#e5b242';\nexport const BANANA600: '#99772c' = '#99772c';\nexport const BANANA700: '#4c3b16' = '#4c3b16';\n\n// GREYS\nexport const GREY100: '#f8f8f8' = '#f8f8f8';\nexport const GREY200: '#e0e0e0' = '#e0e0e0';\nexport const GREY300: '#c1c1c1' = '#c1c1c1';\nexport const GREY400: '#929292' = '#929292';\nexport const GREY500: '#555555' = '#555555'; // Body Text (Base)\nexport const GREY600: '#464646' = '#464646';\n\nexport const COLORS = {\n TANGERINE: 'tangerine',\n EGGPLANT: 'eggplant',\n MINT: 'mint',\n RADISH: 'radish',\n BLUEBERRY: 'blueberry',\n BANANA: 'banana'\n};\n\nexport type Color =\n | typeof WHITE\n | typeof BLACK\n | typeof TANGERINE100\n | typeof TANGERINE200\n | typeof TANGERINE300\n | typeof TANGERINE400\n | typeof TANGERINE500\n | typeof TANGERINE600\n | typeof TANGERINE700\n | typeof EGGPLANT100\n | typeof EGGPLANT200\n | typeof EGGPLANT300\n | typeof EGGPLANT400\n | typeof EGGPLANT500\n | typeof EGGPLANT600\n | typeof EGGPLANT700\n | typeof MINT100\n | typeof MINT200\n | typeof MINT300\n | typeof MINT400\n | typeof MINT500\n | typeof MINT600\n | typeof MINT700\n | typeof RADISH100\n | typeof RADISH200\n | typeof RADISH300\n | typeof RADISH400\n | typeof RADISH500\n | typeof RADISH600\n | typeof RADISH700\n | typeof BLUEBERRY100\n | typeof BLUEBERRY200\n | typeof BLUEBERRY300\n | typeof BLUEBERRY400\n | typeof BLUEBERRY500\n | typeof BLUEBERRY600\n | typeof BLUEBERRY700\n | typeof BANANA100\n | typeof BANANA200\n | typeof BANANA300\n | typeof BANANA400\n | typeof BANANA500\n | typeof BANANA600\n | typeof BANANA700\n | typeof GREY100\n | typeof GREY200\n | typeof GREY300\n | typeof GREY400\n | typeof GREY500\n | typeof GREY600;\n","import React from 'react';\nimport Inline from '../../core/Inline';\nimport { IconDelete } from '../../icons';\nimport { RADISH400 } from '../../foundation/colors';\nimport styles from './error-message.scss';\n\ntype Props = {\n fieldId?: string;\n children: React.ReactNode;\n};\nconst ErrorMessage: React.FC<Props> = ({ fieldId, children }) => {\n return (\n <div\n id={fieldId && `${fieldId}-error-message`}\n className={styles['error-message']}\n >\n <Inline space={8} alignItems=\"center\">\n <IconDelete color={RADISH400} size=\"medium\" />\n {children}\n </Inline>\n </div>\n );\n};\n\nexport default ErrorMessage;\n","// @flow\nimport React from 'react';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport ErrorMessage from '../ErrorMessage';\nimport Stack from '../../core/Stack';\n\ntype Props = {\n id: string;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: React.ReactNode;\n children: React.ReactNode;\n};\nconst Field: React.FC<Props> = ({ id, label, caption, error, children }) => {\n return (\n <Stack space={8} flexItems>\n {label && <Label htmlFor={id}>{label}</Label>}\n {children}\n {caption && <Caption fieldId={id}>{caption}</Caption>}\n {error && <ErrorMessage fieldId={id}>{error}</ErrorMessage>}\n </Stack>\n );\n};\n\nexport default Field;\n","import { useMemo } from 'react';\n\ntype Props = {\n name: string;\n id?: string;\n};\nexport const useFieldId = ({ name, id: inputId }: Props): string => {\n //Using useMemo so it does not generate a different id every time the component rerenders\n const id = useMemo(\n () => (inputId ? inputId : `${name}-${Math.random()}`),\n [inputId, name]\n );\n return id;\n};\n","import { FormikType } from '../forms';\n\nexport const getFormikState = (name: string, formik?: FormikType) => {\n if (formik === undefined) {\n return null;\n }\n if (Object.keys(formik.values).includes(name)) {\n return {\n error: formik.touched[name] ? formik.errors[name] : undefined,\n value: formik.values[name]\n };\n }\n\n const formikArray = getFormikArrayPath(name);\n if (formikArray) {\n const { arrayName, itemIndex, fieldName } = formikArray;\n return {\n error: formik.touched?.[arrayName]?.[itemIndex]?.[fieldName]\n ? formik.errors?.[arrayName]?.[itemIndex]?.[fieldName]\n : undefined,\n value: formik.values?.[arrayName]?.[itemIndex]?.[fieldName]\n };\n }\n\n return null;\n};\n\nconst getFormikArrayPath = (name: string) => {\n if (!name.includes('[')) {\n return false;\n }\n const [arrayName, missingSplit] = name.split('[');\n const [itemIndex, fieldName] = missingSplit.split('].');\n\n return {\n arrayName,\n itemIndex,\n fieldName\n };\n};\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype InputElement = HTMLInputElement | HTMLTextAreaElement;\n\ntype FieldControls = {\n id: string;\n error?: string;\n value?: string;\n onChange: (e: React.ChangeEvent<InputElement>) => void;\n onBlur: (e: React.ChangeEvent<InputElement>) => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n error?: string;\n};\nexport const useFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (e: React.ChangeEvent<InputElement>) =>\n // @ts-ignore this is needed because the Formik `Field` component expect the full event\n onChange && onChange(formik ? e : e.target.value),\n onBlur: (e: React.ChangeEvent<InputElement>) =>\n // @ts-ignore this is needed because the Formik `Field` component expect the full event\n onBlur && onBlur(formik ? e : e.target.value)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: onChange\n ? controllers.onChange\n : (e: React.ChangeEvent<InputElement>) =>\n formik.setFieldValue(name, e.target.value),\n onBlur: onBlur\n ? controllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return controllers;\n};\n","import { useEffect, useRef } from 'react';\n\ntype UseGrowTextAreaRef = {\n ref: { current: null | HTMLTextAreaElement };\n updateHeight: () => void;\n};\n\nexport const useGrowTextAreaRef = (\n minHeight: number,\n maxHeight: number,\n autoGrow: boolean,\n forwardedRef?: { current: null | HTMLTextAreaElement }\n): UseGrowTextAreaRef => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const ref = forwardedRef ?? textareaRef;\n\n const updateHeight = () => {\n if (ref.current && autoGrow) {\n ref.current.style.height = `${minHeight}px`;\n ref.current.style.height = ref.current.scrollHeight + 'px';\n }\n };\n\n useEffect(() => {\n if (ref.current) {\n ref.current.style.minHeight = `${minHeight}px`;\n ref.current.style.maxHeight = `${maxHeight}px`;\n }\n }, [maxHeight, minHeight, minHeight, ref]);\n\n return {\n ref,\n updateHeight\n };\n};\n","/* We need to disable these as the onClick on that div is just there to trigger the focus on the textare. It whould not have any keyboad event. */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n\nimport React, { useState, useRef } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport styles from './text-area-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { useGrowTextAreaRef } from '../hooks/useGrowTextAreaRef';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input. */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: string;\n /** When `true` the field will grow as more lines is added until it hits the `maxHeight` defined. */\n autoGrow?: boolean;\n /** It defines the minimum size the input can grow. */\n minHeight?: number;\n /** It defines the maximum size the input can grow. */\n maxHeight?: number;\n /** A JSX containing the toolbar elements. You can use `Inline` to place the buttons properly on the toolbar space. */\n toolbar?: React.ReactNode;\n};\nconst TextAreaField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n autoGrow = false,\n minHeight = 40,\n maxHeight = 320,\n toolbar\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [hasFocus, setHasFocus] = useState(false);\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n const { ref: textAreaRef, updateHeight } = useGrowTextAreaRef(\n minHeight,\n maxHeight,\n autoGrow\n );\n\n return (\n <Field {...fieldProps}>\n <div\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError,\n [styles['text-field--disabled']]: disabled,\n [styles['text-field--focus']]: hasFocus\n })}\n ref={containerRef}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === containerRef?.current) {\n textAreaRef?.current?.focus();\n }\n }}\n >\n <textarea\n name={name}\n id={controllers.id}\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\n controllers.onChange(e);\n updateHeight();\n }}\n onBlur={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\n controllers.onBlur(e);\n setHasFocus(false);\n }}\n onFocus={() => setHasFocus(true)}\n ref={textAreaRef}\n />\n {toolbar && (\n <div\n className={styles['text-field__toolbar']}\n id={`${controllers.id}-toolbar`}\n ref={toolbarRef}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === toolbarRef?.current) {\n textAreaRef?.current?.focus();\n }\n }}\n >\n {toolbar}\n </div>\n )}\n </div>\n </Field>\n );\n};\n\nexport default TextAreaField;\n","// @flow\nimport React, { useRef, useLayoutEffect } from 'react';\nimport classnames from 'classnames';\nimport styles from './affix-container.scss';\n\ntype Props = {\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n children: React.ReactElement;\n};\nconst AffixContainer: React.FC<Props> = ({ prefix, suffix, children }) => {\n const container = useRef<HTMLDivElement>(null);\n const prefixElement = useRef<HTMLDivElement>(null);\n const suffixElement = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (container.current) {\n // `[class$=control] > div` is to make it work on SelectField as well\n const input: HTMLElement | null = container.current.querySelector(\n 'input, [class$=control] > div'\n );\n if (input) {\n // This is to have flexible padding according to the affix size\n if (prefix && prefixElement.current) {\n const prefixWidth = prefixElement?.current?.offsetWidth;\n input.style.paddingLeft = prefixWidth + 'px';\n }\n if (suffix && suffixElement.current) {\n const suffixWidth = suffixElement.current.offsetWidth;\n input.style.paddingRight = suffixWidth + 'px';\n }\n }\n }\n }, [prefix, suffix]);\n\n const hasPrefix = !!prefix;\n const hasSuffix = !!suffix;\n\n if (!hasPrefix && !hasSuffix) {\n return children;\n }\n\n const classes = classnames(styles['affix-container'], {\n [styles['affix-container--prefixed']]: hasPrefix,\n [styles['affix-container--suffixed']]: hasSuffix\n });\n\n return (\n <div className={classes} ref={container} data-testid=\"affix-container\">\n {hasPrefix && (\n <div className={styles['prefix']} ref={prefixElement}>\n {prefix}\n </div>\n )}\n {children}\n {hasSuffix && (\n <div className={styles['suffix']} ref={suffixElement}>\n {suffix}\n </div>\n )}\n </div>\n );\n};\n\nexport default AffixContainer;\n","import React, { forwardRef } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport styles from './text-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { RefType } from '../../utils/types';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Use a prefix for things like currency symbols (“$”, “¥”, “£”) or icons. */\n prefix?: React.ReactNode;\n /** Use suffix for things like units of measure (“in”, “cm”, ”hours”) or icons. */\n suffix?: React.ReactNode;\n defaultValue?: string;\n autoFocus?: boolean;\n};\nconst TextField = (\n {\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n prefix,\n suffix,\n defaultValue,\n autoFocus\n }: Props,\n ref: RefType<HTMLInputElement>\n) => {\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={prefix} suffix={suffix}>\n <input\n name={name}\n id={controllers.id}\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError\n })}\n type=\"text\"\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n size={1}\n ref={ref}\n autoFocus={autoFocus}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default forwardRef<HTMLInputElement, Props>(TextField);\n","// @flow\nimport React from 'react';\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n checked?: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n checked?: boolean;\n onChange?: (e: boolean) => void;\n onBlur?: (e: boolean) => void;\n error?: string;\n};\nexport const useCheckBoxFieldControllers = ({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers: FieldControls = {\n id,\n error,\n checked,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) =>\n onChange && onChange(e.target.checked),\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) =>\n onBlur && onBlur(e.target.checked)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n checked:\n checked !== undefined ? controllers.checked : formikState.value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldValue(name, e.target.checked);\n onChange && onChange(e.target.checked);\n },\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldTouched(name);\n onBlur && onBlur(e.target.checked);\n }\n };\n }\n return controllers;\n};\n","// @flow\nimport React from 'react';\nimport { useCheckBoxFieldControllers } from '../hooks/useCheckBoxFieldControllers';\nimport Stack from '../../core/Stack';\nimport Inline from '../../core/Inline';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport ErrorMessage from '../ErrorMessage';\nimport styles from './check-box-field.scss';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n checked?: boolean;\n onChange?: (e: boolean) => void;\n onBlur?: (e: boolean) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n disabled?: boolean;\n};\n/** CheckboxField form element. */\nconst CheckboxField: React.FC<Props> = ({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n label,\n caption,\n error,\n disabled\n}) => {\n const controllers = useCheckBoxFieldControllers({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n\n return (\n <Stack space={8}>\n <Inline space={8} alignItems=\"center\">\n <div className={styles['check-box-field']}>\n <input\n name={name}\n id={controllers.id}\n type=\"checkbox\"\n data-testid={`check-box-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n checked={controllers.checked}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n />\n <span className={styles['check-box-field__custom-input']} />\n </div>\n {label && <Label htmlFor={controllers.id}>{label}</Label>}\n </Inline>\n {caption && (\n <div className={styles['check-box-field__caption']}>\n <Caption fieldId={controllers.id}>{caption}</Caption>\n </div>\n )}\n {controllers.error && (\n <ErrorMessage fieldId={controllers.id}>\n {controllers.error}\n </ErrorMessage>\n )}\n </Stack>\n );\n};\n\nexport default CheckboxField;\n","// @flow\nimport React from 'react';\nimport { useFormContext } from '../Form/FormContext';\nimport { getFormikState } from '../../utils/formik';\n\ntype RadioValue = string | number;\ntype FieldControls = {\n error?: string;\n value?: RadioValue;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype Props = {\n name: string;\n value?: RadioValue;\n onChange?: (value: RadioValue) => void;\n error?: string;\n};\nexport const useRadioGroupFieldControllers = ({\n name,\n value,\n onChange,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n\n let controllers: FieldControls = {\n error,\n value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) =>\n onChange && onChange(e.target.value)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldValue(name, e.target.checked);\n onChange && onChange(e.target.value);\n }\n };\n }\n return controllers;\n};\n","import React, { createContext, useContext } from 'react';\n\nexport type RadioGroupFieldContextType = {\n name: string;\n value?: string | number;\n disabled: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupFieldContext: React.Context<RadioGroupFieldContextType | null> =\n createContext<RadioGroupFieldContextType | null>(null);\n\nexport const useRadioGroupFieldContext = (): RadioGroupFieldContextType => {\n const context = useContext(RadioGroupFieldContext);\n\n if (!context) {\n throw new Error('You need to have a `RadioGroupFieldContext` wrapper.');\n }\n\n return context;\n};\n\nexport default RadioGroupFieldContext;\n","// @flow\nimport React, { useCallback } from 'react';\nimport Stack from '../../core/Stack';\nimport { useRadioGroupFieldControllers } from '../hooks/useRadioGroupFieldControllers';\nimport RadioGroupFieldContext from './RadioGroupFieldContext';\nimport styles from './radio-group-field.scss';\nimport ErrorMessage from '../ErrorMessage';\nimport FormRow from '../FormRow';\n\ntype Props = {\n name: string;\n value?: string | number;\n onChange?: (e: string | number) => void;\n label?: React.ReactNode;\n error?: string;\n /** When true it will place the options on the same line up to 4 options per line. */\n inline?: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n};\n/** RadioGroupField form element. */\nconst RadioGroupField: React.FC<Props> = ({\n name,\n value,\n onChange,\n label,\n error,\n inline = false,\n disabled = false,\n children\n}) => {\n const controllers = useRadioGroupFieldControllers({\n name,\n value,\n onChange,\n error\n });\n\n const onChangeHandler = useCallback(\n (e) => {\n controllers.onChange && controllers.onChange(e);\n },\n [name]\n );\n\n const contextValue = {\n name,\n disabled,\n value: controllers.value,\n onChange: onChangeHandler\n };\n\n return (\n <RadioGroupFieldContext.Provider value={contextValue}>\n <Stack space={12}>\n {label && (\n <div className={styles['radio-group-field__label']}>\n {label}\n </div>\n )}\n <Stack space={8}>\n {inline ? (\n <InlineOptions>{children}</InlineOptions>\n ) : (\n <Stack space={12}>{children}</Stack>\n )}\n {controllers.error && (\n <ErrorMessage>{controllers.error}</ErrorMessage>\n )}\n </Stack>\n </Stack>\n </RadioGroupFieldContext.Provider>\n );\n};\n\ntype InlineProps = {\n children: React.ReactNode;\n};\nconst InlineOptions: React.FC<InlineProps> = ({ children }) => {\n const MAX_OPTIONS_PER_ROW = 4;\n const numberOfElements = React.Children.count(children);\n if (numberOfElements > MAX_OPTIONS_PER_ROW) {\n const childrenArray = React.Children.toArray(children);\n const rows = [];\n\n for (let i = 0; i < childrenArray.length; i += MAX_OPTIONS_PER_ROW) {\n rows.push(childrenArray.slice(i, i + MAX_OPTIONS_PER_ROW));\n }\n return (\n <Stack space={12}>\n {rows.map((row, rowIndex) => (\n <FormRow key={rowIndex} columns={MAX_OPTIONS_PER_ROW}>\n {row}\n </FormRow>\n ))}\n </Stack>\n );\n }\n return <FormRow>{children}</FormRow>;\n};\n\nexport default RadioGroupField;\n","// @flow\nimport React from 'react';\nimport Stack from '../../core/Stack';\nimport Inline from '../../core/Inline';\nimport { useRadioGroupFieldContext } from '../RadioGroupField/RadioGroupFieldContext';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport { useFieldId } from '../hooks/useFieldId';\nimport styles from './radio-group-option.scss';\n\ntype Props = {\n value: string | number;\n id?: string;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n};\n/** RadioGroupField form element. */\nconst RadioGroupOption: React.FC<Props> = ({\n value,\n id: inputId,\n label,\n caption\n}) => {\n const radioGroupContext = useRadioGroupFieldContext();\n const id = useFieldId({ name: radioGroupContext.name, id: inputId });\n return (\n <Stack space={8}>\n <Inline space={8} alignItems=\"center\">\n <div className={styles['radio-group-option']}>\n <input\n type=\"radio\"\n id={id}\n name={radioGroupContext.name}\n value={value}\n onChange={radioGroupContext.onChange}\n checked={\n radioGroupContext.value !== undefined\n ? radioGroupContext.value === value\n : undefined\n }\n disabled={radioGroupContext.disabled}\n />\n <span\n className={styles['radio-group-option__custom-input']}\n />\n </div>\n {label && <Label htmlFor={id}>{label}</Label>}\n </Inline>\n {caption && (\n <div className={styles['radio-group-option__caption']}>\n <Caption fieldId={id}>{caption}</Caption>\n </div>\n )}\n </Stack>\n );\n};\n\nexport default RadioGroupOption;\n","// @flow\n\nimport React from 'react';\nimport classnames from 'classnames';\nimport styles from './password-criteria.scss';\n\ntype Props = {\n met: boolean;\n children: React.ReactNode;\n};\n\nconst PasswordCriteria: React.FC<Props> = ({ met, children }) => {\n return (\n <span\n className={classnames(styles['password-criteria'], {\n [styles['password-criteria--invalid']]: !met\n })}\n >\n ● {children}\n </span>\n );\n};\n\nexport default PasswordCriteria;\n","// @flow\nimport React from 'react';\nimport Inline from '../../core/Inline';\nimport Stack from '../../core/Stack';\nimport { PasswordCriteria as PasswordCriteriaType } from '../PasswordField/types';\nimport PasswordCriteria from '../PasswordCriteria';\n\nexport const usePasswordCriteria = (criterias: PasswordCriteriaType[]) => {\n if (criterias.length === 0) {\n return null;\n }\n const groupedCriterias = groupCriterias(criterias);\n\n return (\n <Inline space={28}>\n {groupedCriterias.map((group, groupId) => (\n <Stack space={12} key={groupId}>\n {group.map((criteria, criteriaId) => (\n <PasswordCriteria\n met={criteria.met}\n key={criteria.key || criteriaId}\n >\n {criteria.label}\n </PasswordCriteria>\n ))}\n </Stack>\n ))}\n </Inline>\n );\n};\n\nconst groupCriterias = (\n criterias: PasswordCriteriaType[]\n): Array<PasswordCriteriaType[]> => {\n const toBeGrouped = [...criterias];\n let groupedCriterias = [];\n const size = 4;\n\n while (toBeGrouped.length > 0) {\n groupedCriterias.push(toBeGrouped.splice(0, size));\n }\n\n return groupedCriterias;\n};\n","// @flow\nimport React, { useState } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport styles from './password-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { usePasswordCriteria } from '../hooks/usePasswordCriteria';\nimport type { PasswordCriteria } from './types';\nimport { IconEye, IconEyeSlash } from '../../icons';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: string;\n criterias?: PasswordCriteria[];\n};\n/** It allows show and hide the password as well as displaying the criteria. */\nconst PasswordField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n error,\n placeholder,\n disabled,\n defaultValue,\n criterias = []\n}) => {\n const [type, setType] = useState('password');\n const toggleType = () => setType(type === 'password' ? 'text' : 'password');\n\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const caption = usePasswordCriteria(criterias);\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <div className={styles['password-container']}>\n <input\n name={name}\n id={controllers.id}\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError\n })}\n type={type}\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n />\n <div\n className={styles['password-toggle']}\n onClick={toggleType}\n onKeyPress={toggleType}\n data-testid=\"password-toggle\"\n tabIndex={0}\n role=\"button\"\n >\n {type === 'password' ? <IconEyeSlash /> : <IconEye />}\n </div>\n </div>\n </Field>\n );\n};\n\nexport default PasswordField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport type { SelectOption } from '../SelectField/types';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls<T> = {\n id: string;\n error?: string;\n value?: SelectOption<T>[];\n onChange: (e: SelectOption<T>[]) => void;\n onBlur: (e: SelectOption<T>[]) => void;\n};\n\ntype Props<T> = {\n name: string;\n id?: string;\n value?: SelectOption<T>[];\n onChange?: (e: SelectOption<T>[]) => void;\n onBlur?: (e: SelectOption<T>[]) => void;\n error?: string;\n};\nexport const useMultiSelectFieldControllers = <T>({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props<T>): FieldControls<T> => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (options: SelectOption<T>[]) => onChange && onChange(options),\n onBlur: (options: SelectOption<T>[]) => onBlur && onBlur(options)\n };\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error ? controllers.error : formikState.error,\n value: value ? controllers.value : formikState.value,\n onChange: (options: SelectOption<T>[]) => {\n if (onChange) {\n onChange(options);\n }\n formik.setFieldValue(name, options);\n },\n onBlur: (options: SelectOption<T>[]) => {\n if (onBlur) {\n onBlur(options);\n }\n formik.setFieldTouched(name);\n }\n };\n }\n return controllers;\n};\n","//@flow\nimport {\n EGGPLANT200,\n EGGPLANT300,\n EGGPLANT400,\n EGGPLANT700,\n RADISH400,\n GREY100,\n GREY200,\n GREY300,\n GREY400,\n GREY500,\n GREY600,\n WHITE\n} from '../../foundation/colors';\nimport { Z_INDEX_LAYERS, FONT_FAMILY } from '../../foundation/constants';\n\ntype GetSelectStylesControls = {\n isInvalid: boolean;\n hasPrefix?: boolean;\n asToolbarFilter?: boolean;\n wrapToNextLine?: boolean;\n};\nexport const getSelectStyles = ({\n isInvalid,\n hasPrefix = false,\n asToolbarFilter = false,\n wrapToNextLine = false\n}: GetSelectStylesControls): Object => {\n const borderColor = isInvalid ? RADISH400 : GREY300;\n return {\n valueContainer: (base: Object): Object => {\n return Object.assign({}, base, {\n flexWrap: wrapToNextLine ? 'wrap' : 'nowrap'\n });\n },\n container: (base: Object): Object => {\n return Object.assign({}, base, {\n flex: '1',\n fontFamily: FONT_FAMILY,\n minWidth: '64px'\n });\n },\n control: (base: Object, state: any) => {\n return Object.assign({}, base, {\n borderColor: state.isFocused ? EGGPLANT400 : borderColor,\n color: state.isDisabled ? GREY200 : GREY500,\n boxShadow: state.isFocused ? `0 0 8px ${EGGPLANT300}` : 'none',\n '&:hover': 'none',\n backgroundColor: state.isDisabled\n ? GREY100\n : state.isFocused\n ? WHITE\n : WHITE,\n fontSize: '14px',\n cursor: 'pointer',\n background: hasPrefix && 'transparent',\n border: asToolbarFilter && 'none'\n });\n },\n indicatorSeparator: () => ({ display: 'none' }),\n placeholder: (base: any) => ({\n ...base,\n color: GREY300,\n marginRight: 0,\n position: 'static',\n transform: 'initial',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }),\n noOptionsMessage: () => ({\n color: GREY500,\n textAlign: 'center',\n padding: '8px',\n fontFamily: FONT_FAMILY\n }),\n singleValue: (base: any, state: any) => {\n return Object.assign({}, base, {\n color: state.isDisabled ? GREY300 : null,\n marginRight: 0,\n position: 'static',\n transform: 'initial',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n });\n },\n dropdownIndicator: (base: any, state: any) => {\n return Object.assign({}, base, {\n color: state.isDisabled ? GREY200 : GREY400,\n padding: '8px'\n });\n },\n option: (base: any, state: any) => {\n return Object.assign({}, base, {\n backgroundColor: state.isDisabled\n ? null\n : state.isSelected\n ? EGGPLANT200\n : state.isFocused\n ? GREY100\n : WHITE,\n color: state.isDisabled\n ? null\n : state.isSelected\n ? EGGPLANT700\n : GREY500,\n cursor: 'pointer',\n fontFamily: FONT_FAMILY,\n fontSize: '14px'\n });\n },\n group: (base: Object): Object => {\n return Object.assign({}, base, {\n fontFamily: FONT_FAMILY\n });\n },\n multiValueRemove: (base: Object) => {\n return Object.assign({}, base, {\n ':hover': {\n backgroundColor: 'none',\n color: GREY600\n }\n });\n },\n clearIndicator: (base: Object) => {\n return Object.assign({}, base, {\n ':hover': {\n color: GREY600\n }\n });\n },\n menu: (base: any) => ({\n ...base,\n zIndex: Z_INDEX_LAYERS.MENU\n }),\n menuPortal: (base: any) => ({\n ...base,\n zIndex: Z_INDEX_LAYERS.MENU\n })\n };\n};\n","// @flow\n\nimport React from 'react';\nimport { components, OptionProps } from 'react-select';\n\ninterface Props<T> extends OptionProps<T, true> {\n CustomComponent: React.ElementType;\n}\n\nfunction CustomOption<T>({ children, CustomComponent, ...props }: Props<T>) {\n return (\n <components.Option {...props}>\n <CustomComponent {...props}>{children}</CustomComponent>\n </components.Option>\n );\n}\n\nexport default CustomOption;\n","// @flow\n\nimport React from 'react';\nimport { useMultiSelectFieldControllers } from '../hooks/useMultiSelectFieldControllers';\nimport Select, { components } from 'react-select';\nimport Field from '../Field';\nimport { getSelectStyles } from '../SelectField/SelectField.styles';\nimport type { SelectOption, SelectOptions } from '../SelectField/types';\nimport CustomOption from './CustomOption';\n\ntype Props<T> = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: SelectOption<T>[];\n options: SelectOptions<T>;\n onChange?: (e: SelectOption<T>[]) => void;\n onBlur?: (e: SelectOption<T>[]) => void;\n CustomOption?: React.ElementType;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n};\n/** Component to make possible choose from a predefined options. */\nconst MultiSelectField = <T extends unknown>({\n name,\n id: inputId,\n value,\n options,\n onChange,\n onBlur,\n CustomOption: UserCustomOption,\n label,\n caption,\n error,\n placeholder,\n disabled\n}: Props<T>) => {\n const controllers = useMultiSelectFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n return (\n <Field {...fieldProps}>\n <Select\n inputId={controllers.id}\n options={options}\n isDisabled={disabled}\n value={controllers.value}\n placeholder={placeholder}\n styles={getSelectStyles({\n isInvalid: hasError,\n wrapToNextLine: true\n })}\n menuPortalTarget={document.body}\n onChange={controllers.onChange as any}\n onBlur={controllers.onBlur as any}\n isMulti\n components={{\n Option: UserCustomOption\n ? (props) => (\n <CustomOption\n CustomComponent={UserCustomOption}\n {...props}\n />\n )\n : components.Option\n }}\n />\n </Field>\n );\n};\n\nexport default MultiSelectField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport type { SelectOption } from '../SelectField/types';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls<T> = {\n id: string;\n error?: string;\n value?: SelectOption<T>;\n onChange: (e: SelectOption<T>) => void;\n onBlur: (e: SelectOption<T>) => void;\n};\n\ntype Props<T> = {\n name: string;\n id?: string;\n value?: SelectOption<T>;\n onChange?: (e: SelectOption<T>) => void;\n onBlur?: (e: SelectOption<T>) => void;\n error?: string;\n};\nexport const useSelectFieldControllers = <T>({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props<T>): FieldControls<T> => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (option: SelectOption<T>) => onChange && onChange(option),\n onBlur: (option: SelectOption<T>) => onBlur && onBlur(option)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error ? controllers.error : formikState.error,\n value: value ? controllers.value : formikState.value,\n onChange: (option: SelectOption<T>) => {\n if (onChange) {\n onChange(option);\n }\n formik.setFieldValue(name, option);\n },\n onBlur: (option: SelectOption<T>) => {\n if (onBlur) {\n onBlur(option);\n }\n formik.setFieldTouched(name);\n }\n };\n }\n return controllers;\n};\n","// @flow\n\nimport React from 'react';\nimport { components, ControlProps } from 'react-select';\nimport { Inline } from '../../../core';\nimport styles from './custom-control.scss';\n\ninterface Props<T> extends ControlProps<T, false> {\n CustomPrefixComponent: React.ElementType;\n}\n\nfunction CustomControl<T>({\n children,\n CustomPrefixComponent,\n ...props\n}: Props<T>) {\n const selectedOption = props.getValue()?.[0];\n return (\n <components.Control {...props}>\n {CustomControl && selectedOption ? (\n <div\n className={styles['custom-control']}\n style={{\n paddingLeft: selectedOption ? 8 : 0\n }}\n >\n <Inline\n alignItems=\"center\"\n space={0}\n flex={['0 1 auto', 1]}\n >\n <CustomPrefixComponent\n selectedOption={selectedOption}\n {...props}\n />\n {children}\n </Inline>\n </div>\n ) : (\n children\n )}\n </components.Control>\n );\n}\n\nexport default CustomControl;\n","// @flow\n\nimport React from 'react';\nimport { components, OptionProps } from 'react-select';\n\ninterface Props<T> extends OptionProps<T, false> {\n CustomComponent: React.ElementType;\n}\n\nfunction CustomOption<T>({ children, CustomComponent, ...props }: Props<T>) {\n return (\n <components.Option {...props}>\n <CustomComponent {...props}>{children}</CustomComponent>\n </components.Option>\n );\n}\n\nexport default CustomOption;\n","// @flow\n\nimport React from 'react';\nimport { useSelectFieldControllers } from '../hooks/useSelectFieldControllers';\nimport Select, { components } from 'react-select';\nimport Field from '../Field';\nimport { getSelectStyles } from './SelectField.styles';\nimport type { SelectOption, SelectOptions } from './types';\nimport CustomControl from './CustomControl';\nimport CustomOption from './CustomOption';\nimport AffixContainer from '../AffixContainer';\n\ntype Props<T> = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: SelectOption<T>;\n options: SelectOptions<T>;\n onChange?: (e: SelectOption<T>) => void;\n onBlur?: (e: SelectOption<T>) => void;\n CustomOption?: React.ElementType;\n SelectedOptionPrefix?: React.ElementType;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Use a prefix for things like currency symbols (“$”, “¥”, “£”) or icons. */\n prefix?: React.ReactNode;\n asToolbarFilter?: boolean;\n};\n/** Component to make possible choose from a predefined options. */\nconst SelectField = <T extends unknown>({\n name,\n id: inputId,\n value,\n options,\n onChange,\n onBlur,\n CustomOption: UserCustomOption,\n SelectedOptionPrefix,\n label,\n caption,\n error,\n placeholder,\n disabled,\n prefix,\n asToolbarFilter = false\n}: Props<T>) => {\n const controllers = useSelectFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={prefix}>\n <Select\n inputId={controllers.id}\n options={options}\n isDisabled={disabled}\n value={controllers.value}\n placeholder={placeholder}\n styles={getSelectStyles({\n isInvalid: hasError,\n hasPrefix: !!prefix,\n asToolbarFilter\n })}\n menuPortalTarget={document.body}\n onChange={controllers.onChange as any}\n onBlur={controllers.onBlur as any}\n components={{\n Option: UserCustomOption\n ? (props) => (\n <CustomOption\n CustomComponent={UserCustomOption}\n {...props}\n />\n )\n : components.Option,\n Control: SelectedOptionPrefix\n ? (props) => (\n <CustomControl\n CustomPrefixComponent={\n SelectedOptionPrefix\n }\n {...props}\n />\n )\n : components.Control\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default SelectField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n value?: Date;\n onChange: (e: Date) => void;\n onBlur: () => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n error?: string;\n};\nexport const useDateFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (newValue: Date) => onChange && onChange(newValue),\n onBlur: () => onBlur && onBlur()\n };\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: onChange\n ? controllers.onChange\n : (newValue?: Date) => {\n formik.setFieldValue(\n name,\n newValue === undefined ? null : newValue\n );\n },\n onBlur: onBlur\n ? controllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return controllers;\n};\n","// @flow\n\nimport React from 'react';\nimport styles from './date-picker-calendar.scss';\nimport Portal from '../../core/Portal/Portal';\n\ntype Props = {\n classNames: typeof styles;\n inputNode: HTMLElement;\n onBlur: () => void;\n onFocus: () => void;\n tabIndex: number;\n children: React.ReactNode;\n};\nconst DatePickerCalendar: React.FC<Props> = ({\n classNames,\n inputNode,\n children,\n onBlur,\n onFocus,\n tabIndex\n}) => {\n const inputPosition = inputNode.getBoundingClientRect();\n return (\n <Portal>\n <div\n className={classNames.overlayWrapper}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n style={{\n zIndex: 9999,\n left: inputPosition.left,\n top:\n inputPosition.top +\n window.scrollY +\n inputPosition.height +\n 3\n }}\n >\n <div className={classNames.overlay}>{children}</div>\n </div>\n </Portal>\n );\n};\n\nexport default DatePickerCalendar;\n","import { DateUtils } from 'react-day-picker';\nimport dateFnsFormat from 'date-fns/format';\nimport dateFnsParse from 'date-fns/parse';\nimport startOfDay from 'date-fns/startOfDay';\nimport { getLocalizedString as __ } from './i18n';\n\n// This is `any` because dateFnsParse uses some sort of Locale type but DayPickerInput uses string\ntype Locale = any;\n\nexport function parseDate(\n str: string,\n format: string,\n locale?: Locale\n): Date | undefined {\n const parsed = dateFnsParse(str, format, new Date(), { locale });\n if (str.length === format.length && DateUtils.isDate(parsed)) {\n return parsed;\n }\n return undefined;\n}\n\nexport function formatDate(\n date: Date,\n format: string,\n locale?: Locale\n): string {\n return dateFnsFormat(date, format, { locale });\n}\n\nexport function setToMidnight(date: Date): Date {\n return date && startOfDay(date);\n}\n\nexport function getStartOfWeek(date: Date, weekIndex: number): Date {\n const d = new Date(date);\n const firstDay = d.getDate() - d.getDay() + weekIndex;\n const firstDayAdjusted = firstDay > d.getDate() ? firstDay - 7 : firstDay;\n return new Date(d.setDate(firstDayAdjusted));\n}\n\nexport function getEndOfWeek(date: Date, weekIndex: number): Date {\n const startOfWeek = getStartOfWeek(date, weekIndex);\n const endDay = startOfWeek.getDate() + 6;\n return new Date(startOfWeek.setDate(endDay));\n}\n\nexport function createWeekRange(\n date: Date,\n weekStart: WeekStart\n): FullDateRange {\n return {\n start: getStartOfWeek(date, weekStart),\n end: getEndOfWeek(date, weekStart)\n };\n}\n\nexport const DAYS = [\n __('time.sunday'),\n __('time.monday'),\n __('time.tuesday'),\n __('time.wednesday'),\n __('time.thursday'),\n __('time.friday'),\n __('time.saturday')\n];\n\nexport const MONTH_NAMES = [\n __('time.january'),\n __('time.february'),\n __('time.march'),\n __('time.april'),\n __('time.may'),\n __('time.june'),\n __('time.july'),\n __('time.august'),\n __('time.september'),\n __('time.october'),\n __('time.november'),\n __('time.december')\n];\n\nexport type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type FullDateRange = { start: Date; end: Date };\nexport type DateRange = { start?: Date; end?: Date };\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport classnames from 'classnames';\nimport { IconCalendar } from '../../icons';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport { useDateFieldControllers } from '../hooks/useDateFieldControllers';\nimport DatePickerCalendar from '../DatePickerCalendar';\nimport inputStyles from './date-field.scss';\nimport styles from '../DatePickerCalendar/date-picker-calendar.scss';\nimport {\n MONTH_NAMES,\n DAYS,\n setToMidnight,\n formatDate,\n parseDate\n} from '../../utils/date';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: Date;\n disabledDays?: (day: Date) => boolean;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n initialMonth?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: Date;\n readOnly?: boolean;\n};\n/** DateField form element. */\nconst DateField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n disabledDays,\n initialMonth,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n readOnly = false\n}) => {\n const inputRef = useRef();\n\n const controllers = useDateFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n disabledDays: (day: Date) =>\n disabledDays && disabledDays(setToMidnight(day)),\n initialMonth,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2))\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={<IconCalendar size=\"medium\" />}>\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder || format.toUpperCase()}\n defaultValue={defaultValue}\n value={controllers.value || ''}\n onDayChange={controllers.onChange}\n onDayPickerHide={controllers.onBlur}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={inputRef.current}\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id: controllers.id,\n className: classnames(inputStyles['date-field'], {\n [inputStyles['date--invalid']]: hasError\n }),\n 'data-testid': `date-field-${name}`,\n 'aria-describedby': hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`,\n 'aria-invalid': hasError,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default DateField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { DateRange } from '../../utils/date';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n value: DateRange;\n onChange: (e: DateRange) => void;\n onBlur: () => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: DateRange;\n onChange?: (e: DateRange) => void;\n onBlur?: () => void;\n error?: string;\n};\nexport const useRangeFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n const initialControllers = {\n id,\n error,\n value: value || { start: undefined, end: undefined },\n onChange: (newValue: DateRange) => onChange && onChange(newValue),\n onBlur: () => onBlur && onBlur()\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n return {\n ...initialControllers,\n error:\n error !== undefined\n ? initialControllers.error\n : formikState.error,\n value:\n value !== undefined\n ? initialControllers.value\n : formikState.value,\n onChange: onChange\n ? initialControllers.onChange\n : (newValue?: DateRange) => {\n formik.setFieldValue(\n name,\n newValue === undefined ? null : newValue\n );\n },\n onBlur: onBlur\n ? initialControllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return initialControllers;\n};\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport DatePickerCalendar from '../../DatePickerCalendar';\nimport {\n WeekStart,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../../utils/date';\nimport styles from '../date-range-field.scss';\n\ntype Props = {\n name: string;\n id: string;\n format: string;\n start?: Date;\n end?: Date;\n placeholder: string;\n weekStart: WeekStart;\n disabled?: boolean;\n readOnly: boolean;\n onChange: (e: Date) => void;\n onDayClick: () => void;\n};\nconst FromDate = ({\n name,\n id,\n format,\n start,\n end,\n placeholder,\n weekStart,\n disabled,\n readOnly,\n onChange,\n onDayClick\n}: Props) => {\n const inputRef = useRef();\n const modifiers = { from: start, to: end };\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n firstDayOfWeek: weekStart,\n\n selectedDays: [start, { from: start, to: end }],\n disabledDays: { after: end },\n toMonth: end,\n modifiers,\n onDayClick\n };\n return (\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n selectedDay={start}\n value={start}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder}\n onDayChange={onChange}\n overlayComponent={(props: any) => (\n <DatePickerCalendar {...props} inputNode={inputRef.current} />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled,\n 'data-testid': `range-picker-field-from-${name}`,\n type: 'text'\n }}\n />\n );\n};\n\nexport default FromDate;\n","// @flow\n\nimport React, { forwardRef } from 'react';\nimport { getLocalizedString as __ } from '../../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport DatePickerCalendar from '../../DatePickerCalendar';\nimport {\n WeekStart,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../../utils/date';\nimport styles from '../date-range-field.scss';\nimport { RefType } from '../../../utils/types';\n\ntype Props = {\n name: string;\n format: string;\n start?: Date;\n end?: Date;\n placeholder: string;\n weekStart: WeekStart;\n disabled?: boolean;\n readOnly: boolean;\n onChange: (e: Date) => void;\n};\nconst ToDate = (\n {\n name,\n format,\n start,\n end,\n placeholder,\n weekStart,\n disabled,\n readOnly,\n onChange\n }: Props,\n ref: RefType<HTMLInputElement>\n) => {\n const modifiers = { from: start, to: end };\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n firstDayOfWeek: weekStart,\n\n selectedDays: [start, { from: start, to: end }],\n disabledDays: { before: start },\n modifiers,\n month: end || start,\n fromMonth: start\n };\n return (\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n selectedDay={end}\n value={end}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder}\n onDayChange={onChange}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={\n (ref as React.MutableRefObject<HTMLInputElement>)\n ?.current\n }\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n autoComplete: 'off',\n ref,\n readOnly,\n disabled,\n 'data-testid': `range-picker-field-to-${name}`,\n type: 'text'\n }}\n />\n );\n};\n\nexport default forwardRef<HTMLInputElement, Props>(ToDate);\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport classnames from 'classnames';\nimport { IconCalendar, IconArrowRight } from '../../icons';\nimport Field from '../Field';\nimport { useRangeFieldControllers } from '../hooks/useRangeFieldControllers';\nimport { WeekStart, DateRange } from '../../utils/date';\nimport styles from './date-range-field.scss';\nimport FromDate from './FromDate';\nimport ToDate from './ToDate';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: DateRange;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n onChange?: (e: DateRange) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n weekStart?: WeekStart;\n};\n/** DateRangeField form element. */\nconst DateRangeField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n readOnly = true,\n weekStart = 0\n}) => {\n const toInputRef = useRef<HTMLInputElement>(null);\n\n const controllers = useRangeFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const { start, end } = controllers.value;\n\n return (\n <Field {...fieldProps}>\n <div\n className={classnames(styles['date-range-field'], {\n [styles['date-range-field--invalid']]: hasError\n })}\n >\n <IconCalendar size=\"medium\" />\n <FromDate\n name={name}\n id={controllers.id}\n format={format}\n start={start}\n end={end}\n placeholder={placeholder || format.toUpperCase()}\n weekStart={weekStart}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(val: Date) =>\n controllers.onChange({\n start: val,\n end: end\n })\n }\n onDayClick={() => {\n toInputRef?.current?.focus();\n }}\n />\n <IconArrowRight size=\"medium\" />\n <ToDate\n name={name}\n format={format}\n start={start}\n end={end}\n placeholder={placeholder || format.toUpperCase()}\n weekStart={weekStart}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(val: Date) =>\n controllers.onChange({\n start,\n end: val\n })\n }\n ref={toInputRef}\n />\n </div>\n </Field>\n );\n};\n\nexport default DateRangeField;\n","// @flow\n\nimport React, { useRef, useState } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport classnames from 'classnames';\nimport { IconCalendar } from '../../icons';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport { useDateFieldControllers } from '../hooks/useDateFieldControllers';\nimport DatePickerCalendar from '../DatePickerCalendar';\nimport inputStyles from '../DateField/date-field.scss';\nimport styles from './week-field.scss';\nimport eachDayOfInterval from 'date-fns/eachDayOfInterval';\nimport {\n WeekStart,\n FullDateRange,\n createWeekRange,\n setToMidnight,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../utils/date';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: Date;\n disabledDays?: (day: Date) => boolean;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n initialMonth?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: Date;\n readOnly?: boolean;\n weekStart?: WeekStart;\n};\n/** WeekField form element. */\nconst WeekField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n disabledDays,\n initialMonth,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n readOnly = true,\n weekStart = 0\n}) => {\n const [hoverDate, setHoverDate] = useState<Date | null>(null);\n const inputRef = useRef();\n\n const controllers = useDateFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const weekRange: FullDateRange | null = value\n ? createWeekRange(value, weekStart)\n : null;\n const selectedDays: Date[] =\n value && weekRange ? eachDayOfInterval(weekRange) : [];\n\n const getModifiers = () => {\n const hoverRange = hoverDate\n ? createWeekRange(hoverDate, weekStart)\n : null;\n return {\n hoverRange: hoverRange ? eachDayOfInterval(hoverRange) : [],\n selectedRange: weekRange && {\n from: weekRange.start,\n to: weekRange.end\n },\n from: weekRange && weekRange.start,\n to: weekRange && weekRange.end\n };\n };\n\n const handleHoverStart = (day: Date) => setHoverDate(day);\n const handleHoverEnd = () => setHoverDate(null);\n\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n disabledDays: (day: Date) =>\n disabledDays && disabledDays(setToMidnight(day)),\n initialMonth,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n selectedDays,\n modifiers: getModifiers(),\n firstDayOfWeek: weekStart,\n onDayMouseEnter: handleHoverStart,\n onDayMouseLeave: handleHoverEnd\n };\n\n const handleDayClick = (day: Date) => {\n const selectedDate = setToMidnight(day);\n setHoverDate(selectedDate);\n controllers.onChange(createWeekRange(day, weekStart).start);\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={<IconCalendar size=\"medium\" />}>\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder || format.toUpperCase()}\n defaultValue={defaultValue}\n value={controllers.value || ''}\n onDayChange={handleDayClick}\n onDayPickerHide={controllers.onBlur}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={inputRef.current}\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id: controllers.id,\n className: classnames(inputStyles['date-field'], {\n [inputStyles['date--invalid']]: hasError\n }),\n 'data-testid': `week-field-${name}`,\n 'aria-describedby': hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`,\n 'aria-invalid': hasError,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default WeekField;\n","import React from 'react';\nimport Stack from '../../core/Stack';\nimport styles from './toggle.scss';\n\ntype Props = {\n /** It turns the toggle ON if `true` and OFF if `false` */\n checked: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n disabled?: boolean;\n id?: string;\n};\n\n/**\n * Used when you want to allow the user to turn some information ON and OFF.\n *\n * _The Toggle component is not intended to be used inside a Form (use a checkbox for that). It should be used when you want to act on that action immediately._\n */\nconst Toggle: React.FC<Props> = ({\n checked,\n label,\n caption,\n onChange,\n disabled = false,\n id\n}) => {\n return (\n <Stack space={8}>\n <label className={styles['toggle']}>\n <input\n data-testid=\"toggle\"\n type=\"checkbox\"\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n id={id}\n />\n <span className={styles['toggle__switch']} />\n {label && (\n <span className={styles['toggle__label']}>{label}</span>\n )}\n </label>\n {caption && (\n <span className={styles['toggle__caption']}>{caption}</span>\n )}\n </Stack>\n );\n};\n\nexport default Toggle;\n","import React from 'react';\nimport styles from './modal-header.scss';\nimport Inline from '../../../core/Inline';\nimport Stack from '../../../core/Stack';\nimport Button from '../../../actions/Button';\nimport { IconClose } from '../../../icons';\n\ntype Props = {\n header?: React.ReactNode;\n subHeader?: React.ReactNode;\n onClose: () => void;\n};\n\nconst ModalHeader = ({ header, subHeader, onClose }: Props) => {\n return (\n <Stack space={12}>\n <Inline flex={[1]} alignItems=\"center\">\n <span className={styles['header']}>{header}</span>\n <Button theme=\"link-icon\" onClick={onClose}>\n <IconClose />\n </Button>\n </Inline>\n {subHeader && (\n <div className={styles['sub-header']}>{subHeader}</div>\n )}\n </Stack>\n );\n};\n\nexport default ModalHeader;\n","import React from 'react';\nimport ReactModal from 'react-modal';\nimport { Z_INDEX_LAYERS } from '../../foundation/constants';\nimport styles from './modal.scss';\nimport ModalHeader from './ModalHeader';\n\ntype Props = {\n children: React.ReactNode;\n header?: React.ReactNode;\n subHeader?: React.ReactNode;\n onClose: () => void;\n zIndex?: number;\n /** This is the ID for the root element so when the modal is open it only allows iteracting with the modal when pressing tab. Can also use `Modal.setAppElement('#root')` in te main app once. */\n rootElementId?: string;\n width?: number;\n height?: number;\n maxWidth?: number;\n};\n\nconst Modal = ({\n children,\n header,\n subHeader,\n onClose,\n zIndex = Z_INDEX_LAYERS.MODAL,\n rootElementId,\n width = 500,\n height,\n maxWidth\n}: Props) => {\n const style = {\n content: {\n width,\n height,\n maxWidth\n },\n overlay: {\n zIndex\n }\n };\n return (\n <ReactModal\n isOpen\n shouldCloseOnEsc\n shouldCloseOnOverlayClick={false}\n onRequestClose={onClose}\n style={style}\n closeTimeoutMS={200}\n contentLabel=\"Modal\"\n appElement={\n (rootElementId && document.getElementById(rootElementId)) ||\n undefined\n }\n overlayClassName={{\n base: styles['overlay'],\n afterOpen: styles['overlay--after-open'],\n beforeClose: styles['overlay--before-close']\n }}\n className={{\n base: styles['content'],\n afterOpen: styles['content--after-open'],\n beforeClose: styles['content--before-close']\n }}\n >\n <ModalHeader\n header={header}\n subHeader={subHeader}\n onClose={onClose}\n />\n {children}\n </ReactModal>\n );\n};\n\n// The user can set the main app root id so when the modal is open it only allows iteracting with the modal when pressing tab\nModal.setAppElement = (rootElement: string | HTMLElement) => {\n ReactModal.setAppElement(rootElement);\n};\n\nexport default Modal;\n","import React from 'react';\nimport styles from './modal-body.scss';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst ModalBody = ({ children }: Props) => {\n return <div className={styles['modal-body']}>{children}</div>;\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport styles from './modal-footer.scss';\nimport Inline from '../../../core/Inline';\nimport classnames from 'classnames';\nimport { Button } from '../../../actions';\n\ntype Props = {\n children?: React.ReactNode;\n /** This will streamline the button creation and all the design pattern applied on buttons with a modal footer. If you want more flexibility to build the footer you can pass a `children` instead of using the `actions` prop. */\n actions?: {\n primary?: React.ReactElement;\n secondary?: React.ReactElement;\n tertiary?: React.ReactElement;\n };\n};\n\nconst ModalFooter = ({ children, actions }: Props) => {\n if (actions) {\n const primaryButton = updateButtonProps(actions.primary, {\n theme: actions?.primary?.props.theme || 'primary'\n });\n const secondaryButton = updateButtonProps(actions.secondary, {\n theme: actions?.secondary?.props.theme || 'default'\n });\n const tertiaryButton = updateButtonProps(actions.tertiary, {\n theme: actions?.tertiary?.props.theme || 'link-primary'\n });\n\n return (\n <FooterContainer>\n <Inline justifyContent=\"space-between\">\n <div\n className={classnames({\n [styles['tertiary-container']]:\n tertiaryButton &&\n tertiaryButton.props.theme.startsWith('link')\n })}\n >\n {tertiaryButton || <div />}\n </div>\n <Inline space={12}>\n {secondaryButton}\n {primaryButton}\n </Inline>\n </Inline>\n </FooterContainer>\n );\n }\n\n return <FooterContainer>{children}</FooterContainer>;\n};\n\nconst updateButtonProps = (\n button: React.ReactElement | undefined,\n newProps: Object\n): React.ReactElement | null => {\n if (!button) {\n return null;\n }\n if (button.type !== Button) {\n return button;\n }\n return React.cloneElement(button, {\n wide: true,\n ...newProps\n });\n};\n\ntype FooterContainerProps = {\n children: React.ReactNode;\n};\nconst FooterContainer = ({ children }: FooterContainerProps) => {\n const childrenItens = React.Children.toArray(children);\n const hasCustomAlignment =\n childrenItens.length === 1 && (childrenItens[0] as any).type === Inline;\n return (\n <div className={styles['modal-footer']}>\n <Inline\n justifyContent=\"end\"\n space={12}\n flex={hasCustomAlignment ? [1] : undefined}\n >\n {children}\n </Inline>\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React, { useRef, useLayoutEffect, forwardRef } from 'react';\nimport classnames from 'classnames';\nimport styles from './badge.scss';\nimport { RefType } from '../../utils/types';\nimport { Tooltip } from '../../overlay';\n\ntype Props = {\n children: React.ReactNode;\n theme?: 'success' | 'danger' | 'warning' | 'info';\n /** This will show a black tooltip when the user hover the button */\n title?: string;\n};\nconst Badge = (\n { children, theme, title, ...otherProps }: Props,\n forwardedRef: RefType<HTMLDivElement>\n) => {\n const internalRef = useRef<HTMLDivElement>(null);\n\n const ref = forwardedRef || internalRef;\n\n useLayoutEffect(() => {\n if (\n typeof ref !== 'function' &&\n ref.current &&\n React.isValidElement(children) &&\n typeof children?.type === 'function'\n ) {\n ref.current.style.height = ref.current.offsetWidth + 'px';\n }\n });\n\n return (\n <Tooltip overlay={title} ref={ref}>\n <div\n className={classnames(styles['badge'], {\n [styles['badge--success']]: theme === 'success',\n [styles['badge--danger']]: theme === 'danger',\n [styles['badge--info']]: theme === 'info',\n [styles['badge--warning']]: theme === 'warning'\n })}\n ref={ref}\n {...otherProps}\n >\n {children}\n </div>\n </Tooltip>\n );\n};\n\nexport default forwardRef<HTMLDivElement, Props>(Badge);\n","import React, { useState } from 'react';\nimport IconUser from '../../../icons/IconUser';\nimport styles from './avatar-image.scss';\n\ntype Props = {\n url?: string;\n color?: string;\n alt?: string;\n};\nconst AvatarImage: React.FC<Props> = ({ url, color, alt = 'Profile' }) => {\n const [hasImageError, setHasImageError] = useState(false);\n if (url && !hasImageError) {\n return (\n <img\n src={url}\n alt={alt}\n onError={() => {\n setHasImageError(true);\n }}\n />\n );\n }\n\n return (\n <div className={styles['avatar-image']}>\n <IconUser size=\"flexible\" color={color} />\n </div>\n );\n};\n\nexport default AvatarImage;\n","export const PROFILE_IMAGES = [\n {\n backgroundColor: '#EAD3E3',\n avatarColor: '#AA6589'\n },\n {\n backgroundColor: '#F4F6FC',\n avatarColor: '#9EA9D3'\n },\n {\n backgroundColor: '#FBEBE6',\n avatarColor: '#F3A097'\n },\n {\n backgroundColor: '#F7FAF2',\n avatarColor: '#BBCA94'\n },\n {\n backgroundColor: '#E1F3EF',\n avatarColor: '#8DC3B9'\n },\n {\n backgroundColor: '#F2DCBD',\n avatarColor: '#A98146'\n },\n {\n backgroundColor: '#AA6589',\n avatarColor: '#EAD3E3'\n },\n {\n backgroundColor: '#9EA9D3',\n avatarColor: '#F4F6FC'\n },\n {\n backgroundColor: '#F3A097',\n avatarColor: '#FBEBE6'\n },\n {\n backgroundColor: '#BBCA94',\n avatarColor: '#F7FAF2'\n },\n {\n backgroundColor: '#8DC3B9',\n avatarColor: '#E1F3EF'\n },\n {\n backgroundColor: '#A98146',\n avatarColor: '#F2DCBD'\n }\n];\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport { GREY400, GREY200 } from '../../foundation/colors';\nimport styles from './avatar.scss';\nimport AvatarImage from './AvatarImage';\nimport { PROFILE_IMAGES } from './constants';\n\ntype Props = {\n children?: React.ReactNode;\n size?: 'small' | 'medium' | 'large' | 'extra-large';\n color?: string;\n url?: string;\n badge?: React.ReactNode;\n alt?: string;\n};\nconst Avatar: React.FC<Props> = ({\n children,\n color = GREY400,\n size = 'medium',\n url,\n badge,\n alt\n}) => {\n const [defaultProfilePictureColors] = useState(\n () => PROFILE_IMAGES[Math.floor(Math.random() * PROFILE_IMAGES.length)]\n );\n\n // If passing an url we are defaulting to a lighter grey while the image loads\n const backgroundColor = url ? GREY200 : color;\n return (\n <div\n className={classnames(styles['avatar'], {\n [styles['avatar--small']]: size === 'small',\n [styles['avatar--medium']]: size === 'medium',\n [styles['avatar--large']]: size === 'large',\n [styles['avatar--extra-large']]: size === 'extra-large'\n })}\n style={{\n backgroundColor:\n children || url\n ? backgroundColor\n : defaultProfilePictureColors.backgroundColor\n }}\n >\n {children || (\n <AvatarImage\n url={url}\n color={defaultProfilePictureColors.avatarColor}\n alt={alt}\n />\n )}\n {badge && size !== 'small' && (\n <div className={styles['avatar__badge']}>{badge}</div>\n )}\n </div>\n );\n};\n\nexport default Avatar;\n"],"names":["ICON_SIZES","small","medium","large","getIconStyles","size","rotate","width","height","transform","verticalAlign","IconArrowDown","color","dataTestId","React","viewBox","xmlns","style","className","styles","fill","d","IconArrowLeft","props","IconArrowRight","IconArrowUp","IconCalendar","IconChevronDown","IconChevronUp","IconClose","IconComment","IconDelete","IconEdit","IconEye","fillRule","clipRule","IconEyeSlash","IconExclaim","IconLocation","IconMinusCircle","IconMore","IconRemove","IconUser","IconUserPlus","initialValue","Context","createContext","useResourceTableContext","context","useContext","Error","MenuContext","onToggleMenu","isOpen","triggerRef","undefined","useMenuContext","Menu","children","useState","setIsOpen","useRef","Provider","value","MenuItem","onClick","handleClick","e","stopPropagation","onKeyPress","tabIndex","role","Flex","space","flex","alignItems","justifyContent","inlineFlex","direction","flexItems","flexWrap","classNames","items","Children","toArray","filter","Boolean","lastItemIndex","length","flexDirection","map","child","i","key","display","marginRight","marginBottom","Inline","Spinner","theme","block","classnames","strokeWidth","strokeLinecap","cx","cy","r","TOOLTIP_THEME","BLACK","WHITE","TOOLTIP_PLACEMENT","BOTTOM","TOP","TOOLTIP_DELAY_ON_CLOSE","TOOLTIP_DELAY_ON_OPEN","SPACE","PADDING","BUFFER","ARROW_WIDTH","ARROW_MARGIN","calculatePosition","placement","anchorPosition","tooltipRectPosition","overlay","arrow","actualPlacement","top","getActualPlacement","overlayPosition","calculateOverlayPosition","arrowPosition","calculateArrowPosition","updateMisalignedOverlay","left","tooltipWidth","position","Math","max","min","window","innerWidth","tooltipHeight","topPosition","bottomPosition","innerHeight","tooltipPosition","Stack","useIsMounted","isMounted","useEffect","current","cleanup","checker","useCallback","Z_INDEX_LAYERS","BASE","MODAL","MENU","TOOLTIP","FONT_FAMILY","usePortalContainer","container","setContainer","containerElement","document","createElement","setAttribute","body","prepend","remove","Portal","ReactDOM","createPortal","TooltipOverlay","header","onClose","onFocusIn","onFocusOut","extraClass","isVisible","setIsVisible","tooltipRef","checkIsMounted","setTimeout","addEventListener","removeEventListener","getBoundingClientRect","ref","zIndex","onMouseEnter","onMouseLeave","Tooltip","forwardedRef","delayOnClose","delayOnOpen","internalRef","containerRef","isFocusingOnTooltip","isFocusingOnAnchor","onAnchorFocusIn","onAnchorFocusOut","openTooltip","closeTooltip","closeTooltipWithDelay","anchorElements","count","Overlay","Fragment","cloneElement","onFocus","onBlur","forwardRef","Button","type","disabled","id","wide","loading","title","href","target","contrastSpinner","childrenArr","isIconOnly","ButtonElement","includes","rest","commonProps","MenuButton","isClickInside","event","Node","contains","useOnClickOutside","cb","listener","MenuList","paneElement","setPosition","clickOutisideCallback","triggerPosition","panePosition","paneWidth","pos","scrollY","ResourceTableRow","isSelected","actions","columnSizes","showActionMenu","styleNames","renderColumn","columnElement","index","columnElements","action","onAction","label","SORT_ORDER","ASC","DESC","ResourceTableHeader","columns","onSort","haveLabels","find","column","handleSort","nextDirection","getNextSort","columnName","name","isSortable","sortDir","currentSort","IconSort","sortDirection","marginTop","getLocalizedString","Shifts","getLocalTranslation","getWebAppTranslation","Lang","cache","split","moduleName","translationParts","literal","charAt","toUpperCase","slice","toLowerCase","PaginationControls","hasPrevious","hasNext","onPreviousClick","onNextClick","__","ResourceTable","itemComponent","maxHeight","isLoading","RowItem","DefaultItemComponent","conditionalStyles","overflowY","item","headingKeys","Object","keys","columnsToShow","headingKey","useFormContext","Form","onSubmit","formik","stackContent","handleSubmit","preventDefault","currentTarget","elements","SIZE_25_PERCENT","SIZE_33_PERCENT","SIZE_50_PERCENT","SIZE_66_PERCENT","SIZE_75_PERCENT","FormRow","sizes","additionalColumns","push","Array","_","Label","htmlFor","Caption","fieldId","EGGPLANT200","EGGPLANT300","EGGPLANT400","EGGPLANT700","RADISH400","GREY100","GREY200","GREY300","GREY400","GREY500","GREY600","ErrorMessage","Field","caption","error","useFieldId","inputId","useMemo","random","getFormikState","values","touched","errors","formikArray","getFormikArrayPath","arrayName","itemIndex","fieldName","missingSplit","useFieldControllers","onChange","controllers","formikState","setFieldValue","setFieldTouched","useGrowTextAreaRef","minHeight","autoGrow","textareaRef","updateHeight","scrollHeight","TextAreaField","placeholder","defaultValue","toolbar","toolbarRef","hasFocus","setHasFocus","hasError","fieldProps","textAreaRef","focus","AffixContainer","prefix","suffix","prefixElement","suffixElement","useLayoutEffect","input","querySelector","prefixWidth","offsetWidth","paddingLeft","suffixWidth","paddingRight","hasPrefix","hasSuffix","classes","TextField","autoFocus","useCheckBoxFieldControllers","checked","CheckboxField","useRadioGroupFieldControllers","RadioGroupFieldContext","useRadioGroupFieldContext","RadioGroupField","inline","onChangeHandler","contextValue","InlineOptions","MAX_OPTIONS_PER_ROW","numberOfElements","childrenArray","rows","row","rowIndex","RadioGroupOption","radioGroupContext","PasswordCriteria","met","usePasswordCriteria","criterias","groupedCriterias","groupCriterias","group","groupId","criteria","criteriaId","toBeGrouped","splice","PasswordField","setType","toggleType","useMultiSelectFieldControllers","options","getSelectStyles","isInvalid","asToolbarFilter","wrapToNextLine","borderColor","valueContainer","base","assign","fontFamily","minWidth","control","state","isFocused","isDisabled","boxShadow","backgroundColor","fontSize","cursor","background","border","indicatorSeparator","overflow","textOverflow","whiteSpace","noOptionsMessage","textAlign","padding","singleValue","dropdownIndicator","option","multiValueRemove","clearIndicator","menu","menuPortal","CustomOption","CustomComponent","components","Option","MultiSelectField","UserCustomOption","Select","menuPortalTarget","isMulti","useSelectFieldControllers","CustomControl","CustomPrefixComponent","selectedOption","getValue","Control","SelectField","SelectedOptionPrefix","useDateFieldControllers","newValue","DatePickerCalendar","inputNode","inputPosition","overlayWrapper","parseDate","str","format","locale","parsed","dateFnsParse","Date","DateUtils","isDate","formatDate","date","dateFnsFormat","setToMidnight","startOfDay","getStartOfWeek","weekIndex","firstDay","getDate","getDay","firstDayAdjusted","setDate","getEndOfWeek","startOfWeek","endDay","createWeekRange","weekStart","start","end","DAYS","MONTH_NAMES","DateField","disabledDays","initialMonth","readOnly","inputRef","dayPickerProps","day","months","weekdaysLong","weekdaysShort","substring","DayPickerInput","onDayChange","onDayPickerHide","overlayComponent","inputProps","inputStyles","autoComplete","useRangeFieldControllers","initialControllers","FromDate","onDayClick","modifiers","from","to","showOutsideDays","firstDayOfWeek","selectedDays","after","toMonth","selectedDay","ToDate","before","month","fromMonth","DateRangeField","toInputRef","val","WeekField","hoverDate","setHoverDate","weekRange","eachDayOfInterval","getModifiers","hoverRange","selectedRange","handleHoverStart","handleHoverEnd","onDayMouseEnter","onDayMouseLeave","handleDayClick","selectedDate","Toggle","ModalHeader","subHeader","Modal","rootElementId","maxWidth","content","ReactModal","shouldCloseOnEsc","shouldCloseOnOverlayClick","onRequestClose","closeTimeoutMS","contentLabel","appElement","getElementById","overlayClassName","afterOpen","beforeClose","setAppElement","rootElement","ModalBody","ModalFooter","primaryButton","updateButtonProps","primary","secondaryButton","secondary","tertiaryButton","tertiary","FooterContainer","startsWith","button","newProps","childrenItens","hasCustomAlignment","Badge","otherProps","isValidElement","AvatarImage","url","alt","hasImageError","setHasImageError","src","onError","PROFILE_IMAGES","avatarColor","Avatar","badge","floor","defaultProfilePictureColors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/icons/constants.ts","../src/icons/iconUtils.ts","../src/icons/IconArrowDown.tsx","../src/icons/IconArrowLeft.tsx","../src/icons/IconArrowRight.tsx","../src/icons/IconArrowUp.tsx","../src/icons/IconCalendar.tsx","../src/icons/IconChevronDown.tsx","../src/icons/IconChevronUp.tsx","../src/icons/IconClose.tsx","../src/icons/IconComment.tsx","../src/icons/IconDelete.tsx","../src/icons/IconEdit.tsx","../src/icons/IconEye.tsx","../src/icons/IconEyeSlash.tsx","../src/icons/IconExclaim.tsx","../src/icons/IconLocation.tsx","../src/icons/IconMinusCircle.tsx","../src/icons/IconMore.tsx","../src/icons/IconRemove.tsx","../src/icons/IconUser.tsx","../src/icons/IconUserPlus.tsx","../src/core/ResourceTable/ResourceTableContext.ts","../src/overlay/Menu/MenuContext.ts","../src/overlay/Menu/Menu.tsx","../src/overlay/Menu/MenuItem.tsx","../src/core/Flex/Flex.tsx","../src/core/Inline/Inline.tsx","../src/feedback/Spinner/Spinner.tsx","../src/overlay/Tooltip/constants.ts","../src/overlay/Tooltip/TooltipOverlay/domain.ts","../src/core/Stack/Stack.tsx","../src/hooks/useIsMounted.ts","../src/foundation/constants.ts","../src/hooks/usePortalContainer.ts","../src/core/Portal/Portal.tsx","../src/overlay/Tooltip/TooltipOverlay/TooltipOverlay.tsx","../src/overlay/Tooltip/Tooltip.tsx","../src/actions/Button/Button.tsx","../src/overlay/Menu/MenuButton.tsx","../src/overlay/hooks/useOnClickOutside.ts","../src/overlay/Menu/MenuList.tsx","../src/core/ResourceTableRow/ResourceTableRow.tsx","../src/core/ResourceTable/ResourceTableHeader.tsx","../src/utils/i18n.ts","../src/actions/PaginationControls/PaginationControls.tsx","../src/core/ResourceTable/ResourceTable.tsx","../src/forms/Form/FormContext.ts","../src/forms/Form/Form.tsx","../src/forms/FormRow/FormRow.tsx","../src/forms/Label/Label.tsx","../src/forms/Caption/Caption.tsx","../src/foundation/colors.ts","../src/forms/ErrorMessage/ErrorMessage.tsx","../src/forms/Field/Field.tsx","../src/forms/hooks/useFieldId.ts","../src/utils/formik.ts","../src/forms/hooks/useFieldControllers.ts","../src/forms/hooks/useGrowTextAreaRef.ts","../src/forms/TextAreaField/TextAreaField.tsx","../src/forms/AffixContainer/AffixContainer.tsx","../src/forms/TextField/TextField.tsx","../src/forms/hooks/useCheckBoxFieldControllers.ts","../src/forms/CheckboxField/CheckboxField.tsx","../src/forms/hooks/useRadioGroupFieldControllers.ts","../src/forms/RadioGroupField/RadioGroupFieldContext.ts","../src/forms/RadioGroupField/RadioGroupField.tsx","../src/forms/RadioGroupOption/RadioGroupOption.tsx","../src/forms/PasswordCriteria/PasswordCriteria.tsx","../src/forms/hooks/usePasswordCriteria.tsx","../src/forms/PasswordField/PasswordField.tsx","../src/forms/hooks/useMultiSelectFieldControllers.ts","../src/forms/SelectField/SelectField.styles.ts","../src/forms/MultiSelectField/CustomOption/CustomOption.tsx","../src/forms/MultiSelectField/MultiSelectField.tsx","../src/forms/hooks/useSelectFieldControllers.ts","../src/forms/SelectField/CustomControl/CustomControl.tsx","../src/forms/SelectField/CustomOption/CustomOption.tsx","../src/forms/SelectField/SelectField.tsx","../src/forms/hooks/useDateFieldControllers.ts","../src/forms/DatePickerCalendar/DatePickerCalendar.tsx","../src/utils/date.ts","../src/forms/DateField/DateField.tsx","../src/forms/hooks/useRangeFieldControllers.ts","../src/forms/DateRangeField/FromDate/FromDate.tsx","../src/forms/DateRangeField/ToDate/ToDate.tsx","../src/forms/DateRangeField/DateRangeField.tsx","../src/forms/WeekField/WeekField.tsx","../src/actions/Toggle/Toggle.tsx","../src/overlay/Modal/ModalHeader/ModalHeader.tsx","../src/overlay/Modal/Modal.tsx","../src/overlay/Modal/ModalBody/ModalBody.tsx","../src/overlay/Modal/ModalFooter/ModalFooter.tsx","../src/media/Badge/Badge.tsx","../src/media/Avatar/AvatarImage/AvatarImage.tsx","../src/media/Avatar/constants.ts","../src/media/Avatar/Avatar.tsx"],"sourcesContent":["export const ICON_SIZES = {\n small: '12px',\n medium: '16px',\n default: '20px',\n large: '24px'\n};\n","import { ICON_SIZES } from './constants';\nimport { IconSize } from './types';\n\nexport const getIconStyles = (size: IconSize, rotate?: number): Object => ({\n width: ICON_SIZES[size],\n height: ICON_SIZES[size],\n transform: rotate && `rotate(${rotate}deg)`,\n verticalAlign: 'middle'\n});\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n rotate?: number;\n dataTestId?: string;\n};\nconst IconArrowDown: React.FC<Props> = ({\n size = 'default',\n color,\n rotate,\n dataTestId = 'icon-arrow-down'\n}) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size, rotate)}\n data-testid={dataTestId}\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M443.5 248.5l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L241 419.9V44c0-6.6-5.4-12-12-12h-10c-6.6 0-12 5.4-12 12v375.9L28.5 241.4c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.8 4.8-12.3.1-17z\"\n />\n </svg>\n );\n};\n\nexport default IconArrowDown;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowLeft: React.FC<Props> = (props) => {\n return (\n <IconArrowDown {...props} rotate={90} dataTestId=\"icon-arrow-left\" />\n );\n};\n\nexport default IconArrowLeft;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowRight: React.FC<Props> = (props) => {\n return (\n <IconArrowDown {...props} rotate={-90} dataTestId=\"icon-arrow-right\" />\n );\n};\n\nexport default IconArrowRight;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconArrowDown from './IconArrowDown';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconArrowUp: React.FC<Props> = (props) => {\n return <IconArrowDown {...props} rotate={180} dataTestId=\"icon-arrow-up\" />;\n};\n\nexport default IconArrowUp;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconCalendar: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-calendar\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M25.214 3.75H22.43V.703A.702.702 0 0 0 21.732 0h-.464a.702.702 0 0 0-.697.703V3.75H9.43V.703A.702.702 0 0 0 8.732 0h-.464a.702.702 0 0 0-.697.703V3.75H4.786C3.248 3.75 2 5.01 2 6.563v20.625C2 28.74 3.248 30 4.786 30h20.428C26.752 30 28 28.74 28 27.187V6.563c0-1.552-1.248-2.812-2.786-2.812zM4.786 5.625h20.428c.511 0 .929.422.929.938v2.812H3.857V6.562c0-.515.418-.937.929-.937zm20.428 22.5H4.786a.936.936 0 0 1-.929-.938V11.25h22.286v15.938a.936.936 0 0 1-.929.937zM10.59 18.75H8.268a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm5.572 0h-2.322a.702.702 0 0 1-.696-.703v-2.344c0-.387.313-.703.696-.703h2.322c.383 0 .696.316.696.703v2.344a.702.702 0 0 1-.696.703zm5.571 0h-2.321a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm-5.571 5.625h-2.322a.702.702 0 0 1-.696-.703v-2.344c0-.387.313-.703.696-.703h2.322c.383 0 .696.316.696.703v2.344a.702.702 0 0 1-.696.703zm-5.572 0H8.268a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703zm11.143 0h-2.321a.702.702 0 0 1-.697-.703v-2.344c0-.387.314-.703.697-.703h2.321c.383 0 .697.316.697.703v2.344a.702.702 0 0 1-.697.703z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconCalendar;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\n\ntype Props = {\n size?: 'small' | 'medium';\n color?: string;\n rotate?: number;\n dataTestId?: string;\n};\nconst IconChevronDown: React.FC<Props> = ({\n size = 'small',\n color,\n rotate,\n dataTestId = 'icon-chevron-down'\n}) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size, rotate)}\n data-testid={dataTestId}\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M443.5 162.6l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L224 351 28.5 155.5c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.7 4.8-12.3.1-17z\"\n />\n </svg>\n );\n};\n\nexport default IconChevronDown;\n","import React from 'react';\nimport { Color } from '../foundation/colors';\nimport IconChevronDown from './IconChevronDown';\n\ntype Props = {\n size?: 'small' | 'medium';\n color?: Color;\n};\nconst IconChevronUp: React.FC<Props> = (props) => {\n return (\n <IconChevronDown {...props} rotate={180} dataTestId=\"icon-chevron-up\" />\n );\n};\n\nexport default IconChevronUp;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconClose: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-close\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n transform=\"translate(11.993600, 11.979816) rotate(-315.000000) translate(-11.993600, -11.979816)\"\n d=\"M26.9457415,10.8753243 L13.1323685,10.8664553 L13.0980917,-2.97232553 C13.0980917,-3.17951303 12.9302792,-3.34732553 12.7230917,-3.34732553 L11.2230917,-3.34732553 C11.0159042,-3.34732553 10.8480917,-3.17951303 10.8480917,-2.97232553 L10.8823685,10.8664553 L-2.95854067,10.8343068 C-3.16572817,10.8343068 -3.33354067,11.0021193 -3.33354067,11.2093068 C-3.33354067,11.3474318 -3.33354067,11.8474318 -3.33354067,12.7093068 C-3.33354067,12.9164943 -3.16572817,13.0843068 -2.95854067,13.0843068 L10.8823685,13.1164553 L10.8891092,26.9319567 C10.8891092,27.1391442 11.0569217,27.3069567 11.2641092,27.3069567 L12.7641092,27.3069567 C12.9712967,27.3069567 13.1391092,27.1391442 13.1391092,26.9319567 L13.1323685,13.1164553 L26.9457415,13.1253243 C27.152929,13.1253243 27.3207415,12.9575118 27.3207415,12.7503243 L27.3207415,11.2503243 C27.3207415,11.0431368 27.152929,10.8753243 26.9457415,10.8753243 Z\"\n />\n </svg>\n );\n};\n\nexport default IconClose;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconComment: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M256 64c123.5 0 224 79 224 176S379.5 416 256 416c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176m0-32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26 3.8 8.8 12.4 14.5 22 14.5 61.5 0 110-25.7 139.1-46.3 29 9.1 60.2 14.3 93 14.3 141.4 0 256-93.1 256-208S397.4 32 256 32z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconComment;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconDelete: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-delete\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143zm-129.2 14.8l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L256 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.7 4.7 4.7 12.3 0 17L281.5 256l69.3 69.3c4.6 4.7 4.6 12.3 0 17z\"\n />\n </svg>\n );\n};\n\nexport default IconDelete;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEdit: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-edit\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"m493.255 56.236-37.49-37.49c-24.993-24.993-65.515-24.994-90.51 0l-352.417 352.416-12.687 114.184c-1.698 15.286 11.22 28.203 26.504 26.504l114.184-12.687 352.417-352.417c24.992-24.994 24.992-65.517-.001-90.51zm-95.196 140.45-224.059 224.059v-34.745h-48v-48h-34.745l224.059-224.059zm-271.912 271.912-58.995 6.555-30.305-30.305 6.555-58.995 19.853-19.853h34.745v48h48v34.745zm344.48-344.48-49.941 49.941-82.745-82.745 49.941-49.941c12.505-12.505 32.748-12.507 45.255 0l37.49 37.49c12.506 12.506 12.507 32.747 0 45.255z\"\n />\n </svg>\n );\n};\n\nexport default IconEdit;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEye: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.00001 3C11.328 3 14.2492 4.77633 15.8154 7.43419C16.0615 7.85191 16.0615 8.37031 15.8154 8.78803C14.2499 11.4446 11.3295 13.2222 8.00001 13.2222C4.67201 13.2222 1.7509 11.4459 0.184624 8.78803C-0.0615414 8.37031 -0.0615414 7.85188 0.184624 7.43417C1.75012 4.77761 4.67057 3 8.00001 3ZM8.00007 10.7778C9.96374 10.7778 11.5556 9.23563 11.5556 7.33332C11.5556 5.43101 9.96374 3.88888 8.00007 3.88888C6.03641 3.88888 4.44452 5.43101 4.44452 7.33332C4.44452 9.23563 6.03641 10.7778 8.00007 10.7778ZM15.0495 8.33673C13.6066 10.7855 10.9407 12.3333 7.99998 12.3333C5.04746 12.3333 2.38718 10.7748 0.950428 8.33676C0.868404 8.19751 0.868404 8.02471 0.950428 7.88545C1.75798 6.51509 2.98768 5.37337 4.49654 4.66637C3.91234 5.39418 3.55554 6.32132 3.55554 7.33332C3.55554 9.71715 5.5339 11.6666 7.99998 11.6666C10.4658 11.6666 12.4444 9.71726 12.4444 7.33332C12.4444 6.3219 12.088 5.39459 11.5035 4.66637C12.9968 5.36607 14.2333 6.50029 15.0496 7.88545C15.1316 8.02471 15.1316 8.19749 15.0495 8.33673ZM6.43135 6.3851C6.29794 6.63457 6.22219 6.91954 6.22219 7.22224C6.22219 8.20407 7.01813 9.00001 7.99997 9.00001C8.9818 9.00001 9.77774 8.20407 9.77774 7.22224C9.77774 6.2404 8.9818 5.44446 7.99997 5.44446C7.69727 5.44446 7.4123 5.52021 7.16283 5.65363H7.16338C7.56766 5.65363 7.89541 5.98138 7.89541 6.38565C7.89541 6.78993 7.56766 7.11768 7.16338 7.11768C6.7591 7.11768 6.43135 6.78993 6.43135 6.38565V6.3851Z\"\n />\n </svg>\n );\n};\n\nexport default IconEye;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconEyeSlash: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 640 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye-slash\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M637 485.25L23 1.75A8 8 0 0 0 11.76 3l-10 12.51A8 8 0 0 0 3 26.75l614 483.5a8 8 0 0 0 11.25-1.25l10-12.51a8 8 0 0 0-1.25-11.24zM320 96a128.14 128.14 0 0 1 128 128c0 21.62-5.9 41.69-15.4 59.57l25.45 20C471.65 280.09 480 253.14 480 224c0-36.83-12.91-70.31-33.78-97.33A294.88 294.88 0 0 1 576.05 256a299.73 299.73 0 0 1-67.77 87.16l25.32 19.94c28.47-26.28 52.87-57.26 70.93-92.51a32.35 32.35 0 0 0 0-29.19C550.3 135.59 442.94 64 320 64a311.23 311.23 0 0 0-130.12 28.43l45.77 36C258.24 108.52 287.56 96 320 96zm60.86 146.83A63.15 63.15 0 0 0 320 160c-1 0-1.89.24-2.85.29a45.11 45.11 0 0 1-.24 32.19zm-217.62-49.16A154.29 154.29 0 0 0 160 224a159.39 159.39 0 0 0 226.27 145.29L356.69 346c-11.7 3.53-23.85 6-36.68 6A128.15 128.15 0 0 1 192 224c0-2.44.59-4.72.72-7.12zM320 416c-107.36 0-205.47-61.31-256-160 17.43-34 41.09-62.72 68.31-86.72l-25.86-20.37c-28.48 26.28-52.87 57.25-70.93 92.5a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448a311.25 311.25 0 0 0 130.12-28.43l-29.25-23C389.06 408.84 355.15 416 320 416z\"\n />\n </svg>\n );\n};\n\nexport default IconEyeSlash;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconExclaim: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-exclaim\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M10.9785 0H13.0363C13.6473 0 14.1355 0.508836 14.1101 1.1194L13.4832 16.1642C13.4592 16.7398 12.9856 17.194 12.4095 17.194H11.6054C11.0293 17.194 10.5556 16.7397 10.5316 16.1642L9.90478 1.1194C9.87943 0.508836 10.3675 0 10.9785 0ZM12.0075 18.9851C10.6226 18.9851 9.5 20.1077 9.5 21.4925C9.5 22.8774 10.6226 24 12.0075 24C13.3923 24 14.5149 22.8774 14.5149 21.4925C14.5149 20.1077 13.3923 18.9851 12.0075 18.9851Z\"\n />\n </svg>\n );\n};\n\nexport default IconExclaim;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconLocation: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 384 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M192 96c-52.935 0-96 43.065-96 96s43.065 96 96 96 96-43.065 96-96-43.065-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm0-256C85.961 0 0 85.961 0 192c0 77.413 26.97 99.031 172.268 309.67 9.534 13.772 29.929 13.774 39.465 0C357.03 291.031 384 269.413 384 192 384 85.961 298.039 0 192 0zm0 473.931C52.705 272.488 32 256.494 32 192c0-42.738 16.643-82.917 46.863-113.137S149.262 32 192 32s82.917 16.643 113.137 46.863S352 149.262 352 192c0 64.49-20.692 80.47-160 281.931z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconLocation;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconMinusCircle: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 512 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-comment\"\n className={styles['icon']}\n >\n <g>\n <path\n fill={color ?? ''}\n d=\"M140 274c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v12c0 6.6-5.4 12-12 12H140zm364-18c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-32 0c0-119.9-97.3-216-216-216-119.9 0-216 97.3-216 216 0 119.9 97.3 216 216 216 119.9 0 216-97.3 216-216z\"\n />\n </g>\n </svg>\n );\n};\n\nexport default IconMinusCircle;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconMore: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-eye\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M12,9.5 C13.3828125,9.5 14.5,10.6171875 14.5,12 C14.5,13.3828125 13.3828125,14.5 12,14.5 C10.6171875,14.5 9.5,13.3828125 9.5,12 C9.5,10.6171875 10.6171875,9.5 12,9.5 Z M9.5,2.625 C9.5,4.0078125 10.6171875,5.125 12,5.125 C13.3828125,5.125 14.5,4.0078125 14.5,2.625 C14.5,1.2421875 13.3828125,0.125 12,0.125 C10.6171875,0.125 9.5,1.2421875 9.5,2.625 Z M9.5,21.375 C9.5,22.7578125 10.6171875,23.875 12,23.875 C13.3828125,23.875 14.5,22.7578125 14.5,21.375 C14.5,19.9921875 13.3828125,18.875 12,18.875 C10.6171875,18.875 9.5,19.9921875 9.5,21.375 Z\"\n />\n </svg>\n );\n};\n\nexport default IconMore;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\n\ntype Props = {\n size?: 'small' | 'medium' | 'default' | 'large';\n color?: Color;\n};\nconst IconRemove: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 448 512\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-remove\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M336 64l-33.6-44.8C293.3 7.1 279.1 0 264 0h-80c-15.1 0-29.3 7.1-38.4 19.2L112 64H24C10.7 64 0 74.7 0 88v2c0 3.3 2.7 6 6 6h26v368c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V96h26c3.3 0 6-2.7 6-6v-2c0-13.3-10.7-24-24-24h-88zM184 32h80c5 0 9.8 2.4 12.8 6.4L296 64H152l19.2-25.6c3-4 7.8-6.4 12.8-6.4zm200 432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V96h320v368zm-176-44V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm-80 0V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm160 0V156c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v264c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12z\"\n />\n </svg>\n );\n};\n\nexport default IconRemove;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: string;\n};\nconst IconUser: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-user\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M12 12C15.1562 12 17.7143 9.31406 17.7143 6C17.7143 2.68594 15.1562 0 12 0C8.84375 0 6.28571 2.68594 6.28571 6C6.28571 9.31406 8.84375 12 12 12ZM16 13.5H15.2545C14.2634 13.9781 13.1607 14.25 12 14.25C10.8393 14.25 9.74107 13.9781 8.74554 13.5H8C4.6875 13.5 2 16.3219 2 19.8V21.75C2 22.9922 2.95982 24 4.14286 24H19.8571C21.0402 24 22 22.9922 22 21.75V19.8C22 16.3219 19.3125 13.5 16 13.5Z\"\n />\n </svg>\n );\n};\n\nexport default IconUser;\n","import React from 'react';\nimport { getIconStyles } from './iconUtils';\nimport styles from './icon.scss';\nimport { Color } from '../foundation/colors';\nimport { IconSize } from './types';\n\ntype Props = {\n size?: IconSize;\n color?: Color;\n};\nconst IconUserPlus: React.FC<Props> = ({ size = 'default', color }) => {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={getIconStyles(size)}\n data-testid=\"icon-user\"\n className={styles['icon']}\n >\n <path\n fill={color ?? ''}\n d=\"M23.7248 10.875H20.6998V7.78125C20.6998 7.62656 20.5761 7.5 20.4248 7.5H19.8748C19.7236 7.5 19.5998 7.62656 19.5998 7.78125V10.875H16.5748C16.4236 10.875 16.2998 11.0016 16.2998 11.1562V11.7188C16.2998 11.8734 16.4236 12 16.5748 12H19.5998V15.0938C19.5998 15.2484 19.7236 15.375 19.8748 15.375H20.4248C20.5761 15.375 20.6998 15.2484 20.6998 15.0938V12H23.7248C23.8761 12 23.9998 11.8734 23.9998 11.7188V11.1562C23.9998 11.0016 23.8761 10.875 23.7248 10.875Z\"\n />\n <path\n fill={color ?? ''}\n d=\"M8 12C10.525 12 12.5714 9.76172 12.5714 7C12.5714 4.23828 10.525 2 8 2C5.475 2 3.42857 4.23828 3.42857 7C3.42857 9.76172 5.475 12 8 12ZM11.2 13.25H10.6036C9.81071 13.6484 8.92857 13.875 8 13.875C7.07143 13.875 6.19286 13.6484 5.39643 13.25H4.8C2.15 13.25 0 15.6016 0 18.5V20.125C0 21.1602 0.767857 22 1.71429 22H14.2857C15.2321 22 16 21.1602 16 20.125V18.5C16 15.6016 13.85 13.25 11.2 13.25Z\"\n />\n </svg>\n );\n};\n\nexport default IconUserPlus;\n","import { createContext, useContext } from 'react';\n\nexport type ResourceTableContextType = {\n columnSizes?: number[];\n showActionMenu?: boolean;\n};\n\nconst initialValue: ResourceTableContextType = {};\nconst Context = createContext<ResourceTableContextType>(initialValue);\n\nexport const useResourceTableContext = (): ResourceTableContextType => {\n const context = useContext(Context);\n\n if (!context) {\n throw Error(\n 'useResourceTableContext should be used withing `ResourceTable`. Probably you are using `ResourceTableRow` without a `ResourceTable` component'\n );\n }\n return context;\n};\n\nexport default Context;\n","// @flow\nimport React from 'react';\n\nexport type MenuContextType = {\n onToggleMenu: () => void;\n isOpen: boolean;\n triggerRef: any;\n};\n\nconst MenuContext: React.Context<MenuContextType> =\n React.createContext<MenuContextType>({\n onToggleMenu: () => {},\n isOpen: false,\n triggerRef: undefined\n });\n\nexport const useMenuContext = (): MenuContextType =>\n React.useContext(MenuContext);\n\nexport default MenuContext;\n","import React, { useState, useRef } from 'react';\nimport MenuContext from './MenuContext';\n\ntype Props = {\n children: React.ReactNode;\n};\n/**\n * STATUS: IN DRAFT (Don't use this component yet)\n * It is working to cover the ResourceTable actions menu but there are some functionalities pending such as `dividers` and `direction`.\n */\nconst Menu: React.FC<Props> = ({ children }) => {\n const [isOpen, setIsOpen] = useState(false);\n const triggerRef = useRef();\n\n return (\n <MenuContext.Provider\n value={{\n isOpen,\n onToggleMenu: () => setIsOpen(!isOpen),\n triggerRef\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n\nexport default Menu;\n","import React from 'react';\nimport { useMenuContext } from './MenuContext';\nimport styles from './menu.scss';\n\ntype Props = {\n onClick: () => void;\n children: React.ReactNode;\n};\n\nconst MenuItem: React.FC<Props> = ({ onClick, children }) => {\n const { onToggleMenu } = useMenuContext();\n const handleClick = (e: React.MouseEvent | React.KeyboardEvent) => {\n onToggleMenu();\n onClick();\n e.stopPropagation();\n };\n return (\n <li\n className={styles['list-item']}\n onClick={handleClick}\n onKeyPress={handleClick}\n tabIndex={0}\n role=\"menuitem\"\n >\n {children}\n </li>\n );\n};\n\nexport default MenuItem;\n","import React from 'react';\nimport classNames from 'classnames';\nimport type { AlignItems, FlexWrap, JustifyContent, Space } from './types';\nimport styles from './flex.scss';\n\ntype Props = {\n children: React.ReactNode;\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n alignItems?: AlignItems;\n justifyContent?: JustifyContent;\n inlineFlex?: boolean;\n direction?: 'row' | 'column';\n flexItems?: boolean;\n flexWrap?: FlexWrap;\n};\n\n/**\n * Flex is a internal component used by Stack and Inline. DON'T use this component outside of Sous Chef\n */\nconst Flex: React.FC<Props> = ({\n children,\n space = 20,\n flex,\n alignItems = 'flex-start',\n justifyContent = 'start',\n inlineFlex = false,\n direction = 'row',\n flexItems = false,\n flexWrap = 'nowrap'\n}) => {\n const className = classNames(styles['flex'], {\n [styles['align-start']]: alignItems === 'flex-start',\n [styles['align-end']]: alignItems === 'flex-end',\n [styles['align-center']]: alignItems === 'center',\n [styles['justify-start']]: justifyContent === 'start',\n [styles['justify-end']]: justifyContent === 'end',\n [styles['justify-center']]: justifyContent === 'center',\n [styles['justify-space-between']]: justifyContent === 'space-between',\n [styles['inline-flex']]: inlineFlex\n });\n const items = React.Children.toArray(children).filter(Boolean);\n const lastItemIndex = items.length - 1;\n\n return (\n <div\n className={className}\n style={{ flexDirection: direction, flexWrap }}\n data-testid={`flex-${direction}`}\n >\n {items.map((child, i) => (\n <div\n key={i}\n style={{\n display: (flexItems && 'flex') || 'inline',\n flex: flex ? flex[i] || '0 1 auto' : '0 1 auto',\n marginRight:\n direction === 'row' && i < lastItemIndex\n ? space\n : 0,\n marginBottom:\n direction === 'column' && i < lastItemIndex\n ? space\n : 0\n }}\n >\n {child}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Flex;\n","import React from 'react';\nimport Flex from '../Flex';\nimport type {\n AlignItems,\n FlexWrap,\n JustifyContent,\n Space\n} from '../Flex/types';\n\ntype Props = {\n children: React.ReactNode;\n /** From `0` to `60` with multiples of `4`, eg. `8`, `12`, `16` and so on. */\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n /** One of: `flex-start`, `flex-end`, `center`, `stretch` */\n alignItems?: AlignItems;\n /** One of: `start`, `end`, `center`, `space-between` */\n justifyContent?: JustifyContent;\n inlineFlex?: boolean;\n flexWrap?: FlexWrap;\n};\n/**\n * Layout component to easily line elements up in a row.\n */\nconst Inline: React.FC<Props> = (props) => <Flex {...props} direction=\"row\" />;\n\nexport default Inline;\n","import React from 'react';\nimport classnames from 'classnames';\nimport styles from './spinner.scss';\n\ntype Props = {\n size?: number;\n theme?: 'mint' | 'disabled' | 'contrast';\n block?: boolean;\n};\nconst Spinner: React.FC<Props> = ({\n size = 28,\n theme = 'mint',\n block = false\n}) => {\n return (\n <div className={classnames({ [styles['spinner--block']]: block })}>\n <svg\n className={styles['spinner']}\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 66 66\"\n data-testid=\"spinner\"\n >\n <circle\n className={classnames(\n styles['path'],\n styles[`path--${theme}`]\n )}\n fill=\"none\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n cx=\"33\"\n cy=\"33\"\n r=\"30\"\n />\n </svg>\n </div>\n );\n};\n\nexport default Spinner;\n","export const TOOLTIP_THEME = {\n BLACK: 'black' as 'black',\n WHITE: 'white' as 'white'\n};\n\nexport const TOOLTIP_PLACEMENT = {\n BOTTOM: 'bottom' as 'bottom',\n TOP: 'top' as 'top'\n};\n\nexport const TOOLTIP_DELAY_ON_CLOSE = 350;\nexport const TOOLTIP_DELAY_ON_OPEN = 600;\nexport const SPACE = 14;\nexport const PADDING = 12;\nexport const BUFFER = 2;\nexport const ARROW_WIDTH = 10;\nexport const ARROW_MARGIN = 5;\n","import { Placement, ActualPlacement } from '../types';\nimport {\n TOOLTIP_PLACEMENT,\n SPACE,\n PADDING,\n BUFFER,\n ARROW_WIDTH,\n ARROW_MARGIN\n} from '../constants';\n\ntype Position = {\n width: number;\n left: number;\n top: number;\n};\n\nexport const calculatePosition = (\n placement: Placement,\n anchorPosition: DOMRect,\n tooltipRectPosition?: DOMRect\n): {\n overlay?: Position;\n arrow?: ArrowPosition;\n actualPlacement: ActualPlacement;\n} => {\n if (!tooltipRectPosition) {\n return {\n overlay: undefined,\n arrow: undefined,\n actualPlacement: {\n placement,\n top: 0\n }\n };\n }\n\n const actualPlacement = getActualPlacement(\n placement,\n anchorPosition,\n tooltipRectPosition.height\n );\n const overlayPosition = calculateOverlayPosition(\n actualPlacement,\n anchorPosition,\n tooltipRectPosition.width\n );\n const arrowPosition =\n overlayPosition &&\n calculateArrowPosition(\n actualPlacement.placement,\n overlayPosition,\n anchorPosition,\n tooltipRectPosition\n );\n\n return {\n overlay: updateMisalignedOverlay(\n overlayPosition,\n arrowPosition,\n tooltipRectPosition\n ),\n arrow: arrowPosition,\n actualPlacement\n };\n};\n\nexport const updateMisalignedOverlay = (\n overlayPosition: Position,\n arrowPosition: ArrowPosition,\n tooltipRectPosition: DOMRect\n): Position => {\n let left = overlayPosition.left;\n // Checking when there is a horizontal scrool and the arrow is not aligned with the tooltip in the LEFT side\n if (overlayPosition.left > arrowPosition.left) {\n left = arrowPosition.left - ARROW_MARGIN;\n }\n // Checking when there is a horizontal scrool and the arrow is not aligned with the tooltip in the RIGHT side\n else if (\n overlayPosition.left + tooltipRectPosition.width <\n arrowPosition.left + ARROW_WIDTH\n ) {\n left =\n arrowPosition.left -\n tooltipRectPosition.width +\n ARROW_WIDTH +\n ARROW_MARGIN;\n }\n return { ...overlayPosition, left };\n};\n\nexport const calculateOverlayPosition = (\n actualPlacement: ActualPlacement,\n anchorPosition: DOMRect,\n tooltipWidth: number = 156\n): Position => {\n // some maths to align the tooltip with whatever you just hovered over (the 'target')\n const position: Position = {\n width: tooltipWidth - PADDING * 2,\n left: 0,\n top: 0\n };\n\n // center align the tooltip by taking both the target and tooltip widths into account\n position.left =\n anchorPosition.width / 2 +\n anchorPosition.left -\n tooltipWidth / 2 -\n BUFFER;\n position.left = Math.max(SPACE, position.left); // make sure it doesn't poke off the left side of the page\n position.left = Math.min(\n position.left,\n window.innerWidth - tooltipWidth - SPACE\n ); // or off the right\n\n position.top = actualPlacement.top;\n\n return position;\n};\n\nexport const getActualPlacement = (\n placement: Placement,\n anchorPosition: DOMRect,\n tooltipHeight: number\n): ActualPlacement => {\n const topPosition = anchorPosition.top - tooltipHeight - SPACE;\n const bottomPosition = anchorPosition.top + anchorPosition.height + SPACE;\n\n let actualPlacement: Placement;\n\n if (placement === TOOLTIP_PLACEMENT.BOTTOM) {\n actualPlacement =\n bottomPosition + tooltipHeight < window.innerHeight\n ? TOOLTIP_PLACEMENT.BOTTOM\n : TOOLTIP_PLACEMENT.TOP;\n } else {\n actualPlacement =\n topPosition <= 0 ? TOOLTIP_PLACEMENT.BOTTOM : TOOLTIP_PLACEMENT.TOP;\n }\n const top =\n actualPlacement === TOOLTIP_PLACEMENT.BOTTOM\n ? bottomPosition\n : topPosition;\n\n return {\n placement: actualPlacement,\n top\n };\n};\n\ntype ArrowPosition = {\n left: number;\n top: number;\n};\nexport const calculateArrowPosition = (\n placement: Placement,\n tooltipPosition: Position,\n anchorPosition: DOMRect,\n tooltipRectPosition?: DOMRect\n): ArrowPosition => {\n let top;\n if (placement === TOOLTIP_PLACEMENT.BOTTOM) {\n top = (tooltipPosition?.top || 0) - 3;\n } else {\n top = tooltipPosition.top + (tooltipRectPosition?.height || 0) - 8;\n }\n return {\n left: anchorPosition.width / 2 + anchorPosition.left - ARROW_WIDTH / 2,\n top\n };\n};\n","import * as React from 'react';\nimport Flex from '../Flex';\nimport type { JustifyContent, Space, AlignItems } from '../Flex/types';\n\ntype Props = {\n children: React.ReactNode;\n /** From `0` to `60` with multiples of `4`, eg. `8`, `12`, `16` and so on. */\n space?: Space;\n /** It sets how each item will grow or shrink to fit the space available in its flex container. The default value is `0 1 auto` but it can be overriden. Check it out this [official doc](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) to see all the possible values. */\n flex?: (string | number)[];\n /** One of: `flex-start`, `flex-end`, `center`, `stretch` */\n alignItems?: AlignItems;\n /** One of: `start`, `end`, `center`, `space-between` */\n justifyContent?: JustifyContent;\n flexItems?: boolean;\n};\n/**\n * Layout component to easily stack elements up in a column.\n */\nconst Stack: React.FC<Props> = ({ alignItems = 'stretch', ...props }) => (\n <Flex {...props} alignItems={alignItems} direction=\"column\" />\n);\n\nexport default Stack;\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport const useIsMounted = (): (() => boolean) => {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return function cleanup(): void {\n isMounted.current = false;\n };\n }, []);\n const checker = useCallback((): boolean => {\n return isMounted.current;\n }, []);\n return checker;\n};\n","/** This is to help us centralize all the zIndexes layers in here so we avoid side effects with wrong styles */\nexport const Z_INDEX_LAYERS = {\n BASE: 1,\n MODAL: 100,\n MENU: 200,\n TOOLTIP: 300\n};\n\nexport const FONT_FAMILY = \"'Proxima Nova', sans-serif\";\n","import { useState, useEffect } from 'react';\n\n/**\n * Used when you need to create a DOM element and remove it after the component unmounts\n */\nexport const usePortalContainer = (): HTMLElement | undefined => {\n const [container, setContainer] = useState<HTMLElement | undefined>();\n\n useEffect(() => {\n const containerElement = document.createElement('div');\n containerElement.setAttribute('style', `position: absolute;`);\n document.body?.prepend(containerElement);\n setContainer(containerElement);\n\n return () => {\n containerElement.remove();\n };\n }, []);\n\n return container;\n};\n","// @flow\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePortalContainer } from '../../hooks/usePortalContainer';\n\ntype Props = {\n children: React.ReactNode;\n};\nconst Portal: React.FC<Props> = ({ children }) => {\n const container = usePortalContainer();\n\n if (!container) {\n return null;\n }\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './tooltip-overlay.scss';\nimport classnames from 'classnames';\nimport { Placement, TooltipTheme } from '../types';\nimport { calculatePosition } from './domain';\nimport Stack from '../../../core/Stack';\nimport { useIsMounted } from '../../../hooks/useIsMounted';\nimport { TOOLTIP_THEME, TOOLTIP_PLACEMENT } from '../constants';\nimport { Z_INDEX_LAYERS } from '../../../foundation/constants';\nimport Portal from '../../../core/Portal/Portal';\n\ntype Props = {\n theme: TooltipTheme;\n children: React.ReactNode;\n anchorPosition: DOMRect;\n placement: Placement;\n header?: React.ReactNode;\n onClose: () => void;\n onFocusIn: () => void;\n onFocusOut: () => void;\n extraClass?: string;\n};\nconst TooltipOverlay: React.FC<Props> = ({\n children,\n anchorPosition,\n placement,\n theme,\n header,\n onClose,\n onFocusIn,\n onFocusOut,\n extraClass\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const checkIsMounted = useIsMounted();\n\n useEffect(() => {\n setTimeout(() => {\n checkIsMounted() && setIsVisible(true);\n }, 50);\n }, [checkIsMounted]);\n\n useEffect(() => {\n window.addEventListener('scroll', onClose);\n return () => {\n window.removeEventListener('scroll', onClose);\n };\n }, []);\n\n const tooltipRectPosition = tooltipRef?.current?.getBoundingClientRect();\n const position = calculatePosition(\n placement,\n anchorPosition,\n tooltipRectPosition\n );\n\n return (\n <Portal>\n <div>\n <div\n ref={tooltipRef}\n style={{\n ...position.overlay,\n zIndex: Z_INDEX_LAYERS.TOOLTIP\n }}\n className={classnames(\n styles['tooltip-overlay'],\n extraClass,\n {\n [styles['tooltip-overlay--visible']]: isVisible,\n [styles['tooltip-overlay--black-theme']]:\n theme === TOOLTIP_THEME.BLACK,\n [styles['tooltip-overlay--white-theme']]:\n theme === TOOLTIP_THEME.WHITE\n }\n )}\n onMouseEnter={onFocusIn}\n onMouseLeave={onFocusOut}\n >\n <Stack space={8}>\n {header && (\n <div className={styles['tooltip-overlay__header']}>\n {header}\n </div>\n )}\n {children}\n </Stack>\n </div>\n <div\n className={classnames(\n styles['tooltip-overlay-arrow'],\n extraClass,\n {\n [styles['tooltip-overlay-arrow--visible']]:\n isVisible,\n [styles['tooltip-overlay-arrow--top']]:\n position.actualPlacement.placement ===\n TOOLTIP_PLACEMENT.TOP,\n [styles['tooltip-overlay-arrow--bottom']]:\n position.actualPlacement.placement ===\n TOOLTIP_PLACEMENT.BOTTOM,\n [styles['tooltip-overlay-arrow--black-theme']]:\n theme === TOOLTIP_THEME.BLACK,\n [styles['tooltip-overlay-arrow--white-theme']]:\n theme === TOOLTIP_THEME.WHITE\n }\n )}\n style={{\n ...position.arrow,\n zIndex: Z_INDEX_LAYERS.TOOLTIP\n }}\n onMouseEnter={onFocusIn}\n />\n </div>\n </Portal>\n );\n};\n\nexport default TooltipOverlay;\n","import React, { useState, useRef, Fragment, forwardRef } from 'react';\nimport styles from './tooltip.scss';\nimport classnames from 'classnames';\nimport TooltipOverlay from './TooltipOverlay';\nimport { Placement, TooltipTheme } from './types';\nimport { useIsMounted } from '../../hooks/useIsMounted';\nimport {\n TOOLTIP_THEME,\n TOOLTIP_PLACEMENT,\n TOOLTIP_DELAY_ON_OPEN,\n TOOLTIP_DELAY_ON_CLOSE\n} from './constants';\nimport { RefType } from '../../utils/types';\n\ntype Props = {\n theme?: TooltipTheme;\n /** It defines the overlay position on the screen. The component might not use the value defined in here as it will place the tooltip on the best place based on the anchor position on the screen. */\n placement?: Placement;\n /** It can be text or a JSX. */\n overlay?: React.ReactNode;\n /** Used on the `white` theme when there is a need of adding a header to the tooltip. */\n header?: React.ReactNode;\n /** If `true` it allow the overlay to keep open if the user hover it so, user can iteract with it (click on a link or copy the text). */\n delayOnClose?: boolean;\n /** If `true` it will add a delay on opening the overlay, if the user is not hovering the anchor it will not open the overlay. */\n delayOnOpen?: boolean;\n extraClass?: string;\n children: React.ReactElement;\n};\n\nconst Tooltip = (\n {\n theme = TOOLTIP_THEME.BLACK,\n placement = TOOLTIP_PLACEMENT.BOTTOM,\n delayOnClose = false,\n delayOnOpen = false,\n overlay,\n header,\n extraClass,\n children\n }: Props,\n forwardedRef: RefType<HTMLDivElement>\n) => {\n const checkIsMounted = useIsMounted();\n const internalRef = useRef<HTMLDivElement>(null);\n const containerRef = forwardedRef || internalRef;\n const [isVisible, setIsVisible] = useState(false);\n const isFocusingOnTooltip = useRef(false);\n const isFocusingOnAnchor = useRef(false);\n\n const onAnchorFocusIn = () => {\n isFocusingOnAnchor.current = true;\n };\n const onAnchorFocusOut = () => {\n isFocusingOnAnchor.current = false;\n };\n const openTooltip = () => {\n onAnchorFocusIn();\n if (delayOnOpen) {\n setTimeout(() => {\n checkIsMounted() &&\n isFocusingOnAnchor.current &&\n setIsVisible(true);\n }, TOOLTIP_DELAY_ON_OPEN);\n } else {\n setIsVisible(true);\n }\n };\n\n const closeTooltip = () => setIsVisible(false);\n const closeTooltipWithDelay = () => {\n onAnchorFocusOut();\n if (delayOnClose) {\n setTimeout(() => {\n checkIsMounted() &&\n !isFocusingOnTooltip.current &&\n closeTooltip();\n }, TOOLTIP_DELAY_ON_CLOSE);\n } else {\n closeTooltip();\n }\n };\n const anchorElements = React.Children.count(children);\n\n if ((!overlay && !header) || anchorElements === 0) {\n return children;\n }\n\n const anchorPosition =\n typeof containerRef !== 'function' &&\n containerRef?.current?.getBoundingClientRect();\n\n const Overlay = () =>\n isVisible && anchorPosition ? (\n <TooltipOverlay\n anchorPosition={anchorPosition}\n placement={placement}\n theme={theme}\n header={\n theme === TOOLTIP_THEME.BLACK && !header ? overlay : header\n }\n onClose={closeTooltip}\n onFocusIn={() => {\n isFocusingOnTooltip.current = true;\n }}\n onFocusOut={() => {\n isFocusingOnTooltip.current = false;\n closeTooltip();\n }}\n extraClass={extraClass}\n >\n {theme === TOOLTIP_THEME.BLACK && !header ? null : overlay}\n </TooltipOverlay>\n ) : null;\n\n if (React.Children.count(children) === 1) {\n return (\n <Fragment>\n {React.Children.map(children, (child: React.ReactElement) => {\n return React.cloneElement(child, {\n onMouseEnter: openTooltip,\n onMouseLeave: closeTooltipWithDelay,\n onFocus: openTooltip,\n onBlur: closeTooltipWithDelay,\n ref: containerRef\n });\n })}\n <Overlay />\n </Fragment>\n );\n }\n\n return (\n <div\n className={classnames(styles['tooltip'])}\n onMouseEnter={openTooltip}\n onMouseLeave={closeTooltipWithDelay}\n onFocus={openTooltip}\n onBlur={closeTooltipWithDelay}\n ref={containerRef}\n >\n {children}\n <Overlay />\n </div>\n );\n};\n\nexport default forwardRef<HTMLDivElement, Props>(Tooltip);\n","import React, { Children, forwardRef } from 'react';\nimport classnames from 'classnames';\nimport Inline from '../../core/Inline';\nimport Spinner from '../../feedback/Spinner';\nimport Tooltip from '../../overlay/Tooltip';\nimport styles from './button.scss';\nimport { RefType } from '../../utils/types';\n\ntype ButtonTheme =\n | 'default'\n | 'primary'\n | 'danger'\n | 'upsell'\n | 'marketing'\n | 'hollow'\n | 'link-primary'\n | 'link-danger'\n | 'link-upsell'\n | 'link-toolbar'\n | 'link-contrast'\n | 'link-icon';\n\ntype Props = {\n children: React.ReactNode;\n type?: 'button' | 'submit' | 'reset';\n /** It controls the button theme */\n theme?: ButtonTheme;\n disabled?: boolean;\n onClick?: React.MouseEventHandler;\n id?: string;\n wide?: boolean;\n loading?: boolean;\n /** This will show a black tooltip when the user hover the button */\n title?: string;\n href?: string;\n target?: '_blank' | '_self';\n};\n\nconst Button = (\n {\n children,\n type = 'button',\n theme = 'default',\n disabled = false,\n onClick,\n id,\n wide,\n loading,\n title,\n href,\n target = '_self'\n }: Props,\n ref: RefType<HTMLButtonElement | HTMLAnchorElement>\n) => {\n const contrastSpinner = [\n 'primary',\n 'danger',\n 'upsell',\n 'marketing',\n 'link-contrast'\n ];\n\n const childrenArr = Children.toArray(children);\n const isIconOnly = childrenArr.length === 1 && typeof childrenArr[0] != 'string';\n\n return (\n <Tooltip overlay={title}>\n <ButtonElement\n id={id}\n onClick={onClick}\n className={classnames(styles['button'], {\n [styles['button--default']]: theme === 'default',\n [styles['button--primary']]: theme === 'primary',\n [styles['button--danger']]: theme === 'danger',\n [styles['button--upsell']]: theme === 'upsell',\n [styles['button--marketing']]: theme === 'marketing',\n [styles['button--hollow']]: theme === 'hollow',\n [styles['button--link-primary']]: theme === 'link-primary',\n [styles['button--link-danger']]: theme === 'link-danger',\n [styles['button--link-upsell']]: theme === 'link-upsell',\n [styles['button--link-toolbar']]: theme === 'link-toolbar',\n [styles['button--link-contrast']]:\n theme === 'link-contrast',\n [styles['button--link-icon']]: theme === 'link-icon',\n [styles['button--wide']]: wide,\n [styles['button--loading']]: loading,\n [styles['button--icon-only']]: isIconOnly\n })}\n type={type}\n disabled={disabled || loading}\n href={href}\n ref={ref}\n target={target}\n >\n <Inline space={8} alignItems=\"center\">\n {children}\n </Inline>\n {loading && (\n <div className={styles['button__spinner']}>\n <Spinner\n theme={\n contrastSpinner.includes(theme)\n ? 'contrast'\n : 'disabled'\n }\n />\n </div>\n )}\n </ButtonElement>\n </Tooltip>\n );\n};\n\ntype ButtonElementProps = {\n id?: string;\n onClick?: React.MouseEventHandler;\n className: string;\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n children: React.ReactNode;\n href?: string;\n target: '_blank' | '_self';\n};\nconst ButtonElement = forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n ButtonElementProps\n>(\n (\n {\n id,\n onClick,\n className,\n type,\n disabled,\n href,\n target,\n children,\n ...rest\n }: ButtonElementProps,\n ref: RefType<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n const commonProps = {\n id: id,\n onClick: onClick,\n className,\n disabled\n };\n if (href) {\n return (\n <a\n {...commonProps}\n {...rest}\n href={href}\n target={target}\n aria-disabled={disabled}\n ref={ref as RefType<HTMLAnchorElement>}\n >\n {children}\n </a>\n );\n }\n return (\n <button\n {...commonProps}\n {...rest}\n type={type}\n ref={ref as RefType<HTMLButtonElement>}\n >\n {children}\n </button>\n );\n }\n);\n\nexport default forwardRef<HTMLButtonElement | HTMLAnchorElement, Props>(Button);\n","import React from 'react';\nimport Button from '../../actions/Button';\nimport { useMenuContext } from './MenuContext';\n\ntype ButtonTheme =\n | 'default'\n | 'primary'\n | 'danger'\n | 'upsell'\n | 'marketing'\n | 'hollow'\n | 'link-primary'\n | 'link-danger'\n | 'link-upsell'\n | 'link-toolbar'\n | 'link-contrast'\n | 'link-icon';\n\ntype Props = {\n children: React.ReactNode;\n theme?: ButtonTheme;\n};\n\n// @ts-ignore: This will be implmented soon\nconst MenuButton: React.FC<Props> = ({ theme = 'link-icon', children }) => {\n const { onToggleMenu, triggerRef } = useMenuContext();\n\n return (\n <Button\n onClick={(e) => {\n onToggleMenu();\n e.stopPropagation();\n }}\n theme={theme}\n ref={triggerRef}\n >\n {children}\n </Button>\n );\n};\n\nexport default MenuButton;\n","import React from 'react';\n\ntype Event = MouseEvent | TouchEvent;\n\n// Determine if click was inside of provided element\nfunction isClickInside<T = HTMLElement>(\n ref: { current: T | null },\n event: Event\n): boolean {\n return (\n !ref.current ||\n // @ts-ignore: `.contains` should exist on T type\n (event.target instanceof Node && ref.current.contains(event.target))\n );\n}\n\n// Make sure to wrap your callback function in useCallback before passing so that it doesn't rerender\nexport default function useOnClickOutside<T = HTMLElement>(\n ref: { current: T | null },\n cb: (event?: Event) => void\n) {\n React.useEffect(() => {\n const listener = (event: Event) => {\n if (isClickInside<T>(ref, event)) {\n return;\n }\n\n cb(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, cb]);\n}\n","// @flow\n\nimport React, { useRef, useEffect, useCallback, useState } from 'react';\nimport classnames from 'classnames';\nimport useOnClickOutside from '../hooks/useOnClickOutside';\nimport { useMenuContext } from './MenuContext';\nimport styles from './menu.scss';\nimport Portal from '../../core/Portal/Portal';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MenuList: React.FC<Props> = ({ children }) => {\n const paneElement = useRef<HTMLUListElement>(null);\n const { isOpen, onToggleMenu, triggerRef } = useMenuContext();\n const [position, setPosition] = useState({});\n\n const clickOutisideCallback = useCallback(() => {\n if (isOpen) {\n onToggleMenu();\n }\n }, [isOpen]);\n\n useOnClickOutside(paneElement, clickOutisideCallback);\n\n useEffect(() => {\n const triggerPosition = triggerRef.current.getBoundingClientRect();\n const panePosition = paneElement.current?.getBoundingClientRect();\n const paneWidth = panePosition?.width || 160;\n\n const pos = {\n left: triggerPosition.left + triggerPosition.width - paneWidth,\n top:\n triggerPosition.top +\n window.scrollY +\n triggerPosition.height +\n 3\n };\n setPosition(pos);\n }, [isOpen, triggerRef]);\n\n return (\n <Portal>\n <ul\n className={classnames(styles['list'], {\n [styles['list--active']]: isOpen\n })}\n role=\"menu\"\n style={position}\n ref={paneElement}\n >\n {children}\n </ul>\n </Portal>\n );\n};\n\nexport default MenuList;\n","//@flow\nimport React from 'react';\nimport classnames from 'classnames';\nimport { useResourceTableContext } from '../ResourceTable/ResourceTableContext';\nimport type { Action } from '../ResourceTable/types';\nimport Menu from '../../overlay/Menu/Menu';\nimport MenuItem from '../../overlay/Menu/MenuItem';\nimport MenuButton from '../../overlay/Menu/MenuButton';\nimport MenuList from '../../overlay/Menu/MenuList';\nimport { IconMore } from '../../icons';\nimport styles from './resource-table-row.scss';\n\ntype Props = {\n children: React.ReactNode;\n onClick?: () => void;\n isSelected?: boolean;\n actions?: Action[];\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTableRow: React.FC<Props> = ({\n children,\n onClick,\n isSelected = false,\n actions = []\n}) => {\n const { columnSizes, showActionMenu } = useResourceTableContext();\n const styleNames = classnames(styles['item'], {\n [styles['clickable']]: onClick,\n [styles['selected']]: isSelected\n });\n const renderColumn = (columnElement: React.ReactNode, index: number) => {\n return (\n <div\n className={styles['item-column']}\n style={{\n flex: (columnSizes && columnSizes[index]) || 1\n }}\n key={index}\n data-testid=\"resource-table-column\"\n >\n {columnElement}\n </div>\n );\n };\n const columnElements = React.Children.toArray(children);\n return (\n <div\n className={styleNames}\n onClick={onClick ? onClick : undefined}\n onKeyPress={onClick ? onClick : undefined}\n data-testid=\"resource-table-row\"\n role=\"row\"\n tabIndex={0}\n >\n {columnElements.map(renderColumn)}\n {showActionMenu && (\n <div\n className={classnames(\n styles['item-column'],\n styles['actions']\n )}\n data-testid=\"resource-table-dropdown-menu\"\n >\n {actions.length > 0 && (\n <Menu>\n <MenuButton>\n <IconMore />\n </MenuButton>\n <MenuList>\n {actions.map(\n (action: Action, index: number) => (\n <MenuItem\n onClick={action.onAction}\n key={index}\n >\n {action.label}\n </MenuItem>\n )\n )}\n </MenuList>\n </Menu>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default ResourceTableRow;\n","//@flow\nimport React from 'react';\nimport type { Column, Sort, SortDirection } from './types';\nimport classnames from 'classnames';\nimport styles from './resource-table.scss';\nimport { IconChevronUp, IconChevronDown } from '../../icons';\n\ntype SortOrder = {\n ASC: 'asc';\n DESC: 'desc';\n};\nconst SORT_ORDER: SortOrder = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\ntype Props = {\n columns: Column[];\n onSort?: (sort: Sort) => void;\n showActionMenu?: boolean;\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTableHeader: React.FC<Props> = ({\n columns,\n onSort,\n showActionMenu\n}) => {\n //Handling the case where the columns is used only to define the size\n const haveLabels = columns.find(\n (column) => column.label && column.label !== ''\n );\n if (!haveLabels) {\n return null;\n }\n\n const handleSort = (column: Column) => {\n const nextDirection = getNextSort(column);\n if (onSort) {\n onSort({\n columnName: column.name,\n direction: nextDirection\n });\n }\n };\n return (\n <div className={styles['header']}>\n {columns.map((column: Column) => {\n const isSortable = column.isSortable;\n const sortDir = column.currentSort;\n return (\n <div\n className={classnames({\n [styles['header-item']]: true,\n [styles['header-item--sortable']]: isSortable\n })}\n style={{\n flex: column.size || 1\n }}\n key={column.name}\n onClick={() => isSortable && handleSort(column)}\n onKeyPress={() => isSortable && handleSort(column)}\n role=\"columnheader\"\n tabIndex={0}\n >\n {column.label}{' '}\n {isSortable && (\n <span className={styles['header-sort-icon']}>\n <IconSort sortDirection={sortDir} />\n </span>\n )}\n </div>\n );\n })}\n {showActionMenu && (\n <div\n className={classnames(\n styles['header-item'],\n styles['header-item--action']\n )}\n />\n )}\n </div>\n );\n};\n\nconst getNextSort = (column: Column): SortDirection => {\n switch (column.currentSort) {\n case SORT_ORDER.ASC:\n return null;\n case SORT_ORDER.DESC:\n return SORT_ORDER.ASC;\n default:\n return SORT_ORDER.DESC;\n }\n};\n\ntype IconSortProps = {\n sortDirection?: SortDirection;\n};\nconst IconSort = ({ sortDirection }: IconSortProps) => {\n const sortDir = sortDirection || null;\n return (\n <div style={{ display: 'inline-flex', flexDirection: 'column' }}>\n {sortDir !== 'desc' && <IconChevronUp size=\"small\" />}\n {sortDir !== 'asc' && (\n <span style={{ marginTop: '-4px' }}>\n <IconChevronDown size=\"small\" />\n </span>\n )}\n </div>\n );\n};\n\nexport default ResourceTableHeader;\n","// This is basicaly a copy from `Util/localization.js` so we can remove the dependency from webapp until we find a better way of dealing with translations\nexport const getLocalizedString = (key: string): string => {\n // Just a hacky way to see if we are in the webapp and have the Shifts var defined\n // @ts-ignore: TODO: Fix it\n if (!window.Shifts) {\n return getLocalTranslation(key);\n }\n return getWebAppTranslation(key);\n};\n\nconst getWebAppTranslation = (key: string): string => {\n // @ts-ignore: TODO: Fix it\n declare var Shifts: any;\n // If the Shifts is not present, return the key capitalized, for example, `default.next` => `Next`\n if (!Shifts || Shifts?.Lang?.cache === undefined) {\n return getLocalTranslation(key);\n }\n\n var [moduleName, id] = key.split('.');\n if (\n Shifts.Lang.cache === undefined ||\n Shifts.Lang.cache[moduleName] === undefined ||\n Shifts.Lang.cache[moduleName][id] === undefined\n ) {\n return key;\n }\n return Shifts.Lang.cache[moduleName][id];\n};\n\n// If the Shifts is not present, return the key capitalized, for example, `default.next` => `Next`\nconst getLocalTranslation = (key: string): string => {\n const translationParts = key.split('.');\n if (translationParts.length > 1) {\n const literal = translationParts[1];\n return literal.charAt(0).toUpperCase() + literal.slice(1).toLowerCase();\n }\n return key;\n};\n","import React from 'react';\nimport Button from '../Button';\nimport { IconArrowLeft, IconArrowRight } from '../../icons';\nimport styles from './pagination-controls.scss';\nimport { getLocalizedString as __ } from '../../utils/i18n';\n\ntype Props = {\n hasPrevious?: boolean;\n hasNext?: boolean;\n onPreviousClick: () => void;\n onNextClick: () => void;\n};\n\n/**\n * `PaginationControls` are two buttons side by side, currently most used within ResourceTable.\n */\nconst PaginationControls: React.FC<Props> = ({\n hasPrevious = true,\n hasNext = true,\n onPreviousClick,\n onNextClick\n}) => {\n return (\n <div className={styles['pagination-controls']}>\n <Button\n disabled={!hasPrevious}\n onClick={onPreviousClick}\n title={__('default.PREVIOUS')}\n >\n <IconArrowLeft size=\"small\" />\n </Button>\n <Button\n disabled={!hasNext}\n onClick={onNextClick}\n title={__('default.next')}\n >\n <IconArrowRight size=\"small\" />\n </Button>\n </div>\n );\n};\n\nexport default PaginationControls;\n","//@flow\nimport React from 'react';\nimport ResourceTableRow from '../ResourceTableRow';\nimport ResourceTableHeader from './ResourceTableHeader';\nimport PaginationControls from '../../actions/PaginationControls';\nimport Spinner from '../../feedback/Spinner';\nimport Context from './ResourceTableContext';\nimport type { Column, CustomComponent, Item, Sort } from './types';\nimport styles from './resource-table.scss';\n\ntype Props<T> = {\n /** Each element represents a row and each key of the object represents a column */\n items: Item<T>[];\n /** For each column element, the `name` property should match the key on `items` */\n columns?: Column[];\n /** A custom component for customizing how the each item is rendered. It pass as props: `item`, `index`, `columnSizes` and `columns` */\n itemComponent?: React.ComponentType<CustomComponent<T>>;\n maxHeight?: number;\n /** Used for pagination */\n hasPrevious?: boolean;\n /** Used for pagination */\n hasNext?: boolean;\n /** Used for pagination */\n onPreviousClick?: () => void;\n /** Used for pagination */\n onNextClick?: () => void;\n isLoading?: boolean;\n /** It is fired when a sorted column is clicked to be sorted */\n onSort?: (sort: Sort) => void;\n showActionMenu?: boolean;\n};\n\n/**\n * @deprecated On v2.0 we introduced the `DataTable` that should be used for tabular data. This component will be removed on v3.0.\n */\nconst ResourceTable = <T extends unknown>({\n items,\n columns,\n itemComponent,\n maxHeight,\n hasPrevious = true,\n hasNext = true,\n onPreviousClick,\n onNextClick,\n onSort,\n isLoading = false,\n showActionMenu = false\n}: Props<T>) => {\n const RowItem = itemComponent || DefaultItemComponent;\n let conditionalStyles = {};\n if (maxHeight !== null) {\n conditionalStyles = {\n ...conditionalStyles,\n maxHeight,\n overflowY: 'auto'\n };\n }\n\n const columnSizes = columns && columns.map((column) => column.size || 1);\n\n return (\n <Context.Provider value={{ columnSizes, showActionMenu }}>\n {columns && (\n <ResourceTableHeader\n columns={columns}\n onSort={onSort}\n showActionMenu={showActionMenu}\n />\n )}\n <div\n className={styles['body']}\n style={conditionalStyles}\n role=\"table\"\n >\n {isLoading && <Spinner block />}\n {!isLoading &&\n items.map((item, index) => (\n <RowItem\n item={item}\n columns={columns}\n key={index}\n index={index}\n />\n ))}\n </div>\n {onPreviousClick && onNextClick && (hasPrevious || hasNext) && (\n <div\n className={styles['footer']}\n data-testid=\"pagination-controls\"\n >\n <PaginationControls\n hasPrevious={hasPrevious && !isLoading}\n hasNext={hasNext && !isLoading}\n onPreviousClick={onPreviousClick}\n onNextClick={onNextClick}\n />\n </div>\n )}\n </Context.Provider>\n );\n};\n\nconst DefaultItemComponent = ({ columns, item }: CustomComponent<any>) => {\n const headingKeys = columns\n ? columns.map((column) => column.name)\n : Object.keys(item);\n\n const columnsToShow = headingKeys.filter(\n (key: string) => key !== 'actions'\n );\n\n return (\n <ResourceTableRow actions={item.actions}>\n {columnsToShow.map((headingKey) => (\n <div key={headingKey}>{item[headingKey] || ''}</div>\n ))}\n </ResourceTableRow>\n );\n};\n\nexport default ResourceTable;\n","import React, { createContext, useContext } from 'react';\nimport { FormikType } from './types';\n\nexport type FormContextType = {\n formik?: FormikType;\n};\n\nconst Context: React.Context<FormContextType> = createContext<FormContextType>(\n {}\n);\n\nexport const useFormContext = (): FormContextType => {\n const context = useContext(Context);\n\n return context || {};\n};\n\nexport default Context;\n","import React from 'react';\nimport classnames from 'classnames';\nimport Stack from '../../core/Stack';\nimport Context from './FormContext';\nimport { FormikType } from './types';\nimport styles from './form.scss';\n\ntype Props = {\n children: React.ReactNode;\n onSubmit?: (e: Object) => void;\n /** By default forms are `500px`. If you want the form to use all the space you can turn this ON. */\n wide?: boolean;\n /** If set it will controll the state of the form using `Formik` */\n formik?: FormikType;\n stackContent?: boolean;\n};\nconst Form: React.FC<Props> = ({\n children,\n onSubmit,\n wide = false,\n formik,\n stackContent = true\n}) => {\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n onSubmit && onSubmit(e.currentTarget.elements);\n };\n return (\n <Context.Provider value={{ formik }}>\n <form\n onSubmit={onSubmit ? handleSubmit : formik?.handleSubmit}\n className={classnames({\n [styles['form--standard-size']]: !wide\n })}\n data-testid=\"form\"\n >\n {stackContent ? <Stack>{children}</Stack> : children}\n </form>\n </Context.Provider>\n );\n};\n\nexport default Form;\n","// @flow strict\nimport React from 'react';\nimport Inline from '../../core/Inline';\n\ntype Size25Percent = '25%';\nexport const SIZE_25_PERCENT: Size25Percent = '25%';\n\ntype Size33Percent = '33.333%';\nexport const SIZE_33_PERCENT: Size33Percent = '33.333%';\n\ntype Size50Percent = '50%';\nexport const SIZE_50_PERCENT: Size50Percent = '50%';\n\ntype Size66Percent = '66.666%';\nexport const SIZE_66_PERCENT: Size66Percent = '66.666%';\n\ntype Size75Percent = '75%';\nexport const SIZE_75_PERCENT: Size75Percent = '75%';\n\ntype Size =\n | Size25Percent\n | Size33Percent\n | Size50Percent\n | Size66Percent\n | Size75Percent;\n\ntype Props = {\n children: React.ReactNode;\n columns?: number;\n sizes?: Size[];\n};\n/** Easily add form fields side by side with equal size. */\nconst FormRow: React.FC<Props> = ({ children, columns, sizes }) => {\n const items = React.Children.toArray(children).filter(Boolean);\n const additionalColumns = [];\n if (columns !== undefined) {\n if (columns > items.length) {\n additionalColumns.push(\n ...new Array(columns - items.length).map(() => '')\n );\n }\n }\n return (\n <Inline\n flex={[...items, ...additionalColumns].map(\n (_, index) => sizes?.[index] || 1\n )}\n space={20}\n >\n {children}\n {additionalColumns.map((_, index) => (\n <span key={index} data-testid=\"empty-cell\" />\n ))}\n </Inline>\n );\n};\n\nexport default FormRow;\n","import React from 'react';\nimport styles from './label.scss';\n\ntype Props = {\n htmlFor: string;\n children: React.ReactNode;\n};\nconst Label: React.FC<Props> = ({ htmlFor, children }) => {\n return (\n <label htmlFor={htmlFor} className={styles['label']}>\n {children}\n </label>\n );\n};\n\nexport default Label;\n","import React from 'react';\nimport styles from './caption.scss';\n\ntype Props = {\n fieldId?: string;\n children: React.ReactNode;\n};\nconst Caption: React.FC<Props> = ({ fieldId, children }) => {\n return (\n <div\n id={fieldId && `${fieldId}-describer`}\n className={styles['caption']}\n >\n {children}\n </div>\n );\n};\n\nexport default Caption;\n","/*\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nTHIS IS A JAVASCRIPT CONVERSION OF _colors.scss\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n*/\n\nexport const WHITE: '#ffffff' = '#ffffff';\nexport const BLACK: '#000000' = '#000000';\n\n// TANGERINE (oranges)\nexport const TANGERINE100: '#fef1ed' = '#fef1ed';\nexport const TANGERINE200: '#fdd5c8' = '#fdd5c8';\nexport const TANGERINE300: '#fcab91' = '#fcab91';\nexport const TANGERINE400: '#fb7448' = '#fb7448'; // Base\nexport const TANGERINE500: '#e16840' = '#e16840';\nexport const TANGERINE600: '#96452b' = '#96452b';\nexport const TANGERINE700: '#4a2215' = '#4a2215';\n\n// EGGPLANT (purples)\nexport const EGGPLANT100: '#f0f3fb' = '#f0f3fb';\nexport const EGGPLANT200: '#d3dbf4' = '#d3dbf4';\nexport const EGGPLANT300: '#a7b7ea' = '#a7b7ea';\nexport const EGGPLANT400: '#6d87dd' = '#6d87dd'; // Base\nexport const EGGPLANT500: '#6179c6' = '#6179c6';\nexport const EGGPLANT600: '#415184' = '#415184';\nexport const EGGPLANT700: '#32295c' = '#32295c';\n\n// MINT (teals)\nexport const MINT100: '#ecfaf8' = '#ecfaf8';\nexport const MINT200: '#c6f1eb' = '#c6f1eb';\nexport const MINT300: '#8de4d7' = '#8de4d7';\nexport const MINT400: '#3abda9' = '#3abda9'; // Base\nexport const MINT500: '#35ac9a' = '#35ac9a';\nexport const MINT600: '#277e71' = '#277e71';\nexport const MINT700: '#133e38' = '#133e38';\n\n// RADISH (reds)\nexport const RADISH100: '#fcf0f0' = '#fcf0f0';\nexport const RADISH200: '#f7d1d1' = '#f7d1d1';\nexport const RADISH300: '#f0a3a3' = '#f0a3a3';\nexport const RADISH400: '#e76767' = '#e76767'; // Base\nexport const RADISH500: '#cf5c5c' = '#cf5c5c';\nexport const RADISH600: '#8a3d3d' = '#8a3d3d';\nexport const RADISH700: '#441e1e' = '#441e1e';\n\n// BLUEBERRY (blues)\nexport const BLUEBERRY100: '#f6fdff' = '#f6fdff';\nexport const BLUEBERRY200: '#ceecf5' = '#ceecf5';\nexport const BLUEBERRY300: '#9cd9eb' = '#9cd9eb';\nexport const BLUEBERRY400: '#5bc0de' = '#5bc0de'; // Base\nexport const BLUEBERRY500: '#51acc7' = '#51acc7';\nexport const BLUEBERRY600: '#367385' = '#367385';\nexport const BLUEBERRY700: '#1b3942' = '#1b3942';\n\n//BANANA (yellows)\nexport const BANANA100: '#fff9ed' = '#fff9ed';\nexport const BANANA200: '#ffeec9' = '#ffeec9';\nexport const BANANA300: '#ffdd92' = '#ffdd92';\nexport const BANANA400: '#ffc74a' = '#ffc74a'; // Base\nexport const BANANA500: '#e5b242' = '#e5b242';\nexport const BANANA600: '#99772c' = '#99772c';\nexport const BANANA700: '#4c3b16' = '#4c3b16';\n\n// GREYS\nexport const GREY100: '#f8f8f8' = '#f8f8f8';\nexport const GREY200: '#e0e0e0' = '#e0e0e0';\nexport const GREY300: '#c1c1c1' = '#c1c1c1';\nexport const GREY400: '#929292' = '#929292';\nexport const GREY500: '#555555' = '#555555'; // Body Text (Base)\nexport const GREY600: '#464646' = '#464646';\n\nexport const COLORS = {\n TANGERINE: 'tangerine',\n EGGPLANT: 'eggplant',\n MINT: 'mint',\n RADISH: 'radish',\n BLUEBERRY: 'blueberry',\n BANANA: 'banana'\n};\n\nexport type Color =\n | typeof WHITE\n | typeof BLACK\n | typeof TANGERINE100\n | typeof TANGERINE200\n | typeof TANGERINE300\n | typeof TANGERINE400\n | typeof TANGERINE500\n | typeof TANGERINE600\n | typeof TANGERINE700\n | typeof EGGPLANT100\n | typeof EGGPLANT200\n | typeof EGGPLANT300\n | typeof EGGPLANT400\n | typeof EGGPLANT500\n | typeof EGGPLANT600\n | typeof EGGPLANT700\n | typeof MINT100\n | typeof MINT200\n | typeof MINT300\n | typeof MINT400\n | typeof MINT500\n | typeof MINT600\n | typeof MINT700\n | typeof RADISH100\n | typeof RADISH200\n | typeof RADISH300\n | typeof RADISH400\n | typeof RADISH500\n | typeof RADISH600\n | typeof RADISH700\n | typeof BLUEBERRY100\n | typeof BLUEBERRY200\n | typeof BLUEBERRY300\n | typeof BLUEBERRY400\n | typeof BLUEBERRY500\n | typeof BLUEBERRY600\n | typeof BLUEBERRY700\n | typeof BANANA100\n | typeof BANANA200\n | typeof BANANA300\n | typeof BANANA400\n | typeof BANANA500\n | typeof BANANA600\n | typeof BANANA700\n | typeof GREY100\n | typeof GREY200\n | typeof GREY300\n | typeof GREY400\n | typeof GREY500\n | typeof GREY600;\n","import React from 'react';\nimport Inline from '../../core/Inline';\nimport { IconDelete } from '../../icons';\nimport { RADISH400 } from '../../foundation/colors';\nimport styles from './error-message.scss';\n\ntype Props = {\n fieldId?: string;\n children: React.ReactNode;\n};\nconst ErrorMessage: React.FC<Props> = ({ fieldId, children }) => {\n return (\n <div\n id={fieldId && `${fieldId}-error-message`}\n className={styles['error-message']}\n >\n <Inline space={8} alignItems=\"center\">\n <IconDelete color={RADISH400} size=\"medium\" />\n {children}\n </Inline>\n </div>\n );\n};\n\nexport default ErrorMessage;\n","// @flow\nimport React from 'react';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport ErrorMessage from '../ErrorMessage';\nimport Stack from '../../core/Stack';\n\ntype Props = {\n id: string;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: React.ReactNode;\n children: React.ReactNode;\n};\nconst Field: React.FC<Props> = ({ id, label, caption, error, children }) => {\n return (\n <Stack space={8} flexItems>\n {label && <Label htmlFor={id}>{label}</Label>}\n {children}\n {caption && <Caption fieldId={id}>{caption}</Caption>}\n {error && <ErrorMessage fieldId={id}>{error}</ErrorMessage>}\n </Stack>\n );\n};\n\nexport default Field;\n","import { useMemo } from 'react';\n\ntype Props = {\n name: string;\n id?: string;\n};\nexport const useFieldId = ({ name, id: inputId }: Props): string => {\n //Using useMemo so it does not generate a different id every time the component rerenders\n const id = useMemo(\n () => (inputId ? inputId : `${name}-${Math.random()}`),\n [inputId, name]\n );\n return id;\n};\n","import { FormikType } from '../forms';\n\nexport const getFormikState = (name: string, formik?: FormikType) => {\n if (formik === undefined) {\n return null;\n }\n if (Object.keys(formik.values).includes(name)) {\n return {\n error: formik.touched[name] ? formik.errors[name] : undefined,\n value: formik.values[name]\n };\n }\n\n const formikArray = getFormikArrayPath(name);\n if (formikArray) {\n const { arrayName, itemIndex, fieldName } = formikArray;\n return {\n error: formik.touched?.[arrayName]?.[itemIndex]?.[fieldName]\n ? formik.errors?.[arrayName]?.[itemIndex]?.[fieldName]\n : undefined,\n value: formik.values?.[arrayName]?.[itemIndex]?.[fieldName]\n };\n }\n\n return null;\n};\n\nconst getFormikArrayPath = (name: string) => {\n if (!name.includes('[')) {\n return false;\n }\n const [arrayName, missingSplit] = name.split('[');\n const [itemIndex, fieldName] = missingSplit.split('].');\n\n return {\n arrayName,\n itemIndex,\n fieldName\n };\n};\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype InputElement = HTMLInputElement | HTMLTextAreaElement;\n\ntype FieldControls = {\n id: string;\n error?: string;\n value?: string;\n onChange: (e: React.ChangeEvent<InputElement>) => void;\n onBlur: (e: React.ChangeEvent<InputElement>) => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n error?: string;\n};\nexport const useFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (e: React.ChangeEvent<InputElement>) =>\n onChange && onChange(e.target.value),\n onBlur: (e: React.ChangeEvent<InputElement>) =>\n onBlur && onBlur(e.target.value)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: onChange\n ? controllers.onChange\n : (e: React.ChangeEvent<InputElement>) =>\n formik.setFieldValue(name, e.target.value),\n onBlur: onBlur\n ? controllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return controllers;\n};\n","import { useEffect, useRef } from 'react';\n\ntype UseGrowTextAreaRef = {\n ref: { current: null | HTMLTextAreaElement };\n updateHeight: () => void;\n};\n\nexport const useGrowTextAreaRef = (\n minHeight: number,\n maxHeight: number,\n autoGrow: boolean,\n forwardedRef?: { current: null | HTMLTextAreaElement }\n): UseGrowTextAreaRef => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const ref = forwardedRef ?? textareaRef;\n\n const updateHeight = () => {\n if (ref.current && autoGrow) {\n ref.current.style.height = `${minHeight}px`;\n ref.current.style.height = ref.current.scrollHeight + 'px';\n }\n };\n\n useEffect(() => {\n if (ref.current) {\n ref.current.style.minHeight = `${minHeight}px`;\n ref.current.style.maxHeight = `${maxHeight}px`;\n }\n }, [maxHeight, minHeight, minHeight, ref]);\n\n return {\n ref,\n updateHeight\n };\n};\n","/* We need to disable these as the onClick on that div is just there to trigger the focus on the textare. It whould not have any keyboad event. */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n\nimport React, { useState, useRef } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport styles from './text-area-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { useGrowTextAreaRef } from '../hooks/useGrowTextAreaRef';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input. */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: string;\n /** When `true` the field will grow as more lines is added until it hits the `maxHeight` defined. */\n autoGrow?: boolean;\n /** It defines the minimum size the input can grow. */\n minHeight?: number;\n /** It defines the maximum size the input can grow. */\n maxHeight?: number;\n /** A JSX containing the toolbar elements. You can use `Inline` to place the buttons properly on the toolbar space. */\n toolbar?: React.ReactNode;\n};\nconst TextAreaField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n autoGrow = false,\n minHeight = 40,\n maxHeight = 320,\n toolbar\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [hasFocus, setHasFocus] = useState(false);\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n const { ref: textAreaRef, updateHeight } = useGrowTextAreaRef(\n minHeight,\n maxHeight,\n autoGrow\n );\n\n return (\n <Field {...fieldProps}>\n <div\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError,\n [styles['text-field--disabled']]: disabled,\n [styles['text-field--focus']]: hasFocus\n })}\n ref={containerRef}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === containerRef?.current) {\n textAreaRef?.current?.focus();\n }\n }}\n >\n <textarea\n name={name}\n id={controllers.id}\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\n controllers.onChange(e);\n updateHeight();\n }}\n onBlur={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\n controllers.onBlur(e);\n setHasFocus(false);\n }}\n onFocus={() => setHasFocus(true)}\n ref={textAreaRef}\n />\n {toolbar && (\n <div\n className={styles['text-field__toolbar']}\n id={`${controllers.id}-toolbar`}\n ref={toolbarRef}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === toolbarRef?.current) {\n textAreaRef?.current?.focus();\n }\n }}\n >\n {toolbar}\n </div>\n )}\n </div>\n </Field>\n );\n};\n\nexport default TextAreaField;\n","// @flow\nimport React, { useRef, useLayoutEffect } from 'react';\nimport classnames from 'classnames';\nimport styles from './affix-container.scss';\n\ntype Props = {\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n children: React.ReactElement;\n};\nconst AffixContainer: React.FC<Props> = ({ prefix, suffix, children }) => {\n const container = useRef<HTMLDivElement>(null);\n const prefixElement = useRef<HTMLDivElement>(null);\n const suffixElement = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n if (container.current) {\n // `[class$=control] > div` is to make it work on SelectField as well\n const input: HTMLElement | null = container.current.querySelector(\n 'input, [class$=control] > div'\n );\n if (input) {\n // This is to have flexible padding according to the affix size\n if (prefix && prefixElement.current) {\n const prefixWidth = prefixElement?.current?.offsetWidth;\n input.style.paddingLeft = prefixWidth + 'px';\n }\n if (suffix && suffixElement.current) {\n const suffixWidth = suffixElement.current.offsetWidth;\n input.style.paddingRight = suffixWidth + 'px';\n }\n }\n }\n }, [prefix, suffix]);\n\n const hasPrefix = !!prefix;\n const hasSuffix = !!suffix;\n\n if (!hasPrefix && !hasSuffix) {\n return children;\n }\n\n const classes = classnames(styles['affix-container'], {\n [styles['affix-container--prefixed']]: hasPrefix,\n [styles['affix-container--suffixed']]: hasSuffix\n });\n\n return (\n <div className={classes} ref={container} data-testid=\"affix-container\">\n {hasPrefix && (\n <div className={styles['prefix']} ref={prefixElement}>\n {prefix}\n </div>\n )}\n {children}\n {hasSuffix && (\n <div className={styles['suffix']} ref={suffixElement}>\n {suffix}\n </div>\n )}\n </div>\n );\n};\n\nexport default AffixContainer;\n","import React, { forwardRef } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport styles from './text-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { RefType } from '../../utils/types';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Use a prefix for things like currency symbols (“$”, “¥”, “£”) or icons. */\n prefix?: React.ReactNode;\n /** Use suffix for things like units of measure (“in”, “cm”, ”hours”) or icons. */\n suffix?: React.ReactNode;\n defaultValue?: string;\n autoFocus?: boolean;\n};\nconst TextField = (\n {\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n prefix,\n suffix,\n defaultValue,\n autoFocus\n }: Props,\n ref: RefType<HTMLInputElement>\n) => {\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={prefix} suffix={suffix}>\n <input\n name={name}\n id={controllers.id}\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError\n })}\n type=\"text\"\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n size={1}\n ref={ref}\n autoFocus={autoFocus}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default forwardRef<HTMLInputElement, Props>(TextField);\n","// @flow\nimport React from 'react';\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n checked?: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n checked?: boolean;\n onChange?: (e: boolean) => void;\n onBlur?: (e: boolean) => void;\n error?: string;\n};\nexport const useCheckBoxFieldControllers = ({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers: FieldControls = {\n id,\n error,\n checked,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) =>\n onChange && onChange(e.target.checked),\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) =>\n onBlur && onBlur(e.target.checked)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n checked:\n checked !== undefined ? controllers.checked : formikState.value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldValue(name, e.target.checked);\n onChange && onChange(e.target.checked);\n },\n onBlur: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldTouched(name);\n onBlur && onBlur(e.target.checked);\n }\n };\n }\n return controllers;\n};\n","// @flow\nimport React from 'react';\nimport { useCheckBoxFieldControllers } from '../hooks/useCheckBoxFieldControllers';\nimport Stack from '../../core/Stack';\nimport Inline from '../../core/Inline';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport ErrorMessage from '../ErrorMessage';\nimport styles from './check-box-field.scss';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n checked?: boolean;\n onChange?: (e: boolean) => void;\n onBlur?: (e: boolean) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n disabled?: boolean;\n};\n/** CheckboxField form element. */\nconst CheckboxField: React.FC<Props> = ({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n label,\n caption,\n error,\n disabled\n}) => {\n const controllers = useCheckBoxFieldControllers({\n name,\n id: inputId,\n checked,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n\n return (\n <Stack space={8}>\n <Inline space={8} alignItems=\"center\">\n <div className={styles['check-box-field']}>\n <input\n name={name}\n id={controllers.id}\n type=\"checkbox\"\n data-testid={`check-box-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n checked={controllers.checked}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n />\n <span className={styles['check-box-field__custom-input']} />\n </div>\n {label && <Label htmlFor={controllers.id}>{label}</Label>}\n </Inline>\n {caption && (\n <div className={styles['check-box-field__caption']}>\n <Caption fieldId={controllers.id}>{caption}</Caption>\n </div>\n )}\n {controllers.error && (\n <ErrorMessage fieldId={controllers.id}>\n {controllers.error}\n </ErrorMessage>\n )}\n </Stack>\n );\n};\n\nexport default CheckboxField;\n","// @flow\nimport React from 'react';\nimport { useFormContext } from '../Form/FormContext';\nimport { getFormikState } from '../../utils/formik';\n\ntype RadioValue = string | number;\ntype FieldControls = {\n error?: string;\n value?: RadioValue;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype Props = {\n name: string;\n value?: RadioValue;\n onChange?: (value: RadioValue) => void;\n error?: string;\n};\nexport const useRadioGroupFieldControllers = ({\n name,\n value,\n onChange,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n\n let controllers: FieldControls = {\n error,\n value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) =>\n onChange && onChange(e.target.value)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n formik.setFieldValue(name, e.target.checked);\n onChange && onChange(e.target.value);\n }\n };\n }\n return controllers;\n};\n","import React, { createContext, useContext } from 'react';\n\nexport type RadioGroupFieldContextType = {\n name: string;\n value?: string | number;\n disabled: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupFieldContext: React.Context<RadioGroupFieldContextType | null> =\n createContext<RadioGroupFieldContextType | null>(null);\n\nexport const useRadioGroupFieldContext = (): RadioGroupFieldContextType => {\n const context = useContext(RadioGroupFieldContext);\n\n if (!context) {\n throw new Error('You need to have a `RadioGroupFieldContext` wrapper.');\n }\n\n return context;\n};\n\nexport default RadioGroupFieldContext;\n","// @flow\nimport React, { useCallback } from 'react';\nimport Stack from '../../core/Stack';\nimport { useRadioGroupFieldControllers } from '../hooks/useRadioGroupFieldControllers';\nimport RadioGroupFieldContext from './RadioGroupFieldContext';\nimport styles from './radio-group-field.scss';\nimport ErrorMessage from '../ErrorMessage';\nimport FormRow from '../FormRow';\n\ntype Props = {\n name: string;\n value?: string | number;\n onChange?: (e: string | number) => void;\n label?: React.ReactNode;\n error?: string;\n /** When true it will place the options on the same line up to 4 options per line. */\n inline?: boolean;\n disabled?: boolean;\n children: React.ReactNode;\n};\n/** RadioGroupField form element. */\nconst RadioGroupField: React.FC<Props> = ({\n name,\n value,\n onChange,\n label,\n error,\n inline = false,\n disabled = false,\n children\n}) => {\n const controllers = useRadioGroupFieldControllers({\n name,\n value,\n onChange,\n error\n });\n\n const onChangeHandler = useCallback(\n (e) => {\n controllers.onChange && controllers.onChange(e);\n },\n [name]\n );\n\n const contextValue = {\n name,\n disabled,\n value: controllers.value,\n onChange: onChangeHandler\n };\n\n return (\n <RadioGroupFieldContext.Provider value={contextValue}>\n <Stack space={12}>\n {label && (\n <div className={styles['radio-group-field__label']}>\n {label}\n </div>\n )}\n <Stack space={8}>\n {inline ? (\n <InlineOptions>{children}</InlineOptions>\n ) : (\n <Stack space={12}>{children}</Stack>\n )}\n {controllers.error && (\n <ErrorMessage>{controllers.error}</ErrorMessage>\n )}\n </Stack>\n </Stack>\n </RadioGroupFieldContext.Provider>\n );\n};\n\ntype InlineProps = {\n children: React.ReactNode;\n};\nconst InlineOptions: React.FC<InlineProps> = ({ children }) => {\n const MAX_OPTIONS_PER_ROW = 4;\n const numberOfElements = React.Children.count(children);\n if (numberOfElements > MAX_OPTIONS_PER_ROW) {\n const childrenArray = React.Children.toArray(children);\n const rows = [];\n\n for (let i = 0; i < childrenArray.length; i += MAX_OPTIONS_PER_ROW) {\n rows.push(childrenArray.slice(i, i + MAX_OPTIONS_PER_ROW));\n }\n return (\n <Stack space={12}>\n {rows.map((row, rowIndex) => (\n <FormRow key={rowIndex} columns={MAX_OPTIONS_PER_ROW}>\n {row}\n </FormRow>\n ))}\n </Stack>\n );\n }\n return <FormRow>{children}</FormRow>;\n};\n\nexport default RadioGroupField;\n","// @flow\nimport React from 'react';\nimport Stack from '../../core/Stack';\nimport Inline from '../../core/Inline';\nimport { useRadioGroupFieldContext } from '../RadioGroupField/RadioGroupFieldContext';\nimport Label from '../Label';\nimport Caption from '../Caption';\nimport { useFieldId } from '../hooks/useFieldId';\nimport styles from './radio-group-option.scss';\n\ntype Props = {\n value: string | number;\n id?: string;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n};\n/** RadioGroupField form element. */\nconst RadioGroupOption: React.FC<Props> = ({\n value,\n id: inputId,\n label,\n caption\n}) => {\n const radioGroupContext = useRadioGroupFieldContext();\n const id = useFieldId({ name: radioGroupContext.name, id: inputId });\n return (\n <Stack space={8}>\n <Inline space={8} alignItems=\"center\">\n <div className={styles['radio-group-option']}>\n <input\n type=\"radio\"\n id={id}\n name={radioGroupContext.name}\n value={value}\n onChange={radioGroupContext.onChange}\n checked={\n radioGroupContext.value !== undefined\n ? radioGroupContext.value === value\n : undefined\n }\n disabled={radioGroupContext.disabled}\n />\n <span\n className={styles['radio-group-option__custom-input']}\n />\n </div>\n {label && <Label htmlFor={id}>{label}</Label>}\n </Inline>\n {caption && (\n <div className={styles['radio-group-option__caption']}>\n <Caption fieldId={id}>{caption}</Caption>\n </div>\n )}\n </Stack>\n );\n};\n\nexport default RadioGroupOption;\n","// @flow\n\nimport React from 'react';\nimport classnames from 'classnames';\nimport styles from './password-criteria.scss';\n\ntype Props = {\n met: boolean;\n children: React.ReactNode;\n};\n\nconst PasswordCriteria: React.FC<Props> = ({ met, children }) => {\n return (\n <span\n className={classnames(styles['password-criteria'], {\n [styles['password-criteria--invalid']]: !met\n })}\n >\n ● {children}\n </span>\n );\n};\n\nexport default PasswordCriteria;\n","// @flow\nimport React from 'react';\nimport Inline from '../../core/Inline';\nimport Stack from '../../core/Stack';\nimport { PasswordCriteria as PasswordCriteriaType } from '../PasswordField/types';\nimport PasswordCriteria from '../PasswordCriteria';\n\nexport const usePasswordCriteria = (criterias: PasswordCriteriaType[]) => {\n if (criterias.length === 0) {\n return null;\n }\n const groupedCriterias = groupCriterias(criterias);\n\n return (\n <Inline space={28}>\n {groupedCriterias.map((group, groupId) => (\n <Stack space={12} key={groupId}>\n {group.map((criteria, criteriaId) => (\n <PasswordCriteria\n met={criteria.met}\n key={criteria.key || criteriaId}\n >\n {criteria.label}\n </PasswordCriteria>\n ))}\n </Stack>\n ))}\n </Inline>\n );\n};\n\nconst groupCriterias = (\n criterias: PasswordCriteriaType[]\n): Array<PasswordCriteriaType[]> => {\n const toBeGrouped = [...criterias];\n let groupedCriterias = [];\n const size = 4;\n\n while (toBeGrouped.length > 0) {\n groupedCriterias.push(toBeGrouped.splice(0, size));\n }\n\n return groupedCriterias;\n};\n","// @flow\nimport React, { useState } from 'react';\nimport classnames from 'classnames';\nimport Field from '../Field';\nimport styles from './password-field.scss';\nimport { useFieldControllers } from '../hooks/useFieldControllers';\nimport { usePasswordCriteria } from '../hooks/usePasswordCriteria';\nimport type { PasswordCriteria } from './types';\nimport { IconEye, IconEyeSlash } from '../../icons';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: string;\n onChange?: (e: string) => void;\n onBlur?: (e: string) => void;\n label?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: string;\n criterias?: PasswordCriteria[];\n};\n/** It allows show and hide the password as well as displaying the criteria. */\nconst PasswordField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n label,\n error,\n placeholder,\n disabled,\n defaultValue,\n criterias = []\n}) => {\n const [type, setType] = useState('password');\n const toggleType = () => setType(type === 'password' ? 'text' : 'password');\n\n const controllers = useFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const caption = usePasswordCriteria(criterias);\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <div className={styles['password-container']}>\n <input\n name={name}\n id={controllers.id}\n className={classnames(styles['text-field'], {\n [styles['text-field--invalid']]: hasError\n })}\n type={type}\n data-testid={`text-field-${name}`}\n aria-describedby={\n hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`\n }\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={controllers.value}\n onChange={controllers.onChange}\n onBlur={controllers.onBlur}\n />\n <div\n className={styles['password-toggle']}\n onClick={toggleType}\n onKeyPress={toggleType}\n data-testid=\"password-toggle\"\n tabIndex={0}\n role=\"button\"\n >\n {type === 'password' ? <IconEyeSlash /> : <IconEye />}\n </div>\n </div>\n </Field>\n );\n};\n\nexport default PasswordField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport type { SelectOption } from '../SelectField/types';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls<T> = {\n id: string;\n error?: string;\n value?: SelectOption<T>[];\n onChange: (e: SelectOption<T>[]) => void;\n onBlur: (e: SelectOption<T>[]) => void;\n};\n\ntype Props<T> = {\n name: string;\n id?: string;\n value?: SelectOption<T>[];\n onChange?: (e: SelectOption<T>[]) => void;\n onBlur?: (e: SelectOption<T>[]) => void;\n error?: string;\n};\nexport const useMultiSelectFieldControllers = <T>({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props<T>): FieldControls<T> => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (options: SelectOption<T>[]) => onChange && onChange(options),\n onBlur: (options: SelectOption<T>[]) => onBlur && onBlur(options)\n };\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error ? controllers.error : formikState.error,\n value: value ? controllers.value : formikState.value,\n onChange: (options: SelectOption<T>[]) => {\n if (onChange) {\n onChange(options);\n }\n formik.setFieldValue(name, options);\n },\n onBlur: (options: SelectOption<T>[]) => {\n if (onBlur) {\n onBlur(options);\n }\n formik.setFieldTouched(name);\n }\n };\n }\n return controllers;\n};\n","//@flow\nimport {\n EGGPLANT200,\n EGGPLANT300,\n EGGPLANT400,\n EGGPLANT700,\n RADISH400,\n GREY100,\n GREY200,\n GREY300,\n GREY400,\n GREY500,\n GREY600,\n WHITE\n} from '../../foundation/colors';\nimport { Z_INDEX_LAYERS, FONT_FAMILY } from '../../foundation/constants';\n\ntype GetSelectStylesControls = {\n isInvalid: boolean;\n hasPrefix?: boolean;\n asToolbarFilter?: boolean;\n wrapToNextLine?: boolean;\n};\nexport const getSelectStyles = ({\n isInvalid,\n hasPrefix = false,\n asToolbarFilter = false,\n wrapToNextLine = false\n}: GetSelectStylesControls): Object => {\n const borderColor = isInvalid ? RADISH400 : GREY300;\n return {\n valueContainer: (base: Object): Object => {\n return Object.assign({}, base, {\n flexWrap: wrapToNextLine ? 'wrap' : 'nowrap'\n });\n },\n container: (base: Object): Object => {\n return Object.assign({}, base, {\n flex: '1',\n fontFamily: FONT_FAMILY,\n minWidth: '64px'\n });\n },\n control: (base: Object, state: any) => {\n return Object.assign({}, base, {\n borderColor: state.isFocused ? EGGPLANT400 : borderColor,\n color: state.isDisabled ? GREY200 : GREY500,\n boxShadow: state.isFocused ? `0 0 8px ${EGGPLANT300}` : 'none',\n '&:hover': 'none',\n backgroundColor: state.isDisabled\n ? GREY100\n : state.isFocused\n ? WHITE\n : WHITE,\n fontSize: '14px',\n cursor: 'pointer',\n background: hasPrefix && 'transparent',\n border: asToolbarFilter && 'none'\n });\n },\n indicatorSeparator: () => ({ display: 'none' }),\n placeholder: (base: any) => ({\n ...base,\n color: GREY300,\n marginRight: 0,\n position: 'static',\n transform: 'initial',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }),\n noOptionsMessage: () => ({\n color: GREY500,\n textAlign: 'center',\n padding: '8px',\n fontFamily: FONT_FAMILY\n }),\n singleValue: (base: any, state: any) => {\n return Object.assign({}, base, {\n color: state.isDisabled ? GREY300 : null,\n marginRight: 0,\n position: 'static',\n transform: 'initial',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n });\n },\n dropdownIndicator: (base: any, state: any) => {\n return Object.assign({}, base, {\n color: state.isDisabled ? GREY200 : GREY400,\n padding: '8px'\n });\n },\n option: (base: any, state: any) => {\n return Object.assign({}, base, {\n backgroundColor: state.isDisabled\n ? null\n : state.isSelected\n ? EGGPLANT200\n : state.isFocused\n ? GREY100\n : WHITE,\n color: state.isDisabled\n ? null\n : state.isSelected\n ? EGGPLANT700\n : GREY500,\n cursor: 'pointer',\n fontFamily: FONT_FAMILY,\n fontSize: '14px'\n });\n },\n group: (base: Object): Object => {\n return Object.assign({}, base, {\n fontFamily: FONT_FAMILY\n });\n },\n multiValueRemove: (base: Object) => {\n return Object.assign({}, base, {\n ':hover': {\n backgroundColor: 'none',\n color: GREY600\n }\n });\n },\n clearIndicator: (base: Object) => {\n return Object.assign({}, base, {\n ':hover': {\n color: GREY600\n }\n });\n },\n menu: (base: any) => ({\n ...base,\n zIndex: Z_INDEX_LAYERS.MENU\n }),\n menuPortal: (base: any) => ({\n ...base,\n zIndex: Z_INDEX_LAYERS.MENU\n })\n };\n};\n","// @flow\n\nimport React from 'react';\nimport { components, OptionProps } from 'react-select';\n\ninterface Props<T> extends OptionProps<T, true> {\n CustomComponent: React.ElementType;\n}\n\nfunction CustomOption<T>({ children, CustomComponent, ...props }: Props<T>) {\n return (\n <components.Option {...props}>\n <CustomComponent {...props}>{children}</CustomComponent>\n </components.Option>\n );\n}\n\nexport default CustomOption;\n","// @flow\n\nimport React from 'react';\nimport { useMultiSelectFieldControllers } from '../hooks/useMultiSelectFieldControllers';\nimport Select, { components } from 'react-select';\nimport Field from '../Field';\nimport { getSelectStyles } from '../SelectField/SelectField.styles';\nimport type { SelectOption, SelectOptions } from '../SelectField/types';\nimport CustomOption from './CustomOption';\n\ntype Props<T> = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: SelectOption<T>[];\n options: SelectOptions<T>;\n onChange?: (e: SelectOption<T>[]) => void;\n onBlur?: (e: SelectOption<T>[]) => void;\n CustomOption?: React.ElementType;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n};\n/** Component to make possible choose from a predefined options. */\nconst MultiSelectField = <T extends unknown>({\n name,\n id: inputId,\n value,\n options,\n onChange,\n onBlur,\n CustomOption: UserCustomOption,\n label,\n caption,\n error,\n placeholder,\n disabled\n}: Props<T>) => {\n const controllers = useMultiSelectFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n return (\n <Field {...fieldProps}>\n <Select\n inputId={controllers.id}\n options={options}\n isDisabled={disabled}\n value={controllers.value}\n placeholder={placeholder}\n styles={getSelectStyles({\n isInvalid: hasError,\n wrapToNextLine: true\n })}\n menuPortalTarget={document.body}\n onChange={controllers.onChange as any}\n onBlur={controllers.onBlur as any}\n isMulti\n components={{\n Option: UserCustomOption\n ? (props) => (\n <CustomOption\n CustomComponent={UserCustomOption}\n {...props}\n />\n )\n : components.Option\n }}\n />\n </Field>\n );\n};\n\nexport default MultiSelectField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport type { SelectOption } from '../SelectField/types';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls<T> = {\n id: string;\n error?: string;\n value?: SelectOption<T>;\n onChange: (e: SelectOption<T>) => void;\n onBlur: (e: SelectOption<T>) => void;\n};\n\ntype Props<T> = {\n name: string;\n id?: string;\n value?: SelectOption<T>;\n onChange?: (e: SelectOption<T>) => void;\n onBlur?: (e: SelectOption<T>) => void;\n error?: string;\n};\nexport const useSelectFieldControllers = <T>({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props<T>): FieldControls<T> => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (option: SelectOption<T>) => onChange && onChange(option),\n onBlur: (option: SelectOption<T>) => onBlur && onBlur(option)\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error ? controllers.error : formikState.error,\n value: value ? controllers.value : formikState.value,\n onChange: (option: SelectOption<T>) => {\n if (onChange) {\n onChange(option);\n }\n formik.setFieldValue(name, option);\n },\n onBlur: (option: SelectOption<T>) => {\n if (onBlur) {\n onBlur(option);\n }\n formik.setFieldTouched(name);\n }\n };\n }\n return controllers;\n};\n","// @flow\n\nimport React from 'react';\nimport { components, ControlProps } from 'react-select';\nimport { Inline } from '../../../core';\nimport styles from './custom-control.scss';\n\ninterface Props<T> extends ControlProps<T, false> {\n CustomPrefixComponent: React.ElementType;\n}\n\nfunction CustomControl<T>({\n children,\n CustomPrefixComponent,\n ...props\n}: Props<T>) {\n const selectedOption = props.getValue()?.[0];\n return (\n <components.Control {...props}>\n {CustomControl && selectedOption ? (\n <div\n className={styles['custom-control']}\n style={{\n paddingLeft: selectedOption ? 8 : 0\n }}\n >\n <Inline\n alignItems=\"center\"\n space={0}\n flex={['0 1 auto', 1]}\n >\n <CustomPrefixComponent\n selectedOption={selectedOption}\n {...props}\n />\n {children}\n </Inline>\n </div>\n ) : (\n children\n )}\n </components.Control>\n );\n}\n\nexport default CustomControl;\n","// @flow\n\nimport React from 'react';\nimport { components, OptionProps } from 'react-select';\n\ninterface Props<T> extends OptionProps<T, false> {\n CustomComponent: React.ElementType;\n}\n\nfunction CustomOption<T>({ children, CustomComponent, ...props }: Props<T>) {\n return (\n <components.Option {...props}>\n <CustomComponent {...props}>{children}</CustomComponent>\n </components.Option>\n );\n}\n\nexport default CustomOption;\n","// @flow\n\nimport React from 'react';\nimport { useSelectFieldControllers } from '../hooks/useSelectFieldControllers';\nimport Select, { components } from 'react-select';\nimport Field from '../Field';\nimport { getSelectStyles } from './SelectField.styles';\nimport type { SelectOption, SelectOptions } from './types';\nimport CustomControl from './CustomControl';\nimport CustomOption from './CustomOption';\nimport AffixContainer from '../AffixContainer';\n\ntype Props<T> = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: SelectOption<T>;\n options: SelectOptions<T>;\n onChange?: (e: SelectOption<T>) => void;\n onBlur?: (e: SelectOption<T>) => void;\n CustomOption?: React.ElementType;\n SelectedOptionPrefix?: React.ElementType;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Use a prefix for things like currency symbols (“$”, “¥”, “£”) or icons. */\n prefix?: React.ReactNode;\n asToolbarFilter?: boolean;\n};\n/** Component to make possible choose from a predefined options. */\nconst SelectField = <T extends unknown>({\n name,\n id: inputId,\n value,\n options,\n onChange,\n onBlur,\n CustomOption: UserCustomOption,\n SelectedOptionPrefix,\n label,\n caption,\n error,\n placeholder,\n disabled,\n prefix,\n asToolbarFilter = false\n}: Props<T>) => {\n const controllers = useSelectFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = !!controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={prefix}>\n <Select\n inputId={controllers.id}\n options={options}\n isDisabled={disabled}\n value={controllers.value}\n placeholder={placeholder}\n styles={getSelectStyles({\n isInvalid: hasError,\n hasPrefix: !!prefix,\n asToolbarFilter\n })}\n menuPortalTarget={document.body}\n onChange={controllers.onChange as any}\n onBlur={controllers.onBlur as any}\n components={{\n Option: UserCustomOption\n ? (props) => (\n <CustomOption\n CustomComponent={UserCustomOption}\n {...props}\n />\n )\n : components.Option,\n Control: SelectedOptionPrefix\n ? (props) => (\n <CustomControl\n CustomPrefixComponent={\n SelectedOptionPrefix\n }\n {...props}\n />\n )\n : components.Control\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default SelectField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n value?: Date;\n onChange: (e: Date) => void;\n onBlur: () => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n error?: string;\n};\nexport const useDateFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n let controllers = {\n id,\n error,\n value,\n onChange: (newValue: Date) => onChange && onChange(newValue),\n onBlur: () => onBlur && onBlur()\n };\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n controllers = {\n ...controllers,\n error: error !== undefined ? controllers.error : formikState.error,\n value: value !== undefined ? controllers.value : formikState.value,\n onChange: onChange\n ? controllers.onChange\n : (newValue?: Date) => {\n formik.setFieldValue(\n name,\n newValue === undefined ? null : newValue\n );\n },\n onBlur: onBlur\n ? controllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return controllers;\n};\n","// @flow\n\nimport React from 'react';\nimport styles from './date-picker-calendar.scss';\nimport Portal from '../../core/Portal/Portal';\n\ntype Props = {\n classNames: typeof styles;\n inputNode: HTMLElement;\n onBlur: () => void;\n onFocus: () => void;\n tabIndex: number;\n children: React.ReactNode;\n};\nconst DatePickerCalendar: React.FC<Props> = ({\n classNames,\n inputNode,\n children,\n onBlur,\n onFocus,\n tabIndex\n}) => {\n const inputPosition = inputNode.getBoundingClientRect();\n return (\n <Portal>\n <div\n className={classNames.overlayWrapper}\n onBlur={onBlur}\n onFocus={onFocus}\n tabIndex={tabIndex}\n style={{\n zIndex: 9999,\n left: inputPosition.left,\n top:\n inputPosition.top +\n window.scrollY +\n inputPosition.height +\n 3\n }}\n >\n <div className={classNames.overlay}>{children}</div>\n </div>\n </Portal>\n );\n};\n\nexport default DatePickerCalendar;\n","import { DateUtils } from 'react-day-picker';\nimport dateFnsFormat from 'date-fns/format';\nimport dateFnsParse from 'date-fns/parse';\nimport startOfDay from 'date-fns/startOfDay';\nimport { getLocalizedString as __ } from './i18n';\n\n// This is `any` because dateFnsParse uses some sort of Locale type but DayPickerInput uses string\ntype Locale = any;\n\nexport function parseDate(\n str: string,\n format: string,\n locale?: Locale\n): Date | undefined {\n const parsed = dateFnsParse(str, format, new Date(), { locale });\n if (str.length === format.length && DateUtils.isDate(parsed)) {\n return parsed;\n }\n return undefined;\n}\n\nexport function formatDate(\n date: Date,\n format: string,\n locale?: Locale\n): string {\n return dateFnsFormat(date, format, { locale });\n}\n\nexport function setToMidnight(date: Date): Date {\n return date && startOfDay(date);\n}\n\nexport function getStartOfWeek(date: Date, weekIndex: number): Date {\n const d = new Date(date);\n const firstDay = d.getDate() - d.getDay() + weekIndex;\n const firstDayAdjusted = firstDay > d.getDate() ? firstDay - 7 : firstDay;\n return new Date(d.setDate(firstDayAdjusted));\n}\n\nexport function getEndOfWeek(date: Date, weekIndex: number): Date {\n const startOfWeek = getStartOfWeek(date, weekIndex);\n const endDay = startOfWeek.getDate() + 6;\n return new Date(startOfWeek.setDate(endDay));\n}\n\nexport function createWeekRange(\n date: Date,\n weekStart: WeekStart\n): FullDateRange {\n return {\n start: getStartOfWeek(date, weekStart),\n end: getEndOfWeek(date, weekStart)\n };\n}\n\nexport const DAYS = [\n __('time.sunday'),\n __('time.monday'),\n __('time.tuesday'),\n __('time.wednesday'),\n __('time.thursday'),\n __('time.friday'),\n __('time.saturday')\n];\n\nexport const MONTH_NAMES = [\n __('time.january'),\n __('time.february'),\n __('time.march'),\n __('time.april'),\n __('time.may'),\n __('time.june'),\n __('time.july'),\n __('time.august'),\n __('time.september'),\n __('time.october'),\n __('time.november'),\n __('time.december')\n];\n\nexport type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type FullDateRange = { start: Date; end: Date };\nexport type DateRange = { start?: Date; end?: Date };\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport classnames from 'classnames';\nimport { IconCalendar } from '../../icons';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport { useDateFieldControllers } from '../hooks/useDateFieldControllers';\nimport DatePickerCalendar from '../DatePickerCalendar';\nimport inputStyles from './date-field.scss';\nimport styles from '../DatePickerCalendar/date-picker-calendar.scss';\nimport {\n MONTH_NAMES,\n DAYS,\n setToMidnight,\n formatDate,\n parseDate\n} from '../../utils/date';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: Date;\n disabledDays?: (day: Date) => boolean;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n initialMonth?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: Date;\n readOnly?: boolean;\n};\n/** DateField form element. */\nconst DateField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n disabledDays,\n initialMonth,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n readOnly = false\n}) => {\n const inputRef = useRef();\n\n const controllers = useDateFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n disabledDays: (day: Date) =>\n disabledDays && disabledDays(setToMidnight(day)),\n initialMonth,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2))\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={<IconCalendar size=\"medium\" />}>\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder || format.toUpperCase()}\n defaultValue={defaultValue}\n value={controllers.value || ''}\n onDayChange={controllers.onChange}\n onDayPickerHide={controllers.onBlur}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={inputRef.current}\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id: controllers.id,\n className: classnames(inputStyles['date-field'], {\n [inputStyles['date--invalid']]: hasError\n }),\n 'data-testid': `date-field-${name}`,\n 'aria-describedby': hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`,\n 'aria-invalid': hasError,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default DateField;\n","// @flow\nimport { useFormContext } from '../Form/FormContext';\nimport { useFieldId } from './useFieldId';\nimport { DateRange } from '../../utils/date';\nimport { getFormikState } from '../../utils/formik';\n\ntype FieldControls = {\n id: string;\n error?: string;\n value: DateRange;\n onChange: (e: DateRange) => void;\n onBlur: () => void;\n};\n\ntype Props = {\n name: string;\n id?: string;\n value?: DateRange;\n onChange?: (e: DateRange) => void;\n onBlur?: () => void;\n error?: string;\n};\nexport const useRangeFieldControllers = ({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n}: Props): FieldControls => {\n const { formik } = useFormContext();\n const id = useFieldId({ name, id: inputId });\n\n const initialControllers = {\n id,\n error,\n value: value || { start: undefined, end: undefined },\n onChange: (newValue: DateRange) => onChange && onChange(newValue),\n onBlur: () => onBlur && onBlur()\n };\n\n const formikState = getFormikState(name, formik);\n if (formik && formikState) {\n return {\n ...initialControllers,\n error:\n error !== undefined\n ? initialControllers.error\n : formikState.error,\n value:\n value !== undefined\n ? initialControllers.value\n : formikState.value,\n onChange: onChange\n ? initialControllers.onChange\n : (newValue?: DateRange) => {\n formik.setFieldValue(\n name,\n newValue === undefined ? null : newValue\n );\n },\n onBlur: onBlur\n ? initialControllers.onBlur\n : () => formik.setFieldTouched(name)\n };\n }\n return initialControllers;\n};\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport DatePickerCalendar from '../../DatePickerCalendar';\nimport {\n WeekStart,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../../utils/date';\nimport styles from '../date-range-field.scss';\n\ntype Props = {\n name: string;\n id: string;\n format: string;\n start?: Date;\n end?: Date;\n placeholder: string;\n weekStart: WeekStart;\n disabled?: boolean;\n readOnly: boolean;\n onChange: (e: Date) => void;\n onDayClick: () => void;\n};\nconst FromDate = ({\n name,\n id,\n format,\n start,\n end,\n placeholder,\n weekStart,\n disabled,\n readOnly,\n onChange,\n onDayClick\n}: Props) => {\n const inputRef = useRef();\n const modifiers = { from: start, to: end };\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n firstDayOfWeek: weekStart,\n\n selectedDays: [start, { from: start, to: end }],\n disabledDays: { after: end },\n toMonth: end,\n modifiers,\n onDayClick\n };\n return (\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n selectedDay={start}\n value={start}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder}\n onDayChange={onChange}\n overlayComponent={(props: any) => (\n <DatePickerCalendar {...props} inputNode={inputRef.current} />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled,\n 'data-testid': `range-picker-field-from-${name}`,\n type: 'text'\n }}\n />\n );\n};\n\nexport default FromDate;\n","// @flow\n\nimport React, { forwardRef } from 'react';\nimport { getLocalizedString as __ } from '../../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport DatePickerCalendar from '../../DatePickerCalendar';\nimport {\n WeekStart,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../../utils/date';\nimport styles from '../date-range-field.scss';\nimport { RefType } from '../../../utils/types';\n\ntype Props = {\n name: string;\n format: string;\n start?: Date;\n end?: Date;\n placeholder: string;\n weekStart: WeekStart;\n disabled?: boolean;\n readOnly: boolean;\n onChange: (e: Date) => void;\n};\nconst ToDate = (\n {\n name,\n format,\n start,\n end,\n placeholder,\n weekStart,\n disabled,\n readOnly,\n onChange\n }: Props,\n ref: RefType<HTMLInputElement>\n) => {\n const modifiers = { from: start, to: end };\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n firstDayOfWeek: weekStart,\n\n selectedDays: [start, { from: start, to: end }],\n disabledDays: { before: start },\n modifiers,\n month: end || start,\n fromMonth: start\n };\n return (\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n selectedDay={end}\n value={end}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder}\n onDayChange={onChange}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={\n (ref as React.MutableRefObject<HTMLInputElement>)\n ?.current\n }\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n autoComplete: 'off',\n ref,\n readOnly,\n disabled,\n 'data-testid': `range-picker-field-to-${name}`,\n type: 'text'\n }}\n />\n );\n};\n\nexport default forwardRef<HTMLInputElement, Props>(ToDate);\n","// @flow\n\nimport React, { useRef } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport classnames from 'classnames';\nimport { IconCalendar, IconArrowRight } from '../../icons';\nimport Field from '../Field';\nimport { useRangeFieldControllers } from '../hooks/useRangeFieldControllers';\nimport { WeekStart, DateRange } from '../../utils/date';\nimport styles from './date-range-field.scss';\nimport FromDate from './FromDate';\nimport ToDate from './ToDate';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: DateRange;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n onChange?: (e: DateRange) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n weekStart?: WeekStart;\n};\n/** DateRangeField form element. */\nconst DateRangeField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n readOnly = true,\n weekStart = 0\n}) => {\n const toInputRef = useRef<HTMLInputElement>(null);\n\n const controllers = useRangeFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const { start, end } = controllers.value;\n\n return (\n <Field {...fieldProps}>\n <div\n className={classnames(styles['date-range-field'], {\n [styles['date-range-field--invalid']]: hasError\n })}\n >\n <IconCalendar size=\"medium\" />\n <FromDate\n name={name}\n id={controllers.id}\n format={format}\n start={start}\n end={end}\n placeholder={placeholder || format.toUpperCase()}\n weekStart={weekStart}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(val: Date) =>\n controllers.onChange({\n start: val,\n end: end\n })\n }\n onDayClick={() => {\n toInputRef?.current?.focus();\n }}\n />\n <IconArrowRight size=\"medium\" />\n <ToDate\n name={name}\n format={format}\n start={start}\n end={end}\n placeholder={placeholder || format.toUpperCase()}\n weekStart={weekStart}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(val: Date) =>\n controllers.onChange({\n start,\n end: val\n })\n }\n ref={toInputRef}\n />\n </div>\n </Field>\n );\n};\n\nexport default DateRangeField;\n","// @flow\n\nimport React, { useRef, useState } from 'react';\nimport { getLocalizedString as __ } from '../../utils/i18n';\nimport DayPickerInput from 'react-day-picker/DayPickerInput';\nimport classnames from 'classnames';\nimport { IconCalendar } from '../../icons';\nimport Field from '../Field';\nimport AffixContainer from '../AffixContainer';\nimport { useDateFieldControllers } from '../hooks/useDateFieldControllers';\nimport DatePickerCalendar from '../DatePickerCalendar';\nimport inputStyles from '../DateField/date-field.scss';\nimport styles from './week-field.scss';\nimport eachDayOfInterval from 'date-fns/eachDayOfInterval';\nimport {\n WeekStart,\n FullDateRange,\n createWeekRange,\n setToMidnight,\n parseDate,\n formatDate,\n MONTH_NAMES,\n DAYS\n} from '../../utils/date';\n\ntype Props = {\n name: string;\n /** If not provided it will generate a random id so the label links properly with the text input */\n id?: string;\n value?: Date;\n disabledDays?: (day: Date) => boolean;\n /** Reference this for valid formats: https://date-fns.org/v2.18.0/docs/format */\n format?: string;\n initialMonth?: Date;\n onChange?: (e: Date) => void;\n onBlur?: () => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n error?: string;\n placeholder?: string;\n disabled?: boolean;\n defaultValue?: Date;\n readOnly?: boolean;\n weekStart?: WeekStart;\n};\n/** WeekField form element. */\nconst WeekField: React.FC<Props> = ({\n name,\n id: inputId,\n value,\n disabledDays,\n initialMonth,\n format = 'MM/dd/yyyy',\n onChange,\n onBlur,\n label,\n caption,\n error,\n placeholder,\n disabled,\n defaultValue,\n readOnly = true,\n weekStart = 0\n}) => {\n const [hoverDate, setHoverDate] = useState<Date | null>(null);\n const inputRef = useRef();\n\n const controllers = useDateFieldControllers({\n name,\n id: inputId,\n value,\n onChange,\n onBlur,\n error\n });\n\n const hasError = controllers.error;\n const fieldProps = {\n name,\n id: controllers.id,\n label,\n caption,\n error: controllers.error\n };\n\n const weekRange: FullDateRange | null = value\n ? createWeekRange(value, weekStart)\n : null;\n const selectedDays: Date[] =\n value && weekRange ? eachDayOfInterval(weekRange) : [];\n\n const getModifiers = () => {\n const hoverRange = hoverDate\n ? createWeekRange(hoverDate, weekStart)\n : null;\n return {\n hoverRange: hoverRange ? eachDayOfInterval(hoverRange) : [],\n selectedRange: weekRange && {\n from: weekRange.start,\n to: weekRange.end\n },\n from: weekRange && weekRange.start,\n to: weekRange && weekRange.end\n };\n };\n\n const handleHoverStart = (day: Date) => setHoverDate(day);\n const handleHoverEnd = () => setHoverDate(null);\n\n const dayPickerProps: any = {\n // We need to pass classNames here as well, otherwise it will allow disabled dates to be selected\n classNames: styles,\n disabledDays: (day: Date) =>\n disabledDays && disabledDays(setToMidnight(day)),\n initialMonth,\n months: MONTH_NAMES,\n weekdaysLong: DAYS,\n weekdaysShort: DAYS.map((day) => day.substring(0, 2)),\n\n showOutsideDays: true,\n selectedDays,\n modifiers: getModifiers(),\n firstDayOfWeek: weekStart,\n onDayMouseEnter: handleHoverStart,\n onDayMouseLeave: handleHoverEnd\n };\n\n const handleDayClick = (day: Date) => {\n const selectedDate = setToMidnight(day);\n setHoverDate(selectedDate);\n controllers.onChange(createWeekRange(day, weekStart).start);\n };\n\n return (\n <Field {...fieldProps}>\n <AffixContainer prefix={<IconCalendar size=\"medium\" />}>\n <DayPickerInput\n format={format /* @ts-ignore: styles types are generic */}\n classNames={styles}\n formatDate={formatDate}\n parseDate={parseDate}\n placeholder={placeholder || format.toUpperCase()}\n defaultValue={defaultValue}\n value={controllers.value || ''}\n onDayChange={handleDayClick}\n onDayPickerHide={controllers.onBlur}\n overlayComponent={(props: any) => (\n <DatePickerCalendar\n {...props}\n inputNode={inputRef.current}\n />\n )}\n dayPickerProps={dayPickerProps}\n inputProps={{\n name,\n id: controllers.id,\n className: classnames(inputStyles['date-field'], {\n [inputStyles['date--invalid']]: hasError\n }),\n 'data-testid': `week-field-${name}`,\n 'aria-describedby': hasError\n ? `${controllers.id}-error-message`\n : `${controllers.id}-describer`,\n 'aria-invalid': hasError,\n autoComplete: 'off',\n ref: inputRef,\n readOnly,\n disabled\n }}\n />\n </AffixContainer>\n </Field>\n );\n};\n\nexport default WeekField;\n","import React from 'react';\nimport Stack from '../../core/Stack';\nimport styles from './toggle.scss';\n\ntype Props = {\n /** It turns the toggle ON if `true` and OFF if `false` */\n checked: boolean;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n label?: React.ReactNode;\n caption?: React.ReactNode;\n disabled?: boolean;\n id?: string;\n};\n\n/**\n * Used when you want to allow the user to turn some information ON and OFF.\n *\n * _The Toggle component is not intended to be used inside a Form (use a checkbox for that). It should be used when you want to act on that action immediately._\n */\nconst Toggle: React.FC<Props> = ({\n checked,\n label,\n caption,\n onChange,\n disabled = false,\n id\n}) => {\n return (\n <Stack space={8}>\n <label className={styles['toggle']}>\n <input\n data-testid=\"toggle\"\n type=\"checkbox\"\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n id={id}\n />\n <span className={styles['toggle__switch']} />\n {label && (\n <span className={styles['toggle__label']}>{label}</span>\n )}\n </label>\n {caption && (\n <span className={styles['toggle__caption']}>{caption}</span>\n )}\n </Stack>\n );\n};\n\nexport default Toggle;\n","import React from 'react';\nimport styles from './modal-header.scss';\nimport Inline from '../../../core/Inline';\nimport Stack from '../../../core/Stack';\nimport Button from '../../../actions/Button';\nimport { IconClose } from '../../../icons';\n\ntype Props = {\n header?: React.ReactNode;\n subHeader?: React.ReactNode;\n onClose: () => void;\n};\n\nconst ModalHeader = ({ header, subHeader, onClose }: Props) => {\n return (\n <Stack space={12}>\n <Inline flex={[1]} alignItems=\"center\">\n <span className={styles['header']}>{header}</span>\n <Button theme=\"link-icon\" onClick={onClose}>\n <IconClose />\n </Button>\n </Inline>\n {subHeader && (\n <div className={styles['sub-header']}>{subHeader}</div>\n )}\n </Stack>\n );\n};\n\nexport default ModalHeader;\n","import React from 'react';\nimport ReactModal from 'react-modal';\nimport { Z_INDEX_LAYERS } from '../../foundation/constants';\nimport styles from './modal.scss';\nimport ModalHeader from './ModalHeader';\n\ntype Props = {\n children: React.ReactNode;\n header?: React.ReactNode;\n subHeader?: React.ReactNode;\n onClose: () => void;\n zIndex?: number;\n /** This is the ID for the root element so when the modal is open it only allows iteracting with the modal when pressing tab. Can also use `Modal.setAppElement('#root')` in te main app once. */\n rootElementId?: string;\n width?: number;\n height?: number;\n maxWidth?: number;\n};\n\nconst Modal = ({\n children,\n header,\n subHeader,\n onClose,\n zIndex = Z_INDEX_LAYERS.MODAL,\n rootElementId,\n width = 500,\n height,\n maxWidth\n}: Props) => {\n const style = {\n content: {\n width,\n height,\n maxWidth\n },\n overlay: {\n zIndex\n }\n };\n return (\n <ReactModal\n isOpen\n shouldCloseOnEsc\n shouldCloseOnOverlayClick={false}\n onRequestClose={onClose}\n style={style}\n closeTimeoutMS={200}\n contentLabel=\"Modal\"\n appElement={\n (rootElementId && document.getElementById(rootElementId)) ||\n undefined\n }\n overlayClassName={{\n base: styles['overlay'],\n afterOpen: styles['overlay--after-open'],\n beforeClose: styles['overlay--before-close']\n }}\n className={{\n base: styles['content'],\n afterOpen: styles['content--after-open'],\n beforeClose: styles['content--before-close']\n }}\n >\n <ModalHeader\n header={header}\n subHeader={subHeader}\n onClose={onClose}\n />\n {children}\n </ReactModal>\n );\n};\n\n// The user can set the main app root id so when the modal is open it only allows iteracting with the modal when pressing tab\nModal.setAppElement = (rootElement: string | HTMLElement) => {\n ReactModal.setAppElement(rootElement);\n};\n\nexport default Modal;\n","import React from 'react';\nimport styles from './modal-body.scss';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst ModalBody = ({ children }: Props) => {\n return <div className={styles['modal-body']}>{children}</div>;\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport styles from './modal-footer.scss';\nimport Inline from '../../../core/Inline';\nimport classnames from 'classnames';\nimport { Button } from '../../../actions';\n\ntype Props = {\n children?: React.ReactNode;\n /** This will streamline the button creation and all the design pattern applied on buttons with a modal footer. If you want more flexibility to build the footer you can pass a `children` instead of using the `actions` prop. */\n actions?: {\n primary?: React.ReactElement;\n secondary?: React.ReactElement;\n tertiary?: React.ReactElement;\n };\n};\n\nconst ModalFooter = ({ children, actions }: Props) => {\n if (actions) {\n const primaryButton = updateButtonProps(actions.primary, {\n theme: actions?.primary?.props.theme || 'primary'\n });\n const secondaryButton = updateButtonProps(actions.secondary, {\n theme: actions?.secondary?.props.theme || 'default'\n });\n const tertiaryButton = updateButtonProps(actions.tertiary, {\n theme: actions?.tertiary?.props.theme || 'link-primary'\n });\n\n return (\n <FooterContainer>\n <Inline justifyContent=\"space-between\">\n <div\n className={classnames({\n [styles['tertiary-container']]:\n tertiaryButton &&\n tertiaryButton.props.theme.startsWith('link')\n })}\n >\n {tertiaryButton || <div />}\n </div>\n <Inline space={12}>\n {secondaryButton}\n {primaryButton}\n </Inline>\n </Inline>\n </FooterContainer>\n );\n }\n\n return <FooterContainer>{children}</FooterContainer>;\n};\n\nconst updateButtonProps = (\n button: React.ReactElement | undefined,\n newProps: Object\n): React.ReactElement | null => {\n if (!button) {\n return null;\n }\n if (button.type !== Button) {\n return button;\n }\n return React.cloneElement(button, {\n wide: true,\n ...newProps\n });\n};\n\ntype FooterContainerProps = {\n children: React.ReactNode;\n};\nconst FooterContainer = ({ children }: FooterContainerProps) => {\n const childrenItens = React.Children.toArray(children);\n const hasCustomAlignment =\n childrenItens.length === 1 && (childrenItens[0] as any).type === Inline;\n return (\n <div className={styles['modal-footer']}>\n <Inline\n justifyContent=\"end\"\n space={12}\n flex={hasCustomAlignment ? [1] : undefined}\n >\n {children}\n </Inline>\n </div>\n );\n};\n\nexport default ModalFooter;\n","import React, { useRef, useLayoutEffect, forwardRef } from 'react';\nimport classnames from 'classnames';\nimport styles from './badge.scss';\nimport { RefType } from '../../utils/types';\nimport { Tooltip } from '../../overlay';\n\ntype Props = {\n children: React.ReactNode;\n theme?: 'success' | 'danger' | 'warning' | 'info';\n /** This will show a black tooltip when the user hover the button */\n title?: string;\n};\nconst Badge = (\n { children, theme, title, ...otherProps }: Props,\n forwardedRef: RefType<HTMLDivElement>\n) => {\n const internalRef = useRef<HTMLDivElement>(null);\n\n const ref = forwardedRef || internalRef;\n\n useLayoutEffect(() => {\n if (\n typeof ref !== 'function' &&\n ref.current &&\n React.isValidElement(children) &&\n typeof children?.type === 'function'\n ) {\n ref.current.style.height = ref.current.offsetWidth + 'px';\n }\n });\n\n return (\n <Tooltip overlay={title} ref={ref}>\n <div\n className={classnames(styles['badge'], {\n [styles['badge--success']]: theme === 'success',\n [styles['badge--danger']]: theme === 'danger',\n [styles['badge--info']]: theme === 'info',\n [styles['badge--warning']]: theme === 'warning'\n })}\n ref={ref}\n {...otherProps}\n >\n {children}\n </div>\n </Tooltip>\n );\n};\n\nexport default forwardRef<HTMLDivElement, Props>(Badge);\n","import React, { useState } from 'react';\nimport IconUser from '../../../icons/IconUser';\nimport styles from './avatar-image.scss';\n\ntype Props = {\n url?: string;\n color?: string;\n alt?: string;\n};\nconst AvatarImage: React.FC<Props> = ({ url, color, alt = 'Profile' }) => {\n const [hasImageError, setHasImageError] = useState(false);\n if (url && !hasImageError) {\n return (\n <img\n src={url}\n alt={alt}\n onError={() => {\n setHasImageError(true);\n }}\n />\n );\n }\n\n return (\n <div className={styles['avatar-image']}>\n <IconUser size=\"flexible\" color={color} />\n </div>\n );\n};\n\nexport default AvatarImage;\n","export const PROFILE_IMAGES = [\n {\n backgroundColor: '#EAD3E3',\n avatarColor: '#AA6589'\n },\n {\n backgroundColor: '#F4F6FC',\n avatarColor: '#9EA9D3'\n },\n {\n backgroundColor: '#FBEBE6',\n avatarColor: '#F3A097'\n },\n {\n backgroundColor: '#F7FAF2',\n avatarColor: '#BBCA94'\n },\n {\n backgroundColor: '#E1F3EF',\n avatarColor: '#8DC3B9'\n },\n {\n backgroundColor: '#F2DCBD',\n avatarColor: '#A98146'\n },\n {\n backgroundColor: '#AA6589',\n avatarColor: '#EAD3E3'\n },\n {\n backgroundColor: '#9EA9D3',\n avatarColor: '#F4F6FC'\n },\n {\n backgroundColor: '#F3A097',\n avatarColor: '#FBEBE6'\n },\n {\n backgroundColor: '#BBCA94',\n avatarColor: '#F7FAF2'\n },\n {\n backgroundColor: '#8DC3B9',\n avatarColor: '#E1F3EF'\n },\n {\n backgroundColor: '#A98146',\n avatarColor: '#F2DCBD'\n }\n];\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport { GREY400, GREY200 } from '../../foundation/colors';\nimport styles from './avatar.scss';\nimport AvatarImage from './AvatarImage';\nimport { PROFILE_IMAGES } from './constants';\n\ntype Props = {\n children?: React.ReactNode;\n size?: 'small' | 'medium' | 'large' | 'extra-large';\n color?: string;\n url?: string;\n badge?: React.ReactNode;\n alt?: string;\n};\nconst Avatar: React.FC<Props> = ({\n children,\n color = GREY400,\n size = 'medium',\n url,\n badge,\n alt\n}) => {\n const [defaultProfilePictureColors] = useState(\n () => PROFILE_IMAGES[Math.floor(Math.random() * PROFILE_IMAGES.length)]\n );\n\n // If passing an url we are defaulting to a lighter grey while the image loads\n const backgroundColor = url ? GREY200 : color;\n return (\n <div\n className={classnames(styles['avatar'], {\n [styles['avatar--small']]: size === 'small',\n [styles['avatar--medium']]: size === 'medium',\n [styles['avatar--large']]: size === 'large',\n [styles['avatar--extra-large']]: size === 'extra-large'\n })}\n style={{\n backgroundColor:\n children || url\n ? backgroundColor\n : defaultProfilePictureColors.backgroundColor\n }}\n >\n {children || (\n <AvatarImage\n url={url}\n color={defaultProfilePictureColors.avatarColor}\n alt={alt}\n />\n )}\n {badge && size !== 'small' && (\n <div className={styles['avatar__badge']}>{badge}</div>\n )}\n </div>\n );\n};\n\nexport default Avatar;\n"],"names":["ICON_SIZES","small","medium","large","getIconStyles","size","rotate","width","height","transform","verticalAlign","IconArrowDown","color","dataTestId","React","viewBox","xmlns","style","className","styles","fill","d","IconArrowLeft","props","IconArrowRight","IconArrowUp","IconCalendar","IconChevronDown","IconChevronUp","IconClose","IconComment","IconDelete","IconEdit","IconEye","fillRule","clipRule","IconEyeSlash","IconExclaim","IconLocation","IconMinusCircle","IconMore","IconRemove","IconUser","IconUserPlus","initialValue","Context","createContext","useResourceTableContext","context","useContext","Error","MenuContext","onToggleMenu","isOpen","triggerRef","undefined","useMenuContext","Menu","children","useState","setIsOpen","useRef","Provider","value","MenuItem","onClick","handleClick","e","stopPropagation","onKeyPress","tabIndex","role","Flex","space","flex","alignItems","justifyContent","inlineFlex","direction","flexItems","flexWrap","classNames","items","Children","toArray","filter","Boolean","lastItemIndex","length","flexDirection","map","child","i","key","display","marginRight","marginBottom","Inline","Spinner","theme","block","classnames","strokeWidth","strokeLinecap","cx","cy","r","TOOLTIP_THEME","BLACK","WHITE","TOOLTIP_PLACEMENT","BOTTOM","TOP","TOOLTIP_DELAY_ON_CLOSE","TOOLTIP_DELAY_ON_OPEN","SPACE","PADDING","BUFFER","ARROW_WIDTH","ARROW_MARGIN","calculatePosition","placement","anchorPosition","tooltipRectPosition","overlay","arrow","actualPlacement","top","getActualPlacement","overlayPosition","calculateOverlayPosition","arrowPosition","calculateArrowPosition","updateMisalignedOverlay","left","tooltipWidth","position","Math","max","min","window","innerWidth","tooltipHeight","topPosition","bottomPosition","innerHeight","tooltipPosition","Stack","useIsMounted","isMounted","useEffect","current","cleanup","checker","useCallback","Z_INDEX_LAYERS","BASE","MODAL","MENU","TOOLTIP","FONT_FAMILY","usePortalContainer","container","setContainer","containerElement","document","createElement","setAttribute","body","prepend","remove","Portal","ReactDOM","createPortal","TooltipOverlay","header","onClose","onFocusIn","onFocusOut","extraClass","isVisible","setIsVisible","tooltipRef","checkIsMounted","setTimeout","addEventListener","removeEventListener","getBoundingClientRect","ref","zIndex","onMouseEnter","onMouseLeave","Tooltip","forwardedRef","delayOnClose","delayOnOpen","internalRef","containerRef","isFocusingOnTooltip","isFocusingOnAnchor","onAnchorFocusIn","onAnchorFocusOut","openTooltip","closeTooltip","closeTooltipWithDelay","anchorElements","count","Overlay","Fragment","cloneElement","onFocus","onBlur","forwardRef","Button","type","disabled","id","wide","loading","title","href","target","contrastSpinner","childrenArr","isIconOnly","ButtonElement","includes","rest","commonProps","MenuButton","isClickInside","event","Node","contains","useOnClickOutside","cb","listener","MenuList","paneElement","setPosition","clickOutisideCallback","triggerPosition","panePosition","paneWidth","pos","scrollY","ResourceTableRow","isSelected","actions","columnSizes","showActionMenu","styleNames","renderColumn","columnElement","index","columnElements","action","onAction","label","SORT_ORDER","ASC","DESC","ResourceTableHeader","columns","onSort","haveLabels","find","column","handleSort","nextDirection","getNextSort","columnName","name","isSortable","sortDir","currentSort","IconSort","sortDirection","marginTop","getLocalizedString","Shifts","getLocalTranslation","getWebAppTranslation","Lang","cache","split","moduleName","translationParts","literal","charAt","toUpperCase","slice","toLowerCase","PaginationControls","hasPrevious","hasNext","onPreviousClick","onNextClick","__","ResourceTable","itemComponent","maxHeight","isLoading","RowItem","DefaultItemComponent","conditionalStyles","overflowY","item","headingKeys","Object","keys","columnsToShow","headingKey","useFormContext","Form","onSubmit","formik","stackContent","handleSubmit","preventDefault","currentTarget","elements","SIZE_25_PERCENT","SIZE_33_PERCENT","SIZE_50_PERCENT","SIZE_66_PERCENT","SIZE_75_PERCENT","FormRow","sizes","additionalColumns","push","Array","_","Label","htmlFor","Caption","fieldId","EGGPLANT200","EGGPLANT300","EGGPLANT400","EGGPLANT700","RADISH400","GREY100","GREY200","GREY300","GREY400","GREY500","GREY600","ErrorMessage","Field","caption","error","useFieldId","inputId","useMemo","random","getFormikState","values","touched","errors","formikArray","getFormikArrayPath","arrayName","itemIndex","fieldName","missingSplit","useFieldControllers","onChange","controllers","formikState","setFieldValue","setFieldTouched","useGrowTextAreaRef","minHeight","autoGrow","textareaRef","updateHeight","scrollHeight","TextAreaField","placeholder","defaultValue","toolbar","toolbarRef","hasFocus","setHasFocus","hasError","fieldProps","textAreaRef","focus","AffixContainer","prefix","suffix","prefixElement","suffixElement","useLayoutEffect","input","querySelector","prefixWidth","offsetWidth","paddingLeft","suffixWidth","paddingRight","hasPrefix","hasSuffix","classes","TextField","autoFocus","useCheckBoxFieldControllers","checked","CheckboxField","useRadioGroupFieldControllers","RadioGroupFieldContext","useRadioGroupFieldContext","RadioGroupField","inline","onChangeHandler","contextValue","InlineOptions","MAX_OPTIONS_PER_ROW","numberOfElements","childrenArray","rows","row","rowIndex","RadioGroupOption","radioGroupContext","PasswordCriteria","met","usePasswordCriteria","criterias","groupedCriterias","groupCriterias","group","groupId","criteria","criteriaId","toBeGrouped","splice","PasswordField","setType","toggleType","useMultiSelectFieldControllers","options","getSelectStyles","isInvalid","asToolbarFilter","wrapToNextLine","borderColor","valueContainer","base","assign","fontFamily","minWidth","control","state","isFocused","isDisabled","boxShadow","backgroundColor","fontSize","cursor","background","border","indicatorSeparator","overflow","textOverflow","whiteSpace","noOptionsMessage","textAlign","padding","singleValue","dropdownIndicator","option","multiValueRemove","clearIndicator","menu","menuPortal","CustomOption","CustomComponent","components","Option","MultiSelectField","UserCustomOption","Select","menuPortalTarget","isMulti","useSelectFieldControllers","CustomControl","CustomPrefixComponent","selectedOption","getValue","Control","SelectField","SelectedOptionPrefix","useDateFieldControllers","newValue","DatePickerCalendar","inputNode","inputPosition","overlayWrapper","parseDate","str","format","locale","parsed","dateFnsParse","Date","DateUtils","isDate","formatDate","date","dateFnsFormat","setToMidnight","startOfDay","getStartOfWeek","weekIndex","firstDay","getDate","getDay","firstDayAdjusted","setDate","getEndOfWeek","startOfWeek","endDay","createWeekRange","weekStart","start","end","DAYS","MONTH_NAMES","DateField","disabledDays","initialMonth","readOnly","inputRef","dayPickerProps","day","months","weekdaysLong","weekdaysShort","substring","DayPickerInput","onDayChange","onDayPickerHide","overlayComponent","inputProps","inputStyles","autoComplete","useRangeFieldControllers","initialControllers","FromDate","onDayClick","modifiers","from","to","showOutsideDays","firstDayOfWeek","selectedDays","after","toMonth","selectedDay","ToDate","before","month","fromMonth","DateRangeField","toInputRef","val","WeekField","hoverDate","setHoverDate","weekRange","eachDayOfInterval","getModifiers","hoverRange","selectedRange","handleHoverStart","handleHoverEnd","onDayMouseEnter","onDayMouseLeave","handleDayClick","selectedDate","Toggle","ModalHeader","subHeader","Modal","rootElementId","maxWidth","content","ReactModal","shouldCloseOnEsc","shouldCloseOnOverlayClick","onRequestClose","closeTimeoutMS","contentLabel","appElement","getElementById","overlayClassName","afterOpen","beforeClose","setAppElement","rootElement","ModalBody","ModalFooter","primaryButton","updateButtonProps","primary","secondaryButton","secondary","tertiaryButton","tertiary","FooterContainer","startsWith","button","newProps","childrenItens","hasCustomAlignment","Badge","otherProps","isValidElement","AvatarImage","url","alt","hasImageError","setHasImageError","src","onError","PROFILE_IMAGES","avatarColor","Avatar","badge","floor","defaultProfilePictureColors"],"mappings":";;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG;AACtBC,EAAAA,KAAK,EAAE,MADe;AAEtBC,EAAAA,MAAM,EAAE,MAFc;AAGtB,aAAS,MAHa;AAItBC,EAAAA,KAAK,EAAE;AAJe,CAAnB;;ACGA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,IAAD,EAAiBC,MAAjB;AAAA,SAA8C;AACvEC,IAAAA,KAAK,EAAEP,UAAU,CAACK,IAAD,CADsD;AAEvEG,IAAAA,MAAM,EAAER,UAAU,CAACK,IAAD,CAFqD;AAGvEI,IAAAA,SAAS,EAAEH,MAAM,gBAAcA,MAAd,SAHsD;AAIvEI,IAAAA,aAAa,EAAE;AAJwD,GAA9C;AAAA,CAAtB;;;;ACSP,IAAMC,aAAa,GAAoB,SAAjCA,aAAiC;uBACnCN;MAAAA,8BAAO;MACPO,aAAAA;MACAN,cAAAA;6BACAO;MAAAA,0CAAa;AAEb,SACIC,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD,EAAOC,MAAP;mBACPO;AACbK,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CApBD;;ACHA,IAAMC,aAAa,GAAoB,SAAjCA,aAAiC,CAACC,KAAD;AACnC,SACIT,4BAAA,CAACH,aAAD,oBAAmBY;AAAOjB,IAAAA,MAAM,EAAE;AAAIO,IAAAA,UAAU,EAAC;IAAjD,CADJ;AAGH,CAJD;;ACAA,IAAMW,cAAc,GAAoB,SAAlCA,cAAkC,CAACD,KAAD;AACpC,SACIT,4BAAA,CAACH,aAAD,oBAAmBY;AAAOjB,IAAAA,MAAM,EAAE,CAAC;AAAIO,IAAAA,UAAU,EAAC;IAAlD,CADJ;AAGH,CAJD;;ACAA,IAAMY,WAAW,GAAoB,SAA/BA,WAA+B,CAACF,KAAD;AACjC,SAAOT,4BAAA,CAACH,aAAD,oBAAmBY;AAAOjB,IAAAA,MAAM,EAAE;AAAKO,IAAAA,UAAU,EAAC;IAAlD,CAAP;AACH,CAFD;;ACCA,IAAMa,YAAY,GAAoB,SAAhCA,YAAgC;uBAAGrB;MAAAA,8BAAO;MAAWO,aAAAA;AACvD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,IAAA,MAAA,EACIA,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CADJ,CAPJ,CADJ;AAgBH,CAjBD;;ACAA,IAAMM,eAAe,GAAoB,SAAnCA,eAAmC;uBACrCtB;MAAAA,8BAAO;MACPO,aAAAA;MACAN,cAAAA;6BACAO;MAAAA,0CAAa;AAEb,SACIC,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD,EAAOC,MAAP;mBACPO;AACbK,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CApBD;;ACFA,IAAMO,aAAa,GAAoB,SAAjCA,aAAiC,CAACL,KAAD;AACnC,SACIT,4BAAA,CAACa,eAAD,oBAAqBJ;AAAOjB,IAAAA,MAAM,EAAE;AAAKO,IAAAA,UAAU,EAAC;IAApD,CADJ;AAGH,CAJD;;ACEA,IAAMgB,SAAS,GAAoB,SAA7BA,SAA6B;uBAAGxB;MAAAA,8BAAO;MAAWO,aAAAA;AACpD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfH,IAAAA,SAAS,EAAC;AACVY,IAAAA,CAAC,EAAC;GAHN,CAPJ,CADJ;AAeH,CAhBD;;ACAA,IAAMS,WAAW,GAAoB,SAA/BA,WAA+B;uBAAGzB;MAAAA,8BAAO;MAAWO,aAAAA;AACtD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,IAAA,MAAA,EACIA,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CADJ,CAPJ,CADJ;AAgBH,CAjBD;;ACAA,IAAMU,UAAU,GAAoB,SAA9BA,UAA8B;uBAAG1B;MAAAA,8BAAO;MAAWO,aAAAA;AACrD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACAA,IAAMW,QAAQ,GAAoB,SAA5BA,QAA4B;uBAAG3B;MAAAA,8BAAO;MAAWO,aAAAA;AACnD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACAA,IAAMY,OAAO,GAAoB,SAA3BA,OAA2B;uBAAG5B;MAAAA,8BAAO;MAAWO,aAAAA;AAClD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfsB,IAAAA,QAAQ,EAAC;AACTC,IAAAA,QAAQ,EAAC;AACTd,IAAAA,CAAC,EAAC;GAJN,CAPJ,CADJ;AAgBH,CAjBD;;ACAA,IAAMe,YAAY,GAAoB,SAAhCA,YAAgC;uBAAG/B;MAAAA,8BAAO;MAAWO,aAAAA;AACvD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACAA,IAAMgB,WAAW,GAAoB,SAA/BA,WAA+B;uBAAGhC;MAAAA,8BAAO;MAAWO,aAAAA;AACtD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACAA,IAAMiB,YAAY,GAAoB,SAAhCA,YAAgC;uBAAGjC;MAAAA,8BAAO;MAAWO,aAAAA;AACvD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,IAAA,MAAA,EACIA,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CADJ,CAPJ,CADJ;AAgBH,CAjBD;;ACAA,IAAMkB,eAAe,GAAoB,SAAnCA,eAAmC;uBAAGlC;MAAAA,8BAAO;MAAWO,aAAAA;AAC1D,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,IAAA,MAAA,EACIA,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CADJ,CAPJ,CADJ;AAgBH,CAjBD;;ACAA,IAAMmB,QAAQ,GAAoB,SAA5BA,QAA4B;uBAAGnC;MAAAA,8BAAO;MAAWO,aAAAA;AACnD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACDA,IAAMoB,UAAU,GAAoB,SAA9BA,UAA8B;uBAAGpC;MAAAA,8BAAO;MAAWO,aAAAA;AACrD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACAA,IAAMqB,QAAQ,GAAoB,SAA5BA,QAA4B;uBAAGrC;MAAAA,8BAAO;MAAWO,aAAAA;AACnD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,CADJ;AAcH,CAfD;;ACCA,IAAMsB,YAAY,GAAoB,SAAhCA,YAAgC;uBAAGtC;MAAAA,8BAAO;MAAWO,aAAAA;AACvD,SACIE,4BAAA,MAAA;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,KAAK,EAAC;AACNC,IAAAA,KAAK,EAAEb,aAAa,CAACC,IAAD;mBACR;AACZa,IAAAA,SAAS,EAAEC,MAAM,CAAC,MAAD;GALrB,EAOIL,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAPJ,EAWIP,4BAAA,OAAA;AACIM,IAAAA,IAAI,EAAER,KAAF,WAAEA,KAAF,GAAW;AACfS,IAAAA,CAAC,EAAC;GAFN,CAXJ,CADJ;AAkBH,CAnBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA,IAAMuB,YAAY,GAA6B,EAA/C;AACA,IAAMC,OAAO,GAAGC,aAAa,CAA2BF,YAA3B,CAA7B;AAEA,AAAO,IAAMG,uBAAuB,GAAG,SAA1BA,uBAA0B;AACnC,MAAMC,OAAO,GAAGC,UAAU,CAACJ,OAAD,CAA1B;;AAEA,MAAI,CAACG,OAAL,EAAc;AACV,UAAME,KAAK,CACP,+IADO,CAAX;AAGH;;AACD,SAAOF,OAAP;AACH,CATM;;ACDP,IAAMG,WAAW,GACbrC,cAAK,CAACgC,aAAN,CAAqC;AACjCM,EAAAA,YAAY,EAAE,0BADmB;AAEjCC,EAAAA,MAAM,EAAE,KAFyB;AAGjCC,EAAAA,UAAU,EAAEC;AAHqB,CAArC,CADJ;AAOA,AAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAC1B1C,cAAK,CAACmC,UAAN,CAAiBE,WAAjB,CAD0B;AAAA,CAAvB;;ACNP,IAAMM,IAAI,GAAoB,SAAxBA,IAAwB;MAAGC,gBAAAA;;AAC7B,kBAA4BC,QAAQ,CAAC,KAAD,CAApC;AAAA,MAAON,MAAP;AAAA,MAAeO,SAAf;;AACA,MAAMN,UAAU,GAAGO,MAAM,EAAzB;AAEA,SACI/C,4BAAA,CAACqC,WAAW,CAACW,QAAb;AACIC,IAAAA,KAAK,EAAE;AACHV,MAAAA,MAAM,EAANA,MADG;AAEHD,MAAAA,YAAY,EAAE;AAAA,eAAMQ,SAAS,CAAC,CAACP,MAAF,CAAf;AAAA,OAFX;AAGHC,MAAAA,UAAU,EAAVA;AAHG;GADX,EAOKI,QAPL,CADJ;AAWH,CAfD;;;;ACDA,IAAMM,QAAQ,GAAoB,SAA5BA,QAA4B;MAAGC,eAAAA;MAASP,gBAAAA;;AAC1C,wBAAyBF,cAAc,EAAvC;AAAA,MAAQJ,YAAR,mBAAQA,YAAR;;AACA,MAAMc,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD;AAChBf,IAAAA,YAAY;AACZa,IAAAA,OAAO;AACPE,IAAAA,CAAC,CAACC,eAAF;AACH,GAJD;;AAKA,SACItD,4BAAA,KAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,WAAD;AACjB8C,IAAAA,OAAO,EAAEC;AACTG,IAAAA,UAAU,EAAEH;AACZI,IAAAA,QAAQ,EAAE;AACVC,IAAAA,IAAI,EAAC;GALT,EAOKb,QAPL,CADJ;AAWH,CAlBD;;;;ACYA,IAAMc,IAAI,GAAoB,SAAxBA,IAAwB;;;MAC1Bd,gBAAAA;wBACAe;MAAAA,gCAAQ;MACRC,YAAAA;6BACAC;MAAAA,0CAAa;iCACbC;MAAAA,kDAAiB;6BACjBC;MAAAA,0CAAa;4BACbC;MAAAA,wCAAY;4BACZC;MAAAA,wCAAY;2BACZC;MAAAA,sCAAW;AAEX,MAAM9D,SAAS,GAAG+D,UAAU,CAAC9D,QAAM,CAAC,MAAD,CAAP,iCACvBA,QAAM,CAAC,aAAD,CADiB,IACCwD,UAAU,KAAK,YADhB,cAEvBxD,QAAM,CAAC,WAAD,CAFiB,IAEDwD,UAAU,KAAK,UAFd,cAGvBxD,QAAM,CAAC,cAAD,CAHiB,IAGEwD,UAAU,KAAK,QAHjB,cAIvBxD,QAAM,CAAC,eAAD,CAJiB,IAIGyD,cAAc,KAAK,OAJtB,cAKvBzD,QAAM,CAAC,aAAD,CALiB,IAKCyD,cAAc,KAAK,KALpB,cAMvBzD,QAAM,CAAC,gBAAD,CANiB,IAMIyD,cAAc,KAAK,QANvB,cAOvBzD,QAAM,CAAC,uBAAD,CAPiB,IAOWyD,cAAc,KAAK,eAP9B,cAQvBzD,QAAM,CAAC,aAAD,CARiB,IAQC0D,UARD,eAA5B;AAUA,MAAMK,KAAK,GAAGpE,cAAK,CAACqE,QAAN,CAAeC,OAAf,CAAuB1B,QAAvB,EAAiC2B,MAAjC,CAAwCC,OAAxC,CAAd;AACA,MAAMC,aAAa,GAAGL,KAAK,CAACM,MAAN,GAAe,CAArC;AAEA,SACI1E,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEA;AACXD,IAAAA,KAAK,EAAE;AAAEwE,MAAAA,aAAa,EAAEX,SAAjB;AAA4BE,MAAAA,QAAQ,EAARA;AAA5B;6BACcF;GAHzB,EAKKI,KAAK,CAACQ,GAAN,CAAU,UAACC,KAAD,EAAQC,CAAR;AAAA,WACP9E,4BAAA,MAAA;AACI+E,MAAAA,GAAG,EAAED;AACL3E,MAAAA,KAAK,EAAE;AACH6E,QAAAA,OAAO,EAAGf,SAAS,IAAI,MAAd,IAAyB,QAD/B;AAEHL,QAAAA,IAAI,EAAEA,IAAI,GAAGA,IAAI,CAACkB,CAAD,CAAJ,IAAW,UAAd,GAA2B,UAFlC;AAGHG,QAAAA,WAAW,EACPjB,SAAS,KAAK,KAAd,IAAuBc,CAAC,GAAGL,aAA3B,GACMd,KADN,GAEM,CANP;AAOHuB,QAAAA,YAAY,EACRlB,SAAS,KAAK,QAAd,IAA0Bc,CAAC,GAAGL,aAA9B,GACMd,KADN,GAEM;AAVP;KAFX,EAeKkB,KAfL,CADO;AAAA,GAAV,CALL,CADJ;AA2BH,CAnDD;;ACIA,IAAMM,MAAM,GAAoB,SAA1BA,MAA0B,CAAC1E,KAAD;AAAA,SAAWT,4BAAA,CAAC0D,IAAD,oBAAUjD;AAAOuD,IAAAA,SAAS,EAAC;IAA3B,CAAX;AAAA,CAAhC;;;;AChBA,IAAMoB,OAAO,GAAoB,SAA3BA,OAA2B;;;uBAC7B7F;MAAAA,8BAAO;wBACP8F;MAAAA,gCAAQ;wBACRC;MAAAA,gCAAQ;AAER,SACItF,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEmF,UAAU,gCAAIlF,QAAM,CAAC,gBAAD,CAAV,IAA+BiF,KAA/B;GAA1B,EACItF,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,SAAD;AACjBH,IAAAA,KAAK,EAAC;AACNT,IAAAA,KAAK,EAAEF;AACPG,IAAAA,MAAM,EAAEH;AACRU,IAAAA,OAAO,EAAC;mBACI;GANhB,EAQID,4BAAA,SAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CACjBlF,QAAM,CAAC,MAAD,CADW,EAEjBA,QAAM,YAAUgF,KAAV,CAFW;AAIrB/E,IAAAA,IAAI,EAAC;AACLkF,IAAAA,WAAW,EAAC;AACZC,IAAAA,aAAa,EAAC;AACdC,IAAAA,EAAE,EAAC;AACHC,IAAAA,EAAE,EAAC;AACHC,IAAAA,CAAC,EAAC;GAVN,CARJ,CADJ,CADJ;AAyBH,CA9BD;;;;;;ACTO,IAAMC,aAAa,GAAG;AACzBC,EAAAA,KAAK,EAAE,OADkB;AAEzBC,EAAAA,KAAK,EAAE;AAFkB,CAAtB;AAKP,AAAO,IAAMC,iBAAiB,GAAG;AAC7BC,EAAAA,MAAM,EAAE,QADqB;AAE7BC,EAAAA,GAAG,EAAE;AAFwB,CAA1B;AAKP,AAAO,IAAMC,sBAAsB,GAAG,GAA/B;AACP,AAAO,IAAMC,qBAAqB,GAAG,GAA9B;AACP,AAAO,IAAMC,KAAK,GAAG,EAAd;AACP,AAAO,IAAMC,OAAO,GAAG,EAAhB;AACP,AAAO,IAAMC,MAAM,GAAG,CAAf;AACP,AAAO,IAAMC,WAAW,GAAG,EAApB;AACP,AAAO,IAAMC,YAAY,GAAG,CAArB;;ACAA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAC7BC,SAD6B,EAE7BC,cAF6B,EAG7BC,mBAH6B;AAS7B,MAAI,CAACA,mBAAL,EAA0B;AACtB,WAAO;AACHC,MAAAA,OAAO,EAAErE,SADN;AAEHsE,MAAAA,KAAK,EAAEtE,SAFJ;AAGHuE,MAAAA,eAAe,EAAE;AACbL,QAAAA,SAAS,EAATA,SADa;AAEbM,QAAAA,GAAG,EAAE;AAFQ;AAHd,KAAP;AAQH;;AAED,MAAMD,eAAe,GAAGE,kBAAkB,CACtCP,SADsC,EAEtCC,cAFsC,EAGtCC,mBAAmB,CAACnH,MAHkB,CAA1C;AAKA,MAAMyH,eAAe,GAAGC,wBAAwB,CAC5CJ,eAD4C,EAE5CJ,cAF4C,EAG5CC,mBAAmB,CAACpH,KAHwB,CAAhD;AAKA,MAAM4H,aAAa,GACfF,eAAe,IACfG,sBAAsB,CAClBN,eAAe,CAACL,SADE,EAElBQ,eAFkB,EAGlBP,cAHkB,EAIlBC,mBAJkB,CAF1B;AASA,SAAO;AACHC,IAAAA,OAAO,EAAES,uBAAuB,CAC5BJ,eAD4B,EAE5BE,aAF4B,EAG5BR,mBAH4B,CAD7B;AAMHE,IAAAA,KAAK,EAAEM,aANJ;AAOHL,IAAAA,eAAe,EAAfA;AAPG,GAAP;AASH,CAhDM;AAkDP,AAAO,IAAMO,uBAAuB,GAAG,SAA1BA,uBAA0B,CACnCJ,eADmC,EAEnCE,aAFmC,EAGnCR,mBAHmC;AAKnC,MAAIW,IAAI,GAAGL,eAAe,CAACK,IAA3B;;AAEA,MAAIL,eAAe,CAACK,IAAhB,GAAuBH,aAAa,CAACG,IAAzC,EAA+C;AAC3CA,IAAAA,IAAI,GAAGH,aAAa,CAACG,IAAd,GAAqBf,YAA5B;AACH,GAFD,MAIK,IACDU,eAAe,CAACK,IAAhB,GAAuBX,mBAAmB,CAACpH,KAA3C,GACA4H,aAAa,CAACG,IAAd,GAAqBhB,WAFpB,EAGH;AACEgB,MAAAA,IAAI,GACAH,aAAa,CAACG,IAAd,GACAX,mBAAmB,CAACpH,KADpB,GAEA+G,WAFA,GAGAC,YAJJ;AAKH;;AACD,sBAAYU,eAAZ;AAA6BK,IAAAA,IAAI,EAAJA;AAA7B;AACH,CAtBM;AAwBP,AAAO,IAAMJ,wBAAwB,GAAG,SAA3BA,wBAA2B,CACpCJ,eADoC,EAEpCJ,cAFoC,EAGpCa,YAHoC;MAGpCA;AAAAA,IAAAA,eAAuB;;;AAGvB,MAAMC,QAAQ,GAAa;AACvBjI,IAAAA,KAAK,EAAEgI,YAAY,GAAGnB,OAAO,GAAG,CADT;AAEvBkB,IAAAA,IAAI,EAAE,CAFiB;AAGvBP,IAAAA,GAAG,EAAE;AAHkB,GAA3B;AAOAS,EAAAA,QAAQ,CAACF,IAAT,GACIZ,cAAc,CAACnH,KAAf,GAAuB,CAAvB,GACAmH,cAAc,CAACY,IADf,GAEAC,YAAY,GAAG,CAFf,GAGAlB,MAJJ;AAKAmB,EAAAA,QAAQ,CAACF,IAAT,GAAgBG,IAAI,CAACC,GAAL,CAASvB,KAAT,EAAgBqB,QAAQ,CAACF,IAAzB,CAAhB;AACAE,EAAAA,QAAQ,CAACF,IAAT,GAAgBG,IAAI,CAACE,GAAL,CACZH,QAAQ,CAACF,IADG,EAEZM,MAAM,CAACC,UAAP,GAAoBN,YAApB,GAAmCpB,KAFvB,CAAhB;AAKAqB,EAAAA,QAAQ,CAACT,GAAT,GAAeD,eAAe,CAACC,GAA/B;AAEA,SAAOS,QAAP;AACH,CA3BM;AA6BP,AAAO,IAAMR,kBAAkB,GAAG,SAArBA,kBAAqB,CAC9BP,SAD8B,EAE9BC,cAF8B,EAG9BoB,aAH8B;AAK9B,MAAMC,WAAW,GAAGrB,cAAc,CAACK,GAAf,GAAqBe,aAArB,GAAqC3B,KAAzD;AACA,MAAM6B,cAAc,GAAGtB,cAAc,CAACK,GAAf,GAAqBL,cAAc,CAAClH,MAApC,GAA6C2G,KAApE;AAEA,MAAIW,eAAJ;;AAEA,MAAIL,SAAS,KAAKX,iBAAiB,CAACC,MAApC,EAA4C;AACxCe,IAAAA,eAAe,GACXkB,cAAc,GAAGF,aAAjB,GAAiCF,MAAM,CAACK,WAAxC,GACMnC,iBAAiB,CAACC,MADxB,GAEMD,iBAAiB,CAACE,GAH5B;AAIH,GALD,MAKO;AACHc,IAAAA,eAAe,GACXiB,WAAW,IAAI,CAAf,GAAmBjC,iBAAiB,CAACC,MAArC,GAA8CD,iBAAiB,CAACE,GADpE;AAEH;;AACD,MAAMe,GAAG,GACLD,eAAe,KAAKhB,iBAAiB,CAACC,MAAtC,GACMiC,cADN,GAEMD,WAHV;AAKA,SAAO;AACHtB,IAAAA,SAAS,EAAEK,eADR;AAEHC,IAAAA,GAAG,EAAHA;AAFG,GAAP;AAIH,CA5BM;AAkCP,AAAO,IAAMK,sBAAsB,GAAG,SAAzBA,sBAAyB,CAClCX,SADkC,EAElCyB,eAFkC,EAGlCxB,cAHkC,EAIlCC,mBAJkC;AAMlC,MAAII,GAAJ;;AACA,MAAIN,SAAS,KAAKX,iBAAiB,CAACC,MAApC,EAA4C;AACxCgB,IAAAA,GAAG,GAAG,CAAC,CAAAmB,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEnB,GAAjB,KAAwB,CAAzB,IAA8B,CAApC;AACH,GAFD,MAEO;AACHA,IAAAA,GAAG,GAAGmB,eAAe,CAACnB,GAAhB,IAAuB,CAAAJ,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEnH,MAArB,KAA+B,CAAtD,IAA2D,CAAjE;AACH;;AACD,SAAO;AACH8H,IAAAA,IAAI,EAAEZ,cAAc,CAACnH,KAAf,GAAuB,CAAvB,GAA2BmH,cAAc,CAACY,IAA1C,GAAiDhB,WAAW,GAAG,CADlE;AAEHS,IAAAA,GAAG,EAAHA;AAFG,GAAP;AAIH,CAhBM;;;ACzJP;AAmBA,IAAMoB,KAAK,GAAoB,SAAzBA,KAAyB;AAAA,6BAAGxE,UAAH;AAAA,MAAGA,UAAH,gCAAgB,SAAhB;AAAA,MAA8BpD,KAA9B;;AAAA,SAC3BT,aAAA,CAAC0D,IAAD,oBAAUjD;AAAOoD,IAAAA,UAAU,EAAEA;AAAYG,IAAAA,SAAS,EAAC;IAAnD,CAD2B;AAAA,CAA/B;;ACjBO,IAAMsE,YAAY,GAAG,SAAfA,YAAe;AACxB,MAAMC,SAAS,GAAGxF,MAAM,CAAC,KAAD,CAAxB;AACAyF,EAAAA,SAAS,CAAC;AACND,IAAAA,SAAS,CAACE,OAAV,GAAoB,IAApB;AACA,WAAO,SAASC,OAAT;AACHH,MAAAA,SAAS,CAACE,OAAV,GAAoB,KAApB;AACH,KAFD;AAGH,GALQ,EAKN,EALM,CAAT;AAMA,MAAME,OAAO,GAAGC,WAAW,CAAC;AACxB,WAAOL,SAAS,CAACE,OAAjB;AACH,GAF0B,EAExB,EAFwB,CAA3B;AAGA,SAAOE,OAAP;AACH,CAZM;;ACDA,IAAME,cAAc,GAAG;AAC1BC,EAAAA,IAAI,EAAE,CADoB;AAE1BC,EAAAA,KAAK,EAAE,GAFmB;AAG1BC,EAAAA,IAAI,EAAE,GAHoB;AAI1BC,EAAAA,OAAO,EAAE;AAJiB,CAAvB;AAOP,AAAO,IAAMC,WAAW,GAAG,4BAApB;;ACHA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAC9B,kBAAkCtG,QAAQ,EAA1C;AAAA,MAAOuG,SAAP;AAAA,MAAkBC,YAAlB;;AAEAb,EAAAA,SAAS,CAAC;;;AACN,QAAMc,gBAAgB,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAzB;AACAF,IAAAA,gBAAgB,CAACG,YAAjB,CAA8B,OAA9B;AACA,sBAAAF,QAAQ,CAACG,IAAT,kEAAeC,OAAf,CAAuBL,gBAAvB;AACAD,IAAAA,YAAY,CAACC,gBAAD,CAAZ;AAEA,WAAO;AACHA,MAAAA,gBAAgB,CAACM,MAAjB;AACH,KAFD;AAGH,GATQ,EASN,EATM,CAAT;AAWA,SAAOR,SAAP;AACH,CAfM;;ACIP,IAAMS,MAAM,GAAoB,SAA1BA,MAA0B;MAAGjH,gBAAAA;AAC/B,MAAMwG,SAAS,GAAGD,kBAAkB,EAApC;;AAEA,MAAI,CAACC,SAAL,EAAgB;AACZ,WAAO,IAAP;AACH;;AACD,SAAOU,QAAQ,CAACC,YAAT,CAAsBnH,QAAtB,EAAgCwG,SAAhC,CAAP;AACH,CAPD;;ACaA,IAAMY,cAAc,GAAoB,SAAlCA,cAAkC;;;MACpCpH,gBAAAA;MACAgE,sBAAAA;MACAD,iBAAAA;MACAtB,aAAAA;MACA4E,cAAAA;MACAC,eAAAA;MACAC,iBAAAA;MACAC,kBAAAA;MACAC,kBAAAA;;AAEA,kBAAkCxH,QAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOyH,SAAP;AAAA,MAAkBC,YAAlB;;AACA,MAAMC,UAAU,GAAGzH,MAAM,CAAiB,IAAjB,CAAzB;AACA,MAAM0H,cAAc,GAAGnC,YAAY,EAAnC;AAEAE,EAAAA,SAAS,CAAC;AACNkC,IAAAA,UAAU,CAAC;AACPD,MAAAA,cAAc,MAAMF,YAAY,CAAC,IAAD,CAAhC;AACH,KAFS,EAEP,EAFO,CAAV;AAGH,GAJQ,EAIN,CAACE,cAAD,CAJM,CAAT;AAMAjC,EAAAA,SAAS,CAAC;AACNV,IAAAA,MAAM,CAAC6C,gBAAP,CAAwB,QAAxB,EAAkCT,OAAlC;AACA,WAAO;AACHpC,MAAAA,MAAM,CAAC8C,mBAAP,CAA2B,QAA3B,EAAqCV,OAArC;AACH,KAFD;AAGH,GALQ,EAKN,EALM,CAAT;AAOA,MAAMrD,mBAAmB,GAAG2D,UAAH,aAAGA,UAAH,8CAAGA,UAAU,CAAE/B,OAAf,wDAAG,oBAAqBoC,qBAArB,EAA5B;AACA,MAAMnD,QAAQ,GAAGhB,iBAAiB,CAC9BC,SAD8B,EAE9BC,cAF8B,EAG9BC,mBAH8B,CAAlC;AAMA,SACI7G,4BAAA,CAAC6J,MAAD,MAAA,EACI7J,4BAAA,MAAA,MAAA,EACIA,4BAAA,MAAA;AACI8K,IAAAA,GAAG,EAAEN;AACLrK,IAAAA,KAAK,eACEuH,QAAQ,CAACZ,OADX;AAEDiE,MAAAA,MAAM,EAAElC,cAAc,CAACI;AAFtB;AAIL7I,IAAAA,SAAS,EAAEmF,UAAU,CACjBlF,QAAM,CAAC,iBAAD,CADW,EAEjBgK,UAFiB,iCAIZhK,QAAM,CAAC,0BAAD,CAJM,IAIyBiK,SAJzB,cAKZjK,QAAM,CAAC,8BAAD,CALM,IAMTgF,KAAK,KAAKQ,aAAa,CAACC,KANf,cAOZzF,QAAM,CAAC,8BAAD,CAPM,IAQTgF,KAAK,KAAKQ,aAAa,CAACE,KARf;AAWrBiF,IAAAA,YAAY,EAAEb;AACdc,IAAAA,YAAY,EAAEb;GAlBlB,EAoBIpK,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACKsG,MAAM,IACHjK,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,yBAAD;GAAtB,EACK4J,MADL,CAFR,EAMKrH,QANL,CApBJ,CADJ,EA8BI5C,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CACjBlF,QAAM,CAAC,uBAAD,CADW,EAEjBgK,UAFiB,mCAIZhK,QAAM,CAAC,gCAAD,CAJM,IAKTiK,SALS,eAMZjK,QAAM,CAAC,4BAAD,CANM,IAOTqH,QAAQ,CAACV,eAAT,CAAyBL,SAAzB,KACAX,iBAAiB,CAACE,GART,eASZ7F,QAAM,CAAC,+BAAD,CATM,IAUTqH,QAAQ,CAACV,eAAT,CAAyBL,SAAzB,KACAX,iBAAiB,CAACC,MAXT,eAYZ5F,QAAM,CAAC,oCAAD,CAZM,IAaTgF,KAAK,KAAKQ,aAAa,CAACC,KAbf,eAcZzF,QAAM,CAAC,oCAAD,CAdM,IAeTgF,KAAK,KAAKQ,aAAa,CAACE,KAff;AAkBrB5F,IAAAA,KAAK,eACEuH,QAAQ,CAACX,KADX;AAEDgE,MAAAA,MAAM,EAAElC,cAAc,CAACI;AAFtB;AAIL+B,IAAAA,YAAY,EAAEb;GAvBlB,CA9BJ,CADJ,CADJ;AA4DH,CA/FD;;ACQA,IAAMe,OAAO,GAAG,SAAVA,OAAU,OAWZC,YAXY;;;wBAER9F;MAAAA,gCAAQQ,aAAa,CAACC;4BACtBa;MAAAA,wCAAYX,iBAAiB,CAACC;+BAC9BmF;MAAAA,8CAAe;8BACfC;MAAAA,4CAAc;MACdvE,eAAAA;MACAmD,cAAAA;MACAI,kBAAAA;MACAzH,gBAAAA;AAIJ,MAAM6H,cAAc,GAAGnC,YAAY,EAAnC;AACA,MAAMgD,WAAW,GAAGvI,MAAM,CAAiB,IAAjB,CAA1B;AACA,MAAMwI,YAAY,GAAGJ,YAAY,IAAIG,WAArC;;AACA,kBAAkCzI,QAAQ,CAAC,KAAD,CAA1C;AAAA,MAAOyH,SAAP;AAAA,MAAkBC,YAAlB;;AACA,MAAMiB,mBAAmB,GAAGzI,MAAM,CAAC,KAAD,CAAlC;AACA,MAAM0I,kBAAkB,GAAG1I,MAAM,CAAC,KAAD,CAAjC;;AAEA,MAAM2I,eAAe,GAAG,SAAlBA,eAAkB;AACpBD,IAAAA,kBAAkB,CAAChD,OAAnB,GAA6B,IAA7B;AACH,GAFD;;AAGA,MAAMkD,gBAAgB,GAAG,SAAnBA,gBAAmB;AACrBF,IAAAA,kBAAkB,CAAChD,OAAnB,GAA6B,KAA7B;AACH,GAFD;;AAGA,MAAMmD,WAAW,GAAG,SAAdA,WAAc;AAChBF,IAAAA,eAAe;;AACf,QAAIL,WAAJ,EAAiB;AACbX,MAAAA,UAAU,CAAC;AACPD,QAAAA,cAAc,MACVgB,kBAAkB,CAAChD,OADvB,IAEI8B,YAAY,CAAC,IAAD,CAFhB;AAGH,OAJS,EAIPnE,qBAJO,CAAV;AAKH,KAND,MAMO;AACHmE,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACH;AACJ,GAXD;;AAaA,MAAMsB,YAAY,GAAG,SAAfA,YAAe;AAAA,WAAMtB,YAAY,CAAC,KAAD,CAAlB;AAAA,GAArB;;AACA,MAAMuB,qBAAqB,GAAG,SAAxBA,qBAAwB;AAC1BH,IAAAA,gBAAgB;;AAChB,QAAIP,YAAJ,EAAkB;AACdV,MAAAA,UAAU,CAAC;AACPD,QAAAA,cAAc,MACV,CAACe,mBAAmB,CAAC/C,OADzB,IAEIoD,YAAY,EAFhB;AAGH,OAJS,EAIP1F,sBAJO,CAAV;AAKH,KAND,MAMO;AACH0F,MAAAA,YAAY;AACf;AACJ,GAXD;;AAYA,MAAME,cAAc,GAAG/L,cAAK,CAACqE,QAAN,CAAe2H,KAAf,CAAqBpJ,QAArB,CAAvB;;AAEA,MAAK,CAACkE,OAAD,IAAY,CAACmD,MAAd,IAAyB8B,cAAc,KAAK,CAAhD,EAAmD;AAC/C,WAAOnJ,QAAP;AACH;;AAED,MAAMgE,cAAc,GAChB,OAAO2E,YAAP,KAAwB,UAAxB,KACAA,YADA,aACAA,YADA,gDACAA,YAAY,CAAE9C,OADd,0DACA,sBAAuBoC,qBAAvB,EADA,CADJ;;AAIA,MAAMoB,OAAO,GAAG,SAAVA,OAAU;AAAA,WACZ3B,SAAS,IAAI1D,cAAb,GACI5G,4BAAA,CAACgK,cAAD;AACIpD,MAAAA,cAAc,EAAEA;AAChBD,MAAAA,SAAS,EAAEA;AACXtB,MAAAA,KAAK,EAAEA;AACP4E,MAAAA,MAAM,EACF5E,KAAK,KAAKQ,aAAa,CAACC,KAAxB,IAAiC,CAACmE,MAAlC,GAA2CnD,OAA3C,GAAqDmD;AAEzDC,MAAAA,OAAO,EAAE2B;AACT1B,MAAAA,SAAS,EAAE;AACPqB,QAAAA,mBAAmB,CAAC/C,OAApB,GAA8B,IAA9B;AACH;AACD2B,MAAAA,UAAU,EAAE;AACRoB,QAAAA,mBAAmB,CAAC/C,OAApB,GAA8B,KAA9B;AACAoD,QAAAA,YAAY;AACf;AACDxB,MAAAA,UAAU,EAAEA;KAfhB,EAiBKhF,KAAK,KAAKQ,aAAa,CAACC,KAAxB,IAAiC,CAACmE,MAAlC,GAA2C,IAA3C,GAAkDnD,OAjBvD,CADJ,GAoBI,IArBQ;AAAA,GAAhB;;AAuBA,MAAI9G,cAAK,CAACqE,QAAN,CAAe2H,KAAf,CAAqBpJ,QAArB,MAAmC,CAAvC,EAA0C;AACtC,WACI5C,4BAAA,CAACkM,QAAD,MAAA,EACKlM,cAAK,CAACqE,QAAN,CAAeO,GAAf,CAAmBhC,QAAnB,EAA6B,UAACiC,KAAD;AAC1B,aAAO7E,cAAK,CAACmM,YAAN,CAAmBtH,KAAnB,EAA0B;AAC7BmG,QAAAA,YAAY,EAAEY,WADe;AAE7BX,QAAAA,YAAY,EAAEa,qBAFe;AAG7BM,QAAAA,OAAO,EAAER,WAHoB;AAI7BS,QAAAA,MAAM,EAAEP,qBAJqB;AAK7BhB,QAAAA,GAAG,EAAES;AALwB,OAA1B,CAAP;AAOH,KARA,CADL,EAUIvL,4BAAA,CAACiM,OAAD,MAAA,CAVJ,CADJ;AAcH;;AAED,SACIjM,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,SAAD,CAAP;AACrB2K,IAAAA,YAAY,EAAEY;AACdX,IAAAA,YAAY,EAAEa;AACdM,IAAAA,OAAO,EAAER;AACTS,IAAAA,MAAM,EAAEP;AACRhB,IAAAA,GAAG,EAAES;GANT,EAQK3I,QARL,EASI5C,4BAAA,CAACiM,OAAD,MAAA,CATJ,CADJ;AAaH,CAnHD;;AAqHA,gBAAeK,UAAU,CAAwBpB,OAAxB,CAAzB;;;;;ACnJA;AAsCA,IAAMqB,MAAM,GAAG,SAATA,MAAS,OAcXzB,GAdW;;;MAEPlI,gBAAAA;uBACA4J;MAAAA,8BAAO;wBACPnH;MAAAA,gCAAQ;2BACRoH;MAAAA,sCAAW;MACXtJ,eAAAA;MACAuJ,UAAAA;MACAC,YAAAA;MACAC,eAAAA;MACAC,aAAAA;MACAC,YAAAA;yBACAC;MAAAA,kCAAS;AAIb,MAAMC,eAAe,GAAG,CACpB,SADoB,EAEpB,QAFoB,EAGpB,QAHoB,EAIpB,WAJoB,EAKpB,eALoB,CAAxB;AAQA,MAAMC,WAAW,GAAG5I,QAAQ,CAACC,OAAT,CAAiB1B,QAAjB,CAApB;AACA,MAAMsK,UAAU,GAAGD,WAAW,CAACvI,MAAZ,KAAuB,CAAvB,IAA4B,OAAOuI,WAAW,CAAC,CAAD,CAAlB,IAAyB,QAAxE;AAEA,SACIjN,4BAAA,CAACkL,SAAD;AAASpE,IAAAA,OAAO,EAAE+F;GAAlB,EACI7M,4BAAA,CAACmN,aAAD;AACIT,IAAAA,EAAE,EAAEA;AACJvJ,IAAAA,OAAO,EAAEA;AACT/C,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,QAAD,CAAP,iCAChBA,QAAM,CAAC,iBAAD,CADU,IACYgF,KAAK,KAAK,SADtB,cAEhBhF,QAAM,CAAC,iBAAD,CAFU,IAEYgF,KAAK,KAAK,SAFtB,cAGhBhF,QAAM,CAAC,gBAAD,CAHU,IAGWgF,KAAK,KAAK,QAHrB,cAIhBhF,QAAM,CAAC,gBAAD,CAJU,IAIWgF,KAAK,KAAK,QAJrB,cAKhBhF,QAAM,CAAC,mBAAD,CALU,IAKcgF,KAAK,KAAK,WALxB,cAMhBhF,QAAM,CAAC,gBAAD,CANU,IAMWgF,KAAK,KAAK,QANrB,cAOhBhF,QAAM,CAAC,sBAAD,CAPU,IAOiBgF,KAAK,KAAK,cAP3B,cAQhBhF,QAAM,CAAC,qBAAD,CARU,IAQgBgF,KAAK,KAAK,aAR1B,cAShBhF,QAAM,CAAC,qBAAD,CATU,IASgBgF,KAAK,KAAK,aAT1B,cAUhBhF,QAAM,CAAC,sBAAD,CAVU,IAUiBgF,KAAK,KAAK,cAV3B,cAWhBhF,QAAM,CAAC,uBAAD,CAXU,IAYbgF,KAAK,KAAK,eAZG,cAahBhF,QAAM,CAAC,mBAAD,CAbU,IAacgF,KAAK,KAAK,WAbxB,cAchBhF,QAAM,CAAC,cAAD,CAdU,IAcSsM,IAdT,cAehBtM,QAAM,CAAC,iBAAD,CAfU,IAeYuM,OAfZ,cAgBhBvM,QAAM,CAAC,mBAAD,CAhBU,IAgBc6M,UAhBd;AAkBrBV,IAAAA,IAAI,EAAEA;AACNC,IAAAA,QAAQ,EAAEA,QAAQ,IAAIG;AACtBE,IAAAA,IAAI,EAAEA;AACNhC,IAAAA,GAAG,EAAEA;AACLiC,IAAAA,MAAM,EAAEA;GAzBZ,EA2BI/M,4BAAA,CAACmF,MAAD;AAAQxB,IAAAA,KAAK,EAAE;AAAGE,IAAAA,UAAU,EAAC;GAA7B,EACKjB,QADL,CA3BJ,EA8BKgK,OAAO,IACJ5M,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,iBAAD;GAAtB,EACIL,4BAAA,CAACoF,OAAD;AACIC,IAAAA,KAAK,EACD2H,eAAe,CAACI,QAAhB,CAAyB/H,KAAzB,IACM,UADN,GAEM;GAJd,CADJ,CA/BR,CADJ,CADJ;AA8CH,CAzED;;AAqFA,IAAM8H,aAAa,GAAGb,UAAU,CAI5B,iBAYIxB,GAZJ;MAEQ4B,WAAAA;MACAvJ,gBAAAA;MACA/C,kBAAAA;MACAoM,aAAAA;MACAC,iBAAAA;MACAK,aAAAA;MACAC,eAAAA;MACAnK,iBAAAA;MACGyK;;AAIP,MAAMC,WAAW,GAAG;AAChBZ,IAAAA,EAAE,EAAEA,EADY;AAEhBvJ,IAAAA,OAAO,EAAEA,OAFO;AAGhB/C,IAAAA,SAAS,EAATA,SAHgB;AAIhBqM,IAAAA,QAAQ,EAARA;AAJgB,GAApB;;AAMA,MAAIK,IAAJ,EAAU;AACN,WACI9M,4BAAA,IAAA,oBACQsN,aACAD;AACJP,MAAAA,IAAI,EAAEA;AACNC,MAAAA,MAAM,EAAEA;uBACON;AACf3B,MAAAA,GAAG,EAAEA;MANT,EAQKlI,QARL,CADJ;AAYH;;AACD,SACI5C,4BAAA,SAAA,oBACQsN,aACAD;AACJb,IAAAA,IAAI,EAAEA;AACN1B,IAAAA,GAAG,EAAEA;IAJT,EAMKlI,QANL,CADJ;AAUH,CAhD2B,CAAhC;AAmDA,eAAe0J,UAAU,CAA+CC,MAA/C,CAAzB;;ACtJA,IAAMgB,UAAU,GAAoB,SAA9BA,UAA8B;wBAAGlI;MAAAA,gCAAQ;MAAazC,gBAAAA;;AACxD,wBAAqCF,cAAc,EAAnD;AAAA,MAAQJ,YAAR,mBAAQA,YAAR;AAAA,MAAsBE,UAAtB,mBAAsBA,UAAtB;;AAEA,SACIxC,4BAAA,CAACuM,QAAD;AACIpJ,IAAAA,OAAO,EAAE,iBAACE,CAAD;AACLf,MAAAA,YAAY;AACZe,MAAAA,CAAC,CAACC,eAAF;AACH;AACD+B,IAAAA,KAAK,EAAEA;AACPyF,IAAAA,GAAG,EAAEtI;GANT,EAQKI,QARL,CADJ;AAYH,CAfD;;ACnBA,SAAS4K,aAAT,CACI1C,GADJ,EAEI2C,KAFJ;AAII,SACI,CAAC3C,GAAG,CAACrC,OAAL,IAECgF,KAAK,CAACV,MAAN,YAAwBW,IAAxB,IAAgC5C,GAAG,CAACrC,OAAJ,CAAYkF,QAAZ,CAAqBF,KAAK,CAACV,MAA3B,CAHrC;AAKH;;AAGD,SAAwBa,kBACpB9C,KACA+C;AAEA7N,EAAAA,cAAK,CAACwI,SAAN,CAAgB;AACZ,QAAMsF,QAAQ,GAAG,SAAXA,QAAW,CAACL,KAAD;AACb,UAAID,aAAa,CAAI1C,GAAJ,EAAS2C,KAAT,CAAjB,EAAkC;AAC9B;AACH;;AAEDI,MAAAA,EAAE,CAACJ,KAAD,CAAF;AACH,KAND;;AAQAlE,IAAAA,QAAQ,CAACoB,gBAAT,CAA0B,WAA1B,EAAuCmD,QAAvC;AACAvE,IAAAA,QAAQ,CAACoB,gBAAT,CAA0B,YAA1B,EAAwCmD,QAAxC;AAEA,WAAO;AACHvE,MAAAA,QAAQ,CAACqB,mBAAT,CAA6B,WAA7B,EAA0CkD,QAA1C;AACAvE,MAAAA,QAAQ,CAACqB,mBAAT,CAA6B,YAA7B,EAA2CkD,QAA3C;AACH,KAHD;AAIH,GAhBD,EAgBG,CAAChD,GAAD,EAAM+C,EAAN,CAhBH;AAiBH;;ACzBD,IAAME,QAAQ,GAAoB,SAA5BA,QAA4B;;;MAAGnL,gBAAAA;AACjC,MAAMoL,WAAW,GAAGjL,MAAM,CAAmB,IAAnB,CAA1B;;AACA,wBAA6CL,cAAc,EAA3D;AAAA,MAAQH,MAAR,mBAAQA,MAAR;AAAA,MAAgBD,YAAhB,mBAAgBA,YAAhB;AAAA,MAA8BE,UAA9B,mBAA8BA,UAA9B;;AACA,kBAAgCK,QAAQ,CAAC,EAAD,CAAxC;AAAA,MAAO6E,QAAP;AAAA,MAAiBuG,WAAjB;;AAEA,MAAMC,qBAAqB,GAAGtF,WAAW,CAAC;AACtC,QAAIrG,MAAJ,EAAY;AACRD,MAAAA,YAAY;AACf;AACJ,GAJwC,EAItC,CAACC,MAAD,CAJsC,CAAzC;AAMAqL,EAAAA,iBAAiB,CAACI,WAAD,EAAcE,qBAAd,CAAjB;AAEA1F,EAAAA,SAAS,CAAC;;;AACN,QAAM2F,eAAe,GAAG3L,UAAU,CAACiG,OAAX,CAAmBoC,qBAAnB,EAAxB;AACA,QAAMuD,YAAY,2BAAGJ,WAAW,CAACvF,OAAf,yDAAG,qBAAqBoC,qBAArB,EAArB;AACA,QAAMwD,SAAS,GAAG,CAAAD,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE3O,KAAd,KAAuB,GAAzC;AAEA,QAAM6O,GAAG,GAAG;AACR9G,MAAAA,IAAI,EAAE2G,eAAe,CAAC3G,IAAhB,GAAuB2G,eAAe,CAAC1O,KAAvC,GAA+C4O,SAD7C;AAERpH,MAAAA,GAAG,EACCkH,eAAe,CAAClH,GAAhB,GACAa,MAAM,CAACyG,OADP,GAEAJ,eAAe,CAACzO,MAFhB,GAGA;AANI,KAAZ;AAQAuO,IAAAA,WAAW,CAACK,GAAD,CAAX;AACH,GAdQ,EAcN,CAAC/L,MAAD,EAASC,UAAT,CAdM,CAAT;AAgBA,SACIxC,4BAAA,CAAC6J,MAAD,MAAA,EACI7J,4BAAA,KAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,MAAD,CAAP,iCAChBA,QAAM,CAAC,cAAD,CADU,IACSkC,MADT;AAGrBkB,IAAAA,IAAI,EAAC;AACLtD,IAAAA,KAAK,EAAEuH;AACPoD,IAAAA,GAAG,EAAEkD;GANT,EAQKpL,QARL,CADJ,CADJ;AAcH,CA3CD;;;;ACSA,IAAM4L,gBAAgB,GAAoB,SAApCA,gBAAoC;;;MACtC5L,gBAAAA;MACAO,eAAAA;6BACAsL;MAAAA,0CAAa;0BACbC;MAAAA,oCAAU;;AAEV,8BAAwCzM,uBAAuB,EAA/D;AAAA,MAAQ0M,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,cAArB,yBAAqBA,cAArB;;AACA,MAAMC,UAAU,GAAGtJ,UAAU,CAAClF,QAAM,CAAC,MAAD,CAAP,iCACxBA,QAAM,CAAC,WAAD,CADkB,IACF8C,OADE,cAExB9C,QAAM,CAAC,UAAD,CAFkB,IAEHoO,UAFG,eAA7B;;AAIA,MAAMK,YAAY,GAAG,SAAfA,YAAe,CAACC,aAAD,EAAiCC,KAAjC;AACjB,WACIhP,4BAAA,MAAA;AACII,MAAAA,SAAS,EAAEC,QAAM,CAAC,aAAD;AACjBF,MAAAA,KAAK,EAAE;AACHyD,QAAAA,IAAI,EAAG+K,WAAW,IAAIA,WAAW,CAACK,KAAD,CAA3B,IAAuC;AAD1C;AAGPjK,MAAAA,GAAG,EAAEiK;qBACO;KANhB,EAQKD,aARL,CADJ;AAYH,GAbD;;AAcA,MAAME,cAAc,GAAGjP,cAAK,CAACqE,QAAN,CAAeC,OAAf,CAAuB1B,QAAvB,CAAvB;AACA,SACI5C,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEyO;AACX1L,IAAAA,OAAO,EAAEA,OAAO,GAAGA,OAAH,GAAaV;AAC7Bc,IAAAA,UAAU,EAAEJ,OAAO,GAAGA,OAAH,GAAaV;mBACpB;AACZgB,IAAAA,IAAI,EAAC;AACLD,IAAAA,QAAQ,EAAE;GANd,EAQKyL,cAAc,CAACrK,GAAf,CAAmBkK,YAAnB,CARL,EASKF,cAAc,IACX5O,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CACjBlF,QAAM,CAAC,aAAD,CADW,EAEjBA,QAAM,CAAC,SAAD,CAFW;mBAIT;GALhB,EAOKqO,OAAO,CAAChK,MAAR,GAAiB,CAAjB,IACG1E,4BAAA,CAAC2C,IAAD,MAAA,EACI3C,4BAAA,CAACuN,UAAD,MAAA,EACIvN,4BAAA,CAAC0B,QAAD,MAAA,CADJ,CADJ,EAII1B,4BAAA,CAAC+N,QAAD,MAAA,EACKW,OAAO,CAAC9J,GAAR,CACG,UAACsK,MAAD,EAAiBF,KAAjB;AAAA,WACIhP,4BAAA,CAACkD,QAAD;AACIC,MAAAA,OAAO,EAAE+L,MAAM,CAACC;AAChBpK,MAAAA,GAAG,EAAEiK;KAFT,EAIKE,MAAM,CAACE,KAJZ,CADJ;AAAA,GADH,CADL,CAJJ,CARR,CAVR,CADJ;AAyCH,CAnED;;;;ACXA,IAAMC,UAAU,GAAc;AAC1BC,EAAAA,GAAG,EAAE,KADqB;AAE1BC,EAAAA,IAAI,EAAE;AAFoB,CAA9B;;AAcA,IAAMC,mBAAmB,GAAoB,SAAvCA,mBAAuC;MACzCC,eAAAA;MACAC,cAAAA;MACAd,sBAAAA;AAGA,MAAMe,UAAU,GAAGF,OAAO,CAACG,IAAR,CACf,UAACC,MAAD;AAAA,WAAYA,MAAM,CAACT,KAAP,IAAgBS,MAAM,CAACT,KAAP,KAAiB,EAA7C;AAAA,GADe,CAAnB;;AAGA,MAAI,CAACO,UAAL,EAAiB;AACb,WAAO,IAAP;AACH;;AAED,MAAMG,UAAU,GAAG,SAAbA,UAAa,CAACD,MAAD;AACf,QAAME,aAAa,GAAGC,WAAW,CAACH,MAAD,CAAjC;;AACA,QAAIH,MAAJ,EAAY;AACRA,MAAAA,MAAM,CAAC;AACHO,QAAAA,UAAU,EAAEJ,MAAM,CAACK,IADhB;AAEHlM,QAAAA,SAAS,EAAE+L;AAFR,OAAD,CAAN;AAIH;AACJ,GARD;;AASA,SACI/P,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;GAAtB,EACKoP,OAAO,CAAC7K,GAAR,CAAY,UAACiL,MAAD;;;AACT,QAAMM,UAAU,GAAGN,MAAM,CAACM,UAA1B;AACA,QAAMC,OAAO,GAAGP,MAAM,CAACQ,WAAvB;AACA,WACIrQ,4BAAA,MAAA;AACII,MAAAA,SAAS,EAAEmF,UAAU,gCAChBlF,QAAM,CAAC,aAAD,CADU,IACQ,IADR,cAEhBA,QAAM,CAAC,uBAAD,CAFU,IAEkB8P,UAFlB;AAIrBhQ,MAAAA,KAAK,EAAE;AACHyD,QAAAA,IAAI,EAAEiM,MAAM,CAACtQ,IAAP,IAAe;AADlB;AAGPwF,MAAAA,GAAG,EAAE8K,MAAM,CAACK;AACZ/M,MAAAA,OAAO,EAAE;AAAA,eAAMgN,UAAU,IAAIL,UAAU,CAACD,MAAD,CAA9B;AAAA;AACTtM,MAAAA,UAAU,EAAE;AAAA,eAAM4M,UAAU,IAAIL,UAAU,CAACD,MAAD,CAA9B;AAAA;AACZpM,MAAAA,IAAI,EAAC;AACLD,MAAAA,QAAQ,EAAE;KAZd,EAcKqM,MAAM,CAACT,KAdZ,EAcmB,GAdnB,EAeKe,UAAU,IACPnQ,4BAAA,OAAA;AAAMI,MAAAA,SAAS,EAAEC,QAAM,CAAC,kBAAD;KAAvB,EACIL,4BAAA,CAACsQ,QAAD;AAAUC,MAAAA,aAAa,EAAEH;KAAzB,CADJ,CAhBR,CADJ;AAuBH,GA1BA,CADL,EA4BKxB,cAAc,IACX5O,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CACjBlF,QAAM,CAAC,aAAD,CADW,EAEjBA,QAAM,CAAC,qBAAD,CAFW;GADzB,CA7BR,CADJ;AAuCH,CA7DD;;AA+DA,IAAM2P,WAAW,GAAG,SAAdA,WAAc,CAACH,MAAD;AAChB,UAAQA,MAAM,CAACQ,WAAf;AACI,SAAKhB,UAAU,CAACC,GAAhB;AACI,aAAO,IAAP;;AACJ,SAAKD,UAAU,CAACE,IAAhB;AACI,aAAOF,UAAU,CAACC,GAAlB;;AACJ;AACI,aAAOD,UAAU,CAACE,IAAlB;AANR;AAQH,CATD;;AAcA,IAAMe,QAAQ,GAAG,SAAXA,QAAW;MAAGC,sBAAAA;AAChB,MAAMH,OAAO,GAAGG,aAAa,IAAI,IAAjC;AACA,SACIvQ,4BAAA,MAAA;AAAKG,IAAAA,KAAK,EAAE;AAAE6E,MAAAA,OAAO,EAAE,aAAX;AAA0BL,MAAAA,aAAa,EAAE;AAAzC;GAAZ,EACKyL,OAAO,KAAK,MAAZ,IAAsBpQ,4BAAA,CAACc,aAAD;AAAevB,IAAAA,IAAI,EAAC;GAApB,CAD3B,EAEK6Q,OAAO,KAAK,KAAZ,IACGpQ,4BAAA,OAAA;AAAMG,IAAAA,KAAK,EAAE;AAAEqQ,MAAAA,SAAS,EAAE;AAAb;GAAb,EACIxQ,4BAAA,CAACa,eAAD;AAAiBtB,IAAAA,IAAI,EAAC;GAAtB,CADJ,CAHR,CADJ;AAUH,CAZD;;;;ACrGO,IAAMkR,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC1L,GAAD;AAG9B,MAAI,CAAC+C,MAAM,CAAC4I,MAAZ,EAAoB;AAChB,WAAOC,mBAAmB,CAAC5L,GAAD,CAA1B;AACH;;AACD,SAAO6L,oBAAoB,CAAC7L,GAAD,CAA3B;AACH,CAPM;;AASP,IAAM6L,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAC7L,GAAD;;;AAIzB,MAAI,CAAC2L,MAAD,IAAW,YAAAA,MAAM,UAAN,0DAAQG,IAAR,8DAAcC,KAAd,MAAwBrO,SAAvC,EAAkD;AAC9C,WAAOkO,mBAAmB,CAAC5L,GAAD,CAA1B;AACH;;AAED,mBAAuBA,GAAG,CAACgM,KAAJ,CAAU,GAAV,CAAvB;AAAA,MAAKC,UAAL;AAAA,MAAiBtE,EAAjB;;AACA,MACIgE,MAAM,CAACG,IAAP,CAAYC,KAAZ,KAAsBrO,SAAtB,IACAiO,MAAM,CAACG,IAAP,CAAYC,KAAZ,CAAkBE,UAAlB,MAAkCvO,SADlC,IAEAiO,MAAM,CAACG,IAAP,CAAYC,KAAZ,CAAkBE,UAAlB,EAA8BtE,EAA9B,MAAsCjK,SAH1C,EAIE;AACE,WAAOsC,GAAP;AACH;;AACD,SAAO2L,MAAM,CAACG,IAAP,CAAYC,KAAZ,CAAkBE,UAAlB,EAA8BtE,EAA9B,CAAP;AACH,CAjBD;;AAoBA,IAAMiE,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC5L,GAAD;AACxB,MAAMkM,gBAAgB,GAAGlM,GAAG,CAACgM,KAAJ,CAAU,GAAV,CAAzB;;AACA,MAAIE,gBAAgB,CAACvM,MAAjB,GAA0B,CAA9B,EAAiC;AAC7B,QAAMwM,OAAO,GAAGD,gBAAgB,CAAC,CAAD,CAAhC;AACA,WAAOC,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkBC,WAAlB,KAAkCF,OAAO,CAACG,KAAR,CAAc,CAAd,EAAiBC,WAAjB,EAAzC;AACH;;AACD,SAAOvM,GAAP;AACH,CAPD;;ACdA,IAAMwM,kBAAkB,GAAoB,SAAtCA,kBAAsC;8BACxCC;MAAAA,4CAAc;0BACdC;MAAAA,oCAAU;MACVC,uBAAAA;MACAC,mBAAAA;AAEA,SACI3R,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,qBAAD;GAAtB,EACIL,4BAAA,CAACuM,QAAD;AACIE,IAAAA,QAAQ,EAAE,CAAC+E;AACXrO,IAAAA,OAAO,EAAEuO;AACT7E,IAAAA,KAAK,EAAE+E,kBAAE,CAAC,kBAAD;GAHb,EAKI5R,4BAAA,CAACQ,aAAD;AAAejB,IAAAA,IAAI,EAAC;GAApB,CALJ,CADJ,EAQIS,4BAAA,CAACuM,QAAD;AACIE,IAAAA,QAAQ,EAAE,CAACgF;AACXtO,IAAAA,OAAO,EAAEwO;AACT9E,IAAAA,KAAK,EAAE+E,kBAAE,CAAC,cAAD;GAHb,EAKI5R,4BAAA,CAACU,cAAD;AAAgBnB,IAAAA,IAAI,EAAC;GAArB,CALJ,CARJ,CADJ;AAkBH,CAxBD;;ACmBA,IAAMsS,aAAa,GAAG,SAAhBA,aAAgB;MAClBzN,aAAAA;MACAqL,eAAAA;MACAqC,qBAAAA;MACAC,iBAAAA;8BACAP;MAAAA,4CAAc;0BACdC;MAAAA,oCAAU;MACVC,uBAAAA;MACAC,mBAAAA;MACAjC,cAAAA;4BACAsC;MAAAA,wCAAY;iCACZpD;MAAAA,kDAAiB;AAEjB,MAAMqD,OAAO,GAAGH,aAAa,IAAII,oBAAjC;AACA,MAAIC,iBAAiB,GAAG,EAAxB;;AACA,MAAIJ,SAAS,KAAK,IAAlB,EAAwB;AACpBI,IAAAA,iBAAiB,gBACVA,iBADU;AAEbJ,MAAAA,SAAS,EAATA,SAFa;AAGbK,MAAAA,SAAS,EAAE;AAHE,MAAjB;AAKH;;AAED,MAAMzD,WAAW,GAAGc,OAAO,IAAIA,OAAO,CAAC7K,GAAR,CAAY,UAACiL,MAAD;AAAA,WAAYA,MAAM,CAACtQ,IAAP,IAAe,CAA3B;AAAA,GAAZ,CAA/B;AAEA,SACIS,4BAAA,CAAC+B,OAAO,CAACiB,QAAT;AAAkBC,IAAAA,KAAK,EAAE;AAAE0L,MAAAA,WAAW,EAAXA,WAAF;AAAeC,MAAAA,cAAc,EAAdA;AAAf;GAAzB,EACKa,OAAO,IACJzP,4BAAA,CAACwP,mBAAD;AACIC,IAAAA,OAAO,EAAEA;AACTC,IAAAA,MAAM,EAAEA;AACRd,IAAAA,cAAc,EAAEA;GAHpB,CAFR,EAQI5O,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,MAAD;AACjBF,IAAAA,KAAK,EAAEgS;AACP1O,IAAAA,IAAI,EAAC;GAHT,EAKKuO,SAAS,IAAIhS,4BAAA,CAACoF,OAAD;AAASE,IAAAA,KAAK;GAAd,CALlB,EAMK,CAAC0M,SAAD,IACG5N,KAAK,CAACQ,GAAN,CAAU,UAACyN,IAAD,EAAOrD,KAAP;AAAA,WACNhP,4BAAA,CAACiS,OAAD;AACII,MAAAA,IAAI,EAAEA;AACN5C,MAAAA,OAAO,EAAEA;AACT1K,MAAAA,GAAG,EAAEiK;AACLA,MAAAA,KAAK,EAAEA;KAJX,CADM;AAAA,GAAV,CAPR,CARJ,EAwBK0C,eAAe,IAAIC,WAAnB,KAAmCH,WAAW,IAAIC,OAAlD,KACGzR,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;mBACL;GAFhB,EAIIL,4BAAA,CAACuR,kBAAD;AACIC,IAAAA,WAAW,EAAEA,WAAW,IAAI,CAACQ;AAC7BP,IAAAA,OAAO,EAAEA,OAAO,IAAI,CAACO;AACrBN,IAAAA,eAAe,EAAEA;AACjBC,IAAAA,WAAW,EAAEA;GAJjB,CAJJ,CAzBR,CADJ;AAwCH,CAjED;;AAmEA,IAAMO,oBAAoB,GAAG,SAAvBA,oBAAuB;MAAGzC,gBAAAA;MAAS4C,aAAAA;AACrC,MAAMC,WAAW,GAAG7C,OAAO,GACrBA,OAAO,CAAC7K,GAAR,CAAY,UAACiL,MAAD;AAAA,WAAYA,MAAM,CAACK,IAAnB;AAAA,GAAZ,CADqB,GAErBqC,MAAM,CAACC,IAAP,CAAYH,IAAZ,CAFN;AAIA,MAAMI,aAAa,GAAGH,WAAW,CAAC/N,MAAZ,CAClB,UAACQ,GAAD;AAAA,WAAiBA,GAAG,KAAK,SAAzB;AAAA,GADkB,CAAtB;AAIA,SACI/E,4BAAA,CAACwO,gBAAD;AAAkBE,IAAAA,OAAO,EAAE2D,IAAI,CAAC3D;GAAhC,EACK+D,aAAa,CAAC7N,GAAd,CAAkB,UAAC8N,UAAD;AAAA,WACf1S,4BAAA,MAAA;AAAK+E,MAAAA,GAAG,EAAE2N;KAAV,EAAuBL,IAAI,CAACK,UAAD,CAAJ,IAAoB,EAA3C,CADe;AAAA,GAAlB,CADL,CADJ;AAOH,CAhBD;;AC/FA,IAAM3Q,SAAO,GAAmCC,aAAa,CACzD,EADyD,CAA7D;AAIA,AAAO,IAAM2Q,cAAc,GAAG,SAAjBA,cAAiB;AAC1B,MAAMzQ,OAAO,GAAGC,UAAU,CAACJ,SAAD,CAA1B;AAEA,SAAOG,OAAO,IAAI,EAAlB;AACH,CAJM;;;;ACKP,IAAM0Q,IAAI,GAAoB,SAAxBA,IAAwB;;;MAC1BhQ,gBAAAA;MACAiQ,gBAAAA;uBACAlG;MAAAA,8BAAO;MACPmG,cAAAA;+BACAC;MAAAA,8CAAe;;AAEf,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAAC3P,CAAD;AACjBA,IAAAA,CAAC,CAAC4P,cAAF;AACAJ,IAAAA,QAAQ,IAAIA,QAAQ,CAACxP,CAAC,CAAC6P,aAAF,CAAgBC,QAAjB,CAApB;AACH,GAHD;;AAIA,SACInT,4BAAA,CAAC+B,SAAO,CAACiB,QAAT;AAAkBC,IAAAA,KAAK,EAAE;AAAE6P,MAAAA,MAAM,EAANA;AAAF;GAAzB,EACI9S,4BAAA,OAAA;AACI6S,IAAAA,QAAQ,EAAEA,QAAQ,GAAGG,YAAH,GAAkBF,MAAlB,aAAkBA,MAAlB,uBAAkBA,MAAM,CAAEE;AAC5C5S,IAAAA,SAAS,EAAEmF,UAAU,gCAChBlF,QAAM,CAAC,qBAAD,CADU,IACgB,CAACsM,IADjB;mBAGT;GALhB,EAOKoG,YAAY,GAAG/S,4BAAA,CAACqI,KAAD,MAAA,EAAQzF,QAAR,CAAH,GAA+BA,QAPhD,CADJ,CADJ;AAaH,CAxBD;;ICXawQ,eAAe,GAAkB,KAAvC;AAGP,IAAaC,eAAe,GAAkB,SAAvC;AAGP,IAAaC,eAAe,GAAkB,KAAvC;AAGP,IAAaC,eAAe,GAAkB,SAAvC;AAGP,IAAaC,eAAe,GAAkB,KAAvC;;AAeP,IAAMC,OAAO,GAAoB,SAA3BA,OAA2B;MAAG7Q,gBAAAA;MAAU6M,eAAAA;MAASiE,aAAAA;AACnD,MAAMtP,KAAK,GAAGpE,cAAK,CAACqE,QAAN,CAAeC,OAAf,CAAuB1B,QAAvB,EAAiC2B,MAAjC,CAAwCC,OAAxC,CAAd;AACA,MAAMmP,iBAAiB,GAAG,EAA1B;;AACA,MAAIlE,OAAO,KAAKhN,SAAhB,EAA2B;AACvB,QAAIgN,OAAO,GAAGrL,KAAK,CAACM,MAApB,EAA4B;AACxBiP,MAAAA,iBAAiB,CAACC,IAAlB,OAAAD,iBAAiB,EACV,IAAIE,KAAJ,CAAUpE,OAAO,GAAGrL,KAAK,CAACM,MAA1B,EAAkCE,GAAlC,CAAsC;AAAA,eAAM,EAAN;AAAA,OAAtC,CADU,CAAjB;AAGH;AACJ;;AACD,SACI5E,4BAAA,CAACmF,MAAD;AACIvB,IAAAA,IAAI,EAAE,UAAIQ,KAAJ,EAAcuP,iBAAd,EAAiC/O,GAAjC,CACF,UAACkP,CAAD,EAAI9E,KAAJ;AAAA,aAAc,CAAA0E,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAG1E,KAAH,CAAL,KAAkB,CAAhC;AAAA,KADE;AAGNrL,IAAAA,KAAK,EAAE;GAJX,EAMKf,QANL,EAOK+Q,iBAAiB,CAAC/O,GAAlB,CAAsB,UAACkP,CAAD,EAAI9E,KAAJ;AAAA,WACnBhP,4BAAA,OAAA;AAAM+E,MAAAA,GAAG,EAAEiK;qBAAmB;KAA9B,CADmB;AAAA,GAAtB,CAPL,CADJ;AAaH,CAvBD;;;;ACzBA,IAAM+E,KAAK,GAAoB,SAAzBA,KAAyB;MAAGC,eAAAA;MAASpR,gBAAAA;AACvC,SACI5C,4BAAA,QAAA;AAAOgU,IAAAA,OAAO,EAAEA;AAAS5T,IAAAA,SAAS,EAAEC,QAAM,CAAC,OAAD;GAA1C,EACKuC,QADL,CADJ;AAKH,CAND;;;;ACAA,IAAMqR,OAAO,GAAoB,SAA3BA,OAA2B;MAAGC,eAAAA;MAAStR,gBAAAA;AACzC,SACI5C,4BAAA,MAAA;AACI0M,IAAAA,EAAE,EAAEwH,OAAO,IAAOA,OAAP;AACX9T,IAAAA,SAAS,EAAEC,QAAM,CAAC,SAAD;GAFrB,EAIKuC,QAJL,CADJ;AAQH,CATD;;ACCO,IAAMmD,KAAK,GAAc,SAAzB;AACP,AAaO,IAAMoO,WAAW,GAAc,SAA/B;AACP,AAAO,IAAMC,WAAW,GAAc,SAA/B;AACP,AAAO,IAAMC,WAAW,GAAc,SAA/B;AACP,AAEO,IAAMC,WAAW,GAAc,SAA/B;AAGP,AAYO,IAAMC,SAAS,GAAc,SAA7B;AACP,AAuBO,IAAMC,OAAO,GAAc,SAA3B;AACP,AAAO,IAAMC,OAAO,GAAc,SAA3B;AACP,AAAO,IAAMC,OAAO,GAAc,SAA3B;AACP,AAAO,IAAMC,OAAO,GAAc,SAA3B;AACP,AAAO,IAAMC,OAAO,GAAc,SAA3B;AACP,AAAO,IAAMC,OAAO,GAAc,SAA3B;;;;AC7DP,IAAMC,YAAY,GAAoB,SAAhCA,YAAgC;MAAGZ,eAAAA;MAAStR,gBAAAA;AAC9C,SACI5C,4BAAA,MAAA;AACI0M,IAAAA,EAAE,EAAEwH,OAAO,IAAOA,OAAP;AACX9T,IAAAA,SAAS,EAAEC,QAAM,CAAC,eAAD;GAFrB,EAIIL,4BAAA,CAACmF,MAAD;AAAQxB,IAAAA,KAAK,EAAE;AAAGE,IAAAA,UAAU,EAAC;GAA7B,EACI7D,4BAAA,CAACiB,UAAD;AAAYnB,IAAAA,KAAK,EAAEyU;AAAWhV,IAAAA,IAAI,EAAC;GAAnC,CADJ,EAEKqD,QAFL,CAJJ,CADJ;AAWH,CAZD;;ACIA,IAAMmS,KAAK,GAAoB,SAAzBA,KAAyB;MAAGrI,UAAAA;MAAI0C,aAAAA;MAAO4F,eAAAA;MAASC,aAAAA;MAAOrS,gBAAAA;AACzD,SACI5C,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;AAAGM,IAAAA,SAAS;GAA1B,EACKmL,KAAK,IAAIpP,4BAAA,CAAC+T,KAAD;AAAOC,IAAAA,OAAO,EAAEtH;GAAhB,EAAqB0C,KAArB,CADd,EAEKxM,QAFL,EAGKoS,OAAO,IAAIhV,4BAAA,CAACiU,OAAD;AAASC,IAAAA,OAAO,EAAExH;GAAlB,EAAuBsI,OAAvB,CAHhB,EAIKC,KAAK,IAAIjV,4BAAA,CAAC8U,YAAD;AAAcZ,IAAAA,OAAO,EAAExH;GAAvB,EAA4BuI,KAA5B,CAJd,CADJ;AAQH,CATD;;;;ACRO,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAGhF,YAAAA;MAAUiF,eAAJzI;AAE/B,MAAMA,EAAE,GAAG0I,OAAO,CACd;AAAA,WAAOD,OAAO,GAAGA,OAAH,GAAgBjF,IAAhB,SAAwBvI,IAAI,CAAC0N,MAAL,EAAtC;AAAA,GADc,EAEd,CAACF,OAAD,EAAUjF,IAAV,CAFc,CAAlB;AAIA,SAAOxD,EAAP;AACH,CAPM;;ACJA,IAAM4I,cAAc,GAAG,SAAjBA,cAAiB,CAACpF,IAAD,EAAe4C,MAAf;AAC1B,MAAIA,MAAM,KAAKrQ,SAAf,EAA0B;AACtB,WAAO,IAAP;AACH;;AACD,MAAI8P,MAAM,CAACC,IAAP,CAAYM,MAAM,CAACyC,MAAnB,EAA2BnI,QAA3B,CAAoC8C,IAApC,CAAJ,EAA+C;AAC3C,WAAO;AACH+E,MAAAA,KAAK,EAAEnC,MAAM,CAAC0C,OAAP,CAAetF,IAAf,IAAuB4C,MAAM,CAAC2C,MAAP,CAAcvF,IAAd,CAAvB,GAA6CzN,SADjD;AAEHQ,MAAAA,KAAK,EAAE6P,MAAM,CAACyC,MAAP,CAAcrF,IAAd;AAFJ,KAAP;AAIH;;AAED,MAAMwF,WAAW,GAAGC,kBAAkB,CAACzF,IAAD,CAAtC;;AACA,MAAIwF,WAAJ,EAAiB;AAAA;;AACb,QAAQE,SAAR,GAA4CF,WAA5C,CAAQE,SAAR;AAAA,QAAmBC,SAAnB,GAA4CH,WAA5C,CAAmBG,SAAnB;AAAA,QAA8BC,SAA9B,GAA4CJ,WAA5C,CAA8BI,SAA9B;AACA,WAAO;AACHb,MAAAA,KAAK,EAAE,mBAAAnC,MAAM,CAAC0C,OAAP,qFAAiBI,SAAjB,mGAA8BC,SAA9B,2EAA2CC,SAA3C,sBACDhD,MAAM,CAAC2C,MADN,4EACD,eAAgBG,SAAhB,CADC,oFACD,sBAA6BC,SAA7B,CADC,2DACD,uBAA0CC,SAA1C,CADC,GAEDrT,SAHH;AAIHQ,MAAAA,KAAK,oBAAE6P,MAAM,CAACyC,MAAT,4EAAE,eAAgBK,SAAhB,CAAF,oFAAE,sBAA6BC,SAA7B,CAAF,2DAAE,uBAA0CC,SAA1C;AAJJ,KAAP;AAMH;;AAED,SAAO,IAAP;AACH,CAvBM;;AAyBP,IAAMH,kBAAkB,GAAG,SAArBA,kBAAqB,CAACzF,IAAD;AACvB,MAAI,CAACA,IAAI,CAAC9C,QAAL,CAAc,GAAd,CAAL,EAAyB;AACrB,WAAO,KAAP;AACH;;AACD,oBAAkC8C,IAAI,CAACa,KAAL,CAAW,GAAX,CAAlC;AAAA,MAAO6E,SAAP;AAAA,MAAkBG,YAAlB;;AACA,4BAA+BA,YAAY,CAAChF,KAAb,CAAmB,IAAnB,CAA/B;AAAA,MAAO8E,SAAP;AAAA,MAAkBC,SAAlB;;AAEA,SAAO;AACHF,IAAAA,SAAS,EAATA,SADG;AAEHC,IAAAA,SAAS,EAATA,SAFG;AAGHC,IAAAA,SAAS,EAATA;AAHG,GAAP;AAKH,CAZD;;ACJO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB;MAC/B9F,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAIe,WAAW,GAAG;AACdxJ,IAAAA,EAAE,EAAFA,EADc;AAEduI,IAAAA,KAAK,EAALA,KAFc;AAGdhS,IAAAA,KAAK,EAALA,KAHc;AAIdgT,IAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AAAA,aACN4S,SAAQ,IAAIA,SAAQ,CAAC5S,CAAC,CAAC0J,MAAF,CAAS9J,KAAV,CADd;AAAA,KAJI;AAMdoJ,IAAAA,MAAM,EAAE,gBAAChJ,CAAD;AAAA,aACJgJ,OAAM,IAAIA,OAAM,CAAChJ,CAAC,CAAC0J,MAAF,CAAS9J,KAAV,CADZ;AAAA;AANM,GAAlB;AAUA,MAAMkT,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,KAAKxS,SAAV,GAAsByT,WAAW,CAACjB,KAAlC,GAA0CkB,WAAW,CAAClB,KAFtD;AAGPhS,MAAAA,KAAK,EAAEA,KAAK,KAAKR,SAAV,GAAsByT,WAAW,CAACjT,KAAlC,GAA0CkT,WAAW,CAAClT,KAHtD;AAIPgT,MAAAA,QAAQ,EAAEA,SAAQ,GACZC,WAAW,CAACD,QADA,GAEZ,UAAC5S,CAAD;AAAA,eACIyP,MAAM,CAACsD,aAAP,CAAqBlG,IAArB,EAA2B7M,CAAC,CAAC0J,MAAF,CAAS9J,KAApC,CADJ;AAAA,OANC;AAQPoJ,MAAAA,MAAM,EAAEA,OAAM,GACR6J,WAAW,CAAC7J,MADJ,GAER;AAAA,eAAMyG,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB,CAAN;AAAA;AAVC,MAAX;AAYH;;AACD,SAAOgG,WAAP;AACH,CArCM;;AChBA,IAAMI,kBAAkB,GAAG,SAArBA,kBAAqB,CAC9BC,SAD8B,EAE9BxE,SAF8B,EAG9ByE,QAH8B,EAI9BrL,YAJ8B;AAM9B,MAAMsL,WAAW,GAAG1T,MAAM,CAAsB,IAAtB,CAA1B;AAEA,MAAM+H,GAAG,GAAGK,YAAH,WAAGA,YAAH,GAAmBsL,WAA5B;;AAEA,MAAMC,YAAY,GAAG,SAAfA,YAAe;AACjB,QAAI5L,GAAG,CAACrC,OAAJ,IAAe+N,QAAnB,EAA6B;AACzB1L,MAAAA,GAAG,CAACrC,OAAJ,CAAYtI,KAAZ,CAAkBT,MAAlB,GAA8B6W,SAA9B;AACAzL,MAAAA,GAAG,CAACrC,OAAJ,CAAYtI,KAAZ,CAAkBT,MAAlB,GAA2BoL,GAAG,CAACrC,OAAJ,CAAYkO,YAAZ,GAA2B,IAAtD;AACH;AACJ,GALD;;AAOAnO,EAAAA,SAAS,CAAC;AACN,QAAIsC,GAAG,CAACrC,OAAR,EAAiB;AACbqC,MAAAA,GAAG,CAACrC,OAAJ,CAAYtI,KAAZ,CAAkBoW,SAAlB,GAAiCA,SAAjC;AACAzL,MAAAA,GAAG,CAACrC,OAAJ,CAAYtI,KAAZ,CAAkB4R,SAAlB,GAAiCA,SAAjC;AACH;AACJ,GALQ,EAKN,CAACA,SAAD,EAAYwE,SAAZ,EAAuBA,SAAvB,EAAkCzL,GAAlC,CALM,CAAT;AAOA,SAAO;AACHA,IAAAA,GAAG,EAAHA,GADG;AAEH4L,IAAAA,YAAY,EAAZA;AAFG,GAAP;AAIH,CA5BM;;AC0BP,IAAME,aAAa,GAAoB,SAAjCA,aAAiC;;;MACnC1G,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACAqK,oBAAAA;2BACAN;MAAAA,sCAAW;4BACXD;MAAAA,wCAAY;4BACZxE;MAAAA,wCAAY;MACZgF,eAAAA;AAEA,MAAMxL,YAAY,GAAGxI,MAAM,CAAiB,IAAjB,CAA3B;AACA,MAAMiU,UAAU,GAAGjU,MAAM,CAAiB,IAAjB,CAAzB;;AACA,kBAAgCF,QAAQ,CAAC,KAAD,CAAxC;AAAA,MAAOoU,QAAP;AAAA,MAAiBC,WAAjB;;AACA,MAAMhB,WAAW,GAAGF,mBAAmB,CAAC;AACpC9F,IAAAA,IAAI,EAAJA,IADoC;AAEpCxD,IAAAA,EAAE,EAAEyI,OAFgC;AAGpClS,IAAAA,KAAK,EAALA,KAHoC;AAIpCgT,IAAAA,QAAQ,EAARA,QAJoC;AAKpC5J,IAAAA,MAAM,EAANA,MALoC;AAMpC4I,IAAAA,KAAK,EAALA;AANoC,GAAD,CAAvC;AASA,MAAMkC,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;;AAOA,4BAA2CqB,kBAAkB,CACzDC,SADyD,EAEzDxE,SAFyD,EAGzDyE,QAHyD,CAA7D;AAAA,MAAaa,WAAb,uBAAQvM,GAAR;AAAA,MAA0B4L,YAA1B,uBAA0BA,YAA1B;;AAMA,SACI1W,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,YAAD,CAAP,iCAChBA,QAAM,CAAC,qBAAD,CADU,IACgB8W,QADhB,cAEhB9W,QAAM,CAAC,sBAAD,CAFU,IAEiBoM,QAFjB,cAGhBpM,QAAM,CAAC,mBAAD,CAHU,IAGc4W,QAHd;AAKrBnM,IAAAA,GAAG,EAAES;AACLpI,IAAAA,OAAO,EAAE,iBAACsK,KAAD;AACL,UAAIA,KAAK,CAACV,MAAN,MAAiBxB,YAAjB,aAAiBA,YAAjB,uBAAiBA,YAAY,CAAE9C,OAA/B,CAAJ,EAA4C;AAAA;;AACxC4O,QAAAA,WAAW,SAAX,IAAAA,WAAW,WAAX,oCAAAA,WAAW,CAAE5O,OAAb,8EAAsB6O,KAAtB;AACH;AACJ;GAXL,EAaItX,4BAAA,WAAA;AACIkQ,IAAAA,IAAI,EAAEA;AACNxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ;mCACWwD;wBAEvBiH,QAAQ,GACCjB,WAAW,CAACxJ,EADb,sBAECwJ,WAAW,CAACxJ,EAFb;oBAIEyK;AACd1K,IAAAA,QAAQ,EAAEA;AACVoK,IAAAA,WAAW,EAAEA;AACbC,IAAAA,YAAY,EAAEA;AACd7T,IAAAA,KAAK,EAAEiT,WAAW,CAACjT;AACnBgT,IAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AACN6S,MAAAA,WAAW,CAACD,QAAZ,CAAqB5S,CAArB;AACAqT,MAAAA,YAAY;AACf;AACDrK,IAAAA,MAAM,EAAE,gBAAChJ,CAAD;AACJ6S,MAAAA,WAAW,CAAC7J,MAAZ,CAAmBhJ,CAAnB;AACA6T,MAAAA,WAAW,CAAC,KAAD,CAAX;AACH;AACD9K,IAAAA,OAAO,EAAE;AAAA,aAAM8K,WAAW,CAAC,IAAD,CAAjB;AAAA;AACTpM,IAAAA,GAAG,EAAEuM;GAvBT,CAbJ,EAsCKN,OAAO,IACJ/W,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,qBAAD;AACjBqM,IAAAA,EAAE,EAAKwJ,WAAW,CAACxJ,EAAjB;AACF5B,IAAAA,GAAG,EAAEkM;AACL7T,IAAAA,OAAO,EAAE,iBAACsK,KAAD;AACL,UAAIA,KAAK,CAACV,MAAN,MAAiBiK,UAAjB,aAAiBA,UAAjB,uBAAiBA,UAAU,CAAEvO,OAA7B,CAAJ,EAA0C;AAAA;;AACtC4O,QAAAA,WAAW,SAAX,IAAAA,WAAW,WAAX,qCAAAA,WAAW,CAAE5O,OAAb,gFAAsB6O,KAAtB;AACH;AACJ;GARL,EAUKP,OAVL,CAvCR,CADJ,CADJ;AAyDH,CApGD;;;;ACvBA,IAAMQ,cAAc,GAAoB,SAAlCA,cAAkC;;;MAAGC,cAAAA;MAAQC,cAAAA;MAAQ7U,gBAAAA;AACvD,MAAMwG,SAAS,GAAGrG,MAAM,CAAiB,IAAjB,CAAxB;AACA,MAAM2U,aAAa,GAAG3U,MAAM,CAAiB,IAAjB,CAA5B;AACA,MAAM4U,aAAa,GAAG5U,MAAM,CAAiB,IAAjB,CAA5B;AAEA6U,EAAAA,eAAe,CAAC;AACZ,QAAIxO,SAAS,CAACX,OAAd,EAAuB;AAEnB,UAAMoP,KAAK,GAAuBzO,SAAS,CAACX,OAAV,CAAkBqP,aAAlB,CAC9B,+BAD8B,CAAlC;;AAGA,UAAID,KAAJ,EAAW;AAEP,YAAIL,MAAM,IAAIE,aAAa,CAACjP,OAA5B,EAAqC;AAAA;;AACjC,cAAMsP,WAAW,GAAGL,aAAH,aAAGA,aAAH,gDAAGA,aAAa,CAAEjP,OAAlB,0DAAG,sBAAwBuP,WAA5C;AACAH,UAAAA,KAAK,CAAC1X,KAAN,CAAY8X,WAAZ,GAA0BF,WAAW,GAAG,IAAxC;AACH;;AACD,YAAIN,MAAM,IAAIE,aAAa,CAAClP,OAA5B,EAAqC;AACjC,cAAMyP,WAAW,GAAGP,aAAa,CAAClP,OAAd,CAAsBuP,WAA1C;AACAH,UAAAA,KAAK,CAAC1X,KAAN,CAAYgY,YAAZ,GAA2BD,WAAW,GAAG,IAAzC;AACH;AACJ;AACJ;AACJ,GAlBc,EAkBZ,CAACV,MAAD,EAASC,MAAT,CAlBY,CAAf;AAoBA,MAAMW,SAAS,GAAG,CAAC,CAACZ,MAApB;AACA,MAAMa,SAAS,GAAG,CAAC,CAACZ,MAApB;;AAEA,MAAI,CAACW,SAAD,IAAc,CAACC,SAAnB,EAA8B;AAC1B,WAAOzV,QAAP;AACH;;AAED,MAAM0V,OAAO,GAAG/S,UAAU,CAAClF,QAAM,CAAC,iBAAD,CAAP,iCACrBA,QAAM,CAAC,2BAAD,CADe,IACiB+X,SADjB,cAErB/X,QAAM,CAAC,2BAAD,CAFe,IAEiBgY,SAFjB,eAA1B;AAKA,SACIrY,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEkY;AAASxN,IAAAA,GAAG,EAAE1B;mBAAuB;GAArD,EACKgP,SAAS,IACNpY,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;AAAYyK,IAAAA,GAAG,EAAE4M;GAAvC,EACKF,MADL,CAFR,EAMK5U,QANL,EAOKyV,SAAS,IACNrY,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;AAAYyK,IAAAA,GAAG,EAAE6M;GAAvC,EACKF,MADL,CARR,CADJ;AAeH,CApDD;;;;ACiBA,IAAMc,SAAS,GAAG,SAAZA,SAAY,OAiBdzN,GAjBc;;;MAEVoF,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACA+K,cAAAA;MACAC,cAAAA;MACAX,oBAAAA;MACA0B,iBAAAA;AAIJ,MAAMtC,WAAW,GAAGF,mBAAmB,CAAC;AACpC9F,IAAAA,IAAI,EAAJA,IADoC;AAEpCxD,IAAAA,EAAE,EAAEyI,OAFgC;AAGpClS,IAAAA,KAAK,EAALA,KAHoC;AAIpCgT,IAAAA,QAAQ,EAARA,QAJoC;AAKpC5J,IAAAA,MAAM,EAANA,MALoC;AAMpC4I,IAAAA,KAAK,EAALA;AANoC,GAAD,CAAvC;AASA,MAAMkC,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,SACIjV,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,CAACuX,cAAD;AAAgBC,IAAAA,MAAM,EAAEA;AAAQC,IAAAA,MAAM,EAAEA;GAAxC,EACIzX,4BAAA,QAAA;AACIkQ,IAAAA,IAAI,EAAEA;AACNxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ;AAChBtM,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,YAAD,CAAP,iCAChBA,QAAM,CAAC,qBAAD,CADU,IACgB8W,QADhB;AAGrB3K,IAAAA,IAAI,EAAC;mCACsB0D;wBAEvBiH,QAAQ,GACCjB,WAAW,CAACxJ,EADb,sBAECwJ,WAAW,CAACxJ,EAFb;oBAIEyK;AACd1K,IAAAA,QAAQ,EAAEA;AACVoK,IAAAA,WAAW,EAAEA;AACbC,IAAAA,YAAY,EAAEA;AACd7T,IAAAA,KAAK,EAAEiT,WAAW,CAACjT;AACnBgT,IAAAA,QAAQ,EAAEC,WAAW,CAACD;AACtB5J,IAAAA,MAAM,EAAE6J,WAAW,CAAC7J;AACpB9M,IAAAA,IAAI,EAAE;AACNuL,IAAAA,GAAG,EAAEA;AACL0N,IAAAA,SAAS,EAAEA;GAtBf,CADJ,CADJ,CADJ;AA8BH,CAnED;;AAqEA,kBAAelM,UAAU,CAA0BiM,SAA1B,CAAzB;;AC1EO,IAAME,2BAA2B,GAAG,SAA9BA,2BAA8B;MACvCvI,YAAAA;MACIiF,eAAJzI;MACAgM,eAAAA;MACAzC,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAIe,WAAW,GAAkB;AAC7BxJ,IAAAA,EAAE,EAAFA,EAD6B;AAE7BuI,IAAAA,KAAK,EAALA,KAF6B;AAG7ByD,IAAAA,OAAO,EAAPA,OAH6B;AAI7BzC,IAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AAAA,aACN4S,SAAQ,IAAIA,SAAQ,CAAC5S,CAAC,CAAC0J,MAAF,CAAS2L,OAAV,CADd;AAAA,KAJmB;AAM7BrM,IAAAA,MAAM,EAAE,gBAAChJ,CAAD;AAAA,aACJgJ,OAAM,IAAIA,OAAM,CAAChJ,CAAC,CAAC0J,MAAF,CAAS2L,OAAV,CADZ;AAAA;AANqB,GAAjC;AAUA,MAAMvC,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,KAAKxS,SAAV,GAAsByT,WAAW,CAACjB,KAAlC,GAA0CkB,WAAW,CAAClB,KAFtD;AAGPyD,MAAAA,OAAO,EACHA,OAAO,KAAKjW,SAAZ,GAAwByT,WAAW,CAACwC,OAApC,GAA8CvC,WAAW,CAAClT,KAJvD;AAKPgT,MAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AACNyP,QAAAA,MAAM,CAACsD,aAAP,CAAqBlG,IAArB,EAA2B7M,CAAC,CAAC0J,MAAF,CAAS2L,OAApC;AACAzC,QAAAA,SAAQ,IAAIA,SAAQ,CAAC5S,CAAC,CAAC0J,MAAF,CAAS2L,OAAV,CAApB;AACH,OARM;AASPrM,MAAAA,MAAM,EAAE,gBAAChJ,CAAD;AACJyP,QAAAA,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB;AACA7D,QAAAA,OAAM,IAAIA,OAAM,CAAChJ,CAAC,CAAC0J,MAAF,CAAS2L,OAAV,CAAhB;AACH;AAZM,MAAX;AAcH;;AACD,SAAOxC,WAAP;AACH,CAvCM;;;;ACCP,IAAMyC,aAAa,GAAoB,SAAjCA,aAAiC;MACnCzI,YAAAA;MACIiF,eAAJzI;MACAgM,eAAAA;MACAzC,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACAxI,gBAAAA;AAEA,MAAMyJ,WAAW,GAAGuC,2BAA2B,CAAC;AAC5CvI,IAAAA,IAAI,EAAJA,IAD4C;AAE5CxD,IAAAA,EAAE,EAAEyI,OAFwC;AAG5CuD,IAAAA,OAAO,EAAPA,OAH4C;AAI5CzC,IAAAA,QAAQ,EAARA,QAJ4C;AAK5C5J,IAAAA,MAAM,EAANA,MAL4C;AAM5C4I,IAAAA,KAAK,EAALA;AAN4C,GAAD,CAA/C;AASA,MAAMkC,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AAEA,SACIjV,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACI3D,4BAAA,CAACmF,MAAD;AAAQxB,IAAAA,KAAK,EAAE;AAAGE,IAAAA,UAAU,EAAC;GAA7B,EACI7D,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,iBAAD;GAAtB,EACIL,4BAAA,QAAA;AACIkQ,IAAAA,IAAI,EAAEA;AACNxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ;AAChBF,IAAAA,IAAI,EAAC;wCAC2B0D;wBAE5BiH,QAAQ,GACCjB,WAAW,CAACxJ,EADb,sBAECwJ,WAAW,CAACxJ,EAFb;oBAIEyK;AACd1K,IAAAA,QAAQ,EAAEA;AACViM,IAAAA,OAAO,EAAExC,WAAW,CAACwC;AACrBzC,IAAAA,QAAQ,EAAEC,WAAW,CAACD;AACtB5J,IAAAA,MAAM,EAAE6J,WAAW,CAAC7J;GAdxB,CADJ,EAiBIrM,4BAAA,OAAA;AAAMI,IAAAA,SAAS,EAAEC,QAAM,CAAC,+BAAD;GAAvB,CAjBJ,CADJ,EAoBK+O,KAAK,IAAIpP,4BAAA,CAAC+T,KAAD;AAAOC,IAAAA,OAAO,EAAEkC,WAAW,CAACxJ;GAA5B,EAAiC0C,KAAjC,CApBd,CADJ,EAuBK4F,OAAO,IACJhV,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,0BAAD;GAAtB,EACIL,4BAAA,CAACiU,OAAD;AAASC,IAAAA,OAAO,EAAEgC,WAAW,CAACxJ;GAA9B,EAAmCsI,OAAnC,CADJ,CAxBR,EA4BKkB,WAAW,CAACjB,KAAZ,IACGjV,4BAAA,CAAC8U,YAAD;AAAcZ,IAAAA,OAAO,EAAEgC,WAAW,CAACxJ;GAAnC,EACKwJ,WAAW,CAACjB,KADjB,CA7BR,CADJ;AAoCH,CA1DD;;ACLO,IAAM2D,6BAA6B,GAAG,SAAhCA,6BAAgC;MACzC1I,YAAAA;MACAjN,aAAAA;MACAgT,iBAAAA;MACAhB,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AAEA,MAAIoD,WAAW,GAAkB;AAC7BjB,IAAAA,KAAK,EAALA,KAD6B;AAE7BhS,IAAAA,KAAK,EAALA,KAF6B;AAG7BgT,IAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AAAA,aACN4S,SAAQ,IAAIA,SAAQ,CAAC5S,CAAC,CAAC0J,MAAF,CAAS9J,KAAV,CADd;AAAA;AAHmB,GAAjC;AAOA,MAAMkT,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,KAAKxS,SAAV,GAAsByT,WAAW,CAACjB,KAAlC,GAA0CkB,WAAW,CAAClB,KAFtD;AAGPhS,MAAAA,KAAK,EAAEA,KAAK,KAAKR,SAAV,GAAsByT,WAAW,CAACjT,KAAlC,GAA0CkT,WAAW,CAAClT,KAHtD;AAIPgT,MAAAA,QAAQ,EAAE,kBAAC5S,CAAD;AACNyP,QAAAA,MAAM,CAACsD,aAAP,CAAqBlG,IAArB,EAA2B7M,CAAC,CAAC0J,MAAF,CAAS2L,OAApC;AACAzC,QAAAA,SAAQ,IAAIA,SAAQ,CAAC5S,CAAC,CAAC0J,MAAF,CAAS9J,KAAV,CAApB;AACH;AAPM,MAAX;AASH;;AACD,SAAOiT,WAAP;AACH,CA5BM;;ACTP,IAAM2C,sBAAsB,GACxB7W,aAAa,CAAoC,IAApC,CADjB;AAGA,AAAO,IAAM8W,yBAAyB,GAAG,SAA5BA,yBAA4B;AACrC,MAAM5W,OAAO,GAAGC,UAAU,CAAC0W,sBAAD,CAA1B;;AAEA,MAAI,CAAC3W,OAAL,EAAc;AACV,UAAM,IAAIE,KAAJ,CAAU,sDAAV,CAAN;AACH;;AAED,SAAOF,OAAP;AACH,CARM;;;;ACSP,IAAM6W,eAAe,GAAoB,SAAnCA,eAAmC;MACrC7I,YAAAA;MACAjN,aAAAA;MACAgT,gBAAAA;MACA7G,aAAAA;MACA6F,aAAAA;yBACA+D;MAAAA,kCAAS;2BACTvM;MAAAA,sCAAW;MACX7J,gBAAAA;AAEA,MAAMsT,WAAW,GAAG0C,6BAA6B,CAAC;AAC9C1I,IAAAA,IAAI,EAAJA,IAD8C;AAE9CjN,IAAAA,KAAK,EAALA,KAF8C;AAG9CgT,IAAAA,QAAQ,EAARA,QAH8C;AAI9ChB,IAAAA,KAAK,EAALA;AAJ8C,GAAD,CAAjD;AAOA,MAAMgE,eAAe,GAAGrQ,WAAW,CAC/B,UAACvF,CAAD;AACI6S,IAAAA,WAAW,CAACD,QAAZ,IAAwBC,WAAW,CAACD,QAAZ,CAAqB5S,CAArB,CAAxB;AACH,GAH8B,EAI/B,CAAC6M,IAAD,CAJ+B,CAAnC;AAOA,MAAMgJ,YAAY,GAAG;AACjBhJ,IAAAA,IAAI,EAAJA,IADiB;AAEjBzD,IAAAA,QAAQ,EAARA,QAFiB;AAGjBxJ,IAAAA,KAAK,EAAEiT,WAAW,CAACjT,KAHF;AAIjBgT,IAAAA,QAAQ,EAAEgD;AAJO,GAArB;AAOA,SACIjZ,4BAAA,CAAC6Y,sBAAsB,CAAC7V,QAAxB;AAAiCC,IAAAA,KAAK,EAAEiW;GAAxC,EACIlZ,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACKyL,KAAK,IACFpP,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,0BAAD;GAAtB,EACK+O,KADL,CAFR,EAMIpP,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACKqV,MAAM,GACHhZ,4BAAA,CAACmZ,aAAD,MAAA,EAAgBvW,QAAhB,CADG,GAGH5C,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EAAmBf,QAAnB,CAJR,EAMKsT,WAAW,CAACjB,KAAZ,IACGjV,4BAAA,CAAC8U,YAAD,MAAA,EAAeoB,WAAW,CAACjB,KAA3B,CAPR,CANJ,CADJ,CADJ;AAqBH,CApDD;;AAyDA,IAAMkE,aAAa,GAA0B,SAAvCA,aAAuC;MAAGvW,iBAAAA;AAC5C,MAAMwW,mBAAmB,GAAG,CAA5B;AACA,MAAMC,gBAAgB,GAAGrZ,cAAK,CAACqE,QAAN,CAAe2H,KAAf,CAAqBpJ,QAArB,CAAzB;;AACA,MAAIyW,gBAAgB,GAAGD,mBAAvB,EAA4C;AACxC,QAAME,aAAa,GAAGtZ,cAAK,CAACqE,QAAN,CAAeC,OAAf,CAAuB1B,QAAvB,CAAtB;AACA,QAAM2W,IAAI,GAAG,EAAb;;AAEA,SAAK,IAAIzU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwU,aAAa,CAAC5U,MAAlC,EAA0CI,CAAC,IAAIsU,mBAA/C,EAAoE;AAChEG,MAAAA,IAAI,CAAC3F,IAAL,CAAU0F,aAAa,CAACjI,KAAd,CAAoBvM,CAApB,EAAuBA,CAAC,GAAGsU,mBAA3B,CAAV;AACH;;AACD,WACIpZ,4BAAA,CAACqI,KAAD;AAAO1E,MAAAA,KAAK,EAAE;KAAd,EACK4V,IAAI,CAAC3U,GAAL,CAAS,UAAC4U,GAAD,EAAMC,QAAN;AAAA,aACNzZ,4BAAA,CAACyT,OAAD;AAAS1O,QAAAA,GAAG,EAAE0U;AAAUhK,QAAAA,OAAO,EAAE2J;OAAjC,EACKI,GADL,CADM;AAAA,KAAT,CADL,CADJ;AASH;;AACD,SAAOxZ,4BAAA,CAACyT,OAAD,MAAA,EAAU7Q,QAAV,CAAP;AACH,CArBD;;;;AC7DA,IAAM8W,gBAAgB,GAAoB,SAApCA,gBAAoC;MACtCzW,aAAAA;MACIkS,eAAJzI;MACA0C,aAAAA;MACA4F,eAAAA;AAEA,MAAM2E,iBAAiB,GAAGb,yBAAyB,EAAnD;AACA,MAAMpM,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAEyJ,iBAAiB,CAACzJ,IAA1B;AAAgCxD,IAAAA,EAAE,EAAEyI;AAApC,GAAD,CAArB;AACA,SACInV,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACI3D,4BAAA,CAACmF,MAAD;AAAQxB,IAAAA,KAAK,EAAE;AAAGE,IAAAA,UAAU,EAAC;GAA7B,EACI7D,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,oBAAD;GAAtB,EACIL,4BAAA,QAAA;AACIwM,IAAAA,IAAI,EAAC;AACLE,IAAAA,EAAE,EAAEA;AACJwD,IAAAA,IAAI,EAAEyJ,iBAAiB,CAACzJ;AACxBjN,IAAAA,KAAK,EAAEA;AACPgT,IAAAA,QAAQ,EAAE0D,iBAAiB,CAAC1D;AAC5ByC,IAAAA,OAAO,EACHiB,iBAAiB,CAAC1W,KAAlB,KAA4BR,SAA5B,GACMkX,iBAAiB,CAAC1W,KAAlB,KAA4BA,KADlC,GAEMR;AAEVgK,IAAAA,QAAQ,EAAEkN,iBAAiB,CAAClN;GAXhC,CADJ,EAcIzM,4BAAA,OAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,kCAAD;GADrB,CAdJ,CADJ,EAmBK+O,KAAK,IAAIpP,4BAAA,CAAC+T,KAAD;AAAOC,IAAAA,OAAO,EAAEtH;GAAhB,EAAqB0C,KAArB,CAnBd,CADJ,EAsBK4F,OAAO,IACJhV,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,6BAAD;GAAtB,EACIL,4BAAA,CAACiU,OAAD;AAASC,IAAAA,OAAO,EAAExH;GAAlB,EAAuBsI,OAAvB,CADJ,CAvBR,CADJ;AA8BH,CAtCD;;;;;;ACNA,IAAM4E,gBAAgB,GAAoB,SAApCA,gBAAoC;;;MAAGC,WAAAA;MAAKjX,gBAAAA;AAC9C,SACI5C,4BAAA,OAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,mBAAD,CAAP,iCAChBA,QAAM,CAAC,4BAAD,CADU,IACuB,CAACwZ,GADxB;GADzB,WAAA,EAKajX,QALb,CADJ;AASH,CAVD;;ACJO,IAAMkX,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,SAAD;AAC/B,MAAIA,SAAS,CAACrV,MAAV,KAAqB,CAAzB,EAA4B;AACxB,WAAO,IAAP;AACH;;AACD,MAAMsV,gBAAgB,GAAGC,cAAc,CAACF,SAAD,CAAvC;AAEA,SACI/Z,4BAAA,CAACmF,MAAD;AAAQxB,IAAAA,KAAK,EAAE;GAAf,EACKqW,gBAAgB,CAACpV,GAAjB,CAAqB,UAACsV,KAAD,EAAQC,OAAR;AAAA,WAClBna,4BAAA,CAACqI,KAAD;AAAO1E,MAAAA,KAAK,EAAE;AAAIoB,MAAAA,GAAG,EAAEoV;KAAvB,EACKD,KAAK,CAACtV,GAAN,CAAU,UAACwV,QAAD,EAAWC,UAAX;AAAA,aACPra,4BAAA,CAAC4Z,gBAAD;AACIC,QAAAA,GAAG,EAAEO,QAAQ,CAACP;AACd9U,QAAAA,GAAG,EAAEqV,QAAQ,CAACrV,GAAT,IAAgBsV;OAFzB,EAIKD,QAAQ,CAAChL,KAJd,CADO;AAAA,KAAV,CADL,CADkB;AAAA,GAArB,CADL,CADJ;AAgBH,CAtBM;;AAwBP,IAAM6K,cAAc,GAAG,SAAjBA,cAAiB,CACnBF,SADmB;AAGnB,MAAMO,WAAW,aAAOP,SAAP,CAAjB;AACA,MAAIC,gBAAgB,GAAG,EAAvB;AACA,MAAMza,IAAI,GAAG,CAAb;;AAEA,SAAO+a,WAAW,CAAC5V,MAAZ,GAAqB,CAA5B,EAA+B;AAC3BsV,IAAAA,gBAAgB,CAACpG,IAAjB,CAAsB0G,WAAW,CAACC,MAAZ,CAAmB,CAAnB,EAAsBhb,IAAtB,CAAtB;AACH;;AAED,SAAOya,gBAAP;AACH,CAZD;;ACNA,IAAMQ,aAAa,GAAoB,SAAjCA,aAAiC;;;MACnCtK,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA6F,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACAqK,oBAAAA;4BACAiD;MAAAA,wCAAY;;AAEZ,kBAAwBlX,QAAQ,CAAC,UAAD,CAAhC;AAAA,MAAO2J,IAAP;AAAA,MAAaiO,OAAb;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAMD,OAAO,CAACjO,IAAI,KAAK,UAAT,GAAsB,MAAtB,GAA+B,UAAhC,CAAb;AAAA,GAAnB;;AAEA,MAAM0J,WAAW,GAAGF,mBAAmB,CAAC;AACpC9F,IAAAA,IAAI,EAAJA,IADoC;AAEpCxD,IAAAA,EAAE,EAAEyI,OAFgC;AAGpClS,IAAAA,KAAK,EAALA,KAHoC;AAIpCgT,IAAAA,QAAQ,EAARA,QAJoC;AAKpC5J,IAAAA,MAAM,EAANA,MALoC;AAMpC4I,IAAAA,KAAK,EAALA;AANoC,GAAD,CAAvC;AASA,MAAMD,OAAO,GAAG8E,mBAAmB,CAACC,SAAD,CAAnC;AAEA,MAAM5C,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,SACIjV,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,oBAAD;GAAtB,EACIL,4BAAA,QAAA;AACIkQ,IAAAA,IAAI,EAAEA;AACNxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ;AAChBtM,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,YAAD,CAAP,iCAChBA,QAAM,CAAC,qBAAD,CADU,IACgB8W,QADhB;AAGrB3K,IAAAA,IAAI,EAAEA;mCACqB0D;wBAEvBiH,QAAQ,GACCjB,WAAW,CAACxJ,EADb,sBAECwJ,WAAW,CAACxJ,EAFb;oBAIEyK;AACd1K,IAAAA,QAAQ,EAAEA;AACVoK,IAAAA,WAAW,EAAEA;AACbC,IAAAA,YAAY,EAAEA;AACd7T,IAAAA,KAAK,EAAEiT,WAAW,CAACjT;AACnBgT,IAAAA,QAAQ,EAAEC,WAAW,CAACD;AACtB5J,IAAAA,MAAM,EAAE6J,WAAW,CAAC7J;GAnBxB,CADJ,EAsBIrM,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,iBAAD;AACjB8C,IAAAA,OAAO,EAAEuX;AACTnX,IAAAA,UAAU,EAAEmX;mBACA;AACZlX,IAAAA,QAAQ,EAAE;AACVC,IAAAA,IAAI,EAAC;GANT,EAQK+I,IAAI,KAAK,UAAT,GAAsBxM,4BAAA,CAACsB,YAAD,MAAA,CAAtB,GAAyCtB,4BAAA,CAACmB,OAAD,MAAA,CAR9C,CAtBJ,CADJ,CADJ;AAqCH,CAzED;;ACHO,IAAMwZ,8BAA8B,GAAG,SAAjCA,8BAAiC;MAC1CzK,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAIe,WAAW,GAAG;AACdxJ,IAAAA,EAAE,EAAFA,EADc;AAEduI,IAAAA,KAAK,EAALA,KAFc;AAGdhS,IAAAA,KAAK,EAALA,KAHc;AAIdgT,IAAAA,QAAQ,EAAE,kBAAC2E,OAAD;AAAA,aAAgC3E,SAAQ,IAAIA,SAAQ,CAAC2E,OAAD,CAApD;AAAA,KAJI;AAKdvO,IAAAA,MAAM,EAAE,gBAACuO,OAAD;AAAA,aAAgCvO,OAAM,IAAIA,OAAM,CAACuO,OAAD,CAAhD;AAAA;AALM,GAAlB;AAOA,MAAMzE,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,GAAGiB,WAAW,CAACjB,KAAf,GAAuBkB,WAAW,CAAClB,KAFxC;AAGPhS,MAAAA,KAAK,EAAEA,KAAK,GAAGiT,WAAW,CAACjT,KAAf,GAAuBkT,WAAW,CAAClT,KAHxC;AAIPgT,MAAAA,QAAQ,EAAE,kBAAC2E,OAAD;AACN,YAAI3E,SAAJ,EAAc;AACVA,UAAAA,SAAQ,CAAC2E,OAAD,CAAR;AACH;;AACD9H,QAAAA,MAAM,CAACsD,aAAP,CAAqBlG,IAArB,EAA2B0K,OAA3B;AACH,OATM;AAUPvO,MAAAA,MAAM,EAAE,gBAACuO,OAAD;AACJ,YAAIvO,OAAJ,EAAY;AACRA,UAAAA,OAAM,CAACuO,OAAD,CAAN;AACH;;AACD9H,QAAAA,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB;AACH;AAfM,MAAX;AAiBH;;AACD,SAAOgG,WAAP;AACH,CAvCM;;ACCA,IAAM2E,eAAe,GAAG,SAAlBA,eAAkB;MAC3BC,iBAAAA;4BACA1C;MAAAA,wCAAY;kCACZ2C;MAAAA,oDAAkB;iCAClBC;MAAAA,kDAAiB;AAEjB,MAAMC,WAAW,GAAGH,SAAS,GAAGvG,SAAH,GAAeG,OAA5C;AACA,SAAO;AACHwG,IAAAA,cAAc,EAAE,wBAACC,IAAD;AACZ,aAAO5I,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3BjX,QAAAA,QAAQ,EAAE8W,cAAc,GAAG,MAAH,GAAY;AADT,OAAxB,CAAP;AAGH,KALE;AAMH5R,IAAAA,SAAS,EAAE,mBAAC+R,IAAD;AACP,aAAO5I,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3BvX,QAAAA,IAAI,EAAE,GADqB;AAE3ByX,QAAAA,UAAU,EAAEnS,WAFe;AAG3BoS,QAAAA,QAAQ,EAAE;AAHiB,OAAxB,CAAP;AAKH,KAZE;AAaHC,IAAAA,OAAO,EAAE,iBAACJ,IAAD,EAAeK,KAAf;AACL,aAAOjJ,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3BF,QAAAA,WAAW,EAAEO,KAAK,CAACC,SAAN,GAAkBpH,WAAlB,GAAgC4G,WADlB;AAE3Bnb,QAAAA,KAAK,EAAE0b,KAAK,CAACE,UAAN,GAAmBjH,OAAnB,GAA6BG,OAFT;AAG3B+G,QAAAA,SAAS,EAAEH,KAAK,CAACC,SAAN,gBAA6BrH,WAA7B,GAA6C,MAH7B;AAI3B,mBAAW,MAJgB;AAK3BwH,QAAAA,eAAe,EAAEJ,KAAK,CAACE,UAAN,GACXlH,OADW,GAEXgH,KAAK,CAACC,SAAN,GACA1V,KADA,GAEAA,KATqB;AAU3B8V,QAAAA,QAAQ,EAAE,MAViB;AAW3BC,QAAAA,MAAM,EAAE,SAXmB;AAY3BC,QAAAA,UAAU,EAAE3D,SAAS,IAAI,aAZE;AAa3B4D,QAAAA,MAAM,EAAEjB,eAAe,IAAI;AAbA,OAAxB,CAAP;AAeH,KA7BE;AA8BHkB,IAAAA,kBAAkB,EAAE;AAAA,aAAO;AAAEjX,QAAAA,OAAO,EAAE;AAAX,OAAP;AAAA,KA9BjB;AA+BH6R,IAAAA,WAAW,EAAE,qBAACsE,IAAD;AAAA,0BACNA,IADM;AAETrb,QAAAA,KAAK,EAAE4U,OAFE;AAGTzP,QAAAA,WAAW,EAAE,CAHJ;AAITyC,QAAAA,QAAQ,EAAE,QAJD;AAKT/H,QAAAA,SAAS,EAAE,SALF;AAMTuc,QAAAA,QAAQ,EAAE,QAND;AAOTC,QAAAA,YAAY,EAAE,UAPL;AAQTC,QAAAA,UAAU,EAAE;AARH;AAAA,KA/BV;AAyCHC,IAAAA,gBAAgB,EAAE;AAAA,aAAO;AACrBvc,QAAAA,KAAK,EAAE8U,OADc;AAErB0H,QAAAA,SAAS,EAAE,QAFU;AAGrBC,QAAAA,OAAO,EAAE,KAHY;AAIrBlB,QAAAA,UAAU,EAAEnS;AAJS,OAAP;AAAA,KAzCf;AA+CHsT,IAAAA,WAAW,EAAE,qBAACrB,IAAD,EAAYK,KAAZ;AACT,aAAOjJ,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3Brb,QAAAA,KAAK,EAAE0b,KAAK,CAACE,UAAN,GAAmBhH,OAAnB,GAA6B,IADT;AAE3BzP,QAAAA,WAAW,EAAE,CAFc;AAG3ByC,QAAAA,QAAQ,EAAE,QAHiB;AAI3B/H,QAAAA,SAAS,EAAE,SAJgB;AAK3Buc,QAAAA,QAAQ,EAAE,QALiB;AAM3BC,QAAAA,YAAY,EAAE,UANa;AAO3BC,QAAAA,UAAU,EAAE;AAPe,OAAxB,CAAP;AASH,KAzDE;AA0DHK,IAAAA,iBAAiB,EAAE,2BAACtB,IAAD,EAAYK,KAAZ;AACf,aAAOjJ,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3Brb,QAAAA,KAAK,EAAE0b,KAAK,CAACE,UAAN,GAAmBjH,OAAnB,GAA6BE,OADT;AAE3B4H,QAAAA,OAAO,EAAE;AAFkB,OAAxB,CAAP;AAIH,KA/DE;AAgEHG,IAAAA,MAAM,EAAE,gBAACvB,IAAD,EAAYK,KAAZ;AACJ,aAAOjJ,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3BS,QAAAA,eAAe,EAAEJ,KAAK,CAACE,UAAN,GACX,IADW,GAEXF,KAAK,CAAC/M,UAAN,GACA0F,WADA,GAEAqH,KAAK,CAACC,SAAN,GACAjH,OADA,GAEAzO,KAPqB;AAQ3BjG,QAAAA,KAAK,EAAE0b,KAAK,CAACE,UAAN,GACD,IADC,GAEDF,KAAK,CAAC/M,UAAN,GACA6F,WADA,GAEAM,OAZqB;AAa3BkH,QAAAA,MAAM,EAAE,SAbmB;AAc3BT,QAAAA,UAAU,EAAEnS,WAde;AAe3B2S,QAAAA,QAAQ,EAAE;AAfiB,OAAxB,CAAP;AAiBH,KAlFE;AAmFH3B,IAAAA,KAAK,EAAE,eAACiB,IAAD;AACH,aAAO5I,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3BE,QAAAA,UAAU,EAAEnS;AADe,OAAxB,CAAP;AAGH,KAvFE;AAwFHyT,IAAAA,gBAAgB,EAAE,0BAACxB,IAAD;AACd,aAAO5I,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3B,kBAAU;AACNS,UAAAA,eAAe,EAAE,MADX;AAEN9b,UAAAA,KAAK,EAAE+U;AAFD;AADiB,OAAxB,CAAP;AAMH,KA/FE;AAgGH+H,IAAAA,cAAc,EAAE,wBAACzB,IAAD;AACZ,aAAO5I,MAAM,CAAC6I,MAAP,CAAc,EAAd,EAAkBD,IAAlB,EAAwB;AAC3B,kBAAU;AACNrb,UAAAA,KAAK,EAAE+U;AADD;AADiB,OAAxB,CAAP;AAKH,KAtGE;AAuGHgI,IAAAA,IAAI,EAAE,cAAC1B,IAAD;AAAA,0BACCA,IADD;AAEFpQ,QAAAA,MAAM,EAAElC,cAAc,CAACG;AAFrB;AAAA,KAvGH;AA2GH8T,IAAAA,UAAU,EAAE,oBAAC3B,IAAD;AAAA,0BACLA,IADK;AAERpQ,QAAAA,MAAM,EAAElC,cAAc,CAACG;AAFf;AAAA;AA3GT,GAAP;AAgHH,CAvHM;;;ACrBP;AAOA,SAAS+T,YAAT;MAA2Bna,gBAAAA;MAAUoa,uBAAAA;MAAoBvc;;AACrD,SACIT,4BAAA,CAACid,UAAU,CAACC,MAAZ,oBAAuBzc,MAAvB,EACIT,4BAAA,CAACgd,eAAD,oBAAqBvc,MAArB,EAA6BmC,QAA7B,CADJ,CADJ;AAKH;;ACWD,IAAMua,gBAAgB,GAAG,SAAnBA,gBAAmB;MACrBjN,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACA2X,eAAAA;MACA3E,gBAAAA;MACA5J,cAAAA;MACc+Q,wBAAdL;MACA3N,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;AAEA,MAAMyJ,WAAW,GAAGyE,8BAA8B,CAAC;AAC/CzK,IAAAA,IAAI,EAAJA,IAD+C;AAE/CxD,IAAAA,EAAE,EAAEyI,OAF2C;AAG/ClS,IAAAA,KAAK,EAALA,KAH+C;AAI/CgT,IAAAA,QAAQ,EAARA,QAJ+C;AAK/C5J,IAAAA,MAAM,EAANA,MAL+C;AAM/C4I,IAAAA,KAAK,EAALA;AAN+C,GAAD,CAAlD;AASA,MAAMkC,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAOA,SACIjV,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,CAACqd,MAAD;AACIlI,IAAAA,OAAO,EAAEe,WAAW,CAACxJ;AACrBkO,IAAAA,OAAO,EAAEA;AACTc,IAAAA,UAAU,EAAEjP;AACZxJ,IAAAA,KAAK,EAAEiT,WAAW,CAACjT;AACnB4T,IAAAA,WAAW,EAAEA;AACbxW,IAAAA,MAAM,EAAEwa,eAAe,CAAC;AACpBC,MAAAA,SAAS,EAAE3D,QADS;AAEpB6D,MAAAA,cAAc,EAAE;AAFI,KAAD;AAIvBsC,IAAAA,gBAAgB,EAAE/T,QAAQ,CAACG;AAC3BuM,IAAAA,QAAQ,EAAEC,WAAW,CAACD;AACtB5J,IAAAA,MAAM,EAAE6J,WAAW,CAAC7J;AACpBkR,IAAAA,OAAO;AACPN,IAAAA,UAAU,EAAE;AACRC,MAAAA,MAAM,EAAEE,gBAAgB,GAClB,UAAC3c,KAAD;AAAA,eACIT,4BAAA,CAAC+c,YAAD;AACIC,UAAAA,eAAe,EAAEI;WACb3c,MAFR,CADJ;AAAA,OADkB,GAOlBwc,UAAU,CAACC;AART;GAdhB,CADJ,CADJ;AA6BH,CA5DD;;ACJO,IAAMM,yBAAyB,GAAG,SAA5BA,yBAA4B;MACrCtN,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAIe,WAAW,GAAG;AACdxJ,IAAAA,EAAE,EAAFA,EADc;AAEduI,IAAAA,KAAK,EAALA,KAFc;AAGdhS,IAAAA,KAAK,EAALA,KAHc;AAIdgT,IAAAA,QAAQ,EAAE,kBAACyG,MAAD;AAAA,aAA6BzG,SAAQ,IAAIA,SAAQ,CAACyG,MAAD,CAAjD;AAAA,KAJI;AAKdrQ,IAAAA,MAAM,EAAE,gBAACqQ,MAAD;AAAA,aAA6BrQ,OAAM,IAAIA,OAAM,CAACqQ,MAAD,CAA7C;AAAA;AALM,GAAlB;AAQA,MAAMvG,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,GAAGiB,WAAW,CAACjB,KAAf,GAAuBkB,WAAW,CAAClB,KAFxC;AAGPhS,MAAAA,KAAK,EAAEA,KAAK,GAAGiT,WAAW,CAACjT,KAAf,GAAuBkT,WAAW,CAAClT,KAHxC;AAIPgT,MAAAA,QAAQ,EAAE,kBAACyG,MAAD;AACN,YAAIzG,SAAJ,EAAc;AACVA,UAAAA,SAAQ,CAACyG,MAAD,CAAR;AACH;;AACD5J,QAAAA,MAAM,CAACsD,aAAP,CAAqBlG,IAArB,EAA2BwM,MAA3B;AACH,OATM;AAUPrQ,MAAAA,MAAM,EAAE,gBAACqQ,MAAD;AACJ,YAAIrQ,OAAJ,EAAY;AACRA,UAAAA,OAAM,CAACqQ,MAAD,CAAN;AACH;;AACD5J,QAAAA,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB;AACH;AAfM,MAAX;AAiBH;;AACD,SAAOgG,WAAP;AACH,CAxCM;;;;;ACpBP;AASA,SAASuH,aAAT;;;MACI7a,gBAAAA;MACA8a,6BAAAA;MACGjd;;AAEH,MAAMkd,cAAc,sBAAGld,KAAK,CAACmd,QAAN,EAAH,oDAAG,gBAAmB,CAAnB,CAAvB;AACA,SACI5d,4BAAA,CAACid,UAAU,CAACY,OAAZ,oBAAwBpd,MAAxB,EACKgd,aAAa,IAAIE,cAAjB,GACG3d,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEC,QAAM,CAAC,gBAAD;AACjBF,IAAAA,KAAK,EAAE;AACH8X,MAAAA,WAAW,EAAE0F,cAAc,GAAG,CAAH,GAAO;AAD/B;GAFX,EAMI3d,4BAAA,CAACmF,MAAD;AACItB,IAAAA,UAAU,EAAC;AACXF,IAAAA,KAAK,EAAE;AACPC,IAAAA,IAAI,EAAE,CAAC,UAAD,EAAa,CAAb;GAHV,EAKI5D,4BAAA,CAAC0d,qBAAD;AACIC,IAAAA,cAAc,EAAEA;KACZld,MAFR,CALJ,EASKmC,QATL,CANJ,CADH,GAoBGA,QArBR,CADJ;AA0BH;;;ACzCD;AAOA,SAASma,cAAT;MAA2Bna,gBAAAA;MAAUoa,uBAAAA;MAAoBvc;;AACrD,SACIT,4BAAA,CAACid,UAAU,CAACC,MAAZ,oBAAuBzc,MAAvB,EACIT,4BAAA,CAACgd,eAAD,oBAAqBvc,MAArB,EAA6BmC,QAA7B,CADJ,CADJ;AAKH;;ACiBD,IAAMkb,WAAW,GAAG,SAAdA,WAAc;MAChB5N,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACA2X,eAAAA;MACA3E,gBAAAA;MACA5J,cAAAA;MACc+Q,wBAAdL;MACAgB,4BAAAA;MACA3O,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACA+K,cAAAA;kCACAuD;MAAAA,oDAAkB;AAElB,MAAM7E,WAAW,GAAGsH,yBAAyB,CAAC;AAC1CtN,IAAAA,IAAI,EAAJA,IAD0C;AAE1CxD,IAAAA,EAAE,EAAEyI,OAFsC;AAG1ClS,IAAAA,KAAK,EAALA,KAH0C;AAI1CgT,IAAAA,QAAQ,EAARA,QAJ0C;AAK1C5J,IAAAA,MAAM,EAANA,MAL0C;AAM1C4I,IAAAA,KAAK,EAALA;AAN0C,GAAD,CAA7C;AASA,MAAMkC,QAAQ,GAAG,CAAC,CAACjB,WAAW,CAACjB,KAA/B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,SACIjV,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,CAACuX,cAAD;AAAgBC,IAAAA,MAAM,EAAEA;GAAxB,EACIxX,4BAAA,CAACqd,MAAD;AACIlI,IAAAA,OAAO,EAAEe,WAAW,CAACxJ;AACrBkO,IAAAA,OAAO,EAAEA;AACTc,IAAAA,UAAU,EAAEjP;AACZxJ,IAAAA,KAAK,EAAEiT,WAAW,CAACjT;AACnB4T,IAAAA,WAAW,EAAEA;AACbxW,IAAAA,MAAM,EAAEwa,eAAe,CAAC;AACpBC,MAAAA,SAAS,EAAE3D,QADS;AAEpBiB,MAAAA,SAAS,EAAE,CAAC,CAACZ,MAFO;AAGpBuD,MAAAA,eAAe,EAAfA;AAHoB,KAAD;AAKvBuC,IAAAA,gBAAgB,EAAE/T,QAAQ,CAACG;AAC3BuM,IAAAA,QAAQ,EAAEC,WAAW,CAACD;AACtB5J,IAAAA,MAAM,EAAE6J,WAAW,CAAC7J;AACpB4Q,IAAAA,UAAU,EAAE;AACRC,MAAAA,MAAM,EAAEE,gBAAgB,GAClB,UAAC3c,KAAD;AAAA,eACIT,4BAAA,CAAC+c,cAAD;AACIC,UAAAA,eAAe,EAAEI;WACb3c,MAFR,CADJ;AAAA,OADkB,GAOlBwc,UAAU,CAACC,MART;AASRW,MAAAA,OAAO,EAAEE,oBAAoB,GACvB,UAACtd,KAAD;AAAA,eACIT,4BAAA,CAACyd,aAAD;AACIC,UAAAA,qBAAqB,EACjBK;WAEAtd,MAJR,CADJ;AAAA,OADuB,GASvBwc,UAAU,CAACY;AAlBT;GAdhB,CADJ,CADJ,CADJ;AAyCH,CA5ED;;ACXO,IAAMG,uBAAuB,GAAG,SAA1BA,uBAA0B;MACnC9N,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAIe,WAAW,GAAG;AACdxJ,IAAAA,EAAE,EAAFA,EADc;AAEduI,IAAAA,KAAK,EAALA,KAFc;AAGdhS,IAAAA,KAAK,EAALA,KAHc;AAIdgT,IAAAA,QAAQ,EAAE,kBAACgI,QAAD;AAAA,aAAoBhI,SAAQ,IAAIA,SAAQ,CAACgI,QAAD,CAAxC;AAAA,KAJI;AAKd5R,IAAAA,MAAM,EAAE;AAAA,aAAMA,OAAM,IAAIA,OAAM,EAAtB;AAAA;AALM,GAAlB;AAOA,MAAM8J,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvBD,IAAAA,WAAW,gBACJA,WADI;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,KAAKxS,SAAV,GAAsByT,WAAW,CAACjB,KAAlC,GAA0CkB,WAAW,CAAClB,KAFtD;AAGPhS,MAAAA,KAAK,EAAEA,KAAK,KAAKR,SAAV,GAAsByT,WAAW,CAACjT,KAAlC,GAA0CkT,WAAW,CAAClT,KAHtD;AAIPgT,MAAAA,QAAQ,EAAEA,SAAQ,GACZC,WAAW,CAACD,QADA,GAEZ,UAACgI,QAAD;AACInL,QAAAA,MAAM,CAACsD,aAAP,CACIlG,IADJ,EAEI+N,QAAQ,KAAKxb,SAAb,GAAyB,IAAzB,GAAgCwb,QAFpC;AAIH,OAXA;AAYP5R,MAAAA,MAAM,EAAEA,OAAM,GACR6J,WAAW,CAAC7J,MADJ,GAER;AAAA,eAAMyG,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB,CAAN;AAAA;AAdC,MAAX;AAgBH;;AACD,SAAOgG,WAAP;AACH,CAtCM;;ACPP,IAAMgI,kBAAkB,GAAoB,SAAtCA,kBAAsC;MACxC/Z,kBAAAA;MACAga,iBAAAA;MACAvb,gBAAAA;MACAyJ,cAAAA;MACAD,eAAAA;MACA5I,gBAAAA;AAEA,MAAM4a,aAAa,GAAGD,SAAS,CAACtT,qBAAV,EAAtB;AACA,SACI7K,4BAAA,CAAC6J,MAAD,MAAA,EACI7J,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAE+D,UAAU,CAACka;AACtBhS,IAAAA,MAAM,EAAEA;AACRD,IAAAA,OAAO,EAAEA;AACT5I,IAAAA,QAAQ,EAAEA;AACVrD,IAAAA,KAAK,EAAE;AACH4K,MAAAA,MAAM,EAAE,IADL;AAEHvD,MAAAA,IAAI,EAAE4W,aAAa,CAAC5W,IAFjB;AAGHP,MAAAA,GAAG,EACCmX,aAAa,CAACnX,GAAd,GACAa,MAAM,CAACyG,OADP,GAEA6P,aAAa,CAAC1e,MAFd,GAGA;AAPD;GALX,EAeIM,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAE+D,UAAU,CAAC2C;GAA3B,EAAqClE,QAArC,CAfJ,CADJ,CADJ;AAqBH,CA9BD;;;;;;SCLgB0b,UACZC,KACAC,QACAC;AAEA,MAAMC,MAAM,GAAGC,YAAY,CAACJ,GAAD,EAAMC,MAAN,EAAc,IAAII,IAAJ,EAAd,EAA0B;AAAEH,IAAAA,MAAM,EAANA;AAAF,GAA1B,CAA3B;;AACA,MAAIF,GAAG,CAAC7Z,MAAJ,KAAe8Z,MAAM,CAAC9Z,MAAtB,IAAgCma,SAAS,CAACC,MAAV,CAAiBJ,MAAjB,CAApC,EAA8D;AAC1D,WAAOA,MAAP;AACH;;AACD,SAAOjc,SAAP;AACH;AAED,SAAgBsc,WACZC,MACAR,QACAC;AAEA,SAAOQ,aAAa,CAACD,IAAD,EAAOR,MAAP,EAAe;AAAEC,IAAAA,MAAM,EAANA;AAAF,GAAf,CAApB;AACH;AAED,SAAgBS,cAAcF;AAC1B,SAAOA,IAAI,IAAIG,UAAU,CAACH,IAAD,CAAzB;AACH;AAED,SAAgBI,eAAeJ,MAAYK;AACvC,MAAM9e,CAAC,GAAG,IAAIqe,IAAJ,CAASI,IAAT,CAAV;AACA,MAAMM,QAAQ,GAAG/e,CAAC,CAACgf,OAAF,KAAchf,CAAC,CAACif,MAAF,EAAd,GAA2BH,SAA5C;AACA,MAAMI,gBAAgB,GAAGH,QAAQ,GAAG/e,CAAC,CAACgf,OAAF,EAAX,GAAyBD,QAAQ,GAAG,CAApC,GAAwCA,QAAjE;AACA,SAAO,IAAIV,IAAJ,CAASre,CAAC,CAACmf,OAAF,CAAUD,gBAAV,CAAT,CAAP;AACH;AAED,SAAgBE,aAAaX,MAAYK;AACrC,MAAMO,WAAW,GAAGR,cAAc,CAACJ,IAAD,EAAOK,SAAP,CAAlC;AACA,MAAMQ,MAAM,GAAGD,WAAW,CAACL,OAAZ,KAAwB,CAAvC;AACA,SAAO,IAAIX,IAAJ,CAASgB,WAAW,CAACF,OAAZ,CAAoBG,MAApB,CAAT,CAAP;AACH;AAED,SAAgBC,gBACZd,MACAe;AAEA,SAAO;AACHC,IAAAA,KAAK,EAAEZ,cAAc,CAACJ,IAAD,EAAOe,SAAP,CADlB;AAEHE,IAAAA,GAAG,EAAEN,YAAY,CAACX,IAAD,EAAOe,SAAP;AAFd,GAAP;AAIH;AAED,AAAO,IAAMG,IAAI,GAAG,CAChBtO,kBAAE,CAAC,aAAD,CADc,EAEhBA,kBAAE,CAAC,aAAD,CAFc,EAGhBA,kBAAE,CAAC,cAAD,CAHc,EAIhBA,kBAAE,CAAC,gBAAD,CAJc,EAKhBA,kBAAE,CAAC,eAAD,CALc,EAMhBA,kBAAE,CAAC,aAAD,CANc,EAOhBA,kBAAE,CAAC,eAAD,CAPc,CAAb;AAUP,AAAO,IAAMuO,WAAW,GAAG,CACvBvO,kBAAE,CAAC,cAAD,CADqB,EAEvBA,kBAAE,CAAC,eAAD,CAFqB,EAGvBA,kBAAE,CAAC,YAAD,CAHqB,EAIvBA,kBAAE,CAAC,YAAD,CAJqB,EAKvBA,kBAAE,CAAC,UAAD,CALqB,EAMvBA,kBAAE,CAAC,WAAD,CANqB,EAOvBA,kBAAE,CAAC,WAAD,CAPqB,EAQvBA,kBAAE,CAAC,aAAD,CARqB,EASvBA,kBAAE,CAAC,gBAAD,CATqB,EAUvBA,kBAAE,CAAC,cAAD,CAVqB,EAWvBA,kBAAE,CAAC,eAAD,CAXqB,EAYvBA,kBAAE,CAAC,eAAD,CAZqB,CAApB;;ACzBP,IAAMwO,SAAS,GAAoB,SAA7BA,SAA6B;;;MAC/BlQ,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAod,qBAAAA;MACAC,oBAAAA;yBACA9B;MAAAA,kCAAS;MACTvI,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACAqK,oBAAAA;2BACAyJ;MAAAA,sCAAW;AAEX,MAAMC,QAAQ,GAAGzd,MAAM,EAAvB;AAEA,MAAMmT,WAAW,GAAG8H,uBAAuB,CAAC;AACxC9N,IAAAA,IAAI,EAAJA,IADwC;AAExCxD,IAAAA,EAAE,EAAEyI,OAFoC;AAGxClS,IAAAA,KAAK,EAALA,KAHwC;AAIxCgT,IAAAA,QAAQ,EAARA,QAJwC;AAKxC5J,IAAAA,MAAM,EAANA,MALwC;AAMxC4I,IAAAA,KAAK,EAALA;AANwC,GAAD,CAA3C;AASA,MAAMkC,QAAQ,GAAGjB,WAAW,CAACjB,KAA7B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,MAAMwL,cAAc,GAAQ;AAExBtc,IAAAA,UAAU,EAAE9D,QAFY;AAGxBggB,IAAAA,YAAY,EAAE,sBAACK,GAAD;AAAA,aACVL,aAAY,IAAIA,aAAY,CAACnB,aAAa,CAACwB,GAAD,CAAd,CADlB;AAAA,KAHU;AAKxBJ,IAAAA,YAAY,EAAZA,YALwB;AAMxBK,IAAAA,MAAM,EAAER,WANgB;AAOxBS,IAAAA,YAAY,EAAEV,IAPU;AAQxBW,IAAAA,aAAa,EAAEX,IAAI,CAACtb,GAAL,CAAS,UAAC8b,GAAD;AAAA,aAASA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,CAAT;AAAA,KAAT;AARS,GAA5B;AAWA,SACI9gB,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,CAACuX,cAAD;AAAgBC,IAAAA,MAAM,EAAExX,4BAAA,CAACY,YAAD;AAAcrB,MAAAA,IAAI,EAAC;KAAnB;GAAxB,EACIS,4BAAA,CAAC+gB,cAAD;AACIvC,IAAAA,MAAM,EAAEA;AACRra,IAAAA,UAAU,EAAE9D;AACZ0e,IAAAA,UAAU,EAAEA;AACZT,IAAAA,SAAS,EAAEA;AACXzH,IAAAA,WAAW,EAAEA,WAAW,IAAI2H,MAAM,CAACpN,WAAP;AAC5B0F,IAAAA,YAAY,EAAEA;AACd7T,IAAAA,KAAK,EAAEiT,WAAW,CAACjT,KAAZ,IAAqB;AAC5B+d,IAAAA,WAAW,EAAE9K,WAAW,CAACD;AACzBgL,IAAAA,eAAe,EAAE/K,WAAW,CAAC7J;AAC7B6U,IAAAA,gBAAgB,EAAE,0BAACzgB,KAAD;AAAA,aACdT,4BAAA,CAACke,kBAAD,oBACQzd;AACJ0d,QAAAA,SAAS,EAAEqC,QAAQ,CAAC/X;QAFxB,CADc;AAAA;AAMlBgY,IAAAA,cAAc,EAAEA;AAChBU,IAAAA,UAAU,EAAE;AACRjR,MAAAA,IAAI,EAAJA,IADQ;AAERxD,MAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFR;AAGRtM,MAAAA,SAAS,EAAEmF,UAAU,CAAC6b,WAAW,CAAC,YAAD,CAAZ,iCAChBA,WAAW,CAAC,eAAD,CADK,IACejK,QADf,eAHb;AAMR,qCAA6BjH,IANrB;AAOR,0BAAoBiH,QAAQ,GACnBjB,WAAW,CAACxJ,EADO,sBAEnBwJ,WAAW,CAACxJ,EAFO,eAPpB;AAUR,sBAAgByK,QAVR;AAWRkK,MAAAA,YAAY,EAAE,KAXN;AAYRvW,MAAAA,GAAG,EAAE0V,QAZG;AAaRD,MAAAA,QAAQ,EAARA,QAbQ;AAcR9T,MAAAA,QAAQ,EAARA;AAdQ;GAjBhB,CADJ,CADJ,CADJ;AAwCH,CAxFD;;ACnBO,IAAM6U,wBAAwB,GAAG,SAA3BA,wBAA2B;MACpCpR,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAgT,iBAAAA;MACA5J,eAAAA;MACA4I,aAAAA;;AAEA,wBAAmBtC,cAAc,EAAjC;AAAA,MAAQG,MAAR,mBAAQA,MAAR;;AACA,MAAMpG,EAAE,GAAGwI,UAAU,CAAC;AAAEhF,IAAAA,IAAI,EAAJA,IAAF;AAAQxD,IAAAA,EAAE,EAAEyI;AAAZ,GAAD,CAArB;AAEA,MAAMoM,kBAAkB,GAAG;AACvB7U,IAAAA,EAAE,EAAFA,EADuB;AAEvBuI,IAAAA,KAAK,EAALA,KAFuB;AAGvBhS,IAAAA,KAAK,EAAEA,KAAK,IAAI;AAAE+c,MAAAA,KAAK,EAAEvd,SAAT;AAAoBwd,MAAAA,GAAG,EAAExd;AAAzB,KAHO;AAIvBwT,IAAAA,QAAQ,EAAE,kBAACgI,QAAD;AAAA,aAAyBhI,SAAQ,IAAIA,SAAQ,CAACgI,QAAD,CAA7C;AAAA,KAJa;AAKvB5R,IAAAA,MAAM,EAAE;AAAA,aAAMA,OAAM,IAAIA,OAAM,EAAtB;AAAA;AALe,GAA3B;AAQA,MAAM8J,WAAW,GAAGb,cAAc,CAACpF,IAAD,EAAO4C,MAAP,CAAlC;;AACA,MAAIA,MAAM,IAAIqD,WAAd,EAA2B;AACvB,wBACOoL,kBADP;AAEItM,MAAAA,KAAK,EACDA,KAAK,KAAKxS,SAAV,GACM8e,kBAAkB,CAACtM,KADzB,GAEMkB,WAAW,CAAClB,KAL1B;AAMIhS,MAAAA,KAAK,EACDA,KAAK,KAAKR,SAAV,GACM8e,kBAAkB,CAACte,KADzB,GAEMkT,WAAW,CAAClT,KAT1B;AAUIgT,MAAAA,QAAQ,EAAEA,SAAQ,GACZsL,kBAAkB,CAACtL,QADP,GAEZ,UAACgI,QAAD;AACInL,QAAAA,MAAM,CAACsD,aAAP,CACIlG,IADJ,EAEI+N,QAAQ,KAAKxb,SAAb,GAAyB,IAAzB,GAAgCwb,QAFpC;AAIH,OAjBX;AAkBI5R,MAAAA,MAAM,EAAEA,OAAM,GACRkV,kBAAkB,CAAClV,MADX,GAER;AAAA,eAAMyG,MAAM,CAACuD,eAAP,CAAuBnG,IAAvB,CAAN;AAAA;AApBV;AAsBH;;AACD,SAAOqR,kBAAP;AACH,CA7CM;;;;ACMP,IAAMC,QAAQ,GAAG,SAAXA,QAAW;MACbtR,YAAAA;MACAxD,UAAAA;MACA8R,cAAAA;MACAwB,aAAAA;MACAC,WAAAA;MACApJ,mBAAAA;MACAkJ,iBAAAA;MACAtT,gBAAAA;MACA8T,gBAAAA;MACAtK,gBAAAA;MACAwL,kBAAAA;AAEA,MAAMjB,QAAQ,GAAGzd,MAAM,EAAvB;AACA,MAAM2e,SAAS,GAAG;AAAEC,IAAAA,IAAI,EAAE3B,KAAR;AAAe4B,IAAAA,EAAE,EAAE3B;AAAnB,GAAlB;AACA,MAAMQ,cAAc,GAAQ;AAExBtc,IAAAA,UAAU,EAAE9D,QAFY;AAGxBsgB,IAAAA,MAAM,EAAER,WAHgB;AAIxBS,IAAAA,YAAY,EAAEV,IAJU;AAKxBW,IAAAA,aAAa,EAAEX,IAAI,CAACtb,GAAL,CAAS,UAAC8b,GAAD;AAAA,aAASA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,CAAT;AAAA,KAAT,CALS;AAOxBe,IAAAA,eAAe,EAAE,IAPO;AAQxBC,IAAAA,cAAc,EAAE/B,SARQ;AAUxBgC,IAAAA,YAAY,EAAE,CAAC/B,KAAD,EAAQ;AAAE2B,MAAAA,IAAI,EAAE3B,KAAR;AAAe4B,MAAAA,EAAE,EAAE3B;AAAnB,KAAR,CAVU;AAWxBI,IAAAA,YAAY,EAAE;AAAE2B,MAAAA,KAAK,EAAE/B;AAAT,KAXU;AAYxBgC,IAAAA,OAAO,EAAEhC,GAZe;AAaxByB,IAAAA,SAAS,EAATA,SAbwB;AAcxBD,IAAAA,UAAU,EAAVA;AAdwB,GAA5B;AAgBA,SACIzhB,4BAAA,CAAC+gB,cAAD;AACIvC,IAAAA,MAAM,EAAEA;AACRra,IAAAA,UAAU,EAAE9D;AACZ6hB,IAAAA,WAAW,EAAElC;AACb/c,IAAAA,KAAK,EAAE+c;AACPjB,IAAAA,UAAU,EAAEA;AACZT,IAAAA,SAAS,EAAEA;AACXzH,IAAAA,WAAW,EAAEA;AACbmK,IAAAA,WAAW,EAAE/K;AACbiL,IAAAA,gBAAgB,EAAE,0BAACzgB,KAAD;AAAA,aACdT,4BAAA,CAACke,kBAAD,oBAAwBzd;AAAO0d,QAAAA,SAAS,EAAEqC,QAAQ,CAAC/X;QAAnD,CADc;AAAA;AAGlBgY,IAAAA,cAAc,EAAEA;AAChBU,IAAAA,UAAU,EAAE;AACRjR,MAAAA,IAAI,EAAJA,IADQ;AAERxD,MAAAA,EAAE,EAAFA,EAFQ;AAGR2U,MAAAA,YAAY,EAAE,KAHN;AAIRvW,MAAAA,GAAG,EAAE0V,QAJG;AAKRD,MAAAA,QAAQ,EAARA,QALQ;AAMR9T,MAAAA,QAAQ,EAARA,QANQ;AAOR,kDAA0CyD,IAPlC;AAQR1D,MAAAA,IAAI,EAAE;AARE;GAbhB,CADJ;AA0BH,CAzDD;;ACDA,IAAM2V,MAAM,GAAG,SAATA,MAAS,OAYXrX,GAZW;MAEPoF,YAAAA;MACAsO,cAAAA;MACAwB,aAAAA;MACAC,WAAAA;MACApJ,mBAAAA;MACAkJ,iBAAAA;MACAtT,gBAAAA;MACA8T,gBAAAA;MACAtK,gBAAAA;AAIJ,MAAMyL,SAAS,GAAG;AAAEC,IAAAA,IAAI,EAAE3B,KAAR;AAAe4B,IAAAA,EAAE,EAAE3B;AAAnB,GAAlB;AACA,MAAMQ,cAAc,GAAQ;AAExBtc,IAAAA,UAAU,EAAE9D,QAFY;AAGxBsgB,IAAAA,MAAM,EAAER,WAHgB;AAIxBS,IAAAA,YAAY,EAAEV,IAJU;AAKxBW,IAAAA,aAAa,EAAEX,IAAI,CAACtb,GAAL,CAAS,UAAC8b,GAAD;AAAA,aAASA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,CAAT;AAAA,KAAT,CALS;AAOxBe,IAAAA,eAAe,EAAE,IAPO;AAQxBC,IAAAA,cAAc,EAAE/B,SARQ;AAUxBgC,IAAAA,YAAY,EAAE,CAAC/B,KAAD,EAAQ;AAAE2B,MAAAA,IAAI,EAAE3B,KAAR;AAAe4B,MAAAA,EAAE,EAAE3B;AAAnB,KAAR,CAVU;AAWxBI,IAAAA,YAAY,EAAE;AAAE+B,MAAAA,MAAM,EAAEpC;AAAV,KAXU;AAYxB0B,IAAAA,SAAS,EAATA,SAZwB;AAaxBW,IAAAA,KAAK,EAAEpC,GAAG,IAAID,KAbU;AAcxBsC,IAAAA,SAAS,EAAEtC;AAda,GAA5B;AAgBA,SACIhgB,4BAAA,CAAC+gB,cAAD;AACIvC,IAAAA,MAAM,EAAEA;AACRra,IAAAA,UAAU,EAAE9D;AACZ6hB,IAAAA,WAAW,EAAEjC;AACbhd,IAAAA,KAAK,EAAEgd;AACPlB,IAAAA,UAAU,EAAEA;AACZT,IAAAA,SAAS,EAAEA;AACXzH,IAAAA,WAAW,EAAEA;AACbmK,IAAAA,WAAW,EAAE/K;AACbiL,IAAAA,gBAAgB,EAAE,0BAACzgB,KAAD;AAAA,aACdT,4BAAA,CAACke,kBAAD,oBACQzd;AACJ0d,QAAAA,SAAS,EACJrT,GADI,aACJA,GADI,uBACJA,GAAgD,CAC3CrC;QAJd,CADc;AAAA;AASlBgY,IAAAA,cAAc,EAAEA;AAChBU,IAAAA,UAAU,EAAE;AACRjR,MAAAA,IAAI,EAAJA,IADQ;AAERmR,MAAAA,YAAY,EAAE,KAFN;AAGRvW,MAAAA,GAAG,EAAHA,GAHQ;AAIRyV,MAAAA,QAAQ,EAARA,QAJQ;AAKR9T,MAAAA,QAAQ,EAARA,QALQ;AAMR,gDAAwCyD,IANhC;AAOR1D,MAAAA,IAAI,EAAE;AAPE;GAnBhB,CADJ;AA+BH,CA9DD;;AAgEA,eAAeF,UAAU,CAA0B6V,MAA1B,CAAzB;;AC5DA,IAAMI,cAAc,GAAoB,SAAlCA,cAAkC;;;MACpCrS,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;yBACAub;MAAAA,kCAAS;MACTvI,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;2BACA8T;MAAAA,sCAAW;4BACXR;MAAAA,wCAAY;AAEZ,MAAMyC,UAAU,GAAGzf,MAAM,CAAmB,IAAnB,CAAzB;AAEA,MAAMmT,WAAW,GAAGoL,wBAAwB,CAAC;AACzCpR,IAAAA,IAAI,EAAJA,IADyC;AAEzCxD,IAAAA,EAAE,EAAEyI,OAFqC;AAGzClS,IAAAA,KAAK,EAALA,KAHyC;AAIzCgT,IAAAA,QAAQ,EAARA,QAJyC;AAKzC5J,IAAAA,MAAM,EAANA,MALyC;AAMzC4I,IAAAA,KAAK,EAALA;AANyC,GAAD,CAA5C;AASA,MAAMkC,QAAQ,GAAGjB,WAAW,CAACjB,KAA7B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,2BAAuBiB,WAAW,CAACjT,KAAnC;AAAA,MAAQ+c,KAAR,sBAAQA,KAAR;AAAA,MAAeC,GAAf,sBAAeA,GAAf;AAEA,SACIjgB,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,kBAAD,CAAP,iCAChBA,QAAM,CAAC,2BAAD,CADU,IACsB8W,QADtB;GADzB,EAKInX,4BAAA,CAACY,YAAD;AAAcrB,IAAAA,IAAI,EAAC;GAAnB,CALJ,EAMIS,4BAAA,CAACwhB,QAAD;AACItR,IAAAA,IAAI,EAAEA;AACNxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ;AAChB8R,IAAAA,MAAM,EAAEA;AACRwB,IAAAA,KAAK,EAAEA;AACPC,IAAAA,GAAG,EAAEA;AACLpJ,IAAAA,WAAW,EAAEA,WAAW,IAAI2H,MAAM,CAACpN,WAAP;AAC5B2O,IAAAA,SAAS,EAAEA;AACXtT,IAAAA,QAAQ,EAAEA;AACV8T,IAAAA,QAAQ,EAAEA;AACVtK,IAAAA,QAAQ,EAAE,kBAACwM,GAAD;AAAA,aACNvM,WAAW,CAACD,QAAZ,CAAqB;AACjB+J,QAAAA,KAAK,EAAEyC,GADU;AAEjBxC,QAAAA,GAAG,EAAEA;AAFY,OAArB,CADM;AAAA;AAMVwB,IAAAA,UAAU,EAAE;;;AACRe,MAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,mCAAAA,UAAU,CAAE/Z,OAAZ,4EAAqB6O,KAArB;AACH;GAlBL,CANJ,EA0BItX,4BAAA,CAACU,cAAD;AAAgBnB,IAAAA,IAAI,EAAC;GAArB,CA1BJ,EA2BIS,4BAAA,CAACmiB,QAAD;AACIjS,IAAAA,IAAI,EAAEA;AACNsO,IAAAA,MAAM,EAAEA;AACRwB,IAAAA,KAAK,EAAEA;AACPC,IAAAA,GAAG,EAAEA;AACLpJ,IAAAA,WAAW,EAAEA,WAAW,IAAI2H,MAAM,CAACpN,WAAP;AAC5B2O,IAAAA,SAAS,EAAEA;AACXtT,IAAAA,QAAQ,EAAEA;AACV8T,IAAAA,QAAQ,EAAEA;AACVtK,IAAAA,QAAQ,EAAE,kBAACwM,GAAD;AAAA,aACNvM,WAAW,CAACD,QAAZ,CAAqB;AACjB+J,QAAAA,KAAK,EAALA,KADiB;AAEjBC,QAAAA,GAAG,EAAEwC;AAFY,OAArB,CADM;AAAA;AAMV3X,IAAAA,GAAG,EAAE0X;GAfT,CA3BJ,CADJ,CADJ;AAiDH,CAtFD;;;;ACeA,IAAME,SAAS,GAAoB,SAA7BA,SAA6B;;;MAC/BxS,YAAAA;MACIiF,eAAJzI;MACAzJ,aAAAA;MACAod,qBAAAA;MACAC,oBAAAA;yBACA9B;MAAAA,kCAAS;MACTvI,gBAAAA;MACA5J,cAAAA;MACA+C,aAAAA;MACA4F,eAAAA;MACAC,aAAAA;MACA4B,mBAAAA;MACApK,gBAAAA;MACAqK,oBAAAA;2BACAyJ;MAAAA,sCAAW;4BACXR;MAAAA,wCAAY;;AAEZ,kBAAkCld,QAAQ,CAAc,IAAd,CAA1C;AAAA,MAAO8f,SAAP;AAAA,MAAkBC,YAAlB;;AACA,MAAMpC,QAAQ,GAAGzd,MAAM,EAAvB;AAEA,MAAMmT,WAAW,GAAG8H,uBAAuB,CAAC;AACxC9N,IAAAA,IAAI,EAAJA,IADwC;AAExCxD,IAAAA,EAAE,EAAEyI,OAFoC;AAGxClS,IAAAA,KAAK,EAALA,KAHwC;AAIxCgT,IAAAA,QAAQ,EAARA,QAJwC;AAKxC5J,IAAAA,MAAM,EAANA,MALwC;AAMxC4I,IAAAA,KAAK,EAALA;AANwC,GAAD,CAA3C;AASA,MAAMkC,QAAQ,GAAGjB,WAAW,CAACjB,KAA7B;AACA,MAAMmC,UAAU,GAAG;AACflH,IAAAA,IAAI,EAAJA,IADe;AAEfxD,IAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFD;AAGf0C,IAAAA,KAAK,EAALA,KAHe;AAIf4F,IAAAA,OAAO,EAAPA,OAJe;AAKfC,IAAAA,KAAK,EAAEiB,WAAW,CAACjB;AALJ,GAAnB;AAQA,MAAM4N,SAAS,GAAyB5f,KAAK,GACvC6c,eAAe,CAAC7c,KAAD,EAAQ8c,SAAR,CADwB,GAEvC,IAFN;AAGA,MAAMgC,YAAY,GACd9e,KAAK,IAAI4f,SAAT,GAAqBC,iBAAiB,CAACD,SAAD,CAAtC,GAAoD,EADxD;;AAGA,MAAME,YAAY,GAAG,SAAfA,YAAe;AACjB,QAAMC,UAAU,GAAGL,SAAS,GACtB7C,eAAe,CAAC6C,SAAD,EAAY5C,SAAZ,CADO,GAEtB,IAFN;AAGA,WAAO;AACHiD,MAAAA,UAAU,EAAEA,UAAU,GAAGF,iBAAiB,CAACE,UAAD,CAApB,GAAmC,EADtD;AAEHC,MAAAA,aAAa,EAAEJ,SAAS,IAAI;AACxBlB,QAAAA,IAAI,EAAEkB,SAAS,CAAC7C,KADQ;AAExB4B,QAAAA,EAAE,EAAEiB,SAAS,CAAC5C;AAFU,OAFzB;AAMH0B,MAAAA,IAAI,EAAEkB,SAAS,IAAIA,SAAS,CAAC7C,KAN1B;AAOH4B,MAAAA,EAAE,EAAEiB,SAAS,IAAIA,SAAS,CAAC5C;AAPxB,KAAP;AASH,GAbD;;AAeA,MAAMiD,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACxC,GAAD;AAAA,WAAekC,YAAY,CAAClC,GAAD,CAA3B;AAAA,GAAzB;;AACA,MAAMyC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WAAMP,YAAY,CAAC,IAAD,CAAlB;AAAA,GAAvB;;AAEA,MAAMnC,cAAc,GAAQ;AAExBtc,IAAAA,UAAU,EAAE9D,QAFY;AAGxBggB,IAAAA,YAAY,EAAE,sBAACK,GAAD;AAAA,aACVL,aAAY,IAAIA,aAAY,CAACnB,aAAa,CAACwB,GAAD,CAAd,CADlB;AAAA,KAHU;AAKxBJ,IAAAA,YAAY,EAAZA,YALwB;AAMxBK,IAAAA,MAAM,EAAER,WANgB;AAOxBS,IAAAA,YAAY,EAAEV,IAPU;AAQxBW,IAAAA,aAAa,EAAEX,IAAI,CAACtb,GAAL,CAAS,UAAC8b,GAAD;AAAA,aAASA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,CAAT;AAAA,KAAT,CARS;AAUxBe,IAAAA,eAAe,EAAE,IAVO;AAWxBE,IAAAA,YAAY,EAAZA,YAXwB;AAYxBL,IAAAA,SAAS,EAAEqB,YAAY,EAZC;AAaxBjB,IAAAA,cAAc,EAAE/B,SAbQ;AAcxBqD,IAAAA,eAAe,EAAEF,gBAdO;AAexBG,IAAAA,eAAe,EAAEF;AAfO,GAA5B;;AAkBA,MAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAAC5C,GAAD;AACnB,QAAM6C,YAAY,GAAGrE,aAAa,CAACwB,GAAD,CAAlC;AACAkC,IAAAA,YAAY,CAACW,YAAD,CAAZ;AACArN,IAAAA,WAAW,CAACD,QAAZ,CAAqB6J,eAAe,CAACY,GAAD,EAAMX,SAAN,CAAf,CAAgCC,KAArD;AACH,GAJD;;AAMA,SACIhgB,4BAAA,CAAC+U,KAAD,oBAAWqC,WAAX,EACIpX,4BAAA,CAACuX,cAAD;AAAgBC,IAAAA,MAAM,EAAExX,4BAAA,CAACY,YAAD;AAAcrB,MAAAA,IAAI,EAAC;KAAnB;GAAxB,EACIS,4BAAA,CAAC+gB,cAAD;AACIvC,IAAAA,MAAM,EAAEA;AACRra,IAAAA,UAAU,EAAE9D;AACZ0e,IAAAA,UAAU,EAAEA;AACZT,IAAAA,SAAS,EAAEA;AACXzH,IAAAA,WAAW,EAAEA,WAAW,IAAI2H,MAAM,CAACpN,WAAP;AAC5B0F,IAAAA,YAAY,EAAEA;AACd7T,IAAAA,KAAK,EAAEiT,WAAW,CAACjT,KAAZ,IAAqB;AAC5B+d,IAAAA,WAAW,EAAEsC;AACbrC,IAAAA,eAAe,EAAE/K,WAAW,CAAC7J;AAC7B6U,IAAAA,gBAAgB,EAAE,0BAACzgB,KAAD;AAAA,aACdT,4BAAA,CAACke,kBAAD,oBACQzd;AACJ0d,QAAAA,SAAS,EAAEqC,QAAQ,CAAC/X;QAFxB,CADc;AAAA;AAMlBgY,IAAAA,cAAc,EAAEA;AAChBU,IAAAA,UAAU,EAAE;AACRjR,MAAAA,IAAI,EAAJA,IADQ;AAERxD,MAAAA,EAAE,EAAEwJ,WAAW,CAACxJ,EAFR;AAGRtM,MAAAA,SAAS,EAAEmF,UAAU,CAAC6b,WAAW,CAAC,YAAD,CAAZ,iCAChBA,WAAW,CAAC,eAAD,CADK,IACejK,QADf,eAHb;AAMR,qCAA6BjH,IANrB;AAOR,0BAAoBiH,QAAQ,GACnBjB,WAAW,CAACxJ,EADO,sBAEnBwJ,WAAW,CAACxJ,EAFO,eAPpB;AAUR,sBAAgByK,QAVR;AAWRkK,MAAAA,YAAY,EAAE,KAXN;AAYRvW,MAAAA,GAAG,EAAE0V,QAZG;AAaRD,MAAAA,QAAQ,EAARA,QAbQ;AAcR9T,MAAAA,QAAQ,EAARA;AAdQ;GAjBhB,CADJ,CADJ,CADJ;AAwCH,CA/HD;;;;AC3BA,IAAM+W,MAAM,GAAoB,SAA1BA,MAA0B;MAC5B9K,eAAAA;MACAtJ,aAAAA;MACA4F,eAAAA;MACAiB,gBAAAA;2BACAxJ;MAAAA,sCAAW;MACXC,UAAAA;AAEA,SACI1M,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACI3D,4BAAA,QAAA;AAAOI,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;GAAxB,EACIL,4BAAA,QAAA;mBACgB;AACZwM,IAAAA,IAAI,EAAC;AACLkM,IAAAA,OAAO,EAAEA;AACTzC,IAAAA,QAAQ,EAAEA;AACVxJ,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,EAAE,EAAEA;GANR,CADJ,EASI1M,4BAAA,OAAA;AAAMI,IAAAA,SAAS,EAAEC,QAAM,CAAC,gBAAD;GAAvB,CATJ,EAUK+O,KAAK,IACFpP,4BAAA,OAAA;AAAMI,IAAAA,SAAS,EAAEC,QAAM,CAAC,eAAD;GAAvB,EAA2C+O,KAA3C,CAXR,CADJ,EAeK4F,OAAO,IACJhV,4BAAA,OAAA;AAAMI,IAAAA,SAAS,EAAEC,QAAM,CAAC,iBAAD;GAAvB,EAA6C2U,OAA7C,CAhBR,CADJ;AAqBH,CA7BD;;;;;;ACNA,IAAMyO,WAAW,GAAG,SAAdA,WAAc;MAAGxZ,cAAAA;MAAQyZ,iBAAAA;MAAWxZ,eAAAA;AACtC,SACIlK,4BAAA,CAACqI,KAAD;AAAO1E,IAAAA,KAAK,EAAE;GAAd,EACI3D,4BAAA,CAACmF,MAAD;AAAQvB,IAAAA,IAAI,EAAE,CAAC,CAAD;AAAKC,IAAAA,UAAU,EAAC;GAA9B,EACI7D,4BAAA,OAAA;AAAMI,IAAAA,SAAS,EAAEC,QAAM,CAAC,QAAD;GAAvB,EAAoC4J,MAApC,CADJ,EAEIjK,4BAAA,CAACuM,QAAD;AAAQlH,IAAAA,KAAK,EAAC;AAAYlC,IAAAA,OAAO,EAAE+G;GAAnC,EACIlK,4BAAA,CAACe,SAAD,MAAA,CADJ,CAFJ,CADJ,EAOK2iB,SAAS,IACN1jB,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,YAAD;GAAtB,EAAuCqjB,SAAvC,CARR,CADJ;AAaH,CAdD;;ACMA,IAAMC,KAAK,GAAG,SAARA,KAAQ;MACV/gB,gBAAAA;MACAqH,cAAAA;MACAyZ,iBAAAA;MACAxZ,eAAAA;yBACAa;MAAAA,kCAASlC,cAAc,CAACE;MACxB6a,qBAAAA;wBACAnkB;MAAAA,gCAAQ;MACRC,cAAAA;MACAmkB,gBAAAA;AAEA,MAAM1jB,KAAK,GAAG;AACV2jB,IAAAA,OAAO,EAAE;AACLrkB,MAAAA,KAAK,EAALA,KADK;AAELC,MAAAA,MAAM,EAANA,MAFK;AAGLmkB,MAAAA,QAAQ,EAARA;AAHK,KADC;AAMV/c,IAAAA,OAAO,EAAE;AACLiE,MAAAA,MAAM,EAANA;AADK;AANC,GAAd;AAUA,SACI/K,4BAAA,CAAC+jB,UAAD;AACIxhB,IAAAA,MAAM;AACNyhB,IAAAA,gBAAgB;AAChBC,IAAAA,yBAAyB,EAAE;AAC3BC,IAAAA,cAAc,EAAEha;AAChB/J,IAAAA,KAAK,EAAEA;AACPgkB,IAAAA,cAAc,EAAE;AAChBC,IAAAA,YAAY,EAAC;AACbC,IAAAA,UAAU,EACLT,aAAa,IAAIra,QAAQ,CAAC+a,cAAT,CAAwBV,aAAxB,CAAlB,IACAnhB;AAEJ8hB,IAAAA,gBAAgB,EAAE;AACdpJ,MAAAA,IAAI,EAAE9a,QAAM,CAAC,SAAD,CADE;AAEdmkB,MAAAA,SAAS,EAAEnkB,QAAM,CAAC,qBAAD,CAFH;AAGdokB,MAAAA,WAAW,EAAEpkB,QAAM,CAAC,uBAAD;AAHL;AAKlBD,IAAAA,SAAS,EAAE;AACP+a,MAAAA,IAAI,EAAE9a,QAAM,CAAC,SAAD,CADL;AAEPmkB,MAAAA,SAAS,EAAEnkB,QAAM,CAAC,qBAAD,CAFV;AAGPokB,MAAAA,WAAW,EAAEpkB,QAAM,CAAC,uBAAD;AAHZ;GAjBf,EAuBIL,4BAAA,CAACyjB,WAAD;AACIxZ,IAAAA,MAAM,EAAEA;AACRyZ,IAAAA,SAAS,EAAEA;AACXxZ,IAAAA,OAAO,EAAEA;GAHb,CAvBJ,EA4BKtH,QA5BL,CADJ;AAgCH,CArDD;;AAwDA+gB,KAAK,CAACe,aAAN,GAAsB,UAACC,WAAD;AAClBZ,EAAAA,UAAU,CAACW,aAAX,CAAyBC,WAAzB;AACH,CAFD;;;;ACpEA,IAAMC,SAAS,GAAG,SAAZA,SAAY;MAAGhiB,gBAAAA;AACjB,SAAO5C,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,YAAD;GAAtB,EAAuCuC,QAAvC,CAAP;AACH,CAFD;;;;ACSA,IAAMiiB,WAAW,GAAG,SAAdA,WAAc;MAAGjiB,gBAAAA;MAAU8L,eAAAA;;AAC7B,MAAIA,OAAJ,EAAa;AAAA;;AACT,QAAMoW,aAAa,GAAGC,iBAAiB,CAACrW,OAAO,CAACsW,OAAT,EAAkB;AACrD3f,MAAAA,KAAK,EAAE,CAAAqJ,OAAO,SAAP,IAAAA,OAAO,WAAP,gCAAAA,OAAO,CAAEsW,OAAT,sEAAkBvkB,KAAlB,CAAwB4E,KAAxB,KAAiC;AADa,KAAlB,CAAvC;AAGA,QAAM4f,eAAe,GAAGF,iBAAiB,CAACrW,OAAO,CAACwW,SAAT,EAAoB;AACzD7f,MAAAA,KAAK,EAAE,CAAAqJ,OAAO,SAAP,IAAAA,OAAO,WAAP,kCAAAA,OAAO,CAAEwW,SAAT,0EAAoBzkB,KAApB,CAA0B4E,KAA1B,KAAmC;AADe,KAApB,CAAzC;AAGA,QAAM8f,cAAc,GAAGJ,iBAAiB,CAACrW,OAAO,CAAC0W,QAAT,EAAmB;AACvD/f,MAAAA,KAAK,EAAE,CAAAqJ,OAAO,SAAP,IAAAA,OAAO,WAAP,iCAAAA,OAAO,CAAE0W,QAAT,wEAAmB3kB,KAAnB,CAAyB4E,KAAzB,KAAkC;AADc,KAAnB,CAAxC;AAIA,WACIrF,4BAAA,CAACqlB,eAAD,MAAA,EACIrlB,4BAAA,CAACmF,MAAD;AAAQrB,MAAAA,cAAc,EAAC;KAAvB,EACI9D,4BAAA,MAAA;AACII,MAAAA,SAAS,EAAEmF,UAAU,gCAChBlF,QAAM,CAAC,oBAAD,CADU,IAEb8kB,cAAc,IACdA,cAAc,CAAC1kB,KAAf,CAAqB4E,KAArB,CAA2BigB,UAA3B,CAAsC,MAAtC,CAHa;KADzB,EAOKH,cAAc,IAAInlB,4BAAA,MAAA,MAAA,CAPvB,CADJ,EAUIA,4BAAA,CAACmF,MAAD;AAAQxB,MAAAA,KAAK,EAAE;KAAf,EACKshB,eADL,EAEKH,aAFL,CAVJ,CADJ,CADJ;AAmBH;;AAED,SAAO9kB,4BAAA,CAACqlB,eAAD,MAAA,EAAkBziB,QAAlB,CAAP;AACH,CAlCD;;AAoCA,IAAMmiB,iBAAiB,GAAG,SAApBA,iBAAoB,CACtBQ,MADsB,EAEtBC,QAFsB;AAItB,MAAI,CAACD,MAAL,EAAa;AACT,WAAO,IAAP;AACH;;AACD,MAAIA,MAAM,CAAC/Y,IAAP,KAAgBD,QAApB,EAA4B;AACxB,WAAOgZ,MAAP;AACH;;AACD,SAAOvlB,cAAK,CAACmM,YAAN,CAAmBoZ,MAAnB;AACH5Y,IAAAA,IAAI,EAAE;AADH,KAEA6Y,QAFA,EAAP;AAIH,CAdD;;AAmBA,IAAMH,eAAe,GAAG,SAAlBA,eAAkB;MAAGziB,iBAAAA;AACvB,MAAM6iB,aAAa,GAAGzlB,cAAK,CAACqE,QAAN,CAAeC,OAAf,CAAuB1B,QAAvB,CAAtB;AACA,MAAM8iB,kBAAkB,GACpBD,aAAa,CAAC/gB,MAAd,KAAyB,CAAzB,IAA+B+gB,aAAa,CAAC,CAAD,CAAb,CAAyBjZ,IAAzB,KAAkCrH,MADrE;AAEA,SACInF,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,cAAD;GAAtB,EACIL,4BAAA,CAACmF,MAAD;AACIrB,IAAAA,cAAc,EAAC;AACfH,IAAAA,KAAK,EAAE;AACPC,IAAAA,IAAI,EAAE8hB,kBAAkB,GAAG,CAAC,CAAD,CAAH,GAASjjB;GAHrC,EAKKG,QALL,CADJ,CADJ;AAWH,CAfD;;;;;ACvEA;AAYA,IAAM+iB,KAAK,GAAG,SAARA,KAAQ,OAEVxa,YAFU;;;MACRvI,gBAAAA;MAAUyC,aAAAA;MAAOwH,aAAAA;MAAU+Y;;AAG7B,MAAMta,WAAW,GAAGvI,MAAM,CAAiB,IAAjB,CAA1B;AAEA,MAAM+H,GAAG,GAAGK,YAAY,IAAIG,WAA5B;AAEAsM,EAAAA,eAAe,CAAC;AACZ,QACI,OAAO9M,GAAP,KAAe,UAAf,IACAA,GAAG,CAACrC,OADJ,IAEAzI,cAAK,CAAC6lB,cAAN,CAAqBjjB,QAArB,CAFA,IAGA,QAAOA,QAAP,aAAOA,QAAP,uBAAOA,QAAQ,CAAE4J,IAAjB,MAA0B,UAJ9B,EAKE;AACE1B,MAAAA,GAAG,CAACrC,OAAJ,CAAYtI,KAAZ,CAAkBT,MAAlB,GAA2BoL,GAAG,CAACrC,OAAJ,CAAYuP,WAAZ,GAA0B,IAArD;AACH;AACJ,GATc,CAAf;AAWA,SACIhY,4BAAA,CAACkL,SAAD;AAASpE,IAAAA,OAAO,EAAE+F;AAAO/B,IAAAA,GAAG,EAAEA;GAA9B,EACI9K,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,OAAD,CAAP,iCAChBA,QAAM,CAAC,gBAAD,CADU,IACWgF,KAAK,KAAK,SADrB,cAEhBhF,QAAM,CAAC,eAAD,CAFU,IAEUgF,KAAK,KAAK,QAFpB,cAGhBhF,QAAM,CAAC,aAAD,CAHU,IAGQgF,KAAK,KAAK,MAHlB,cAIhBhF,QAAM,CAAC,gBAAD,CAJU,IAIWgF,KAAK,KAAK,SAJrB;AAMrByF,IAAAA,GAAG,EAAEA;KACD8a,WARR,EAUKhjB,QAVL,CADJ,CADJ;AAgBH,CAnCD;;AAqCA,cAAe0J,UAAU,CAAwBqZ,KAAxB,CAAzB;;;;;;ACxCA,IAAMG,WAAW,GAAoB,SAA/BA,WAA+B;MAAGC,WAAAA;MAAKjmB,aAAAA;sBAAOkmB;MAAAA,4BAAM;;AACtD,kBAA0CnjB,QAAQ,CAAC,KAAD,CAAlD;AAAA,MAAOojB,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAIH,GAAG,IAAI,CAACE,aAAZ,EAA2B;AACvB,WACIjmB,4BAAA,MAAA;AACImmB,MAAAA,GAAG,EAAEJ;AACLC,MAAAA,GAAG,EAAEA;AACLI,MAAAA,OAAO,EAAE;AACLF,QAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACH;KALL,CADJ;AASH;;AAED,SACIlmB,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,cAAD;GAAtB,EACIL,4BAAA,CAAC4B,QAAD;AAAUrC,IAAAA,IAAI,EAAC;AAAWO,IAAAA,KAAK,EAAEA;GAAjC,CADJ,CADJ;AAKH,CAnBD;;ACTO,IAAMumB,cAAc,GAAG,CAC1B;AACIzK,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAD0B,EAK1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAL0B,EAS1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAT0B,EAa1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAb0B,EAiB1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAjB0B,EAqB1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CArB0B,EAyB1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAzB0B,EA6B1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CA7B0B,EAiC1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAjC0B,EAqC1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CArC0B,EAyC1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CAzC0B,EA6C1B;AACI1K,EAAAA,eAAe,EAAE,SADrB;AAEI0K,EAAAA,WAAW,EAAE;AAFjB,CA7C0B,CAAvB;;ACeP,IAAMC,MAAM,GAAoB,SAA1BA,MAA0B;;;MAC5B3jB,gBAAAA;wBACA9C;MAAAA,gCAAQ6U;uBACRpV;MAAAA,8BAAO;MACPwmB,WAAAA;MACAS,aAAAA;MACAR,WAAAA;;AAEA,kBAAsCnjB,QAAQ,CAC1C;AAAA,WAAMwjB,cAAc,CAAC1e,IAAI,CAAC8e,KAAL,CAAW9e,IAAI,CAAC0N,MAAL,KAAgBgR,cAAc,CAAC3hB,MAA1C,CAAD,CAApB;AAAA,GAD0C,CAA9C;AAAA,MAAOgiB,2BAAP;;AAKA,MAAM9K,eAAe,GAAGmK,GAAG,GAAGtR,OAAH,GAAa3U,KAAxC;AACA,SACIE,4BAAA,MAAA;AACII,IAAAA,SAAS,EAAEmF,UAAU,CAAClF,QAAM,CAAC,QAAD,CAAP,iCAChBA,QAAM,CAAC,eAAD,CADU,IACUd,IAAI,KAAK,OADnB,cAEhBc,QAAM,CAAC,gBAAD,CAFU,IAEWd,IAAI,KAAK,QAFpB,cAGhBc,QAAM,CAAC,eAAD,CAHU,IAGUd,IAAI,KAAK,OAHnB,cAIhBc,QAAM,CAAC,qBAAD,CAJU,IAIgBd,IAAI,KAAK,aAJzB;AAMrBY,IAAAA,KAAK,EAAE;AACHyb,MAAAA,eAAe,EACXhZ,QAAQ,IAAImjB,GAAZ,GACMnK,eADN,GAEM8K,2BAA2B,CAAC9K;AAJnC;GAPX,EAcKhZ,QAAQ,IACL5C,4BAAA,CAAC8lB,WAAD;AACIC,IAAAA,GAAG,EAAEA;AACLjmB,IAAAA,KAAK,EAAE4mB,2BAA2B,CAACJ;AACnCN,IAAAA,GAAG,EAAEA;GAHT,CAfR,EAqBKQ,KAAK,IAAIjnB,IAAI,KAAK,OAAlB,IACGS,4BAAA,MAAA;AAAKI,IAAAA,SAAS,EAAEC,QAAM,CAAC,eAAD;GAAtB,EAA0CmmB,KAA1C,CAtBR,CADJ;AA2BH,CAzCD;;;;"}
|