@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","name","filteredOptions","filter","optionValue","toLowerCase","includes","e","key","slice","onSelectionChange","_ref3","values","_options$find","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","Object","assign","autoFocus","isSelectInput","syncInputValueWithSelection","_selectedOption$title","selectedOption","triggerEvent","onClick","assignWithoutSideEffects","forwardRef","componentId"],"mappings":";;;;;;;;;;;;AAUA,IAAMA,eAAe,CAAG,SAAlBA,eAAeA,CAAAC,IAAA,CAchB,CAbH,IAAAC,KAAK,CAAAD,IAAA,CAALC,KAAK,CACLC,UAAU,CAAAF,IAAA,CAAVE,UAAU,CACVC,aAAa,CAAAH,IAAA,CAAbG,aAAa,CACbC,eAAe,CAAAJ,IAAA,CAAfI,eAAe,CAWf,IAAAC,YAAA,CAiBIC,WAAW,EAAE,CAhBGC,0BAA0B,CAAAF,YAAA,CAA5CG,gBAAgB,CAChBC,MAAM,CAAAJ,YAAA,CAANI,MAAM,CACNC,SAAS,CAAAL,YAAA,CAATK,SAAS,CACTC,eAAe,CAAAN,YAAA,CAAfM,eAAe,CACfC,kBAAkB,CAAAP,YAAA,CAAlBO,kBAAkB,CAClBC,yBAAyB,CAAAR,YAAA,CAAzBQ,yBAAyB,CACzBC,YAAY,CAAAT,YAAA,CAAZS,YAAY,CACZC,OAAO,CAAAV,YAAA,CAAPU,OAAO,CACYC,uBAAuB,CAAAX,YAAA,CAA1CY,iBAAiB,CACjBC,cAAc,CAAAb,YAAA,CAAda,cAAc,CACdC,iBAAiB,CAAAd,YAAA,CAAjBc,iBAAiB,CACjBC,cAAc,CAAAf,YAAA,CAAde,cAAc,CACEC,oBAAoB,CAAAhB,YAAA,CAApCiB,cAAc,CACdC,aAAa,CAAAlB,YAAA,CAAbkB,aAAa,CACbC,YAAY,CAAAnB,YAAA,CAAZmB,YAAY,CACZC,kCAAkC,CAAApB,YAAA,CAAlCoB,kCAAkC,CAGpC,IAAMC,YAAY,CAAG,SAAfA,YAAYA,EAAA,CAAA,OAAeV,uBAAuB,CAACZ,eAAe,EAAE,CAAC,CAAA,CAAA,CAG3EuB,cAAK,CAACC,SAAS,CAAC,UAAY,CAC1B,IAAMC,oBAAoB,CAAGd,OAAO,CAACe,SAAS,CAC5C,SAACC,MAAM,CAAK,CAAA,OAAAA,MAAM,CAACC,KAAK,GAAKX,oBAAoB,CAAC,CAAC,CAAC,CAAA,CACtD,CAAC,CAED,GAAIQ,oBAAoB,EAAI,CAAC,CAAE,CAC7BT,cAAc,CAACS,oBAAoB,CAAC,CACtC,CAEF,CAAC,CAAE,CAACR,oBAAoB,CAACY,MAAM,CAAElB,OAAO,CAACkB,MAAM,CAAC,CAAC,CAGjDN,cAAK,CAACC,SAAS,CAAC,UAAM,CACpB,GAAInB,MAAM,EAAI,CAACP,UAAU,CAAE,CACzBwB,YAAY,EAAE,CAChB,CAEF,CAAC,CAAE,CAACjB,MAAM,CAAEM,OAAO,CAAC,CAAC,CAErBY,cAAK,CAACC,SAAS,CAAC,UAAM,CACpB,GAAInB,MAAM,EAAIc,aAAa,GAAK,QAAQ,CAAE,CACxCG,YAAY,EAAE,CAChB,CAIA,GAAID,kCAAkC,EAAIhB,MAAM,EAAI,CAACyB,aAAa,EAAE,CAAE,CAAA,IAAAC,qBAAA,CACpE,CAAAA,qBAAA,CAAAX,YAAY,CAACY,OAAO,GAAA,IAAA,CAAA,KAAA,CAAA,CAApBD,qBAAA,CAAsBE,KAAK,EAAE,CAC/B,CAEF,CAAC,CAAE,CAAC5B,MAAM,CAAC,CAAC,CAEZ,IAAM6B,kBAAuE,CAAG,SAA1EA,kBAAuEA,CAAAC,KAAA,CAGvE,CAFJ,IAAAC,IAAI,CAAAD,KAAA,CAAJC,IAAI,CACJR,KAAK,CAAAO,KAAA,CAALP,KAAK,CAEL7B,aAAa,CAAC6B,KAAK,OAALA,KAAK,CAAI,EAAE,CAAC,CAC1B/B,KAAK,CAACqC,kBAAkB,EAAxBrC,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAACqC,kBAAkB,CAAG,CAAEE,IAAI,CAAJA,IAAI,CAAER,KAAK,CAALA,KAAM,CAAC,CAAC,CAC3Cb,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAErB,GAAI,CAACV,MAAM,CAAE,CACXC,SAAS,CAAC,IAAI,CAAC,CACjB,CAGA,GAAI,CAACT,KAAK,CAACqB,cAAc,CAAE,CAEzB,GAAIU,KAAK,EAAIjB,OAAO,EAAIA,OAAO,CAACkB,MAAM,CAAG,CAAC,CAAE,CAC1C,IAAMQ,eAAe,CAAGrC,eAAe,EAAE,CAACsC,MAAM,CAAC,SAACC,WAAW,CAAA,CAAA,OAC3DA,WAAW,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACb,KAAK,CAACY,WAAW,EAAE,CAAC,CACzD,CAAA,CAAC,CACD5B,uBAAuB,CAACyB,eAAe,CAAC,CAC1C,CAAC,KAAM,CACLf,YAAY,EAAE,CAChB,CACF,CACF,CAAC,CAED,IAAMlB,gBAAmE,CAAG,SAAtEA,gBAAmEA,CAAIsC,CAAC,CAAK,CAEjF,GAAIA,CAAC,CAACC,GAAG,GAAK,WAAW,EAAI,CAAC7C,UAAU,EAAIgB,cAAc,CAAG,CAAC,EAAIP,eAAe,CAACsB,MAAM,CAAG,CAAC,CAAE,CAC5F,GAAInB,YAAY,CAAE,CAChBD,yBAAyB,CAACF,eAAe,CAACqC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC,KAAM,CACLpC,kBAAkB,CAACD,eAAe,CAACqC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAClD,CACF,CACAzC,0BAA0B,cAA1BA,0BAA0B,CAAGuC,CAAC,CAAC,CACjC,CAAC,CAED,IAAMG,iBAA4D,CAAG,SAA/DA,iBAA4DA,CAAAC,KAAA,CAAmB,KAAbC,MAAM,CAAAD,KAAA,CAANC,MAAM,CAC5E,GAAI5B,aAAa,GAAK,UAAU,CAAE,CAChCpB,aAAa,CAAC,EAAE,CAAC,CACjBF,KAAK,CAACqC,kBAAkB,EAAA,IAAA,CAAA,KAAA,CAAA,CAAxBrC,KAAK,CAACqC,kBAAkB,CAAG,CAAEE,IAAI,CAAEvC,KAAK,CAACuC,IAAI,CAAER,KAAK,CAAE,EAAG,CAAC,CAAC,CAC3Db,iBAAiB,CAAC,CAAC,CAAC,CAAC,CACrBO,YAAY,EAAE,CAChB,CAAC,KAAM,CAAA,IAAA0B,aAAA,CACL,IAAMC,WAAW,CAAAD,CAAAA,aAAA,CAAGrC,OAAO,CAACuC,IAAI,CAAC,SAACvB,MAAM,CAAA,CAAA,OAAKA,MAAM,CAACC,KAAK,GAAKmB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,GAAA,IAAA,CAAA,KAAA,CAAA,CAApDC,aAAA,CAAsDG,KAAK,CAC/EtD,KAAK,CAACqC,kBAAkB,EAAxBrC,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAACqC,kBAAkB,CAAG,CACzBE,IAAI,CAAEvC,KAAK,CAACuC,IAAI,CAChBR,KAAK,CAAEqB,WACT,CAAC,CAAC,CAEF,GAAI,OAAOpD,KAAK,CAAC+B,KAAK,GAAK,WAAW,CAAE,CACtC7B,aAAa,CAACkD,WAAW,EAAXA,IAAAA,CAAAA,WAAW,CAAI,EAAE,CAAC,CAClC,CACF,CACApD,KAAK,CAACuD,QAAQ,EAAdvD,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAACuD,QAAQ,CAAG,CAAEhB,IAAI,CAAEvC,KAAK,CAACuC,IAAI,CAAEW,MAAM,CAANA,MAAO,CAAC,CAAC,CAChD,CAAC,CAED,OAAO,CACLF,iBAAiB,CAAjBA,iBAAiB,CACjBzC,gBAAgB,CAAhBA,gBAAgB,CAChB8B,kBAAkB,CAAlBA,kBACF,CAAC,CACH,CAAC,CAED,IAAMmB,aAAa,CAAG,SAAhBA,aAAaA,CACjBxD,KAAwB,CACxByD,GAAwC,CACjB,CAAAC,IAAAA,iBAAA,CAAAC,gBAAA,CACvB,IAAAC,eAAA,CAAgDlC,cAAK,CAACmC,QAAQ,CAAC,EAAE,CAAC,CAAAC,gBAAA,CAAAC,cAAA,CAAAH,eAAA,CAA3DI,CAAAA,CAAAA,CAAAA,sBAAsB,CAAAF,gBAAA,CAAE5D,CAAAA,CAAAA,CAAAA,aAAa,CAAA4D,gBAAA,CAC5C,CAAA,CAAA,CAAA,IAAM7D,UAAU,CAAAyD,CAAAA,iBAAA,CAAG1D,KAAK,CAACC,UAAU,GAAA,IAAA,CAAAyD,iBAAA,CAAIM,sBAAsB,CAE7D,IAAAC,aAAA,CAOI5D,WAAW,EAAE,CANfS,OAAO,CAAAmD,aAAA,CAAPnD,OAAO,CACYC,uBAAuB,CAAAkD,aAAA,CAA1CjD,iBAAiB,CACjBQ,kCAAkC,CAAAyC,aAAA,CAAlCzC,kCAAkC,CAClC0C,qCAAqC,CAAAD,aAAA,CAArCC,qCAAqC,CACrCC,eAAc,CAAAF,aAAA,CAAdE,cAAc,CACdC,iBAAiB,CAAAH,aAAA,CAAjBG,iBAAiB,CAGnB,IAAMjE,eAAe,CAAGuB,cAAK,CAAC2C,WAAW,CAAC,UAAM,CAC9C,OAAOvD,OAAO,CAACwD,GAAG,CAAC,SAACxC,MAAM,CAAA,CAAA,OAAKA,MAAM,CAACC,KAAK,CAAA,CAAA,CAAC,CAC9C,CAAC,CAAE,CAACjB,OAAO,CAAC,CAAC,CAEb,IAAAyD,gBAAA,CAAoEzE,eAAe,CAAC,CAClFE,KAAK,CAALA,KAAK,CACLC,UAAU,CAAVA,UAAU,CACVC,aAAa,CAAbA,aAAa,CACbC,eAAe,CAAfA,eACF,CAAC,CAAC,CALM6C,iBAAiB,CAAAuB,gBAAA,CAAjBvB,iBAAiB,CAAEzC,gBAAgB,CAAAgE,gBAAA,CAAhBhE,gBAAgB,CAAE8B,kBAAkB,CAAAkC,gBAAA,CAAlBlC,kBAAkB,CAO/DX,cAAK,CAACC,SAAS,CAAC,UAAM,CACpB,GAAIyC,iBAAiB,GAAKI,oBAAoB,CAACC,QAAQ,CAACC,YAAY,CAAE,CAGpER,qCAAqC,CAAC,IAAI,CAAC,CAC7C,CAEF,CAAC,CAAE,EAAE,CAAC,CAGNxC,cAAK,CAACC,SAAS,CAAC,UAAM,CACpB,GAAI3B,KAAK,CAACqB,cAAc,CAAE,CACxBN,uBAAuB,CAACf,KAAK,CAACqB,cAAc,CAAC,CAC/C,CACF,CAAC,CAAE,CAACrB,KAAK,CAACqB,cAAc,CAAEN,uBAAuB,CAAC,CAAC,CAGnD,IAAM4D,qBAAqB,CAAGnD,kCAAkC,CAAG,IAAI,CAAGoD,SAAS,CAEnF,OACEC,GAAA,CAACC,OAAO,CAACC,CAAAA,QAAQ,CAAC,UAAU,CAAAC,QAAA,CAC1BH,GAAA,CAACI,wBAAwB,CAAAC,MAAA,CAAAC,MAAA,CACnBnF,EAAAA,CAAAA,KAAK,CAEToF,CAAAA,SAAS,CAAAzB,CAAAA,gBAAA,CAAE3D,KAAK,CAACoF,SAAS,GAAA,IAAA,CAAAzB,gBAAA,CAAIgB,qBAAsB,CAEpDlB,GAAG,CAAEA,GAAW,CAChBF,QAAQ,CAAEP,iBAAkB,CAC5BqC,aAAa,CAAE,KAAM,CACrBpF,UAAU,CAAEA,UAAW,CACvBqF,2BAA2B,CAAE,SAAAA,4BAACvD,KAAK,CAAK,CAAAwD,IAAAA,qBAAA,CACtC,GAAI,CAACxD,KAAK,CAAE,CACV7B,aAAa,CAAC,EAAE,CAAC,CACjB,OACF,CACA,IAAMsF,cAAc,CAAG1E,OAAO,CAACuC,IAAI,CAAC,SAACvB,MAAM,CAAA,CAAA,OAAKA,MAAM,CAACC,KAAK,GAAKA,KAAK,GAAC,CACvE7B,aAAa,CAAAqF,CAAAA,qBAAA,CAACC,cAAc,EAAdA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,cAAc,CAAElC,KAAK,GAAA,IAAA,CAAAiC,qBAAA,CAAI,EAAE,CAAC,CAC5C,CAAE,CACFhF,gBAAgB,CAAEA,gBAAiB,CACnC8B,kBAAkB,CAAEA,kBAAmB,CACvC8B,cAAc,CAAE,SAAAA,cAAAA,CAACsB,YAAY,CAAK,CAChC,GAAI,CAACjE,kCAAkC,CAAE,CAEvC2C,eAAc,EAAE,CAClB,CACAnE,KAAK,EAALA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAAE0F,OAAO,EAAd1F,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAAE0F,OAAO,CAAGD,YAAY,CAAC,CAChC,CAAE,CACH,CAAA,CAAC,CACK,CAAC,CAEd,CAAC,CAgDK,IAAAf,YAAY,CAAGiB,wBAAwB,CAACjE,cAAK,CAACkE,UAAU,CAACpC,aAAa,CAAC,CAAE,CAC7EqC,WAAW,CAAErB,oBAAoB,CAACC,QAAQ,CAACC,YAC7C,CAAC;;;;"}
|
|
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","name","filteredOptions","filter","optionValue","toLowerCase","includes","e","key","slice","onSelectionChange","_ref3","values","_options$find","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","Object","assign","autoFocus","isSelectInput","syncInputValueWithSelection","_selectedOption$title","selectedOption","triggerEvent","onClick","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { useDropdown } from '../../Dropdown/useDropdown.js';
|
|
|
6
6
|
import 'react-native';
|
|
7
7
|
import '@babel/runtime/helpers/slicedToArray';
|
|
8
8
|
import { isReactNative } from '../../../utils/platform/isReactNative.js';
|
|
9
|
+
import { isBrowser } from '../../../utils/platform/isBrowser.js';
|
|
9
10
|
import '../../BladeProvider/useTheme.js';
|
|
10
11
|
import { getActionListContainerRole } from '../../ActionList/getA11yRoles.js';
|
|
11
12
|
import '@babel/runtime/helpers/defineProperty';
|
|
@@ -15,9 +16,10 @@ import { useFirstRender } from '../../../utils/useFirstRender.js';
|
|
|
15
16
|
import { useTableContext } from '../../Table/TableContext.js';
|
|
16
17
|
import { rowDensityToIsTableInputCellMapping, tableEditableCellRowDensityToInputSizeMap, validationStateToInputTrailingIconMap } from '../../Table/tokens.js';
|
|
17
18
|
import { useTableEditableCell } from '../../Table/TableEditableCellContext.js';
|
|
19
|
+
import { fireNativeEvent } from '../../../utils/fireNativeEvent/fireNativeEvent.native.js';
|
|
18
20
|
import { jsx } from 'react/jsx-runtime';
|
|
19
21
|
|
|
20
|
-
var useControlledDropdownInput=function useControlledDropdownInput(props){var isFirstRender=useFirstRender();var _useDropdown=useDropdown(),changeCallbackTriggerer=_useDropdown.changeCallbackTriggerer,isControlled=_useDropdown.isControlled,options=_useDropdown.options,selectedIndices=_useDropdown.selectedIndices,controlledValueIndices=_useDropdown.controlledValueIndices,setSelectedIndices=_useDropdown.setSelectedIndices,selectionType=_useDropdown.selectionType,setIsControlled=_useDropdown.setIsControlled;var getValuesArrayFromIndices=function getValuesArrayFromIndices(){var indices=[];if(isControlled){indices=controlledValueIndices;}else {indices=selectedIndices;}return indices.map(function(selectionIndex){return options[selectionIndex].value;});};var selectValues=function selectValues(valuesToSelect){if(options.length>0){if(isEmpty(valuesToSelect)){setSelectedIndices([]);}else if(typeof valuesToSelect==='string'){var selectedItemIndex=options.findIndex(function(option){return option.value===valuesToSelect;});if(selectedItemIndex>=0){setSelectedIndices([selectedItemIndex]);}}else {var uniqueValues=Array.from(new Set(valuesToSelect));var userValues=selectionType==='single'?[valuesToSelect==null?void 0:valuesToSelect[0]]:uniqueValues;var selectedItemIndices=userValues.map(function(optionValue){return options.findIndex(function(option){return option.value===optionValue;});}).filter(function(value){return value>=0;});setSelectedIndices(selectedItemIndices);}}};React__default.useEffect(function(){if(options.length>0&&props.defaultValue){selectValues(props.defaultValue);}},[options.length]);React__default.useEffect(function(){if(options.length>0&&props.value!==undefined){if(!isControlled){setIsControlled(true);}selectValues(props.value);if(selectionType==='single'&&!Array.isArray(props.value)&&!props.isSelectInput){props.syncInputValueWithSelection==null?void 0:props.syncInputValueWithSelection(props.value);}}},[props.value,options]);React__default.useEffect(function(){if(!isFirstRender){props.onChange==null?void 0:props.onChange({name:props.name,values:getValuesArrayFromIndices()});}},[changeCallbackTriggerer]);};var _BaseDropdownInputTrigger=function _BaseDropdownInputTrigger(props,ref){var _props$placeholder,_props$validationStat,_props$maxRows,_props$label;var _useDropdown2=useDropdown(),isOpen=_useDropdown2.isOpen,activeTagIndex=_useDropdown2.activeTagIndex,setActiveTagIndex=_useDropdown2.setActiveTagIndex,displayValue=_useDropdown2.displayValue,selectionType=_useDropdown2.selectionType,dropdownTriggerer=_useDropdown2.dropdownTriggerer,dropdownBaseId=_useDropdown2.dropdownBaseId,selectedIndices=_useDropdown2.selectedIndices,triggererRef=_useDropdown2.triggererRef,triggererWrapperRef=_useDropdown2.triggererWrapperRef,isTagDismissedRef=_useDropdown2.isTagDismissedRef,onTriggerClick=_useDropdown2.onTriggerClick,value=_useDropdown2.value,shouldIgnoreBlurAnimation=_useDropdown2.shouldIgnoreBlurAnimation,setShouldIgnoreBlurAnimation=_useDropdown2.setShouldIgnoreBlurAnimation,activeIndex=_useDropdown2.activeIndex,hasFooterAction=_useDropdown2.hasFooterAction,hasAutoCompleteInBottomSheetHeader=_useDropdown2.hasAutoCompleteInBottomSheetHeader,options=_useDropdown2.options,removeOption=_useDropdown2.removeOption,setChangeCallbackTriggerer=_useDropdown2.setChangeCallbackTriggerer,changeCallbackTriggerer=_useDropdown2.changeCallbackTriggerer;var _useTableContext=useTableContext(),rowDensity=_useTableContext.rowDensity;var _useTableEditableCell=useTableEditableCell(),isInsideTableEditableCell=_useTableEditableCell.isInsideTableEditableCell;var dropdownTriggerPlaceholder=(_props$placeholder=props.placeholder)!=null?_props$placeholder:'Select Option';var isAutoCompleteInHeader=!props.isSelectInput&&hasAutoCompleteInBottomSheetHeader;var getShowAllTags=React__default.useCallback(function(){if(hasAutoCompleteInBottomSheetHeader){if(props.isSelectInput){return false;}return true;}return isOpen;},[hasAutoCompleteInBottomSheetHeader,props.isSelectInput,isOpen]);useControlledDropdownInput({onChange:props.onChange,name:props.name,value:props.value,defaultValue:props.defaultValue,syncInputValueWithSelection:props.syncInputValueWithSelection,isSelectInput:props.isSelectInput});var getValue=function getValue(){var prefix='';if(props.labelPosition==='inside-input'&&props.label){prefix=`${props.label}: `;}if(props.isSelectInput){if(selectionType==='single'){return `${prefix}${displayValue}`;}return undefined;}return props.inputValue;};var getTags=React__default.useMemo(function(){return function(_ref){var size=_ref.size;if(selectionType==='single'){return undefined;}return getTagsGroup({size:size,tags:selectedIndices.map(function(selectedIndex){var _options$selectedInde;return (_options$selectedInde=options[selectedIndex])==null?void 0:_options$selectedInde.title;}),activeTagIndex:activeTagIndex,isDisabled:props.isDisabled,onDismiss:function onDismiss(_ref2){var tagIndex=_ref2.tagIndex;if(isTagDismissedRef.current){isTagDismissedRef.current.value=true;}if(!isReactNative()){var _triggererRef$current;(_triggererRef$current=triggererRef.current)==null?void 0:_triggererRef$current.focus();}removeOption(selectedIndices[tagIndex]);setChangeCallbackTriggerer(Number(changeCallbackTriggerer)+1);}});};},[selectedIndices,selectionType,activeTagIndex,changeCallbackTriggerer,options]);var tableInputProps={isTableInputCell:rowDensityToIsTableInputCellMapping[rowDensity],id:'table-editable-cell-input',size:tableEditableCellRowDensityToInputSizeMap[rowDensity],trailingIcon:validationStateToInputTrailingIconMap[(_props$validationStat=props.validationState)!=null?_props$validationStat:'none'],showHintsAsTooltip:true};var isValidationStateNone=props.validationState==='none'||props.validationState===undefined;return jsx(BaseInput,Object.assign({as:props.isSelectInput?'button':'input',ref:!isReactNative()?function(node){triggererRef.current=node;if(ref){if(typeof ref==='function'){ref(node);}else {ref.current=node;}}}:null,isDropdownTrigger:true,setInputWrapperRef:function setInputWrapperRef(wrapperNode){triggererWrapperRef.current=wrapperNode;},maxTagRows:(_props$maxRows=props.maxRows)!=null?_props$maxRows:'single',tags:getTags({size:props.size||'medium'}),showAllTags:getShowAllTags(),activeTagIndex:activeTagIndex,setActiveTagIndex:setActiveTagIndex,shouldIgnoreBlurAnimation:shouldIgnoreBlurAnimation,setShouldIgnoreBlurAnimation:setShouldIgnoreBlurAnimation,textAlign:"left",label:props.label,placeholder:selectionType==='multiple'&&selectedIndices.length>0?undefined:dropdownTriggerPlaceholder,hideLabelText:((_props$label=props.label)==null?void 0:_props$label.length)===0,accessibilityLabel:props.accessibilityLabel,labelPosition:props.labelPosition==='inside-input'?undefined:props.labelPosition,isLabelInsideInput:props.labelPosition==='inside-input',necessityIndicator:props.necessityIndicator,autoCompleteSuggestionType:"none",validationState:props.validationState,helpText:props.helpText,errorText:props.errorText,successText:props.successText,name:props.name,isDisabled:props.isDisabled,isRequired:props.isRequired,prefix:props.prefix,suffix:props.suffix,autoFocus:props.autoFocus,value:getValue(),onClick:function onClick(e){if(props.isDisabled){return;}props.onTriggerClick==null?void 0:props.onTriggerClick(e);},onFocus:props.onFocus,onBlur:function onBlur(_ref3){var name=_ref3.name;props.onBlur==null?void 0:props.onBlur({name:name,value:value});},leadingIcon:props.icon,componentName:props.isSelectInput?MetaConstants.SelectInput:MetaConstants.AutoComplete,testID:props.testID,id:`${dropdownBaseId}-trigger`,labelId:`${dropdownBaseId}-label`,hasPopup:getActionListContainerRole(hasFooterAction,dropdownTriggerer),isPopupExpanded:isOpen,activeDescendant:activeIndex>=0?`${dropdownBaseId}-${activeIndex}`:undefined,popupId:`${dropdownBaseId}-actionlist`,onChange:props.isSelectInput?undefined:props.onInputValueChange,onKeyDown:props.onTriggerKeydown,size:props.size,onTrailingInteractionElementClick:function onTrailingInteractionElementClick(){if(!props.isDisabled){if(!isReactNative()){var _triggererRef$current2;(_triggererRef$current2=triggererRef.current)==null?void 0:_triggererRef$current2.focus();}onTriggerClick();}},trailingInteractionElement:isAutoCompleteInHeader||isInsideTableEditableCell&&!isValidationStateNone?null:jsx(InputChevronIcon,{isDisabled:props.isDisabled,isOpen:isOpen})},isInsideTableEditableCell?tableInputProps:undefined));};var BaseDropdownInputTrigger=React__default.forwardRef(_BaseDropdownInputTrigger);
|
|
22
|
+
var useControlledDropdownInput=function useControlledDropdownInput(props){var isFirstRender=useFirstRender();var _useDropdown=useDropdown(),changeCallbackTriggerer=_useDropdown.changeCallbackTriggerer,isControlled=_useDropdown.isControlled,options=_useDropdown.options,selectedIndices=_useDropdown.selectedIndices,controlledValueIndices=_useDropdown.controlledValueIndices,setSelectedIndices=_useDropdown.setSelectedIndices,selectionType=_useDropdown.selectionType,setIsControlled=_useDropdown.setIsControlled;var getValuesArrayFromIndices=function getValuesArrayFromIndices(){var indices=[];if(isControlled){indices=controlledValueIndices;}else {indices=selectedIndices;}return indices.map(function(selectionIndex){return options[selectionIndex].value;});};var selectValues=function selectValues(valuesToSelect){if(options.length>0){if(isEmpty(valuesToSelect)){setSelectedIndices([]);}else if(typeof valuesToSelect==='string'){var selectedItemIndex=options.findIndex(function(option){return option.value===valuesToSelect;});if(selectedItemIndex>=0){setSelectedIndices([selectedItemIndex]);}}else {var uniqueValues=Array.from(new Set(valuesToSelect));var userValues=selectionType==='single'?[valuesToSelect==null?void 0:valuesToSelect[0]]:uniqueValues;var selectedItemIndices=userValues.map(function(optionValue){return options.findIndex(function(option){return option.value===optionValue;});}).filter(function(value){return value>=0;});setSelectedIndices(selectedItemIndices);}}};React__default.useEffect(function(){if(options.length>0&&props.defaultValue){selectValues(props.defaultValue);}},[options.length]);React__default.useEffect(function(){if(options.length>0&&props.value!==undefined){if(!isControlled){setIsControlled(true);}selectValues(props.value);if(selectionType==='single'&&!Array.isArray(props.value)&&!props.isSelectInput){props.syncInputValueWithSelection==null?void 0:props.syncInputValueWithSelection(props.value);}}},[props.value,options]);React__default.useEffect(function(){if(!isFirstRender){props.onChange==null?void 0:props.onChange({name:props.name,values:getValuesArrayFromIndices()});if(isBrowser()){fireNativeEvent(props.triggererRef);}}},[changeCallbackTriggerer]);};var _BaseDropdownInputTrigger=function _BaseDropdownInputTrigger(props,ref){var _props$placeholder,_props$validationStat,_props$maxRows,_props$label;var _useDropdown2=useDropdown(),isOpen=_useDropdown2.isOpen,activeTagIndex=_useDropdown2.activeTagIndex,setActiveTagIndex=_useDropdown2.setActiveTagIndex,displayValue=_useDropdown2.displayValue,selectionType=_useDropdown2.selectionType,dropdownTriggerer=_useDropdown2.dropdownTriggerer,dropdownBaseId=_useDropdown2.dropdownBaseId,selectedIndices=_useDropdown2.selectedIndices,triggererRef=_useDropdown2.triggererRef,triggererWrapperRef=_useDropdown2.triggererWrapperRef,isTagDismissedRef=_useDropdown2.isTagDismissedRef,onTriggerClick=_useDropdown2.onTriggerClick,value=_useDropdown2.value,shouldIgnoreBlurAnimation=_useDropdown2.shouldIgnoreBlurAnimation,setShouldIgnoreBlurAnimation=_useDropdown2.setShouldIgnoreBlurAnimation,activeIndex=_useDropdown2.activeIndex,hasFooterAction=_useDropdown2.hasFooterAction,hasAutoCompleteInBottomSheetHeader=_useDropdown2.hasAutoCompleteInBottomSheetHeader,options=_useDropdown2.options,removeOption=_useDropdown2.removeOption,setChangeCallbackTriggerer=_useDropdown2.setChangeCallbackTriggerer,changeCallbackTriggerer=_useDropdown2.changeCallbackTriggerer;var _useTableContext=useTableContext(),rowDensity=_useTableContext.rowDensity;var _useTableEditableCell=useTableEditableCell(),isInsideTableEditableCell=_useTableEditableCell.isInsideTableEditableCell;var dropdownTriggerPlaceholder=(_props$placeholder=props.placeholder)!=null?_props$placeholder:'Select Option';var isAutoCompleteInHeader=!props.isSelectInput&&hasAutoCompleteInBottomSheetHeader;var getShowAllTags=React__default.useCallback(function(){if(hasAutoCompleteInBottomSheetHeader){if(props.isSelectInput){return false;}return true;}return isOpen;},[hasAutoCompleteInBottomSheetHeader,props.isSelectInput,isOpen]);useControlledDropdownInput({onChange:props.onChange,name:props.name,value:props.value,defaultValue:props.defaultValue,syncInputValueWithSelection:props.syncInputValueWithSelection,isSelectInput:props.isSelectInput,triggererRef:triggererRef});var getValue=function getValue(){var prefix='';if(props.labelPosition==='inside-input'&&props.label){prefix=`${props.label}: `;}if(props.isSelectInput){if(selectionType==='single'){return `${prefix}${displayValue}`;}return undefined;}return props.inputValue;};var getTags=React__default.useMemo(function(){return function(_ref){var size=_ref.size;if(selectionType==='single'){return undefined;}return getTagsGroup({size:size,tags:selectedIndices.map(function(selectedIndex){var _options$selectedInde;return (_options$selectedInde=options[selectedIndex])==null?void 0:_options$selectedInde.title;}),activeTagIndex:activeTagIndex,isDisabled:props.isDisabled,onDismiss:function onDismiss(_ref2){var tagIndex=_ref2.tagIndex;if(isTagDismissedRef.current){isTagDismissedRef.current.value=true;}if(!isReactNative()){var _triggererRef$current;(_triggererRef$current=triggererRef.current)==null?void 0:_triggererRef$current.focus();}removeOption(selectedIndices[tagIndex]);setChangeCallbackTriggerer(Number(changeCallbackTriggerer)+1);}});};},[selectedIndices,selectionType,activeTagIndex,changeCallbackTriggerer,options]);var tableInputProps={isTableInputCell:rowDensityToIsTableInputCellMapping[rowDensity],id:'table-editable-cell-input',size:tableEditableCellRowDensityToInputSizeMap[rowDensity],trailingIcon:validationStateToInputTrailingIconMap[(_props$validationStat=props.validationState)!=null?_props$validationStat:'none'],showHintsAsTooltip:true};var isValidationStateNone=props.validationState==='none'||props.validationState===undefined;return jsx(BaseInput,Object.assign({as:props.isSelectInput?'button':'input',ref:!isReactNative()?function(node){triggererRef.current=node;if(ref){if(typeof ref==='function'){ref(node);}else {ref.current=node;}}}:null,isDropdownTrigger:true,setInputWrapperRef:function setInputWrapperRef(wrapperNode){triggererWrapperRef.current=wrapperNode;},maxTagRows:(_props$maxRows=props.maxRows)!=null?_props$maxRows:'single',tags:getTags({size:props.size||'medium'}),showAllTags:getShowAllTags(),activeTagIndex:activeTagIndex,setActiveTagIndex:setActiveTagIndex,shouldIgnoreBlurAnimation:shouldIgnoreBlurAnimation,setShouldIgnoreBlurAnimation:setShouldIgnoreBlurAnimation,textAlign:"left",label:props.label,placeholder:selectionType==='multiple'&&selectedIndices.length>0?undefined:dropdownTriggerPlaceholder,hideLabelText:((_props$label=props.label)==null?void 0:_props$label.length)===0,accessibilityLabel:props.accessibilityLabel,labelPosition:props.labelPosition==='inside-input'?undefined:props.labelPosition,isLabelInsideInput:props.labelPosition==='inside-input',necessityIndicator:props.necessityIndicator,autoCompleteSuggestionType:"none",validationState:props.validationState,helpText:props.helpText,errorText:props.errorText,successText:props.successText,name:props.name,isDisabled:props.isDisabled,isRequired:props.isRequired,prefix:props.prefix,suffix:props.suffix,autoFocus:props.autoFocus,value:getValue(),onClick:function onClick(e){if(props.isDisabled){return;}props.onTriggerClick==null?void 0:props.onTriggerClick(e);},onFocus:props.onFocus,onBlur:function onBlur(_ref3){var name=_ref3.name;props.onBlur==null?void 0:props.onBlur({name:name,value:value});},leadingIcon:props.icon,componentName:props.isSelectInput?MetaConstants.SelectInput:MetaConstants.AutoComplete,testID:props.testID,id:`${dropdownBaseId}-trigger`,labelId:`${dropdownBaseId}-label`,hasPopup:getActionListContainerRole(hasFooterAction,dropdownTriggerer),isPopupExpanded:isOpen,activeDescendant:activeIndex>=0?`${dropdownBaseId}-${activeIndex}`:undefined,popupId:`${dropdownBaseId}-actionlist`,onChange:props.isSelectInput?undefined:props.onInputValueChange,onKeyDown:props.onTriggerKeydown,size:props.size,onTrailingInteractionElementClick:function onTrailingInteractionElementClick(){if(!props.isDisabled){if(!isReactNative()){var _triggererRef$current2;(_triggererRef$current2=triggererRef.current)==null?void 0:_triggererRef$current2.focus();}onTriggerClick();}},trailingInteractionElement:isAutoCompleteInHeader||isInsideTableEditableCell&&!isValidationStateNone?null:jsx(InputChevronIcon,{isDisabled:props.isDisabled,isOpen:isOpen})},isInsideTableEditableCell?tableInputProps:undefined));};var BaseDropdownInputTrigger=React__default.forwardRef(_BaseDropdownInputTrigger);
|
|
21
23
|
|
|
22
24
|
export { BaseDropdownInputTrigger };
|
|
23
25
|
//# sourceMappingURL=BaseDropdownInputTrigger.js.map
|
package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map
CHANGED
|
@@ -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","syncInputValueWithSelection","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","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","Object","assign","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","onFocus","onBlur","_ref3","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","syncInputValueWithSelection","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","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","Object","assign","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","onFocus","onBlur","_ref3","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,6 @@
|
|
|
1
|
+
import { throwBladeError } from '../logger/logger.js';
|
|
2
|
+
|
|
3
|
+
var fireNativeEvent=function fireNativeEvent(_ref,_eventTypes){throwBladeError({message:'FireNativeEvent is not supported on react-native',moduleName:'FireNativeEvent'});};
|
|
4
|
+
|
|
5
|
+
export { fireNativeEvent };
|
|
6
|
+
//# sourceMappingURL=fireNativeEvent.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fireNativeEvent.native.js","sources":["../../../../../src/utils/fireNativeEvent/fireNativeEvent.native.ts"],"sourcesContent":["import { throwBladeError } from '../logger';\n/**\n * FireNativeEvent is not supported on react-native\n */\n\nexport const fireNativeEvent = (\n _ref: React.RefObject<HTMLElement> | null,\n _eventTypes: Array<'change' | 'input'>,\n): void => {\n throwBladeError({\n message: 'FireNativeEvent is not supported on react-native',\n moduleName: 'FireNativeEvent',\n });\n};\n"],"names":["fireNativeEvent","_ref","_eventTypes","throwBladeError","message","moduleName"],"mappings":";;AAKa,IAAAA,eAAe,CAAG,SAAlBA,eAAeA,CAC1BC,IAAyC,CACzCC,WAAsC,CAC7B,CACTC,eAAe,CAAC,CACdC,OAAO,CAAE,kDAAkD,CAC3DC,UAAU,CAAE,iBACd,CAAC,CAAC,CACJ;;;;"}
|
|
@@ -5,6 +5,7 @@ export { useBreakpoint } from './useBreakpoint/useBreakpoint.js';
|
|
|
5
5
|
export { useColorScheme } from './useColorScheme/useColorScheme.js';
|
|
6
6
|
export { useInterval } from './useInterval.js';
|
|
7
7
|
export { isReactNative } from './platform/isReactNative.js';
|
|
8
|
+
export { isBrowser } from './platform/isBrowser.js';
|
|
8
9
|
export { getOS, isAndroid } from './platform/getOS.native.js';
|
|
9
10
|
export { castNativeType, castWebType } from './platform/castUtils.js';
|
|
10
11
|
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":";;;;;;;;;;;;;;;;;"}
|
|
@@ -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":";;AAEM,IAAAA,SAAS,CAAG,SAAZA,SAASA,EAAkB,CAC/B,OAAOC,eAAe,EAAE,GAAK,SAAS,CACxC;;;;"}
|
|
@@ -26,8 +26,10 @@ import '../../utils/logger/index.js';
|
|
|
26
26
|
import '../Box/styledProps/index.js';
|
|
27
27
|
import '../../utils/metaAttribute/index.js';
|
|
28
28
|
import { componentZIndices } from '../../utils/componentZIndices.js';
|
|
29
|
+
import '../../utils/fireNativeEvent/index.js';
|
|
29
30
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
30
31
|
import useTheme from '../BladeProvider/useTheme.js';
|
|
32
|
+
import { fireNativeEvent } from '../../utils/fireNativeEvent/fireNativeEvent.web.js';
|
|
31
33
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
32
34
|
import { logger } from '../../utils/logger/logger.js';
|
|
33
35
|
import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
|
|
@@ -90,6 +92,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
90
92
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
91
93
|
selectedPreset = _React$useState2[0],
|
|
92
94
|
setSelectedPreset = _React$useState2[1];
|
|
95
|
+
var referenceRef = React__default.useRef(null);
|
|
93
96
|
var _useControllableState = useControllableState({
|
|
94
97
|
defaultValue: defaultPicker,
|
|
95
98
|
value: picker,
|
|
@@ -109,6 +112,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
109
112
|
defaultValue: defaultValue,
|
|
110
113
|
onChange: function onChange(date) {
|
|
111
114
|
_onChange === null || _onChange === void 0 ? void 0 : _onChange(date);
|
|
115
|
+
fireNativeEvent(referenceRef, ['input']);
|
|
112
116
|
if (isSingle) return;
|
|
113
117
|
// sync selected preset with value
|
|
114
118
|
setSelectedPreset(date);
|
|
@@ -151,6 +155,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
151
155
|
var handleApply = function handleApply() {
|
|
152
156
|
if (isSingle) {
|
|
153
157
|
_onChange === null || _onChange === void 0 ? void 0 : _onChange(controlledValue);
|
|
158
|
+
fireNativeEvent(referenceRef, ['change']);
|
|
154
159
|
setOldValue(controlledValue);
|
|
155
160
|
onApply === null || onApply === void 0 ? void 0 : onApply(controlledValue);
|
|
156
161
|
close();
|
|
@@ -159,6 +164,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
159
164
|
// only apply if both dates are selected
|
|
160
165
|
if (hasBothDatesSelected) {
|
|
161
166
|
_onChange === null || _onChange === void 0 ? void 0 : _onChange(controlledValue);
|
|
167
|
+
fireNativeEvent(referenceRef, ['change']);
|
|
162
168
|
setOldValue(controlledValue);
|
|
163
169
|
onApply === null || onApply === void 0 ? void 0 : onApply(controlledValue);
|
|
164
170
|
close();
|
|
@@ -166,13 +172,13 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
166
172
|
};
|
|
167
173
|
var handleCancel = function handleCancel() {
|
|
168
174
|
setControlledValue(oldValue);
|
|
175
|
+
fireNativeEvent(referenceRef, ['change']);
|
|
169
176
|
setPickedDate(null);
|
|
170
177
|
close();
|
|
171
178
|
};
|
|
172
179
|
var isMobile = useIsMobile();
|
|
173
180
|
var defaultInitialFocusRef = React__default.useRef(null);
|
|
174
181
|
var titleId = useId('datepicker-title');
|
|
175
|
-
var referenceRef = React__default.useRef(null);
|
|
176
182
|
var _usePopup = usePopup({
|
|
177
183
|
enabled: !isMobile,
|
|
178
184
|
placement: 'bottom-start',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.web.js","sources":["../../../../../../src/components/DatePicker/DatePicker.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DatesProvider } from '@mantine/dates';\nimport React from 'react';\nimport { FloatingFocusManager, FloatingPortal } from '@floating-ui/react';\nimport { useI18nContext } from '@razorpay/i18nify-react';\nimport { MantineProvider } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport type { DatesRangeValue, DatePickerProps, DateSelectionType, PickerType } from './types';\nimport { Calendar } from './Calendar';\nimport { PresetSideBar } from './QuickSelection/PresetSideBar';\nimport { useDatesState } from './useDatesState';\nimport { DatePickerInput } from './DateInput';\nimport { usePopup } from './usePopup';\nimport { CalendarFooter } from './CalendarFooter';\nimport { convertIntlToDayjsLocale, loadScript } from './utils';\nimport { shiftTimezone } from './shiftTimezone';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useControllableState } from '~utils/useControllable';\nimport { useTheme } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport {\n BottomSheet,\n BottomSheetBody,\n BottomSheetFooter,\n BottomSheetHeader,\n} from '~components/BottomSheet';\nimport { logger } from '~utils/logger';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { componentZIndices } from '~utils/componentZIndices';\n\nconst DatePicker = <Type extends DateSelectionType = 'single'>({\n selectionType,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange,\n onApply,\n presets,\n isOpen,\n defaultIsOpen,\n onOpenChange,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n errorText,\n helpText,\n isDisabled,\n isRequired,\n successText,\n validationState,\n size,\n autoFocus,\n necessityIndicator,\n name,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n zIndex = componentZIndices.popover,\n ...props\n}: DatePickerProps<Type> & StyledPropsBlade): React.ReactElement => {\n const { i18nState } = useI18nContext();\n const _selectionType = selectionType ?? 'single';\n const { theme } = useTheme();\n const isSingle = _selectionType === 'single';\n const [_, forceRerender] = React.useReducer((x: number) => x + 1, 0);\n const [selectedPreset, setSelectedPreset] = React.useState<DatesRangeValue | null>(null);\n\n const [_picker, setPicker] = useControllableState<PickerType>({\n defaultValue: defaultPicker,\n value: picker,\n onChange: (picker) => {\n onPickerChange?.(picker);\n },\n });\n\n const {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n controlledValue,\n setControlledValue,\n } = useDatesState({\n level: _picker,\n type: isSingle ? 'default' : 'range',\n allowDeselect: false,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange: (date) => {\n onChange?.(date as never);\n if (isSingle) return;\n // sync selected preset with value\n setSelectedPreset(date as DatesRangeValue);\n },\n });\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const currentDate = shiftTimezone('add', new Date());\n const [oldValue, setOldValue] = React.useState<DatesRangeValue | null>(controlledValue);\n const hasBothDatesSelected = controlledValue?.[0] && controlledValue?.[1];\n let applyButtonDisabled = !hasBothDatesSelected;\n if (isSingle) {\n applyButtonDisabled = !Boolean(controlledValue);\n }\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n const handleApply = (): void => {\n if (isSingle) {\n onChange?.(controlledValue);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n return;\n }\n // only apply if both dates are selected\n if (hasBothDatesSelected) {\n onChange?.(controlledValue);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n }\n };\n\n const handleCancel = (): void => {\n setControlledValue(oldValue);\n setPickedDate(null);\n close();\n };\n\n const isMobile = useIsMobile();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const titleId = useId('datepicker-title');\n const referenceRef = React.useRef<HTMLButtonElement>(null);\n const {\n context,\n refs,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } = usePopup({\n enabled: !isMobile,\n placement: 'bottom-start',\n open: controllableIsOpen,\n onOpenChange: (isOpen, _, reason) => {\n controllableSetIsOpen(() => isOpen);\n if (reason === 'escape-key' || reason === 'outside-press') {\n handleCancel();\n }\n },\n referenceRef,\n });\n\n const shouldRenderPresets = !isSingle && !isMobile;\n\n const content = (\n <>\n {shouldRenderPresets ? (\n <PresetSideBar\n presets={presets}\n date={currentDate}\n selectedPreset={selectedPreset}\n onSelection={(preset) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n ) : null}\n <BaseBox\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.5\"\n padding={{ m: 'spacing.6', s: 'spacing.0' }}\n backgroundColor=\"surface.background.gray.intense\"\n >\n <Calendar\n {...props}\n selectionType={_selectionType}\n defaultValue={defaultValue}\n onMouseLeave={onRootMouseLeave}\n __onDayMouseEnter={(_event, date) => {\n onHoveredDateChange(date);\n }}\n __onDayClick={(_event, date) => {\n onDateChange(date);\n }}\n getMonthControlProps={(date) => {\n return getControlProps(date);\n }}\n getYearControlProps={(date) => {\n return getControlProps(date);\n }}\n getDayProps={(date) => {\n return getControlProps(date);\n }}\n onMonthSelect={(date) => {\n props?.onMonthSelect?.(date);\n onDateChange(date);\n }}\n onYearSelect={(date) => {\n props?.onYearSelect?.(date);\n onDateChange(date);\n }}\n onNext={(data) => {\n props?.onNext?.(data);\n forceRerender();\n }}\n onPrevious={(data) => {\n props?.onPrevious?.(data);\n forceRerender();\n }}\n picker={_picker}\n onPickerChange={(picker) => {\n setPicker(() => picker);\n forceRerender();\n }}\n />\n {isMobile ? null : (\n <CalendarFooter\n isButtonDisabled={applyButtonDisabled}\n onApply={handleApply}\n onCancel={handleCancel}\n />\n )}\n </BaseBox>\n </>\n );\n\n const dateProviderValue = React.useMemo(() => {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n return {\n locale,\n };\n }, [i18nState?.locale]);\n\n // Dynamically load dayjs locales\n React.useLayoutEffect(() => {\n try {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n // dayjs needs to be loaded into window so that once the locale is loaded it can be parsed\n if (!(window as any).dayjs) {\n (window as any).dayjs = dayjs;\n }\n loadScript(`https://cdn.jsdelivr.net/npm/dayjs@1/locale/${locale}.js`, () => {\n forceRerender();\n });\n } catch (e: unknown) {\n logger({ type: 'warn', message: 'Failed to load dayjs locale' });\n }\n }, [i18nState?.locale]);\n\n return (\n <MantineProvider>\n <DatesProvider settings={dateProviderValue}>\n <BaseBox\n width=\"100%\"\n {...getStyledProps(props)}\n {...metaAttribute({ name: MetaConstants.DatePicker })}\n >\n <DatePickerInput\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n />\n {isMobile ? (\n <BottomSheet\n snapPoints={[0.9, 0.9, 1]}\n isOpen={controllableIsOpen}\n onDismiss={() => {\n handleCancel();\n }}\n >\n <BottomSheetHeader title={isSingle ? 'Select Date' : 'Select Date Range'} />\n <BottomSheetBody>\n {content}\n {!isSingle && (\n <PresetSideBar\n isMobile\n presets={presets}\n date={currentDate}\n selectedPreset={selectedPreset}\n onSelection={(preset) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n )}\n </BottomSheetBody>\n <BottomSheetFooter>\n <CalendarFooter onCancel={handleCancel} onApply={handleApply} />\n </BottomSheetFooter>\n </BottomSheet>\n ) : (\n isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={defaultInitialFocusRef}\n context={context}\n guards={true}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n zIndex={zIndex}\n {...getFloatingProps()}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n borderColor=\"surface.border.gray.subtle\"\n borderWidth=\"thin\"\n borderStyle=\"solid\"\n borderRadius=\"medium\"\n overflow=\"hidden\"\n minWidth=\"320px\"\n style={{ ...animationStyles, boxShadow: `${theme.elevation.lowRaised}` }}\n >\n {content}\n </BaseBox>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )\n )}\n </BaseBox>\n </DatesProvider>\n </MantineProvider>\n );\n};\n\nexport { DatePicker };\n"],"names":["DatePicker","_ref","selectionType","allowSingleDateInRange","value","defaultValue","onChange","onApply","presets","isOpen","defaultIsOpen","onOpenChange","label","_ref$labelPosition","labelPosition","accessibilityLabel","errorText","helpText","isDisabled","isRequired","successText","validationState","size","autoFocus","necessityIndicator","name","_ref$defaultPicker","defaultPicker","picker","onPickerChange","_ref$zIndex","zIndex","componentZIndices","popover","props","_objectWithoutProperties","_excluded","_useI18nContext","useI18nContext","i18nState","_selectionType","_useTheme","useTheme","theme","isSingle","_React$useReducer","React","useReducer","x","_React$useReducer2","_slicedToArray","_","forceRerender","_React$useState","useState","_React$useState2","selectedPreset","setSelectedPreset","_useControllableState","useControllableState","_useControllableState2","_picker","setPicker","_useDatesState","useDatesState","level","type","allowDeselect","date","onDateChange","onRootMouseLeave","onHoveredDateChange","getControlProps","setPickedDate","controlledValue","setControlledValue","_useControllableState3","_useControllableState4","controllableIsOpen","controllableSetIsOpen","currentDate","shiftTimezone","Date","_React$useState3","_React$useState4","oldValue","setOldValue","hasBothDatesSelected","applyButtonDisabled","Boolean","close","useCallback","handleApply","handleCancel","isMobile","useIsMobile","defaultInitialFocusRef","useRef","titleId","useId","referenceRef","_usePopup","usePopup","enabled","placement","open","reason","context","refs","isMounted","floatingStyles","animationStyles","getReferenceProps","getFloatingProps","shouldRenderPresets","content","_jsxs","_Fragment","children","_jsx","PresetSideBar","onSelection","preset","presetValue","BaseBox","width","display","flexDirection","gap","padding","m","s","backgroundColor","Calendar","_objectSpread","onMouseLeave","__onDayMouseEnter","_event","__onDayClick","getMonthControlProps","getYearControlProps","getDayProps","onMonthSelect","_props$onMonthSelect","call","onYearSelect","_props$onYearSelect","onNext","data","_props$onNext","onPrevious","_props$onPrevious","CalendarFooter","isButtonDisabled","onCancel","dateProviderValue","useMemo","_i18nState$locale","locale","convertIntlToDayjsLocale","useLayoutEffect","_i18nState$locale2","window","dayjs","loadScript","concat","e","logger","message","MantineProvider","DatesProvider","settings","getStyledProps","metaAttribute","MetaConstants","DatePickerInput","ref","inputRef","reference","referenceProps","BottomSheet","snapPoints","onDismiss","BottomSheetHeader","title","BottomSheetBody","BottomSheetFooter","FloatingPortal","FloatingFocusManager","initialFocus","guards","setFloating","style","makeAccessible","labelledBy","borderColor","borderWidth","borderStyle","borderRadius","overflow","minWidth","boxShadow","elevation","lowRaised"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.web.js","sources":["../../../../../../src/components/DatePicker/DatePicker.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DatesProvider } from '@mantine/dates';\nimport React from 'react';\nimport { FloatingFocusManager, FloatingPortal } from '@floating-ui/react';\nimport { useI18nContext } from '@razorpay/i18nify-react';\nimport { MantineProvider } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport type { DatesRangeValue, DatePickerProps, DateSelectionType, PickerType } from './types';\nimport { Calendar } from './Calendar';\nimport { PresetSideBar } from './QuickSelection/PresetSideBar';\nimport { useDatesState } from './useDatesState';\nimport { DatePickerInput } from './DateInput';\nimport { usePopup } from './usePopup';\nimport { CalendarFooter } from './CalendarFooter';\nimport { convertIntlToDayjsLocale, loadScript } from './utils';\nimport { shiftTimezone } from './shiftTimezone';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useControllableState } from '~utils/useControllable';\nimport { useTheme } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport {\n BottomSheet,\n BottomSheetBody,\n BottomSheetFooter,\n BottomSheetHeader,\n} from '~components/BottomSheet';\nimport { logger } from '~utils/logger';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\nconst DatePicker = <Type extends DateSelectionType = 'single'>({\n selectionType,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange,\n onApply,\n presets,\n isOpen,\n defaultIsOpen,\n onOpenChange,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n errorText,\n helpText,\n isDisabled,\n isRequired,\n successText,\n validationState,\n size,\n autoFocus,\n necessityIndicator,\n name,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n zIndex = componentZIndices.popover,\n ...props\n}: DatePickerProps<Type> & StyledPropsBlade): React.ReactElement => {\n const { i18nState } = useI18nContext();\n const _selectionType = selectionType ?? 'single';\n const { theme } = useTheme();\n const isSingle = _selectionType === 'single';\n const [_, forceRerender] = React.useReducer((x: number) => x + 1, 0);\n const [selectedPreset, setSelectedPreset] = React.useState<DatesRangeValue | null>(null);\n const referenceRef = React.useRef<HTMLButtonElement>(null);\n\n const [_picker, setPicker] = useControllableState<PickerType>({\n defaultValue: defaultPicker,\n value: picker,\n onChange: (picker) => {\n onPickerChange?.(picker);\n },\n });\n\n const {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n controlledValue,\n setControlledValue,\n } = useDatesState({\n level: _picker,\n type: isSingle ? 'default' : 'range',\n allowDeselect: false,\n allowSingleDateInRange,\n value,\n defaultValue,\n onChange: (date) => {\n onChange?.(date as never);\n fireNativeEvent(referenceRef, ['input']);\n if (isSingle) return;\n // sync selected preset with value\n setSelectedPreset(date as DatesRangeValue);\n },\n });\n\n const [controllableIsOpen, controllableSetIsOpen] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (isOpen) => onOpenChange?.({ isOpen }),\n });\n\n const currentDate = shiftTimezone('add', new Date());\n const [oldValue, setOldValue] = React.useState<DatesRangeValue | null>(controlledValue);\n const hasBothDatesSelected = controlledValue?.[0] && controlledValue?.[1];\n let applyButtonDisabled = !hasBothDatesSelected;\n if (isSingle) {\n applyButtonDisabled = !Boolean(controlledValue);\n }\n\n const close = React.useCallback(() => {\n controllableSetIsOpen(() => false);\n }, [controllableSetIsOpen]);\n\n const handleApply = (): void => {\n if (isSingle) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n return;\n }\n // only apply if both dates are selected\n if (hasBothDatesSelected) {\n onChange?.(controlledValue);\n fireNativeEvent(referenceRef, ['change']);\n setOldValue(controlledValue);\n onApply?.(controlledValue);\n close();\n }\n };\n\n const handleCancel = (): void => {\n setControlledValue(oldValue);\n fireNativeEvent(referenceRef, ['change']);\n setPickedDate(null);\n close();\n };\n\n const isMobile = useIsMobile();\n const defaultInitialFocusRef = React.useRef<HTMLButtonElement>(null);\n const titleId = useId('datepicker-title');\n const {\n context,\n refs,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } = usePopup({\n enabled: !isMobile,\n placement: 'bottom-start',\n open: controllableIsOpen,\n onOpenChange: (isOpen, _, reason) => {\n controllableSetIsOpen(() => isOpen);\n if (reason === 'escape-key' || reason === 'outside-press') {\n handleCancel();\n }\n },\n referenceRef,\n });\n\n const shouldRenderPresets = !isSingle && !isMobile;\n\n const content = (\n <>\n {shouldRenderPresets ? (\n <PresetSideBar\n presets={presets}\n date={currentDate}\n selectedPreset={selectedPreset}\n onSelection={(preset) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n ) : null}\n <BaseBox\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.5\"\n padding={{ m: 'spacing.6', s: 'spacing.0' }}\n backgroundColor=\"surface.background.gray.intense\"\n >\n <Calendar\n {...props}\n selectionType={_selectionType}\n defaultValue={defaultValue}\n onMouseLeave={onRootMouseLeave}\n __onDayMouseEnter={(_event, date) => {\n onHoveredDateChange(date);\n }}\n __onDayClick={(_event, date) => {\n onDateChange(date);\n }}\n getMonthControlProps={(date) => {\n return getControlProps(date);\n }}\n getYearControlProps={(date) => {\n return getControlProps(date);\n }}\n getDayProps={(date) => {\n return getControlProps(date);\n }}\n onMonthSelect={(date) => {\n props?.onMonthSelect?.(date);\n onDateChange(date);\n }}\n onYearSelect={(date) => {\n props?.onYearSelect?.(date);\n onDateChange(date);\n }}\n onNext={(data) => {\n props?.onNext?.(data);\n forceRerender();\n }}\n onPrevious={(data) => {\n props?.onPrevious?.(data);\n forceRerender();\n }}\n picker={_picker}\n onPickerChange={(picker) => {\n setPicker(() => picker);\n forceRerender();\n }}\n />\n {isMobile ? null : (\n <CalendarFooter\n isButtonDisabled={applyButtonDisabled}\n onApply={handleApply}\n onCancel={handleCancel}\n />\n )}\n </BaseBox>\n </>\n );\n\n const dateProviderValue = React.useMemo(() => {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n return {\n locale,\n };\n }, [i18nState?.locale]);\n\n // Dynamically load dayjs locales\n React.useLayoutEffect(() => {\n try {\n const locale = convertIntlToDayjsLocale(i18nState?.locale ?? 'en-IN');\n // dayjs needs to be loaded into window so that once the locale is loaded it can be parsed\n if (!(window as any).dayjs) {\n (window as any).dayjs = dayjs;\n }\n loadScript(`https://cdn.jsdelivr.net/npm/dayjs@1/locale/${locale}.js`, () => {\n forceRerender();\n });\n } catch (e: unknown) {\n logger({ type: 'warn', message: 'Failed to load dayjs locale' });\n }\n }, [i18nState?.locale]);\n\n return (\n <MantineProvider>\n <DatesProvider settings={dateProviderValue}>\n <BaseBox\n width=\"100%\"\n {...getStyledProps(props)}\n {...metaAttribute({ name: MetaConstants.DatePicker })}\n >\n <DatePickerInput\n selectionType={_selectionType}\n date={controlledValue}\n ref={referenceRef}\n inputRef={refs.reference}\n referenceProps={getReferenceProps()}\n name={name as never}\n label={label as never}\n labelPosition={labelPosition}\n accessibilityLabel={accessibilityLabel}\n size={size}\n errorText={errorText as never}\n helpText={helpText as never}\n successText={successText as never}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n autoFocus={autoFocus}\n necessityIndicator={necessityIndicator}\n />\n {isMobile ? (\n <BottomSheet\n snapPoints={[0.9, 0.9, 1]}\n isOpen={controllableIsOpen}\n onDismiss={() => {\n handleCancel();\n }}\n >\n <BottomSheetHeader title={isSingle ? 'Select Date' : 'Select Date Range'} />\n <BottomSheetBody>\n {content}\n {!isSingle && (\n <PresetSideBar\n isMobile\n presets={presets}\n date={currentDate}\n selectedPreset={selectedPreset}\n onSelection={(preset) => {\n const presetValue = preset?.(currentDate);\n setControlledValue(presetValue);\n setSelectedPreset(presetValue);\n }}\n />\n )}\n </BottomSheetBody>\n <BottomSheetFooter>\n <CalendarFooter onCancel={handleCancel} onApply={handleApply} />\n </BottomSheetFooter>\n </BottomSheet>\n ) : (\n isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n initialFocus={defaultInitialFocusRef}\n context={context}\n guards={true}\n >\n <BaseBox\n ref={refs.setFloating}\n style={floatingStyles}\n zIndex={zIndex}\n {...getFloatingProps()}\n {...makeAccessible({ labelledBy: titleId })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n borderColor=\"surface.border.gray.subtle\"\n borderWidth=\"thin\"\n borderStyle=\"solid\"\n borderRadius=\"medium\"\n overflow=\"hidden\"\n minWidth=\"320px\"\n style={{ ...animationStyles, boxShadow: `${theme.elevation.lowRaised}` }}\n >\n {content}\n </BaseBox>\n </BaseBox>\n </FloatingFocusManager>\n </FloatingPortal>\n )\n )}\n </BaseBox>\n </DatesProvider>\n </MantineProvider>\n );\n};\n\nexport { DatePicker };\n"],"names":["DatePicker","_ref","selectionType","allowSingleDateInRange","value","defaultValue","onChange","onApply","presets","isOpen","defaultIsOpen","onOpenChange","label","_ref$labelPosition","labelPosition","accessibilityLabel","errorText","helpText","isDisabled","isRequired","successText","validationState","size","autoFocus","necessityIndicator","name","_ref$defaultPicker","defaultPicker","picker","onPickerChange","_ref$zIndex","zIndex","componentZIndices","popover","props","_objectWithoutProperties","_excluded","_useI18nContext","useI18nContext","i18nState","_selectionType","_useTheme","useTheme","theme","isSingle","_React$useReducer","React","useReducer","x","_React$useReducer2","_slicedToArray","_","forceRerender","_React$useState","useState","_React$useState2","selectedPreset","setSelectedPreset","referenceRef","useRef","_useControllableState","useControllableState","_useControllableState2","_picker","setPicker","_useDatesState","useDatesState","level","type","allowDeselect","date","fireNativeEvent","onDateChange","onRootMouseLeave","onHoveredDateChange","getControlProps","setPickedDate","controlledValue","setControlledValue","_useControllableState3","_useControllableState4","controllableIsOpen","controllableSetIsOpen","currentDate","shiftTimezone","Date","_React$useState3","_React$useState4","oldValue","setOldValue","hasBothDatesSelected","applyButtonDisabled","Boolean","close","useCallback","handleApply","handleCancel","isMobile","useIsMobile","defaultInitialFocusRef","titleId","useId","_usePopup","usePopup","enabled","placement","open","reason","context","refs","isMounted","floatingStyles","animationStyles","getReferenceProps","getFloatingProps","shouldRenderPresets","content","_jsxs","_Fragment","children","_jsx","PresetSideBar","onSelection","preset","presetValue","BaseBox","width","display","flexDirection","gap","padding","m","s","backgroundColor","Calendar","_objectSpread","onMouseLeave","__onDayMouseEnter","_event","__onDayClick","getMonthControlProps","getYearControlProps","getDayProps","onMonthSelect","_props$onMonthSelect","call","onYearSelect","_props$onYearSelect","onNext","data","_props$onNext","onPrevious","_props$onPrevious","CalendarFooter","isButtonDisabled","onCancel","dateProviderValue","useMemo","_i18nState$locale","locale","convertIntlToDayjsLocale","useLayoutEffect","_i18nState$locale2","window","dayjs","loadScript","concat","e","logger","message","MantineProvider","DatesProvider","settings","getStyledProps","metaAttribute","MetaConstants","DatePickerInput","ref","inputRef","reference","referenceProps","BottomSheet","snapPoints","onDismiss","BottomSheetHeader","title","BottomSheetBody","BottomSheetFooter","FloatingPortal","FloatingFocusManager","initialFocus","guards","setFloating","style","makeAccessible","labelledBy","borderColor","borderWidth","borderStyle","borderRadius","overflow","minWidth","boxShadow","elevation","lowRaised"],"mappings":"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"}
|
|
@@ -5,11 +5,15 @@ import React__default from 'react';
|
|
|
5
5
|
import { getUpdatedIndex, ensureScrollVisiblity, getActionFromKey, getIndexByLetter, performAction, makeInputValue, makeInputDisplayValue } from './dropdownUtils.js';
|
|
6
6
|
import { dropdownComponentIds } from './dropdownComponentIds.js';
|
|
7
7
|
import '../../utils/index.js';
|
|
8
|
+
import '../../utils/fireNativeEvent/index.js';
|
|
9
|
+
import { isBrowser } from '../../utils/platform/isBrowser.js';
|
|
10
|
+
import { fireNativeEvent } from '../../utils/fireNativeEvent/fireNativeEvent.web.js';
|
|
8
11
|
import { isReactNative } from '../../utils/platform/isReactNative.js';
|
|
9
12
|
|
|
10
13
|
var _excluded = ["isOpen", "setIsOpen", "close", "selectedIndices", "setSelectedIndices", "activeIndex", "setActiveIndex", "activeTagIndex", "setActiveTagIndex", "visibleTagsCountRef", "isKeydownPressed", "setIsKeydownPressed", "options", "selectionType", "changeCallbackTriggerer", "setChangeCallbackTriggerer", "isControlled", "setControlledValueIndices", "filteredValues", "dropdownTriggerer"];
|
|
11
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
15
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
|
|
13
17
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
14
18
|
var noop = function noop() {};
|
|
15
19
|
var DropdownContext = /*#__PURE__*/React__default.createContext({
|
|
@@ -188,6 +192,9 @@ var useDropdown = function useDropdown() {
|
|
|
188
192
|
return option.value;
|
|
189
193
|
});
|
|
190
194
|
ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);
|
|
195
|
+
if (isBrowser()) {
|
|
196
|
+
fireNativeEvent(rest.actionListItemRef, ['change', 'input']);
|
|
197
|
+
}
|
|
191
198
|
};
|
|
192
199
|
|
|
193
200
|
/**
|