@razorpay/blade 12.21.1 → 12.21.3

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.
Files changed (28) hide show
  1. package/build/lib/native/components/ActionList/ActionListItem.js +1 -1
  2. package/build/lib/native/components/ActionList/ActionListItem.js.map +1 -1
  3. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  4. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  5. package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
  6. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  7. package/build/lib/web/development/components/ActionList/ActionListItem.js +18 -25
  8. package/build/lib/web/development/components/ActionList/ActionListItem.js.map +1 -1
  9. package/build/lib/web/development/components/Dropdown/Dropdown.js +11 -17
  10. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  11. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +32 -14
  12. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  13. package/build/lib/web/development/components/Dropdown/useDropdown.js +0 -2
  14. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  15. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +2 -2
  16. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  17. package/build/lib/web/production/components/ActionList/ActionListItem.js +18 -25
  18. package/build/lib/web/production/components/ActionList/ActionListItem.js.map +1 -1
  19. package/build/lib/web/production/components/Dropdown/Dropdown.js +11 -17
  20. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  21. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +32 -14
  22. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  23. package/build/lib/web/production/components/Dropdown/useDropdown.js +0 -2
  24. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  25. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +2 -2
  26. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  27. package/build/types/components/index.d.ts +1 -1
  28. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownIconButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n dropdownComponentIds.triggers.FilterChipSelectInput,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [hasAutoCompleteInHeader, setHasAutoCompleteInHeader] = React.useState(false);\n const [\n hasUnControlledFilterChipSelectInput,\n setHasUnControlledFilterChipSelectInput,\n ] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const headerAutoCompleteRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {\n dropdownTriggerer.current = 'DropdownIconButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.FilterChipSelectInput)) {\n dropdownTriggerer.current = 'FilterChipSelectInput';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n headerAutoCompleteRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInHeader,\n setHasAutoCompleteInHeader,\n hasUnControlledFilterChipSelectInput,\n setHasUnControlledFilterChipSelectInput,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInHeader, isDropdownOpen, close]);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownIconButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","FilterChipSelectInput","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState10","activeIndex","setActiveIndex","_React$useState11","_React$useState12","activeTagIndex","setActiveTagIndex","_React$useState13","_React$useState14","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState15","_React$useState16","hasFooterAction","setHasFooterAction","_React$useState17","_React$useState18","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","_React$useState19","_React$useState20","hasUnControlledFilterChipSelectInput","setHasUnControlledFilterChipSelectInput","_React$useState21","_React$useState22","isKeydownPressed","setIsKeydownPressed","_React$useState23","_React$useState24","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState25","_React$useState26","isControlled","setIsControlled","_React$useState27","_React$useState28","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","headerAutoCompleteRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownIconButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n dropdownComponentIds.triggers.FilterChipSelectInput,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [hasAutoCompleteInHeader, setHasAutoCompleteInHeader] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const headerAutoCompleteRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {\n dropdownTriggerer.current = 'DropdownIconButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.FilterChipSelectInput)) {\n dropdownTriggerer.current = 'FilterChipSelectInput';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n headerAutoCompleteRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInHeader,\n setHasAutoCompleteInHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInHeader, isDropdownOpen, close]);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownIconButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","FilterChipSelectInput","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState10","activeIndex","setActiveIndex","_React$useState11","_React$useState12","activeTagIndex","setActiveTagIndex","_React$useState13","_React$useState14","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState15","_React$useState16","hasFooterAction","setHasFooterAction","_React$useState17","_React$useState18","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","_React$useState19","_React$useState20","isKeydownPressed","setIsKeydownPressed","_React$useState21","_React$useState22","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState23","_React$useState24","isControlled","setIsControlled","_React$useState25","_React$useState26","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","headerAutoCompleteRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","assignWithoutSideEffects","forwardRef","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAMA,qBAAqB,GAAG;AAC5B;AACAC,oBAAoB,CAACC,OAAO,EAC5BD,oBAAoB,CAACE,QAAQ,CAACC,WAAW,EACzCH,oBAAoB,CAACE,QAAQ,CAACE,WAAW,EACzCJ,oBAAoB,CAACE,QAAQ,CAACG,cAAc,EAC5CL,oBAAoB,CAACE,QAAQ,CAACI,kBAAkB,EAChDN,oBAAoB,CAACE,QAAQ,CAACK,YAAY,EAC1CP,oBAAoB,CAACQ,eAAe,EACpCR,oBAAoB,CAACE,QAAQ,CAACO,YAAY,EAC1CC,YAAuB,CAACC,WAAW,EACnCX,oBAAoB,CAACE,QAAQ,CAACU,qBAAqB,CACpD,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA,EAUbC,GAA+B,EACR;AAAA,EAAA,IATrBC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACAC,gBAAgB,GAAAH,IAAA,CAAxBI,MAAM;IACNC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IAAAC,kBAAA,GAAAN,IAAA,CACZO,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,kBAAA;IACxBE,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,MAAM,GAAAT,IAAA,CAANS,MAAM;AACHC,IAAAA,IAAI,GAAAC,wBAAA,CAAAX,IAAA,EAAAY,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,eAAA,GAA8BC,cAAK,CAACC,QAAQ,CAAiC,EAAE,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,OAAO,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,UAAU,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAAI,gBAAA,GAA4CN,cAAK,CAACC,QAAQ,CAAW,EAAE,CAAC;IAAAM,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA,EAAA,CAAA,CAAA;AAAjEE,IAAAA,cAAc,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,gBAAA,GAA8CV,cAAK,CAACC,QAAQ,CAE1D,EAAE,CAAC;IAAAU,gBAAA,GAAAR,cAAA,CAAAO,gBAAA,EAAA,CAAA,CAAA;AAFEE,IAAAA,eAAe,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAG1C,EAAA,IAAAG,gBAAA,GAA4Dd,cAAK,CAACC,QAAQ,CAExE,EAAE,CAAC;IAAAc,gBAAA,GAAAZ,cAAA,CAAAW,gBAAA,EAAA,CAAA,CAAA;AAFEE,IAAAA,sBAAsB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;EAGxD,IAAAG,gBAAA,GAAsClB,cAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAAkB,iBAAA,GAAAhB,cAAA,CAAAe,gBAAA,EAAA,CAAA,CAAA;AAAjDE,IAAAA,WAAW,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;EAClC,IAAAG,iBAAA,GAA4CtB,cAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAAsB,iBAAA,GAAApB,cAAA,CAAAmB,iBAAA,EAAA,CAAA,CAAA;AAAvDE,IAAAA,cAAc,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,iBAAA,GAAkE1B,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA0B,iBAAA,GAAAxB,cAAA,CAAAuB,iBAAA,EAAA,CAAA,CAAA;AAAhFE,IAAAA,yBAAyB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,4BAA4B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC9D,EAAA,IAAAG,iBAAA,GAA8C9B,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA8B,iBAAA,GAAA5B,cAAA,CAAA2B,iBAAA,EAAA,CAAA,CAAA;AAA5DE,IAAAA,eAAe,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAAG,iBAAA,GAA8DlC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAkC,iBAAA,GAAAhC,cAAA,CAAA+B,iBAAA,EAAA,CAAA,CAAA;AAA5EE,IAAAA,uBAAuB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,0BAA0B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC1D,EAAA,IAAAG,iBAAA,GAAgDtC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAsC,iBAAA,GAAApC,cAAA,CAAAmC,iBAAA,EAAA,CAAA,CAAA;AAA9DE,IAAAA,gBAAgB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,mBAAmB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAG,iBAAA,GAA8D1C,cAAK,CAACC,QAAQ,CAE1E,CAAC,CAAC;IAAA0C,iBAAA,GAAAxC,cAAA,CAAAuC,iBAAA,EAAA,CAAA,CAAA;AAFGE,IAAAA,uBAAuB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,0BAA0B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAG1D,EAAA,IAAAG,iBAAA,GAAwC9C,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA8C,iBAAA,GAAA5C,cAAA,CAAA2C,iBAAA,EAAA,CAAA,CAAA;AAAtDE,IAAAA,YAAY,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AACpC;AACA,EAAA,IAAAG,iBAAA,GAA4DlD,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAkD,iBAAA,GAAAhD,cAAA,CAAA+C,iBAAA,EAAA,CAAA,CAAA;AAA1EE,IAAAA,sBAAsB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;;AAExD;AACF;AACA;AACA;AACE,EAAA,IAAMG,mBAAmB,GAAGtD,cAAK,CAACuD,MAAM,CAAuB,IAAI,CAAC,CAAA;AACpE,EAAA,IAAMC,YAAY,GAAGxD,cAAK,CAACuD,MAAM,CAAoB,IAAI,CAAC,CAAA;AAC1D,EAAA,IAAME,qBAAqB,GAAGzD,cAAK,CAACuD,MAAM,CAAoB,IAAI,CAAC,CAAA;AACnE,EAAA,IAAMG,iBAAiB,GAAG1D,cAAK,CAACuD,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC5D,EAAA,IAAMI,iBAAiB,GAAG3D,cAAK,CAACuD,MAAM,EAA4C,CAAA;AAClF,EAAA,IAAMK,iBAAiB,GAAG5D,cAAK,CAACuD,MAAM,CAA4B;AAAEM,IAAAA,KAAK,EAAE,KAAA;AAAM,GAAC,CAAC,CAAA;AACnF,EAAA,IAAMC,mBAAmB,GAAG9D,cAAK,CAACuD,MAAM,CAAoB;AAAEM,IAAAA,KAAK,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA;AACzE,EAAA,IAAME,oBAAoB,GAAG/D,cAAK,CAACuD,MAAM,CAAiB,IAAI,CAAC,CAAA;AAE/D,EAAA,IAAMS,cAAc,GAAGC,KAAK,CAAC,UAAU,CAAC,CAAA;AACxC,EAAA,IAAMC,iBAAiB,GAAGlE,cAAK,CAACuD,MAAM,CAAClE,gBAAgB,CAAC,CAAA;EAExD,IAAA8E,qBAAA,GAA4CC,oBAAoB,CAAC;AAC/DP,MAAAA,KAAK,EAAExE,gBAAgB;AACvBgF,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,QAAQ,EAAE,SAAAA,QAACC,CAAAA,qBAAqB,EAAK;QACnCL,iBAAiB,CAACM,OAAO,GAAGD,qBAAqB,CAAA;AACjDhF,QAAAA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAGgF,qBAAqB,CAAC,CAAA;AACvC,OAAA;AACF,KAAC,CAAC;IAAAE,sBAAA,GAAAtE,cAAA,CAAAgE,qBAAA,EAAA,CAAA,CAAA;AAPKO,IAAAA,cAAc,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EASxCP,iBAAiB,CAACM,OAAO,GAAGE,cAAc,CAAA;AAE1C,EAAA,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAIC,WAAoB,EAAW;IAChDX,iBAAiB,CAACM,OAAO,GAAGK,WAAW,CAAA;AACvCF,IAAAA,iBAAiB,CAAC,YAAA;AAAA,MAAA,OAAME,WAAW,CAAA;KAAC,CAAA,CAAA;GACrC,CAAA;AAED,EAAA,IAAMC,KAAK,GAAG9E,cAAK,CAAC+E,WAAW,CAAC,YAAM;IACpCtD,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrBmD,SAAS,CAAC,KAAK,CAAC,CAAA;AAChB;GACD,EAAE,EAAE,CAAC,CAAA;EAEN5E,cAAK,CAACgF,QAAQ,CAACC,GAAG,CAAC7F,QAAQ,EAAE,UAAC8F,KAAK,EAAK;AACtC,IAAA,kBAAIlF,cAAK,CAACmF,cAAc,CAACD,KAAK,CAAC,EAAE;AAC/B,MAAA,IAAI,KAAO,EAAE;AAAA,QAAA,IAAAE,eAAA,CAAA;AACX,QAAA,IAAI,CAACjH,qBAAqB,CAACkH,QAAQ,CAAAD,CAAAA,eAAA,GAACE,cAAc,CAACJ,KAAK,CAAC,cAAAE,eAAA,KAAA,KAAA,CAAA,GAAAA,eAAA,GAAI,EAAE,CAAC,EAAE;AAChEG,UAAAA,eAAe,CAAC;YACdC,OAAO,EAAA,sEAAA,CAAAC,MAAA,CAAyEtH,qBAAqB,CAACuH,IAAI,CACxG,IACF,CAAC,EAA8E,8EAAA,CAAA;AAC/EC,YAAAA,UAAU,EAAE,UAAA;AACd,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;MAEA,IAAIC,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACC,WAAW,CAAC,EAAE;QAC5EoF,iBAAiB,CAACa,OAAO,GAAG,aAAa,CAAA;AAC3C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACE,WAAW,CAAC,EAAE;QAC5EmF,iBAAiB,CAACa,OAAO,GAAG,aAAa,CAAA;AAC3C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACG,cAAc,CAAC,EAAE;QAC/EkF,iBAAiB,CAACa,OAAO,GAAG,gBAAgB,CAAA;AAC9C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACI,kBAAkB,CAAC,EAAE;QACnFiF,iBAAiB,CAACa,OAAO,GAAG,oBAAoB,CAAA;AAClD,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACO,YAAY,CAAC,EAAE;QAC7E8E,iBAAiB,CAACa,OAAO,GAAG,cAAc,CAAA;AAC5C,OAAA;MACA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE9G,oBAAoB,CAACE,QAAQ,CAACU,qBAAqB,CAAC,EAAE;QACtF2E,iBAAiB,CAACa,OAAO,GAAG,uBAAuB,CAAA;AACrD,OAAA;AACF,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMqB,YAAY,GAAG7F,cAAK,CAAC8F,OAAO,CAChC,YAAA;IAAA,OAAO;AACLxG,MAAAA,MAAM,EAAEoF,cAAc;AACtBE,MAAAA,SAAS,EAATA,SAAS;AACTE,MAAAA,KAAK,EAALA,KAAK;AACLlE,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBG,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBb,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,UAAU,EAAVA,UAAU;AACVG,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBW,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,cAAc,EAAdA,cAAc;AACdG,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBqC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBlC,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,MAAAA,4BAA4B,EAA5BA,4BAA4B;AAC5BW,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBuB,MAAAA,cAAc,EAAdA,cAAc;AACdR,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,qBAAqB,EAArBA,qBAAqB;AACrBH,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBI,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBjE,MAAAA,aAAa,EAAbA,aAAa;AACbuC,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBG,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBC,MAAAA,0BAA0B,EAA1BA,0BAA0B;MAC1BsB,iBAAiB,EAAEA,iBAAiB,CAACa,OAAO;AAC5C5B,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBC,MAAAA,0BAA0B,EAA1BA,0BAA0B;AAC1BG,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,eAAe,EAAfA,eAAe;AACfW,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD,CAAA;GAAC;AACF;AACA,EAAA,CACEc,cAAc,EACdrF,gBAAgB,EAChBuB,eAAe,EACfI,sBAAsB,EACtBZ,OAAO,EACPI,cAAc,EACdY,WAAW,EACXI,cAAc,EACdI,yBAAyB,EACzBnC,aAAa,EACbuC,eAAe,EACfQ,gBAAgB,EAChBI,uBAAuB,EACvBI,YAAY,CAEhB,CAAC,CAAA;AAED,EAAA,IAAM+C,sCAAsC,GAAG/F,cAAK,CAAC8F,OAAO,CAAC,YAAyC;IACpG,OAAO;AACLxG,MAAAA,MAAM,EAAEoF,cAAc;AACtBtB,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBhB,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBiB,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzB;AACA;AACA2C,MAAAA,oBAAoB,EAAElB,KAAAA;KACvB,CAAA;GACF,EAAE,CAAC1B,sBAAsB,EAAEhB,uBAAuB,EAAEsC,cAAc,EAAEI,KAAK,CAAC,CAAC,CAAA;AAE5E,EAAA,oBACEmB,GAAA,CAACC,iCAAiC,CAACC,QAAQ,EAAA;AAACtC,IAAAA,KAAK,EAAEkC,sCAAuC;AAAA3G,IAAAA,QAAA,eACxF6G,GAAA,CAACG,eAAe,CAACD,QAAQ,EAAA;AAACtC,MAAAA,KAAK,EAAEgC,YAAa;MAAAzG,QAAA,eAC5C6G,GAAA,CAAC5H,OAAAA;AACC;AAAA,QAAAgI,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACAlH,QAAAA,GAAG,EAAEmH,SAAS,CAACnH,GAAG,EAAE4E,oBAA2B,CAAA;AAAE,OAAA,EAC7CwC,aAAa,CAAC;QAAEC,IAAI,EAAEC,aAAa,CAACC,QAAQ;AAAEhH,QAAAA,MAAM,EAANA,MAAAA;OAAQ,CAAC,CACvDiH,EAAAA,cAAc,CAAC/G,IAAI,CAAC,CACpBgH,EAAAA,sBAAsB,CAAChH,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAChCiH,QAAAA,KAAK,EAAElH,MAAO;QAAAP,QAAA,eAEd6G,GAAA,CAAC5H,OAAO,EAAA;AAACyI,UAAAA,QAAQ,EAAC,UAAU;AAACC,UAAAA,SAAS,EAAE,MAAgB;AAAA3H,UAAAA,QAAA,EACrDA,QAAAA;SACM,CAAA;OACF,CAAA,CAAA;KACe,CAAA;AAAC,GACe,CAAC,CAAA;AAEjD,CAAC,CAAA;AAEKsH,IAAAA,QAAQ,gBAAGM,wBAAwB,eAAChH,cAAK,CAACiH,UAAU,CAAChI,SAAS,CAAC,EAAE;EACrEiI,WAAW,EAAE9I,oBAAoB,CAACsI,QAAAA;AACpC,CAAC;;;;"}
@@ -26,7 +26,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
26
26
  var idBase = useId('filter-chip-select-input');
27
27
  var _onClick = props.onClick,
28
28
  _onBlur = props.onBlur,
29
- _onKeyDown = props.onKeyDown,
29
+ onKeyDown = props.onKeyDown,
30
30
  accessibilityLabel = props.accessibilityLabel,
31
31
  testID = props.testID,
32
32
  value = props.value,
@@ -52,7 +52,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
52
52
  triggererRef = _useDropdown.triggererRef,
53
53
  selectionType = _useDropdown.selectionType,
54
54
  isControlled = _useDropdown.isControlled,
55
- setHasUnControlledFilterChipSelectInput = _useDropdown.setHasUnControlledFilterChipSelectInput,
56
55
  setSelectedIndices = _useDropdown.setSelectedIndices,
57
56
  controlledValueIndices = _useDropdown.controlledValueIndices,
58
57
  changeCallbackTriggerer = _useDropdown.changeCallbackTriggerer;
@@ -79,8 +78,10 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
79
78
  });
80
79
  };
81
80
  useEffect(function () {
81
+ var valueNotEmpty = typeof value === 'string' && value.trim() !== '' || Array.isArray(value) && value.length > 0;
82
+ // since we need to sync state only one time so skipping value checking.
83
+ var isValueAndSelectedOptoinsSynced = typeof value === 'string' && value && selectedIndices.length === 1 || Array.isArray(value) && value.length === selectedIndices.length;
82
84
  if (isUnControlled) {
83
- setHasUnControlledFilterChipSelectInput(true);
84
85
  if (listViewSelectedFilters[label]) {
85
86
  var _value = listViewSelectedFilters[label];
86
87
  setSelectedIndices(_value);
@@ -95,9 +96,19 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
95
96
  } else if (listViewSelectedFilters[label]) {
96
97
  var _value2 = listViewSelectedFilters[label];
97
98
  setSelectedIndices(_value2);
99
+ // This would be the case when filterChipSelectInput is controlled and are being opened first time
100
+ } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {
101
+ var _selectedIndices = typeof value === 'string' ? [options.findIndex(function (option) {
102
+ return option.value === value;
103
+ })] : options.map(function (option, index) {
104
+ return value.includes(option.value) ? index : -1;
105
+ }).filter(function (index) {
106
+ return index !== -1;
107
+ });
108
+ setSelectedIndices(_selectedIndices);
98
109
  }
99
110
  // eslint-disable-next-line react-hooks/exhaustive-deps
100
- }, [isUnControlled]);
111
+ }, [isUnControlled, options]);
101
112
  var getTitleFromValue = function getTitleFromValue(value) {
102
113
  var option = options.find(function (option) {
103
114
  return option.value === value;
@@ -137,6 +148,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
137
148
  updatedFilters = _objectWithoutProperties(prev, [label].map(_toPropertyKey));
138
149
  return updatedFilters;
139
150
  });
151
+ setSelectedIndices([]);
140
152
  };
141
153
  useEffect(function () {
142
154
  if (clearFilterCallbackTriggerer) {
@@ -180,6 +192,21 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
180
192
  }
181
193
  // eslint-disable-next-line react-hooks/exhaustive-deps
182
194
  }, [changeCallbackTriggerer]);
195
+ var handleKeyDown = function handleKeyDown(e) {
196
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
197
+ onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
198
+ event: e
199
+ });
200
+ if (e.key === 'Escape') {
201
+ e.preventDefault();
202
+ e.stopPropagation();
203
+ }
204
+ if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {
205
+ e.preventDefault();
206
+ e.stopPropagation();
207
+ onTriggerClick();
208
+ }
209
+ };
183
210
  return /*#__PURE__*/jsx(BaseFilterChip, _objectSpread(_objectSpread({
184
211
  label: label,
185
212
  value: valueTitle !== null && valueTitle !== void 0 ? valueTitle : getUnControlledFilterChipValue(),
@@ -187,6 +214,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
187
214
  selectionType: selectionType
188
215
  }, rest), {}, {
189
216
  ref: triggererRef,
217
+ onKeyDown: handleKeyDown,
190
218
  accessibilityProps: {
191
219
  label: accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : label,
192
220
  hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),
@@ -196,20 +224,10 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
196
224
  },
197
225
  onClick: function onClick(e) {
198
226
  onTriggerClick();
199
- // Setting it for web fails it on native typecheck and vice versa
200
227
  _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
201
228
  },
202
229
  onBlur: function onBlur(e) {
203
- // With button trigger, there is no "value" as such. It's just clickable items
204
- // Setting it for web fails it on native typecheck and vice versa
205
230
  _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
206
- },
207
- onKeyDown: function onKeyDown(e) {
208
- onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
209
- event: e
210
- });
211
- // Setting it for web fails it on native typecheck and vice versa
212
- _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
213
231
  }
214
232
  }));
215
233
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setHasUnControlledFilterChipSelectInput,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n if (isUnControlled) {\n setHasUnControlledFilterChipSelectInput(true);\n if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n const inputValue = value.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n }\n } else if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n if (isUnControlled) {\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n }\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setHasUnControlledFilterChipSelectInput","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","inputValue","prev","includes","concat","_toConsumableArray","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","filter","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","e","event","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n // since we need to sync state only one time so skipping value checking.\n const isValueAndSelectedOptoinsSynced =\n (typeof value === 'string' && value && selectedIndices.length === 1) ||\n (Array.isArray(value) && value.length === selectedIndices.length);\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n const inputValue = value.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n }\n } else if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n // This would be the case when filterChipSelectInput is controlled and are being opened first time\n } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {\n const selectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(selectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n if (isUnControlled) {\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n }\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","isValueAndSelectedOptoinsSynced","inputValue","prev","includes","concat","_toConsumableArray","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
@@ -44,8 +44,6 @@ var DropdownContext = /*#__PURE__*/React__default.createContext({
44
44
  setChangeCallbackTriggerer: noop,
45
45
  isControlled: false,
46
46
  setIsControlled: noop,
47
- hasUnControlledFilterChipSelectInput: false,
48
- setHasUnControlledFilterChipSelectInput: noop,
49
47
  dropdownBaseId: '',
50
48
  actionListItemRef: {
51
49
  current: null
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput'\n | 'FilterChipSelectInput';\n\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n headerAutoCompleteRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Whether the FilterChipSelectInput is uncontrolled\n */\n hasUnControlledFilterChipSelectInput: boolean;\n setHasUnControlledFilterChipSelectInput: (value: boolean) => void;\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheetHeader and DropdownHeader, the trigger can be Select but they can also have autocomplete inside of header\n */\n hasAutoCompleteInHeader: boolean;\n setHasAutoCompleteInHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInHeader: false,\n setHasAutoCompleteInHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n hasUnControlledFilterChipSelectInput: false,\n setHasUnControlledFilterChipSelectInput: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n headerAutoCompleteRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n setIsKeydownPressed(false);\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n\n if (!isReactNative()) {\n if (rest.hasAutoCompleteInHeader) {\n // move focus to autocomplete\n rest.headerAutoCompleteRef.current?.focus();\n } else {\n rest.triggererRef.current?.focus();\n }\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","hasUnControlledFilterChipSelectInput","setHasUnControlledFilterChipSelectInput","dropdownBaseId","actionListItemRef","current","triggererRef","headerAutoCompleteRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$headerAutoCompl","focus","_rest$triggererRef$cu","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":";;;;;;;;;;;;;;;;AAoBA;AACA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,GAAe,EAAE,CAAA;AA8G3B,IAAMC,eAAe,gBAAGC,cAAK,CAACC,aAAa,CAAsB;AAC/DC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAEL,IAAI;AACfM,EAAAA,KAAK,EAAEN,IAAI;AACXO,EAAAA,eAAe,EAAE,EAAE;AACnBC,EAAAA,kBAAkB,EAAER,IAAI;AACxBS,EAAAA,sBAAsB,EAAE,EAAE;AAC1BC,EAAAA,yBAAyB,EAAEV,IAAI;AAC/BW,EAAAA,OAAO,EAAE,EAAE;AACXC,EAAAA,UAAU,EAAEZ,IAAI;AAChBa,EAAAA,cAAc,EAAE,EAAE;AAClBC,EAAAA,iBAAiB,EAAEd,IAAI;EACvBe,WAAW,EAAE,CAAC,CAAC;AACfC,EAAAA,cAAc,EAAEhB,IAAI;EACpBiB,cAAc,EAAE,CAAC,CAAC;AAClBC,EAAAA,iBAAiB,EAAElB,IAAI;AACvBmB,EAAAA,yBAAyB,EAAE,KAAK;AAChCC,EAAAA,4BAA4B,EAAEpB,IAAI;AAClCqB,EAAAA,eAAe,EAAE,KAAK;AACtBC,EAAAA,kBAAkB,EAAEtB,IAAI;AACxBuB,EAAAA,uBAAuB,EAAE,KAAK;AAC9BC,EAAAA,0BAA0B,EAAExB,IAAI;AAChCyB,EAAAA,gBAAgB,EAAE,KAAK;AACvBC,EAAAA,mBAAmB,EAAE1B,IAAI;AACzB2B,EAAAA,uBAAuB,EAAE,CAAC;AAC1BC,EAAAA,0BAA0B,EAAE5B,IAAI;AAChC6B,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,eAAe,EAAE9B,IAAI;AACrB+B,EAAAA,oCAAoC,EAAE,KAAK;AAC3CC,EAAAA,uCAAuC,EAAEhC,IAAI;AAC7CiC,EAAAA,cAAc,EAAE,EAAE;AAClBC,EAAAA,iBAAiB,EAAE;AACjBC,IAAAA,OAAO,EAAE,IAAA;GACV;AACDC,EAAAA,YAAY,EAAE;AACZD,IAAAA,OAAO,EAAE,IAAA;GACV;AACDE,EAAAA,qBAAqB,EAAE;AACrBF,IAAAA,OAAO,EAAE,IAAA;GACV;AACDG,EAAAA,iBAAiB,EAAE;AACjBH,IAAAA,OAAO,EAAE,IAAA;GACV;AACDI,EAAAA,mBAAmB,EAAE;AACnBJ,IAAAA,OAAO,EAAE,IAAA;GACV;AACDK,EAAAA,mBAAmB,EAAE;AACnBL,IAAAA,OAAO,EAAE,IAAA;AACX,GAAA;AACF,CAAC,EAAC;AAEF,IAAIM,aAAqB,CAAA;AACzB,IAAIC,YAAY,GAAG,EAAE,CAAA;AAsCrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,GAAiC;AAChD,EAAA,IAAAC,iBAAA,GAsBI1C,cAAK,CAAC2C,UAAU,CAAC5C,eAAe,CAAC;IArBnCG,MAAM,GAAAwC,iBAAA,CAANxC,MAAM;IACNC,SAAS,GAAAuC,iBAAA,CAATvC,SAAS;IACTC,KAAK,GAAAsC,iBAAA,CAALtC,KAAK;IACLC,eAAe,GAAAqC,iBAAA,CAAfrC,eAAe;IACfC,kBAAkB,GAAAoC,iBAAA,CAAlBpC,kBAAkB;IAClBO,WAAW,GAAA6B,iBAAA,CAAX7B,WAAW;IACXC,cAAc,GAAA4B,iBAAA,CAAd5B,cAAc;IACdC,cAAc,GAAA2B,iBAAA,CAAd3B,cAAc;IACdC,iBAAiB,GAAA0B,iBAAA,CAAjB1B,iBAAiB;IACjBqB,mBAAmB,GAAAK,iBAAA,CAAnBL,mBAAmB;IACnBd,gBAAgB,GAAAmB,iBAAA,CAAhBnB,gBAAgB;IAChBC,mBAAmB,GAAAkB,iBAAA,CAAnBlB,mBAAmB;IACnBf,OAAO,GAAAiC,iBAAA,CAAPjC,OAAO;IACPmC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IACbnB,uBAAuB,GAAAiB,iBAAA,CAAvBjB,uBAAuB;IACvBC,0BAA0B,GAAAgB,iBAAA,CAA1BhB,0BAA0B;IAC1BC,YAAY,GAAAe,iBAAA,CAAZf,YAAY;IACZnB,yBAAyB,GAAAkC,iBAAA,CAAzBlC,yBAAyB;IACzBG,cAAc,GAAA+B,iBAAA,CAAd/B,cAAc;IACdkC,iBAAiB,GAAAH,iBAAA,CAAjBG,iBAAiB;AACdC,IAAAA,IAAI,GAAAC,wBAAA,CAAAL,iBAAA,EAAAM,SAAA,CAAA,CAAA;AAUT,EAAA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,OAAiB,EAAW;AAC9C,IAAA,IAAIvB,YAAY,EAAE;MAChBnB,yBAAyB,CAAC0C,OAAO,CAAC,CAAA;AACpC,KAAC,MAAM;MACL5C,kBAAkB,CAAC4C,OAAO,CAAC,CAAA;AAC7B,KAAA;GACD,CAAA;AAED,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAa,EAAW;AAC5C;AACA,IAAA,IAAMC,iBAAiB,GAAGhD,eAAe,CAACiD,OAAO,CAACF,KAAK,CAAC,CAAA;IACxD,IAAIC,iBAAiB,GAAG,CAAC,EAAE;AACzB,MAAA,OAAA;AACF,KAAA;IAEAJ,UAAU,CAAA,EAAA,CAAAM,MAAA,CAAAC,kBAAA,CACLnD,eAAe,CAACoD,KAAK,CAAC,CAAC,EAAEJ,iBAAiB,CAAC,CAAAG,EAAAA,kBAAA,CAC3CnD,eAAe,CAACoD,KAAK,CAACJ,iBAAiB,GAAG,CAAC,CAAC,CAAA,CAChD,CAAC,CAAA;GACH,CAAA;;AAED;AACF;AACA;AACA;AACA;AACA;AACE,EAAA,IAAMK,YAA8B,GAAG,SAAjCA,YAA8BA,CAClCN,KAAK,EAIF;IAAA,IAHHO,UAAU,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA;AACXG,MAAAA,gBAAgB,EAAE,IAAA;KACnB,CAAA;IAED,IAAIC,UAAU,GAAG,KAAK,CAAA;IAEtB,IAAIZ,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG3C,OAAO,CAACoD,MAAM,GAAG,CAAC,EAAE;AAC3C,MAAA,OAAOG,UAAU,CAAA;AACnB,KAAA;IAEA,IAAIpB,aAAa,KAAK,UAAU,EAAE;AAChC,MAAA,IAAIvC,eAAe,CAAC4D,QAAQ,CAACb,KAAK,CAAC,EAAE;QACnCD,YAAY,CAACC,KAAK,CAAC,CAAA;AACnBY,QAAAA,UAAU,GAAG,KAAK,CAAA;AACpB,OAAC,MAAM;QACLf,UAAU,CAAA,EAAA,CAAAM,MAAA,CAAAC,kBAAA,CAAKnD,eAAe,CAAA,EAAA,CAAE+C,KAAK,CAAA,CAAC,CAAC,CAAA;AACvCY,QAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,OAAA;AACF,KAAC,MAAM;AACLf,MAAAA,UAAU,CAAC,CAACG,KAAK,CAAC,CAAC,CAAA;AACnBY,MAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,KAAA;;AAEA;AACAtC,IAAAA,0BAA0B,CAACD,uBAAuB,GAAG,CAAC,CAAC,CAAA;IAEvD,IAAIZ,WAAW,KAAKuC,KAAK,EAAE;MACzBtC,cAAc,CAACsC,KAAK,CAAC,CAAA;AACvB,KAAA;IAEA,IAAIO,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,IAAAA,UAAU,CAAEI,gBAAgB,IAAInB,aAAa,KAAK,UAAU,EAAE;AAChExC,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;AAEA,IAAA,OAAO4D,UAAU,CAAA;GAClB,CAAA;;AAED;AACF;AACA;AACE,EAAA,IAAME,cAAc,GAAG,SAAjBA,cAAcA,GAAe;AACjC,IAAA,IAAIhE,MAAM,EAAE;AACVE,MAAAA,KAAK,EAAE,CAAA;AACT,KAAC,MAAM;MACLD,SAAS,CAAC,IAAI,CAAC,CAAA;AACjB,KAAA;GACD,CAAA;;AAED;AACF;AACA;EACE,IAAMgE,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,UAA6B,EAAEhB,KAAc,EAAW;IAC9EpC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrB,IAAMqD,QAAQ,GAAGjB,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAIvC,WAAW,CAAA;AACrC,IAAA,IAAIyD,YAAoB,CAAA;AACxB,IAAA,IAAMC,eAAe,GACnBzB,IAAI,CAACzB,uBAAuB,IAC5BwB,iBAAiB,KAAK2B,oBAAoB,CAACC,QAAQ,CAACC,YAAY,CAAA;AAClE,IAAA,IAAIH,eAAe,IAAI5D,cAAc,CAACkD,MAAM,GAAG,CAAC,EAAE;AAChD;;AAEA,MAAA,IAAMc,eAAe,GAAGhE,cAAc,CACnCiE,GAAG,CAAC,UAACC,aAAa,EAAA;AAAA,QAAA,OAAKpE,OAAO,CAACqE,SAAS,CAAC,UAACC,MAAM,EAAA;AAAA,UAAA,OAAKA,MAAM,CAACC,KAAK,KAAKH,aAAa,CAAA;SAAC,CAAA,CAAA;AAAA,OAAA,CAAC,CACrFI,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;QAAA,OAAKD,CAAC,GAAGC,CAAC,CAAA;OAAC,CAAA,CAAA;AAExBb,MAAAA,YAAY,GACVK,eAAe,CACbS,eAAe,CAAC;AACdC,QAAAA,YAAY,EAAEV,eAAe,CAACrB,OAAO,CAACe,QAAQ,CAAC;AAC/CiB,QAAAA,QAAQ,EAAEX,eAAe,CAACd,MAAM,GAAG,CAAC;AACpCO,QAAAA,UAAU,EAAVA,UAAAA;AACF,OAAC,CAAC,CACH,CAAA;AACL,KAAC,MAAM;MACLE,YAAY,GAAGc,eAAe,CAAC;AAC7BC,QAAAA,YAAY,EAAEhB,QAAQ;AACtBiB,QAAAA,QAAQ,EAAE7E,OAAO,CAACoD,MAAM,GAAG,CAAC;AAC5BO,QAAAA,UAAU,EAAVA,UAAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;IACAtD,cAAc,CAACwD,YAAY,CAAC,CAAA;AAE5B,IAAA,IAAMiB,YAAY,GAAG9E,OAAO,CAACmE,GAAG,CAAC,UAACG,MAAM,EAAA;MAAA,OAAKA,MAAM,CAACC,KAAK,CAAA;KAAC,CAAA,CAAA;IAC1DQ,qBAAqB,CAAClB,YAAY,EAAExB,IAAI,CAACd,iBAAiB,CAACC,OAAO,EAAEsD,YAAY,CAAC,CAAA;IACjF,IAAIE,SAAS,EAAE,EAAE;MACfC,eAAe,CAAC5C,IAAI,CAACd,iBAAiB,EAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9F,KAAA;GACD,CAAA;;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAM2D,aAAa,GAAG,SAAhBA,aAAaA,CACjBC,CAA8E,EAC9ExC,KAAa,EACJ;IACT5B,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC1B,IAAM4C,UAAU,GAAGyB,gBAAgB,CAACD,CAAC,EAAE1F,MAAM,EAAE2C,iBAAiB,CAAC,CAAA;AACjE,IAAA,IAAI,OAAOuB,UAAU,KAAK,QAAQ,EAAE;AAClCD,MAAAA,cAAc,CAACC,UAAU,EAAEhB,KAAK,CAAC,CAAA;AACnC,KAAA;IACAM,YAAY,CAACN,KAAK,CAAC,CAAA;AAEnB,IAAA,IAAI,CAAC0C,aAAa,EAAE,EAAE;MACpB,IAAIhD,IAAI,CAACzB,uBAAuB,EAAE;AAAA,QAAA,IAAA0E,qBAAA,CAAA;AAChC;AACA,QAAA,CAAAA,qBAAA,GAAAjD,IAAI,CAACX,qBAAqB,CAACF,OAAO,MAAA8D,IAAAA,IAAAA,qBAAA,KAAlCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAoCC,KAAK,EAAE,CAAA;AAC7C,OAAC,MAAM;AAAA,QAAA,IAAAC,qBAAA,CAAA;AACL,QAAA,CAAAA,qBAAA,GAAAnD,IAAI,CAACZ,YAAY,CAACD,OAAO,MAAAgE,IAAAA,IAAAA,qBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA2BD,KAAK,EAAE,CAAA;AACpC,OAAA;AACF,KAAA;GACD,CAAA;;AAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAIC,MAAc,EAAE/B,UAA6B,EAAW;AAC3E;IACAjE,SAAS,CAAC,IAAI,CAAC,CAAA;IAEf,IACE2C,IAAI,CAACzB,uBAAuB,IAC5BwB,iBAAiB,KAAK2B,oBAAoB,CAACC,QAAQ,CAACC,YAAY,EAChE;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,OAAOnC,aAAa,KAAK,QAAQ,EAAE;AACrC6D,MAAAA,MAAM,CAACC,YAAY,CAAC9D,aAAa,CAAC,CAAA;AACpC,KAAA;AAEAA,IAAAA,aAAa,GAAG6D,MAAM,CAACE,UAAU,CAAC,YAAM;AACtC9D,MAAAA,YAAY,GAAG,EAAE,CAAA;KAClB,EAAE,GAAG,CAAC,CAAA;AACP;IACAA,YAAY,GAAGA,YAAY,GAAG2D,MAAM,CAAA;AACpC,IAAA,IAAMI,YAAY,GAAG9F,OAAO,CAACmE,GAAG,CAAC,UAACG,MAAM,EAAA;MAAA,OAAKA,MAAM,CAACyB,KAAK,CAAA;KAAC,CAAA,CAAA;IAC1D,IAAMC,WAAW,GAAGC,gBAAgB,CAACH,YAAY,EAAE/D,YAAY,EAAE3B,WAAW,GAAG,CAAC,CAAC,CAAA;;AAEjF;IACA,IAAI4F,WAAW,IAAI,CAAC,EAAE;AACpBtC,MAAAA,cAAc,CAACC,UAAU,EAAEqC,WAAW,CAAC,CAAA;AACzC,KAAA;AACA;SACK;AACHL,MAAAA,MAAM,CAACC,YAAY,CAAC9D,aAAa,CAAC,CAAA;AAClCC,MAAAA,YAAY,GAAG,EAAE,CAAA;AACnB,KAAA;GACD,CAAA;;AAED;AACF;AACA;AACE,EAAA,IAAMmE,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIf,CAEzB,EAAW;IACV,IAAI,CAACrE,gBAAgB,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC0C,QAAQ,CAAC2B,CAAC,CAACgB,KAAK,CAACC,GAAG,CAAC,EAAE;AAChF;MACArF,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3B,KAAA;IAEA,IAAM4C,UAAU,GAAGyB,gBAAgB,CAACD,CAAC,CAACgB,KAAK,EAAE1G,MAAM,EAAE2C,iBAAiB,CAAC,CAAA;AAEvE,IAAA,IAAIuB,UAAU,EAAE;AACd0C,MAAAA,aAAa,CAAC1C,UAAU,EAAEwB,CAAC,EAAE;AAC3BzF,QAAAA,SAAS,EAATA,SAAS;AACTC,QAAAA,KAAK,EAALA,KAAK;AACL+D,QAAAA,cAAc,EAAdA,cAAc;AACd+B,QAAAA,WAAW,EAAXA,WAAW;QACXa,mBAAmB,EAAE,SAAAA,mBAAAA,GAAM;UAAA,IAAAC,qBAAA,EAAAC,oBAAA,CAAA;UACzB,IAAIpG,WAAW,GAAG,CAAC,EAAE;AACnB,YAAA,OAAA;AACF,WAAA;AAEA,UAAA,IAAMmD,UAAU,GAAGN,YAAY,CAAC7C,WAAW,CAAC,CAAA;UAC5C,IAAIiC,IAAI,CAAC3B,eAAe,IAAI,CAAC2E,aAAa,EAAE,EAAE;AAAA,YAAA,IAAAoB,sBAAA,CAAA;AAC5C,YAAA,CAAAA,sBAAA,GAAApE,IAAI,CAACZ,YAAY,CAACD,OAAO,MAAAiF,IAAAA,IAAAA,sBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA2BlB,KAAK,EAAE,CAAA;AACpC,WAAA;UAEA,CAAAgB,qBAAA,IAAAC,oBAAA,GAAAxG,OAAO,CAACI,WAAW,CAAC,EAACsG,cAAc,cAAAH,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnCA,qBAAA,CAAAI,IAAA,CAAAH,oBAAA,EAAsCjD,UAAU,CAAC,CAAA;AACnD,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,CAAA;AAED,EAAA,OAAAqD,aAAA,CAAA;AACEnH,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,SAAS,EAATA,SAAS;AACTC,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBK,IAAAA,cAAc,EAAdA,cAAc;AACdwC,IAAAA,YAAY,EAAZA,YAAY;AACZ3C,IAAAA,yBAAyB,EAAzBA,yBAAyB;AACzB0D,IAAAA,cAAc,EAAdA,cAAc;AACdyC,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBhB,IAAAA,aAAa,EAAbA,aAAa;AACb9E,IAAAA,WAAW,EAAXA,WAAW;AACXC,IAAAA,cAAc,EAAdA,cAAc;AACdC,IAAAA,cAAc,EAAdA,cAAc;AACdC,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBqB,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBd,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBC,IAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBC,IAAAA,0BAA0B,EAA1BA,0BAA0B;AAC1BC,IAAAA,YAAY,EAAZA,YAAY;AACZlB,IAAAA,OAAO,EAAPA,OAAO;AACPuE,IAAAA,KAAK,EAAEsC,cAAc,CAACjH,eAAe,EAAEI,OAAO,CAAC;AAC/C8G,IAAAA,YAAY,EAAEC,qBAAqB,CAACnH,eAAe,EAAEI,OAAO,CAAC;AAC7DmC,IAAAA,aAAa,EAAbA,aAAa;AACbC,IAAAA,iBAAiB,EAAjBA,iBAAAA;AAAiB,GAAA,EACdC,IAAI,CAAA,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput'\n | 'FilterChipSelectInput';\n\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n headerAutoCompleteRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheetHeader and DropdownHeader, the trigger can be Select but they can also have autocomplete inside of header\n */\n hasAutoCompleteInHeader: boolean;\n setHasAutoCompleteInHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInHeader: false,\n setHasAutoCompleteInHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n headerAutoCompleteRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n setIsKeydownPressed(false);\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n\n if (!isReactNative()) {\n if (rest.hasAutoCompleteInHeader) {\n // move focus to autocomplete\n rest.headerAutoCompleteRef.current?.focus();\n } else {\n rest.triggererRef.current?.focus();\n }\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","headerAutoCompleteRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$headerAutoCompl","focus","_rest$triggererRef$cu","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
@@ -142,7 +142,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
142
142
  _ref5$selectionType = _ref5.selectionType,
143
143
  selectionType = _ref5$selectionType === void 0 ? 'single' : _ref5$selectionType,
144
144
  _onClick = _ref5.onClick,
145
- onKeyDown = _ref5.onKeyDown,
145
+ _onKeyDown = _ref5.onKeyDown,
146
146
  accessibilityProps = _ref5.accessibilityProps,
147
147
  id = _ref5.id,
148
148
  rest = _objectWithoutProperties(_ref5, _excluded);
@@ -161,7 +161,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
161
161
  },
162
162
  onKeyDown: function onKeyDown(e) {
163
163
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
164
+ _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
165
165
  }
166
166
  }, makeAccessible(_objectSpread(_objectSpread({}, accessibilityProps), {}, {
167
167
  role: (_accessibilityProps$r = accessibilityProps === null || accessibilityProps === void 0 ? void 0 : accessibilityProps.role) !== null && _accessibilityProps$r !== void 0 ? _accessibilityProps$r : 'button'
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport type { Theme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'highlighted'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.max,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'normal'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.max,\n borderTopLeftRadius: theme.border.radius.max,\n borderBottomLeftRadius: theme.border.radius.max,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.max,\n borderBottomRightRadius: theme.border.radius.max,\n paddingLeft: makeSpace(theme.spacing[2]),\n paddingRight: makeSpace(theme.spacing[3]),\n justifyContent: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color=\"primary\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text as=\"span\" size=\"small\" weight=\"semibold\" color=\"interactive.text.primary.normal\">\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\">\n <Text size=\"small\" weight=\"medium\" color=\"currentColor\" truncateAfterLines={1}>\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"currentColor\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n >\n <CloseIcon size=\"small\" color=\"currentColor\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","max","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","isDisabled","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport type { Theme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'highlighted'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.max,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'normal'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.max,\n borderTopLeftRadius: theme.border.radius.max,\n borderBottomLeftRadius: theme.border.radius.max,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.max,\n borderBottomRightRadius: theme.border.radius.max,\n paddingLeft: makeSpace(theme.spacing[2]),\n paddingRight: makeSpace(theme.spacing[3]),\n justifyContent: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color=\"primary\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text as=\"span\" size=\"small\" weight=\"semibold\" color=\"interactive.text.primary.normal\">\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\">\n <Text size=\"small\" weight=\"medium\" color=\"currentColor\" truncateAfterLines={1}>\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"currentColor\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n >\n <CloseIcon size=\"small\" color=\"currentColor\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","max","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","isDisabled","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
@@ -16379,7 +16379,7 @@ type BaseFilterChipProps = {
16379
16379
  */
16380
16380
  selectionType?: 'single' | 'multiple';
16381
16381
  id?: string;
16382
- onKeyDown?: (e: React.KeyboardEventHandler) => void;
16382
+ onKeyDown?: (e: React.KeyboardEvent<Element>) => void;
16383
16383
  onClick?: (e: React.MouseEventHandler) => void;
16384
16384
  onBlur?: (e: React.FocusEventHandler) => void;
16385
16385
  accessibilityProps?: Partial<AccessibilityProps>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "12.21.1",
4
+ "version": "12.21.3",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"