@laerdal/life-react-components 3.6.0-dev.1.full → 3.6.1
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/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
- package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
- package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
- package/dist/Banners/__tests__/Banner.test.tsx +47 -0
- package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
- package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
- package/dist/Button/TextButton.cjs +648 -0
- package/dist/Button/TextButton.cjs.map +1 -0
- package/dist/Button/TextButton.d.ts +77 -0
- package/dist/Button/TextButton.js +640 -0
- package/dist/Button/TextButton.js.map +1 -0
- package/dist/Button/__tests__/BackButton.test.tsx +32 -0
- package/dist/Button/__tests__/Button.test.tsx +45 -0
- package/dist/Button/__tests__/DualButton.test.tsx +119 -0
- package/dist/Button/__tests__/TextButton.test.tsx +45 -0
- package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
- package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
- package/dist/Card/VerticalCard/VerticalCard.cjs +187 -0
- package/dist/Card/VerticalCard/VerticalCard.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCard.d.ts +25 -0
- package/dist/Card/VerticalCard/VerticalCard.js +178 -0
- package/dist/Card/VerticalCard/VerticalCard.js.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.cjs +261 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.d.ts +53 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.js +252 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.js.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.cjs +145 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.d.ts +42 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.js +136 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.js.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardTopSection.cjs +165 -0
- package/dist/Card/VerticalCard/VerticalCardTopSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardTopSection.d.ts +45 -0
- package/dist/Card/VerticalCard/VerticalCardTopSection.js +156 -0
- package/dist/Card/VerticalCard/VerticalCardTopSection.js.map +1 -0
- package/dist/Card/VerticalCard/__tests__/VerticalCard.test.tsx +124 -0
- package/dist/Card/__tests__/Card.test.tsx +146 -0
- package/dist/Chips/ChoiceChips.cjs +0 -1
- package/dist/Chips/ChoiceChips.cjs.map +1 -1
- package/dist/Chips/ChoiceChips.js +0 -1
- package/dist/Chips/ChoiceChips.js.map +1 -1
- package/dist/Chips/__tests__/ActionChip.test.tsx +94 -0
- package/dist/Chips/__tests__/ChoiceChips.test.tsx +79 -0
- package/dist/Chips/__tests__/FilterChip.test.tsx +95 -0
- package/dist/Chips/__tests__/InputChip.test.tsx +155 -0
- package/dist/ChipsInput/ChipDropdownInput.cjs +1 -1
- package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.js +1 -1
- package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
- package/dist/ChipsInput/__tests__/ChipDropdownInput.test.tsx +100 -0
- package/dist/ChipsInput/__tests__/ChipInputFields.test.tsx +155 -0
- package/dist/Dropdown/BasicDropdown.cjs +0 -2
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.js +0 -2
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/DropdownButton.cjs +0 -4
- package/dist/Dropdown/DropdownButton.cjs.map +1 -1
- package/dist/Dropdown/DropdownButton.js +0 -4
- package/dist/Dropdown/DropdownButton.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +1 -1
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +1 -1
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +0 -2
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.js +0 -2
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
- package/dist/Footer/__tests__/Footer.test.tsx +182 -0
- package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +31 -0
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs +1 -0
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js +1 -0
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/SubMenu.cjs +1 -0
- package/dist/GlobalNavigationBar/desktop/SubMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/SubMenu.js +1 -0
- package/dist/GlobalNavigationBar/desktop/SubMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/__tests__/DesktopActions.test.tsx +108 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/ExtendedMainMenu.test.tsx +28 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/MainMenu.test.tsx +55 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/RightSideNav.test.tsx +45 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/UserMenu.test.tsx +125 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenu.test.tsx +317 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuContent.test.tsx +294 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuHeader.test.tsx +195 -0
- package/dist/InputFields/QuickSearch.cjs +1 -1
- package/dist/InputFields/QuickSearch.cjs.map +1 -1
- package/dist/InputFields/QuickSearch.js +1 -1
- package/dist/InputFields/QuickSearch.js.map +1 -1
- package/dist/InputFields/__tests__/NumberField.test.tsx +67 -0
- package/dist/InputFields/__tests__/NumberInput.test.tsx +68 -0
- package/dist/InputFields/__tests__/QuickSearch.test.tsx +42 -0
- package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
- package/dist/List/__tests__/ListRow.test.tsx +18 -0
- package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
- package/dist/Modals/__tests__/Modal.test.tsx +169 -0
- package/dist/Modals/__tests__/ModalContainer.test.tsx +77 -0
- package/dist/Modals/__tests__/ModalContent.test.tsx +126 -0
- package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
- package/dist/Navigation/NavigationProvider.cjs +43 -0
- package/dist/Navigation/NavigationProvider.cjs.map +1 -0
- package/dist/Navigation/NavigationProvider.d.ts +15 -0
- package/dist/Navigation/NavigationProvider.js +32 -0
- package/dist/Navigation/NavigationProvider.js.map +1 -0
- package/dist/Navigation/index.cjs +19 -0
- package/dist/Navigation/index.cjs.map +1 -0
- package/dist/Navigation/index.d.ts +2 -0
- package/dist/Navigation/index.js +2 -0
- package/dist/Navigation/index.js.map +1 -0
- package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
- package/dist/Paginator/__tests__/Paginator.test.tsx +33 -0
- package/dist/Popover/__tests__/Popover.test.tsx +64 -0
- package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
- package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
- package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
- package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
- package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
- package/dist/Table/Table.cjs +3 -1
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.js +3 -1
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody.cjs +1 -1
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.js +1 -1
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableFooter.cjs +0 -2
- package/dist/Table/TableFooter.cjs.map +1 -1
- package/dist/Table/TableFooter.js +0 -2
- package/dist/Table/TableFooter.js.map +1 -1
- package/dist/Table/__tests__/Table.test.tsx +499 -0
- package/dist/Tabs/__tests__/HorizontalTabs.test.tsx +95 -0
- package/dist/Tabs/__tests__/TabLink.test.tsx +40 -0
- package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
- package/dist/Tag/__tests__/Tag.test.tsx +86 -0
- package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
- package/dist/Toggles/__tests__/ToggleButton.test.tsx +53 -0
- package/dist/Toggles/__tests__/ToggleSwitch.test.tsx +87 -0
- package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
- package/dist/icons/systemicons/CreditCard.cjs +43 -0
- package/dist/icons/systemicons/CreditCard.cjs.map +1 -0
- package/dist/icons/systemicons/CreditCard.d.ts +3 -0
- package/dist/icons/systemicons/CreditCard.js +33 -0
- package/dist/icons/systemicons/CreditCard.js.map +1 -0
- package/dist/icons/systemicons/Discount.cjs +43 -0
- package/dist/icons/systemicons/Discount.cjs.map +1 -0
- package/dist/icons/systemicons/Discount.d.ts +3 -0
- package/dist/icons/systemicons/Discount.js +33 -0
- package/dist/icons/systemicons/Discount.js.map +1 -0
- package/dist/icons/systemicons/DocumentComplete.cjs +43 -0
- package/dist/icons/systemicons/DocumentComplete.cjs.map +1 -0
- package/dist/icons/systemicons/DocumentComplete.d.ts +3 -0
- package/dist/icons/systemicons/DocumentComplete.js +33 -0
- package/dist/icons/systemicons/DocumentComplete.js.map +1 -0
- package/dist/icons/systemicons/Folder.cjs +43 -0
- package/dist/icons/systemicons/Folder.cjs.map +1 -0
- package/dist/icons/systemicons/Folder.d.ts +3 -0
- package/dist/icons/systemicons/Folder.js +33 -0
- package/dist/icons/systemicons/Folder.js.map +1 -0
- package/dist/icons/systemicons/FolderNew.cjs +43 -0
- package/dist/icons/systemicons/FolderNew.cjs.map +1 -0
- package/dist/icons/systemicons/FolderNew.d.ts +3 -0
- package/dist/icons/systemicons/FolderNew.js +33 -0
- package/dist/icons/systemicons/FolderNew.js.map +1 -0
- package/dist/icons/systemicons/MoodHappy.cjs +43 -0
- package/dist/icons/systemicons/MoodHappy.cjs.map +1 -0
- package/dist/icons/systemicons/MoodHappy.d.ts +3 -0
- package/dist/icons/systemicons/MoodHappy.js +33 -0
- package/dist/icons/systemicons/MoodHappy.js.map +1 -0
- package/dist/icons/systemicons/MoodIndifferent.cjs +43 -0
- package/dist/icons/systemicons/MoodIndifferent.cjs.map +1 -0
- package/dist/icons/systemicons/MoodIndifferent.d.ts +3 -0
- package/dist/icons/systemicons/MoodIndifferent.js +33 -0
- package/dist/icons/systemicons/MoodIndifferent.js.map +1 -0
- package/dist/icons/systemicons/MoodSad.cjs +43 -0
- package/dist/icons/systemicons/MoodSad.cjs.map +1 -0
- package/dist/icons/systemicons/MoodSad.d.ts +3 -0
- package/dist/icons/systemicons/MoodSad.js +33 -0
- package/dist/icons/systemicons/MoodSad.js.map +1 -0
- package/dist/icons/systemicons/MoodVeryHappy.cjs +43 -0
- package/dist/icons/systemicons/MoodVeryHappy.cjs.map +1 -0
- package/dist/icons/systemicons/MoodVeryHappy.d.ts +3 -0
- package/dist/icons/systemicons/MoodVeryHappy.js +33 -0
- package/dist/icons/systemicons/MoodVeryHappy.js.map +1 -0
- package/dist/icons/systemicons/MoodVerySad.cjs +43 -0
- package/dist/icons/systemicons/MoodVerySad.cjs.map +1 -0
- package/dist/icons/systemicons/MoodVerySad.d.ts +3 -0
- package/dist/icons/systemicons/MoodVerySad.js +33 -0
- package/dist/icons/systemicons/MoodVerySad.js.map +1 -0
- package/dist/icons/systemicons/Orders.cjs +43 -0
- package/dist/icons/systemicons/Orders.cjs.map +1 -0
- package/dist/icons/systemicons/Orders.d.ts +3 -0
- package/dist/icons/systemicons/Orders.js +33 -0
- package/dist/icons/systemicons/Orders.js.map +1 -0
- package/dist/icons/systemicons/Palette.cjs +43 -0
- package/dist/icons/systemicons/Palette.cjs.map +1 -0
- package/dist/icons/systemicons/Palette.d.ts +3 -0
- package/dist/icons/systemicons/Palette.js +33 -0
- package/dist/icons/systemicons/Palette.js.map +1 -0
- package/dist/icons/systemicons/Stack.cjs +43 -0
- package/dist/icons/systemicons/Stack.cjs.map +1 -0
- package/dist/icons/systemicons/Stack.d.ts +3 -0
- package/dist/icons/systemicons/Stack.js +33 -0
- package/dist/icons/systemicons/Stack.js.map +1 -0
- package/dist/styles/design-tokens/dark/tokens.css +481 -0
- package/dist/styles/design-tokens/light/tokens.css +481 -0
- package/dist/styles/design-tokens/rqi_dark/tokens.css +481 -0
- package/dist/styles/design-tokens/rqi_light/tokens.css +481 -0
- package/dist/styles/react-datepicker.css +766 -0
- package/dist/styles/typography.cjs +35 -59
- package/dist/styles/typography.cjs.map +1 -1
- package/dist/styles/typography.d.ts +1 -1
- package/dist/styles/typography.js +35 -59
- package/dist/styles/typography.js.map +1 -1
- package/dist/test-utils.cjs +16 -10
- package/dist/test-utils.cjs.map +1 -1
- package/dist/test-utils.d.ts +5 -5
- package/dist/test-utils.js +14 -8
- package/dist/test-utils.js.map +1 -1
- package/dist/utils/color-tokens.cjs +91 -0
- package/dist/utils/color-tokens.cjs.map +1 -0
- package/dist/utils/color-tokens.d.ts +19 -0
- package/dist/utils/color-tokens.js +82 -0
- package/dist/utils/color-tokens.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownButton.cjs","names":["React","_interopRequireWildcard","require","_Button","_DropdownContent","_interopRequireDefault","_styledComponents","_common","_CommonStyling","_icons","_jsxRuntime","_excluded","_templateObject","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DropdownButtonContainer","styled","div","_taggedTemplateLiteral2","exports","DropdownButton","forwardRef","_ref","ref","items","icon","disabled","onClick","_ref$itemsType","itemsType","action","_ref$actionLabel","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","_ref$multiSelect","multiSelect","_ref$scrollable","scrollable","_ref$pinTopItem","pinTopItem","maxHeight","className","value","id","dataTestId","rest","_objectWithoutProperties2","_React$useState","useState","_React$useState2","_slicedToArray2","dropdownOpen","setDropdownOpen","_React$useState3","_React$useState4","activeDescendant","setActiveDescendant","_React$useState5","_React$useState6","selectedValues","setSelectedValues","_React$useState7","_React$useState8","focused","setFocused","_React$useState9","_React$useState10","keyboardNavigated","setKeyboardNavigated","dropdownRef","useRef","containerRef","useFocusOutsideRef","useClickOutsideRef","useEffect","handleValueSelect","values","renderButton","type","jsx","IconButton","variant","shape","role","tooltip","concat","event","detail","children","label","keepLabel","length","filter","includes","map","_a$displayLabel","displayLabel","join","cls","DropdownButtonTextWrapper","tabIndex","onMouseDown","defaultOnMouseDownHandler","onKeyDown","key","preventDefault","stopPropagation","jsxs","DropdownButtonTextContent","DropdownButtonTextIcon","DropdownButtonTextStyles","DropdownButtonTextArrow","SystemIcons","ArrowDropUp","ArrowDropDown","ariaRolesType","customizationProps","onValueUpdate","onActiveDescendantChanged","isOpen","setIsOpen","outline","messageOnNoResults","isButton","_default"],"sources":["../../src/Dropdown/DropdownButton.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {IconButton} from '../Button';\r\nimport DropdownContent from './DropdownContent';\r\nimport styled from 'styled-components';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {DropdownButtonProps} from './DropdownButtonTypes';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\r\nimport {\r\n DropdownButtonTextArrow,\r\n DropdownButtonTextContent,\r\n DropdownButtonTextIcon,\r\n DropdownButtonTextStyles,\r\n DropdownButtonTextWrapper\r\n} from './CommonStyling';\r\nimport {SystemIcons} from '../icons';\r\n\r\nexport const DropdownButtonContainer = styled.div`\r\n display: inline-block;\r\n`;\r\n\r\nconst DropdownButton = React.forwardRef( ({\r\n items,\r\n icon,\r\n disabled,\r\n onClick,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel = '',\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n size,\r\n width,\r\n alignLeft,\r\n multiSelect = false,\r\n scrollable = false,\r\n pinTopItem = false,\r\n maxHeight,\r\n className,\r\n value,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DropdownButtonProps, ref: React.Ref<HTMLButtonElement>) => {\r\n // Globally used variables within the view.\r\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n const dropdownRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const containerRef = useFocusOutsideRef(() => setDropdownOpen(false), [dropdownRef]);\r\n useClickOutsideRef(() => setDropdownOpen(false), [], containerRef);\r\n\r\n React.useEffect(() => {\r\n !dropdownOpen && setKeyboardNavigated(false)\r\n }, [dropdownOpen]);\r\n\r\n React.useEffect(() => {\r\n disabled && setDropdownOpen(false)\r\n }, [disabled]);\r\n\r\n React.useEffect(() => {\r\n setSelectedValues(value || []);\r\n }, [value]);\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n // Do all required actions\r\n onClick(values);\r\n };\r\n\r\n /**\r\n * Renders Icon Button dropdown menu.\r\n * @returns HTML View for the Icon button dropdown menu.\r\n */\r\n const renderButton = () => {\r\n switch (rest.type) {\r\n case 'icon':\r\n return (\r\n <IconButton ref={ref}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n role=\"button\"\r\n tooltip={rest.tooltip}\r\n id={id}\r\n aria-expanded={dropdownOpen}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n \r\n action={(event: any) => {\r\n setDropdownOpen(!dropdownOpen);\r\n if (event?.detail !== 1) {\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n disabled={disabled}>\r\n {icon}\r\n </IconButton>\r\n );\r\n case 'text':\r\n const label = rest.keepLabel || !selectedValues?.length\r\n ? rest.label\r\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\r\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\r\n return <DropdownButtonTextWrapper tabIndex={!disabled ? 0 : -1}\r\n className={cls}\r\n role=\"button\"\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-expanded={dropdownOpen}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDropdownOpen(!dropdownOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\r\n <DropdownButtonTextContent>\r\n {icon && <DropdownButtonTextIcon>{icon}</DropdownButtonTextIcon>}\r\n <DropdownButtonTextStyles>{label}</DropdownButtonTextStyles>\r\n <DropdownButtonTextArrow>\r\n {\r\n dropdownOpen\r\n ? <SystemIcons.ArrowDropUp aria-label='Expanded' size=\"24px\"/>\r\n : <SystemIcons.ArrowDropDown aria-label='Collapsed' size=\"24px\"/>\r\n }\r\n </DropdownButtonTextArrow>\r\n </DropdownButtonTextContent>\r\n </DropdownButtonTextWrapper>\r\n }\r\n };\r\n\r\n return (\r\n <DropdownButtonContainer className={className} ref={containerRef}> \r\n {renderButton()}\r\n <DropdownContent\r\n ref={dropdownRef}\r\n ariaRolesType=\"menu\"\r\n containerRef={containerRef}\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n onValueUpdate: handleValueSelect,\r\n multiSelect: multiSelect,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n scrollable: scrollable,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n items: items\r\n }}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size}\r\n width={width}\r\n alignLeft={alignLeft}\r\n isOpen={dropdownOpen}\r\n setIsOpen={setDropdownOpen}\r\n outline={keyboardNavigated}\r\n filter=\"\"\r\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n messageOnNoResults=\"No results\"\r\n isButton={true}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n </DropdownButtonContainer>\r\n );\r\n});\r\n\r\nexport default DropdownButton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DropdownButton.cjs","names":["React","_interopRequireWildcard","require","_Button","_DropdownContent","_interopRequireDefault","_styledComponents","_common","_CommonStyling","_icons","_jsxRuntime","_excluded","_templateObject","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DropdownButtonContainer","styled","div","_taggedTemplateLiteral2","exports","DropdownButton","forwardRef","_ref","ref","items","icon","disabled","onClick","_ref$itemsType","itemsType","action","_ref$actionLabel","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","_ref$multiSelect","multiSelect","_ref$scrollable","scrollable","_ref$pinTopItem","pinTopItem","maxHeight","className","value","id","dataTestId","rest","_objectWithoutProperties2","_React$useState","useState","_React$useState2","_slicedToArray2","dropdownOpen","setDropdownOpen","_React$useState3","_React$useState4","activeDescendant","setActiveDescendant","_React$useState5","_React$useState6","selectedValues","setSelectedValues","_React$useState7","_React$useState8","focused","setFocused","_React$useState9","_React$useState10","keyboardNavigated","setKeyboardNavigated","dropdownRef","useRef","containerRef","useFocusOutsideRef","useClickOutsideRef","useEffect","handleValueSelect","values","renderButton","type","jsx","IconButton","variant","shape","role","tooltip","concat","event","detail","children","label","keepLabel","length","filter","includes","map","_a$displayLabel","displayLabel","join","cls","DropdownButtonTextWrapper","tabIndex","onMouseDown","defaultOnMouseDownHandler","onKeyDown","key","preventDefault","stopPropagation","jsxs","DropdownButtonTextContent","DropdownButtonTextIcon","DropdownButtonTextStyles","DropdownButtonTextArrow","SystemIcons","ArrowDropUp","ArrowDropDown","ariaRolesType","customizationProps","onValueUpdate","onActiveDescendantChanged","isOpen","setIsOpen","outline","messageOnNoResults","isButton","_default"],"sources":["../../src/Dropdown/DropdownButton.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {IconButton} from '../Button';\r\nimport DropdownContent from './DropdownContent';\r\nimport styled from 'styled-components';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {DropdownButtonProps} from './DropdownButtonTypes';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\r\nimport {\r\n DropdownButtonTextArrow,\r\n DropdownButtonTextContent,\r\n DropdownButtonTextIcon,\r\n DropdownButtonTextStyles,\r\n DropdownButtonTextWrapper\r\n} from './CommonStyling';\r\nimport {SystemIcons} from '../icons';\r\n\r\nexport const DropdownButtonContainer = styled.div`\r\n display: inline-block;\r\n`;\r\n\r\nconst DropdownButton = React.forwardRef( ({\r\n items,\r\n icon,\r\n disabled,\r\n onClick,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel = '',\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n size,\r\n width,\r\n alignLeft,\r\n multiSelect = false,\r\n scrollable = false,\r\n pinTopItem = false,\r\n maxHeight,\r\n className,\r\n value,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DropdownButtonProps, ref: React.Ref<HTMLButtonElement>) => {\r\n // Globally used variables within the view.\r\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n const dropdownRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const containerRef = useFocusOutsideRef(() => setDropdownOpen(false), [dropdownRef]);\r\n useClickOutsideRef(() => setDropdownOpen(false), [], containerRef);\r\n\r\n React.useEffect(() => {\r\n !dropdownOpen && setKeyboardNavigated(false)\r\n }, [dropdownOpen]);\r\n\r\n React.useEffect(() => {\r\n disabled && setDropdownOpen(false)\r\n }, [disabled]);\r\n\r\n React.useEffect(() => {\r\n setSelectedValues(value || []);\r\n }, [value]);\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n // Do all required actions\r\n onClick(values);\r\n };\r\n\r\n /**\r\n * Renders Icon Button dropdown menu.\r\n * @returns HTML View for the Icon button dropdown menu.\r\n */\r\n const renderButton = () => {\r\n switch (rest.type) {\r\n case 'icon':\r\n return (\r\n <IconButton ref={ref}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n role=\"button\"\r\n tooltip={rest.tooltip}\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n \r\n action={(event: any) => {\r\n setDropdownOpen(!dropdownOpen);\r\n if (event?.detail !== 1) {\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n disabled={disabled}>\r\n {icon}\r\n </IconButton>\r\n );\r\n case 'text':\r\n const label = rest.keepLabel || !selectedValues?.length\r\n ? rest.label\r\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\r\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\r\n return <DropdownButtonTextWrapper tabIndex={!disabled ? 0 : -1}\r\n className={cls}\r\n role=\"button\"\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDropdownOpen(!dropdownOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\r\n <DropdownButtonTextContent>\r\n {icon && <DropdownButtonTextIcon>{icon}</DropdownButtonTextIcon>}\r\n <DropdownButtonTextStyles>{label}</DropdownButtonTextStyles>\r\n <DropdownButtonTextArrow>\r\n {\r\n dropdownOpen\r\n ? <SystemIcons.ArrowDropUp size=\"24px\"/>\r\n : <SystemIcons.ArrowDropDown size=\"24px\"/>\r\n }\r\n </DropdownButtonTextArrow>\r\n </DropdownButtonTextContent>\r\n </DropdownButtonTextWrapper>\r\n }\r\n };\r\n\r\n return (\r\n <DropdownButtonContainer className={className} ref={containerRef}> \r\n {renderButton()}\r\n <DropdownContent\r\n ref={dropdownRef}\r\n ariaRolesType=\"menu\"\r\n containerRef={containerRef}\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n onValueUpdate: handleValueSelect,\r\n multiSelect: multiSelect,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n scrollable: scrollable,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n items: items\r\n }}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size}\r\n width={width}\r\n alignLeft={alignLeft}\r\n isOpen={dropdownOpen}\r\n setIsOpen={setDropdownOpen}\r\n outline={keyboardNavigated}\r\n filter=\"\"\r\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n messageOnNoResults=\"No results\"\r\n isButton={true}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n </DropdownButtonContainer>\r\n );\r\n});\r\n\r\nexport default DropdownButton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -109,7 +109,6 @@ var DropdownButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
109
109
|
role: "button",
|
|
110
110
|
tooltip: rest.tooltip,
|
|
111
111
|
id: id,
|
|
112
|
-
"aria-expanded": dropdownOpen,
|
|
113
112
|
"data-testid": dataTestId,
|
|
114
113
|
"aria-controls": "".concat(id, "_dropdowncontent"),
|
|
115
114
|
"aria-activedescendant": activeDescendant,
|
|
@@ -136,7 +135,6 @@ var DropdownButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
136
135
|
role: "button",
|
|
137
136
|
id: id,
|
|
138
137
|
"data-testid": dataTestId,
|
|
139
|
-
"aria-expanded": dropdownOpen,
|
|
140
138
|
"aria-controls": "".concat(id, "_dropdowncontent"),
|
|
141
139
|
"aria-activedescendant": activeDescendant,
|
|
142
140
|
onMouseDown: defaultOnMouseDownHandler,
|
|
@@ -158,10 +156,8 @@ var DropdownButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
158
156
|
children: label
|
|
159
157
|
}), /*#__PURE__*/_jsx(DropdownButtonTextArrow, {
|
|
160
158
|
children: dropdownOpen ? /*#__PURE__*/_jsx(SystemIcons.ArrowDropUp, {
|
|
161
|
-
"aria-label": "Expanded",
|
|
162
159
|
size: "24px"
|
|
163
160
|
}) : /*#__PURE__*/_jsx(SystemIcons.ArrowDropDown, {
|
|
164
|
-
"aria-label": "Collapsed",
|
|
165
161
|
size: "24px"
|
|
166
162
|
})
|
|
167
163
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownButton.js","names":["React","IconButton","DropdownContent","styled","defaultOnMouseDownHandler","useClickOutsideRef","useFocusOutsideRef","DropdownButtonTextArrow","DropdownButtonTextContent","DropdownButtonTextIcon","DropdownButtonTextStyles","DropdownButtonTextWrapper","SystemIcons","jsx","_jsx","jsxs","_jsxs","DropdownButtonContainer","div","_templateObject","_taggedTemplateLiteral","DropdownButton","forwardRef","_ref","ref","items","icon","disabled","onClick","_ref$itemsType","itemsType","action","_ref$actionLabel","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","_ref$multiSelect","multiSelect","_ref$scrollable","scrollable","_ref$pinTopItem","pinTopItem","maxHeight","className","value","id","dataTestId","rest","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","dropdownOpen","setDropdownOpen","_React$useState3","_React$useState4","activeDescendant","setActiveDescendant","_React$useState5","_React$useState6","selectedValues","setSelectedValues","_React$useState7","_React$useState8","focused","setFocused","_React$useState9","_React$useState10","keyboardNavigated","setKeyboardNavigated","dropdownRef","useRef","containerRef","useEffect","handleValueSelect","values","renderButton","type","variant","shape","role","tooltip","concat","event","detail","children","label","keepLabel","length","filter","a","includes","map","_a$displayLabel","displayLabel","join","cls","tabIndex","onMouseDown","onKeyDown","e","key","preventDefault","stopPropagation","ArrowDropUp","ArrowDropDown","ariaRolesType","customizationProps","onValueUpdate","onActiveDescendantChanged","isOpen","setIsOpen","outline","messageOnNoResults","isButton"],"sources":["../../src/Dropdown/DropdownButton.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {IconButton} from '../Button';\r\nimport DropdownContent from './DropdownContent';\r\nimport styled from 'styled-components';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {DropdownButtonProps} from './DropdownButtonTypes';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\r\nimport {\r\n DropdownButtonTextArrow,\r\n DropdownButtonTextContent,\r\n DropdownButtonTextIcon,\r\n DropdownButtonTextStyles,\r\n DropdownButtonTextWrapper\r\n} from './CommonStyling';\r\nimport {SystemIcons} from '../icons';\r\n\r\nexport const DropdownButtonContainer = styled.div`\r\n display: inline-block;\r\n`;\r\n\r\nconst DropdownButton = React.forwardRef( ({\r\n items,\r\n icon,\r\n disabled,\r\n onClick,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel = '',\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n size,\r\n width,\r\n alignLeft,\r\n multiSelect = false,\r\n scrollable = false,\r\n pinTopItem = false,\r\n maxHeight,\r\n className,\r\n value,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DropdownButtonProps, ref: React.Ref<HTMLButtonElement>) => {\r\n // Globally used variables within the view.\r\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n const dropdownRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const containerRef = useFocusOutsideRef(() => setDropdownOpen(false), [dropdownRef]);\r\n useClickOutsideRef(() => setDropdownOpen(false), [], containerRef);\r\n\r\n React.useEffect(() => {\r\n !dropdownOpen && setKeyboardNavigated(false)\r\n }, [dropdownOpen]);\r\n\r\n React.useEffect(() => {\r\n disabled && setDropdownOpen(false)\r\n }, [disabled]);\r\n\r\n React.useEffect(() => {\r\n setSelectedValues(value || []);\r\n }, [value]);\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n // Do all required actions\r\n onClick(values);\r\n };\r\n\r\n /**\r\n * Renders Icon Button dropdown menu.\r\n * @returns HTML View for the Icon button dropdown menu.\r\n */\r\n const renderButton = () => {\r\n switch (rest.type) {\r\n case 'icon':\r\n return (\r\n <IconButton ref={ref}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n role=\"button\"\r\n tooltip={rest.tooltip}\r\n id={id}\r\n aria-expanded={dropdownOpen}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n \r\n action={(event: any) => {\r\n setDropdownOpen(!dropdownOpen);\r\n if (event?.detail !== 1) {\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n disabled={disabled}>\r\n {icon}\r\n </IconButton>\r\n );\r\n case 'text':\r\n const label = rest.keepLabel || !selectedValues?.length\r\n ? rest.label\r\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\r\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\r\n return <DropdownButtonTextWrapper tabIndex={!disabled ? 0 : -1}\r\n className={cls}\r\n role=\"button\"\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-expanded={dropdownOpen}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDropdownOpen(!dropdownOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\r\n <DropdownButtonTextContent>\r\n {icon && <DropdownButtonTextIcon>{icon}</DropdownButtonTextIcon>}\r\n <DropdownButtonTextStyles>{label}</DropdownButtonTextStyles>\r\n <DropdownButtonTextArrow>\r\n {\r\n dropdownOpen\r\n ? <SystemIcons.ArrowDropUp aria-label='Expanded' size=\"24px\"/>\r\n : <SystemIcons.ArrowDropDown aria-label='Collapsed' size=\"24px\"/>\r\n }\r\n </DropdownButtonTextArrow>\r\n </DropdownButtonTextContent>\r\n </DropdownButtonTextWrapper>\r\n }\r\n };\r\n\r\n return (\r\n <DropdownButtonContainer className={className} ref={containerRef}> \r\n {renderButton()}\r\n <DropdownContent\r\n ref={dropdownRef}\r\n ariaRolesType=\"menu\"\r\n containerRef={containerRef}\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n onValueUpdate: handleValueSelect,\r\n multiSelect: multiSelect,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n scrollable: scrollable,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n items: items\r\n }}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size}\r\n width={width}\r\n alignLeft={alignLeft}\r\n isOpen={dropdownOpen}\r\n setIsOpen={setDropdownOpen}\r\n outline={keyboardNavigated}\r\n filter=\"\"\r\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n messageOnNoResults=\"No results\"\r\n isButton={true}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n </DropdownButtonContainer>\r\n );\r\n});\r\n\r\nexport default DropdownButton;\r\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,SAAQC,UAAU,QAAO,WAAW;AACpC,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,MAAM,MAAM,mBAAmB;;AAEtC;AACA;AACA;;AAEA,SAAQC,yBAAyB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAO,WAAW;AAC3F,SACEC,uBAAuB,EACvBC,yBAAyB,EACzBC,sBAAsB,EACtBC,wBAAwB,EACxBC,yBAAyB,QACpB,iBAAiB;AACxB,SAAQC,WAAW,QAAO,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAErC,OAAO,IAAMC,uBAAuB,GAAGd,MAAM,CAACe,GAAG,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,oCAEhD;AAED,IAAMC,cAAc,gBAAGrB,KAAK,CAACsB,UAAU,CAAE,UAAAC,IAAA,EAuBOC,GAAiC,EAAK;EAAA,IAtB5DC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,cAAA,GAAAN,IAAA,CACPO,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,QAAQ,GAAAA,cAAA;IACpBE,MAAM,GAAAR,IAAA,CAANQ,MAAM;IAAAC,gBAAA,GAAAT,IAAA,CACNU,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAChBE,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,aAAa,GAAAb,IAAA,CAAba,aAAa;IACbC,IAAI,GAAAd,IAAA,CAAJc,IAAI;IACJC,KAAK,GAAAf,IAAA,CAALe,KAAK;IACLC,SAAS,GAAAhB,IAAA,CAATgB,SAAS;IAAAC,gBAAA,GAAAjB,IAAA,CACTkB,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA;IAAAE,eAAA,GAAAnB,IAAA,CACnBoB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAAAE,eAAA,GAAArB,IAAA,CAClBsB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAClBE,SAAS,GAAAvB,IAAA,CAATuB,SAAS;IACTC,SAAS,GAAAxB,IAAA,CAATwB,SAAS;IACTC,KAAK,GAAAzB,IAAA,CAALyB,KAAK;IACLC,EAAE,GAAA1B,IAAA,CAAF0B,EAAE;IACFC,UAAU,GAAA3B,IAAA,CAAV2B,UAAU;IACPC,IAAI,GAAAC,wBAAA,CAAA7B,IAAA,EAAA8B,SAAA;EAE/B;EACA,IAAAC,eAAA,GAAwCtD,KAAK,CAACuD,QAAQ,CAAU,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA/DI,YAAY,GAAAF,gBAAA;IAAEG,eAAe,GAAAH,gBAAA;EACpC,IAAAI,gBAAA,GAAgD5D,KAAK,CAACuD,QAAQ,CAAS,CAAC;IAAAM,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA;IAAjEE,gBAAgB,GAAAD,gBAAA;IAAEE,mBAAmB,GAAAF,gBAAA;EAC5C,IAAAG,gBAAA,GAA4ChE,KAAK,CAACuD,QAAQ,CAAW,EAAE,CAAC;IAAAU,gBAAA,GAAAR,cAAA,CAAAO,gBAAA;IAAjEE,cAAc,GAAAD,gBAAA;IAAEE,iBAAiB,GAAAF,gBAAA;EACxC,IAAAG,gBAAA,GAA8BpE,KAAK,CAACuD,QAAQ,CAAgB,IAAI,CAAC;IAAAc,gBAAA,GAAAZ,cAAA,CAAAW,gBAAA;IAA1DE,OAAO,GAAAD,gBAAA;IAAEE,UAAU,GAAAF,gBAAA;EAC1B,IAAAG,gBAAA,GAAkDxE,KAAK,CAACuD,QAAQ,CAAU,KAAK,CAAC;IAAAkB,iBAAA,GAAAhB,cAAA,CAAAe,gBAAA;IAAzEE,iBAAiB,GAAAD,iBAAA;IAAEE,oBAAoB,GAAAF,iBAAA;EAC9C,IAAMG,WAAW,GAAG5E,KAAK,CAAC6E,MAAM,CAAiB,IAAI,CAAC;EAEtD,IAAMC,YAAY,GAAGxE,kBAAkB,CAAC;IAAA,OAAMqD,eAAe,CAAC,KAAK,CAAC;EAAA,GAAE,CAACiB,WAAW,CAAC,CAAC;EACpFvE,kBAAkB,CAAC;IAAA,OAAMsD,eAAe,CAAC,KAAK,CAAC;EAAA,GAAE,EAAE,EAAEmB,YAAY,CAAC;EAElE9E,KAAK,CAAC+E,SAAS,CAAC,YAAM;IACpB,CAACrB,YAAY,IAAIiB,oBAAoB,CAAC,KAAK,CAAC;EAC9C,CAAC,EAAE,CAACjB,YAAY,CAAC,CAAC;EAElB1D,KAAK,CAAC+E,SAAS,CAAC,YAAM;IACpBpD,QAAQ,IAAIgC,eAAe,CAAC,KAAK,CAAC;EACpC,CAAC,EAAE,CAAChC,QAAQ,CAAC,CAAC;EAEd3B,KAAK,CAAC+E,SAAS,CAAC,YAAM;IACpBZ,iBAAiB,CAACnB,KAAK,IAAI,EAAE,CAAC;EAChC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,IAAMgC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,MAAgB,EAAK;IAC9C;IACArD,OAAO,CAACqD,MAAM,CAAC;EACjB,CAAC;;EAED;AACF;AACA;AACA;EACE,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,QAAQ/B,IAAI,CAACgC,IAAI;MACf,KAAK,MAAM;QACT,oBACErE,IAAA,CAACb,UAAU;UAACuB,GAAG,EAAEA,GAAI;UACT4D,OAAO,EAAC,WAAW;UACnBC,KAAK,EAAC,UAAU;UAChBC,IAAI,EAAC,QAAQ;UACbC,OAAO,EAAEpC,IAAI,CAACoC,OAAQ;UACtBtC,EAAE,EAAEA,EAAG;UACP,iBAAeS,YAAa;UAC5B,eAAaR,UAAW;UACxB,oBAAAsC,MAAA,CAAkBvC,EAAE,qBAAmB;UACvC,yBAAuBa,gBAAiB;UAExC/B,MAAM,EAAE,SAAAA,OAAC0D,KAAU,EAAK;YACtB9B,eAAe,CAAC,CAACD,YAAY,CAAC;YAC9B,IAAI,CAAA+B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,MAAM,MAAK,CAAC,EAAE;cACvBf,oBAAoB,CAAC,IAAI,CAAC;YAC5B;UACF,CAAE;UACFhD,QAAQ,EAAEA,QAAS;UAAAgE,QAAA,EAC5BjE;QAAI,CACK,CAAC;MAEjB,KAAK,MAAM;QACT,IAAMkE,KAAK,GAAGzC,IAAI,CAAC0C,SAAS,IAAI,EAAC3B,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAE4B,MAAM,IACnD3C,IAAI,CAACyC,KAAK,GACVnE,KAAK,CAACsE,MAAM,CAAC,UAAAC,CAAC;UAAA,OAAI9B,cAAc,CAAC+B,QAAQ,CAACD,CAAC,CAAChD,KAAK,CAAC;QAAA,EAAC,CAACkD,GAAG,CAAC,UAAAF,CAAC;UAAA,IAAAG,eAAA;UAAA,QAAAA,eAAA,GAAIH,CAAC,CAACI,YAAY,cAAAD,eAAA,cAAAA,eAAA,GAAIH,CAAC,CAAChD,KAAK;QAAA,EAAC,CAACqD,IAAI,CAAC,IAAI,CAAC;QACtG,IAAMC,GAAG,MAAAd,MAAA,CAAM7D,QAAQ,IAAI,UAAU,OAAA6D,MAAA,CAAI9B,YAAY,IAAI,UAAU,OAAA8B,MAAA,CAAIzC,SAAS,CAAE;QAClF,oBAAOjC,IAAA,CAACH,yBAAyB;UAAC4F,QAAQ,EAAE,CAAC5E,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAE;UAC7BoB,SAAS,EAAEuD,GAAI;UACfhB,IAAI,EAAC,QAAQ;UACbrC,EAAE,EAAEA,EAAG;UACP,eAAaC,UAAW;UACxB,iBAAeQ,YAAa;UAC5B,oBAAA8B,MAAA,CAAkBvC,EAAE,qBAAmB;UACvC,yBAAuBa,gBAAiB;UACxC0C,WAAW,EAAEpG,yBAA0B;UACvCqG,SAAS,EAAE,SAAAA,UAAAC,CAAC,EAAI;YACd,IAAIA,CAAC,CAACC,GAAG,KAAK,OAAO,IAAID,CAAC,CAACC,GAAG,KAAK,GAAG,EAAE;cACtCD,CAAC,CAACE,cAAc,CAAC,CAAC;cAClBF,CAAC,CAACG,eAAe,CAAC,CAAC;cACnBlD,eAAe,CAAC,CAACD,YAAY,CAAC;cAC9BiB,oBAAoB,CAAC,IAAI,CAAC;YAC5B;UACF,CAAE;UACF/C,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAM,CAACD,QAAQ,IAAIgC,eAAe,CAAC,CAACD,YAAY,CAAC;UAAA,CAAC;UAAAiC,QAAA,eAC3F3E,KAAA,CAACR,yBAAyB;YAAAmF,QAAA,GACvBjE,IAAI,iBAAIZ,IAAA,CAACL,sBAAsB;cAAAkF,QAAA,EAAEjE;YAAI,CAAyB,CAAC,eAChEZ,IAAA,CAACJ,wBAAwB;cAAAiF,QAAA,EAAEC;YAAK,CAA2B,CAAC,eAC5D9E,IAAA,CAACP,uBAAuB;cAAAoF,QAAA,EAEpBjC,YAAY,gBACR5C,IAAA,CAACF,WAAW,CAACkG,WAAW;gBAAC,cAAW,UAAU;gBAACzE,IAAI,EAAC;cAAM,CAAC,CAAC,gBAC5DvB,IAAA,CAACF,WAAW,CAACmG,aAAa;gBAAC,cAAW,WAAW;gBAAC1E,IAAI,EAAC;cAAM,CAAC;YAAC,CAE9C,CAAC;UAAA,CACD;QAAC,CACH,CAAC;IAChC;EACF,CAAC;EAED,oBACErB,KAAA,CAACC,uBAAuB;IAAC8B,SAAS,EAAEA,SAAU;IAACvB,GAAG,EAAEsD,YAAa;IAAAa,QAAA,GAC9DT,YAAY,CAAC,CAAC,eACfpE,IAAA,CAACZ,eAAe;MACdsB,GAAG,EAAEoD,WAAY;MACjBoC,aAAa,EAAC,MAAM;MACpBlC,YAAY,EAAEA,YAAa;MAC3BmC,kBAAkB,EAAE;QAClBnF,SAAS,EAAEA,SAAS;QACpBC,MAAM,EAAEA,MAAM,aAANA,MAAM,cAANA,MAAM,GAAK,YAAM,CACzB,CAAE;QACFE,WAAW,EAAEA,WAAW;QACxBC,aAAa,EAAEA,aAAa;QAC5BgF,aAAa,EAAElC,iBAAiB;QAChCvC,WAAW,EAAEA,WAAW;QACxBN,UAAU,EAAEA,UAAU;QACtBC,aAAa,EAAEA,aAAa;QAC5BO,UAAU,EAAEA,UAAU;QACtBE,UAAU,EAAEA,UAAU;QACtBC,SAAS,EAAEA,SAAS;QACpBrB,KAAK,EAAEA;MACT,CAAE;MACF0F,yBAAyB,EAAE,SAAAA,0BAACT,CAAC;QAAA,OAAK3C,mBAAmB,CAAC2C,CAAC,CAAC;MAAA,CAAC;MACzDpC,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBlC,IAAI,EAAEA,IAAK;MACXC,KAAK,EAAEA,KAAM;MACbC,SAAS,EAAEA,SAAU;MACrB6E,MAAM,EAAE1D,YAAa;MACrB2D,SAAS,EAAE1D,eAAgB;MAC3B2D,OAAO,EAAE5C,iBAAkB;MAC3BqB,MAAM,EAAC,EAAE;MACT7B,cAAc,EAAEf,IAAI,CAACgC,IAAI,KAAK,MAAM,IAAIrD,SAAS,KAAK,QAAQ,GAAG,EAAE,GAAGoC,cAAe;MACrFC,iBAAiB,EAAEA,iBAAkB;MACrCoD,kBAAkB,EAAC,YAAY;MAC/BC,QAAQ,EAAE,IAAK;MACfvE,EAAE,KAAAuC,MAAA,CAAKvC,EAAE;IAAmB,CAC7B,CAAC;EAAA,CACqB,CAAC;AAE9B,CAAC,CAAC;AAEF,eAAe5B,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DropdownButton.js","names":["React","IconButton","DropdownContent","styled","defaultOnMouseDownHandler","useClickOutsideRef","useFocusOutsideRef","DropdownButtonTextArrow","DropdownButtonTextContent","DropdownButtonTextIcon","DropdownButtonTextStyles","DropdownButtonTextWrapper","SystemIcons","jsx","_jsx","jsxs","_jsxs","DropdownButtonContainer","div","_templateObject","_taggedTemplateLiteral","DropdownButton","forwardRef","_ref","ref","items","icon","disabled","onClick","_ref$itemsType","itemsType","action","_ref$actionLabel","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","_ref$multiSelect","multiSelect","_ref$scrollable","scrollable","_ref$pinTopItem","pinTopItem","maxHeight","className","value","id","dataTestId","rest","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","dropdownOpen","setDropdownOpen","_React$useState3","_React$useState4","activeDescendant","setActiveDescendant","_React$useState5","_React$useState6","selectedValues","setSelectedValues","_React$useState7","_React$useState8","focused","setFocused","_React$useState9","_React$useState10","keyboardNavigated","setKeyboardNavigated","dropdownRef","useRef","containerRef","useEffect","handleValueSelect","values","renderButton","type","variant","shape","role","tooltip","concat","event","detail","children","label","keepLabel","length","filter","a","includes","map","_a$displayLabel","displayLabel","join","cls","tabIndex","onMouseDown","onKeyDown","e","key","preventDefault","stopPropagation","ArrowDropUp","ArrowDropDown","ariaRolesType","customizationProps","onValueUpdate","onActiveDescendantChanged","isOpen","setIsOpen","outline","messageOnNoResults","isButton"],"sources":["../../src/Dropdown/DropdownButton.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {IconButton} from '../Button';\r\nimport DropdownContent from './DropdownContent';\r\nimport styled from 'styled-components';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {DropdownButtonProps} from './DropdownButtonTypes';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\r\nimport {\r\n DropdownButtonTextArrow,\r\n DropdownButtonTextContent,\r\n DropdownButtonTextIcon,\r\n DropdownButtonTextStyles,\r\n DropdownButtonTextWrapper\r\n} from './CommonStyling';\r\nimport {SystemIcons} from '../icons';\r\n\r\nexport const DropdownButtonContainer = styled.div`\r\n display: inline-block;\r\n`;\r\n\r\nconst DropdownButton = React.forwardRef( ({\r\n items,\r\n icon,\r\n disabled,\r\n onClick,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel = '',\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n size,\r\n width,\r\n alignLeft,\r\n multiSelect = false,\r\n scrollable = false,\r\n pinTopItem = false,\r\n maxHeight,\r\n className,\r\n value,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DropdownButtonProps, ref: React.Ref<HTMLButtonElement>) => {\r\n // Globally used variables within the view.\r\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\r\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\r\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n const dropdownRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const containerRef = useFocusOutsideRef(() => setDropdownOpen(false), [dropdownRef]);\r\n useClickOutsideRef(() => setDropdownOpen(false), [], containerRef);\r\n\r\n React.useEffect(() => {\r\n !dropdownOpen && setKeyboardNavigated(false)\r\n }, [dropdownOpen]);\r\n\r\n React.useEffect(() => {\r\n disabled && setDropdownOpen(false)\r\n }, [disabled]);\r\n\r\n React.useEffect(() => {\r\n setSelectedValues(value || []);\r\n }, [value]);\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n // Do all required actions\r\n onClick(values);\r\n };\r\n\r\n /**\r\n * Renders Icon Button dropdown menu.\r\n * @returns HTML View for the Icon button dropdown menu.\r\n */\r\n const renderButton = () => {\r\n switch (rest.type) {\r\n case 'icon':\r\n return (\r\n <IconButton ref={ref}\r\n variant=\"secondary\"\r\n shape=\"circular\"\r\n role=\"button\"\r\n tooltip={rest.tooltip}\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n \r\n action={(event: any) => {\r\n setDropdownOpen(!dropdownOpen);\r\n if (event?.detail !== 1) {\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n disabled={disabled}>\r\n {icon}\r\n </IconButton>\r\n );\r\n case 'text':\r\n const label = rest.keepLabel || !selectedValues?.length\r\n ? rest.label\r\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\r\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\r\n return <DropdownButtonTextWrapper tabIndex={!disabled ? 0 : -1}\r\n className={cls}\r\n role=\"button\"\r\n id={id}\r\n data-testid={dataTestId}\r\n aria-controls={`${id}_dropdowncontent`}\r\n aria-activedescendant={activeDescendant}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDropdownOpen(!dropdownOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n }}\r\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\r\n <DropdownButtonTextContent>\r\n {icon && <DropdownButtonTextIcon>{icon}</DropdownButtonTextIcon>}\r\n <DropdownButtonTextStyles>{label}</DropdownButtonTextStyles>\r\n <DropdownButtonTextArrow>\r\n {\r\n dropdownOpen\r\n ? <SystemIcons.ArrowDropUp size=\"24px\"/>\r\n : <SystemIcons.ArrowDropDown size=\"24px\"/>\r\n }\r\n </DropdownButtonTextArrow>\r\n </DropdownButtonTextContent>\r\n </DropdownButtonTextWrapper>\r\n }\r\n };\r\n\r\n return (\r\n <DropdownButtonContainer className={className} ref={containerRef}> \r\n {renderButton()}\r\n <DropdownContent\r\n ref={dropdownRef}\r\n ariaRolesType=\"menu\"\r\n containerRef={containerRef}\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n onValueUpdate: handleValueSelect,\r\n multiSelect: multiSelect,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n scrollable: scrollable,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n items: items\r\n }}\r\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size}\r\n width={width}\r\n alignLeft={alignLeft}\r\n isOpen={dropdownOpen}\r\n setIsOpen={setDropdownOpen}\r\n outline={keyboardNavigated}\r\n filter=\"\"\r\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\r\n setSelectedValues={setSelectedValues}\r\n messageOnNoResults=\"No results\"\r\n isButton={true}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n </DropdownButtonContainer>\r\n );\r\n});\r\n\r\nexport default DropdownButton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -214,7 +214,7 @@ var DropdownContent = /*#__PURE__*/_react["default"].forwardRef(function (_ref,
|
|
|
214
214
|
return function () {
|
|
215
215
|
document.removeEventListener('keydown', handleKeyDown);
|
|
216
216
|
};
|
|
217
|
-
});
|
|
217
|
+
}, []);
|
|
218
218
|
var scrollPosition = _react["default"].useRef(0);
|
|
219
219
|
var handleScroll = function handleScroll() {
|
|
220
220
|
var _itemsListRef$current;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownContent.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_Button","_types","_CommonStyling","_typography","_styles","_InputFields","_zIndexes","_MenuItem","_jsxRuntime","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","styled","div","_taggedTemplateLiteral2","props","COLORS","getColor","theme","Z_INDEXES","dropdown","isButton","concat","offsetLeft","offsetTop","DropdownContentButtonStyling","size","Size","Large","Medium","scrollable","maxHeight","exports","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","itemsType","scrollBarStyling","Small","DropdownContentMenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","_ref","ref","_ref2","_customizationProps$a","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","_ref$ariaRolesType","ariaRolesType","_React$useState","useState","_React$useState2","_slicedToArray2","isUp","setIsUp","_React$useState3","_React$useState4","locationDefined","setLocationDefined","_React$useState5","top","left","_React$useState6","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","instOffsetWithMenu","height","up","setNewFocusedElement","index","_dropdownContentRef$c","newFocusedElement","elRefs","oldFocusedElement","_oldFocusedElement$cu","_newFocusedElement$cu","_newFocusedElement$cu2","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","_x$value","_x$displayLabel","includes","displayLabel","findNextActiveIndex","direction","i","_items","disabled","handleKeyDown","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","_focusedElement$curre","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","_itemsListRef$current","scrollTop","useLayoutEffect","_scrollPosition$curre","getCorrectRef","createRef","_React$useState7","_React$useState8","setElRefs","fill","map","_","_getSuggestions","pinTopItem","multiSelect","getSuggestions","suggestion","_dropdownContentRef$c2","_dropdownContentRef$c3","_iterator","_step","_elRef$current","elRef","err","blur","_dropdownContentRef$c4","_dropdownContentRef$c5","observer","IntersectionObserver","entries","isIntersecting","_document","_document$activeEleme","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","_toConsumableArray2","onValueUpdate","getTopItem","_customizationProps$i","_customizationProps$i2","_selectedFirst$displa","_selectedFirst$displa2","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","jsxs","children","jsx","RadioButton","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","Checkbox","newValues","semiSelected","Fragment","tabIndex","onClickHandler","stopPropagation","getElements","_item$displayLabel","_item$displayLabel2","customContent","_containerRef$current","style","cls","onScroll","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_propTypes","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number","_default"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Button from '../Button/Button';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\nimport ReactDOM from 'react-dom';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ offsetTop: string; offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\r\n }\r\n }\r\n\r\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.isButton ? DropdownContentButtonStyling : '')};\r\n\r\n border: 1px solid ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\r\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.size == Size.Small || !props.size ? '10px 16px 6px' : props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.size == Size.Small || !props.size ? '8px 16px' : props.size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.size == Size.Large ? '16px' : props.size == Size.Medium ? '12px' : props.size == Size.Small || !props.size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.getColor('neutral_200', props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ size?: Size; scrollable?: boolean }>`\r\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.getColor('neutral_200', props.theme)};` : '')}\r\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.size === Size.Small || !props.size ? '4px 16px 0px' : props.size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n });\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\r\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n size={size}\r\n offsetTop={offset.top}\r\n id={id}\r\n offsetLeft={offset.left}\r\n tabIndex={-1}\r\n isButton={isButton}\r\n alignLeft={alignLeft}\r\n scrollable={customizationProps.scrollable}\r\n maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n role=\"group\"\r\n size={size}\r\n itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n outline={outline}\r\n scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\r\n <Button\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </Button>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DropdownContent.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_Button","_types","_CommonStyling","_typography","_styles","_InputFields","_zIndexes","_MenuItem","_jsxRuntime","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DropdownContentContainer","styled","div","_taggedTemplateLiteral2","props","COLORS","getColor","theme","Z_INDEXES","dropdown","isButton","concat","offsetLeft","offsetTop","DropdownContentButtonStyling","size","Size","Large","Medium","scrollable","maxHeight","exports","DropdownContentItemsContainer","hover","active","focus","DropdownContentListContainer","itemsType","scrollBarStyling","Small","DropdownContentMenuContentContainer","ComponentXLStyling","ComponentTextStyle","Bold","ComponentLStyling","ComponentMStyling","Regular","ComponentSStyling","DividerContainer","DropdownContentTopItemContainer","DropdownContentActionButtonContainer","Overlay","modal","DropdownContent","React","forwardRef","_ref","ref","_ref2","_customizationProps$a","id","customizationProps","alignLeft","isOpen","width","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","containerRef","onActiveDescendantChanged","_ref$ariaRolesType","ariaRolesType","_React$useState","useState","_React$useState2","_slicedToArray2","isUp","setIsUp","_React$useState3","_React$useState4","locationDefined","setLocationDefined","_React$useState5","top","left","_React$useState6","offset","setOffset","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","rect","current","getBoundingClientRect","windowHeight","window","innerHeight","menuHeight","Math","min","instOffsetWithMenu","height","up","setNewFocusedElement","index","_dropdownContentRef$c","newFocusedElement","elRefs","oldFocusedElement","_oldFocusedElement$cu","_newFocusedElement$cu","_newFocusedElement$cu2","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","_x$value","_x$displayLabel","includes","displayLabel","findNextActiveIndex","direction","i","_items","disabled","handleKeyDown","key","preventDefault","focusedNow","arrLength","haveTopItem","undefined","target","focusedElement","_focusedElement$curre","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","_itemsListRef$current","scrollTop","useLayoutEffect","_scrollPosition$curre","getCorrectRef","createRef","_React$useState7","_React$useState8","setElRefs","fill","map","_","_getSuggestions","pinTopItem","multiSelect","getSuggestions","suggestion","_dropdownContentRef$c2","_dropdownContentRef$c3","_iterator","_step","_elRef$current","elRef","err","blur","_dropdownContentRef$c4","_dropdownContentRef$c5","observer","IntersectionObserver","entries","isIntersecting","_document","_document$activeEleme","activeElement","threshold","rootMargin","observe","calculateOffset","disconnect","handleItemClick","selected","item","newValue","_toConsumableArray2","onValueUpdate","getTopItem","_customizationProps$i","_customizationProps$i2","_selectedFirst$displa","_selectedFirst$displa2","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","selectedFirst","jsxs","children","jsx","RadioButton","role","iconPointerEventsTransparent","onFocus","tabIndexVal","className","select","label","Checkbox","newValues","semiSelected","Fragment","tabIndex","onClickHandler","stopPropagation","getElements","_item$displayLabel","_item$displayLabel2","customContent","_containerRef$current","style","cls","onScroll","menuContent","action","actionLabel","icon","actionIcon","loading","actionLoading","actionDisabled","variant","actionVariant","onClick","propTypes","_propTypes","bool","isRequired","shape","oneOf","node","string","func","arrayOf","noteLabel","showDividerAbove","locked","oneOfType","number","_default"],"sources":["../../src/Dropdown/DropdownContent.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Button from '../Button/Button';\r\nimport { Size } from '../types';\r\nimport { DropdownContentButtonStyling } from './CommonStyling';\r\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\nimport { COLORS, focusStyles, scrollBarStyling } from '../styles';\r\nimport { Checkbox, RadioButton } from '../InputFields';\r\nimport { Z_INDEXES } from '../styles/z-indexes';\r\nimport MenuItem from '../MenuItem/MenuItem';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\nimport ReactDOM from 'react-dom';\r\n\r\nconst MAX_MENU_HEIGHT = 240;\r\nconst AVG_OPTION_HEIGHT = 48;\r\nconst OFFSET_BEFORE_SHOW = 1000000;\r\n\r\nexport const DropdownContentContainer = styled.div<{ offsetTop: string; offsetLeft: string; isButton: boolean; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\r\n display: none;\r\n pointer-events: auto;\r\n position: absolute;\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n\r\n z-index: ${Z_INDEXES.dropdown};\r\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\r\n\r\n &.show {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n &.down,\r\n &.up {\r\n ${(props) => `transform: translate(${props.offsetLeft}, ${props.offsetTop});`}\r\n }\r\n }\r\n\r\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\r\n\r\n &.outline:focus:after {\r\n content: '';\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n outline: 4px solid black;\r\n outline-offset: 2px;\r\n border-radius: 2px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${(props) => (props.isButton ? DropdownContentButtonStyling : '')};\r\n\r\n border: 1px solid ${props => COLORS.getColor('neutral_100', props.theme)};\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\r\n padding: 4px 0px;\r\n\r\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\r\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\r\n\r\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\r\n`;\r\n\r\nexport const DropdownContentItemsContainer = styled.div<{ size?: Size }>`\r\n > *:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n }\r\n\r\n > *:active,\r\n > *.active {\r\n z-index: ${Z_INDEXES.active};\r\n }\r\n\r\n > *:focus {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n`;\r\n\r\nexport const DropdownContentListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\r\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\r\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\r\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\r\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\r\n div.divider {\r\n display: block;\r\n width: calc(100% - 40px);\r\n margin-left: 16px;\r\n border-top: 1px solid #e5e5e5;\r\n position: absolute;\r\n top: 0px;\r\n }\r\n\r\n ${DropdownContentItemsContainer} {\r\n padding-top: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\r\n padding-bottom: ${(props) => (props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px')};\r\n\r\n word-break: break-word;\r\n }\r\n\r\n *:focus {\r\n outline: none !important;\r\n }\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n`;\r\n\r\nconst DropdownContentMenuContentContainer = styled.div<{ size?: Size }>`\r\n h1,\r\n h2,\r\n h3 {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.size == Size.Small || !props.size ? '10px 16px 6px' : props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px')};\r\n }\r\n\r\n p {\r\n margin-block-start: 0px;\r\n margin-block-end: 0px;\r\n ${(props) => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n ${(props) => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.getColor('neutral_500', props.theme))}\r\n padding: ${(props) => (props.size == Size.Small || !props.size ? '8px 16px' : props.size == Size.Medium ? '12px 24px' : '16px 32px')};\r\n }\r\n`;\r\n\r\nconst DividerContainer = styled.div<{ size?: Size }>`\r\n position: relative;\r\n\r\n margin-top: ${(props) => (props.size == Size.Large ? '16px' : props.size == Size.Medium ? '12px' : props.size == Size.Small || !props.size ? '8px' : '6px')};\r\n\r\n div.divider {\r\n width: 100%;\r\n margin: 0px;\r\n }\r\n`;\r\n\r\nconst DropdownContentTopItemContainer = styled.div<{ size?: Size }>`\r\n border-bottom-style: solid;\r\n border-bottom-color: ${props => COLORS.getColor('neutral_200', props.theme)};\r\n border-bottom-width: 1px;\r\n margin-right: 22px;\r\n`;\r\n\r\nconst DropdownContentActionButtonContainer = styled.div<{ size?: Size; scrollable?: boolean }>`\r\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.getColor('neutral_200', props.theme)};` : '')}\r\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\r\n\r\n padding: ${(props) => (props.size === Size.Small || !props.size ? '4px 16px 0px' : props.size === Size.Medium ? '12px 16px 8px' : '16px 16px 12px')};\r\n\r\n button {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Overlay = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n z-index: ${Z_INDEXES.modal};\r\n`;\r\n\r\nexport interface DropdownItem {\r\n /** Required. Value of the DropdownItem. */\r\n value: string;\r\n /** Optional. Display label to show in the MenuItem. If not provided then 'value' will be used as label. */\r\n displayLabel?: string;\r\n /** Optional. Note label to be shown under the Display label in the MenuItem. */\r\n noteLabel?: string;\r\n /** */\r\n suggestion?: boolean;\r\n /** Optional. Show dividing line on the top of the item. */\r\n showDividerAbove?: boolean;\r\n /** Optional. If disabled user can not interact with the item. */\r\n disabled?: boolean;\r\n /** Optional. If item is locked then user can not interact with the item and 'lock' icon is shown on the right side of the item. */\r\n locked?: boolean;\r\n /** Optional. Icon to be shown on the left side of the menu item */\r\n icon?: React.ReactNode;\r\n /** */\r\n customContent?: React.ReactNode;\r\n}\r\n\r\nexport interface DropdownCustomizationProps {\r\n itemsType?: 'radio' | 'checkbox' | 'normal';\r\n menuContent?: React.ReactNode;\r\n scrollable?: boolean;\r\n multiSelect?: boolean;\r\n maxHeight?: string;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n action: () => boolean | void | undefined;\r\n pinTopItem?: boolean;\r\n onValueUpdate: (values: string[]) => boolean | void | undefined;\r\n items: DropdownItem[];\r\n}\r\n\r\nexport interface DropdownProps {\r\n isButton: boolean;\r\n customizationProps: DropdownCustomizationProps;\r\n alignLeft?: boolean;\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n id: string;\r\n filter: string;\r\n width?: string;\r\n onActiveDescendantChanged?: (descendantId?: string) => void;\r\n selectedValues: string[];\r\n setSelectedValues: (val: string[]) => void;\r\n messageOnNoResults: string;\r\n focused: number | null;\r\n setFocused: (focused: number | null) => void;\r\n outline?: boolean;\r\n containerRef: React.RefObject<HTMLDivElement>;\r\n ariaRolesType?: 'input' | 'menu';\r\n}\r\n\r\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n (\r\n {\r\n id,\r\n customizationProps,\r\n alignLeft,\r\n isButton,\r\n size,\r\n isOpen,\r\n width,\r\n setIsOpen,\r\n filter,\r\n focused,\r\n setFocused,\r\n selectedValues,\r\n setSelectedValues,\r\n messageOnNoResults,\r\n outline,\r\n containerRef,\r\n onActiveDescendantChanged,\r\n ariaRolesType = 'menu',\r\n },\r\n ref,\r\n ) => {\r\n const [isUp, setIsUp] = React.useState<boolean>(false);\r\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\r\n const [offset, setOffset] = React.useState<{ top: string; left: string }>({ top: '0', left: '0' });\r\n\r\n const dropdownContentRef = (ref as MutableRefObject<HTMLDivElement>) ?? React.useRef<HTMLDivElement>(null);\r\n\r\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\r\n if (!size) size = Size.Small;\r\n\r\n const itemsListRef = React.useRef<HTMLDivElement>(null);\r\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n const determineDropUp = () => {\r\n const options = customizationProps.items;\r\n\r\n const rect = containerRef.current!.getBoundingClientRect();\r\n\r\n const windowHeight = window.innerHeight;\r\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\r\n const instOffsetWithMenu = rect.top + rect.height + menuHeight;\r\n\r\n const up = instOffsetWithMenu >= windowHeight;\r\n\r\n setOffset({\r\n top: up ? `calc(-100% - ${rect.height}px ${isButton ? '' : '- 8px'})` : '0',\r\n left: alignLeft ? `calc(-${rect.width}px)` : `calc(-100%)`,\r\n });\r\n\r\n setIsUp(up);\r\n setLocationDefined(true);\r\n };\r\n\r\n const setNewFocusedElement = (index: number) => {\r\n if (outline) dropdownContentRef.current?.focus();\r\n\r\n const newFocusedElement = elRefs[index];\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(index == 0 ? `${id}_topitem` : `${id}_${index}`);\r\n\r\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\r\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\r\n setFocused(index);\r\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\r\n\r\n newFocusedElement.current?.classList.add('dropdown-hover');\r\n newFocusedElement.current?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n };\r\n\r\n const getFilteredItems = () => {\r\n const filtrationString = (filter ?? '').toUpperCase();\r\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\r\n };\r\n\r\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\r\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\r\n if (!items[i - 1]?.disabled) {\r\n return i;\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (isOpen) {\r\n if (e.key === 'ArrowUp' || e.key === 'Up') {\r\n e.preventDefault();\r\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\r\n if (!!focusedNow) {\r\n focusedNow = focusedNow === 1 && haveTopItem() ? 0 : findNextActiveIndex(focusedNow, -1, getFilteredItems());\r\n\r\n setNewFocusedElement(focusedNow);\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\r\n e.preventDefault();\r\n let focusedNow = focused;\r\n\r\n focusedNow = !!focusedNow || focusedNow === 0 ? findNextActiveIndex(focusedNow, 1, getFilteredItems()) : haveTopItem() ? 0 : 1;\r\n\r\n setNewFocusedElement(focusedNow);\r\n } else if (e.key === 'Escape' || e.key === 'Esc') {\r\n setIsOpen(false);\r\n setFocused(null);\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\r\n e.preventDefault();\r\n const focusedElement = elRefs[focused];\r\n if (focusedElement) {\r\n focusedElement.current?.click();\r\n }\r\n if (onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, []);\r\n\r\n const scrollPosition = React.useRef<number | undefined>(0);\r\n const handleScroll = () => {\r\n scrollPosition.current = itemsListRef.current?.scrollTop;\r\n };\r\n React.useLayoutEffect(() => {\r\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\r\n }, [selectedValues]);\r\n\r\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\r\n switch (customizationProps.itemsType) {\r\n case 'normal':\r\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\r\n default:\r\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\r\n }\r\n };\r\n\r\n const arrLength = getFilteredItems().length;\r\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\r\n\r\n React.useEffect(() => {\r\n if (elRefs?.length !== arrLength) {\r\n setFocused(null);\r\n }\r\n\r\n setElRefs((elRefs) =>\r\n Array(arrLength + 1)\r\n .fill(null)\r\n .map((_, i) => getCorrectRef(elRefs[i])),\r\n );\r\n }, [isOpen, arrLength]);\r\n\r\n React.useLayoutEffect(() => {\r\n isOpen && !locationDefined && determineDropUp();\r\n }, [isOpen, locationDefined]);\r\n\r\n const haveTopItem = () => {\r\n if (!customizationProps.pinTopItem) return false;\r\n\r\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\r\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\r\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\r\n return false;\r\n };\r\n\r\n const getSuggestions = () => {\r\n return getFilteredItems().filter((x) => x.suggestion);\r\n };\r\n\r\n /**\r\n * when dropdown opens set correct position of focused item\r\n * */\r\n React.useLayoutEffect(() => {\r\n if (isOpen && (focused || focused === 0)) {\r\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\r\n }\r\n }, [isOpen, focused]);\r\n\r\n /**\r\n * Reset dropdown content state on close\r\n * */\r\n React.useEffect(() => {\r\n if (!isOpen) {\r\n setLocationDefined(false);\r\n for (let elRef of elRefs) {\r\n elRef.current?.classList.remove('dropdown-hover');\r\n }\r\n setFocused(null);\r\n if(onActiveDescendantChanged) onActiveDescendantChanged(undefined);\r\n dropdownContentRef.current?.classList.remove('outline');\r\n dropdownContentRef.current?.blur();\r\n } else {\r\n if (outline) {\r\n dropdownContentRef.current?.classList.add('outline');\r\n dropdownContentRef.current?.focus();\r\n }\r\n }\r\n }, [isOpen, dropdownContentRef, focused, outline]);\r\n\r\n /**\r\n * Scroll item container to top when dropdown opens\r\n * */\r\n React.useEffect(() => {\r\n if (isOpen && itemsListRef.current) {\r\n itemsListRef.current.scrollTop = 0;\r\n }\r\n }, [isOpen]);\r\n\r\n React.useEffect(() => {\r\n if (isOpen) {\r\n const observer = new IntersectionObserver(function (entries) {\r\n if (!entries[0].isIntersecting) {\r\n setIsOpen(false);\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n }\r\n }, {threshold: [0], rootMargin: '8px'});\r\n\r\n observer.observe(containerRef.current!);\r\n\r\n calculateOffset();\r\n window.addEventListener('scroll', calculateOffset, true);\r\n window.addEventListener('resize', calculateOffset);\r\n\r\n return () => {\r\n observer.disconnect();\r\n window.removeEventListener('scroll', calculateOffset, true);\r\n window.removeEventListener('resize', calculateOffset);\r\n }\r\n }\r\n return () => {};\r\n }, [isOpen]);\r\n\r\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\r\n let newValue: string[] = [];\r\n if (customizationProps.multiSelect) {\r\n if (selected) newValue = [...selectedValues, item.value];\r\n else newValue = selectedValues.filter((x) => x != item.value);\r\n } else newValue = selected ? [item.value] : [];\r\n\r\n setSelectedValues(newValue);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n const getTopItem = () => {\r\n if (!customizationProps.pinTopItem) return;\r\n const visibleItems = getFilteredItems();\r\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\r\n let showTopItem = false;\r\n const suggestions = getSuggestions();\r\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\r\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\r\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\r\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\r\n\r\n if (!showTopItem) return;\r\n\r\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find((x) => x.value == selectedValues[0]) : null;\r\n\r\n return (\r\n <DropdownContentTopItemContainer size={size}>\r\n {customizationProps.itemsType === 'radio' && (\r\n <RadioButton\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemradio'\r\n iconPointerEventsTransparent={true}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={() => {}}\r\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n size={size}\r\n id={`${id}_topitem`}\r\n selected={true}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'checkbox' && (\r\n <Checkbox\r\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\r\n role='menuitemcheckbox'\r\n tabIndexVal={-1}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n select={(selected: boolean) => {\r\n if (!customizationProps.multiSelect) return;\r\n\r\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\r\n setSelectedValues(newValues);\r\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues)) setIsOpen(false);\r\n }}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n iconPointerEventsTransparent={true}\r\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\r\n size={size}\r\n id={`${id}_checkbox_selectall`}\r\n label={customizationProps.multiSelect ? 'Select all' : selectedFirst?.displayLabel ?? selectedFirst?.value}\r\n selected={!customizationProps.multiSelect || allSelected}\r\n />\r\n )}\r\n {customizationProps.itemsType === 'normal' && (\r\n <>\r\n {suggestions.map((x) => (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`${id}_topitem_${x.value}`}\r\n item={x}\r\n size={size}\r\n active={false}\r\n tabIndex={-1}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_topitem`)}\r\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\r\n id={`${id}_topitem`}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([x.value]);\r\n setSelectedValues([x.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </DropdownContentTopItemContainer>\r\n );\r\n };\r\n\r\n const getElements = (messageOnNoResults: string, size: Size.Small | Size.Medium | Size.Large) => {\r\n if (getFilteredItems().length === 0) {\r\n return <MenuItem item={{ value: messageOnNoResults, disabled: true }} size={size} id=\"noResultsFound\" active={false} onClickHandler={(e) => {}} />;\r\n }\r\n return (\r\n <DropdownContentItemsContainer size={size}>\r\n {getFilteredItems()\r\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\r\n .map((item, index) => {\r\n return (\r\n <React.Fragment key={`key_${id}_${item.value}`}>\r\n {item.customContent}\r\n {!item.customContent && customizationProps.itemsType == 'radio' && (\r\n <RadioButton\r\n role='menuitemradio'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\r\n <Checkbox\r\n role='menuitemcheckbox'\r\n select={(selected: boolean) => handleItemClick(selected, item)}\r\n iconPointerEventsTransparent={true}\r\n disabled={item?.disabled}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\r\n size={size}\r\n tabIndexVal={-1}\r\n key={`key_${id}_${index + 1}`}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n id={`${id}_${index + 1}`}\r\n label={item.displayLabel ?? item.value}\r\n selected={selectedValues?.includes(item.value)}\r\n />\r\n )}\r\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\r\n <MenuItem\r\n role={ariaRolesType == 'input' ? 'option' : 'menu'} \r\n key={`key_${id}_${index + 1}`}\r\n id={`${id}_${index + 1}`}\r\n item={item}\r\n tabIndex={-1}\r\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\r\n size={size}\r\n onFocus={(e) => onActiveDescendantChanged && onActiveDescendantChanged(`${id}_${index + 1}`)}\r\n active={selectedValues?.includes(item.value)}\r\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\r\n onClickHandler={(e: any) => {\r\n e.stopPropagation();\r\n customizationProps.onValueUpdate([item.value]);\r\n setSelectedValues([item.value]);\r\n setIsOpen(false);\r\n setFocused(null);\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </DropdownContentItemsContainer>\r\n );\r\n };\r\n\r\n const calculateOffset = () => {\r\n const rect = containerRef?.current?.getBoundingClientRect();\r\n if (rect) {\r\n dropdownContentRef.current.style.left = `${rect.x + rect.width}px`;\r\n dropdownContentRef.current.style.top = `${rect.y + rect.height}px`;\r\n dropdownContentRef.current.style.width = width ?? `${rect.width}px`;\r\n }\r\n determineDropUp();\r\n };\r\n\r\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? (isUp ? 'up' : 'down') : ''}`;\r\n\r\n return (\r\n <Overlay>\r\n <DropdownContentContainer\r\n role={ariaRolesType == \"menu\" ? \"menu\" : \"optionlist\"}\r\n ref={dropdownContentRef}\r\n size={size}\r\n offsetTop={offset.top}\r\n id={id}\r\n offsetLeft={offset.left}\r\n tabIndex={-1}\r\n isButton={isButton}\r\n alignLeft={alignLeft}\r\n scrollable={customizationProps.scrollable}\r\n maxHeight={customizationProps.maxHeight}\r\n className={cls}>\r\n <DropdownContentListContainer\r\n role=\"group\"\r\n size={size}\r\n itemsType={customizationProps.itemsType}\r\n onScroll={handleScroll}\r\n ref={itemsListRef}\r\n outline={outline}\r\n scrollable={customizationProps.scrollable}>\r\n {customizationProps.menuContent && (\r\n <DropdownContentMenuContentContainer size={size}>\r\n {customizationProps.menuContent}\r\n <DividerContainer size={size}>\r\n <div className=\"divider\" />\r\n </DividerContainer>\r\n </DropdownContentMenuContentContainer>\r\n )}\r\n {customizationProps.pinTopItem && getTopItem()}\r\n {getElements(messageOnNoResults, size)}\r\n </DropdownContentListContainer>\r\n {customizationProps.action && customizationProps.actionLabel && (\r\n <DropdownContentActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\r\n <Button\r\n width=\"100%\"\r\n role=\"menuitem\"\r\n icon={customizationProps.actionIcon}\r\n ref={actionButtonRef}\r\n loading={customizationProps.actionLoading}\r\n disabled={customizationProps.actionDisabled}\r\n variant={customizationProps.actionVariant ?? 'primary'}\r\n size={size}\r\n onClick={() => customizationProps.action() && setIsOpen(false)}>\r\n {customizationProps.actionLabel}\r\n </Button>\r\n </DropdownContentActionButtonContainer>\r\n )}\r\n </DropdownContentContainer>\r\n </Overlay>\r\n );\r\n },\r\n);\r\n\r\nexport default DropdownContent;\r\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAV,sBAAA,CAAAC,OAAA;AAA4C,IAAAU,WAAA,GAAAV,OAAA;AAAA,IAAAW,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;AAAA,SAAAC,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,cAAAA,CAAA,8BAAAiB,CAAA,QAAAF,CAAA;AAAA,SAAAV,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAAsB,iBAAA,CAAAtB,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAAqB,QAAA,CAAAH,IAAA,CAAApB,CAAA,EAAAwB,KAAA,6BAAAtB,CAAA,IAAAF,CAAA,CAAAyB,WAAA,KAAAvB,CAAA,GAAAF,CAAA,CAAAyB,WAAA,CAAAC,IAAA,aAAAxB,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAsB,IAAA,CAAA3B,CAAA,oBAAAE,CAAA,+CAAA0B,IAAA,CAAA1B,CAAA,IAAAoB,iBAAA,CAAAtB,CAAA,EAAAkB,CAAA;AAAA,SAAAI,kBAAAtB,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAI5C,IAAMiB,eAAe,GAAG,GAAG;AAC3B,IAAMC,iBAAiB,GAAG,EAAE;AAC5B,IAAMC,kBAAkB,GAAG,OAAO;AAE3B,IAAMC,wBAAwB,GAAGC,4BAAM,CAACC,GAAG,CAAA3C,eAAA,KAAAA,eAAA,OAAA4C,uBAAA,6zBAI5B,UAAAC,KAAK;EAAA,OAAIC,cAAM,CAACC,QAAQ,CAAC,OAAO,EAAEF,KAAK,CAACG,KAAK,CAAC;AAAA,GAEvDC,mBAAS,CAACC,QAAQ,EACnB,UAACL,KAAK;EAAA,OAAMA,KAAK,CAACM,QAAQ,GAAG,MAAM,GAAG,SAAS;AAAA,CAAC,EAQpD,UAACN,KAAK;EAAA,+BAAAO,MAAA,CAA6BP,KAAK,CAACQ,UAAU,QAAAD,MAAA,CAAKP,KAAK,CAACS,SAAS;AAAA,CAAI,EAIzDd,kBAAkB,EAAQA,kBAAkB,EAmBlE,UAACK,KAAK;EAAA,OAAMA,KAAK,CAACM,QAAQ,GAAGI,2CAA4B,GAAG,EAAE;AAAA,CAAC,EAE7C,UAAAV,KAAK;EAAA,OAAIC,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC;AAAA,GAK3D,UAACH,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,OAAO,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,OAAO,GAAG,OAAO;AAAA,CAAC,EAC3F,UAACd,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,MAAM,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,KAAK,GAAG,KAAK;AAAA,CAAC,EAE7F,UAACd,KAAK;EAAA,OAAM,CAACA,KAAK,CAACe,UAAU,GAAG,MAAM,GAAGf,KAAK,CAACgB,SAAS,GAAGhB,KAAK,CAACgB,SAAS,GAAGhB,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,OAAO,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,OAAO,GAAG,OAAO;AAAA,CAAC,CAC/K;AAACG,OAAA,CAAArB,wBAAA,GAAAA,wBAAA;AAEK,IAAMsB,6BAA6B,GAAGrB,4BAAM,CAACC,GAAG,CAAA1C,gBAAA,KAAAA,gBAAA,OAAA2C,uBAAA,mKAExCK,mBAAS,CAACe,KAAK,EAKff,mBAAS,CAACgB,MAAM,EAIhBhB,mBAAS,CAACiB,KAAK,CAE7B;AAACJ,OAAA,CAAAC,6BAAA,GAAAA,6BAAA;AAEK,IAAMI,4BAA4B,GAAGzB,4BAAM,CAACC,GAAG,CAAAzC,gBAAA,KAAAA,gBAAA,OAAA0C,uBAAA,qYAClD,UAACC,KAAK;EAAA,OAAMA,KAAK,CAACe,UAAU,GAAG,qBAAqB,GAAG,EAAE;AAAA,CAAC,EAC1D,UAACf,KAAK;EAAA,OAAMA,KAAK,CAACe,UAAU,GAAG,oBAAoB,GAAG,EAAE;AAAA,CAAC,EACzD,UAACf,KAAK;EAAA,OAAMA,KAAK,CAACe,UAAU,GAAG,qBAAqB,GAAG,EAAE;AAAA,CAAC,EAC1D,UAACf,KAAK;EAAA,OAAMA,KAAK,CAACuB,SAAS,IAAI,QAAQ,GAAG,mBAAmB,GAAG,EAAE;AAAA,CAAC,EAUnEL,6BAA6B,EACd,UAAClB,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,KAAK,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,KAAK,GAAG,KAAK;AAAA,CAAC,EACtF,UAACd,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,KAAK,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,KAAK,GAAG,KAAK;AAAA,CAAC,EAS3G,IAAAU,wBAAgB,EAACZ,WAAI,CAACa,KAAK,CAAC,CAC/B;AAACR,OAAA,CAAAK,4BAAA,GAAAA,4BAAA;AAEF,IAAMI,mCAAmC,GAAG7B,4BAAM,CAACC,GAAG,CAAAxC,gBAAA,KAAAA,gBAAA,OAAAyC,uBAAA,wRAMhD,UAACC,KAAK;EAAA,OAAKA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,IAAI,IAAAc,8BAAkB,EAACC,8BAAkB,CAACC,IAAI,EAAE5B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GAC/H,UAACH,KAAK;EAAA,OAAKA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,IAAI,IAAAgB,6BAAiB,EAACF,8BAAkB,CAACC,IAAI,EAAE5B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GAC/H,UAACH,KAAK;EAAA,OAAK,CAACA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,KAAK,IAAAoB,6BAAiB,EAACH,8BAAkB,CAACC,IAAI,EAAE5B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GACtI,UAACH,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,GAAG,eAAe,GAAGX,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,eAAe,GAAG,eAAe;AAAA,CAAC,EAM/I,UAACd,KAAK;EAAA,OAAKA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,IAAI,IAAAiB,6BAAiB,EAACF,8BAAkB,CAACI,OAAO,EAAE/B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GACjI,UAACH,KAAK;EAAA,OAAKA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,IAAI,IAAAiB,6BAAiB,EAACH,8BAAkB,CAACI,OAAO,EAAE/B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GAClI,UAACH,KAAK;EAAA,OAAK,CAACA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,KAAK,IAAAsB,6BAAiB,EAACL,8BAAkB,CAACI,OAAO,EAAE/B,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;AAAA,GACzI,UAACH,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,GAAG,UAAU,GAAGX,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,WAAW,GAAG,WAAW;AAAA,CAAC,CAEvI;AAED,IAAMoB,gBAAgB,GAAGrC,4BAAM,CAACC,GAAG,CAAAvC,gBAAA,KAAAA,gBAAA,OAAAwC,uBAAA,iIAGnB,UAACC,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACC,KAAK,GAAG,MAAM,GAAGb,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACE,MAAM,GAAG,MAAM,GAAGd,KAAK,CAACW,IAAI,IAAIC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,GAAG,KAAK,GAAG,KAAK;AAAA,CAAC,CAM5J;AAED,IAAMwB,+BAA+B,GAAGtC,4BAAM,CAACC,GAAG,CAAAtC,gBAAA,KAAAA,gBAAA,OAAAuC,uBAAA,wIAEzB,UAAAC,KAAK;EAAA,OAAIC,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC;AAAA,EAG5E;AAED,IAAMiC,oCAAoC,GAAGvC,4BAAM,CAACC,GAAG,CAAArC,gBAAA,KAAAA,gBAAA,OAAAsC,uBAAA,gGACnD,UAACC,KAAK;EAAA,OAAMA,KAAK,CAACe,UAAU,6BAAAR,MAAA,CAA6BN,cAAM,CAACC,QAAQ,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,SAAM,EAAE;AAAA,CAAC,EAC7G,UAACH,KAAK;EAAA,OAAMA,KAAK,CAACe,UAAU,GAAG,kBAAkB,GAAG,EAAE;AAAA,CAAC,EAE9C,UAACf,KAAK;EAAA,OAAMA,KAAK,CAACW,IAAI,KAAKC,WAAI,CAACa,KAAK,IAAI,CAACzB,KAAK,CAACW,IAAI,GAAG,cAAc,GAAGX,KAAK,CAACW,IAAI,KAAKC,WAAI,CAACE,MAAM,GAAG,eAAe,GAAG,gBAAgB;AAAA,CAAC,CAKpJ;AAED,IAAMuB,OAAO,GAAGxC,4BAAM,CAACC,GAAG,CAAApC,gBAAA,KAAAA,gBAAA,OAAAqC,uBAAA,8IAObK,mBAAS,CAACkC,KAAK,CAC3B;AA6DD,IAAMC,eAAe,gBAAGC,iBAAK,CAACC,UAAU,CACtC,UAAAC,IAAA,EAqBEC,GAAG,EACA;EAAA,IAAAC,KAAA,EAAAC,qBAAA;EAAA,IApBDC,EAAE,GAAAJ,IAAA,CAAFI,EAAE;IACFC,kBAAkB,GAAAL,IAAA,CAAlBK,kBAAkB;IAClBC,SAAS,GAAAN,IAAA,CAATM,SAAS;IACT1C,QAAQ,GAAAoC,IAAA,CAARpC,QAAQ;IACRK,IAAI,GAAA+B,IAAA,CAAJ/B,IAAI;IACJsC,MAAM,GAAAP,IAAA,CAANO,MAAM;IACNC,KAAK,GAAAR,IAAA,CAALQ,KAAK;IACLC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,OAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,cAAc,GAAAb,IAAA,CAAda,cAAc;IACdC,iBAAiB,GAAAd,IAAA,CAAjBc,iBAAiB;IACjBC,kBAAkB,GAAAf,IAAA,CAAlBe,kBAAkB;IAClBC,OAAO,GAAAhB,IAAA,CAAPgB,OAAO;IACPC,YAAY,GAAAjB,IAAA,CAAZiB,YAAY;IACZC,yBAAyB,GAAAlB,IAAA,CAAzBkB,yBAAyB;IAAAC,kBAAA,GAAAnB,IAAA,CACzBoB,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,MAAM,GAAAA,kBAAA;EAIxB,IAAAE,eAAA,GAAwBvB,iBAAK,CAACwB,QAAQ,CAAU,KAAK,CAAC;IAAAC,gBAAA,OAAAC,eAAA,aAAAH,eAAA;IAA/CI,IAAI,GAAAF,gBAAA;IAAEG,OAAO,GAAAH,gBAAA;EACpB,IAAAI,gBAAA,GAA8C7B,iBAAK,CAACwB,QAAQ,CAAU,KAAK,CAAC;IAAAM,gBAAA,OAAAJ,eAAA,aAAAG,gBAAA;IAArEE,eAAe,GAAAD,gBAAA;IAAEE,kBAAkB,GAAAF,gBAAA;EAC1C,IAAAG,gBAAA,GAA4BjC,iBAAK,CAACwB,QAAQ,CAAgC;MAAEU,GAAG,EAAE,GAAG;MAAEC,IAAI,EAAE;IAAI,CAAC,CAAC;IAAAC,gBAAA,OAAAV,eAAA,aAAAO,gBAAA;IAA3FI,MAAM,GAAAD,gBAAA;IAAEE,SAAS,GAAAF,gBAAA;EAExB,IAAMG,kBAAkB,IAAAnC,KAAA,GAAID,GAAG,cAAAC,KAAA,cAAAA,KAAA,GAAyCJ,iBAAK,CAACwC,MAAM,CAAiB,IAAI,CAAC;EAE1G,IAAI,CAACjC,kBAAkB,CAACxB,SAAS,EAAEwB,kBAAkB,CAACxB,SAAS,GAAG,QAAQ;EAC1E,IAAI,CAACZ,IAAI,EAAEA,IAAI,GAAGC,WAAI,CAACa,KAAK;EAE5B,IAAMwD,YAAY,GAAGzC,iBAAK,CAACwC,MAAM,CAAiB,IAAI,CAAC;EACvD,IAAME,eAAe,GAAG1C,iBAAK,CAACwC,MAAM,CAAoB,IAAI,CAAC;EAE7D,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5B,IAAMC,OAAO,GAAGrC,kBAAkB,CAACsC,KAAK;IAExC,IAAMC,IAAI,GAAG3B,YAAY,CAAC4B,OAAO,CAAEC,qBAAqB,CAAC,CAAC;IAE1D,IAAMC,YAAY,GAAGC,MAAM,CAACC,WAAW;IACvC,IAAMC,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACrG,eAAe,EAAE2F,OAAO,CAAChH,MAAM,GAAGsB,iBAAiB,CAAC;IAChF,IAAMqG,kBAAkB,GAAGT,IAAI,CAACZ,GAAG,GAAGY,IAAI,CAACU,MAAM,GAAGJ,UAAU;IAE9D,IAAMK,EAAE,GAAGF,kBAAkB,IAAIN,YAAY;IAE7CX,SAAS,CAAC;MACRJ,GAAG,EAAEuB,EAAE,mBAAA1F,MAAA,CAAmB+E,IAAI,CAACU,MAAM,SAAAzF,MAAA,CAAMD,QAAQ,GAAG,EAAE,GAAG,OAAO,SAAM,GAAG;MAC3EqE,IAAI,EAAE3B,SAAS,YAAAzC,MAAA,CAAY+E,IAAI,CAACpC,KAAK;IACvC,CAAC,CAAC;IAEFkB,OAAO,CAAC6B,EAAE,CAAC;IACXzB,kBAAkB,CAAC,IAAI,CAAC;EAC1B,CAAC;EAED,IAAM0B,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,KAAa,EAAK;IAAA,IAAAC,qBAAA;IAC9C,IAAI1C,OAAO,EAAE,CAAA0C,qBAAA,GAAArB,kBAAkB,CAACQ,OAAO,cAAAa,qBAAA,uBAA1BA,qBAAA,CAA4B/E,KAAK,CAAC,CAAC;IAEhD,IAAMgF,iBAAiB,GAAGC,MAAM,CAACH,KAAK,CAAC;IACvC,IAAIvC,yBAAyB,EAAEA,yBAAyB,CAACuC,KAAK,IAAI,CAAC,MAAA5F,MAAA,CAAMuC,EAAE,mBAAAvC,MAAA,CAAgBuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,CAAE,CAAC;IAEzG,IAAMI,iBAAiB,GAAGlD,OAAO,IAAIA,OAAO,KAAK,CAAC,GAAGiD,MAAM,CAACjD,OAAO,CAAC,GAAG,IAAI;IAC3E,IAAIgD,iBAAiB,IAAIA,iBAAiB,KAAKE,iBAAiB,EAAE;MAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAChEpD,UAAU,CAAC6C,KAAK,CAAC;MACjBI,iBAAiB,aAAjBA,iBAAiB,wBAAAC,qBAAA,GAAjBD,iBAAiB,CAAEhB,OAAO,cAAAiB,qBAAA,uBAA1BA,qBAAA,CAA4BG,SAAS,CAACC,MAAM,CAAC,gBAAgB,CAAC;MAE9D,CAAAH,qBAAA,GAAAJ,iBAAiB,CAACd,OAAO,cAAAkB,qBAAA,uBAAzBA,qBAAA,CAA2BE,SAAS,CAACE,GAAG,CAAC,gBAAgB,CAAC;MAC1D,CAAAH,sBAAA,GAAAL,iBAAiB,CAACd,OAAO,cAAAmB,sBAAA,uBAAzBA,sBAAA,CAA2BI,cAAc,CAAC;QACxCC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE;MACV,CAAC,CAAC;IACJ;EACF,CAAC;EAED,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC7B,IAAMC,gBAAgB,GAAG,CAAC9D,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,EAAE,EAAE+D,WAAW,CAAC,CAAC;IACrD,OAAOpE,kBAAkB,CAACsC,KAAK,CAACjC,MAAM,CAAC,UAACgE,CAAC;MAAA,IAAAC,QAAA,EAAAC,eAAA;MAAA,OAAK,CAAAF,CAAC,aAADA,CAAC,wBAAAC,QAAA,GAADD,CAAC,CAAE1I,KAAK,cAAA2I,QAAA,uBAARA,QAAA,CAAUF,WAAW,CAAC,CAAC,CAACI,QAAQ,CAACL,gBAAgB,CAAC,MAAIE,CAAC,aAADA,CAAC,wBAAAE,eAAA,GAADF,CAAC,CAAEI,YAAY,cAAAF,eAAA,uBAAfA,eAAA,CAAiBH,WAAW,CAAC,CAAC,CAACI,QAAQ,CAACL,gBAAgB,CAAC;IAAA,EAAC;EAChK,CAAC;EAED,IAAMO,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAItB,KAAa,EAAEuB,SAAiB,EAAErC,KAAqB,EAAK;IACvF,KAAK,IAAIsC,CAAC,GAAGxB,KAAK,GAAGuB,SAAS,EAAEC,CAAC,GAAG,CAAC,IAAIA,CAAC,IAAItC,KAAK,CAACjH,MAAM,EAAEuJ,CAAC,IAAID,SAAS,EAAE;MAAA,IAAAE,MAAA;MAC1E,IAAI,GAAAA,MAAA,GAACvC,KAAK,CAACsC,CAAC,GAAG,CAAC,CAAC,cAAAC,MAAA,eAAZA,MAAA,CAAcC,QAAQ,GAAE;QAC3B,OAAOF,CAAC;MACV;IACF;IAEA,OAAOxB,KAAK;EACd,CAAC;EAED,IAAM2B,aAAa,GAAG,SAAhBA,aAAaA,CAAIjK,CAAgB,EAAK;IAC1C,IAAIoF,MAAM,EAAE;MACV,IAAIpF,CAAC,CAACkK,GAAG,KAAK,SAAS,IAAIlK,CAAC,CAACkK,GAAG,KAAK,IAAI,EAAE;QACzClK,CAAC,CAACmK,cAAc,CAAC,CAAC;QAClB,IAAIC,UAAU,GAAG5E,OAAO,IAAIA,OAAO,KAAK,CAAC,GAAGA,OAAO,GAAG6E,SAAS,GAAG,CAAC;QACnE,IAAI,CAAC,CAACD,UAAU,EAAE;UAChBA,UAAU,GAAGA,UAAU,KAAK,CAAC,IAAIE,WAAW,CAAC,CAAC,GAAG,CAAC,GAAGV,mBAAmB,CAACQ,UAAU,EAAE,CAAC,CAAC,EAAEhB,gBAAgB,CAAC,CAAC,CAAC;UAE5Gf,oBAAoB,CAAC+B,UAAU,CAAC;QAClC;MACF,CAAC,MAAM,IAAIpK,CAAC,CAACkK,GAAG,KAAK,WAAW,IAAIlK,CAAC,CAACkK,GAAG,KAAK,MAAM,EAAE;QACpDlK,CAAC,CAACmK,cAAc,CAAC,CAAC;QAClB,IAAIC,WAAU,GAAG5E,OAAO;QAExB4E,WAAU,GAAG,CAAC,CAACA,WAAU,IAAIA,WAAU,KAAK,CAAC,GAAGR,mBAAmB,CAACQ,WAAU,EAAE,CAAC,EAAEhB,gBAAgB,CAAC,CAAC,CAAC,GAAGkB,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAE9HjC,oBAAoB,CAAC+B,WAAU,CAAC;MAClC,CAAC,MAAM,IAAIpK,CAAC,CAACkK,GAAG,KAAK,QAAQ,IAAIlK,CAAC,CAACkK,GAAG,KAAK,KAAK,EAAE;QAChD5E,SAAS,CAAC,KAAK,CAAC;QAChBG,UAAU,CAAC,IAAI,CAAC;QAChB,IAAIM,yBAAyB,EAAEA,yBAAyB,CAACwE,SAAS,CAAC;MACrE,CAAC,MAAM,IAAI,CAACvK,CAAC,CAACkK,GAAG,KAAK,OAAO,IAAIlK,CAAC,CAACkK,GAAG,KAAK,GAAG,KAAK1E,OAAO,KAAK,IAAI,IAAIxF,CAAC,CAACwK,MAAM,MAAKnD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEK,OAAO,GAAE;QAC5G1H,CAAC,CAACmK,cAAc,CAAC,CAAC;QAClB,IAAMM,cAAc,GAAGhC,MAAM,CAACjD,OAAO,CAAC;QACtC,IAAIiF,cAAc,EAAE;UAAA,IAAAC,qBAAA;UAClB,CAAAA,qBAAA,GAAAD,cAAc,CAAC/C,OAAO,cAAAgD,qBAAA,uBAAtBA,qBAAA,CAAwBC,KAAK,CAAC,CAAC;QACjC;QACA,IAAI5E,yBAAyB,EAAEA,yBAAyB,CAACwE,SAAS,CAAC;MACrE;IACF;EACF,CAAC;EAED5F,iBAAK,CAACiG,SAAS,CAAC,YAAM;IACpBC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEb,aAAa,CAAC;IACnD,OAAO,YAAM;MACXY,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEd,aAAa,CAAC;IACxD,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEJ,IAAMe,cAAc,GAAGrG,iBAAK,CAACwC,MAAM,CAAqB,CAAC,CAAC;EAC1D,IAAM8D,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IAAA,IAAAC,qBAAA;IACzBF,cAAc,CAACtD,OAAO,IAAAwD,qBAAA,GAAG9D,YAAY,CAACM,OAAO,cAAAwD,qBAAA,uBAApBA,qBAAA,CAAsBC,SAAS;EAC1D,CAAC;EACDxG,iBAAK,CAACyG,eAAe,CAAC,YAAM;IAAA,IAAAC,qBAAA;IAC1B,IAAIjE,YAAY,CAACM,OAAO,EAAEN,YAAY,CAACM,OAAO,CAACyD,SAAS,IAAAE,qBAAA,GAAGL,cAAc,CAACtD,OAAO,cAAA2D,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EACxF,CAAC,EAAE,CAAC3F,cAAc,CAAC,CAAC;EAEpB,IAAM4F,aAAa,GAAG,SAAhBA,aAAaA,CAAIxG,GAAiC,EAAmC;IACzF,QAAQI,kBAAkB,CAACxB,SAAS;MAClC,KAAK,QAAQ;QACX,OAAQoB,GAAG,iBAA2CH,iBAAK,CAAC4G,SAAS,CAAoB,CAAC;MAC5F;QACE,OAAQzG,GAAG,iBAAwCH,iBAAK,CAAC4G,SAAS,CAAiB,CAAC;IACxF;EACF,CAAC;EAED,IAAMlB,SAAS,GAAGjB,gBAAgB,CAAC,CAAC,CAAC7I,MAAM;EAC3C,IAAAiL,gBAAA,GAA4B7G,iBAAK,CAACwB,QAAQ,CAAiC,EAAE,CAAC;IAAAsF,gBAAA,OAAApF,eAAA,aAAAmF,gBAAA;IAAvE/C,MAAM,GAAAgD,gBAAA;IAAEC,SAAS,GAAAD,gBAAA;EAExB9G,iBAAK,CAACiG,SAAS,CAAC,YAAM;IACpB,IAAI,CAAAnC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAElI,MAAM,MAAK8J,SAAS,EAAE;MAChC5E,UAAU,CAAC,IAAI,CAAC;IAClB;IAEAiG,SAAS,CAAC,UAACjD,MAAM;MAAA,OACfrI,KAAK,CAACiK,SAAS,GAAG,CAAC,CAAC,CACjBsB,IAAI,CAAC,IAAI,CAAC,CACVC,GAAG,CAAC,UAACC,CAAC,EAAE/B,CAAC;QAAA,OAAKwB,aAAa,CAAC7C,MAAM,CAACqB,CAAC,CAAC,CAAC;MAAA,EAAC;IAAA,CAC5C,CAAC;EACH,CAAC,EAAE,CAAC1E,MAAM,EAAEiF,SAAS,CAAC,CAAC;EAEvB1F,iBAAK,CAACyG,eAAe,CAAC,YAAM;IAC1BhG,MAAM,IAAI,CAACsB,eAAe,IAAIY,eAAe,CAAC,CAAC;EACjD,CAAC,EAAE,CAAClC,MAAM,EAAEsB,eAAe,CAAC,CAAC;EAE7B,IAAM4D,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IAAA,IAAAwB,eAAA;IACxB,IAAI,CAAC5G,kBAAkB,CAAC6G,UAAU,EAAE,OAAO,KAAK;IAEhD,IAAI7G,kBAAkB,CAACxB,SAAS,KAAK,OAAO,IAAIgC,cAAc,IAAI,CAAAA,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEnF,MAAM,IAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KACrG,IAAI2E,kBAAkB,CAACxB,SAAS,KAAK,UAAU,KAAKwB,kBAAkB,CAAC8G,WAAW,IAAI,CAAAtG,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEnF,MAAM,IAAG,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAC/H,IAAI2E,kBAAkB,CAACxB,SAAS,KAAK,QAAQ,IAAI,EAAAoI,eAAA,GAAAG,cAAc,CAAC,CAAC,cAAAH,eAAA,uBAAhBA,eAAA,CAAkBvL,MAAM,IAAG,CAAC,EAAE,OAAO,IAAI;IAC/F,OAAO,KAAK;EACd,CAAC;EAED,IAAM0L,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,OAAO7C,gBAAgB,CAAC,CAAC,CAAC7D,MAAM,CAAC,UAACgE,CAAC;MAAA,OAAKA,CAAC,CAAC2C,UAAU;IAAA,EAAC;EACvD,CAAC;;EAED;AACJ;AACA;EACIvH,iBAAK,CAACyG,eAAe,CAAC,YAAM;IAC1B,IAAIhG,MAAM,KAAKI,OAAO,IAAIA,OAAO,KAAK,CAAC,CAAC,EAAE;MACxC6C,oBAAoB,CAAC7C,OAAO,KAAK,CAAC,IAAI,CAAC8E,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG9E,OAAO,CAAC;IACrE;EACF,CAAC,EAAE,CAACJ,MAAM,EAAEI,OAAO,CAAC,CAAC;;EAErB;AACJ;AACA;EACIb,iBAAK,CAACiG,SAAS,CAAC,YAAM;IACpB,IAAI,CAACxF,MAAM,EAAE;MAAA,IAAA+G,sBAAA,EAAAC,sBAAA;MACXzF,kBAAkB,CAAC,KAAK,CAAC;MAAC,IAAA0F,SAAA,GAAAvM,0BAAA,CACR2I,MAAM;QAAA6D,KAAA;MAAA;QAAxB,KAAAD,SAAA,CAAA3L,CAAA,MAAA4L,KAAA,GAAAD,SAAA,CAAA1L,CAAA,IAAAC,IAAA,GAA0B;UAAA,IAAA2L,cAAA;UAAA,IAAjBC,KAAK,GAAAF,KAAA,CAAAzL,KAAA;UACZ,CAAA0L,cAAA,GAAAC,KAAK,CAAC9E,OAAO,cAAA6E,cAAA,uBAAbA,cAAA,CAAezD,SAAS,CAACC,MAAM,CAAC,gBAAgB,CAAC;QACnD;MAAC,SAAA0D,GAAA;QAAAJ,SAAA,CAAArM,CAAA,CAAAyM,GAAA;MAAA;QAAAJ,SAAA,CAAAvL,CAAA;MAAA;MACD2E,UAAU,CAAC,IAAI,CAAC;MAChB,IAAGM,yBAAyB,EAAEA,yBAAyB,CAACwE,SAAS,CAAC;MAClE,CAAA4B,sBAAA,GAAAjF,kBAAkB,CAACQ,OAAO,cAAAyE,sBAAA,uBAA1BA,sBAAA,CAA4BrD,SAAS,CAACC,MAAM,CAAC,SAAS,CAAC;MACvD,CAAAqD,sBAAA,GAAAlF,kBAAkB,CAACQ,OAAO,cAAA0E,sBAAA,uBAA1BA,sBAAA,CAA4BM,IAAI,CAAC,CAAC;IACpC,CAAC,MAAM;MACL,IAAI7G,OAAO,EAAE;QAAA,IAAA8G,sBAAA,EAAAC,sBAAA;QACX,CAAAD,sBAAA,GAAAzF,kBAAkB,CAACQ,OAAO,cAAAiF,sBAAA,uBAA1BA,sBAAA,CAA4B7D,SAAS,CAACE,GAAG,CAAC,SAAS,CAAC;QACpD,CAAA4D,sBAAA,GAAA1F,kBAAkB,CAACQ,OAAO,cAAAkF,sBAAA,uBAA1BA,sBAAA,CAA4BpJ,KAAK,CAAC,CAAC;MACrC;IACF;EACF,CAAC,EAAE,CAAC4B,MAAM,EAAE8B,kBAAkB,EAAE1B,OAAO,EAAEK,OAAO,CAAC,CAAC;;EAElD;AACJ;AACA;EACIlB,iBAAK,CAACiG,SAAS,CAAC,YAAM;IACpB,IAAIxF,MAAM,IAAIgC,YAAY,CAACM,OAAO,EAAE;MAClCN,YAAY,CAACM,OAAO,CAACyD,SAAS,GAAG,CAAC;IACpC;EACF,CAAC,EAAE,CAAC/F,MAAM,CAAC,CAAC;EAEZT,iBAAK,CAACiG,SAAS,CAAC,YAAM;IACpB,IAAIxF,MAAM,EAAE;MACV,IAAMyH,QAAQ,GAAG,IAAIC,oBAAoB,CAAC,UAAUC,OAAO,EAAE;QAC3D,IAAI,CAACA,OAAO,CAAC,CAAC,CAAC,CAACC,cAAc,EAAE;UAAA,IAAAC,SAAA,EAAAC,qBAAA;UAC9B5H,SAAS,CAAC,KAAK,CAAC;UAChB;UACA,CAAA2H,SAAA,GAAApC,QAAQ,cAAAoC,SAAA,wBAAAC,qBAAA,GAARD,SAAA,CAAUE,aAAa,cAAAD,qBAAA,uBAAvBA,qBAAA,CAAyBR,IAAI,CAAC,CAAC;QACjC;MACF,CAAC,EAAE;QAACU,SAAS,EAAE,CAAC,CAAC,CAAC;QAAEC,UAAU,EAAE;MAAK,CAAC,CAAC;MAEvCR,QAAQ,CAACS,OAAO,CAACxH,YAAY,CAAC4B,OAAQ,CAAC;MAEvC6F,eAAe,CAAC,CAAC;MACjB1F,MAAM,CAACiD,gBAAgB,CAAC,QAAQ,EAAEyC,eAAe,EAAE,IAAI,CAAC;MACxD1F,MAAM,CAACiD,gBAAgB,CAAC,QAAQ,EAAEyC,eAAe,CAAC;MAElD,OAAO,YAAM;QACXV,QAAQ,CAACW,UAAU,CAAC,CAAC;QACrB3F,MAAM,CAACkD,mBAAmB,CAAC,QAAQ,EAAEwC,eAAe,EAAE,IAAI,CAAC;QAC3D1F,MAAM,CAACkD,mBAAmB,CAAC,QAAQ,EAAEwC,eAAe,CAAC;MACvD,CAAC;IACH;IACA,OAAO,YAAM,CAAC,CAAC;EACjB,CAAC,EAAE,CAACnI,MAAM,CAAC,CAAC;EAEZ,IAAMqI,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,QAAiB,EAAEC,IAAkB,EAAK;IACjE,IAAIC,QAAkB,GAAG,EAAE;IAC3B,IAAI1I,kBAAkB,CAAC8G,WAAW,EAAE;MAClC,IAAI0B,QAAQ,EAAEE,QAAQ,MAAAlL,MAAA,KAAAmL,mBAAA,aAAOnI,cAAc,IAAEiI,IAAI,CAAC9M,KAAK,EAAC,CAAC,KACpD+M,QAAQ,GAAGlI,cAAc,CAACH,MAAM,CAAC,UAACgE,CAAC;QAAA,OAAKA,CAAC,IAAIoE,IAAI,CAAC9M,KAAK;MAAA,EAAC;IAC/D,CAAC,MAAM+M,QAAQ,GAAGF,QAAQ,GAAG,CAACC,IAAI,CAAC9M,KAAK,CAAC,GAAG,EAAE;IAE9C8E,iBAAiB,CAACiI,QAAQ,CAAC;IAC3B,IAAI1I,kBAAkB,CAAC4I,aAAa,IAAI5I,kBAAkB,CAAC4I,aAAa,CAACF,QAAQ,CAAC,EAAE;MAClFtI,SAAS,CAAC,KAAK,CAAC;IAClB;EACF,CAAC;EAED,IAAMyI,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;IACvB,IAAI,CAACjJ,kBAAkB,CAAC6G,UAAU,EAAE;IACpC,IAAMqC,YAAY,GAAGhF,gBAAgB,CAAC,CAAC;IACvC,IAAMiF,WAAW,GAAG,CAAA3I,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEH,MAAM,CAAC,UAACgE,CAAC;MAAA,OAAK6E,YAAY,CAACE,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAAC1N,KAAK,IAAI0I,CAAC;MAAA,EAAC;IAAA,EAAC,CAAChJ,MAAM,KAAI6N,YAAY,CAAC7N,MAAM;IACvH,IAAIiO,WAAW,GAAG,KAAK;IACvB,IAAMC,WAAW,GAAGxC,cAAc,CAAC,CAAC;IACpC,IAAMtC,YAAY,GAAGjE,cAAc,CAAC,CAAC,CAAC,IAAAsI,qBAAA,GAAG9I,kBAAkB,CAACsC,KAAK,cAAAwG,qBAAA,wBAAAC,sBAAA,GAAxBD,qBAAA,CAA0BU,IAAI,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAAC9N,KAAK,KAAK6E,cAAc,CAAC,CAAC,CAAC;IAAA,EAAC,cAAAuI,sBAAA,uBAApEA,sBAAA,CAAsEtE,YAAY,GAAGY,SAAS;IACvI,IAAIrF,kBAAkB,CAACxB,SAAS,IAAI,OAAO,IAAIgC,cAAc,IAAI,CAAAA,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEnF,MAAM,IAAG,CAAC,EAAEiO,WAAW,GAAG,IAAI,CAAC,KAC3G,IAAItJ,kBAAkB,CAACxB,SAAS,IAAI,UAAU,KAAKwB,kBAAkB,CAAC8G,WAAW,IAAI,CAAAtG,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEnF,MAAM,IAAG,CAAC,CAAC,EAAEiO,WAAW,GAAG,IAAI,CAAC,KACrI,IAAItJ,kBAAkB,CAACxB,SAAS,IAAI,QAAQ,IAAI+K,WAAW,CAAClO,MAAM,GAAG,CAAC,EAAEiO,WAAW,GAAG,IAAI;IAE/F,IAAI,CAACA,WAAW,EAAE;IAElB,IAAMI,aAAa,GAAGlJ,cAAc,CAACnF,MAAM,GAAG,CAAC,GAAG6N,YAAY,CAACM,IAAI,CAAC,UAACnF,CAAC;MAAA,OAAKA,CAAC,CAAC1I,KAAK,IAAI6E,cAAc,CAAC,CAAC,CAAC;IAAA,EAAC,GAAG,IAAI;IAE/G,oBACE,IAAArG,WAAA,CAAAwP,IAAA,EAACvK,+BAA+B;MAACxB,IAAI,EAAEA,IAAK;MAAAgM,QAAA,GACzC5J,kBAAkB,CAACxB,SAAS,KAAK,OAAO,iBACvC,IAAArE,WAAA,CAAA0P,GAAA,EAAC7P,YAAA,CAAA8P,WAAW;QACVlK,GAAG,EAAE2D,MAAM,CAAC,CAAC,CAAqC;QAClDwG,IAAI,EAAC,eAAe;QACpBC,4BAA4B,EAAE,IAAK;QACnCC,OAAO,EAAE,SAAAA,QAACnP,CAAC;UAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,aAAU,CAAC;QAAA,CAAC;QACxFmK,WAAW,EAAE,CAAC,CAAE;QAChBC,SAAS,KAAA3M,MAAA,CAAK8C,OAAO,KAAK,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAAG;QACtD8J,MAAM,EAAE,SAAAA,OAAA,EAAM,CAAC,CAAE;QACjBC,KAAK,GAAArB,qBAAA,GAAEU,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEjF,YAAY,cAAAuE,qBAAA,cAAAA,qBAAA,GAAIU,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE/N,KAAM;QAC3DiC,IAAI,EAAEA,IAAK;QACXmC,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,aAAW;QACpByI,QAAQ,EAAE;MAAK,CAChB,CACF,EACAxI,kBAAkB,CAACxB,SAAS,KAAK,UAAU,iBAC1C,IAAArE,WAAA,CAAA0P,GAAA,EAAC7P,YAAA,CAAAsQ,QAAQ;QACP1K,GAAG,EAAE2D,MAAM,CAAC,CAAC,CAAqC;QAClDwG,IAAI,EAAC,kBAAkB;QACvBG,WAAW,EAAE,CAAC,CAAE;QAChBC,SAAS,KAAA3M,MAAA,CAAK8C,OAAO,KAAK,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAAG;QACtD8J,MAAM,EAAE,SAAAA,OAAC5B,QAAiB,EAAK;UAC7B,IAAI,CAACxI,kBAAkB,CAAC8G,WAAW,EAAE;UAErC,IAAMyD,SAAS,GAAG/B,QAAQ,GAAGU,YAAY,CAACxC,GAAG,CAAC,UAACrC,CAAC;YAAA,OAAKA,CAAC,CAAC1I,KAAK;UAAA,EAAC,GAAG,EAAE;UAClE8E,iBAAiB,CAAC8J,SAAS,CAAC;UAC5B,IAAIvK,kBAAkB,CAAC4I,aAAa,IAAI5I,kBAAkB,CAAC4I,aAAa,CAAC2B,SAAS,CAAC,EAAEnK,SAAS,CAAC,KAAK,CAAC;QACvG,CAAE;QACF6J,OAAO,EAAE,SAAAA,QAACnP,CAAC;UAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,aAAU,CAAC;QAAA,CAAC;QACxFiK,4BAA4B,EAAE,IAAK;QACnCQ,YAAY,EAAExK,kBAAkB,CAAC8G,WAAW,IAAI,CAACqC,WAAW,IAAI,CAAA3I,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEnF,MAAM,IAAG,CAAE;QAC3FuC,IAAI,EAAEA,IAAK;QACXmC,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,wBAAsB;QAC/BsK,KAAK,EAAErK,kBAAkB,CAAC8G,WAAW,GAAG,YAAY,IAAAmC,sBAAA,GAAGS,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEjF,YAAY,cAAAwE,sBAAA,cAAAA,sBAAA,GAAIS,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE/N,KAAM;QAC3G6M,QAAQ,EAAE,CAACxI,kBAAkB,CAAC8G,WAAW,IAAIqC;MAAY,CAC1D,CACF,EACAnJ,kBAAkB,CAACxB,SAAS,KAAK,QAAQ,iBACxC,IAAArE,WAAA,CAAA0P,GAAA,EAAA1P,WAAA,CAAAsQ,QAAA;QAAAb,QAAA,EACGL,WAAW,CAAC7C,GAAG,CAAC,UAACrC,CAAC;UAAA,oBACjB,IAAAlK,WAAA,CAAA0P,GAAA,EAAC3P,SAAA,WAAQ;YACP6P,IAAI,EAAEhJ,aAAa,IAAI,OAAO,GAAG,QAAQ,GAAG,MAAO;YAEnD0H,IAAI,EAAEpE,CAAE;YACRzG,IAAI,EAAEA,IAAK;YACXS,MAAM,EAAE,KAAM;YACdqM,QAAQ,EAAE,CAAC,CAAE;YACbT,OAAO,EAAE,SAAAA,QAACnP,CAAC;cAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,aAAU,CAAC;YAAA,CAAC;YACxFoK,SAAS,KAAA3M,MAAA,CAAK8C,OAAO,KAAK,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAAG;YACtDV,GAAG,EAAE2D,MAAM,CAAC,CAAC,CAAwC;YACrDxD,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,aAAW;YACpB4K,cAAc,EAAE,SAAAA,eAAC7P,CAAM,EAAK;cAC1BA,CAAC,CAAC8P,eAAe,CAAC,CAAC;cACnB5K,kBAAkB,CAAC4I,aAAa,CAAC,CAACvE,CAAC,CAAC1I,KAAK,CAAC,CAAC;cAC3C8E,iBAAiB,CAAC,CAAC4D,CAAC,CAAC1I,KAAK,CAAC,CAAC;cAC5ByE,SAAS,CAAC,KAAK,CAAC;cAChBG,UAAU,CAAC,IAAI,CAAC;YAClB;UAAE,MAAA/C,MAAA,CAfMuC,EAAE,eAAAvC,MAAA,CAAY6G,CAAC,CAAC1I,KAAK,CAgB9B,CAAC;QAAA,CACH;MAAC,CACF,CACH;IAAA,CAC8B,CAAC;EAEtC,CAAC;EAED,IAAMkP,WAAW,GAAG,SAAdA,WAAWA,CAAInK,kBAA0B,EAAE9C,IAA2C,EAAK;IAC/F,IAAIsG,gBAAgB,CAAC,CAAC,CAAC7I,MAAM,KAAK,CAAC,EAAE;MACnC,oBAAO,IAAAlB,WAAA,CAAA0P,GAAA,EAAC3P,SAAA,WAAQ;QAACuO,IAAI,EAAE;UAAE9M,KAAK,EAAE+E,kBAAkB;UAAEoE,QAAQ,EAAE;QAAK,CAAE;QAAClH,IAAI,EAAEA,IAAK;QAACmC,EAAE,EAAC,gBAAgB;QAAC1B,MAAM,EAAE,KAAM;QAACsM,cAAc,EAAE,SAAAA,eAAC7P,CAAC,EAAK,CAAC;MAAE,CAAE,CAAC;IACpJ;IACA,oBACE,IAAAX,WAAA,CAAA0P,GAAA,EAAC1L,6BAA6B;MAACP,IAAI,EAAEA,IAAK;MAAAgM,QAAA,EACvC1F,gBAAgB,CAAC,CAAC,CAChB7D,MAAM,CAAC,UAACgE,CAAC;QAAA,OAAKA,CAAC,KAAKrE,kBAAkB,CAACxB,SAAS,IAAI,QAAQ,IAAI,CAAC6F,CAAC,CAAC2C,UAAU,CAAC;MAAA,EAAC,CAC/EN,GAAG,CAAC,UAAC+B,IAAI,EAAErF,KAAK,EAAK;QAAA,IAAA0H,kBAAA,EAAAC,mBAAA;QACpB,oBACE,IAAA5Q,WAAA,CAAAwP,IAAA,EAACpQ,MAAA,WAAK,CAACkR,QAAQ;UAAAb,QAAA,GACZnB,IAAI,CAACuC,aAAa,EAClB,CAACvC,IAAI,CAACuC,aAAa,IAAIhL,kBAAkB,CAACxB,SAAS,IAAI,OAAO,iBAC7D,IAAArE,WAAA,CAAA0P,GAAA,EAAC7P,YAAA,CAAA8P,WAAW;YACVC,IAAI,EAAC,eAAe;YACpBK,MAAM,EAAE,SAAAA,OAAC5B,QAAiB;cAAA,OAAKD,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;YAAA,CAAC;YAC/D7I,GAAG,EAAE2D,MAAM,CAACH,KAAK,GAAG,CAAC,CAAqC;YAC1DxF,IAAI,EAAEA,IAAK;YACXsM,WAAW,EAAE,CAAC,CAAE;YAChBC,SAAS,KAAA3M,MAAA,CAAK4F,KAAK,GAAG,CAAC,KAAK9C,OAAO,GAAG,gBAAgB,GAAG,EAAE,CAAG;YAC9D0J,4BAA4B,EAAE,IAAK;YACnClF,QAAQ,EAAE2D,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE3D,QAAS;YAEzBmF,OAAO,EAAE,SAAAA,QAACnP,CAAC;cAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAE,CAAC;YAAA,CAAC;YAC7FrD,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAG;YACzBiH,KAAK,GAAAS,kBAAA,GAAErC,IAAI,CAAChE,YAAY,cAAAqG,kBAAA,cAAAA,kBAAA,GAAIrC,IAAI,CAAC9M,KAAM;YACvC6M,QAAQ,EAAEhI,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEgE,QAAQ,CAACiE,IAAI,CAAC9M,KAAK;UAAE,UAAA6B,MAAA,CAJnCuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAK5B,CACF,EACA,CAACqF,IAAI,CAACuC,aAAa,IAAIhL,kBAAkB,CAACxB,SAAS,IAAI,UAAU,iBAChE,IAAArE,WAAA,CAAA0P,GAAA,EAAC7P,YAAA,CAAAsQ,QAAQ;YACPP,IAAI,EAAC,kBAAkB;YACvBK,MAAM,EAAE,SAAAA,OAAC5B,QAAiB;cAAA,OAAKD,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;YAAA,CAAC;YAC/DuB,4BAA4B,EAAE,IAAK;YACnClF,QAAQ,EAAE2D,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE3D,QAAS;YACzBqF,SAAS,KAAA3M,MAAA,CAAK4F,KAAK,GAAG,CAAC,KAAK9C,OAAO,GAAG,gBAAgB,GAAG,EAAE,CAAG;YAC9DV,GAAG,EAAE2D,MAAM,CAACH,KAAK,GAAG,CAAC,CAAqC;YAC1DxF,IAAI,EAAEA,IAAK;YACXsM,WAAW,EAAE,CAAC,CAAE;YAEhBD,OAAO,EAAE,SAAAA,QAACnP,CAAC;cAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAE,CAAC;YAAA,CAAC;YAC7FrD,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAG;YACzBiH,KAAK,GAAAU,mBAAA,GAAEtC,IAAI,CAAChE,YAAY,cAAAsG,mBAAA,cAAAA,mBAAA,GAAItC,IAAI,CAAC9M,KAAM;YACvC6M,QAAQ,EAAEhI,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEgE,QAAQ,CAACiE,IAAI,CAAC9M,KAAK;UAAE,UAAA6B,MAAA,CAJnCuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAK5B,CACF,EACA,CAACqF,IAAI,CAACuC,aAAa,KAAKhL,kBAAkB,CAACxB,SAAS,IAAI,QAAQ,IAAI,CAACwB,kBAAkB,CAACxB,SAAS,CAAC,iBACjG,IAAArE,WAAA,CAAA0P,GAAA,EAAC3P,SAAA,WAAQ;YACP6P,IAAI,EAAEhJ,aAAa,IAAI,OAAO,GAAG,QAAQ,GAAG,MAAO;YAEnDhB,EAAE,KAAAvC,MAAA,CAAKuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAG;YACzBqF,IAAI,EAAEA,IAAK;YACXiC,QAAQ,EAAE,CAAC,CAAE;YACbP,SAAS,KAAA3M,MAAA,CAAK4F,KAAK,GAAG,CAAC,KAAK9C,OAAO,GAAG,gBAAgB,GAAG,EAAE,CAAG;YAC9D1C,IAAI,EAAEA,IAAK;YACXqM,OAAO,EAAE,SAAAA,QAACnP,CAAC;cAAA,OAAK+F,yBAAyB,IAAIA,yBAAyB,IAAArD,MAAA,CAAIuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAAE,CAAC;YAAA,CAAC;YAC7F/E,MAAM,EAAEmC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEgE,QAAQ,CAACiE,IAAI,CAAC9M,KAAK,CAAE;YAC7CiE,GAAG,EAAE2D,MAAM,CAACH,KAAK,GAAG,CAAC,CAAwC;YAC7DuH,cAAc,EAAE,SAAAA,eAAC7P,CAAM,EAAK;cAC1BA,CAAC,CAAC8P,eAAe,CAAC,CAAC;cACnB5K,kBAAkB,CAAC4I,aAAa,CAAC,CAACH,IAAI,CAAC9M,KAAK,CAAC,CAAC;cAC9C8E,iBAAiB,CAAC,CAACgI,IAAI,CAAC9M,KAAK,CAAC,CAAC;cAC/ByE,SAAS,CAAC,KAAK,CAAC;cAChBG,UAAU,CAAC,IAAI,CAAC;YAClB;UAAE,UAAA/C,MAAA,CAfUuC,EAAE,OAAAvC,MAAA,CAAI4F,KAAK,GAAG,CAAC,CAgB5B,CACF;QAAA,UAAA5F,MAAA,CAxDyBuC,EAAE,OAAAvC,MAAA,CAAIiL,IAAI,CAAC9M,KAAK,CAyD5B,CAAC;MAErB,CAAC;IAAC,CACyB,CAAC;EAEpC,CAAC;EAED,IAAM0M,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAAA,IAAA4C,qBAAA;IAC5B,IAAM1I,IAAI,GAAG3B,YAAY,aAAZA,YAAY,wBAAAqK,qBAAA,GAAZrK,YAAY,CAAE4B,OAAO,cAAAyI,qBAAA,uBAArBA,qBAAA,CAAuBxI,qBAAqB,CAAC,CAAC;IAC3D,IAAIF,IAAI,EAAE;MACRP,kBAAkB,CAACQ,OAAO,CAAC0I,KAAK,CAACtJ,IAAI,MAAApE,MAAA,CAAM+E,IAAI,CAAC8B,CAAC,GAAG9B,IAAI,CAACpC,KAAK,OAAI;MAClE6B,kBAAkB,CAACQ,OAAO,CAAC0I,KAAK,CAACvJ,GAAG,MAAAnE,MAAA,CAAM+E,IAAI,CAAC8G,CAAC,GAAG9G,IAAI,CAACU,MAAM,OAAI;MAClEjB,kBAAkB,CAACQ,OAAO,CAAC0I,KAAK,CAAC/K,KAAK,GAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,MAAA3C,MAAA,CAAO+E,IAAI,CAACpC,KAAK,OAAI;IACrE;IACAiC,eAAe,CAAC,CAAC;EACnB,CAAC;EAED,IAAM+I,GAAG,MAAA3N,MAAA,CAAM0C,MAAM,GAAG,MAAM,GAAG,EAAE,OAAA1C,MAAA,CAAI0C,MAAM,IAAIS,OAAO,GAAG,SAAS,GAAG,EAAE,OAAAnD,MAAA,CAAIgE,eAAe,GAAIJ,IAAI,GAAG,IAAI,GAAG,MAAM,GAAI,EAAE,CAAE;EAE5H,oBACE,IAAAjH,WAAA,CAAA0P,GAAA,EAACvK,OAAO;IAAAsK,QAAA,eACN,IAAAzP,WAAA,CAAAwP,IAAA,EAAC9M,wBAAwB;MACvBkN,IAAI,EAAEhJ,aAAa,IAAI,MAAM,GAAG,MAAM,GAAG,YAAa;MACtDnB,GAAG,EAAEoC,kBAAmB;MACxBpE,IAAI,EAAEA,IAAK;MACXF,SAAS,EAAEoE,MAAM,CAACH,GAAI;MACtB5B,EAAE,EAAEA,EAAG;MACPtC,UAAU,EAAEqE,MAAM,CAACF,IAAK;MACxB8I,QAAQ,EAAE,CAAC,CAAE;MACbnN,QAAQ,EAAEA,QAAS;MACnB0C,SAAS,EAAEA,SAAU;MACrBjC,UAAU,EAAEgC,kBAAkB,CAAChC,UAAW;MAC1CC,SAAS,EAAE+B,kBAAkB,CAAC/B,SAAU;MACxCkM,SAAS,EAAEgB,GAAI;MAAAvB,QAAA,gBACf,IAAAzP,WAAA,CAAAwP,IAAA,EAACpL,4BAA4B;QAC3BwL,IAAI,EAAC,OAAO;QACZnM,IAAI,EAAEA,IAAK;QACXY,SAAS,EAAEwB,kBAAkB,CAACxB,SAAU;QACxC4M,QAAQ,EAAErF,YAAa;QACvBnG,GAAG,EAAEsC,YAAa;QAClBvB,OAAO,EAAEA,OAAQ;QACjB3C,UAAU,EAAEgC,kBAAkB,CAAChC,UAAW;QAAA4L,QAAA,GACzC5J,kBAAkB,CAACqL,WAAW,iBAC7B,IAAAlR,WAAA,CAAAwP,IAAA,EAAChL,mCAAmC;UAACf,IAAI,EAAEA,IAAK;UAAAgM,QAAA,GAC7C5J,kBAAkB,CAACqL,WAAW,eAC/B,IAAAlR,WAAA,CAAA0P,GAAA,EAAC1K,gBAAgB;YAACvB,IAAI,EAAEA,IAAK;YAAAgM,QAAA,eAC3B,IAAAzP,WAAA,CAAA0P,GAAA;cAAKM,SAAS,EAAC;YAAS,CAAE;UAAC,CACX,CAAC;QAAA,CACgB,CACtC,EACAnK,kBAAkB,CAAC6G,UAAU,IAAIgC,UAAU,CAAC,CAAC,EAC7CgC,WAAW,CAACnK,kBAAkB,EAAE9C,IAAI,CAAC;MAAA,CACV,CAAC,EAC9BoC,kBAAkB,CAACsL,MAAM,IAAItL,kBAAkB,CAACuL,WAAW,iBAC1D,IAAApR,WAAA,CAAA0P,GAAA,EAACxK,oCAAoC;QAACzB,IAAI,EAAEA,IAAK;QAACI,UAAU,EAAEgC,kBAAkB,CAAChC,UAAW;QAAA4L,QAAA,eAC1F,IAAAzP,WAAA,CAAA0P,GAAA,EAAClQ,OAAA,WAAM;UACLwG,KAAK,EAAC,MAAM;UACZ4J,IAAI,EAAC,UAAU;UACfyB,IAAI,EAAExL,kBAAkB,CAACyL,UAAW;UACpC7L,GAAG,EAAEuC,eAAgB;UACrBuJ,OAAO,EAAE1L,kBAAkB,CAAC2L,aAAc;UAC1C7G,QAAQ,EAAE9E,kBAAkB,CAAC4L,cAAe;UAC5CC,OAAO,GAAA/L,qBAAA,GAAEE,kBAAkB,CAAC8L,aAAa,cAAAhM,qBAAA,cAAAA,qBAAA,GAAI,SAAU;UACvDlC,IAAI,EAAEA,IAAK;UACXmO,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAM/L,kBAAkB,CAACsL,MAAM,CAAC,CAAC,IAAIlL,SAAS,CAAC,KAAK,CAAC;UAAA,CAAC;UAAAwJ,QAAA,EAC9D5J,kBAAkB,CAACuL;QAAW,CACzB;MAAC,CAC2B,CACvC;IAAA,CACuB;EAAC,CACpB,CAAC;AAEd,CACF,CAAC;AAAC/L,eAAA,CAAAwM,SAAA;EAlfAzO,QAAQ,EAAA0O,UAAA,YAAAC,IAAA,CAAAC,UAAA;EACRnM,kBAAkB,EAAAiM,UAAA,YAAAG,KAAA;IAlBlB5N,SAAS,EAAAyN,UAAA,YAAAI,KAAA,EAAG,OAAO,EAAG,UAAU,EAAG,QAAQ;IAC3ChB,WAAW,EAAAY,UAAA,YAAAK,IAAA;IACXtO,UAAU,EAAAiO,UAAA,YAAAC,IAAA;IACVpF,WAAW,EAAAmF,UAAA,YAAAC,IAAA;IACXjO,SAAS,EAAAgO,UAAA,YAAAM,MAAA;IACThB,WAAW,EAAAU,UAAA,YAAAM,MAAA;IAEXd,UAAU,EAAAQ,UAAA,YAAAK,IAAA;IACVX,aAAa,EAAAM,UAAA,YAAAC,IAAA;IACbN,cAAc,EAAAK,UAAA,YAAAC,IAAA;IACdZ,MAAM,EAAAW,UAAA,YAAAO,IAAA,CAAAL,UAAA;IACNtF,UAAU,EAAAoF,UAAA,YAAAC,IAAA;IACVtD,aAAa,EAAAqD,UAAA,YAAAO,IAAA,CAAAL,UAAA;IACb7J,KAAK,EAAA2J,UAAA,YAAAQ,OAAA,CAAAR,UAAA,YAAAG,KAAA;MAjCLzQ,KAAK,EAAAsQ,UAAA,YAAAM,MAAA,CAAAJ,UAAA;MAEL1H,YAAY,EAAAwH,UAAA,YAAAM,MAAA;MAEZG,SAAS,EAAAT,UAAA,YAAAM,MAAA;MAETvF,UAAU,EAAAiF,UAAA,YAAAC,IAAA;MAEVS,gBAAgB,EAAAV,UAAA,YAAAC,IAAA;MAEhBpH,QAAQ,EAAAmH,UAAA,YAAAC,IAAA;MAERU,MAAM,EAAAX,UAAA,YAAAC,IAAA;MAENV,IAAI,EAAAS,UAAA,YAAAK,IAAA;MAEJtB,aAAa,EAAAiB,UAAA,YAAAK;IAAA,IAAAH;EAAA,GAAAA,UAAA;EAuBblM,SAAS,EAAAgM,UAAA,YAAAC,IAAA;EACThM,MAAM,EAAA+L,UAAA,YAAAC,IAAA,CAAAC,UAAA;EACN/L,SAAS,EAAA6L,UAAA,YAAAO,IAAA,CAAAL,UAAA;EAETpM,EAAE,EAAAkM,UAAA,YAAAM,MAAA,CAAAJ,UAAA;EACF9L,MAAM,EAAA4L,UAAA,YAAAM,MAAA,CAAAJ,UAAA;EACNhM,KAAK,EAAA8L,UAAA,YAAAM,MAAA;EACL1L,yBAAyB,EAAAoL,UAAA,YAAAO,IAAA;EACzBhM,cAAc,EAAAyL,UAAA,YAAAQ,OAAA,CAAAR,UAAA,YAAAM,MAAA,EAAAJ,UAAA;EACd1L,iBAAiB,EAAAwL,UAAA,YAAAO,IAAA,CAAAL,UAAA;EACjBzL,kBAAkB,EAAAuL,UAAA,YAAAM,MAAA,CAAAJ,UAAA;EAClB7L,OAAO,EAAA2L,UAAA,YAAAY,SAAA,EAAAZ,UAAA,YAAAa,MAAA,EAAAb,UAAA,YAAAI,KAAA;EACP9L,UAAU,EAAA0L,UAAA,YAAAO,IAAA,CAAAL,UAAA;EACVxL,OAAO,EAAAsL,UAAA,YAAAC,IAAA;EAEPnL,aAAa,EAAAkL,UAAA,YAAAI,KAAA,EAAG,OAAO,EAAG,MAAM;AAAA;AAAA,IAAAU,QAAA,GAmenBvN,eAAe;AAAAtB,OAAA,cAAA6O,QAAA","ignoreList":[]}
|
|
@@ -206,7 +206,7 @@ var DropdownContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
206
206
|
return function () {
|
|
207
207
|
document.removeEventListener('keydown', handleKeyDown);
|
|
208
208
|
};
|
|
209
|
-
});
|
|
209
|
+
}, []);
|
|
210
210
|
var scrollPosition = React.useRef(0);
|
|
211
211
|
var handleScroll = function handleScroll() {
|
|
212
212
|
var _itemsListRef$current;
|