@razorpay/blade 11.1.0 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +1 -1
  2. package/build/lib/native/components/Amount/Amount.js +4 -3
  3. package/build/lib/native/components/Amount/Amount.js.map +1 -1
  4. package/build/lib/native/components/Amount/amountTokens.js +2 -2
  5. package/build/lib/native/components/Amount/amountTokens.js.map +1 -1
  6. package/build/lib/native/components/Dropdown/Dropdown.js +2 -2
  7. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  8. package/build/lib/web/development/components/Amount/Amount.js +107 -106
  9. package/build/lib/web/development/components/Amount/Amount.js.map +1 -1
  10. package/build/lib/web/development/components/Amount/amountTokens.js +1 -415
  11. package/build/lib/web/development/components/Amount/amountTokens.js.map +1 -1
  12. package/build/lib/web/development/components/Dropdown/Dropdown.js +60 -51
  13. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  14. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +10 -0
  15. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  16. package/build/lib/web/production/components/Amount/Amount.js +107 -106
  17. package/build/lib/web/production/components/Amount/Amount.js.map +1 -1
  18. package/build/lib/web/production/components/Amount/amountTokens.js +1 -415
  19. package/build/lib/web/production/components/Amount/amountTokens.js.map +1 -1
  20. package/build/lib/web/production/components/Dropdown/Dropdown.js +60 -51
  21. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  22. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +10 -0
  23. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  24. package/build/types/components/index.d.ts +4 -384
  25. package/build/types/components/index.native.d.ts +4 -384
  26. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { ContainerElementType } from '~utils/types';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = ({\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): React.ReactElement => {\n const [isOpen, setIsOpen] = React.useState<boolean>(isOpenControlled ?? false);\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n ] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n\n useDidUpdate(() => {\n onOpenChange?.(isOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpenControlled !== undefined) {\n setIsOpen(isOpenControlled);\n }\n }, [isOpenControlled]);\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isOpen,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n if (!dropdown.contains(target) && !isTagDismissedRef.current?.value) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","setIsOpen","_React$useState3","_React$useState4","options","setOptions","_React$useState5","_React$useState6","filteredValues","setFilteredValues","_React$useState7","_React$useState8","selectedIndices","setSelectedIndices","_React$useState9","_React$useState10","controlledValueIndices","setControlledValueIndices","_React$useState11","_React$useState12","activeIndex","setActiveIndex","_React$useState13","_React$useState14","activeTagIndex","setActiveTagIndex","_React$useState15","_React$useState16","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState17","_React$useState18","hasFooterAction","setHasFooterAction","_React$useState19","_React$useState20","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_React$useState21","_React$useState22","isKeydownPressed","setIsKeydownPressed","_React$useState23","_React$useState24","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState25","_React$useState26","isControlled","setIsControlled","_React$useState27","_React$useState28","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","useDidUpdate","useEffect","undefined","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","current","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","contains","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { isReactNative } from '~utils';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\n\nconst validDropdownChildren = [\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = ({\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n ...styledProps\n}: DropdownProps): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n ] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n React.useEffect((): (() => void) | undefined => {\n if (!isReactNative()) {\n const dropdown = dropdownContainerRef.current;\n\n const documentClickHandler = (e: MouseEvent): void => {\n const target = e.target as HTMLDivElement;\n\n if (!target || !dropdown) {\n return;\n }\n\n const isOutsideClick = !dropdown.contains(target) && !isTagDismissedRef.current?.value;\n\n const isDropdownOpenState = isDropdownOpenRef.current;\n if (isOutsideClick && isDropdownOpenState) {\n close();\n }\n\n if (isTagDismissedRef.current?.value) {\n isTagDismissedRef.current.value = false;\n }\n };\n\n const documentFocusHandler = (e: FocusEvent): void => {\n const target = e.relatedTarget as HTMLDivElement;\n setActiveIndex(-1);\n\n if (!dropdown || !target) {\n return;\n }\n\n if (!dropdown.contains(target)) {\n close();\n }\n };\n\n document.addEventListener('click', documentClickHandler);\n document.addEventListener('focusout', documentFocusHandler);\n\n return (): void => {\n document.removeEventListener('click', documentClickHandler);\n document.removeEventListener('focusout', documentFocusHandler);\n };\n }\n\n return undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={dropdownContainerRef as any}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(_Dropdown, {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","triggers","SelectInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","styledProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState10","activeIndex","setActiveIndex","_React$useState11","_React$useState12","activeTagIndex","setActiveTagIndex","_React$useState13","_React$useState14","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState15","_React$useState16","hasFooterAction","setHasFooterAction","_React$useState17","_React$useState18","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_React$useState19","_React$useState20","isKeydownPressed","setIsKeydownPressed","_React$useState21","_React$useState22","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState23","_React$useState24","isControlled","setIsControlled","_React$useState25","_React$useState26","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","useEffect","isReactNative","dropdown","documentClickHandler","e","_isTagDismissedRef$cu","_isTagDismissedRef$cu2","target","isOutsideClick","contains","isDropdownOpenState","documentFocusHandler","relatedTarget","document","addEventListener","removeEventListener","undefined","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","BaseBox","_objectSpread","ref","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","position","textAlign","assignWithoutSideEffects","componentId"],"mappings":"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"}
@@ -133,6 +133,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
133
133
  name: name,
134
134
  type: "button",
135
135
  onClick: function onClick(event) {
136
+ if (props.isDropdownTrigger) {
137
+ // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
138
+ // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
139
+ event.stopPropagation();
140
+ }
136
141
  handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
137
142
  name: name,
138
143
  value: event
@@ -169,6 +174,11 @@ var _StyledBaseInput = function _StyledBaseInput(_ref, ref) {
169
174
  });
170
175
  },
171
176
  onClick: function onClick(event) {
177
+ if (props.isDropdownTrigger) {
178
+ // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input
179
+ // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened
180
+ event.stopPropagation();
181
+ }
172
182
  handleOnClick === null || handleOnClick === void 0 ? void 0 : handleOnClick({
173
183
  name: name,
174
184
  value: event
@@ -1 +1 @@
1
- {"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"StyledBaseInput.web.js","sources":["../../../../../../../src/components/Input/BaseInput/StyledBaseInput.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject, DefaultTheme, ThemeProps } from 'styled-components';\nimport { getBaseInputStyles } from './baseInputStyles';\n\nimport type { StyledBaseInputProps } from './types';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { Text } from '~components/Typography';\n\nconst getWebInputStyles = (\n props: Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'> &\n ThemeProps<DefaultTheme> &\n (React.InputHTMLAttributes<HTMLInputElement> | React.ButtonHTMLAttributes<HTMLButtonElement>),\n): CSSObject => {\n return {\n ...getBaseInputStyles({\n isDisabled: props.disabled,\n theme: props.theme,\n validationState: props.validationState,\n leadingIcon: props.leadingIcon,\n prefix: props.prefix,\n interactionElement: props.interactionElement,\n suffix: props.suffix,\n trailingIcon: props.trailingIcon,\n textAlign: props.textAlign,\n isTextArea: props.isTextArea,\n hasTags: props.hasTags,\n isDropdownTrigger: props.isDropdownTrigger,\n }),\n outline: 'none',\n border: 'none',\n '::placeholder': {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: 'surface.text.gray.disabled',\n theme: props.theme,\n }),\n textAlign: props.textAlign,\n },\n ':focus': {\n outline: 'none',\n },\n cursor: props.disabled ? 'not-allowed' : 'auto',\n };\n};\n\nconst StyledBaseNativeInput = styled.input<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>(getWebInputStyles);\n\nconst StyledBaseNativeButton = styled.button<\n Omit<StyledBaseInputProps, 'accessibilityProps' | 'setCurrentInteraction' | 'type'>\n>((props) => ({\n ...getWebInputStyles(props),\n}));\n\nconst autoCompleteSuggestionTypeMap = {\n none: 'off',\n on: 'on',\n name: 'name',\n email: 'email',\n username: 'username',\n password: 'current-password',\n newPassword: 'new-password',\n oneTimeCode: 'one-time-code',\n telephone: 'tel',\n postalCode: 'postal-code',\n countryName: 'country',\n creditCardNumber: 'cc-number',\n creditCardCSC: 'cc-csc',\n creditCardExpiry: 'cc-exp',\n creditCardExpiryMonth: 'cc-exp-month',\n creditCardExpiryYear: 'cc-exp-year',\n};\n\nconst _StyledBaseInput: React.ForwardRefRenderFunction<\n HTMLInputElement | HTMLButtonElement,\n StyledBaseInputProps\n> = (\n {\n name,\n isDisabled,\n isRequired,\n maxCharacters,\n handleOnFocus,\n handleOnChange,\n handleOnBlur,\n handleOnInput,\n handleOnKeyDown,\n handleOnClick,\n keyboardType,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n accessibilityProps,\n setCurrentInteraction,\n numberOfLines,\n type,\n hasPopup,\n shouldIgnoreBlurAnimation,\n autoCapitalize,\n ...props\n },\n ref,\n) => {\n const commonProps = {\n onBlur: (event: React.ChangeEvent<HTMLInputElement>): void => {\n // In certain cases like SelectInput, we want to ignore the blur animation when option item is clicked.\n // The selectinput should always look like it is in focus otherwise it triggers blur + focus again which can cause flicker\n if (!shouldIgnoreBlurAnimation) {\n setCurrentInteraction('default');\n }\n handleOnBlur?.({ name, value: event });\n },\n onFocus: (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCurrentInteraction('focus');\n handleOnFocus?.({ name, value: event });\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown?.({ name, key: event.key, code: event.code, event });\n },\n disabled: isDisabled,\n enterKeyHint: keyboardReturnKeyType === 'default' ? 'enter' : keyboardReturnKeyType,\n autoComplete: autoCompleteSuggestionType\n ? autoCompleteSuggestionTypeMap[autoCompleteSuggestionType]\n : undefined,\n };\n\n return props.as === 'button' ? (\n <StyledBaseNativeButton\n // @ts-expect-error: TS doesnt understand that this will always be `button`\n ref={ref}\n name={name}\n type=\"button\"\n onClick={(event: React.MouseEvent<HTMLInputElement>): void => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n value={props.value}\n >\n <Text\n color={\n props.value && !isDisabled ? 'surface.text.gray.subtle' : 'surface.text.gray.disabled'\n }\n truncateAfterLines={1}\n textAlign={props.textAlign}\n >\n {props.value ? props.value : props.placeholder}\n </Text>\n </StyledBaseNativeButton>\n ) : (\n <StyledBaseNativeInput\n // @ts-expect-error: TS doesnt understand that this will always be `input`\n ref={ref}\n name={name}\n type={type === 'telephone' ? 'tel' : type}\n required={isRequired}\n maxLength={maxCharacters}\n rows={numberOfLines}\n inputMode={keyboardType === 'telephone' ? 'tel' : keyboardType}\n onChange={(event: React.ChangeEvent<HTMLInputElement>): void =>\n handleOnChange?.({ name, value: event })\n }\n onInput={(event: React.ChangeEvent<HTMLInputElement>) => {\n handleOnInput?.({ name, value: event });\n }}\n onClick={(event) => {\n if (props.isDropdownTrigger) {\n // dropdown triggers have click event on outer container as well on web to handle outer padding clicks of input\n // we don't want the clicks to be called twice in such cases so we stop propogation if this click has happened\n event.stopPropagation();\n }\n\n handleOnClick?.({ name, value: event });\n }}\n autoCapitalize={autoCapitalize}\n {...commonProps}\n {...props}\n {...accessibilityProps}\n />\n );\n};\n\nconst StyledBaseInput = assignWithoutSideEffects(React.forwardRef(_StyledBaseInput), {\n displayName: 'StyledBaseInput',\n});\n\nexport { StyledBaseInput };\n"],"names":["getWebInputStyles","props","_objectSpread","getBaseInputStyles","isDisabled","disabled","theme","validationState","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","isTextArea","hasTags","isDropdownTrigger","outline","border","getTextStyles","size","variant","weight","color","cursor","StyledBaseNativeInput","styled","input","withConfig","displayName","componentId","StyledBaseNativeButton","button","autoCompleteSuggestionTypeMap","none","on","name","email","username","password","newPassword","oneTimeCode","telephone","postalCode","countryName","creditCardNumber","creditCardCSC","creditCardExpiry","creditCardExpiryMonth","creditCardExpiryYear","_StyledBaseInput","_ref","ref","isRequired","maxCharacters","handleOnFocus","handleOnChange","handleOnBlur","handleOnInput","handleOnKeyDown","handleOnClick","keyboardType","keyboardReturnKeyType","autoCompleteSuggestionType","accessibilityProps","setCurrentInteraction","numberOfLines","type","hasPopup","shouldIgnoreBlurAnimation","autoCapitalize","_objectWithoutProperties","_excluded","commonProps","onBlur","event","value","onFocus","onKeyDown","key","code","enterKeyHint","autoComplete","undefined","as","_jsx","onClick","stopPropagation","children","Text","truncateAfterLines","placeholder","required","maxLength","rows","inputMode","onChange","onInput","StyledBaseInput","assignWithoutSideEffects","React","forwardRef"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
1
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import React__default from 'react';
4
- import { subtleFontSizes, normalAmountSizes, amountLineHeights, getCurrencyAbbreviations, currencyIndicatorMapping, currencyPositionMapping } from './amountTokens.js';
4
+ import { formatNumber, formatNumberByParts } from '@razorpay/i18nify-js/currency';
5
+ import { subtleFontSizes, normalAmountSizes, amountLineHeights } from './amountTokens.js';
5
6
  import '../Box/BaseBox/index.js';
6
7
  import '../../utils/index.js';
7
8
  import '../../utils/metaAttribute/index.js';
@@ -37,7 +38,7 @@ var getTextColorProps = function getTextColorProps(_ref) {
37
38
  return props;
38
39
  };
39
40
  var AmountValue = function AmountValue(_ref2) {
40
- var value = _ref2.value,
41
+ var amount = _ref2.amount,
41
42
  _ref2$size = _ref2.size,
42
43
  size = _ref2$size === void 0 ? 'medium' : _ref2$size,
43
44
  _ref2$type = _ref2.type,
@@ -51,9 +52,6 @@ var AmountValue = function AmountValue(_ref2) {
51
52
  var affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];
52
53
  var numberFontFamily = type === 'body' ? 'text' : 'heading';
53
54
  if (suffix === 'decimals' && isAffixSubtle) {
54
- var integer = value.split('.')[0];
55
- var decimal = value.split('.')[1];
56
-
57
55
  // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text
58
56
  var AmountWrapper = isReactNative ? Text : React__default.Fragment;
59
57
  return /*#__PURE__*/jsxs(AmountWrapper, {
@@ -64,7 +62,7 @@ var AmountValue = function AmountValue(_ref2) {
64
62
  color: amountValueColor,
65
63
  fontFamily: numberFontFamily,
66
64
  as: isReactNative ? undefined : 'span',
67
- children: integer
65
+ children: amount.integer
68
66
  }), /*#__PURE__*/jsxs(BaseText, {
69
67
  fontWeight: weight,
70
68
  fontSize: affixFontSize,
@@ -72,7 +70,7 @@ var AmountValue = function AmountValue(_ref2) {
72
70
  color: amountValueColor,
73
71
  as: isReactNative ? undefined : 'span',
74
72
  opacity: isAffixSubtle ? opacity[8] : 1,
75
- children: [".", decimal || '00']
73
+ children: [amount.decimal, amount.fraction]
76
74
  })]
77
75
  });
78
76
  }
@@ -82,99 +80,93 @@ var AmountValue = function AmountValue(_ref2) {
82
80
  fontFamily: numberFontFamily,
83
81
  color: amountValueColor,
84
82
  lineHeight: amountLineHeights[type][size],
85
- children: value
86
- });
87
- };
88
-
89
- // This function rounds a number to a specified number of decimal places
90
- // and floors the result.
91
- var getFlooredFixed = function getFlooredFixed(value, decimalPlaces) {
92
- var factor = Math.pow(100, decimalPlaces);
93
- var roundedValue = Math.floor(value * factor) / factor;
94
- return Number(roundedValue.toFixed(decimalPlaces));
95
- };
96
- var addCommas = function addCommas(amountValue, currency) {
97
- var decimalPlaces = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
98
- // If the currency is 'INR', set the locale to 'en-IN' (Indian English).
99
- // Otherwise, set the locale to 'en-US' (U.S. English).
100
- var locale = currency === 'INR' ? 'en-IN' : 'en-US';
101
- return amountValue.toLocaleString(locale, {
102
- minimumFractionDigits: decimalPlaces
83
+ children: amount.formatted
103
84
  });
104
85
  };
105
86
  /**
106
- * This function returns the humanized amount
107
- * ie: for INR 2000 => 2K
108
- * for MYR 2000000 => 2M
87
+ * Returns a parsed object based on the suffix passed in parameters
88
+ * === Logic ===
89
+ * value = 12500.45
90
+ * if suffix === 'decimals' => {
91
+ "formatted": "12,500.45",
92
+ "integer": "12,500",
93
+ "decimal": ".",
94
+ "fraction": "45",
95
+ "isPrefixSymbol": false,
96
+ "rawParts": [{"type": "integer","value": "12"},{"type": "group","value": ","},{"type": "integer","value": "500"},{"type": "decimal","value": "."},{"type": "fraction","value": "45"}]
97
+ }
98
+ * else if suffix === 'humanize' => { formatted: "1.2T" }
99
+ * else => { formatted: "1,23,456" }
100
+ * @returns {AmountType}
109
101
  */
110
- var getHumanizedAmount = function getHumanizedAmount(_ref3) {
111
- var value = _ref3.value,
112
- currency = _ref3.currency,
113
- _ref3$denominationPos = _ref3.denominationPosition,
114
- denominationPosition = _ref3$denominationPos === void 0 ? 'right' : _ref3$denominationPos;
115
- var amountValue = value;
116
- var abbreviations = getCurrencyAbbreviations(currency);
117
- var abbreviation = abbreviations.find(function (abbr) {
118
- return amountValue >= abbr.value;
119
- });
120
- if (abbreviation) {
121
- amountValue = amountValue / abbreviation.value;
122
- var formattedAmountValue = getFlooredFixed(amountValue, 2);
123
- if (denominationPosition === 'right') {
124
- return "".concat(addCommas(formattedAmountValue, currency)).concat(abbreviation.symbol);
102
+ var formatAmountWithSuffix = function formatAmountWithSuffix(_ref3) {
103
+ var suffix = _ref3.suffix,
104
+ value = _ref3.value;
105
+ try {
106
+ switch (suffix) {
107
+ case 'decimals':
108
+ {
109
+ var options = {
110
+ intlOptions: {
111
+ maximumFractionDigits: 2,
112
+ minimumFractionDigits: 2
113
+ }
114
+ };
115
+ return _objectSpread(_objectSpread({}, formatNumberByParts(value, options)), {}, {
116
+ formatted: formatNumber(value, options)
117
+ });
118
+ }
119
+ case 'humanize':
120
+ {
121
+ var formatted = formatNumber(value, {
122
+ intlOptions: {
123
+ notation: 'compact'
124
+ }
125
+ });
126
+ return {
127
+ formatted: formatted
128
+ };
129
+ }
130
+ default:
131
+ {
132
+ var _formatted = formatNumber(value, {
133
+ intlOptions: {
134
+ maximumFractionDigits: 0,
135
+ roundingMode: 'floor'
136
+ }
137
+ });
138
+ return {
139
+ formatted: _formatted
140
+ };
141
+ }
125
142
  }
126
- return "".concat(abbreviation.symbol).concat(addCommas(formattedAmountValue, currency));
127
- }
128
- return amountValue.toString();
129
- };
130
- var formatAmountWithSuffix = function formatAmountWithSuffix(_ref4) {
131
- var suffix = _ref4.suffix,
132
- value = _ref4.value,
133
- currency = _ref4.currency,
134
- denominationPosition = _ref4.denominationPosition;
135
- switch (suffix) {
136
- case 'decimals':
137
- {
138
- var decimalNumber = getFlooredFixed(value, 2);
139
- return addCommas(decimalNumber, currency, 2);
140
- }
141
- case 'humanize':
142
- {
143
- return getHumanizedAmount({
144
- value: value,
145
- currency: currency,
146
- denominationPosition: denominationPosition
147
- });
148
- }
149
- case 'none':
150
- {
151
- return addCommas(getFlooredFixed(value, 0), currency);
152
- }
153
- default:
154
- return addCommas(getFlooredFixed(value, 0), currency);
143
+ } catch (err) {
144
+ return {
145
+ formatted: "".concat(value)
146
+ };
155
147
  }
156
148
  };
157
- var _Amount = function _Amount(_ref5) {
158
- var value = _ref5.value,
159
- _ref5$suffix = _ref5.suffix,
160
- suffix = _ref5$suffix === void 0 ? 'decimals' : _ref5$suffix,
161
- _ref5$type = _ref5.type,
162
- type = _ref5$type === void 0 ? 'body' : _ref5$type,
163
- _ref5$size = _ref5.size,
164
- size = _ref5$size === void 0 ? 'medium' : _ref5$size,
165
- _ref5$weight = _ref5.weight,
166
- weight = _ref5$weight === void 0 ? 'regular' : _ref5$weight,
167
- _ref5$isAffixSubtle = _ref5.isAffixSubtle,
168
- isAffixSubtle = _ref5$isAffixSubtle === void 0 ? true : _ref5$isAffixSubtle,
169
- _ref5$isStrikethrough = _ref5.isStrikethrough,
170
- isStrikethrough = _ref5$isStrikethrough === void 0 ? false : _ref5$isStrikethrough,
171
- color = _ref5.color,
172
- _ref5$currencyIndicat = _ref5.currencyIndicator,
173
- currencyIndicator = _ref5$currencyIndicat === void 0 ? 'currency-symbol' : _ref5$currencyIndicat,
174
- _ref5$currency = _ref5.currency,
175
- currency = _ref5$currency === void 0 ? 'INR' : _ref5$currency,
176
- testID = _ref5.testID,
177
- styledProps = _objectWithoutProperties(_ref5, _excluded);
149
+ var _Amount = function _Amount(_ref4) {
150
+ var value = _ref4.value,
151
+ _ref4$suffix = _ref4.suffix,
152
+ suffix = _ref4$suffix === void 0 ? 'decimals' : _ref4$suffix,
153
+ _ref4$type = _ref4.type,
154
+ type = _ref4$type === void 0 ? 'body' : _ref4$type,
155
+ _ref4$size = _ref4.size,
156
+ size = _ref4$size === void 0 ? 'medium' : _ref4$size,
157
+ _ref4$weight = _ref4.weight,
158
+ weight = _ref4$weight === void 0 ? 'regular' : _ref4$weight,
159
+ _ref4$isAffixSubtle = _ref4.isAffixSubtle,
160
+ isAffixSubtle = _ref4$isAffixSubtle === void 0 ? true : _ref4$isAffixSubtle,
161
+ _ref4$isStrikethrough = _ref4.isStrikethrough,
162
+ isStrikethrough = _ref4$isStrikethrough === void 0 ? false : _ref4$isStrikethrough,
163
+ color = _ref4.color,
164
+ _ref4$currencyIndicat = _ref4.currencyIndicator,
165
+ currencyIndicator = _ref4$currencyIndicat === void 0 ? 'currency-symbol' : _ref4$currencyIndicat,
166
+ _ref4$currency = _ref4.currency,
167
+ currency = _ref4$currency === void 0 ? 'INR' : _ref4$currency,
168
+ testID = _ref4.testID,
169
+ styledProps = _objectWithoutProperties(_ref4, _excluded);
178
170
  if (false) {
179
171
  if (typeof value !== 'number') {
180
172
  throwBladeError({
@@ -211,19 +203,27 @@ var _Amount = function _Amount(_ref5) {
211
203
  });
212
204
  }
213
205
  }
214
- var currencySymbolOrCode = currencyIndicatorMapping[currency][currencyIndicator];
215
- var currencyPosition = currencyPositionMapping[currency] || 'left';
216
- var denominationPosition = currencyPosition === 'left' ? 'right' : 'left';
217
- var renderedValue = formatAmountWithSuffix({
218
- suffix: suffix,
219
- value: value,
220
- currency: currency,
221
- denominationPosition: denominationPosition
222
- });
223
206
  var _getTextColorProps = getTextColorProps({
224
207
  color: color
225
208
  }),
226
209
  amountValueColor = _getTextColorProps.amountValueColor;
210
+ var isPrefixSymbol, currencySymbol;
211
+ try {
212
+ var byParts = formatNumberByParts(value, {
213
+ currency: currency
214
+ });
215
+ isPrefixSymbol = byParts.isPrefixSymbol;
216
+ currencySymbol = byParts.currency;
217
+ } catch (err) {
218
+ isPrefixSymbol = true;
219
+ currencySymbol = currency;
220
+ }
221
+ var currencyPosition = isPrefixSymbol ? 'left' : 'right';
222
+ var renderedValue = formatAmountWithSuffix({
223
+ suffix: suffix,
224
+ value: value
225
+ });
226
+ var currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;
227
227
  var currencyFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];
228
228
  var isReactNative = getPlatformType() === 'react-native';
229
229
  return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread({
@@ -247,13 +247,14 @@ var _Amount = function _Amount(_ref5) {
247
247
  opacity: isAffixSubtle ? opacity[8] : 1,
248
248
  children: currencySymbolOrCode
249
249
  }), /*#__PURE__*/jsx(AmountValue, {
250
- value: renderedValue,
250
+ amount: renderedValue,
251
251
  amountValueColor: amountValueColor,
252
252
  type: type,
253
253
  weight: weight,
254
254
  size: size,
255
255
  isAffixSubtle: isAffixSubtle,
256
- suffix: suffix
256
+ suffix: suffix,
257
+ currency: currency
257
258
  }), currencyPosition === 'right' && /*#__PURE__*/jsx(BaseText, {
258
259
  marginLeft: "spacing.1",
259
260
  fontWeight: weight,
@@ -280,5 +281,5 @@ var Amount = /*#__PURE__*/assignWithoutSideEffects(_Amount, {
280
281
  componentId: 'Amount'
281
282
  });
282
283
 
283
- export { Amount, addCommas, formatAmountWithSuffix, getFlooredFixed, getHumanizedAmount };
284
+ export { Amount, formatAmountWithSuffix };
284
285
  //# sourceMappingURL=Amount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { AmountTypeProps, Currency } from './amountTokens';\nimport {\n normalAmountSizes,\n getCurrencyAbbreviations,\n currencyIndicatorMapping,\n subtleFontSizes,\n amountLineHeights,\n currencyPositionMapping,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily } from '~tokens/global';\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: Currency;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n} & TestID &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n value: string;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n value,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n const integer = value.split('.')[0];\n const decimal = value.split('.')[1];\n\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n .{decimal || '00'}\n </BaseText>\n </AmountWrapper>\n );\n }\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {value}\n </BaseText>\n );\n};\n\n// This function rounds a number to a specified number of decimal places\n// and floors the result.\nexport const getFlooredFixed = (value: number, decimalPlaces: number): number => {\n const factor = 100 ** decimalPlaces;\n const roundedValue = Math.floor(value * factor) / factor;\n return Number(roundedValue.toFixed(decimalPlaces));\n};\n\nexport const addCommas = (amountValue: number, currency: Currency, decimalPlaces = 0): string => {\n // If the currency is 'INR', set the locale to 'en-IN' (Indian English).\n // Otherwise, set the locale to 'en-US' (U.S. English).\n const locale = currency === 'INR' ? 'en-IN' : 'en-US';\n return amountValue.toLocaleString(locale, { minimumFractionDigits: decimalPlaces });\n};\n/**\n * This function returns the humanized amount\n * ie: for INR 2000 => 2K\n * for MYR 2000000 => 2M\n */\nexport const getHumanizedAmount = ({\n value,\n currency,\n denominationPosition = 'right',\n}: {\n value: number;\n currency: Currency;\n denominationPosition?: 'left' | 'right';\n}): string => {\n let amountValue = value;\n const abbreviations = getCurrencyAbbreviations(currency);\n const abbreviation = abbreviations.find((abbr) => amountValue >= abbr.value);\n\n if (abbreviation) {\n amountValue = amountValue / abbreviation.value;\n const formattedAmountValue = getFlooredFixed(amountValue, 2);\n\n if (denominationPosition === 'right') {\n return `${addCommas(formattedAmountValue, currency)}${abbreviation.symbol}`;\n }\n\n return `${abbreviation.symbol}${addCommas(formattedAmountValue, currency)}`;\n }\n\n return amountValue.toString();\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: Currency;\n denominationPosition?: 'left' | 'right';\n};\n\nexport const formatAmountWithSuffix = ({\n suffix,\n value,\n currency,\n denominationPosition,\n}: FormatAmountWithSuffixType): string => {\n switch (suffix) {\n case 'decimals': {\n const decimalNumber = getFlooredFixed(value, 2);\n return addCommas(decimalNumber, currency, 2);\n }\n case 'humanize': {\n return getHumanizedAmount({ value, currency, denominationPosition });\n }\n case 'none': {\n return addCommas(getFlooredFixed(value, 0), currency);\n }\n default:\n return addCommas(getFlooredFixed(value, 0), currency);\n }\n};\n\nconst _Amount = ({\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n testID,\n ...styledProps\n}: AmountProps): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const currencySymbolOrCode = currencyIndicatorMapping[currency][currencyIndicator];\n const currencyPosition = currencyPositionMapping[currency] || 'left';\n const denominationPosition = currencyPosition === 'left' ? 'right' : 'left';\n const renderedValue = formatAmountWithSuffix({ suffix, value, currency, denominationPosition });\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const currencyFontSize = isAffixSubtle\n ? subtleFontSizes[type][size]\n : normalAmountSizes[type][size];\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n value={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n <BaseBox\n // @ts-expect-error - intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(_Amount, {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["getTextColorProps","_ref","color","props","amountValueColor","AmountValue","_ref2","value","_ref2$size","size","_ref2$type","type","_ref2$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","integer","split","decimal","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","opacity","getFlooredFixed","decimalPlaces","factor","Math","pow","roundedValue","floor","Number","toFixed","addCommas","amountValue","currency","arguments","length","locale","toLocaleString","minimumFractionDigits","getHumanizedAmount","_ref3","_ref3$denominationPos","denominationPosition","abbreviations","getCurrencyAbbreviations","abbreviation","find","abbr","formattedAmountValue","concat","symbol","toString","formatAmountWithSuffix","_ref4","decimalNumber","_Amount","_ref5","_ref5$suffix","_ref5$type","_ref5$size","_ref5$weight","_ref5$isAffixSubtle","_ref5$isStrikethrough","isStrikethrough","_ref5$currencyIndicat","currencyIndicator","_ref5$currency","testID","styledProps","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","currencySymbolOrCode","currencyIndicatorMapping","currencyPosition","currencyPositionMapping","renderedValue","_getTextColorProps","currencyFontSize","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","alignItems","position","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumber, formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport { normalAmountSizes, subtleFontSizes, amountLineHeights } from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily } from '~tokens/global';\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n} & TestID &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>> & { formatted: string };\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.formatted}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"formatted\": \"12,500.45\",\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * else if suffix === 'humanize' => { formatted: \"1.2T\" }\n * else => { formatted: \"1,23,456\" }\n * @returns {AmountType}\n */\nexport const formatAmountWithSuffix = ({\n suffix,\n value,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n },\n };\n return {\n ...formatNumberByParts(value, options),\n formatted: formatNumber(value, options),\n };\n }\n case 'humanize': {\n const formatted = formatNumber(value, {\n intlOptions: {\n notation: 'compact',\n },\n });\n return {\n formatted,\n };\n }\n\n default: {\n const formatted = formatNumber(value, {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n });\n return {\n formatted,\n };\n }\n }\n } catch (err: unknown) {\n return {\n formatted: `${value}`,\n };\n }\n};\n\nconst _Amount = ({\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n testID,\n ...styledProps\n}: AmountProps): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n let isPrefixSymbol, currencySymbol;\n try {\n const byParts = formatNumberByParts(value, {\n currency,\n });\n isPrefixSymbol = byParts.isPrefixSymbol;\n currencySymbol = byParts.currency;\n } catch (err: unknown) {\n isPrefixSymbol = true;\n currencySymbol = currency;\n }\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const renderedValue = formatAmountWithSuffix({ suffix, value });\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n const currencyFontSize = isAffixSubtle\n ? subtleFontSizes[type][size]\n : normalAmountSizes[type][size];\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[8] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n <BaseBox\n // @ts-expect-error - intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(_Amount, {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["getTextColorProps","_ref","color","props","amountValueColor","AmountValue","_ref2","amount","_ref2$size","size","_ref2$type","type","_ref2$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","decimal","fraction","formatted","formatAmountWithSuffix","_ref3","value","options","intlOptions","maximumFractionDigits","minimumFractionDigits","_objectSpread","formatNumberByParts","formatNumber","notation","roundingMode","err","concat","_Amount","_ref4","_ref4$suffix","_ref4$type","_ref4$size","_ref4$weight","_ref4$isAffixSubtle","_ref4$isStrikethrough","isStrikethrough","_ref4$currencyIndicat","currencyIndicator","_ref4$currency","currency","testID","styledProps","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","isPrefixSymbol","currencySymbol","byParts","currencyPosition","renderedValue","currencySymbolOrCode","currencyFontSize","BaseBox","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","alignItems","position","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","displayName","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAA+D;AAAA,EAAA,IAAzDC,KAAK,GAAAD,IAAA,CAALC,KAAK,CAAA;AAChC,EAAA,IAAMC,KAAiB,GAAG;AACxBC,IAAAA,gBAAgB,EAAE,0BAAA;GACnB,CAAA;AACD,EAAA,IAAI,CAACF,KAAK,EAAE,OAAOC,KAAK,CAAA;EACxBA,KAAK,CAACC,gBAAgB,GAAGF,KAAK,CAAA;AAC9B,EAAA,OAAOC,KAAK,CAAA;AACd,CAAC,CAAA;AAUD,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAAC,KAAA,EAQgB;AAAA,EAAA,IAP/BC,MAAM,GAAAD,KAAA,CAANC,MAAM;IAAAC,UAAA,GAAAF,KAAA,CACNG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,UAAA;IAAAE,UAAA,GAAAJ,KAAA,CACfK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,UAAA;IAAAE,YAAA,GAAAN,KAAA,CACbO,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,YAAA;IAClBR,gBAAgB,GAAAE,KAAA,CAAhBF,gBAAgB;IAChBU,aAAa,GAAAR,KAAA,CAAbQ,aAAa;IACbC,MAAM,GAAAT,KAAA,CAANS,MAAM,CAAA;AAEN,EAAA,IAAMC,aAAa,GAAGC,eAAe,EAAE,KAAK,cAAc,CAAA;AAC1D,EAAA,IAAMC,aAAa,GAAGJ,aAAa,GAAGK,eAAe,CAACR,IAAI,CAAC,CAACF,IAAI,CAAC,GAAGW,iBAAiB,CAACT,IAAI,CAAC,CAACF,IAAI,CAAC,CAAA;EACjG,IAAMY,gBAAkC,GAAGV,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAC/E,EAAA,IAAII,MAAM,KAAK,UAAU,IAAID,aAAa,EAAE;AAC1C;IACA,IAAMQ,aAAa,GAAGN,aAAa,GAAGO,IAAI,GAAGC,cAAK,CAACC,QAAQ,CAAA;IAE3D,oBACEC,IAAA,CAACJ,aAAa,EAAA;MAAAK,QAAA,EAAA,cACZC,GAAA,CAACC,QAAQ,EAAA;AACPC,QAAAA,QAAQ,EAAEV,iBAAiB,CAACT,IAAI,CAAC,CAACF,IAAI,CAAE;AACxCsB,QAAAA,UAAU,EAAElB,MAAO;AACnBmB,QAAAA,UAAU,EAAEC,iBAAiB,CAACtB,IAAI,CAAC,CAACF,IAAI,CAAE;AAC1CP,QAAAA,KAAK,EAAEE,gBAAiB;AACxB8B,QAAAA,UAAU,EAAEb,gBAAiB;AAC7Bc,QAAAA,EAAE,EAAEnB,aAAa,GAAGoB,SAAS,GAAG,MAAO;QAAAT,QAAA,EAEtCpB,MAAM,CAAC8B,OAAAA;AAAO,OACP,CAAC,eACXX,IAAA,CAACG,QAAQ,EAAA;AACPE,QAAAA,UAAU,EAAElB,MAAO;AACnBiB,QAAAA,QAAQ,EAAEZ,aAAc;AACxBgB,QAAAA,UAAU,EAAEb,gBAAiB;AAC7BnB,QAAAA,KAAK,EAAEE,gBAAiB;AACxB+B,QAAAA,EAAE,EAAEnB,aAAa,GAAGoB,SAAS,GAAG,MAAO;QACvCE,OAAO,EAAExB,aAAa,GAAGwB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE;AAAAX,QAAAA,QAAA,GAEvCpB,MAAM,CAACgC,OAAO,EACdhC,MAAM,CAACiC,QAAQ,CAAA;AAAA,OACR,CAAC,CAAA;AAAA,KACE,CAAC,CAAA;AAEpB,GAAA;EAEA,oBACEZ,GAAA,CAACC,QAAQ,EAAA;AACPC,IAAAA,QAAQ,EAAEV,iBAAiB,CAACT,IAAI,CAAC,CAACF,IAAI,CAAE;AACxCsB,IAAAA,UAAU,EAAElB,MAAO;AACnBqB,IAAAA,UAAU,EAAEb,gBAAiB;AAC7BnB,IAAAA,KAAK,EAAEE,gBAAiB;AACxB4B,IAAAA,UAAU,EAAEC,iBAAiB,CAACtB,IAAI,CAAC,CAACF,IAAI,CAAE;IAAAkB,QAAA,EAEzCpB,MAAM,CAACkC,SAAAA;AAAS,GACT,CAAC,CAAA;AAEf,CAAC,CAAA;AAOD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,KAAA,EAGW;AAAA,EAAA,IAF5C5B,MAAM,GAAA4B,KAAA,CAAN5B,MAAM;IACN6B,KAAK,GAAAD,KAAA,CAALC,KAAK,CAAA;EAEL,IAAI;AACF,IAAA,QAAQ7B,MAAM;AACZ,MAAA,KAAK,UAAU;AAAE,QAAA;AACf,UAAA,IAAM8B,OAAO,GAAG;AACdC,YAAAA,WAAW,EAAE;AACXC,cAAAA,qBAAqB,EAAE,CAAC;AACxBC,cAAAA,qBAAqB,EAAE,CAAA;AACzB,aAAA;WACD,CAAA;UACD,OAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKC,mBAAmB,CAACN,KAAK,EAAEC,OAAO,CAAC,CAAA,EAAA,EAAA,EAAA;AACtCJ,YAAAA,SAAS,EAAEU,YAAY,CAACP,KAAK,EAAEC,OAAO,CAAA;AAAC,WAAA,CAAA,CAAA;AAE3C,SAAA;AACA,MAAA,KAAK,UAAU;AAAE,QAAA;AACf,UAAA,IAAMJ,SAAS,GAAGU,YAAY,CAACP,KAAK,EAAE;AACpCE,YAAAA,WAAW,EAAE;AACXM,cAAAA,QAAQ,EAAE,SAAA;AACZ,aAAA;AACF,WAAC,CAAC,CAAA;UACF,OAAO;AACLX,YAAAA,SAAS,EAATA,SAAAA;WACD,CAAA;AACH,SAAA;AAEA,MAAA;AAAS,QAAA;AACP,UAAA,IAAMA,UAAS,GAAGU,YAAY,CAACP,KAAK,EAAE;AACpCE,YAAAA,WAAW,EAAE;AACXC,cAAAA,qBAAqB,EAAE,CAAC;AACxBM,cAAAA,YAAY,EAAE,OAAA;AAChB,aAAA;AACF,WAAC,CAAC,CAAA;UACF,OAAO;AACLZ,YAAAA,SAAS,EAATA,UAAAA;WACD,CAAA;AACH,SAAA;AACF,KAAA;GACD,CAAC,OAAOa,GAAY,EAAE;IACrB,OAAO;MACLb,SAAS,EAAA,EAAA,CAAAc,MAAA,CAAKX,KAAK,CAAA;KACpB,CAAA;AACH,GAAA;AACF,EAAC;AAED,IAAMY,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA,EAaoB;AAAA,EAAA,IAZ/Bb,KAAK,GAAAa,KAAA,CAALb,KAAK;IAAAc,YAAA,GAAAD,KAAA,CACL1C,MAAM;AAANA,IAAAA,MAAM,GAAA2C,YAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,YAAA;IAAAC,UAAA,GAAAF,KAAA,CACnB9C,IAAI;AAAJA,IAAAA,IAAI,GAAAgD,UAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,UAAA;IAAAC,UAAA,GAAAH,KAAA,CACbhD,IAAI;AAAJA,IAAAA,IAAI,GAAAmD,UAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,UAAA;IAAAC,YAAA,GAAAJ,KAAA,CACf5C,MAAM;AAANA,IAAAA,MAAM,GAAAgD,YAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,YAAA;IAAAC,mBAAA,GAAAL,KAAA,CAClB3C,aAAa;AAAbA,IAAAA,aAAa,GAAAgD,mBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,mBAAA;IAAAC,qBAAA,GAAAN,KAAA,CACpBO,eAAe;AAAfA,IAAAA,eAAe,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IACvB7D,KAAK,GAAAuD,KAAA,CAALvD,KAAK;IAAA+D,qBAAA,GAAAR,KAAA,CACLS,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,iBAAiB,GAAAA,qBAAA;IAAAE,cAAA,GAAAV,KAAA,CACrCW,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IAChBE,MAAM,GAAAZ,KAAA,CAANY,MAAM;AACHC,IAAAA,WAAW,GAAAC,wBAAA,CAAAd,KAAA,EAAAe,SAAA,CAAA,CAAA;AAEd,EAAA,IAAI,KAAO,EAAE;AACX,IAAA,IAAI,OAAO5B,KAAK,KAAK,QAAQ,EAAE;AAC7B6B,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAE,mDAAmD;AAC5DC,QAAAA,UAAU,EAAE,QAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACA;IACA,IAAIzE,KAAK,KAAK,SAAS,EAAE;AACvBuE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAE,mCAAmC;AAC5CC,QAAAA,UAAU,EAAE,QAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IAAMC,SAAS,GAAGC,kBAAkB,CAACzD,iBAAiB,CAAC0D,IAAI,CAAC,CAAA;AAC5D,IAAA,IAAI,CAACnE,IAAI,KAAK,MAAM,IAAI,CAACA,IAAI,KAAK,CAACiE,SAAS,CAACG,QAAQ,CAACtE,IAAI,CAAC,EAAE;AAC3DgE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAAnB,SAAAA,CAAAA,MAAA,CAAW9C,IAAI,EAAmC,sCAAA,CAAA;AACzDkE,QAAAA,UAAU,EAAE,QAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IAAMK,YAAY,GAAGH,kBAAkB,CAACzD,iBAAiB,CAAC6D,OAAO,CAAC,CAAA;IAClE,IAAItE,IAAI,KAAK,SAAS,IAAI,CAACqE,YAAY,CAACD,QAAQ,CAACtE,IAAI,CAAC,EAAE;AACtDgE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAAnB,SAAAA,CAAAA,MAAA,CAAW9C,IAAI,EAAsC,yCAAA,CAAA;AAC5DkE,QAAAA,UAAU,EAAE,QAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IAAMO,YAAY,GAAGL,kBAAkB,CAACzD,iBAAiB,CAAC+D,OAAO,CAAC,CAAA;IAClE,IAAIxE,IAAI,KAAK,SAAS,IAAI,CAACuE,YAAY,CAACH,QAAQ,CAACtE,IAAI,CAAC,EAAE;AACtDgE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAAnB,SAAAA,CAAAA,MAAA,CAAW9C,IAAI,EAAsC,yCAAA,CAAA;AAC5DkE,QAAAA,UAAU,EAAE,QAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;EAEA,IAAAS,kBAAA,GAA6BpF,iBAAiB,CAAC;AAC7CE,MAAAA,KAAK,EAALA,KAAAA;AACF,KAAC,CAAC;IAFME,gBAAgB,GAAAgF,kBAAA,CAAhBhF,gBAAgB,CAAA;EAIxB,IAAIiF,cAAc,EAAEC,cAAc,CAAA;EAClC,IAAI;AACF,IAAA,IAAMC,OAAO,GAAGrC,mBAAmB,CAACN,KAAK,EAAE;AACzCwB,MAAAA,QAAQ,EAARA,QAAAA;AACF,KAAC,CAAC,CAAA;IACFiB,cAAc,GAAGE,OAAO,CAACF,cAAc,CAAA;IACvCC,cAAc,GAAGC,OAAO,CAACnB,QAAQ,CAAA;GAClC,CAAC,OAAOd,GAAY,EAAE;AACrB+B,IAAAA,cAAc,GAAG,IAAI,CAAA;AACrBC,IAAAA,cAAc,GAAGlB,QAAQ,CAAA;AAC3B,GAAA;AAEA,EAAA,IAAMoB,gBAAgB,GAAGH,cAAc,GAAG,MAAM,GAAG,OAAO,CAAA;EAC1D,IAAMI,aAAa,GAAG/C,sBAAsB,CAAC;AAAE3B,IAAAA,MAAM,EAANA,MAAM;AAAE6B,IAAAA,KAAK,EAALA,KAAAA;AAAM,GAAC,CAAC,CAAA;EAC/D,IAAM8C,oBAAoB,GAAGxB,iBAAiB,KAAK,iBAAiB,GAAGoB,cAAc,GAAGlB,QAAQ,CAAA;AAEhG,EAAA,IAAMuB,gBAAgB,GAAG7E,aAAa,GAClCK,eAAe,CAACR,IAAI,CAAC,CAACF,IAAI,CAAC,GAC3BW,iBAAiB,CAACT,IAAI,CAAC,CAACF,IAAI,CAAC,CAAA;AACjC,EAAA,IAAMO,aAAa,GAAGC,eAAe,EAAE,KAAK,cAAc,CAAA;EAE1D,oBACEW,GAAA,CAACgE,OAAO,EAAA3C,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACNgC,IAAAA,OAAO,EAAGjE,aAAa,GAAG,MAAM,GAAG,aAAwB;AAC3D6E,IAAAA,aAAa,EAAC,KAAA;AAAK,GAAA,EACfC,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,MAAM;AAAE5B,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EACrD6B,cAAc,CAAC5B,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA;IAAA3C,QAAA,eAE/BD,IAAA,CAACkE,OAAO,EAAA;AACNX,MAAAA,OAAO,EAAGjE,aAAa,GAAG,MAAM,GAAG,aAAwB;AAC3DmF,MAAAA,UAAU,EAAC,UAAU;AACrBN,MAAAA,aAAa,EAAC,KAAK;AACnBO,MAAAA,QAAQ,EAAC,UAAU;AAAAzE,MAAAA,QAAA,GAElB6D,gBAAgB,KAAK,MAAM,iBAC1B5D,GAAA,CAACC,QAAQ,EAAA;AACPwE,QAAAA,WAAW,EAAC,WAAW;AACvBtE,QAAAA,UAAU,EAAElB,MAAO;AACnBiB,QAAAA,QAAQ,EAAE6D,gBAAiB;AAC3BzF,QAAAA,KAAK,EAAEE,gBAAiB;AACxB+B,QAAAA,EAAE,EAAEnB,aAAa,GAAGoB,SAAS,GAAG,MAAO;QACvCE,OAAO,EAAExB,aAAa,GAAGwB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE;AAAAX,QAAAA,QAAA,EAEvC+D,oBAAAA;AAAoB,OACb,CACX,eACD9D,GAAA,CAACvB,WAAW,EAAA;AACVE,QAAAA,MAAM,EAAEkF,aAAc;AACtBrF,QAAAA,gBAAgB,EAAEA,gBAAiB;AACnCO,QAAAA,IAAI,EAAEA,IAAK;AACXE,QAAAA,MAAM,EAAEA,MAAO;AACfJ,QAAAA,IAAI,EAAEA,IAAK;AACXK,QAAAA,aAAa,EAAEA,aAAc;AAC7BC,QAAAA,MAAM,EAAEA,MAAO;AACfqD,QAAAA,QAAQ,EAAEA,QAAAA;OACX,CAAC,EACDoB,gBAAgB,KAAK,OAAO,iBAC3B5D,GAAA,CAACC,QAAQ,EAAA;AACPyE,QAAAA,UAAU,EAAC,WAAW;AACtBvE,QAAAA,UAAU,EAAElB,MAAO;AACnBiB,QAAAA,QAAQ,EAAE6D,gBAAiB;AAC3BzF,QAAAA,KAAK,EAAEE,gBAAiB;AACxB+B,QAAAA,EAAE,EAAEnB,aAAa,GAAGoB,SAAS,GAAG,MAAO;QACvCE,OAAO,EAAExB,aAAa,GAAGwB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE;AAAAX,QAAAA,QAAA,EAEvC+D,oBAAAA;AAAoB,OACb,CACX,EACA1B,eAAe,iBACdpC,GAAA,CAACgE,OAAAA;AACC;AAAA,QAAA;AACAW,QAAAA,iBAAiB,EAAEnG,gBAAiB;AACpCoG,QAAAA,iBAAiB,EAAE7F,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAU;AACxD8F,QAAAA,iBAAiB,EAAC,OAAO;AACzBL,QAAAA,QAAQ,EAAC,UAAU;AACnBM,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,GAAG,EAAC,KAAA;AAAK,OACV,CACF,CAAA;KACM,CAAA;AAAC,GAAA,CACH,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAMV,MAAM,gBAAGW,wBAAwB,CAACpD,OAAO,EAAE;AAC/CqD,EAAAA,WAAW,EAAE,QAAQ;AACrBC,EAAAA,WAAW,EAAE,QAAA;AACf,CAAC;;;;"}