@razorpay/blade 11.36.1 → 11.36.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/Dropdown/useDropdown.js +3 -1
- package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/AutoComplete.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +3 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/native/utils/fireNativeEvent/fireNativeEvent.native.js +6 -0
- package/build/lib/native/utils/fireNativeEvent/fireNativeEvent.native.js.map +1 -0
- package/build/lib/native/utils/index.js +1 -0
- package/build/lib/native/utils/index.js.map +1 -1
- package/build/lib/native/utils/platform/isBrowser.js +6 -0
- package/build/lib/native/utils/platform/isBrowser.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js +7 -1
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/useDropdown.js +7 -0
- package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +6 -0
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/AutoComplete.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +8 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/development/utils/fireNativeEvent/fireNativeEvent.web.js +30 -0
- package/build/lib/web/development/utils/fireNativeEvent/fireNativeEvent.web.js.map +1 -0
- package/build/lib/web/development/utils/fireNativeEvent/index.js +2 -0
- package/build/lib/web/development/utils/fireNativeEvent/index.js.map +1 -0
- package/build/lib/web/development/utils/index.js +1 -0
- package/build/lib/web/development/utils/index.js.map +1 -1
- package/build/lib/web/development/utils/platform/index.js +1 -0
- package/build/lib/web/development/utils/platform/index.js.map +1 -1
- package/build/lib/web/development/utils/platform/isBrowser.js +9 -0
- package/build/lib/web/development/utils/platform/isBrowser.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js +7 -1
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/useDropdown.js +7 -0
- package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +6 -0
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/AutoComplete.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +8 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/production/utils/fireNativeEvent/fireNativeEvent.web.js +30 -0
- package/build/lib/web/production/utils/fireNativeEvent/fireNativeEvent.web.js.map +1 -0
- package/build/lib/web/production/utils/fireNativeEvent/index.js +2 -0
- package/build/lib/web/production/utils/fireNativeEvent/index.js.map +1 -0
- package/build/lib/web/production/utils/index.js +1 -0
- package/build/lib/web/production/utils/index.js.map +1 -1
- package/build/lib/web/production/utils/platform/index.js +1 -0
- package/build/lib/web/production/utils/platform/index.js.map +1 -1
- package/build/lib/web/production/utils/platform/isBrowser.js +9 -0
- package/build/lib/web/production/utils/platform/isBrowser.js.map +1 -0
- package/build/types/utils/index.d.ts +3 -1
- package/build/types/utils/index.native.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/AutoComplete.tsx"],"sourcesContent":["import React from 'react';\nimport { useDropdown } from '../../Dropdown/useDropdown';\nimport type { AutoCompleteProps, BaseDropdownInputTriggerProps } from './types';\nimport { BaseDropdownInputTrigger } from './BaseDropdownInputTrigger';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BladeElementRef } from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { isReactNative } from '~utils';\n\nconst useAutoComplete = ({\n props,\n inputValue,\n setInputValue,\n getOptionValues,\n}: {\n props: AutoCompleteProps;\n setInputValue: (inputValue: string) => void;\n inputValue: string;\n getOptionValues: () => string[];\n}): {\n onTriggerKeydown: BaseDropdownInputTriggerProps['onTriggerKeydown'];\n onSelectionChange: BaseDropdownInputTriggerProps['onChange'];\n onInputValueChange: BaseDropdownInputTriggerProps['onInputValueChange'];\n} => {\n const {\n onTriggerKeydown: onBaseDropdownInputKeydown,\n isOpen,\n setIsOpen,\n selectedIndices,\n setSelectedIndices,\n setControlledValueIndices,\n isControlled,\n options,\n setFilteredValues: setGlobalFilteredValues,\n activeTagIndex,\n setActiveTagIndex,\n setActiveIndex,\n filteredValues: globalFilteredValues,\n selectionType,\n triggererRef,\n hasAutoCompleteInBottomSheetHeader,\n } = useDropdown();\n\n const resetFilters = (): void => setGlobalFilteredValues(getOptionValues());\n\n // Makes sure that first item is always in focus\n React.useEffect((): void => {\n const firstItemOptionIndex = options.findIndex(\n (option) => option.value === globalFilteredValues[0],\n );\n\n if (firstItemOptionIndex >= 0) {\n setActiveIndex(firstItemOptionIndex);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [globalFilteredValues.length, options.length]);\n\n // When input is empty or its single select, we want all items to be shown in filter on open of dropdown\n React.useEffect(() => {\n if (isOpen && !inputValue) {\n resetFilters();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, options]);\n\n React.useEffect(() => {\n if (isOpen && selectionType === 'single') {\n resetFilters();\n }\n\n // Just setting autoFocus is setting the input in focus state but its not showing keyboard active.\n // We do this in web to get around that\n if (hasAutoCompleteInBottomSheetHeader && isOpen && !isReactNative()) {\n triggererRef.current?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const onInputValueChange: BaseDropdownInputTriggerProps['onInputValueChange'] = ({\n name,\n value,\n }) => {\n setInputValue(value ?? '');\n props.onInputValueChange?.({ name, value });\n setActiveTagIndex(-1);\n\n if (!isOpen) {\n setIsOpen(true);\n }\n\n // default filtering when filteredValues is uncontrolled\n if (!props.filteredValues) {\n // eslint-disable-next-line no-lonely-if\n if (value && options && options.length > 0) {\n const filteredOptions = getOptionValues().filter((optionValue) =>\n optionValue.toLowerCase().includes(value.toLowerCase()),\n );\n setGlobalFilteredValues(filteredOptions);\n } else {\n resetFilters();\n }\n }\n };\n\n const onTriggerKeydown: BaseDropdownInputTriggerProps['onTriggerKeydown'] = (e) => {\n // Pressing backspace on empty input should remove the last tag\n if (e.key === 'Backspace' && !inputValue && activeTagIndex < 0 && selectedIndices.length > 0) {\n if (isControlled) {\n setControlledValueIndices(selectedIndices.slice(0, -1));\n } else {\n setSelectedIndices(selectedIndices.slice(0, -1));\n }\n }\n onBaseDropdownInputKeydown?.(e);\n };\n\n const onSelectionChange: BaseDropdownInputTriggerProps['onChange'] = ({ values }) => {\n if (selectionType === 'multiple') {\n setInputValue('');\n props.onInputValueChange?.({ name: props.name, value: '' });\n setActiveTagIndex(-1);\n resetFilters();\n } else {\n const displayText = options.find((option) => option.value === values[0])?.title;\n props.onInputValueChange?.({\n name: props.name,\n value: displayText,\n });\n // Use displayText as inputValue only if its not controlled by user\n if (typeof props.value === 'undefined') {\n setInputValue(displayText ?? '');\n }\n }\n props.onChange?.({ name: props.name, values });\n };\n\n return {\n onSelectionChange,\n onTriggerKeydown,\n onInputValueChange,\n };\n};\n\nconst _AutoComplete = (\n props: AutoCompleteProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const [uncontrolledInputValue, setInputValue] = React.useState('');\n const inputValue = props.inputValue ?? uncontrolledInputValue;\n\n const {\n options,\n setFilteredValues: setGlobalFilteredValues,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n onTriggerClick,\n dropdownTriggerer,\n } = useDropdown();\n\n const getOptionValues = React.useCallback(() => {\n return options.map((option) => option.value);\n }, [options]);\n\n const { onSelectionChange, onTriggerKeydown, onInputValueChange } = useAutoComplete({\n props,\n inputValue,\n setInputValue,\n getOptionValues,\n });\n\n React.useEffect(() => {\n if (dropdownTriggerer !== dropdownComponentIds.triggers.AutoComplete) {\n // When AutoComplete is mounted but not as trigger,\n // it has to be somewhere in the BottomSheet (most likely header based on UI but works in other parts too)\n setHasAutoCompleteInBottomSheetHeader(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // handles controlled filteredValues state (syncs it with our global filteredValues)\n React.useEffect(() => {\n if (props.filteredValues) {\n setGlobalFilteredValues(props.filteredValues);\n }\n }, [props.filteredValues, setGlobalFilteredValues]);\n\n // set autoFocus to true when used inside bottomsheet\n const defaultAutoFocusState = hasAutoCompleteInBottomSheetHeader ? true : undefined;\n\n return (\n <BaseBox position=\"relative\">\n <BaseDropdownInputTrigger\n {...props}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={props.autoFocus ?? defaultAutoFocusState}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n onChange={onSelectionChange}\n isSelectInput={false}\n inputValue={inputValue}\n syncInputValueWithSelection={(value) => {\n if (!value) {\n setInputValue('');\n return;\n }\n const selectedOption = options.find((option) => option.value === value);\n setInputValue(selectedOption?.title ?? '');\n }}\n onTriggerKeydown={onTriggerKeydown}\n onInputValueChange={onInputValueChange}\n onTriggerClick={(triggerEvent) => {\n if (!hasAutoCompleteInBottomSheetHeader) {\n // we don't want clicking on autocomplete to open / close Dropdown when it is used inside BottomSheet's header\n onTriggerClick();\n }\n props?.onClick?.(triggerEvent);\n }}\n />\n </BaseBox>\n );\n};\n\n/**\n * ### AutoComplete\n *\n * Extension on top of SelectInput which allows you type and filter between ActionList items\n *\n * To be used in combination of `Dropdown` and `ActionList` component\n *\n * ---\n *\n * #### Usage in Desktop\n *\n * ```diff\n * <Dropdown>\n * + <AutoComplete label=\"Select Fruits\" />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * #### Usage in Mobile\n *\n * ```diff\n * <Dropdown>\n * + <SelectInput label=\"Select Fruits\" />\n * <BottomSheet>\n * <BottomSheetHeader>\n * + <AutoComplete label=\"Select Fruits\" />\n * </BottomSheetHeader>\n * <BottomSheetBody>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </BottomSheetBody>\n * </BottomSheet>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-autocomplete--with-single-select AutoComplete Documentation}.\n */\nconst AutoComplete = assignWithoutSideEffects(React.forwardRef(_AutoComplete), {\n componentId: dropdownComponentIds.triggers.AutoComplete,\n});\n\nexport { AutoComplete };\n"],"names":["useAutoComplete","_ref","props","inputValue","setInputValue","getOptionValues","_useDropdown","useDropdown","onBaseDropdownInputKeydown","onTriggerKeydown","isOpen","setIsOpen","selectedIndices","setSelectedIndices","setControlledValueIndices","isControlled","options","setGlobalFilteredValues","setFilteredValues","activeTagIndex","setActiveTagIndex","setActiveIndex","globalFilteredValues","filteredValues","selectionType","triggererRef","hasAutoCompleteInBottomSheetHeader","resetFilters","React","useEffect","firstItemOptionIndex","findIndex","option","value","length","isReactNative","_triggererRef$current","current","focus","onInputValueChange","_ref2","_props$onInputValueCh","name","call","filteredOptions","filter","optionValue","toLowerCase","includes","e","key","slice","onSelectionChange","_ref3","_props$onChange","values","_props$onInputValueCh2","_options$find","_props$onInputValueCh3","displayText","find","title","onChange","_AutoComplete","ref","_props$inputValue","_props$autoFocus","_React$useState","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","_useDropdown2","setHasAutoCompleteInBottomSheetHeader","onTriggerClick","dropdownTriggerer","useCallback","map","_useAutoComplete","dropdownComponentIds","triggers","AutoComplete","defaultAutoFocusState","undefined","_jsx","BaseBox","position","children","BaseDropdownInputTrigger","_objectSpread","autoFocus","isSelectInput","syncInputValueWithSelection","_selectedOption$title","selectedOption","triggerEvent","_props$onClick","onClick","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutoComplete.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/AutoComplete.tsx"],"sourcesContent":["import React from 'react';\nimport { useDropdown } from '../../Dropdown/useDropdown';\nimport type { AutoCompleteProps, BaseDropdownInputTriggerProps } from './types';\nimport { BaseDropdownInputTrigger } from './BaseDropdownInputTrigger';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BladeElementRef } from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { isReactNative } from '~utils';\n\nconst useAutoComplete = ({\n props,\n inputValue,\n setInputValue,\n getOptionValues,\n}: {\n props: AutoCompleteProps;\n setInputValue: (inputValue: string) => void;\n inputValue: string;\n getOptionValues: () => string[];\n}): {\n onTriggerKeydown: BaseDropdownInputTriggerProps['onTriggerKeydown'];\n onSelectionChange: BaseDropdownInputTriggerProps['onChange'];\n onInputValueChange: BaseDropdownInputTriggerProps['onInputValueChange'];\n} => {\n const {\n onTriggerKeydown: onBaseDropdownInputKeydown,\n isOpen,\n setIsOpen,\n selectedIndices,\n setSelectedIndices,\n setControlledValueIndices,\n isControlled,\n options,\n setFilteredValues: setGlobalFilteredValues,\n activeTagIndex,\n setActiveTagIndex,\n setActiveIndex,\n filteredValues: globalFilteredValues,\n selectionType,\n triggererRef,\n hasAutoCompleteInBottomSheetHeader,\n } = useDropdown();\n\n const resetFilters = (): void => setGlobalFilteredValues(getOptionValues());\n\n // Makes sure that first item is always in focus\n React.useEffect((): void => {\n const firstItemOptionIndex = options.findIndex(\n (option) => option.value === globalFilteredValues[0],\n );\n\n if (firstItemOptionIndex >= 0) {\n setActiveIndex(firstItemOptionIndex);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [globalFilteredValues.length, options.length]);\n\n // When input is empty or its single select, we want all items to be shown in filter on open of dropdown\n React.useEffect(() => {\n if (isOpen && !inputValue) {\n resetFilters();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, options]);\n\n React.useEffect(() => {\n if (isOpen && selectionType === 'single') {\n resetFilters();\n }\n\n // Just setting autoFocus is setting the input in focus state but its not showing keyboard active.\n // We do this in web to get around that\n if (hasAutoCompleteInBottomSheetHeader && isOpen && !isReactNative()) {\n triggererRef.current?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const onInputValueChange: BaseDropdownInputTriggerProps['onInputValueChange'] = ({\n name,\n value,\n }) => {\n setInputValue(value ?? '');\n props.onInputValueChange?.({ name, value });\n setActiveTagIndex(-1);\n\n if (!isOpen) {\n setIsOpen(true);\n }\n\n // default filtering when filteredValues is uncontrolled\n if (!props.filteredValues) {\n // eslint-disable-next-line no-lonely-if\n if (value && options && options.length > 0) {\n const filteredOptions = getOptionValues().filter((optionValue) =>\n optionValue.toLowerCase().includes(value.toLowerCase()),\n );\n setGlobalFilteredValues(filteredOptions);\n } else {\n resetFilters();\n }\n }\n };\n\n const onTriggerKeydown: BaseDropdownInputTriggerProps['onTriggerKeydown'] = (e) => {\n // Pressing backspace on empty input should remove the last tag\n if (e.key === 'Backspace' && !inputValue && activeTagIndex < 0 && selectedIndices.length > 0) {\n if (isControlled) {\n setControlledValueIndices(selectedIndices.slice(0, -1));\n } else {\n setSelectedIndices(selectedIndices.slice(0, -1));\n }\n }\n onBaseDropdownInputKeydown?.(e);\n };\n\n const onSelectionChange: BaseDropdownInputTriggerProps['onChange'] = ({ values }) => {\n if (selectionType === 'multiple') {\n setInputValue('');\n props.onInputValueChange?.({ name: props.name, value: '' });\n setActiveTagIndex(-1);\n resetFilters();\n } else {\n const displayText = options.find((option) => option.value === values[0])?.title;\n props.onInputValueChange?.({\n name: props.name,\n value: displayText,\n });\n // Use displayText as inputValue only if its not controlled by user\n if (typeof props.value === 'undefined') {\n setInputValue(displayText ?? '');\n }\n }\n props.onChange?.({ name: props.name, values });\n };\n return {\n onSelectionChange,\n onTriggerKeydown,\n onInputValueChange,\n };\n};\n\nconst _AutoComplete = (\n props: AutoCompleteProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const [uncontrolledInputValue, setInputValue] = React.useState('');\n const inputValue = props.inputValue ?? uncontrolledInputValue;\n\n const {\n options,\n setFilteredValues: setGlobalFilteredValues,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n onTriggerClick,\n dropdownTriggerer,\n } = useDropdown();\n\n const getOptionValues = React.useCallback(() => {\n return options.map((option) => option.value);\n }, [options]);\n\n const { onSelectionChange, onTriggerKeydown, onInputValueChange } = useAutoComplete({\n props,\n inputValue,\n setInputValue,\n getOptionValues,\n });\n\n React.useEffect(() => {\n if (dropdownTriggerer !== dropdownComponentIds.triggers.AutoComplete) {\n // When AutoComplete is mounted but not as trigger,\n // it has to be somewhere in the BottomSheet (most likely header based on UI but works in other parts too)\n setHasAutoCompleteInBottomSheetHeader(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // handles controlled filteredValues state (syncs it with our global filteredValues)\n React.useEffect(() => {\n if (props.filteredValues) {\n setGlobalFilteredValues(props.filteredValues);\n }\n }, [props.filteredValues, setGlobalFilteredValues]);\n\n // set autoFocus to true when used inside bottomsheet\n const defaultAutoFocusState = hasAutoCompleteInBottomSheetHeader ? true : undefined;\n\n return (\n <BaseBox position=\"relative\">\n <BaseDropdownInputTrigger\n {...props}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={props.autoFocus ?? defaultAutoFocusState}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n onChange={onSelectionChange}\n isSelectInput={false}\n inputValue={inputValue}\n syncInputValueWithSelection={(value) => {\n if (!value) {\n setInputValue('');\n return;\n }\n const selectedOption = options.find((option) => option.value === value);\n setInputValue(selectedOption?.title ?? '');\n }}\n onTriggerKeydown={onTriggerKeydown}\n onInputValueChange={onInputValueChange}\n onTriggerClick={(triggerEvent) => {\n if (!hasAutoCompleteInBottomSheetHeader) {\n // we don't want clicking on autocomplete to open / close Dropdown when it is used inside BottomSheet's header\n onTriggerClick();\n }\n props?.onClick?.(triggerEvent);\n }}\n />\n </BaseBox>\n );\n};\n\n/**\n * ### AutoComplete\n *\n * Extension on top of SelectInput which allows you type and filter between ActionList items\n *\n * To be used in combination of `Dropdown` and `ActionList` component\n *\n * ---\n *\n * #### Usage in Desktop\n *\n * ```diff\n * <Dropdown>\n * + <AutoComplete label=\"Select Fruits\" />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * #### Usage in Mobile\n *\n * ```diff\n * <Dropdown>\n * + <SelectInput label=\"Select Fruits\" />\n * <BottomSheet>\n * <BottomSheetHeader>\n * + <AutoComplete label=\"Select Fruits\" />\n * </BottomSheetHeader>\n * <BottomSheetBody>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </BottomSheetBody>\n * </BottomSheet>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-autocomplete--with-single-select AutoComplete Documentation}.\n */\nconst AutoComplete = assignWithoutSideEffects(React.forwardRef(_AutoComplete), {\n componentId: dropdownComponentIds.triggers.AutoComplete,\n});\n\nexport { AutoComplete };\n"],"names":["useAutoComplete","_ref","props","inputValue","setInputValue","getOptionValues","_useDropdown","useDropdown","onBaseDropdownInputKeydown","onTriggerKeydown","isOpen","setIsOpen","selectedIndices","setSelectedIndices","setControlledValueIndices","isControlled","options","setGlobalFilteredValues","setFilteredValues","activeTagIndex","setActiveTagIndex","setActiveIndex","globalFilteredValues","filteredValues","selectionType","triggererRef","hasAutoCompleteInBottomSheetHeader","resetFilters","React","useEffect","firstItemOptionIndex","findIndex","option","value","length","isReactNative","_triggererRef$current","current","focus","onInputValueChange","_ref2","_props$onInputValueCh","name","call","filteredOptions","filter","optionValue","toLowerCase","includes","e","key","slice","onSelectionChange","_ref3","_props$onChange","values","_props$onInputValueCh2","_options$find","_props$onInputValueCh3","displayText","find","title","onChange","_AutoComplete","ref","_props$inputValue","_props$autoFocus","_React$useState","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","_useDropdown2","setHasAutoCompleteInBottomSheetHeader","onTriggerClick","dropdownTriggerer","useCallback","map","_useAutoComplete","dropdownComponentIds","triggers","AutoComplete","defaultAutoFocusState","undefined","_jsx","BaseBox","position","children","BaseDropdownInputTrigger","_objectSpread","autoFocus","isSelectInput","syncInputValueWithSelection","_selectedOption$title","selectedOption","triggerEvent","_props$onClick","onClick","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
|
package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js
CHANGED
|
@@ -12,7 +12,10 @@ import { useFirstRender } from '../../../utils/useFirstRender.js';
|
|
|
12
12
|
import { useTableContext } from '../../Table/TableContext.js';
|
|
13
13
|
import { rowDensityToIsTableInputCellMapping, tableEditableCellRowDensityToInputSizeMap, validationStateToInputTrailingIconMap } from '../../Table/tokens.js';
|
|
14
14
|
import { useTableEditableCell } from '../../Table/TableEditableCellContext.js';
|
|
15
|
+
import '../../../utils/fireNativeEvent/index.js';
|
|
15
16
|
import { jsx } from 'react/jsx-runtime';
|
|
17
|
+
import { isBrowser } from '../../../utils/platform/isBrowser.js';
|
|
18
|
+
import { fireNativeEvent } from '../../../utils/fireNativeEvent/fireNativeEvent.web.js';
|
|
16
19
|
import { isReactNative } from '../../../utils/platform/isReactNative.js';
|
|
17
20
|
import { BaseInput } from '../BaseInput/BaseInput.js';
|
|
18
21
|
import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
|
|
@@ -108,6 +111,9 @@ var useControlledDropdownInput = function useControlledDropdownInput(props) {
|
|
|
108
111
|
name: props.name,
|
|
109
112
|
values: getValuesArrayFromIndices()
|
|
110
113
|
});
|
|
114
|
+
if (isBrowser()) {
|
|
115
|
+
fireNativeEvent(props.triggererRef, ['change', 'input']);
|
|
116
|
+
}
|
|
111
117
|
}
|
|
112
118
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
113
119
|
}, [changeCallbackTriggerer]);
|
|
@@ -161,7 +167,8 @@ var _BaseDropdownInputTrigger = function _BaseDropdownInputTrigger(props, ref) {
|
|
|
161
167
|
value: props.value,
|
|
162
168
|
defaultValue: props.defaultValue,
|
|
163
169
|
syncInputValueWithSelection: props.syncInputValueWithSelection,
|
|
164
|
-
isSelectInput: props.isSelectInput
|
|
170
|
+
isSelectInput: props.isSelectInput,
|
|
171
|
+
triggererRef: triggererRef
|
|
165
172
|
});
|
|
166
173
|
var getValue = function getValue() {
|
|
167
174
|
var prefix = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseDropdownInputTrigger.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseInput } from '../BaseInput';\nimport type { BaseInputProps } from '../BaseInput';\nimport { InputChevronIcon } from './InputChevronIcon';\nimport type { BaseDropdownInputTriggerProps } from './types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { isReactNative } from '~utils';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { getTagsGroup } from '~components/Tag/getTagsGroup';\nimport type { BladeElementRef } from '~utils/types';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { useTableContext } from '~components/Table/TableContext';\nimport {\n rowDensityToIsTableInputCellMapping,\n tableEditableCellRowDensityToInputSizeMap,\n validationStateToInputTrailingIconMap,\n} from '~components/Table/tokens';\nimport { useTableEditableCell } from '~components/Table/TableEditableCellContext';\n\nconst useControlledDropdownInput = (\n props: Pick<\n BaseDropdownInputTriggerProps,\n | 'onChange'\n | 'name'\n | 'value'\n | 'defaultValue'\n | 'onInputValueChange'\n | 'syncInputValueWithSelection'\n | 'isSelectInput'\n >,\n): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nconst _BaseDropdownInputTrigger = (\n props: BaseDropdownInputTriggerProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n isOpen,\n activeTagIndex,\n setActiveTagIndex,\n displayValue,\n selectionType,\n dropdownTriggerer,\n dropdownBaseId,\n selectedIndices,\n triggererRef,\n triggererWrapperRef,\n isTagDismissedRef,\n onTriggerClick,\n value,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n activeIndex,\n hasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n options,\n removeOption,\n setChangeCallbackTriggerer,\n changeCallbackTriggerer,\n } = useDropdown();\n const { rowDensity } = useTableContext();\n const { isInsideTableEditableCell } = useTableEditableCell();\n\n const dropdownTriggerPlaceholder = props.placeholder ?? 'Select Option';\n const isAutoCompleteInHeader = !props.isSelectInput && hasAutoCompleteInBottomSheetHeader;\n\n const getShowAllTags = React.useCallback((): boolean => {\n if (hasAutoCompleteInBottomSheetHeader) {\n // When AutoComplete is in bottomsheet header, we never want to show all tags in outer select input\n if (props.isSelectInput) {\n return false;\n }\n\n // ... And we always want to show all tags in inner AutoComplete\n return true;\n }\n\n return isOpen;\n }, [hasAutoCompleteInBottomSheetHeader, props.isSelectInput, isOpen]);\n\n useControlledDropdownInput({\n onChange: props.onChange,\n name: props.name,\n value: props.value,\n defaultValue: props.defaultValue,\n syncInputValueWithSelection: props.syncInputValueWithSelection,\n isSelectInput: props.isSelectInput,\n });\n\n const getValue = (): string | undefined => {\n let prefix = '';\n if (props.labelPosition === 'inside-input' && props.label) {\n prefix = `${props.label}: `;\n }\n\n if (props.isSelectInput) {\n if (selectionType === 'single') {\n return `${prefix}${displayValue}`;\n }\n\n // In multiselect, we return tags so no display value is required\n return undefined;\n }\n\n // In AutoComplete, input has a special value too\n return props.inputValue;\n };\n\n const getTags = React.useMemo(\n () => ({ size }: { size: NonNullable<BaseInputProps['size']> }) => {\n if (selectionType === 'single') {\n return undefined;\n }\n\n return getTagsGroup({\n size,\n tags: selectedIndices.map((selectedIndex) => options[selectedIndex]?.title),\n activeTagIndex,\n isDisabled: props.isDisabled,\n onDismiss: ({ tagIndex }) => {\n if (isTagDismissedRef.current) {\n isTagDismissedRef.current.value = true;\n }\n\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n\n removeOption(selectedIndices[tagIndex]);\n setChangeCallbackTriggerer(Number(changeCallbackTriggerer) + 1);\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedIndices, selectionType, activeTagIndex, changeCallbackTriggerer, options],\n );\n\n const tableInputProps: Partial<BaseInputProps> = {\n isTableInputCell: rowDensityToIsTableInputCellMapping[rowDensity],\n id: 'table-editable-cell-input',\n size: tableEditableCellRowDensityToInputSizeMap[rowDensity],\n trailingIcon: validationStateToInputTrailingIconMap[props.validationState ?? 'none'],\n showHintsAsTooltip: true,\n };\n\n const isValidationStateNone =\n props.validationState === 'none' || props.validationState === undefined;\n\n return (\n <BaseInput\n as={props.isSelectInput ? 'button' : 'input'}\n ref={\n (!isReactNative()\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (node: any) => {\n triggererRef.current = node;\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n }\n : null) as never\n }\n isDropdownTrigger={true}\n setInputWrapperRef={(wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }}\n maxTagRows={props.maxRows ?? 'single'}\n tags={getTags({ size: props.size || 'medium' })}\n showAllTags={getShowAllTags()}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n textAlign=\"left\"\n // Form Props\n label={props.label as string}\n placeholder={\n selectionType === 'multiple' && selectedIndices.length > 0\n ? undefined\n : dropdownTriggerPlaceholder\n }\n hideLabelText={props.label?.length === 0}\n accessibilityLabel={props.accessibilityLabel}\n labelPosition={props.labelPosition === 'inside-input' ? undefined : props.labelPosition}\n isLabelInsideInput={props.labelPosition === 'inside-input'}\n necessityIndicator={props.necessityIndicator}\n autoCompleteSuggestionType=\"none\"\n validationState={props.validationState}\n helpText={props.helpText}\n errorText={props.errorText}\n successText={props.successText}\n name={props.name}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n prefix={props.prefix}\n suffix={props.suffix}\n autoFocus={props.autoFocus} // eslint-disable-line jsx-a11y/no-autofocus\n value={getValue()}\n onClick={(e) => {\n if (props.isDisabled) {\n return;\n }\n props.onTriggerClick?.(e);\n }}\n onFocus={props.onFocus}\n onBlur={({ name }) => {\n props.onBlur?.({ name, value });\n }}\n leadingIcon={props.icon}\n // Meta Props\n componentName={props.isSelectInput ? MetaConstants.SelectInput : MetaConstants.AutoComplete}\n testID={props.testID}\n // a11y Props\n id={`${dropdownBaseId}-trigger`}\n labelId={`${dropdownBaseId}-label`}\n hasPopup={getActionListContainerRole(hasFooterAction, dropdownTriggerer)}\n isPopupExpanded={isOpen}\n activeDescendant={activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined}\n popupId={`${dropdownBaseId}-actionlist`}\n // Special Props for Unique behaviour between Select and AutoComplete\n onChange={props.isSelectInput ? undefined : props.onInputValueChange}\n onKeyDown={props.onTriggerKeydown}\n size={props.size}\n onTrailingInteractionElementClick={() => {\n if (!props.isDisabled) {\n // Icon onClicks to the SelectInput itself\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n onTriggerClick();\n }\n }}\n trailingInteractionElement={\n isAutoCompleteInHeader || (isInsideTableEditableCell && !isValidationStateNone) ? null : (\n <InputChevronIcon isDisabled={props.isDisabled} isOpen={isOpen} />\n )\n }\n {...(isInsideTableEditableCell ? tableInputProps : undefined)}\n />\n );\n};\n\nconst BaseDropdownInputTrigger = React.forwardRef(_BaseDropdownInputTrigger);\n\nexport { BaseDropdownInputTrigger };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","_BaseDropdownInputTrigger","ref","_props$placeholder","_props$validationStat","_props$maxRows","_props$label","_useDropdown2","isOpen","activeTagIndex","setActiveTagIndex","displayValue","dropdownTriggerer","dropdownBaseId","triggererRef","triggererWrapperRef","isTagDismissedRef","onTriggerClick","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","activeIndex","hasFooterAction","hasAutoCompleteInBottomSheetHeader","removeOption","setChangeCallbackTriggerer","_useTableContext","useTableContext","rowDensity","_useTableEditableCell","useTableEditableCell","isInsideTableEditableCell","dropdownTriggerPlaceholder","placeholder","isAutoCompleteInHeader","getShowAllTags","useCallback","getValue","prefix","labelPosition","label","concat","inputValue","getTags","useMemo","_ref","size","getTagsGroup","tags","selectedIndex","_options$selectedInde","title","isDisabled","onDismiss","_ref2","tagIndex","current","isReactNative","_triggererRef$current","focus","Number","tableInputProps","isTableInputCell","rowDensityToIsTableInputCellMapping","id","tableEditableCellRowDensityToInputSizeMap","trailingIcon","validationStateToInputTrailingIconMap","validationState","showHintsAsTooltip","isValidationStateNone","_jsx","BaseInput","_objectSpread","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","_props$onTriggerClick","onFocus","onBlur","_ref3","_props$onBlur","leadingIcon","icon","componentName","MetaConstants","SelectInput","AutoComplete","testID","labelId","hasPopup","getActionListContainerRole","isPopupExpanded","activeDescendant","popupId","onInputValueChange","onKeyDown","onTriggerKeydown","onTrailingInteractionElementClick","_triggererRef$current2","trailingInteractionElement","InputChevronIcon","BaseDropdownInputTrigger","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseDropdownInputTrigger.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseInput } from '../BaseInput';\nimport type { BaseInputProps } from '../BaseInput';\nimport { InputChevronIcon } from './InputChevronIcon';\nimport type { BaseDropdownInputTriggerProps, useControlledDropdownInputProps } from './types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { isReactNative, isBrowser } from '~utils';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { getTagsGroup } from '~components/Tag/getTagsGroup';\nimport type { BladeElementRef } from '~utils/types';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { useTableContext } from '~components/Table/TableContext';\nimport {\n rowDensityToIsTableInputCellMapping,\n tableEditableCellRowDensityToInputSizeMap,\n validationStateToInputTrailingIconMap,\n} from '~components/Table/tokens';\nimport { useTableEditableCell } from '~components/Table/TableEditableCellContext';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\nconst useControlledDropdownInput = (props: useControlledDropdownInputProps): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n if (isBrowser()) {\n fireNativeEvent(props.triggererRef, ['change', 'input']);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nconst _BaseDropdownInputTrigger = (\n props: BaseDropdownInputTriggerProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n isOpen,\n activeTagIndex,\n setActiveTagIndex,\n displayValue,\n selectionType,\n dropdownTriggerer,\n dropdownBaseId,\n selectedIndices,\n triggererRef,\n triggererWrapperRef,\n isTagDismissedRef,\n onTriggerClick,\n value,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n activeIndex,\n hasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n options,\n removeOption,\n setChangeCallbackTriggerer,\n changeCallbackTriggerer,\n } = useDropdown();\n const { rowDensity } = useTableContext();\n const { isInsideTableEditableCell } = useTableEditableCell();\n\n const dropdownTriggerPlaceholder = props.placeholder ?? 'Select Option';\n const isAutoCompleteInHeader = !props.isSelectInput && hasAutoCompleteInBottomSheetHeader;\n\n const getShowAllTags = React.useCallback((): boolean => {\n if (hasAutoCompleteInBottomSheetHeader) {\n // When AutoComplete is in bottomsheet header, we never want to show all tags in outer select input\n if (props.isSelectInput) {\n return false;\n }\n\n // ... And we always want to show all tags in inner AutoComplete\n return true;\n }\n\n return isOpen;\n }, [hasAutoCompleteInBottomSheetHeader, props.isSelectInput, isOpen]);\n\n useControlledDropdownInput({\n onChange: props.onChange,\n name: props.name,\n value: props.value,\n defaultValue: props.defaultValue,\n syncInputValueWithSelection: props.syncInputValueWithSelection,\n isSelectInput: props.isSelectInput,\n triggererRef,\n });\n\n const getValue = (): string | undefined => {\n let prefix = '';\n if (props.labelPosition === 'inside-input' && props.label) {\n prefix = `${props.label}: `;\n }\n\n if (props.isSelectInput) {\n if (selectionType === 'single') {\n return `${prefix}${displayValue}`;\n }\n\n // In multiselect, we return tags so no display value is required\n return undefined;\n }\n\n // In AutoComplete, input has a special value too\n return props.inputValue;\n };\n\n const getTags = React.useMemo(\n () => ({ size }: { size: NonNullable<BaseInputProps['size']> }) => {\n if (selectionType === 'single') {\n return undefined;\n }\n\n return getTagsGroup({\n size,\n tags: selectedIndices.map((selectedIndex) => options[selectedIndex]?.title),\n activeTagIndex,\n isDisabled: props.isDisabled,\n onDismiss: ({ tagIndex }) => {\n if (isTagDismissedRef.current) {\n isTagDismissedRef.current.value = true;\n }\n\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n\n removeOption(selectedIndices[tagIndex]);\n setChangeCallbackTriggerer(Number(changeCallbackTriggerer) + 1);\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedIndices, selectionType, activeTagIndex, changeCallbackTriggerer, options],\n );\n\n const tableInputProps: Partial<BaseInputProps> = {\n isTableInputCell: rowDensityToIsTableInputCellMapping[rowDensity],\n id: 'table-editable-cell-input',\n size: tableEditableCellRowDensityToInputSizeMap[rowDensity],\n trailingIcon: validationStateToInputTrailingIconMap[props.validationState ?? 'none'],\n showHintsAsTooltip: true,\n };\n\n const isValidationStateNone =\n props.validationState === 'none' || props.validationState === undefined;\n\n return (\n <BaseInput\n as={props.isSelectInput ? 'button' : 'input'}\n ref={\n (!isReactNative()\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (node: any) => {\n triggererRef.current = node;\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n }\n : null) as never\n }\n isDropdownTrigger={true}\n setInputWrapperRef={(wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }}\n maxTagRows={props.maxRows ?? 'single'}\n tags={getTags({ size: props.size || 'medium' })}\n showAllTags={getShowAllTags()}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n textAlign=\"left\"\n // Form Props\n label={props.label as string}\n placeholder={\n selectionType === 'multiple' && selectedIndices.length > 0\n ? undefined\n : dropdownTriggerPlaceholder\n }\n hideLabelText={props.label?.length === 0}\n accessibilityLabel={props.accessibilityLabel}\n labelPosition={props.labelPosition === 'inside-input' ? undefined : props.labelPosition}\n isLabelInsideInput={props.labelPosition === 'inside-input'}\n necessityIndicator={props.necessityIndicator}\n autoCompleteSuggestionType=\"none\"\n validationState={props.validationState}\n helpText={props.helpText}\n errorText={props.errorText}\n successText={props.successText}\n name={props.name}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n prefix={props.prefix}\n suffix={props.suffix}\n autoFocus={props.autoFocus} // eslint-disable-line jsx-a11y/no-autofocus\n value={getValue()}\n onClick={(e) => {\n if (props.isDisabled) {\n return;\n }\n props.onTriggerClick?.(e);\n }}\n onFocus={props.onFocus}\n onBlur={({ name }) => {\n props.onBlur?.({ name, value });\n }}\n leadingIcon={props.icon}\n // Meta Props\n componentName={props.isSelectInput ? MetaConstants.SelectInput : MetaConstants.AutoComplete}\n testID={props.testID}\n // a11y Props\n id={`${dropdownBaseId}-trigger`}\n labelId={`${dropdownBaseId}-label`}\n hasPopup={getActionListContainerRole(hasFooterAction, dropdownTriggerer)}\n isPopupExpanded={isOpen}\n activeDescendant={activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined}\n popupId={`${dropdownBaseId}-actionlist`}\n // Special Props for Unique behaviour between Select and AutoComplete\n onChange={props.isSelectInput ? undefined : props.onInputValueChange}\n onKeyDown={props.onTriggerKeydown}\n size={props.size}\n onTrailingInteractionElementClick={() => {\n if (!props.isDisabled) {\n // Icon onClicks to the SelectInput itself\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n onTriggerClick();\n }\n }}\n trailingInteractionElement={\n isAutoCompleteInHeader || (isInsideTableEditableCell && !isValidationStateNone) ? null : (\n <InputChevronIcon isDisabled={props.isDisabled} isOpen={isOpen} />\n )\n }\n {...(isInsideTableEditableCell ? tableInputProps : undefined)}\n />\n );\n};\n\nconst BaseDropdownInputTrigger = React.forwardRef(_BaseDropdownInputTrigger);\n\nexport { BaseDropdownInputTrigger };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","isBrowser","fireNativeEvent","triggererRef","_BaseDropdownInputTrigger","ref","_props$placeholder","_props$validationStat","_props$maxRows","_props$label","_useDropdown2","isOpen","activeTagIndex","setActiveTagIndex","displayValue","dropdownTriggerer","dropdownBaseId","triggererWrapperRef","isTagDismissedRef","onTriggerClick","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","activeIndex","hasFooterAction","hasAutoCompleteInBottomSheetHeader","removeOption","setChangeCallbackTriggerer","_useTableContext","useTableContext","rowDensity","_useTableEditableCell","useTableEditableCell","isInsideTableEditableCell","dropdownTriggerPlaceholder","placeholder","isAutoCompleteInHeader","getShowAllTags","useCallback","getValue","prefix","labelPosition","label","concat","inputValue","getTags","useMemo","_ref","size","getTagsGroup","tags","selectedIndex","_options$selectedInde","title","isDisabled","onDismiss","_ref2","tagIndex","current","isReactNative","_triggererRef$current","focus","Number","tableInputProps","isTableInputCell","rowDensityToIsTableInputCellMapping","id","tableEditableCellRowDensityToInputSizeMap","trailingIcon","validationStateToInputTrailingIconMap","validationState","showHintsAsTooltip","isValidationStateNone","_jsx","BaseInput","_objectSpread","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","_props$onTriggerClick","onFocus","onBlur","_ref3","_props$onBlur","leadingIcon","icon","componentName","MetaConstants","SelectInput","AutoComplete","testID","labelId","hasPopup","getActionListContainerRole","isPopupExpanded","activeDescendant","popupId","onInputValueChange","onKeyDown","onTriggerKeydown","onTrailingInteractionElementClick","_triggererRef$current2","trailingInteractionElement","InputChevronIcon","BaseDropdownInputTrigger","forwardRef"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fires native events on a given HTML element reference.
|
|
3
|
+
*
|
|
4
|
+
* @param ref - A React ref object pointing to an HTML element or null.
|
|
5
|
+
* @param eventTypes - An array of event types to be dispatched. Supported event types are 'change' and 'input'.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This function creates and dispatches native events of the specified types on the element referenced by `ref`.
|
|
9
|
+
* If `ref` is null, a warning is logged to the console.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const inputRef = React.createRef<HTMLInputElement>();
|
|
14
|
+
* fireNativeEvent(inputRef, ['change', 'input']);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
var fireNativeEvent = function fireNativeEvent(ref, eventTypes) {
|
|
19
|
+
if (!ref) return;
|
|
20
|
+
eventTypes.forEach(function (eventType) {
|
|
21
|
+
var _ref$current;
|
|
22
|
+
var event = new Event(eventType, {
|
|
23
|
+
bubbles: true
|
|
24
|
+
});
|
|
25
|
+
(_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.dispatchEvent(event);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { fireNativeEvent };
|
|
30
|
+
//# sourceMappingURL=fireNativeEvent.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fireNativeEvent.web.js","sources":["../../../../../../src/utils/fireNativeEvent/fireNativeEvent.web.ts"],"sourcesContent":["/**\n * Fires native events on a given HTML element reference.\n *\n * @param ref - A React ref object pointing to an HTML element or null.\n * @param eventTypes - An array of event types to be dispatched. Supported event types are 'change' and 'input'.\n *\n * @remarks\n * This function creates and dispatches native events of the specified types on the element referenced by `ref`.\n * If `ref` is null, a warning is logged to the console.\n *\n * @example\n * ```typescript\n * const inputRef = React.createRef<HTMLInputElement>();\n * fireNativeEvent(inputRef, ['change', 'input']);\n * ```\n */\n\nexport const fireNativeEvent = (\n ref: React.RefObject<HTMLElement> | null,\n eventTypes: Array<'change' | 'input'>,\n): void => {\n if (!ref) return;\n\n eventTypes.forEach((eventType) => {\n const event = new Event(eventType, { bubbles: true });\n ref.current?.dispatchEvent(event);\n });\n};\n"],"names":["fireNativeEvent","ref","eventTypes","forEach","eventType","_ref$current","event","Event","bubbles","current","dispatchEvent"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,GAAwC,EACxCC,UAAqC,EAC5B;EACT,IAAI,CAACD,GAAG,EAAE,OAAA;AAEVC,EAAAA,UAAU,CAACC,OAAO,CAAC,UAACC,SAAS,EAAK;AAAA,IAAA,IAAAC,YAAA,CAAA;AAChC,IAAA,IAAMC,KAAK,GAAG,IAAIC,KAAK,CAACH,SAAS,EAAE;AAAEI,MAAAA,OAAO,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AACrD,IAAA,CAAAH,YAAA,GAAAJ,GAAG,CAACQ,OAAO,MAAA,IAAA,IAAAJ,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,YAAA,CAAaK,aAAa,CAACJ,KAAK,CAAC,CAAA;AACnC,GAAC,CAAC,CAAA;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -19,6 +19,7 @@ export { getPlatformType } from './getPlatformType/getPlatformType.js';
|
|
|
19
19
|
export { useBreakpoint } from './useBreakpoint/useBreakpoint.js';
|
|
20
20
|
export { useColorScheme } from './useColorScheme/useColorScheme.js';
|
|
21
21
|
export { isReactNative } from './platform/isReactNative.js';
|
|
22
|
+
export { isBrowser } from './platform/isBrowser.js';
|
|
22
23
|
export { getOS, isAndroid } from './platform/getOS.web.js';
|
|
23
24
|
export { castNativeType, castWebType } from './platform/castUtils.js';
|
|
24
25
|
export { makeBorderSize } from './makeBorderSize/makeBorderSize.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import '../getPlatformType/index.js';
|
|
2
|
+
import { getPlatformType } from '../getPlatformType/getPlatformType.js';
|
|
3
|
+
|
|
4
|
+
var isBrowser = function isBrowser() {
|
|
5
|
+
return getPlatformType() === 'browser';
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { isBrowser };
|
|
9
|
+
//# sourceMappingURL=isBrowser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isBrowser.js","sources":["../../../../../../src/utils/platform/isBrowser.ts"],"sourcesContent":["import { getPlatformType } from '../getPlatformType';\n\nconst isBrowser = (): boolean => {\n return getPlatformType() === 'browser';\n};\n\nexport { isBrowser };\n"],"names":["isBrowser","getPlatformType"],"mappings":";;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAASA,GAAkB;AAC/B,EAAA,OAAOC,eAAe,EAAE,KAAK,SAAS,CAAA;AACxC;;;;"}
|
|
@@ -582,6 +582,8 @@ declare function useInterval(callback: () => void, { delay, enable }: {
|
|
|
582
582
|
|
|
583
583
|
declare const isReactNative: () => boolean;
|
|
584
584
|
|
|
585
|
+
declare const isBrowser: () => boolean;
|
|
586
|
+
|
|
585
587
|
declare const getOS: () => typeof Platform$1.OS;
|
|
586
588
|
declare const isAndroid: () => boolean;
|
|
587
589
|
|
|
@@ -697,4 +699,4 @@ type ThemeContext = UseColorScheme & {
|
|
|
697
699
|
declare const ThemeContext: React.Context<ThemeContext>;
|
|
698
700
|
declare const useTheme: () => ThemeContext;
|
|
699
701
|
|
|
700
|
-
export { DeviceType, MakeSize, Platform, PlatformTypes, ThemeContext, UseColorScheme, castNativeType, castWebType, getColorScheme, getMediaQuery, getOS, getPlatformType, isAndroid, isReactNative, makeBorderSize, makeMotionTime, makeSize, makeSpace, makeTypographySize, toTitleCase, useBreakpoint, useColorScheme, useInterval, usePrevious, useTheme };
|
|
702
|
+
export { DeviceType, MakeSize, Platform, PlatformTypes, ThemeContext, UseColorScheme, castNativeType, castWebType, getColorScheme, getMediaQuery, getOS, getPlatformType, isAndroid, isBrowser, isReactNative, makeBorderSize, makeMotionTime, makeSize, makeSpace, makeTypographySize, toTitleCase, useBreakpoint, useColorScheme, useInterval, usePrevious, useTheme };
|
|
@@ -582,6 +582,8 @@ declare function useInterval(callback: () => void, { delay, enable }: {
|
|
|
582
582
|
|
|
583
583
|
declare const isReactNative: () => boolean;
|
|
584
584
|
|
|
585
|
+
declare const isBrowser: () => boolean;
|
|
586
|
+
|
|
585
587
|
declare const getOS: () => typeof Platform$1.OS;
|
|
586
588
|
declare const isAndroid: () => boolean;
|
|
587
589
|
|
|
@@ -695,4 +697,4 @@ type ThemeContext = UseColorScheme & {
|
|
|
695
697
|
declare const ThemeContext: React.Context<ThemeContext>;
|
|
696
698
|
declare const useTheme: () => ThemeContext;
|
|
697
699
|
|
|
698
|
-
export { DeviceType, MakeSize, Platform, PlatformTypes, ThemeContext, UseColorScheme, castNativeType, castWebType, getColorScheme, getMediaQuery, getOS, getPlatformType, isAndroid, isReactNative, makeBorderSize, makeMotionTime, makeSize, makeSpace, makeTypographySize, toTitleCase, useBreakpoint, useColorScheme, useInterval, usePrevious, useTheme };
|
|
700
|
+
export { DeviceType, MakeSize, Platform, PlatformTypes, ThemeContext, UseColorScheme, castNativeType, castWebType, getColorScheme, getMediaQuery, getOS, getPlatformType, isAndroid, isBrowser, isReactNative, makeBorderSize, makeMotionTime, makeSize, makeSpace, makeTypographySize, toTitleCase, useBreakpoint, useColorScheme, useInterval, usePrevious, useTheme };
|