@razorpay/blade 11.1.0 → 11.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js +2 -2
- package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js +60 -51
- package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +10 -0
- package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js +60 -51
- package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +10 -0
- package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Blade is the Design System that powers [Razorpay](https://razorpay.com/).
|
|
|
21
21
|
## 🔗 Links
|
|
22
22
|
|
|
23
23
|
- [Docs](https://blade.razorpay.com)
|
|
24
|
-
- [Installation](https://blade.razorpay.com/?path=/docs/guides-installation--
|
|
24
|
+
- [Installation](https://blade.razorpay.com/?path=/docs/guides-installation--docs)
|
|
25
25
|
- [@razorpay/blade-old](https://github.com/razorpay/blade-old) (Deprecated, Private)
|
|
26
26
|
|
|
27
27
|
## ✨ Features
|
|
@@ -18,10 +18,10 @@ import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/a
|
|
|
18
18
|
import { getComponentId, isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
19
19
|
import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.native.js';
|
|
20
20
|
import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
21
|
-
import {
|
|
21
|
+
import { useControllableState } from '../../utils/useControllable.js';
|
|
22
22
|
import { jsx } from 'react/jsx-runtime';
|
|
23
23
|
|
|
24
|
-
var _excluded=["children","isOpen","onOpenChange","selectionType","testID"];var validDropdownChildren=[dropdownComponentIds.triggers.SelectInput,dropdownComponentIds.triggers.DropdownButton,dropdownComponentIds.triggers.DropdownLink,dropdownComponentIds.DropdownOverlay,dropdownComponentIds.triggers.AutoComplete,ComponentIds.BottomSheet];var _Dropdown=function _Dropdown(_ref){var children=_ref.children,isOpenControlled=_ref.isOpen,onOpenChange=_ref.onOpenChange,_ref$selectionType=_ref.selectionType,selectionType=_ref$selectionType===void 0?'single':_ref$selectionType,testID=_ref.testID,styledProps=_objectWithoutProperties(_ref,_excluded);var _React$useState=React__default.useState(
|
|
24
|
+
var _excluded=["children","isOpen","onOpenChange","selectionType","testID"];var validDropdownChildren=[dropdownComponentIds.triggers.SelectInput,dropdownComponentIds.triggers.DropdownButton,dropdownComponentIds.triggers.DropdownLink,dropdownComponentIds.DropdownOverlay,dropdownComponentIds.triggers.AutoComplete,ComponentIds.BottomSheet];var _Dropdown=function _Dropdown(_ref){var children=_ref.children,isOpenControlled=_ref.isOpen,onOpenChange=_ref.onOpenChange,_ref$selectionType=_ref.selectionType,selectionType=_ref$selectionType===void 0?'single':_ref$selectionType,testID=_ref.testID,styledProps=_objectWithoutProperties(_ref,_excluded);var _React$useState=React__default.useState([]),_React$useState2=_slicedToArray(_React$useState,2),options=_React$useState2[0],setOptions=_React$useState2[1];var _React$useState3=React__default.useState([]),_React$useState4=_slicedToArray(_React$useState3,2),filteredValues=_React$useState4[0],setFilteredValues=_React$useState4[1];var _React$useState5=React__default.useState([]),_React$useState6=_slicedToArray(_React$useState5,2),selectedIndices=_React$useState6[0],setSelectedIndices=_React$useState6[1];var _React$useState7=React__default.useState([]),_React$useState8=_slicedToArray(_React$useState7,2),controlledValueIndices=_React$useState8[0],setControlledValueIndices=_React$useState8[1];var _React$useState9=React__default.useState(-1),_React$useState10=_slicedToArray(_React$useState9,2),activeIndex=_React$useState10[0],setActiveIndex=_React$useState10[1];var _React$useState11=React__default.useState(-1),_React$useState12=_slicedToArray(_React$useState11,2),activeTagIndex=_React$useState12[0],setActiveTagIndex=_React$useState12[1];var _React$useState13=React__default.useState(false),_React$useState14=_slicedToArray(_React$useState13,2),shouldIgnoreBlurAnimation=_React$useState14[0],setShouldIgnoreBlurAnimation=_React$useState14[1];var _React$useState15=React__default.useState(false),_React$useState16=_slicedToArray(_React$useState15,2),hasFooterAction=_React$useState16[0],setHasFooterAction=_React$useState16[1];var _React$useState17=React__default.useState(false),_React$useState18=_slicedToArray(_React$useState17,2),hasAutoCompleteInBottomSheetHeader=_React$useState18[0],setHasAutoCompleteInBottomSheetHeader=_React$useState18[1];var _React$useState19=React__default.useState(false),_React$useState20=_slicedToArray(_React$useState19,2),isKeydownPressed=_React$useState20[0],setIsKeydownPressed=_React$useState20[1];var _React$useState21=React__default.useState(0),_React$useState22=_slicedToArray(_React$useState21,2),changeCallbackTriggerer=_React$useState22[0],setChangeCallbackTriggerer=_React$useState22[1];var _React$useState23=React__default.useState(false),_React$useState24=_slicedToArray(_React$useState23,2),isControlled=_React$useState24[0],setIsControlled=_React$useState24[1];var _React$useState25=React__default.useState(false),_React$useState26=_slicedToArray(_React$useState25,2),dropdownHasBottomSheet=_React$useState26[0],setDropdownHasBottomSheet=_React$useState26[1];var triggererWrapperRef=React__default.useRef(null);var triggererRef=React__default.useRef(null);var actionListItemRef=React__default.useRef(null);var dropdownTriggerer=React__default.useRef();var isTagDismissedRef=React__default.useRef({value:false});var visibleTagsCountRef=React__default.useRef({value:0});var dropdownContainerRef=React__default.useRef(null);var dropdownBaseId=useId('dropdown');var isDropdownOpenRef=React__default.useRef(isOpenControlled);var _useControllableState=useControllableState({value:isOpenControlled,defaultValue:false,onChange:function onChange(isOpenControlledValue){isDropdownOpenRef.current=isOpenControlledValue;onOpenChange==null?void 0:onOpenChange(isOpenControlledValue);}}),_useControllableState2=_slicedToArray(_useControllableState,2),isDropdownOpen=_useControllableState2[0],setIsDropdownOpen=_useControllableState2[1];isDropdownOpenRef.current=isDropdownOpen;var setIsOpen=function setIsOpen(isOpenValue){isDropdownOpenRef.current=isOpenValue;setIsDropdownOpen(function(){return isOpenValue;});};var close=React__default.useCallback(function(){setActiveTagIndex(-1);setIsOpen(false);},[]);React__default.Children.map(children,function(child){if(React__default.isValidElement(child)){if(__DEV__){var _getComponentId;if(!validDropdownChildren.includes((_getComponentId=getComponentId(child))!=null?_getComponentId:'')){throwBladeError({message:`Dropdown can only have one of following elements as children - \n\n ${validDropdownChildren.join(', ')} \n\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,moduleName:'Dropdown'});}}if(isValidAllowedChildren(child,dropdownComponentIds.triggers.SelectInput)){dropdownTriggerer.current='SelectInput';}if(isValidAllowedChildren(child,dropdownComponentIds.triggers.DropdownButton)){dropdownTriggerer.current='DropdownButton';}if(isValidAllowedChildren(child,dropdownComponentIds.triggers.AutoComplete)){dropdownTriggerer.current='AutoComplete';}}});var contextValue=React__default.useMemo(function(){return {isOpen:isDropdownOpen,setIsOpen:setIsOpen,close:close,selectedIndices:selectedIndices,setSelectedIndices:setSelectedIndices,controlledValueIndices:controlledValueIndices,setControlledValueIndices:setControlledValueIndices,options:options,setOptions:setOptions,filteredValues:filteredValues,setFilteredValues:setFilteredValues,activeIndex:activeIndex,setActiveIndex:setActiveIndex,activeTagIndex:activeTagIndex,setActiveTagIndex:setActiveTagIndex,visibleTagsCountRef:visibleTagsCountRef,shouldIgnoreBlurAnimation:shouldIgnoreBlurAnimation,setShouldIgnoreBlurAnimation:setShouldIgnoreBlurAnimation,isKeydownPressed:isKeydownPressed,setIsKeydownPressed:setIsKeydownPressed,dropdownBaseId:dropdownBaseId,triggererRef:triggererRef,triggererWrapperRef:triggererWrapperRef,actionListItemRef:actionListItemRef,selectionType:selectionType,hasFooterAction:hasFooterAction,setHasFooterAction:setHasFooterAction,hasAutoCompleteInBottomSheetHeader:hasAutoCompleteInBottomSheetHeader,setHasAutoCompleteInBottomSheetHeader:setHasAutoCompleteInBottomSheetHeader,dropdownTriggerer:dropdownTriggerer.current,changeCallbackTriggerer:changeCallbackTriggerer,setChangeCallbackTriggerer:setChangeCallbackTriggerer,isControlled:isControlled,setIsControlled:setIsControlled,isTagDismissedRef:isTagDismissedRef};},[isDropdownOpen,isOpenControlled,selectedIndices,controlledValueIndices,options,filteredValues,activeIndex,activeTagIndex,shouldIgnoreBlurAnimation,selectionType,hasFooterAction,isKeydownPressed,changeCallbackTriggerer,isControlled]);var BottomSheetAndDropdownGlueContextValue=React__default.useMemo(function(){return {isOpen:isDropdownOpen,dropdownHasBottomSheet:dropdownHasBottomSheet,hasAutoCompleteInBottomSheetHeader:hasAutoCompleteInBottomSheetHeader,setDropdownHasBottomSheet:setDropdownHasBottomSheet,onBottomSheetDismiss:close};},[dropdownHasBottomSheet,hasAutoCompleteInBottomSheetHeader,isDropdownOpen,close]);React__default.useEffect(function(){if(!isReactNative()){var dropdown=dropdownContainerRef.current;var documentClickHandler=function documentClickHandler(e){var _isTagDismissedRef$cu,_isTagDismissedRef$cu2;var target=e.target;if(!target||!dropdown){return;}var isOutsideClick=!dropdown.contains(target)&&!((_isTagDismissedRef$cu=isTagDismissedRef.current)!=null&&_isTagDismissedRef$cu.value);var isDropdownOpenState=isDropdownOpenRef.current;if(isOutsideClick&&isDropdownOpenState){close();}if((_isTagDismissedRef$cu2=isTagDismissedRef.current)!=null&&_isTagDismissedRef$cu2.value){isTagDismissedRef.current.value=false;}};var documentFocusHandler=function documentFocusHandler(e){var target=e.relatedTarget;setActiveIndex(-1);if(!dropdown||!target){return;}if(!dropdown.contains(target)){close();}};document.addEventListener('click',documentClickHandler);document.addEventListener('focusout',documentFocusHandler);return function(){document.removeEventListener('click',documentClickHandler);document.removeEventListener('focusout',documentFocusHandler);};}return undefined;},[]);return jsx(BottomSheetAndDropdownGlueContext.Provider,{value:BottomSheetAndDropdownGlueContextValue,children:jsx(DropdownContext.Provider,{value:contextValue,children:jsx(BaseBox,Object.assign({ref:dropdownContainerRef},metaAttribute({name:MetaConstants.Dropdown,testID:testID}),getStyledProps(styledProps),{children:jsx(BaseBox,{position:"relative",textAlign:'left',children:children})}))})});};var Dropdown=assignWithoutSideEffects(_Dropdown,{componentId:dropdownComponentIds.Dropdown});
|
|
25
25
|
|
|
26
26
|
export { Dropdown };
|
|
27
27
|
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { ContainerElementType } from '~utils/types';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): React.ReactElement => {\n const [isOpen, setIsOpen] = React.useState<boolean>(isOpenControlled ?? false);\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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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\n useDidUpdate(() => {\n onOpenChange?.(isOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpenControlled !== undefined) {\n setIsOpen(isOpenControlled);\n }\n }, [isOpenControlled]);\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen,\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 isOpen,\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,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n if (!dropdown.contains(target) && !isTagDismissedRef.current?.value) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","setIsOpen","_React$useState3","_React$useState4","options","setOptions","_React$useState5","_React$useState6","filteredValues","setFilteredValues","_React$useState7","_React$useState8","selectedIndices","setSelectedIndices","_React$useState9","_React$useState10","controlledValueIndices","setControlledValueIndices","_React$useState11","_React$useState12","activeIndex","setActiveIndex","_React$useState13","_React$useState14","activeTagIndex","setActiveTagIndex","_React$useState15","_React$useState16","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState17","_React$useState18","hasFooterAction","setHasFooterAction","_React$useState19","_React$useState20","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","useDidUpdate","useEffect","undefined","close","useCallback","Children","map","child","isValidElement","__DEV__","_getComponentId","includes","getComponentId","throwBladeError","message","join","moduleName","isValidAllowedChildren","current","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","contains","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","Object","assign","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): 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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n const isOutsideClick = !dropdown.contains(target) && !isTagDismissedRef.current?.value;\n\n const isDropdownOpenState = isDropdownOpenRef.current;\n if (isOutsideClick && isDropdownOpenState) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_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","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","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","__DEV__","_getComponentId","includes","getComponentId","throwBladeError","message","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","useEffect","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","isOutsideClick","contains","isDropdownOpenState","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","undefined","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","Object","assign","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","componentId"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import '../../utils/isValidAllowedChildren/index.js';
|
|
|
14
14
|
import '../../utils/index.js';
|
|
15
15
|
import '../../utils/metaAttribute/index.js';
|
|
16
16
|
import '../../utils/logger/index.js';
|
|
17
|
-
import {
|
|
17
|
+
import { useControllableState } from '../../utils/useControllable.js';
|
|
18
18
|
import { jsx } from 'react/jsx-runtime';
|
|
19
19
|
import { getComponentId, isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
20
20
|
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
@@ -64,63 +64,59 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
64
64
|
selectionType = _ref$selectionType === void 0 ? 'single' : _ref$selectionType,
|
|
65
65
|
testID = _ref.testID,
|
|
66
66
|
styledProps = _objectWithoutProperties(_ref, _excluded);
|
|
67
|
-
var _React$useState = React__default.useState(
|
|
67
|
+
var _React$useState = React__default.useState([]),
|
|
68
68
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
options = _React$useState2[0],
|
|
70
|
+
setOptions = _React$useState2[1];
|
|
71
71
|
var _React$useState3 = React__default.useState([]),
|
|
72
72
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
filteredValues = _React$useState4[0],
|
|
74
|
+
setFilteredValues = _React$useState4[1];
|
|
75
75
|
var _React$useState5 = React__default.useState([]),
|
|
76
76
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
selectedIndices = _React$useState6[0],
|
|
78
|
+
setSelectedIndices = _React$useState6[1];
|
|
79
79
|
var _React$useState7 = React__default.useState([]),
|
|
80
80
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var _React$useState9 = React__default.useState(
|
|
81
|
+
controlledValueIndices = _React$useState8[0],
|
|
82
|
+
setControlledValueIndices = _React$useState8[1];
|
|
83
|
+
var _React$useState9 = React__default.useState(-1),
|
|
84
84
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
activeIndex = _React$useState10[0],
|
|
86
|
+
setActiveIndex = _React$useState10[1];
|
|
87
87
|
var _React$useState11 = React__default.useState(-1),
|
|
88
88
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var _React$useState13 = React__default.useState(
|
|
89
|
+
activeTagIndex = _React$useState12[0],
|
|
90
|
+
setActiveTagIndex = _React$useState12[1];
|
|
91
|
+
var _React$useState13 = React__default.useState(false),
|
|
92
92
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
shouldIgnoreBlurAnimation = _React$useState14[0],
|
|
94
|
+
setShouldIgnoreBlurAnimation = _React$useState14[1];
|
|
95
95
|
var _React$useState15 = React__default.useState(false),
|
|
96
96
|
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
hasFooterAction = _React$useState16[0],
|
|
98
|
+
setHasFooterAction = _React$useState16[1];
|
|
99
99
|
var _React$useState17 = React__default.useState(false),
|
|
100
100
|
_React$useState18 = _slicedToArray(_React$useState17, 2),
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
hasAutoCompleteInBottomSheetHeader = _React$useState18[0],
|
|
102
|
+
setHasAutoCompleteInBottomSheetHeader = _React$useState18[1];
|
|
103
103
|
var _React$useState19 = React__default.useState(false),
|
|
104
104
|
_React$useState20 = _slicedToArray(_React$useState19, 2),
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var _React$useState21 = React__default.useState(
|
|
105
|
+
isKeydownPressed = _React$useState20[0],
|
|
106
|
+
setIsKeydownPressed = _React$useState20[1];
|
|
107
|
+
var _React$useState21 = React__default.useState(0),
|
|
108
108
|
_React$useState22 = _slicedToArray(_React$useState21, 2),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
var _React$useState23 = React__default.useState(
|
|
109
|
+
changeCallbackTriggerer = _React$useState22[0],
|
|
110
|
+
setChangeCallbackTriggerer = _React$useState22[1];
|
|
111
|
+
var _React$useState23 = React__default.useState(false),
|
|
112
112
|
_React$useState24 = _slicedToArray(_React$useState23, 2),
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
isControlled = _React$useState24[0],
|
|
114
|
+
setIsControlled = _React$useState24[1];
|
|
115
|
+
// keep track if dropdown contains bottomsheet
|
|
115
116
|
var _React$useState25 = React__default.useState(false),
|
|
116
117
|
_React$useState26 = _slicedToArray(_React$useState25, 2),
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// keep track if dropdown contains bottomsheet
|
|
120
|
-
var _React$useState27 = React__default.useState(false),
|
|
121
|
-
_React$useState28 = _slicedToArray(_React$useState27, 2),
|
|
122
|
-
dropdownHasBottomSheet = _React$useState28[0],
|
|
123
|
-
setDropdownHasBottomSheet = _React$useState28[1];
|
|
118
|
+
dropdownHasBottomSheet = _React$useState26[0],
|
|
119
|
+
setDropdownHasBottomSheet = _React$useState26[1];
|
|
124
120
|
|
|
125
121
|
/**
|
|
126
122
|
* In inputs, actual input is smaller than the visible input wrapper.
|
|
@@ -138,18 +134,29 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
138
134
|
});
|
|
139
135
|
var dropdownContainerRef = React__default.useRef(null);
|
|
140
136
|
var dropdownBaseId = useId('dropdown');
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
137
|
+
var isDropdownOpenRef = React__default.useRef(isOpenControlled);
|
|
138
|
+
var _useControllableState = useControllableState({
|
|
139
|
+
value: isOpenControlled,
|
|
140
|
+
defaultValue: false,
|
|
141
|
+
onChange: function onChange(isOpenControlledValue) {
|
|
142
|
+
isDropdownOpenRef.current = isOpenControlledValue;
|
|
143
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpenControlledValue);
|
|
144
|
+
}
|
|
145
|
+
}),
|
|
146
|
+
_useControllableState2 = _slicedToArray(_useControllableState, 2),
|
|
147
|
+
isDropdownOpen = _useControllableState2[0],
|
|
148
|
+
setIsDropdownOpen = _useControllableState2[1];
|
|
149
|
+
isDropdownOpenRef.current = isDropdownOpen;
|
|
150
|
+
var setIsOpen = function setIsOpen(isOpenValue) {
|
|
151
|
+
isDropdownOpenRef.current = isOpenValue;
|
|
152
|
+
setIsDropdownOpen(function () {
|
|
153
|
+
return isOpenValue;
|
|
154
|
+
});
|
|
155
|
+
};
|
|
150
156
|
var close = React__default.useCallback(function () {
|
|
151
157
|
setActiveTagIndex(-1);
|
|
152
158
|
setIsOpen(false);
|
|
159
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
153
160
|
}, []);
|
|
154
161
|
React__default.Children.map(children, function (child) {
|
|
155
162
|
if ( /*#__PURE__*/React__default.isValidElement(child)) {
|
|
@@ -175,7 +182,7 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
175
182
|
});
|
|
176
183
|
var contextValue = React__default.useMemo(function () {
|
|
177
184
|
return {
|
|
178
|
-
isOpen:
|
|
185
|
+
isOpen: isDropdownOpen,
|
|
179
186
|
setIsOpen: setIsOpen,
|
|
180
187
|
close: close,
|
|
181
188
|
selectedIndices: selectedIndices,
|
|
@@ -213,10 +220,10 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
213
220
|
};
|
|
214
221
|
},
|
|
215
222
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
216
|
-
[
|
|
223
|
+
[isDropdownOpen, isOpenControlled, selectedIndices, controlledValueIndices, options, filteredValues, activeIndex, activeTagIndex, shouldIgnoreBlurAnimation, selectionType, hasFooterAction, isKeydownPressed, changeCallbackTriggerer, isControlled]);
|
|
217
224
|
var BottomSheetAndDropdownGlueContextValue = React__default.useMemo(function () {
|
|
218
225
|
return {
|
|
219
|
-
isOpen:
|
|
226
|
+
isOpen: isDropdownOpen,
|
|
220
227
|
dropdownHasBottomSheet: dropdownHasBottomSheet,
|
|
221
228
|
hasAutoCompleteInBottomSheetHeader: hasAutoCompleteInBottomSheetHeader,
|
|
222
229
|
setDropdownHasBottomSheet: setDropdownHasBottomSheet,
|
|
@@ -224,7 +231,7 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
224
231
|
// Basically <BottomSheet onDismiss={onBottomSheetDismiss} />
|
|
225
232
|
onBottomSheetDismiss: close
|
|
226
233
|
};
|
|
227
|
-
}, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader,
|
|
234
|
+
}, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);
|
|
228
235
|
React__default.useEffect(function () {
|
|
229
236
|
if (!isReactNative()) {
|
|
230
237
|
var dropdown = dropdownContainerRef.current;
|
|
@@ -234,7 +241,9 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
234
241
|
if (!target || !dropdown) {
|
|
235
242
|
return;
|
|
236
243
|
}
|
|
237
|
-
|
|
244
|
+
var isOutsideClick = !dropdown.contains(target) && !((_isTagDismissedRef$cu = isTagDismissedRef.current) !== null && _isTagDismissedRef$cu !== void 0 && _isTagDismissedRef$cu.value);
|
|
245
|
+
var isDropdownOpenState = isDropdownOpenRef.current;
|
|
246
|
+
if (isOutsideClick && isDropdownOpenState) {
|
|
238
247
|
close();
|
|
239
248
|
}
|
|
240
249
|
if ((_isTagDismissedRef$cu2 = isTagDismissedRef.current) !== null && _isTagDismissedRef$cu2 !== void 0 && _isTagDismissedRef$cu2.value) {
|
|
@@ -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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { ContainerElementType } from '~utils/types';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): React.ReactElement => {\n const [isOpen, setIsOpen] = React.useState<boolean>(isOpenControlled ?? false);\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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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\n useDidUpdate(() => {\n onOpenChange?.(isOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpenControlled !== undefined) {\n setIsOpen(isOpenControlled);\n }\n }, [isOpenControlled]);\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen,\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 isOpen,\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,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n if (!dropdown.contains(target) && !isTagDismissedRef.current?.value) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","setIsOpen","_React$useState3","_React$useState4","options","setOptions","_React$useState5","_React$useState6","filteredValues","setFilteredValues","_React$useState7","_React$useState8","selectedIndices","setSelectedIndices","_React$useState9","_React$useState10","controlledValueIndices","setControlledValueIndices","_React$useState11","_React$useState12","activeIndex","setActiveIndex","_React$useState13","_React$useState14","activeTagIndex","setActiveTagIndex","_React$useState15","_React$useState16","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState17","_React$useState18","hasFooterAction","setHasFooterAction","_React$useState19","_React$useState20","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","useDidUpdate","useEffect","undefined","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","current","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","contains","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): 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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n const isOutsideClick = !dropdown.contains(target) && !isTagDismissedRef.current?.value;\n\n const isDropdownOpenState = isDropdownOpenRef.current;\n if (isOutsideClick && isDropdownOpenState) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_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","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","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","useEffect","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","isOutsideClick","contains","isDropdownOpenState","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","undefined","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","componentId"],"mappings":"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"}
|
|
@@ -133,6 +133,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
|
|
|
133
133
|
name: name,
|
|
134
134
|
type: "button",
|
|
135
135
|
onClick: function onClick(event) {
|
|
136
|
+
if (props.isDropdownTrigger) {
|
|
137
|
+
// dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
|
|
138
|
+
// we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
|
|
139
|
+
event.stopPropagation();
|
|
140
|
+
}
|
|
136
141
|
handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
|
|
137
142
|
name: name,
|
|
138
143
|
value: event
|
|
@@ -169,6 +174,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
|
|
|
169
174
|
});
|
|
170
175
|
},
|
|
171
176
|
onClick: function onClick(event) {
|
|
177
|
+
if (props.isDropdownTrigger) {
|
|
178
|
+
// dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
|
|
179
|
+
// we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
|
|
180
|
+
event.stopPropagation();
|
|
181
|
+
}
|
|
172
182
|
handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
|
|
173
183
|
name: name,
|
|
174
184
|
value: event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CACrBC,KAE+F,EACjF;AACd,EAAA,OAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKC,kBAAkB,CAAC;IACpBC,UAAU,EAAEH,KAAK,CAACI,QAAQ;IAC1BC,KAAK,EAAEL,KAAK,CAACK,KAAK;IAClBC,eAAe,EAAEN,KAAK,CAACM,eAAe;IACtCC,WAAW,EAAEP,KAAK,CAACO,WAAW;IAC9BC,MAAM,EAAER,KAAK,CAACQ,MAAM;IACpBC,kBAAkB,EAAET,KAAK,CAACS,kBAAkB;IAC5CC,MAAM,EAAEV,KAAK,CAACU,MAAM;IACpBC,YAAY,EAAEX,KAAK,CAACW,YAAY;IAChCC,SAAS,EAAEZ,KAAK,CAACY,SAAS;IAC1BC,UAAU,EAAEb,KAAK,CAACa,UAAU;IAC5BC,OAAO,EAAEd,KAAK,CAACc,OAAO;IACtBC,iBAAiB,EAAEf,KAAK,CAACe,iBAAAA;AAC3B,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACFC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,MAAM,EAAE,MAAM;AACd,IAAA,eAAe,EAAAhB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACViB,aAAa,CAAC;AACfC,MAAAA,IAAI,EAAE,QAAQ;AACdC,MAAAA,OAAO,EAAE,MAAM;AACfC,MAAAA,MAAM,EAAE,SAAS;AACjBC,MAAAA,KAAK,EAAE,4BAA4B;MACnCjB,KAAK,EAAEL,KAAK,CAACK,KAAAA;AACf,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;MACFO,SAAS,EAAEZ,KAAK,CAACY,SAAAA;KAClB,CAAA;AACD,IAAA,QAAQ,EAAE;AACRI,MAAAA,OAAO,EAAE,MAAA;KACV;AACDO,IAAAA,MAAM,EAAEvB,KAAK,CAACI,QAAQ,GAAG,aAAa,GAAG,MAAA;AAAM,GAAA,CAAA,CAAA;AAEnD,CAAC,CAAA;AAED,IAAMoB,qBAAqB,gBAAGC,MAAM,CAACC,KAAK,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,2CAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAA,CAAA,CAExC9B,iBAAiB,CAAC,CAAA;AAEpB,IAAM+B,sBAAsB,gBAAGL,MAAM,CAACM,MAAM,CAAAJ,UAAA,CAAA;EAAAC,WAAA,EAAA,4CAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAA,CAAA,CAE1C,UAAC7B,KAAK,EAAA;AAAA,EAAA,OAAAC,aAAA,CAAA,EAAA,EACHF,iBAAiB,CAACC,KAAK,CAAC,CAAA,CAAA;AAAA,CAC3B,CAAC,CAAA;AAEH,IAAMgC,6BAA6B,GAAG;AACpCC,EAAAA,IAAI,EAAE,KAAK;AACXC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,kBAAkB;AAC5BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,WAAW,EAAE,eAAe;AAC5BC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,WAAW,EAAE,SAAS;AACtBC,EAAAA,gBAAgB,EAAE,WAAW;AAC7BC,EAAAA,aAAa,EAAE,QAAQ;AACvBC,EAAAA,gBAAgB,EAAE,QAAQ;AAC1BC,EAAAA,qBAAqB,EAAE,cAAc;AACrCC,EAAAA,oBAAoB,EAAE,aAAA;AACxB,CAAC,CAAA;AAED,IAAMC,gBAGL,GAAG,SAHEA,gBAGLA,CAAAC,IAAA,EAwBCC,GAAG,EACA;AAAA,EAAA,IAvBDhB,IAAI,GAAAe,IAAA,CAAJf,IAAI;IACJhC,UAAU,GAAA+C,IAAA,CAAV/C,UAAU;IACViD,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;IACbC,cAAc,GAAAL,IAAA,CAAdK,cAAc;IACdC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,eAAe,GAAAR,IAAA,CAAfQ,eAAe;IACfC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,YAAY,GAAAV,IAAA,CAAZU,YAAY;IACZC,qBAAqB,GAAAX,IAAA,CAArBW,qBAAqB;IACrBC,0BAA0B,GAAAZ,IAAA,CAA1BY,0BAA0B;IAC1BC,kBAAkB,GAAAb,IAAA,CAAlBa,kBAAkB;IAClBC,qBAAqB,GAAAd,IAAA,CAArBc,qBAAqB;IACrBC,aAAa,GAAAf,IAAA,CAAbe,aAAa;IACbC,IAAI,GAAAhB,IAAA,CAAJgB,IAAI;IACJC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,yBAAyB,GAAAlB,IAAA,CAAzBkB,yBAAyB;IACzBC,cAAc,GAAAnB,IAAA,CAAdmB,cAAc;AACXrE,IAAAA,KAAK,GAAAsE,wBAAA,CAAApB,IAAA,EAAAqB,SAAA,CAAA,CAAA;AAIV,EAAA,IAAMC,WAAW,GAAG;AAClBC,IAAAA,MAAM,EAAE,SAAAA,MAACC,CAAAA,KAA0C,EAAW;AAC5D;AACA;MACA,IAAI,CAACN,yBAAyB,EAAE;QAC9BJ,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAClC,OAAA;AACAR,MAAAA,YAAY,KAAZA,IAAAA,IAAAA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAG;AAAErB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;KACvC;AACDE,IAAAA,OAAO,EAAE,SAAAA,OAACF,CAAAA,KAA0C,EAAW;MAC7DV,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9BV,MAAAA,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAG;AAAEnB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;KACxC;AACDG,IAAAA,SAAS,EAAE,SAAAA,SAACH,CAAAA,KAA4C,EAAK;AAC3DhB,MAAAA,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAG;AAAEvB,QAAAA,IAAI,EAAJA,IAAI;QAAE2C,GAAG,EAAEJ,KAAK,CAACI,GAAG;QAAEC,IAAI,EAAEL,KAAK,CAACK,IAAI;AAAEL,QAAAA,KAAK,EAALA,KAAAA;AAAM,OAAC,CAAC,CAAA;KACrE;AACDtE,IAAAA,QAAQ,EAAED,UAAU;AACpB6E,IAAAA,YAAY,EAAEnB,qBAAqB,KAAK,SAAS,GAAG,OAAO,GAAGA,qBAAqB;AACnFoB,IAAAA,YAAY,EAAEnB,0BAA0B,GACpC9B,6BAA6B,CAAC8B,0BAA0B,CAAC,GACzDoB,SAAAA;GACL,CAAA;AAED,EAAA,OAAOlF,KAAK,CAACmF,EAAE,KAAK,QAAQ,gBAC1BC,GAAA,CAACtD,sBAAAA;AACC;AAAA,IAAA7B,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACAkD,IAAAA,GAAG,EAAEA,GAAI;AACThB,IAAAA,IAAI,EAAEA,IAAK;AACX+B,IAAAA,IAAI,EAAC,QAAQ;AACbmB,IAAAA,OAAO,EAAE,SAAAA,OAACX,CAAAA,KAAyC,EAAW;AAC5Df,MAAAA,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAG;AAAExB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;AACzC,KAAA;AAAE,GAAA,EACEF,WAAW,CAAA,EACXxE,KAAK,CAAA,EACL+D,kBAAkB,CAAA,EAAA,EAAA,EAAA;IACtBY,KAAK,EAAE3E,KAAK,CAAC2E,KAAM;IAAAW,QAAA,eAEnBF,GAAA,CAACG,IAAI,EAAA;MACHjE,KAAK,EACHtB,KAAK,CAAC2E,KAAK,IAAI,CAACxE,UAAU,GAAG,0BAA0B,GAAG,4BAC3D;AACDqF,MAAAA,kBAAkB,EAAE,CAAE;MACtB5E,SAAS,EAAEZ,KAAK,CAACY,SAAU;MAAA0E,QAAA,EAE1BtF,KAAK,CAAC2E,KAAK,GAAG3E,KAAK,CAAC2E,KAAK,GAAG3E,KAAK,CAACyF,WAAAA;KAC/B,CAAA;GACgB,CAAA,CAAC,gBAEzBL,GAAA,CAAC5D,qBAAAA;AACC;AAAA,IAAAvB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACAkD,IAAAA,GAAG,EAAEA,GAAI;AACThB,IAAAA,IAAI,EAAEA,IAAK;AACX+B,IAAAA,IAAI,EAAEA,IAAI,KAAK,WAAW,GAAG,KAAK,GAAGA,IAAK;AAC1CwB,IAAAA,QAAQ,EAAEtC,UAAW;AACrBuC,IAAAA,SAAS,EAAEtC,aAAc;AACzBuC,IAAAA,IAAI,EAAE3B,aAAc;AACpB4B,IAAAA,SAAS,EAAEjC,YAAY,KAAK,WAAW,GAAG,KAAK,GAAGA,YAAa;IAC/DkC,QAAQ,EAAE,SAAAA,QAAAA,CAACpB,KAA0C,EAAA;AAAA,MAAA,OACnDnB,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAG;AAAEpB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;KACzC;AACDqB,IAAAA,OAAO,EAAE,SAAAA,OAACrB,CAAAA,KAA0C,EAAK;AACvDjB,MAAAA,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAG;AAAEtB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;KACvC;AACFW,IAAAA,OAAO,EAAE,SAAAA,OAACX,CAAAA,KAAK,EAAK;AAClBf,MAAAA,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAG;AAAExB,QAAAA,IAAI,EAAJA,IAAI;AAAEwC,QAAAA,KAAK,EAAED,KAAAA;AAAM,OAAC,CAAC,CAAA;KACvC;AACFL,IAAAA,cAAc,EAAEA,cAAAA;AAAe,GAAA,EAC3BG,WAAW,CACXxE,EAAAA,KAAK,CACL+D,EAAAA,kBAAkB,CACvB,CACF,CAAA;AACH,CAAC,CAAA;AAEKiC,IAAAA,eAAe,gBAAGC,wBAAwB,eAACC,cAAK,CAACC,UAAU,CAAClD,gBAAgB,CAAC,EAAE;AACnFrB,EAAAA,WAAW,EAAE,iBAAA;AACf,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","stopPropagation","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import '../../utils/isValidAllowedChildren/index.js';
|
|
|
14
14
|
import '../../utils/index.js';
|
|
15
15
|
import '../../utils/metaAttribute/index.js';
|
|
16
16
|
import '../../utils/logger/index.js';
|
|
17
|
-
import {
|
|
17
|
+
import { useControllableState } from '../../utils/useControllable.js';
|
|
18
18
|
import { jsx } from 'react/jsx-runtime';
|
|
19
19
|
import { getComponentId, isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
20
20
|
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
@@ -64,63 +64,59 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
64
64
|
selectionType = _ref$selectionType === void 0 ? 'single' : _ref$selectionType,
|
|
65
65
|
testID = _ref.testID,
|
|
66
66
|
styledProps = _objectWithoutProperties(_ref, _excluded);
|
|
67
|
-
var _React$useState = React__default.useState(
|
|
67
|
+
var _React$useState = React__default.useState([]),
|
|
68
68
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
options = _React$useState2[0],
|
|
70
|
+
setOptions = _React$useState2[1];
|
|
71
71
|
var _React$useState3 = React__default.useState([]),
|
|
72
72
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
filteredValues = _React$useState4[0],
|
|
74
|
+
setFilteredValues = _React$useState4[1];
|
|
75
75
|
var _React$useState5 = React__default.useState([]),
|
|
76
76
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
selectedIndices = _React$useState6[0],
|
|
78
|
+
setSelectedIndices = _React$useState6[1];
|
|
79
79
|
var _React$useState7 = React__default.useState([]),
|
|
80
80
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var _React$useState9 = React__default.useState(
|
|
81
|
+
controlledValueIndices = _React$useState8[0],
|
|
82
|
+
setControlledValueIndices = _React$useState8[1];
|
|
83
|
+
var _React$useState9 = React__default.useState(-1),
|
|
84
84
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
activeIndex = _React$useState10[0],
|
|
86
|
+
setActiveIndex = _React$useState10[1];
|
|
87
87
|
var _React$useState11 = React__default.useState(-1),
|
|
88
88
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var _React$useState13 = React__default.useState(
|
|
89
|
+
activeTagIndex = _React$useState12[0],
|
|
90
|
+
setActiveTagIndex = _React$useState12[1];
|
|
91
|
+
var _React$useState13 = React__default.useState(false),
|
|
92
92
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
shouldIgnoreBlurAnimation = _React$useState14[0],
|
|
94
|
+
setShouldIgnoreBlurAnimation = _React$useState14[1];
|
|
95
95
|
var _React$useState15 = React__default.useState(false),
|
|
96
96
|
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
hasFooterAction = _React$useState16[0],
|
|
98
|
+
setHasFooterAction = _React$useState16[1];
|
|
99
99
|
var _React$useState17 = React__default.useState(false),
|
|
100
100
|
_React$useState18 = _slicedToArray(_React$useState17, 2),
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
hasAutoCompleteInBottomSheetHeader = _React$useState18[0],
|
|
102
|
+
setHasAutoCompleteInBottomSheetHeader = _React$useState18[1];
|
|
103
103
|
var _React$useState19 = React__default.useState(false),
|
|
104
104
|
_React$useState20 = _slicedToArray(_React$useState19, 2),
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var _React$useState21 = React__default.useState(
|
|
105
|
+
isKeydownPressed = _React$useState20[0],
|
|
106
|
+
setIsKeydownPressed = _React$useState20[1];
|
|
107
|
+
var _React$useState21 = React__default.useState(0),
|
|
108
108
|
_React$useState22 = _slicedToArray(_React$useState21, 2),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
var _React$useState23 = React__default.useState(
|
|
109
|
+
changeCallbackTriggerer = _React$useState22[0],
|
|
110
|
+
setChangeCallbackTriggerer = _React$useState22[1];
|
|
111
|
+
var _React$useState23 = React__default.useState(false),
|
|
112
112
|
_React$useState24 = _slicedToArray(_React$useState23, 2),
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
isControlled = _React$useState24[0],
|
|
114
|
+
setIsControlled = _React$useState24[1];
|
|
115
|
+
// keep track if dropdown contains bottomsheet
|
|
115
116
|
var _React$useState25 = React__default.useState(false),
|
|
116
117
|
_React$useState26 = _slicedToArray(_React$useState25, 2),
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// keep track if dropdown contains bottomsheet
|
|
120
|
-
var _React$useState27 = React__default.useState(false),
|
|
121
|
-
_React$useState28 = _slicedToArray(_React$useState27, 2),
|
|
122
|
-
dropdownHasBottomSheet = _React$useState28[0],
|
|
123
|
-
setDropdownHasBottomSheet = _React$useState28[1];
|
|
118
|
+
dropdownHasBottomSheet = _React$useState26[0],
|
|
119
|
+
setDropdownHasBottomSheet = _React$useState26[1];
|
|
124
120
|
|
|
125
121
|
/**
|
|
126
122
|
* In inputs, actual input is smaller than the visible input wrapper.
|
|
@@ -138,18 +134,29 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
138
134
|
});
|
|
139
135
|
var dropdownContainerRef = React__default.useRef(null);
|
|
140
136
|
var dropdownBaseId = useId('dropdown');
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
137
|
+
var isDropdownOpenRef = React__default.useRef(isOpenControlled);
|
|
138
|
+
var _useControllableState = useControllableState({
|
|
139
|
+
value: isOpenControlled,
|
|
140
|
+
defaultValue: false,
|
|
141
|
+
onChange: function onChange(isOpenControlledValue) {
|
|
142
|
+
isDropdownOpenRef.current = isOpenControlledValue;
|
|
143
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpenControlledValue);
|
|
144
|
+
}
|
|
145
|
+
}),
|
|
146
|
+
_useControllableState2 = _slicedToArray(_useControllableState, 2),
|
|
147
|
+
isDropdownOpen = _useControllableState2[0],
|
|
148
|
+
setIsDropdownOpen = _useControllableState2[1];
|
|
149
|
+
isDropdownOpenRef.current = isDropdownOpen;
|
|
150
|
+
var setIsOpen = function setIsOpen(isOpenValue) {
|
|
151
|
+
isDropdownOpenRef.current = isOpenValue;
|
|
152
|
+
setIsDropdownOpen(function () {
|
|
153
|
+
return isOpenValue;
|
|
154
|
+
});
|
|
155
|
+
};
|
|
150
156
|
var close = React__default.useCallback(function () {
|
|
151
157
|
setActiveTagIndex(-1);
|
|
152
158
|
setIsOpen(false);
|
|
159
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
153
160
|
}, []);
|
|
154
161
|
React__default.Children.map(children, function (child) {
|
|
155
162
|
if ( /*#__PURE__*/React__default.isValidElement(child)) {
|
|
@@ -175,7 +182,7 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
175
182
|
});
|
|
176
183
|
var contextValue = React__default.useMemo(function () {
|
|
177
184
|
return {
|
|
178
|
-
isOpen:
|
|
185
|
+
isOpen: isDropdownOpen,
|
|
179
186
|
setIsOpen: setIsOpen,
|
|
180
187
|
close: close,
|
|
181
188
|
selectedIndices: selectedIndices,
|
|
@@ -213,10 +220,10 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
213
220
|
};
|
|
214
221
|
},
|
|
215
222
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
216
|
-
[
|
|
223
|
+
[isDropdownOpen, isOpenControlled, selectedIndices, controlledValueIndices, options, filteredValues, activeIndex, activeTagIndex, shouldIgnoreBlurAnimation, selectionType, hasFooterAction, isKeydownPressed, changeCallbackTriggerer, isControlled]);
|
|
217
224
|
var BottomSheetAndDropdownGlueContextValue = React__default.useMemo(function () {
|
|
218
225
|
return {
|
|
219
|
-
isOpen:
|
|
226
|
+
isOpen: isDropdownOpen,
|
|
220
227
|
dropdownHasBottomSheet: dropdownHasBottomSheet,
|
|
221
228
|
hasAutoCompleteInBottomSheetHeader: hasAutoCompleteInBottomSheetHeader,
|
|
222
229
|
setDropdownHasBottomSheet: setDropdownHasBottomSheet,
|
|
@@ -224,7 +231,7 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
224
231
|
// Basically <BottomSheet onDismiss={onBottomSheetDismiss} />
|
|
225
232
|
onBottomSheetDismiss: close
|
|
226
233
|
};
|
|
227
|
-
}, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader,
|
|
234
|
+
}, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);
|
|
228
235
|
React__default.useEffect(function () {
|
|
229
236
|
if (!isReactNative()) {
|
|
230
237
|
var dropdown = dropdownContainerRef.current;
|
|
@@ -234,7 +241,9 @@ var _Dropdown = function _Dropdown(_ref) {
|
|
|
234
241
|
if (!target || !dropdown) {
|
|
235
242
|
return;
|
|
236
243
|
}
|
|
237
|
-
|
|
244
|
+
var isOutsideClick = !dropdown.contains(target) && !((_isTagDismissedRef$cu = isTagDismissedRef.current) !== null && _isTagDismissedRef$cu !== void 0 && _isTagDismissedRef$cu.value);
|
|
245
|
+
var isDropdownOpenState = isDropdownOpenRef.current;
|
|
246
|
+
if (isOutsideClick && isDropdownOpenState) {
|
|
238
247
|
close();
|
|
239
248
|
}
|
|
240
249
|
if ((_isTagDismissedRef$cu2 = isTagDismissedRef.current) !== null && _isTagDismissedRef$cu2 !== void 0 && _isTagDismissedRef$cu2.value) {
|
|
@@ -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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { ContainerElementType } from '~utils/types';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): React.ReactElement => {\n const [isOpen, setIsOpen] = React.useState<boolean>(isOpenControlled ?? false);\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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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\n useDidUpdate(() => {\n onOpenChange?.(isOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpenControlled !== undefined) {\n setIsOpen(isOpenControlled);\n }\n }, [isOpenControlled]);\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen,\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 isOpen,\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,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n if (!dropdown.contains(target) && !isTagDismissedRef.current?.value) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","setIsOpen","_React$useState3","_React$useState4","options","setOptions","_React$useState5","_React$useState6","filteredValues","setFilteredValues","_React$useState7","_React$useState8","selectedIndices","setSelectedIndices","_React$useState9","_React$useState10","controlledValueIndices","setControlledValueIndices","_React$useState11","_React$useState12","activeIndex","setActiveIndex","_React$useState13","_React$useState14","activeTagIndex","setActiveTagIndex","_React$useState15","_React$useState16","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState17","_React$useState18","hasFooterAction","setHasFooterAction","_React$useState19","_React$useState20","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","useDidUpdate","useEffect","undefined","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","current","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","contains","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","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 { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\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 children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): 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 [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 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.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\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 triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\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 hasAutoCompleteInBottomSheetHeader,\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, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n const isOutsideClick = !dropdown.contains(target) && !isTagDismissedRef.current?.value;\n\n const isDropdownOpenState = isDropdownOpenRef.current;\n if (isOutsideClick && isDropdownOpenState) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\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(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_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","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_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","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","useEffect","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","isOutsideClick","contains","isDropdownOpenState","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","undefined","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","componentId"],"mappings":"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"}
|
|
@@ -133,6 +133,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
|
|
|
133
133
|
name: name,
|
|
134
134
|
type: "button",
|
|
135
135
|
onClick: function onClick(event) {
|
|
136
|
+
if (props.isDropdownTrigger) {
|
|
137
|
+
// dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
|
|
138
|
+
// we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
|
|
139
|
+
event.stopPropagation();
|
|
140
|
+
}
|
|
136
141
|
handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
|
|
137
142
|
name: name,
|
|
138
143
|
value: event
|
|
@@ -169,6 +174,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
|
|
|
169
174
|
});
|
|
170
175
|
},
|
|
171
176
|
onClick: function onClick(event) {
|
|
177
|
+
if (props.isDropdownTrigger) {
|
|
178
|
+
// dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
|
|
179
|
+
// we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
|
|
180
|
+
event.stopPropagation();
|
|
181
|
+
}
|
|
172
182
|
handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
|
|
173
183
|
name: name,
|
|
174
184
|
value: event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","stopPropagation","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":"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"}
|