@transferwise/components 46.45.0 → 46.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/accordion/Accordion.js +40 -0
- package/build/accordion/Accordion.js.map +1 -0
- package/build/accordion/Accordion.mjs +38 -0
- package/build/accordion/Accordion.mjs.map +1 -0
- package/build/accordion/AccordionItem/AccordionItem.js +70 -0
- package/build/accordion/AccordionItem/AccordionItem.js.map +1 -0
- package/build/accordion/AccordionItem/AccordionItem.mjs +64 -0
- package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -0
- package/build/actionButton/ActionButton.js +31 -0
- package/build/actionButton/ActionButton.js.map +1 -0
- package/build/actionButton/ActionButton.mjs +25 -0
- package/build/actionButton/ActionButton.mjs.map +1 -0
- package/build/actionOption/ActionOption.js +61 -0
- package/build/actionOption/ActionOption.js.map +1 -0
- package/build/actionOption/ActionOption.mjs +55 -0
- package/build/actionOption/ActionOption.mjs.map +1 -0
- package/build/alert/Alert.js +159 -0
- package/build/alert/Alert.js.map +1 -0
- package/build/alert/Alert.mjs +151 -0
- package/build/alert/Alert.mjs.map +1 -0
- package/build/alert/inlineMarkdown/InlineMarkdown.js +18 -0
- package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -0
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs +16 -0
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +1 -0
- package/build/avatar/Avatar.js +54 -0
- package/build/avatar/Avatar.js.map +1 -0
- package/build/avatar/Avatar.mjs +48 -0
- package/build/avatar/Avatar.mjs.map +1 -0
- package/build/avatar/avatarTypes.js +11 -0
- package/build/avatar/avatarTypes.js.map +1 -0
- package/build/avatar/avatarTypes.mjs +11 -0
- package/build/avatar/avatarTypes.mjs.map +1 -0
- package/build/avatar/colors/colors.js +31 -0
- package/build/avatar/colors/colors.js.map +1 -0
- package/build/avatar/colors/colors.mjs +29 -0
- package/build/avatar/colors/colors.mjs.map +1 -0
- package/build/avatarWrapper/AvatarWrapper.js +120 -0
- package/build/avatarWrapper/AvatarWrapper.js.map +1 -0
- package/build/avatarWrapper/AvatarWrapper.mjs +118 -0
- package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -0
- package/build/avatarWrapper/index.js +8 -0
- package/build/avatarWrapper/index.js.map +1 -0
- package/build/avatarWrapper/index.mjs +6 -0
- package/build/avatarWrapper/index.mjs.map +1 -0
- package/build/badge/Badge.js +36 -0
- package/build/badge/Badge.js.map +1 -0
- package/build/badge/Badge.mjs +30 -0
- package/build/badge/Badge.mjs.map +1 -0
- package/build/body/Body.js +31 -0
- package/build/body/Body.js.map +1 -0
- package/build/body/Body.mjs +25 -0
- package/build/body/Body.mjs.map +1 -0
- package/build/button/Button.js +86 -0
- package/build/button/Button.js.map +1 -0
- package/build/button/Button.messages.js +12 -0
- package/build/button/Button.messages.js.map +1 -0
- package/build/button/Button.messages.mjs +10 -0
- package/build/button/Button.messages.mjs.map +1 -0
- package/build/button/Button.mjs +80 -0
- package/build/button/Button.mjs.map +1 -0
- package/build/button/classMap.js +18 -0
- package/build/button/classMap.js.map +1 -0
- package/build/button/classMap.mjs +15 -0
- package/build/button/classMap.mjs.map +1 -0
- package/build/button/legacyUtils/legacyUtils.js +54 -0
- package/build/button/legacyUtils/legacyUtils.js.map +1 -0
- package/build/button/legacyUtils/legacyUtils.mjs +50 -0
- package/build/button/legacyUtils/legacyUtils.mjs.map +1 -0
- package/build/card/Card.js +65 -0
- package/build/card/Card.js.map +1 -0
- package/build/card/Card.mjs +59 -0
- package/build/card/Card.mjs.map +1 -0
- package/build/carousel/Carousel.js +283 -0
- package/build/carousel/Carousel.js.map +1 -0
- package/build/carousel/Carousel.mjs +277 -0
- package/build/carousel/Carousel.mjs.map +1 -0
- package/build/checkbox/Checkbox.js +64 -0
- package/build/checkbox/Checkbox.js.map +1 -0
- package/build/checkbox/Checkbox.mjs +58 -0
- package/build/checkbox/Checkbox.mjs.map +1 -0
- package/build/checkboxButton/CheckboxButton.js +40 -0
- package/build/checkboxButton/CheckboxButton.js.map +1 -0
- package/build/checkboxButton/CheckboxButton.mjs +34 -0
- package/build/checkboxButton/CheckboxButton.mjs.map +1 -0
- package/build/checkboxOption/CheckboxOption.js +27 -0
- package/build/checkboxOption/CheckboxOption.js.map +1 -0
- package/build/checkboxOption/CheckboxOption.mjs +25 -0
- package/build/checkboxOption/CheckboxOption.mjs.map +1 -0
- package/build/chevron/Chevron.js +60 -0
- package/build/chevron/Chevron.js.map +1 -0
- package/build/chevron/Chevron.mjs +54 -0
- package/build/chevron/Chevron.mjs.map +1 -0
- package/build/chips/Chip.js +71 -0
- package/build/chips/Chip.js.map +1 -0
- package/build/chips/Chip.mjs +65 -0
- package/build/chips/Chip.mjs.map +1 -0
- package/build/chips/Chips.js +62 -0
- package/build/chips/Chips.js.map +1 -0
- package/build/chips/Chips.messages.js +12 -0
- package/build/chips/Chips.messages.js.map +1 -0
- package/build/chips/Chips.messages.mjs +10 -0
- package/build/chips/Chips.messages.mjs.map +1 -0
- package/build/chips/Chips.mjs +56 -0
- package/build/chips/Chips.mjs.map +1 -0
- package/build/circularButton/CircularButton.js +46 -0
- package/build/circularButton/CircularButton.js.map +1 -0
- package/build/circularButton/CircularButton.mjs +40 -0
- package/build/circularButton/CircularButton.mjs.map +1 -0
- package/build/common/DOMOperations/DOMOperations.js +24 -0
- package/build/common/DOMOperations/DOMOperations.js.map +1 -0
- package/build/common/DOMOperations/DOMOperations.mjs +21 -0
- package/build/common/DOMOperations/DOMOperations.mjs.map +1 -0
- package/build/common/Option/Option.js +71 -0
- package/build/common/Option/Option.js.map +1 -0
- package/build/common/Option/Option.mjs +65 -0
- package/build/common/Option/Option.mjs.map +1 -0
- package/build/common/RadioButton/RadioButton.js +46 -0
- package/build/common/RadioButton/RadioButton.js.map +1 -0
- package/build/common/RadioButton/RadioButton.mjs +40 -0
- package/build/common/RadioButton/RadioButton.mjs.map +1 -0
- package/build/common/action/Action.js +37 -0
- package/build/common/action/Action.js.map +1 -0
- package/build/common/action/Action.mjs +31 -0
- package/build/common/action/Action.mjs.map +1 -0
- package/build/common/bottomSheet/BottomSheet.js +194 -0
- package/build/common/bottomSheet/BottomSheet.js.map +1 -0
- package/build/common/bottomSheet/BottomSheet.mjs +188 -0
- package/build/common/bottomSheet/BottomSheet.mjs.map +1 -0
- package/build/common/card/Card.js +49 -0
- package/build/common/card/Card.js.map +1 -0
- package/build/common/card/Card.mjs +43 -0
- package/build/common/card/Card.mjs.map +1 -0
- package/build/common/closeButton/CloseButton.js +46 -0
- package/build/common/closeButton/CloseButton.js.map +1 -0
- package/build/common/closeButton/CloseButton.messages.js +12 -0
- package/build/common/closeButton/CloseButton.messages.js.map +1 -0
- package/build/common/closeButton/CloseButton.messages.mjs +10 -0
- package/build/common/closeButton/CloseButton.messages.mjs.map +1 -0
- package/build/common/closeButton/CloseButton.mjs +40 -0
- package/build/common/closeButton/CloseButton.mjs.map +1 -0
- package/build/common/dateUtils/getDayNames/getDayNames.js +18 -0
- package/build/common/dateUtils/getDayNames/getDayNames.js.map +1 -0
- package/build/common/dateUtils/getDayNames/getDayNames.mjs +16 -0
- package/build/common/dateUtils/getDayNames/getDayNames.mjs.map +1 -0
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js +8 -0
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js.map +1 -0
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs +5 -0
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs.map +1 -0
- package/build/common/dateUtils/getMonthNames/getMonthNames.js +19 -0
- package/build/common/dateUtils/getMonthNames/getMonthNames.js.map +1 -0
- package/build/common/dateUtils/getMonthNames/getMonthNames.mjs +17 -0
- package/build/common/dateUtils/getMonthNames/getMonthNames.mjs.map +1 -0
- package/build/common/dateUtils/isDateValid/isDateValid.js +17 -0
- package/build/common/dateUtils/isDateValid/isDateValid.js.map +1 -0
- package/build/common/dateUtils/isDateValid/isDateValid.mjs +14 -0
- package/build/common/dateUtils/isDateValid/isDateValid.mjs.map +1 -0
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js +8 -0
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js.map +1 -0
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs +6 -0
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs.map +1 -0
- package/build/common/dateUtils/isWithinRange/isWithinRange.js +8 -0
- package/build/common/dateUtils/isWithinRange/isWithinRange.js.map +1 -0
- package/build/common/dateUtils/isWithinRange/isWithinRange.mjs +6 -0
- package/build/common/dateUtils/isWithinRange/isWithinRange.mjs.map +1 -0
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js +15 -0
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js.map +1 -0
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs +13 -0
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs.map +1 -0
- package/build/common/deviceDetection/deviceDetection.js +11 -0
- package/build/common/deviceDetection/deviceDetection.js.map +1 -0
- package/build/common/deviceDetection/deviceDetection.mjs +9 -0
- package/build/common/deviceDetection/deviceDetection.mjs.map +1 -0
- package/build/common/direction.js +9 -0
- package/build/common/direction.js.map +1 -0
- package/build/common/direction.mjs +9 -0
- package/build/common/direction.mjs.map +1 -0
- package/build/common/domHelpers/documentIosClick.js +39 -0
- package/build/common/domHelpers/documentIosClick.js.map +1 -0
- package/build/common/domHelpers/documentIosClick.mjs +33 -0
- package/build/common/domHelpers/documentIosClick.mjs.map +1 -0
- package/build/common/fileType.js +10 -0
- package/build/common/fileType.js.map +1 -0
- package/build/common/fileType.mjs +10 -0
- package/build/common/fileType.mjs.map +1 -0
- package/build/common/flowHeader/FlowHeader.js +53 -0
- package/build/common/flowHeader/FlowHeader.js.map +1 -0
- package/build/common/flowHeader/FlowHeader.mjs +28 -0
- package/build/common/flowHeader/FlowHeader.mjs.map +1 -0
- package/build/common/focusBoundary/FocusBoundary.js +28 -0
- package/build/common/focusBoundary/FocusBoundary.js.map +1 -0
- package/build/common/focusBoundary/FocusBoundary.mjs +26 -0
- package/build/common/focusBoundary/FocusBoundary.mjs.map +1 -0
- package/build/common/historyNavigator/historyNavigator.js +39 -0
- package/build/common/historyNavigator/historyNavigator.js.map +1 -0
- package/build/common/historyNavigator/historyNavigator.mjs +37 -0
- package/build/common/historyNavigator/historyNavigator.mjs.map +1 -0
- package/build/common/hooks/useConditionalListener/useConditionalListener.js +25 -0
- package/build/common/hooks/useConditionalListener/useConditionalListener.js.map +1 -0
- package/build/common/hooks/useConditionalListener/useConditionalListener.mjs +23 -0
- package/build/common/hooks/useConditionalListener/useConditionalListener.mjs.map +1 -0
- package/build/common/hooks/useDirection/useDirection.js +15 -0
- package/build/common/hooks/useDirection/useDirection.js.map +1 -0
- package/build/common/hooks/useDirection/useDirection.mjs +13 -0
- package/build/common/hooks/useDirection/useDirection.mjs.map +1 -0
- package/build/common/hooks/useEffectEvent.js +22 -0
- package/build/common/hooks/useEffectEvent.js.map +1 -0
- package/build/common/hooks/useEffectEvent.mjs +20 -0
- package/build/common/hooks/useEffectEvent.mjs.map +1 -0
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +64 -0
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -0
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +62 -0
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -0
- package/build/common/hooks/useLayout/useLayout.js +26 -0
- package/build/common/hooks/useLayout/useLayout.js.map +1 -0
- package/build/common/hooks/useLayout/useLayout.mjs +24 -0
- package/build/common/hooks/useLayout/useLayout.mjs.map +1 -0
- package/build/common/hooks/useMedia.js +16 -0
- package/build/common/hooks/useMedia.js.map +1 -0
- package/build/common/hooks/useMedia.mjs +14 -0
- package/build/common/hooks/useMedia.mjs.map +1 -0
- package/build/common/hooks/useResizeObserver.js +25 -0
- package/build/common/hooks/useResizeObserver.js.map +1 -0
- package/build/common/hooks/useResizeObserver.mjs +23 -0
- package/build/common/hooks/useResizeObserver.mjs.map +1 -0
- package/build/common/hooks/useScreenSize.js +10 -0
- package/build/common/hooks/useScreenSize.js.map +1 -0
- package/build/common/hooks/useScreenSize.mjs +8 -0
- package/build/common/hooks/useScreenSize.mjs.map +1 -0
- package/build/common/hooks/useVirtualKeyboard.js +26 -0
- package/build/common/hooks/useVirtualKeyboard.js.map +1 -0
- package/build/common/hooks/useVirtualKeyboard.mjs +24 -0
- package/build/common/hooks/useVirtualKeyboard.mjs.map +1 -0
- package/build/common/locale/index.js +85 -0
- package/build/common/locale/index.js.map +1 -0
- package/build/common/locale/index.mjs +76 -0
- package/build/common/locale/index.mjs.map +1 -0
- package/build/common/panel/Panel.js +133 -0
- package/build/common/panel/Panel.js.map +1 -0
- package/build/common/panel/Panel.mjs +127 -0
- package/build/common/panel/Panel.mjs.map +1 -0
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js +21 -0
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js.map +1 -0
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs +19 -0
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs.map +1 -0
- package/build/common/preventScroll/PreventScroll.js +11 -0
- package/build/common/preventScroll/PreventScroll.js.map +1 -0
- package/build/common/preventScroll/PreventScroll.mjs +9 -0
- package/build/common/preventScroll/PreventScroll.mjs.map +1 -0
- package/build/common/propsValues/breakpoint.js +12 -0
- package/build/common/propsValues/breakpoint.js.map +1 -0
- package/build/common/propsValues/breakpoint.mjs +12 -0
- package/build/common/propsValues/breakpoint.mjs.map +1 -0
- package/build/common/propsValues/control.js +15 -0
- package/build/common/propsValues/control.js.map +1 -0
- package/build/common/propsValues/control.mjs +15 -0
- package/build/common/propsValues/control.mjs.map +1 -0
- package/build/common/propsValues/dateMode.js +8 -0
- package/build/common/propsValues/dateMode.js.map +1 -0
- package/build/common/propsValues/dateMode.mjs +8 -0
- package/build/common/propsValues/dateMode.mjs.map +1 -0
- package/build/common/propsValues/layouts.js +13 -0
- package/build/common/propsValues/layouts.js.map +1 -0
- package/build/common/propsValues/layouts.mjs +13 -0
- package/build/common/propsValues/layouts.mjs.map +1 -0
- package/build/common/propsValues/markdownNodeType.js +22 -0
- package/build/common/propsValues/markdownNodeType.js.map +1 -0
- package/build/common/propsValues/markdownNodeType.mjs +22 -0
- package/build/common/propsValues/markdownNodeType.mjs.map +1 -0
- package/build/common/propsValues/monthFormat.js +8 -0
- package/build/common/propsValues/monthFormat.js.map +1 -0
- package/build/common/propsValues/monthFormat.mjs +8 -0
- package/build/common/propsValues/monthFormat.mjs.map +1 -0
- package/build/common/propsValues/position.js +15 -0
- package/build/common/propsValues/position.js.map +1 -0
- package/build/common/propsValues/position.mjs +15 -0
- package/build/common/propsValues/position.mjs.map +1 -0
- package/build/common/propsValues/profileType.js +8 -0
- package/build/common/propsValues/profileType.js.map +1 -0
- package/build/common/propsValues/profileType.mjs +8 -0
- package/build/common/propsValues/profileType.mjs.map +1 -0
- package/build/common/propsValues/scroll.js +8 -0
- package/build/common/propsValues/scroll.js.map +1 -0
- package/build/common/propsValues/scroll.mjs +8 -0
- package/build/common/propsValues/scroll.mjs.map +1 -0
- package/build/common/propsValues/sentiment.js +23 -0
- package/build/common/propsValues/sentiment.js.map +1 -0
- package/build/common/propsValues/sentiment.mjs +23 -0
- package/build/common/propsValues/sentiment.mjs.map +1 -0
- package/build/common/propsValues/size.js +11 -0
- package/build/common/propsValues/size.js.map +1 -0
- package/build/common/propsValues/size.mjs +11 -0
- package/build/common/propsValues/size.mjs.map +1 -0
- package/build/common/propsValues/status.js +13 -0
- package/build/common/propsValues/status.js.map +1 -0
- package/build/common/propsValues/status.mjs +13 -0
- package/build/common/propsValues/status.mjs.map +1 -0
- package/build/common/propsValues/type.js +17 -0
- package/build/common/propsValues/type.js.map +1 -0
- package/build/common/propsValues/type.mjs +17 -0
- package/build/common/propsValues/type.mjs.map +1 -0
- package/build/common/propsValues/typography.js +25 -0
- package/build/common/propsValues/typography.js.map +1 -0
- package/build/common/propsValues/typography.mjs +25 -0
- package/build/common/propsValues/typography.mjs.map +1 -0
- package/build/common/propsValues/variant.js +8 -0
- package/build/common/propsValues/variant.js.map +1 -0
- package/build/common/propsValues/variant.mjs +8 -0
- package/build/common/propsValues/variant.mjs.map +1 -0
- package/build/common/propsValues/width.js +8 -0
- package/build/common/propsValues/width.js.map +1 -0
- package/build/common/propsValues/width.mjs +8 -0
- package/build/common/propsValues/width.mjs.map +1 -0
- package/build/common/responsivePanel/ResponsivePanel.js +45 -0
- package/build/common/responsivePanel/ResponsivePanel.js.map +1 -0
- package/build/common/responsivePanel/ResponsivePanel.mjs +43 -0
- package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -0
- package/build/common/textFormat/formatWithPattern/formatWithPattern.js +27 -0
- package/build/common/textFormat/formatWithPattern/formatWithPattern.js.map +1 -0
- package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs +25 -0
- package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs.map +1 -0
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js +8 -0
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js.map +1 -0
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs +6 -0
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs.map +1 -0
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js +30 -0
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js.map +1 -0
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs +28 -0
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs.map +1 -0
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js +32 -0
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js.map +1 -0
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs +29 -0
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs.map +1 -0
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js +18 -0
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js.map +1 -0
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs +16 -0
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs.map +1 -0
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js +14 -0
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js.map +1 -0
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs +12 -0
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs.map +1 -0
- package/build/common/theme.js +13 -0
- package/build/common/theme.js.map +1 -0
- package/build/common/theme.mjs +13 -0
- package/build/common/theme.mjs.map +1 -0
- package/build/criticalBanner/CriticalCommsBanner.js +77 -0
- package/build/criticalBanner/CriticalCommsBanner.js.map +1 -0
- package/build/criticalBanner/CriticalCommsBanner.mjs +71 -0
- package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -0
- package/build/dateInput/DateInput.js +329 -0
- package/build/dateInput/DateInput.js.map +1 -0
- package/build/dateInput/DateInput.messages.js +24 -0
- package/build/dateInput/DateInput.messages.js.map +1 -0
- package/build/dateInput/DateInput.messages.mjs +22 -0
- package/build/dateInput/DateInput.messages.mjs.map +1 -0
- package/build/dateInput/DateInput.mjs +323 -0
- package/build/dateInput/DateInput.mjs.map +1 -0
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js +9 -0
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js.map +1 -0
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs +7 -0
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs.map +1 -0
- package/build/dateLookup/DateLookup.js +339 -0
- package/build/dateLookup/DateLookup.js.map +1 -0
- package/build/dateLookup/DateLookup.messages.js +33 -0
- package/build/dateLookup/DateLookup.messages.js.map +1 -0
- package/build/dateLookup/DateLookup.messages.mjs +31 -0
- package/build/dateLookup/DateLookup.messages.mjs.map +1 -0
- package/build/dateLookup/DateLookup.mjs +333 -0
- package/build/dateLookup/DateLookup.mjs.map +1 -0
- package/build/dateLookup/dateHeader/DateHeader.js +73 -0
- package/build/dateLookup/dateHeader/DateHeader.js.map +1 -0
- package/build/dateLookup/dateHeader/DateHeader.mjs +67 -0
- package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -0
- package/build/dateLookup/dateTrigger/DateTrigger.js +70 -0
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -0
- package/build/dateLookup/dateTrigger/DateTrigger.messages.js +12 -0
- package/build/dateLookup/dateTrigger/DateTrigger.messages.js.map +1 -0
- package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs +10 -0
- package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs.map +1 -0
- package/build/dateLookup/dateTrigger/DateTrigger.mjs +68 -0
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -0
- package/build/dateLookup/dayCalendar/DayCalendar.js +71 -0
- package/build/dateLookup/dayCalendar/DayCalendar.js.map +1 -0
- package/build/dateLookup/dayCalendar/DayCalendar.mjs +69 -0
- package/build/dateLookup/dayCalendar/DayCalendar.mjs.map +1 -0
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +150 -0
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +1 -0
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs +148 -0
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs.map +1 -0
- package/build/dateLookup/getFocusableTime/getFocusableTime.js +8 -0
- package/build/dateLookup/getFocusableTime/getFocusableTime.js.map +1 -0
- package/build/dateLookup/getFocusableTime/getFocusableTime.mjs +6 -0
- package/build/dateLookup/getFocusableTime/getFocusableTime.mjs.map +1 -0
- package/build/dateLookup/getStartOfDay/getStartOfDay.js +15 -0
- package/build/dateLookup/getStartOfDay/getStartOfDay.js.map +1 -0
- package/build/dateLookup/getStartOfDay/getStartOfDay.mjs +13 -0
- package/build/dateLookup/getStartOfDay/getStartOfDay.mjs.map +1 -0
- package/build/dateLookup/monthCalendar/MonthCalendar.js +64 -0
- package/build/dateLookup/monthCalendar/MonthCalendar.js.map +1 -0
- package/build/dateLookup/monthCalendar/MonthCalendar.mjs +62 -0
- package/build/dateLookup/monthCalendar/MonthCalendar.mjs.map +1 -0
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +83 -0
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +1 -0
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs +81 -0
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs.map +1 -0
- package/build/dateLookup/tableLink/TableLink.js +65 -0
- package/build/dateLookup/tableLink/TableLink.js.map +1 -0
- package/build/dateLookup/tableLink/TableLink.mjs +59 -0
- package/build/dateLookup/tableLink/TableLink.mjs.map +1 -0
- package/build/dateLookup/yearCalendar/YearCalendar.js +57 -0
- package/build/dateLookup/yearCalendar/YearCalendar.js.map +1 -0
- package/build/dateLookup/yearCalendar/YearCalendar.mjs +55 -0
- package/build/dateLookup/yearCalendar/YearCalendar.mjs.map +1 -0
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +83 -0
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +1 -0
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs +81 -0
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs.map +1 -0
- package/build/decision/Decision.js +108 -0
- package/build/decision/Decision.js.map +1 -0
- package/build/decision/Decision.mjs +100 -0
- package/build/decision/Decision.mjs.map +1 -0
- package/build/definitionList/DefinitionList.js +72 -0
- package/build/definitionList/DefinitionList.js.map +1 -0
- package/build/definitionList/DefinitionList.mjs +66 -0
- package/build/definitionList/DefinitionList.mjs.map +1 -0
- package/build/dimmer/Dimmer.js +184 -0
- package/build/dimmer/Dimmer.js.map +1 -0
- package/build/dimmer/Dimmer.mjs +172 -0
- package/build/dimmer/Dimmer.mjs.map +1 -0
- package/build/dimmer/dimmerManager/DimmerManager.js +36 -0
- package/build/dimmer/dimmerManager/DimmerManager.js.map +1 -0
- package/build/dimmer/dimmerManager/DimmerManager.mjs +34 -0
- package/build/dimmer/dimmerManager/DimmerManager.mjs.map +1 -0
- package/build/display/Display.js +26 -0
- package/build/display/Display.js.map +1 -0
- package/build/display/Display.mjs +20 -0
- package/build/display/Display.mjs.map +1 -0
- package/build/drawer/Drawer.js +68 -0
- package/build/drawer/Drawer.js.map +1 -0
- package/build/drawer/Drawer.mjs +62 -0
- package/build/drawer/Drawer.mjs.map +1 -0
- package/build/dropFade/DropFade.js +48 -0
- package/build/dropFade/DropFade.js.map +1 -0
- package/build/dropFade/DropFade.mjs +42 -0
- package/build/dropFade/DropFade.mjs.map +1 -0
- package/build/emphasis/Emphasis.js +24 -0
- package/build/emphasis/Emphasis.js.map +1 -0
- package/build/emphasis/Emphasis.mjs +22 -0
- package/build/emphasis/Emphasis.mjs.map +1 -0
- package/build/emphasis/EmphasisHtmlTransformer.js +39 -0
- package/build/emphasis/EmphasisHtmlTransformer.js.map +1 -0
- package/build/emphasis/EmphasisHtmlTransformer.mjs +37 -0
- package/build/emphasis/EmphasisHtmlTransformer.mjs.map +1 -0
- package/build/field/Field.js +63 -0
- package/build/field/Field.js.map +1 -0
- package/build/field/Field.mjs +57 -0
- package/build/field/Field.mjs.map +1 -0
- package/build/flowNavigation/FlowNavigation.js +80 -0
- package/build/flowNavigation/FlowNavigation.js.map +1 -0
- package/build/flowNavigation/FlowNavigation.messages.js +12 -0
- package/build/flowNavigation/FlowNavigation.messages.js.map +1 -0
- package/build/flowNavigation/FlowNavigation.messages.mjs +10 -0
- package/build/flowNavigation/FlowNavigation.messages.mjs.map +1 -0
- package/build/flowNavigation/FlowNavigation.mjs +74 -0
- package/build/flowNavigation/FlowNavigation.mjs.map +1 -0
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js +34 -0
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -0
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +28 -0
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -0
- package/build/flowNavigation/backButton/BackButton.js +34 -0
- package/build/flowNavigation/backButton/BackButton.js.map +1 -0
- package/build/flowNavigation/backButton/BackButton.mjs +28 -0
- package/build/flowNavigation/backButton/BackButton.mjs.map +1 -0
- package/build/header/Header.js +87 -0
- package/build/header/Header.js.map +1 -0
- package/build/header/Header.mjs +78 -0
- package/build/header/Header.mjs.map +1 -0
- package/build/i18n/cs.json.js +61 -0
- package/build/i18n/cs.json.js.map +1 -0
- package/build/i18n/cs.json.mjs +59 -0
- package/build/i18n/cs.json.mjs.map +1 -0
- package/build/i18n/de.json.js +62 -0
- package/build/i18n/de.json.js.map +1 -0
- package/build/i18n/de.json.mjs +60 -0
- package/build/i18n/de.json.mjs.map +1 -0
- package/build/i18n/en.json.js +62 -0
- package/build/i18n/en.json.js.map +1 -0
- package/build/i18n/en.json.mjs +60 -0
- package/build/i18n/en.json.mjs.map +1 -0
- package/build/i18n/es.json.js +62 -0
- package/build/i18n/es.json.js.map +1 -0
- package/build/i18n/es.json.mjs +60 -0
- package/build/i18n/es.json.mjs.map +1 -0
- package/build/i18n/fr.json.js +62 -0
- package/build/i18n/fr.json.js.map +1 -0
- package/build/i18n/fr.json.mjs +60 -0
- package/build/i18n/fr.json.mjs.map +1 -0
- package/build/i18n/hu.json.js +62 -0
- package/build/i18n/hu.json.js.map +1 -0
- package/build/i18n/hu.json.mjs +60 -0
- package/build/i18n/hu.json.mjs.map +1 -0
- package/build/i18n/id.json.js +62 -0
- package/build/i18n/id.json.js.map +1 -0
- package/build/i18n/id.json.mjs +60 -0
- package/build/i18n/id.json.mjs.map +1 -0
- package/build/i18n/index.js +45 -0
- package/build/i18n/index.js.map +1 -0
- package/build/i18n/index.mjs +43 -0
- package/build/i18n/index.mjs.map +1 -0
- package/build/i18n/it.json.js +62 -0
- package/build/i18n/it.json.js.map +1 -0
- package/build/i18n/it.json.mjs +60 -0
- package/build/i18n/it.json.mjs.map +1 -0
- package/build/i18n/ja.json.js +62 -0
- package/build/i18n/ja.json.js.map +1 -0
- package/build/i18n/ja.json.mjs +60 -0
- package/build/i18n/ja.json.mjs.map +1 -0
- package/build/i18n/pl.json.js +62 -0
- package/build/i18n/pl.json.js.map +1 -0
- package/build/i18n/pl.json.mjs +60 -0
- package/build/i18n/pl.json.mjs.map +1 -0
- package/build/i18n/pt.json.js +62 -0
- package/build/i18n/pt.json.js.map +1 -0
- package/build/i18n/pt.json.mjs +60 -0
- package/build/i18n/pt.json.mjs.map +1 -0
- package/build/i18n/ro.json.js +62 -0
- package/build/i18n/ro.json.js.map +1 -0
- package/build/i18n/ro.json.mjs +60 -0
- package/build/i18n/ro.json.mjs.map +1 -0
- package/build/i18n/ru.json.js +62 -0
- package/build/i18n/ru.json.js.map +1 -0
- package/build/i18n/ru.json.mjs +60 -0
- package/build/i18n/ru.json.mjs.map +1 -0
- package/build/i18n/th.json.js +62 -0
- package/build/i18n/th.json.js.map +1 -0
- package/build/i18n/th.json.mjs +60 -0
- package/build/i18n/th.json.mjs.map +1 -0
- package/build/i18n/tr.json.js +62 -0
- package/build/i18n/tr.json.js.map +1 -0
- package/build/i18n/tr.json.mjs +60 -0
- package/build/i18n/tr.json.mjs.map +1 -0
- package/build/i18n/uk.json.js +61 -0
- package/build/i18n/uk.json.js.map +1 -0
- package/build/i18n/uk.json.mjs +59 -0
- package/build/i18n/uk.json.mjs.map +1 -0
- package/build/i18n/zh-CN.json.js +62 -0
- package/build/i18n/zh-CN.json.js.map +1 -0
- package/build/i18n/zh-CN.json.mjs +60 -0
- package/build/i18n/zh-CN.json.mjs.map +1 -0
- package/build/i18n/zh-HK.json.js +62 -0
- package/build/i18n/zh-HK.json.js.map +1 -0
- package/build/i18n/zh-HK.json.mjs +60 -0
- package/build/i18n/zh-HK.json.mjs.map +1 -0
- package/build/image/Image.js +55 -0
- package/build/image/Image.js.map +1 -0
- package/build/image/Image.mjs +46 -0
- package/build/image/Image.mjs.map +1 -0
- package/build/index.js +278 -14434
- package/build/index.js.map +1 -1
- package/build/index.mjs +118 -14359
- package/build/index.mjs.map +1 -1
- package/build/info/Info.js +80 -0
- package/build/info/Info.js.map +1 -0
- package/build/info/Info.messages.js +12 -0
- package/build/info/Info.messages.js.map +1 -0
- package/build/info/Info.messages.mjs +10 -0
- package/build/info/Info.messages.mjs.map +1 -0
- package/build/info/Info.mjs +74 -0
- package/build/info/Info.mjs.map +1 -0
- package/build/info/infoPresentations.js +9 -0
- package/build/info/infoPresentations.js.map +1 -0
- package/build/info/infoPresentations.mjs +9 -0
- package/build/info/infoPresentations.mjs.map +1 -0
- package/build/inlineAlert/InlineAlert.js +35 -0
- package/build/inlineAlert/InlineAlert.js.map +1 -0
- package/build/inlineAlert/InlineAlert.mjs +29 -0
- package/build/inlineAlert/InlineAlert.mjs.map +1 -0
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.js +15 -0
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.js.map +1 -0
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs +13 -0
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs.map +1 -0
- package/build/inputs/Input.js +39 -0
- package/build/inputs/Input.js.map +1 -0
- package/build/inputs/Input.mjs +33 -0
- package/build/inputs/Input.mjs.map +1 -0
- package/build/inputs/InputGroup.js +112 -0
- package/build/inputs/InputGroup.js.map +1 -0
- package/build/inputs/InputGroup.mjs +105 -0
- package/build/inputs/InputGroup.mjs.map +1 -0
- package/build/inputs/SearchInput.js +38 -0
- package/build/inputs/SearchInput.js.map +1 -0
- package/build/inputs/SearchInput.mjs +36 -0
- package/build/inputs/SearchInput.mjs.map +1 -0
- package/build/inputs/SelectInput.js +585 -0
- package/build/inputs/SelectInput.js.map +1 -0
- package/build/inputs/SelectInput.messages.js +12 -0
- package/build/inputs/SelectInput.messages.js.map +1 -0
- package/build/inputs/SelectInput.messages.mjs +10 -0
- package/build/inputs/SelectInput.messages.mjs.map +1 -0
- package/build/inputs/SelectInput.mjs +576 -0
- package/build/inputs/SelectInput.mjs.map +1 -0
- package/build/inputs/TextArea.js +27 -0
- package/build/inputs/TextArea.js.map +1 -0
- package/build/inputs/TextArea.mjs +21 -0
- package/build/inputs/TextArea.mjs.map +1 -0
- package/build/inputs/_BottomSheet.js +115 -0
- package/build/inputs/_BottomSheet.js.map +1 -0
- package/build/inputs/_BottomSheet.mjs +109 -0
- package/build/inputs/_BottomSheet.mjs.map +1 -0
- package/build/inputs/_ButtonInput.js +37 -0
- package/build/inputs/_ButtonInput.js.map +1 -0
- package/build/inputs/_ButtonInput.mjs +31 -0
- package/build/inputs/_ButtonInput.mjs.map +1 -0
- package/build/inputs/_Popover.js +120 -0
- package/build/inputs/_Popover.js.map +1 -0
- package/build/inputs/_Popover.mjs +114 -0
- package/build/inputs/_Popover.mjs.map +1 -0
- package/build/inputs/_common.js +23 -0
- package/build/inputs/_common.js.map +1 -0
- package/build/inputs/_common.mjs +17 -0
- package/build/inputs/_common.mjs.map +1 -0
- package/build/inputs/contexts.js +42 -0
- package/build/inputs/contexts.js.map +1 -0
- package/build/inputs/contexts.mjs +35 -0
- package/build/inputs/contexts.mjs.map +1 -0
- package/build/instructionsList/InstructionsList.js +66 -0
- package/build/instructionsList/InstructionsList.js.map +1 -0
- package/build/instructionsList/InstructionsList.mjs +60 -0
- package/build/instructionsList/InstructionsList.mjs.map +1 -0
- package/build/label/Label.js +25 -0
- package/build/label/Label.js.map +1 -0
- package/build/label/Label.mjs +19 -0
- package/build/label/Label.mjs.map +1 -0
- package/build/link/Link.js +42 -0
- package/build/link/Link.js.map +1 -0
- package/build/link/Link.messages.js +12 -0
- package/build/link/Link.messages.js.map +1 -0
- package/build/link/Link.messages.mjs +10 -0
- package/build/link/Link.messages.mjs.map +1 -0
- package/build/link/Link.mjs +36 -0
- package/build/link/Link.mjs.map +1 -0
- package/build/listItem/ListItem.js +50 -0
- package/build/listItem/ListItem.js.map +1 -0
- package/build/listItem/ListItem.mjs +44 -0
- package/build/listItem/ListItem.mjs.map +1 -0
- package/build/loader/Loader.js +68 -0
- package/build/loader/Loader.js.map +1 -0
- package/build/loader/Loader.mjs +62 -0
- package/build/loader/Loader.mjs.map +1 -0
- package/build/logo/Logo.js +176 -0
- package/build/logo/Logo.js.map +1 -0
- package/build/logo/Logo.mjs +168 -0
- package/build/logo/Logo.mjs.map +1 -0
- package/build/markdown/Markdown.js +75 -0
- package/build/markdown/Markdown.js.map +1 -0
- package/build/markdown/Markdown.mjs +69 -0
- package/build/markdown/Markdown.mjs.map +1 -0
- package/build/modal/Modal.js +113 -0
- package/build/modal/Modal.js.map +1 -0
- package/build/modal/Modal.mjs +107 -0
- package/build/modal/Modal.mjs.map +1 -0
- package/build/money/Money.js +20 -0
- package/build/money/Money.js.map +1 -0
- package/build/money/Money.mjs +18 -0
- package/build/money/Money.mjs.map +1 -0
- package/build/moneyInput/MoneyInput.js +369 -0
- package/build/moneyInput/MoneyInput.js.map +1 -0
- package/build/moneyInput/MoneyInput.messages.js +12 -0
- package/build/moneyInput/MoneyInput.messages.js.map +1 -0
- package/build/moneyInput/MoneyInput.messages.mjs +10 -0
- package/build/moneyInput/MoneyInput.messages.mjs.map +1 -0
- package/build/moneyInput/MoneyInput.mjs +363 -0
- package/build/moneyInput/MoneyInput.mjs.map +1 -0
- package/build/moneyInput/currencyFormatting.js +70 -0
- package/build/moneyInput/currencyFormatting.js.map +1 -0
- package/build/moneyInput/currencyFormatting.mjs +64 -0
- package/build/moneyInput/currencyFormatting.mjs.map +1 -0
- package/build/navigationOption/NavigationOption.js +48 -0
- package/build/navigationOption/NavigationOption.js.map +1 -0
- package/build/navigationOption/NavigationOption.mjs +42 -0
- package/build/navigationOption/NavigationOption.mjs.map +1 -0
- package/build/navigationOptionsList/NavigationOptionsList.js +19 -0
- package/build/navigationOptionsList/NavigationOptionsList.js.map +1 -0
- package/build/navigationOptionsList/NavigationOptionsList.mjs +17 -0
- package/build/navigationOptionsList/NavigationOptionsList.mjs.map +1 -0
- package/build/nudge/Nudge.js +121 -0
- package/build/nudge/Nudge.js.map +1 -0
- package/build/nudge/Nudge.mjs +112 -0
- package/build/nudge/Nudge.mjs.map +1 -0
- package/build/overlayHeader/OverlayHeader.js +40 -0
- package/build/overlayHeader/OverlayHeader.js.map +1 -0
- package/build/overlayHeader/OverlayHeader.mjs +34 -0
- package/build/overlayHeader/OverlayHeader.mjs.map +1 -0
- package/build/phoneNumberInput/PhoneNumberInput.js +161 -0
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -0
- package/build/phoneNumberInput/PhoneNumberInput.messages.js +12 -0
- package/build/phoneNumberInput/PhoneNumberInput.messages.js.map +1 -0
- package/build/phoneNumberInput/PhoneNumberInput.messages.mjs +10 -0
- package/build/phoneNumberInput/PhoneNumberInput.messages.mjs.map +1 -0
- package/build/phoneNumberInput/PhoneNumberInput.mjs +159 -0
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -0
- package/build/phoneNumberInput/data/countries.js +1278 -0
- package/build/phoneNumberInput/data/countries.js.map +1 -0
- package/build/phoneNumberInput/data/countries.mjs +1276 -0
- package/build/phoneNumberInput/data/countries.mjs.map +1 -0
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js +7 -0
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js.map +1 -0
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs +5 -0
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs.map +1 -0
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js +19 -0
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js.map +1 -0
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs +17 -0
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs.map +1 -0
- package/build/phoneNumberInput/utils/explodeNumberModel/index.js +21 -0
- package/build/phoneNumberInput/utils/explodeNumberModel/index.js.map +1 -0
- package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs +19 -0
- package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs.map +1 -0
- package/build/phoneNumberInput/utils/findCountryByCode/index.js +17 -0
- package/build/phoneNumberInput/utils/findCountryByCode/index.js.map +1 -0
- package/build/phoneNumberInput/utils/findCountryByCode/index.mjs +15 -0
- package/build/phoneNumberInput/utils/findCountryByCode/index.mjs.map +1 -0
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.js +17 -0
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.js.map +1 -0
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs +15 -0
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs.map +1 -0
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js +12 -0
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js.map +1 -0
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs +10 -0
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs.map +1 -0
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js +11 -0
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js.map +1 -0
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs +9 -0
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs.map +1 -0
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js +6 -0
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js.map +1 -0
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs +4 -0
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs.map +1 -0
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.js +22 -0
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.js.map +1 -0
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs +20 -0
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs.map +1 -0
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js +8 -0
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js.map +1 -0
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs +6 -0
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs.map +1 -0
- package/build/popover/Popover.js +79 -0
- package/build/popover/Popover.js.map +1 -0
- package/build/popover/Popover.mjs +73 -0
- package/build/popover/Popover.mjs.map +1 -0
- package/build/processIndicator/ProcessIndicator.js +120 -0
- package/build/processIndicator/ProcessIndicator.js.map +1 -0
- package/build/processIndicator/ProcessIndicator.mjs +114 -0
- package/build/processIndicator/ProcessIndicator.mjs.map +1 -0
- package/build/progress/Progress.js +24 -0
- package/build/progress/Progress.js.map +1 -0
- package/build/progress/Progress.mjs +18 -0
- package/build/progress/Progress.mjs.map +1 -0
- package/build/progressBar/ProgressBar.js +51 -0
- package/build/progressBar/ProgressBar.js.map +1 -0
- package/build/progressBar/ProgressBar.mjs +45 -0
- package/build/progressBar/ProgressBar.mjs.map +1 -0
- package/build/promoCard/PromoCard.js +189 -0
- package/build/promoCard/PromoCard.js.map +1 -0
- package/build/promoCard/PromoCard.mjs +182 -0
- package/build/promoCard/PromoCard.mjs.map +1 -0
- package/build/promoCard/PromoCardContext.js +33 -0
- package/build/promoCard/PromoCardContext.js.map +1 -0
- package/build/promoCard/PromoCardContext.mjs +27 -0
- package/build/promoCard/PromoCardContext.mjs.map +1 -0
- package/build/promoCard/PromoCardGroup.js +80 -0
- package/build/promoCard/PromoCardGroup.js.map +1 -0
- package/build/promoCard/PromoCardGroup.mjs +73 -0
- package/build/promoCard/PromoCardGroup.mjs.map +1 -0
- package/build/promoCard/PromoCardIndicator.js +53 -0
- package/build/promoCard/PromoCardIndicator.js.map +1 -0
- package/build/promoCard/PromoCardIndicator.mjs +47 -0
- package/build/promoCard/PromoCardIndicator.mjs.map +1 -0
- package/build/provider/Provider.js +53 -0
- package/build/provider/Provider.js.map +1 -0
- package/build/provider/Provider.mjs +51 -0
- package/build/provider/Provider.mjs.map +1 -0
- package/build/provider/direction/DirectionProvider.js +20 -0
- package/build/provider/direction/DirectionProvider.js.map +1 -0
- package/build/provider/direction/DirectionProvider.mjs +17 -0
- package/build/provider/direction/DirectionProvider.mjs.map +1 -0
- package/build/provider/language/LanguageProvider.js +20 -0
- package/build/provider/language/LanguageProvider.js.map +1 -0
- package/build/provider/language/LanguageProvider.mjs +17 -0
- package/build/provider/language/LanguageProvider.mjs.map +1 -0
- package/build/radio/Radio.js +63 -0
- package/build/radio/Radio.js.map +1 -0
- package/build/radio/Radio.mjs +57 -0
- package/build/radio/Radio.mjs.map +1 -0
- package/build/radioGroup/RadioGroup.js +40 -0
- package/build/radioGroup/RadioGroup.js.map +1 -0
- package/build/radioGroup/RadioGroup.mjs +38 -0
- package/build/radioGroup/RadioGroup.mjs.map +1 -0
- package/build/radioOption/RadioOption.js +46 -0
- package/build/radioOption/RadioOption.js.map +1 -0
- package/build/radioOption/RadioOption.mjs +44 -0
- package/build/radioOption/RadioOption.mjs.map +1 -0
- package/build/section/Section.js +24 -0
- package/build/section/Section.js.map +1 -0
- package/build/section/Section.mjs +18 -0
- package/build/section/Section.mjs.map +1 -0
- package/build/segmentedControl/SegmentedControl.js +115 -0
- package/build/segmentedControl/SegmentedControl.js.map +1 -0
- package/build/segmentedControl/SegmentedControl.mjs +109 -0
- package/build/segmentedControl/SegmentedControl.mjs.map +1 -0
- package/build/select/Select.js +579 -0
- package/build/select/Select.js.map +1 -0
- package/build/select/Select.messages.js +12 -0
- package/build/select/Select.messages.js.map +1 -0
- package/build/select/Select.messages.mjs +10 -0
- package/build/select/Select.messages.mjs.map +1 -0
- package/build/select/Select.mjs +572 -0
- package/build/select/Select.mjs.map +1 -0
- package/build/select/index.js +8 -0
- package/build/select/index.js.map +1 -0
- package/build/select/index.mjs +6 -0
- package/build/select/index.mjs.map +1 -0
- package/build/select/option/Option.js +58 -0
- package/build/select/option/Option.js.map +1 -0
- package/build/select/option/Option.mjs +52 -0
- package/build/select/option/Option.mjs.map +1 -0
- package/build/select/option/index.js +8 -0
- package/build/select/option/index.js.map +1 -0
- package/build/select/option/index.mjs +6 -0
- package/build/select/option/index.mjs.map +1 -0
- package/build/select/searchBox/SearchBox.js +54 -0
- package/build/select/searchBox/SearchBox.js.map +1 -0
- package/build/select/searchBox/SearchBox.mjs +48 -0
- package/build/select/searchBox/SearchBox.mjs.map +1 -0
- package/build/slidingPanel/SlidingPanel.js +51 -0
- package/build/slidingPanel/SlidingPanel.js.map +1 -0
- package/build/slidingPanel/SlidingPanel.mjs +42 -0
- package/build/slidingPanel/SlidingPanel.mjs.map +1 -0
- package/build/snackbar/Snackbar.js +128 -0
- package/build/snackbar/Snackbar.js.map +1 -0
- package/build/snackbar/Snackbar.mjs +123 -0
- package/build/snackbar/Snackbar.mjs.map +1 -0
- package/build/snackbar/SnackbarContext.js +12 -0
- package/build/snackbar/SnackbarContext.js.map +1 -0
- package/build/snackbar/SnackbarContext.mjs +9 -0
- package/build/snackbar/SnackbarContext.mjs.map +1 -0
- package/build/snackbar/SnackbarProvider.js +48 -0
- package/build/snackbar/SnackbarProvider.js.map +1 -0
- package/build/snackbar/SnackbarProvider.mjs +46 -0
- package/build/snackbar/SnackbarProvider.mjs.map +1 -0
- package/build/snackbar/useSnackbar.js +14 -0
- package/build/snackbar/useSnackbar.js.map +1 -0
- package/build/snackbar/useSnackbar.mjs +12 -0
- package/build/snackbar/useSnackbar.mjs.map +1 -0
- package/build/statusIcon/StatusIcon.js +37 -0
- package/build/statusIcon/StatusIcon.js.map +1 -0
- package/build/statusIcon/StatusIcon.mjs +31 -0
- package/build/statusIcon/StatusIcon.mjs.map +1 -0
- package/build/stepper/Stepper.js +80 -0
- package/build/stepper/Stepper.js.map +1 -0
- package/build/stepper/Stepper.mjs +74 -0
- package/build/stepper/Stepper.mjs.map +1 -0
- package/build/stepper/deviceDetection.js +22 -0
- package/build/stepper/deviceDetection.js.map +1 -0
- package/build/stepper/deviceDetection.mjs +20 -0
- package/build/stepper/deviceDetection.mjs.map +1 -0
- package/build/sticky/Sticky.js +24 -0
- package/build/sticky/Sticky.js.map +1 -0
- package/build/sticky/Sticky.mjs +22 -0
- package/build/sticky/Sticky.mjs.map +1 -0
- package/build/summary/Summary.js +119 -0
- package/build/summary/Summary.js.map +1 -0
- package/build/summary/Summary.messages.js +18 -0
- package/build/summary/Summary.messages.js.map +1 -0
- package/build/summary/Summary.messages.mjs +16 -0
- package/build/summary/Summary.messages.mjs.map +1 -0
- package/build/summary/Summary.mjs +113 -0
- package/build/summary/Summary.mjs.map +1 -0
- package/build/switch/Switch.js +82 -0
- package/build/switch/Switch.js.map +1 -0
- package/build/switch/Switch.mjs +76 -0
- package/build/switch/Switch.mjs.map +1 -0
- package/build/switchOption/SwitchOption.js +59 -0
- package/build/switchOption/SwitchOption.js.map +1 -0
- package/build/switchOption/SwitchOption.mjs +57 -0
- package/build/switchOption/SwitchOption.mjs.map +1 -0
- package/build/tabs/Tab.js +81 -0
- package/build/tabs/Tab.js.map +1 -0
- package/build/tabs/Tab.mjs +74 -0
- package/build/tabs/Tab.mjs.map +1 -0
- package/build/tabs/TabList.js +24 -0
- package/build/tabs/TabList.js.map +1 -0
- package/build/tabs/TabList.mjs +18 -0
- package/build/tabs/TabList.mjs.map +1 -0
- package/build/tabs/TabPanel.js +35 -0
- package/build/tabs/TabPanel.js.map +1 -0
- package/build/tabs/TabPanel.mjs +29 -0
- package/build/tabs/TabPanel.mjs.map +1 -0
- package/build/tabs/Tabs.js +541 -0
- package/build/tabs/Tabs.js.map +1 -0
- package/build/tabs/Tabs.mjs +533 -0
- package/build/tabs/Tabs.mjs.map +1 -0
- package/build/tabs/utils.js +50 -0
- package/build/tabs/utils.js.map +1 -0
- package/build/tabs/utils.mjs +42 -0
- package/build/tabs/utils.mjs.map +1 -0
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js +15 -0
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js.map +1 -0
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs +13 -0
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs.map +1 -0
- package/build/tile/Tile.js +58 -0
- package/build/tile/Tile.js.map +1 -0
- package/build/tile/Tile.mjs +52 -0
- package/build/tile/Tile.mjs.map +1 -0
- package/build/title/Title.js +42 -0
- package/build/title/Title.js.map +1 -0
- package/build/title/Title.mjs +36 -0
- package/build/title/Title.mjs.map +1 -0
- package/build/tooltip/Tooltip.js +103 -0
- package/build/tooltip/Tooltip.js.map +1 -0
- package/build/tooltip/Tooltip.mjs +97 -0
- package/build/tooltip/Tooltip.mjs.map +1 -0
- package/build/typeahead/Typeahead.js +468 -0
- package/build/typeahead/Typeahead.js.map +1 -0
- package/build/typeahead/Typeahead.mjs +460 -0
- package/build/typeahead/Typeahead.mjs.map +1 -0
- package/build/typeahead/typeaheadInput/TypeaheadInput.js +120 -0
- package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -0
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs +114 -0
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -0
- package/build/typeahead/typeaheadOption/TypeaheadOption.js +49 -0
- package/build/typeahead/typeaheadOption/TypeaheadOption.js.map +1 -0
- package/build/typeahead/typeaheadOption/TypeaheadOption.mjs +43 -0
- package/build/typeahead/typeaheadOption/TypeaheadOption.mjs.map +1 -0
- package/build/typeahead/util/highlight.js +21 -0
- package/build/typeahead/util/highlight.js.map +1 -0
- package/build/typeahead/util/highlight.mjs +19 -0
- package/build/typeahead/util/highlight.mjs.map +1 -0
- package/build/types/inputs/InputGroup.d.ts.map +1 -1
- package/build/upload/Upload.js +366 -0
- package/build/upload/Upload.js.map +1 -0
- package/build/upload/Upload.messages.js +39 -0
- package/build/upload/Upload.messages.js.map +1 -0
- package/build/upload/Upload.messages.mjs +37 -0
- package/build/upload/Upload.messages.mjs.map +1 -0
- package/build/upload/Upload.mjs +356 -0
- package/build/upload/Upload.mjs.map +1 -0
- package/build/upload/steps/completeStep/completeStep.js +65 -0
- package/build/upload/steps/completeStep/completeStep.js.map +1 -0
- package/build/upload/steps/completeStep/completeStep.mjs +63 -0
- package/build/upload/steps/completeStep/completeStep.mjs.map +1 -0
- package/build/upload/steps/processingStep/processingStep.js +50 -0
- package/build/upload/steps/processingStep/processingStep.js.map +1 -0
- package/build/upload/steps/processingStep/processingStep.mjs +48 -0
- package/build/upload/steps/processingStep/processingStep.mjs.map +1 -0
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +88 -0
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -0
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +86 -0
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -0
- package/build/upload/utils/asyncFileRead/asyncFileRead.js +17 -0
- package/build/upload/utils/asyncFileRead/asyncFileRead.js.map +1 -0
- package/build/upload/utils/asyncFileRead/asyncFileRead.mjs +15 -0
- package/build/upload/utils/asyncFileRead/asyncFileRead.mjs.map +1 -0
- package/build/upload/utils/getFileType/getFileType.js +18 -0
- package/build/upload/utils/getFileType/getFileType.js.map +1 -0
- package/build/upload/utils/getFileType/getFileType.mjs +16 -0
- package/build/upload/utils/getFileType/getFileType.mjs.map +1 -0
- package/build/upload/utils/isSizeValid/isSizeValid.js +8 -0
- package/build/upload/utils/isSizeValid/isSizeValid.js.map +1 -0
- package/build/upload/utils/isSizeValid/isSizeValid.mjs +6 -0
- package/build/upload/utils/isSizeValid/isSizeValid.mjs.map +1 -0
- package/build/upload/utils/isTypeValid/isTypeValid.js +21 -0
- package/build/upload/utils/isTypeValid/isTypeValid.js.map +1 -0
- package/build/upload/utils/isTypeValid/isTypeValid.mjs +19 -0
- package/build/upload/utils/isTypeValid/isTypeValid.mjs.map +1 -0
- package/build/upload/utils/postData/postData.js +31 -0
- package/build/upload/utils/postData/postData.js.map +1 -0
- package/build/upload/utils/postData/postData.mjs +28 -0
- package/build/upload/utils/postData/postData.mjs.map +1 -0
- package/build/uploadInput/UploadInput.js +259 -0
- package/build/uploadInput/UploadInput.js.map +1 -0
- package/build/uploadInput/UploadInput.messages.js +30 -0
- package/build/uploadInput/UploadInput.messages.js.map +1 -0
- package/build/uploadInput/UploadInput.messages.mjs +28 -0
- package/build/uploadInput/UploadInput.messages.mjs.map +1 -0
- package/build/uploadInput/UploadInput.mjs +253 -0
- package/build/uploadInput/UploadInput.mjs.map +1 -0
- package/build/uploadInput/uploadButton/UploadButton.js +186 -0
- package/build/uploadInput/uploadButton/UploadButton.js.map +1 -0
- package/build/uploadInput/uploadButton/UploadButton.messages.js +24 -0
- package/build/uploadInput/uploadButton/UploadButton.messages.js.map +1 -0
- package/build/uploadInput/uploadButton/UploadButton.messages.mjs +22 -0
- package/build/uploadInput/uploadButton/UploadButton.messages.mjs.map +1 -0
- package/build/uploadInput/uploadButton/UploadButton.mjs +178 -0
- package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -0
- package/build/uploadInput/uploadButton/defaults.js +10 -0
- package/build/uploadInput/uploadButton/defaults.js.map +1 -0
- package/build/uploadInput/uploadButton/defaults.mjs +7 -0
- package/build/uploadInput/uploadButton/defaults.mjs.map +1 -0
- package/build/uploadInput/uploadButton/getAllowedFileTypes.js +8 -0
- package/build/uploadInput/uploadButton/getAllowedFileTypes.js.map +1 -0
- package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs +6 -0
- package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs.map +1 -0
- package/build/uploadInput/uploadItem/UploadItem.js +174 -0
- package/build/uploadInput/uploadItem/UploadItem.js.map +1 -0
- package/build/uploadInput/uploadItem/UploadItem.messages.js +27 -0
- package/build/uploadInput/uploadItem/UploadItem.messages.js.map +1 -0
- package/build/uploadInput/uploadItem/UploadItem.messages.mjs +25 -0
- package/build/uploadInput/uploadItem/UploadItem.messages.mjs.map +1 -0
- package/build/uploadInput/uploadItem/UploadItem.mjs +166 -0
- package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -0
- package/build/uploadInput/uploadItem/UploadItemBody.js +27 -0
- package/build/uploadInput/uploadItem/UploadItemBody.js.map +1 -0
- package/build/uploadInput/uploadItem/UploadItemBody.mjs +25 -0
- package/build/uploadInput/uploadItem/UploadItemBody.mjs.map +1 -0
- package/build/utilities/cssValueWithUnit.js +8 -0
- package/build/utilities/cssValueWithUnit.js.map +1 -0
- package/build/utilities/cssValueWithUnit.mjs +6 -0
- package/build/utilities/cssValueWithUnit.mjs.map +1 -0
- package/build/utilities/logActionRequired.js +17 -0
- package/build/utilities/logActionRequired.js.map +1 -0
- package/build/utilities/logActionRequired.mjs +14 -0
- package/build/utilities/logActionRequired.mjs.map +1 -0
- package/build/withDisplayFormat/WithDisplayFormat.js +304 -0
- package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -0
- package/build/withDisplayFormat/WithDisplayFormat.mjs +282 -0
- package/build/withDisplayFormat/WithDisplayFormat.mjs.map +1 -0
- package/build/withNextPortal/withNextPortal.js +20 -0
- package/build/withNextPortal/withNextPortal.js.map +1 -0
- package/build/withNextPortal/withNextPortal.mjs +18 -0
- package/build/withNextPortal/withNextPortal.mjs.map +1 -0
- package/package.json +4 -3
- package/src/common/hooks/useVirtualKeyboard.ts +1 -1
- package/src/inputs/InputGroup.spec.tsx +6 -1
- package/src/inputs/InputGroup.tsx +39 -45
- package/src/inputs/SearchInput.spec.tsx +1 -1
- package/src/inputs/SelectInput.spec.tsx +1 -1
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import { isNumber, isEmpty, isNull } from '@transferwise/neptune-validation';
|
|
2
|
+
import { Flag } from '@wise/art';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { Component } from 'react';
|
|
5
|
+
import { injectIntl } from 'react-intl';
|
|
6
|
+
import { Size } from '../common/propsValues/size.mjs';
|
|
7
|
+
import { withInputAttributes } from '../inputs/contexts.mjs';
|
|
8
|
+
import { Input } from '../inputs/Input.mjs';
|
|
9
|
+
import { SelectInput, SelectInputOptionContent } from '../inputs/SelectInput.mjs';
|
|
10
|
+
import Title from '../title/Title.mjs';
|
|
11
|
+
import messages from './MoneyInput.messages.mjs';
|
|
12
|
+
import { parseAmount } from './currencyFormatting.mjs';
|
|
13
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
14
|
+
import { Typography } from '../common/propsValues/typography.mjs';
|
|
15
|
+
import { formatAmount } from '@transferwise/formatting';
|
|
16
|
+
|
|
17
|
+
const isNumberOrNull = v => isNumber(v) || isNull(v);
|
|
18
|
+
const formatAmountIfSet = ({
|
|
19
|
+
amount,
|
|
20
|
+
currency,
|
|
21
|
+
locale,
|
|
22
|
+
maxLengthOverride
|
|
23
|
+
}) => {
|
|
24
|
+
if (maxLengthOverride) {
|
|
25
|
+
return amount != null ? String(amount) : '';
|
|
26
|
+
}
|
|
27
|
+
return typeof amount === 'number' ? formatAmount(amount, currency, locale) : '';
|
|
28
|
+
};
|
|
29
|
+
const parseNumber = ({
|
|
30
|
+
amount,
|
|
31
|
+
currency,
|
|
32
|
+
locale,
|
|
33
|
+
maxLengthOverride
|
|
34
|
+
}) => {
|
|
35
|
+
if (maxLengthOverride && amount.length > maxLengthOverride) {
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
return parseAmount(amount, currency, locale);
|
|
39
|
+
};
|
|
40
|
+
const allowedInputKeys = new Set(['Backspace', 'Delete', ',', '.', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', 'Escape', 'Tab']);
|
|
41
|
+
class MoneyInput extends Component {
|
|
42
|
+
static defaultProps = {
|
|
43
|
+
size: Size.LARGE,
|
|
44
|
+
classNames: {},
|
|
45
|
+
selectProps: {}
|
|
46
|
+
};
|
|
47
|
+
amountFocused = false;
|
|
48
|
+
constructor(props) {
|
|
49
|
+
super(props);
|
|
50
|
+
this.state = {
|
|
51
|
+
searchQuery: '',
|
|
52
|
+
formattedAmount: formatAmountIfSet({
|
|
53
|
+
amount: props.amount,
|
|
54
|
+
currency: props.selectedCurrency.currency,
|
|
55
|
+
locale: props.intl.locale,
|
|
56
|
+
maxLengthOverride: props.maxLengthOverride
|
|
57
|
+
}),
|
|
58
|
+
locale: props.intl.locale
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
62
|
+
this.setState({
|
|
63
|
+
locale: nextProps.intl.locale
|
|
64
|
+
});
|
|
65
|
+
if (!this.amountFocused) {
|
|
66
|
+
this.setState({
|
|
67
|
+
formattedAmount: formatAmountIfSet({
|
|
68
|
+
amount: nextProps.amount,
|
|
69
|
+
currency: nextProps.selectedCurrency.currency,
|
|
70
|
+
locale: nextProps.intl.locale,
|
|
71
|
+
maxLengthOverride: nextProps.maxLengthOverride
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
isInputAllowedForKeyEvent = event => {
|
|
77
|
+
const {
|
|
78
|
+
metaKey,
|
|
79
|
+
key,
|
|
80
|
+
ctrlKey
|
|
81
|
+
} = event;
|
|
82
|
+
const isNumberKey = isNumber(Number.parseInt(key, 10));
|
|
83
|
+
return isNumberKey || metaKey || ctrlKey || allowedInputKeys.has(key);
|
|
84
|
+
};
|
|
85
|
+
handleKeyDown = event => {
|
|
86
|
+
if (!this.isInputAllowedForKeyEvent(event)) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
handlePaste = event => {
|
|
91
|
+
const paste = event.clipboardData.getData('text');
|
|
92
|
+
const {
|
|
93
|
+
locale
|
|
94
|
+
} = this.state;
|
|
95
|
+
const parsed = isEmpty(paste) ? null : parseNumber({
|
|
96
|
+
amount: paste,
|
|
97
|
+
currency: this.props.selectedCurrency.currency,
|
|
98
|
+
locale,
|
|
99
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
100
|
+
});
|
|
101
|
+
if (isNumberOrNull(parsed)) {
|
|
102
|
+
this.setState({
|
|
103
|
+
formattedAmount: formatAmountIfSet({
|
|
104
|
+
amount: parsed,
|
|
105
|
+
currency: this.props.selectedCurrency.currency,
|
|
106
|
+
locale,
|
|
107
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
this.props.onAmountChange?.(parsed);
|
|
111
|
+
}
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
};
|
|
114
|
+
onAmountChange = event => {
|
|
115
|
+
const {
|
|
116
|
+
value
|
|
117
|
+
} = event.target;
|
|
118
|
+
this.setState({
|
|
119
|
+
formattedAmount: value
|
|
120
|
+
});
|
|
121
|
+
const parsed = isEmpty(value) ? null : parseNumber({
|
|
122
|
+
amount: value,
|
|
123
|
+
currency: this.props.selectedCurrency.currency,
|
|
124
|
+
locale: this.state.locale,
|
|
125
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
126
|
+
});
|
|
127
|
+
if (isNumberOrNull(parsed)) {
|
|
128
|
+
this.props.onAmountChange?.(parsed);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
onAmountBlur = () => {
|
|
132
|
+
this.amountFocused = false;
|
|
133
|
+
this.setAmount();
|
|
134
|
+
};
|
|
135
|
+
onAmountFocus = () => {
|
|
136
|
+
this.amountFocused = true;
|
|
137
|
+
};
|
|
138
|
+
getSelectOptions() {
|
|
139
|
+
const selectOptions = filterCurrenciesForQuery(this.props.currencies, this.state.searchQuery);
|
|
140
|
+
const formattedOptions = [];
|
|
141
|
+
let currentGroupOptions;
|
|
142
|
+
selectOptions.forEach(item => {
|
|
143
|
+
if (item.header != null) {
|
|
144
|
+
currentGroupOptions = [];
|
|
145
|
+
formattedOptions.push({
|
|
146
|
+
type: 'group',
|
|
147
|
+
label: item.header,
|
|
148
|
+
options: currentGroupOptions
|
|
149
|
+
});
|
|
150
|
+
} else {
|
|
151
|
+
(currentGroupOptions ?? formattedOptions).push({
|
|
152
|
+
type: 'option',
|
|
153
|
+
value: item,
|
|
154
|
+
filterMatchers: [item.value, item.label, item.note ?? '', item.searchable ?? '']
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
return formattedOptions;
|
|
159
|
+
}
|
|
160
|
+
setAmount() {
|
|
161
|
+
this.setState(previousState => {
|
|
162
|
+
const parsed = parseNumber({
|
|
163
|
+
amount: previousState.formattedAmount,
|
|
164
|
+
currency: this.props.selectedCurrency.currency,
|
|
165
|
+
locale: previousState.locale,
|
|
166
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
167
|
+
});
|
|
168
|
+
if (!isNumberOrNull(parsed)) {
|
|
169
|
+
return {
|
|
170
|
+
formattedAmount: previousState.formattedAmount
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
formattedAmount: formatAmountIfSet({
|
|
175
|
+
amount: parsed,
|
|
176
|
+
currency: this.props.selectedCurrency.currency,
|
|
177
|
+
locale: previousState.locale,
|
|
178
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
179
|
+
})
|
|
180
|
+
};
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
handleSelectChange = value => {
|
|
184
|
+
this.handleSearchChange('');
|
|
185
|
+
this.props.onCurrencyChange?.(value);
|
|
186
|
+
};
|
|
187
|
+
handleCustomAction = () => {
|
|
188
|
+
this.handleSearchChange('');
|
|
189
|
+
this.props.onCustomAction?.();
|
|
190
|
+
};
|
|
191
|
+
handleSearchChange = searchQuery => {
|
|
192
|
+
this.setState({
|
|
193
|
+
searchQuery
|
|
194
|
+
});
|
|
195
|
+
this.props.onSearchChange?.({
|
|
196
|
+
searchQuery,
|
|
197
|
+
filteredOptions: filterCurrenciesForQuery(this.props.currencies, searchQuery)
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
style = className => this.props.classNames[className] || className;
|
|
201
|
+
render() {
|
|
202
|
+
const {
|
|
203
|
+
inputAttributes,
|
|
204
|
+
id: amountInputId,
|
|
205
|
+
'aria-labelledby': ariaLabelledByProp,
|
|
206
|
+
selectedCurrency,
|
|
207
|
+
onCurrencyChange,
|
|
208
|
+
size,
|
|
209
|
+
addon,
|
|
210
|
+
selectProps,
|
|
211
|
+
maxLengthOverride
|
|
212
|
+
} = this.props;
|
|
213
|
+
const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];
|
|
214
|
+
const selectOptions = this.getSelectOptions();
|
|
215
|
+
const hasSingleCurrency = () => {
|
|
216
|
+
if (selectOptions.length !== 0) {
|
|
217
|
+
const firstItem = selectOptions[0];
|
|
218
|
+
if (selectOptions.length === 1) {
|
|
219
|
+
if (firstItem.type === 'option') {
|
|
220
|
+
return firstItem.value.currency === selectedCurrency.currency;
|
|
221
|
+
}
|
|
222
|
+
if (firstItem.type === 'group') {
|
|
223
|
+
return firstItem.options.length === 1 && !(this.props.onCustomAction && this.props.customActionLabel);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} else if (selectedCurrency?.currency) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
return false;
|
|
230
|
+
};
|
|
231
|
+
const isFixedCurrency = !this.state.searchQuery && hasSingleCurrency() || !onCurrencyChange;
|
|
232
|
+
const disabled = !this.props.onAmountChange;
|
|
233
|
+
return /*#__PURE__*/jsxs("div", {
|
|
234
|
+
role: "group",
|
|
235
|
+
...inputAttributes,
|
|
236
|
+
"aria-labelledby": ariaLabelledBy,
|
|
237
|
+
className: classNames(this.style('tw-money-input'), this.style('input-group'), this.style(`input-group-${size}`)),
|
|
238
|
+
children: [/*#__PURE__*/jsx(Input, {
|
|
239
|
+
id: amountInputId,
|
|
240
|
+
value: this.state.formattedAmount,
|
|
241
|
+
inputMode: "decimal",
|
|
242
|
+
disabled: disabled,
|
|
243
|
+
maxLength: maxLengthOverride,
|
|
244
|
+
placeholder: formatAmountIfSet({
|
|
245
|
+
amount: this.props.placeholder,
|
|
246
|
+
currency: this.props.selectedCurrency.currency,
|
|
247
|
+
locale: this.state.locale,
|
|
248
|
+
maxLengthOverride: this.props.maxLengthOverride
|
|
249
|
+
}),
|
|
250
|
+
autoComplete: "off",
|
|
251
|
+
onKeyDown: this.handleKeyDown,
|
|
252
|
+
onChange: this.onAmountChange,
|
|
253
|
+
onFocus: this.onAmountFocus,
|
|
254
|
+
onBlur: this.onAmountBlur,
|
|
255
|
+
onPaste: this.handlePaste
|
|
256
|
+
}), addon && /*#__PURE__*/jsx("span", {
|
|
257
|
+
className: classNames(this.style('input-group-addon'), this.style(`input-${size}`), disabled ? this.style('disabled') : ''),
|
|
258
|
+
children: addon
|
|
259
|
+
}), isFixedCurrency ? /*#__PURE__*/jsxs("div", {
|
|
260
|
+
className: classNames(this.style('input-group-addon'), this.style(`input-${size}`), this.style('tw-money-input__fixed-currency'), disabled ? this.style('disabled') : ''),
|
|
261
|
+
children: [(size === 'lg' || size === 'md') && /*#__PURE__*/jsx("span", {
|
|
262
|
+
className: classNames(this.style('money-input-currency-flag'), this.style('m-r-2')),
|
|
263
|
+
children: /*#__PURE__*/jsx(Flag, {
|
|
264
|
+
code: selectedCurrency.currency.toLowerCase(),
|
|
265
|
+
intrinsicSize: 24
|
|
266
|
+
})
|
|
267
|
+
}), /*#__PURE__*/jsx(Title, {
|
|
268
|
+
as: "span",
|
|
269
|
+
type: Typography.TITLE_SUBSECTION,
|
|
270
|
+
className: size === 'lg' ? this.style('m-r-1') : '',
|
|
271
|
+
children: selectedCurrency.currency.toUpperCase()
|
|
272
|
+
})]
|
|
273
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
274
|
+
className: classNames(this.style('input-group-btn'), this.style('amount-currency-select-btn')),
|
|
275
|
+
children: /*#__PURE__*/jsx(SelectInput, {
|
|
276
|
+
items: selectOptions,
|
|
277
|
+
value: selectedCurrency,
|
|
278
|
+
compareValues: "currency",
|
|
279
|
+
renderValue: (currency, withinTrigger) => {
|
|
280
|
+
return /*#__PURE__*/jsx(SelectInputOptionContent, {
|
|
281
|
+
title: withinTrigger ? currency.currency.toUpperCase() : currency.label,
|
|
282
|
+
note: withinTrigger ? undefined : currency.note,
|
|
283
|
+
icon: /*#__PURE__*/jsx(Flag, {
|
|
284
|
+
code: currency.currency,
|
|
285
|
+
intrinsicSize: 24
|
|
286
|
+
})
|
|
287
|
+
});
|
|
288
|
+
},
|
|
289
|
+
renderFooter: this.props.onCustomAction ? () =>
|
|
290
|
+
/*#__PURE__*/
|
|
291
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
292
|
+
jsx("div", {
|
|
293
|
+
role: "button",
|
|
294
|
+
tabIndex: 0,
|
|
295
|
+
onClick: this.handleCustomAction,
|
|
296
|
+
children: this.props.customActionLabel
|
|
297
|
+
}) : undefined,
|
|
298
|
+
placeholder: this.props.intl.formatMessage(messages.selectPlaceholder),
|
|
299
|
+
filterable: true,
|
|
300
|
+
filterPlaceholder: this.props.searchPlaceholder,
|
|
301
|
+
disabled: disabled,
|
|
302
|
+
size: size,
|
|
303
|
+
onChange: this.handleSelectChange,
|
|
304
|
+
onFilterChange: ({
|
|
305
|
+
queryNormalized
|
|
306
|
+
}) => {
|
|
307
|
+
this.handleSearchChange(queryNormalized ?? '');
|
|
308
|
+
},
|
|
309
|
+
...selectProps
|
|
310
|
+
})
|
|
311
|
+
})]
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function filterCurrenciesForQuery(currencies, query) {
|
|
316
|
+
if (!query) {
|
|
317
|
+
return [...currencies];
|
|
318
|
+
}
|
|
319
|
+
const options = currencies.filter(option => option.header == null);
|
|
320
|
+
const filteredOptions = removeDuplicateValueOptions(options).filter(option => currencyOptionFitsQuery(option, query));
|
|
321
|
+
return sortOptionsLabelsToFirst(filteredOptions, query);
|
|
322
|
+
}
|
|
323
|
+
function removeDuplicateValueOptions(options) {
|
|
324
|
+
const uniqueValues = new Set();
|
|
325
|
+
return options.filter(option => {
|
|
326
|
+
if (!uniqueValues.has(option.value)) {
|
|
327
|
+
uniqueValues.add(option.value);
|
|
328
|
+
return true;
|
|
329
|
+
}
|
|
330
|
+
return false;
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
function currencyOptionFitsQuery(option, query) {
|
|
334
|
+
if (!option.value) {
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
return contains(option.label, query) || contains(option.searchable, query) || contains(option.note, query);
|
|
338
|
+
}
|
|
339
|
+
function contains(property, query) {
|
|
340
|
+
return property?.toLowerCase().includes(query.toLowerCase());
|
|
341
|
+
}
|
|
342
|
+
function sortOptionsLabelsToFirst(options, query) {
|
|
343
|
+
return [...options].sort((first, second) => {
|
|
344
|
+
const firstContains = contains(first.label, query);
|
|
345
|
+
const secondContains = contains(second.label, query);
|
|
346
|
+
if (firstContains && secondContains) {
|
|
347
|
+
return 0;
|
|
348
|
+
}
|
|
349
|
+
if (firstContains) {
|
|
350
|
+
return -1;
|
|
351
|
+
}
|
|
352
|
+
if (secondContains) {
|
|
353
|
+
return 1;
|
|
354
|
+
}
|
|
355
|
+
return 0;
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
var MoneyInput$1 = injectIntl(withInputAttributes(MoneyInput, {
|
|
359
|
+
nonLabelable: true
|
|
360
|
+
}));
|
|
361
|
+
|
|
362
|
+
export { MoneyInput$1 as default };
|
|
363
|
+
//# sourceMappingURL=MoneyInput.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoneyInput.mjs","sources":["../../src/moneyInput/MoneyInput.tsx"],"sourcesContent":["import { isEmpty, isNumber, isNull } from '@transferwise/neptune-validation';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Typography } from '../common';\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../common/propsValues/size';\nimport { withInputAttributes, WithInputAttributesProps } from '../inputs/contexts';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputItem,\n SelectInputOptionContent,\n SelectInputOptionItem,\n SelectInputProps,\n} from '../inputs/SelectInput';\nimport Title from '../title';\n\nimport messages from './MoneyInput.messages';\nimport { formatAmount, parseAmount } from './currencyFormatting';\n\nexport interface CurrencyOptionItem {\n header?: never;\n value: string;\n label: string;\n currency: string;\n note?: string;\n searchable?: string;\n}\n\nexport interface CurrencyHeaderItem {\n header: string;\n}\n\nexport type CurrencyItem = CurrencyOptionItem | CurrencyHeaderItem;\n\nconst isNumberOrNull = (v: unknown): v is number | null => isNumber(v) || isNull(v);\n\nconst formatAmountIfSet = ({\n amount,\n currency,\n locale,\n maxLengthOverride,\n}: {\n amount: number | null | undefined;\n currency: string;\n locale: string;\n maxLengthOverride?: number;\n}) => {\n if (maxLengthOverride) {\n return amount != null ? String(amount) : '';\n }\n return typeof amount === 'number' ? formatAmount(amount, currency, locale) : '';\n};\n\nconst parseNumber = ({\n amount,\n currency,\n locale,\n maxLengthOverride,\n}: {\n amount: string;\n currency: string;\n locale: string;\n maxLengthOverride?: number;\n}) => {\n if (maxLengthOverride && amount.length > maxLengthOverride) {\n return 0;\n }\n return parseAmount(amount, currency, locale);\n};\n\nconst allowedInputKeys = new Set([\n 'Backspace',\n 'Delete',\n ',',\n '.',\n 'ArrowDown',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowRight',\n 'Enter',\n 'Escape',\n 'Tab',\n]);\n\nexport interface MoneyInputProps extends WrappedComponentProps {\n id?: string;\n 'aria-labelledby'?: string;\n currencies: readonly CurrencyItem[];\n selectedCurrency: CurrencyOptionItem;\n onCurrencyChange?: (value: CurrencyOptionItem) => void;\n placeholder?: number;\n amount: number | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n onAmountChange?: (value: number | null) => void;\n addon?: React.ReactNode;\n searchPlaceholder?: string;\n /**\n * Allows the consumer to react to searching, while the search itself is handled internally.\n */\n onSearchChange?: (value: { searchQuery: string; filteredOptions: CurrencyItem[] }) => void;\n customActionLabel?: React.ReactNode;\n onCustomAction?: () => void;\n classNames?: Record<string, string>;\n selectProps?: Partial<SelectInputProps<CurrencyOptionItem>>;\n maxLengthOverride?: number;\n}\n\ntype MoneyInputPropsWithInputAttributes = MoneyInputProps & Partial<WithInputAttributesProps>;\n\ninterface MoneyInputState {\n searchQuery: string;\n formattedAmount: string;\n locale: string;\n}\n\nclass MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInputState> {\n declare props: MoneyInputPropsWithInputAttributes &\n Required<Pick<MoneyInputPropsWithInputAttributes, keyof typeof MoneyInput.defaultProps>>;\n\n static defaultProps = {\n size: Size.LARGE,\n classNames: {},\n selectProps: {},\n } satisfies Partial<MoneyInputPropsWithInputAttributes>;\n\n amountFocused = false;\n\n constructor(props: MoneyInputProps) {\n super(props);\n this.state = {\n searchQuery: '',\n formattedAmount: formatAmountIfSet({\n amount: props.amount,\n currency: props.selectedCurrency.currency,\n locale: props.intl.locale,\n maxLengthOverride: props.maxLengthOverride,\n }),\n locale: props.intl.locale,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: MoneyInputProps) {\n this.setState({ locale: nextProps.intl.locale });\n\n if (!this.amountFocused) {\n this.setState({\n formattedAmount: formatAmountIfSet({\n amount: nextProps.amount,\n currency: nextProps.selectedCurrency.currency,\n locale: nextProps.intl.locale,\n maxLengthOverride: nextProps.maxLengthOverride,\n }),\n });\n }\n }\n\n isInputAllowedForKeyEvent = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { metaKey, key, ctrlKey } = event;\n const isNumberKey = isNumber(Number.parseInt(key, 10));\n\n return isNumberKey || metaKey || ctrlKey || allowedInputKeys.has(key);\n };\n\n handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (!this.isInputAllowedForKeyEvent(event)) {\n event.preventDefault();\n }\n };\n\n handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const paste = event.clipboardData.getData('text');\n const { locale } = this.state;\n const parsed = isEmpty(paste)\n ? null\n : parseNumber({\n amount: paste,\n currency: this.props.selectedCurrency.currency,\n locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n\n if (isNumberOrNull(parsed)) {\n this.setState({\n formattedAmount: formatAmountIfSet({\n amount: parsed,\n currency: this.props.selectedCurrency.currency,\n locale,\n maxLengthOverride: this.props.maxLengthOverride,\n }),\n });\n this.props.onAmountChange?.(parsed);\n }\n\n event.preventDefault();\n };\n\n onAmountChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target;\n this.setState({\n formattedAmount: value,\n });\n const parsed = isEmpty(value)\n ? null\n : parseNumber({\n amount: value,\n currency: this.props.selectedCurrency.currency,\n locale: this.state.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n if (isNumberOrNull(parsed)) {\n this.props.onAmountChange?.(parsed);\n }\n };\n\n onAmountBlur = () => {\n this.amountFocused = false;\n this.setAmount();\n };\n\n onAmountFocus = () => {\n this.amountFocused = true;\n };\n\n getSelectOptions() {\n const selectOptions = filterCurrenciesForQuery(this.props.currencies, this.state.searchQuery);\n\n const formattedOptions: SelectInputItem<CurrencyOptionItem>[] = [];\n let currentGroupOptions: SelectInputOptionItem<CurrencyOptionItem>[] | undefined;\n\n selectOptions.forEach((item) => {\n if (item.header != null) {\n currentGroupOptions = [];\n formattedOptions.push({\n type: 'group',\n label: item.header,\n options: currentGroupOptions,\n });\n } else {\n (currentGroupOptions ?? formattedOptions).push({\n type: 'option',\n value: item,\n filterMatchers: [item.value, item.label, item.note ?? '', item.searchable ?? ''],\n });\n }\n });\n\n return formattedOptions;\n }\n\n setAmount() {\n this.setState((previousState) => {\n const parsed = parseNumber({\n amount: previousState.formattedAmount,\n currency: this.props.selectedCurrency.currency,\n locale: previousState.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n if (!isNumberOrNull(parsed)) {\n return {\n formattedAmount: previousState.formattedAmount,\n };\n }\n return {\n formattedAmount: formatAmountIfSet({\n amount: parsed,\n currency: this.props.selectedCurrency.currency,\n locale: previousState.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n }),\n };\n });\n }\n\n handleSelectChange = (value: CurrencyOptionItem) => {\n this.handleSearchChange('');\n this.props.onCurrencyChange?.(value);\n };\n\n handleCustomAction = () => {\n this.handleSearchChange('');\n this.props.onCustomAction?.();\n };\n\n handleSearchChange = (searchQuery: string) => {\n this.setState({ searchQuery });\n this.props.onSearchChange?.({\n searchQuery,\n filteredOptions: filterCurrenciesForQuery(this.props.currencies, searchQuery),\n });\n };\n\n style = (className: string) => this.props.classNames[className] || className;\n\n render() {\n const {\n inputAttributes,\n id: amountInputId,\n 'aria-labelledby': ariaLabelledByProp,\n selectedCurrency,\n onCurrencyChange,\n size,\n addon,\n selectProps,\n maxLengthOverride,\n } = this.props;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n const selectOptions = this.getSelectOptions();\n\n const hasSingleCurrency = () => {\n if (selectOptions.length !== 0) {\n const firstItem = selectOptions[0];\n\n if (selectOptions.length === 1) {\n if (firstItem.type === 'option') {\n return firstItem.value.currency === selectedCurrency.currency;\n }\n if (firstItem.type === 'group') {\n return (\n firstItem.options.length === 1 &&\n !(this.props.onCustomAction && this.props.customActionLabel)\n );\n }\n }\n } else if (selectedCurrency?.currency) {\n return true;\n }\n\n return false;\n };\n\n const isFixedCurrency = (!this.state.searchQuery && hasSingleCurrency()) || !onCurrencyChange;\n\n const disabled = !this.props.onAmountChange;\n return (\n <div\n role=\"group\"\n {...inputAttributes}\n aria-labelledby={ariaLabelledBy}\n className={classNames(\n this.style('tw-money-input'),\n this.style('input-group'),\n this.style(`input-group-${size}`),\n )}\n >\n <Input\n id={amountInputId}\n value={this.state.formattedAmount}\n inputMode=\"decimal\"\n disabled={disabled}\n maxLength={maxLengthOverride}\n placeholder={formatAmountIfSet({\n amount: this.props.placeholder,\n currency: this.props.selectedCurrency.currency,\n locale: this.state.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n })}\n autoComplete=\"off\"\n onKeyDown={this.handleKeyDown}\n onChange={this.onAmountChange}\n onFocus={this.onAmountFocus}\n onBlur={this.onAmountBlur}\n onPaste={this.handlePaste}\n />\n {addon && (\n <span\n className={classNames(\n this.style('input-group-addon'),\n this.style(`input-${size}`),\n disabled ? this.style('disabled') : '',\n )}\n >\n {addon}\n </span>\n )}\n {isFixedCurrency ? (\n <div\n className={classNames(\n this.style('input-group-addon'),\n this.style(`input-${size}`),\n this.style('tw-money-input__fixed-currency'),\n disabled ? this.style('disabled') : '',\n )}\n >\n {(size === 'lg' || size === 'md') && (\n <span\n className={classNames(this.style('money-input-currency-flag'), this.style('m-r-2'))}\n >\n <Flag code={selectedCurrency.currency.toLowerCase()} intrinsicSize={24} />\n </span>\n )}\n <Title\n as=\"span\"\n type={Typography.TITLE_SUBSECTION}\n className={size === 'lg' ? this.style('m-r-1') : ''}\n >\n {selectedCurrency.currency.toUpperCase()}\n </Title>\n </div>\n ) : (\n <div\n className={classNames(\n this.style('input-group-btn'),\n this.style('amount-currency-select-btn'),\n )}\n >\n <SelectInput\n items={selectOptions}\n value={selectedCurrency}\n compareValues=\"currency\"\n renderValue={(currency, withinTrigger) => {\n return (\n <SelectInputOptionContent\n title={withinTrigger ? currency.currency.toUpperCase() : currency.label}\n note={withinTrigger ? undefined : currency.note}\n icon={<Flag code={currency.currency} intrinsicSize={24} />}\n />\n );\n }}\n renderFooter={\n this.props.onCustomAction\n ? () => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div role=\"button\" tabIndex={0} onClick={this.handleCustomAction}>\n {this.props.customActionLabel}\n </div>\n )\n : undefined\n }\n placeholder={this.props.intl.formatMessage(messages.selectPlaceholder)}\n filterable\n filterPlaceholder={this.props.searchPlaceholder}\n disabled={disabled}\n size={size}\n onChange={this.handleSelectChange}\n onFilterChange={({ queryNormalized }) => {\n this.handleSearchChange(queryNormalized ?? '');\n }}\n {...selectProps}\n />\n </div>\n )}\n </div>\n );\n }\n}\n\nfunction filterCurrenciesForQuery(\n currencies: readonly CurrencyItem[],\n query: string,\n): CurrencyItem[] {\n if (!query) {\n return [...currencies];\n }\n\n const options = currencies.filter(\n (option): option is CurrencyOptionItem => option.header == null,\n );\n const filteredOptions = removeDuplicateValueOptions(options).filter((option) =>\n currencyOptionFitsQuery(option, query),\n );\n\n return sortOptionsLabelsToFirst(filteredOptions, query);\n}\n\nfunction removeDuplicateValueOptions(options: readonly CurrencyOptionItem[]) {\n const uniqueValues = new Set<string>();\n return options.filter((option) => {\n if (!uniqueValues.has(option.value)) {\n uniqueValues.add(option.value);\n return true;\n }\n return false;\n });\n}\n\nfunction currencyOptionFitsQuery(option: CurrencyOptionItem, query: string) {\n if (!option.value) {\n return false;\n }\n\n return (\n contains(option.label, query) ||\n contains(option.searchable, query) ||\n contains(option.note, query)\n );\n}\n\nfunction contains(property: string | undefined, query: string) {\n return property?.toLowerCase().includes(query.toLowerCase());\n}\n\nfunction sortOptionsLabelsToFirst(options: readonly CurrencyOptionItem[], query: string) {\n return [...options].sort((first, second) => {\n const firstContains = contains(first.label, query);\n const secondContains = contains(second.label, query);\n\n if (firstContains && secondContains) {\n return 0;\n }\n if (firstContains) {\n return -1;\n }\n if (secondContains) {\n return 1;\n }\n return 0;\n });\n}\n\nexport default injectIntl(withInputAttributes(MoneyInput, { nonLabelable: true }));\n"],"names":["isNumberOrNull","v","isNumber","isNull","formatAmountIfSet","amount","currency","locale","maxLengthOverride","String","formatAmount","parseNumber","length","parseAmount","allowedInputKeys","Set","MoneyInput","Component","defaultProps","size","Size","LARGE","classNames","selectProps","amountFocused","constructor","props","state","searchQuery","formattedAmount","selectedCurrency","intl","UNSAFE_componentWillReceiveProps","nextProps","setState","isInputAllowedForKeyEvent","event","metaKey","key","ctrlKey","isNumberKey","Number","parseInt","has","handleKeyDown","preventDefault","handlePaste","paste","clipboardData","getData","parsed","isEmpty","onAmountChange","value","target","onAmountBlur","setAmount","onAmountFocus","getSelectOptions","selectOptions","filterCurrenciesForQuery","currencies","formattedOptions","currentGroupOptions","forEach","item","header","push","type","label","options","filterMatchers","note","searchable","previousState","handleSelectChange","handleSearchChange","onCurrencyChange","handleCustomAction","onCustomAction","onSearchChange","filteredOptions","style","className","render","inputAttributes","id","amountInputId","ariaLabelledByProp","addon","ariaLabelledBy","hasSingleCurrency","firstItem","customActionLabel","isFixedCurrency","disabled","_jsxs","role","children","_jsx","Input","inputMode","maxLength","placeholder","autoComplete","onKeyDown","onChange","onFocus","onBlur","onPaste","Flag","code","toLowerCase","intrinsicSize","Title","as","Typography","TITLE_SUBSECTION","toUpperCase","SelectInput","items","compareValues","renderValue","withinTrigger","SelectInputOptionContent","title","undefined","icon","renderFooter","tabIndex","onClick","formatMessage","messages","selectPlaceholder","filterable","filterPlaceholder","searchPlaceholder","onFilterChange","queryNormalized","query","filter","option","removeDuplicateValueOptions","currencyOptionFitsQuery","sortOptionsLabelsToFirst","uniqueValues","add","contains","property","includes","sort","first","second","firstContains","secondContains","injectIntl","withInputAttributes","nonLabelable"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var formatting = require('@transferwise/formatting');
|
|
4
|
+
var index = require('../common/locale/index.js');
|
|
5
|
+
|
|
6
|
+
// TODO: do not duplicate this between formatting and components
|
|
7
|
+
const currencyDecimals = {
|
|
8
|
+
BIF: 0,
|
|
9
|
+
BYR: 0,
|
|
10
|
+
CLP: 0,
|
|
11
|
+
DJF: 0,
|
|
12
|
+
GNF: 0,
|
|
13
|
+
JPY: 0,
|
|
14
|
+
KMF: 0,
|
|
15
|
+
KRW: 0,
|
|
16
|
+
MGA: 0,
|
|
17
|
+
PYG: 0,
|
|
18
|
+
RWF: 0,
|
|
19
|
+
VND: 0,
|
|
20
|
+
VUV: 0,
|
|
21
|
+
XAF: 0,
|
|
22
|
+
XOF: 0,
|
|
23
|
+
XPF: 0,
|
|
24
|
+
// technically HUF does have decimals, but due to the exchange rate banks
|
|
25
|
+
// do not accept decimal amounts
|
|
26
|
+
HUF: 0,
|
|
27
|
+
BHD: 3,
|
|
28
|
+
JOD: 3,
|
|
29
|
+
KWD: 3,
|
|
30
|
+
OMR: 3,
|
|
31
|
+
TND: 3
|
|
32
|
+
};
|
|
33
|
+
const DEFAULT_CURRENCY_DECIMALS = 2;
|
|
34
|
+
function isNumberLocaleSupported() {
|
|
35
|
+
const number = 1234;
|
|
36
|
+
const numberString = number.toLocaleString && number.toLocaleString(index.DEFAULT_LOCALE);
|
|
37
|
+
return numberString === '1,234';
|
|
38
|
+
}
|
|
39
|
+
function getValidLocale(locale) {
|
|
40
|
+
try {
|
|
41
|
+
const noUnderscoreLocale = locale.replace(/_/, '-');
|
|
42
|
+
Intl.NumberFormat(noUnderscoreLocale);
|
|
43
|
+
return noUnderscoreLocale;
|
|
44
|
+
} catch {
|
|
45
|
+
return index.DEFAULT_LOCALE;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function getCurrencyDecimals(currency) {
|
|
49
|
+
const upperCaseCurrency = currency.toUpperCase();
|
|
50
|
+
return currencyDecimals[upperCaseCurrency] ?? DEFAULT_CURRENCY_DECIMALS;
|
|
51
|
+
}
|
|
52
|
+
function getDecimalSeparator(locale) {
|
|
53
|
+
return isNumberLocaleSupported() ? 1.1.toLocaleString(locale)[1] : '.';
|
|
54
|
+
}
|
|
55
|
+
function parseAmount(number, currency, locale = index.DEFAULT_LOCALE) {
|
|
56
|
+
const validLocale = getValidLocale(locale);
|
|
57
|
+
const precision = getCurrencyDecimals(currency);
|
|
58
|
+
const groupSeparator = isNumberLocaleSupported() ? 10000 .toLocaleString(validLocale)[2] : ',';
|
|
59
|
+
const decimalSeparator = getDecimalSeparator(validLocale);
|
|
60
|
+
const numberWithStandardDecimalSeparator = (number ? `${number}` : '').replace(new RegExp(`\\${groupSeparator}`, 'g'), '').replace(new RegExp(`\\${decimalSeparator}`, 'g'), '.').replace(/[^0-9.]/g, '');
|
|
61
|
+
const parsedAmount = parseFloat(parseFloat(numberWithStandardDecimalSeparator).toFixed(precision));
|
|
62
|
+
return Math.abs(parsedAmount);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
Object.defineProperty(exports, "formatAmount", {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () { return formatting.formatAmount; }
|
|
68
|
+
});
|
|
69
|
+
exports.parseAmount = parseAmount;
|
|
70
|
+
//# sourceMappingURL=currencyFormatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currencyFormatting.js","sources":["../../src/moneyInput/currencyFormatting.ts"],"sourcesContent":["import { formatAmount } from '@transferwise/formatting';\n\nimport { DEFAULT_LOCALE } from '../common/locale';\n\nexport { formatAmount };\n\n// TODO: do not duplicate this between formatting and components\nconst currencyDecimals: Record<string, number> = {\n BIF: 0,\n BYR: 0,\n CLP: 0,\n DJF: 0,\n GNF: 0,\n JPY: 0,\n KMF: 0,\n KRW: 0,\n MGA: 0,\n PYG: 0,\n RWF: 0,\n VND: 0,\n VUV: 0,\n XAF: 0,\n XOF: 0,\n XPF: 0,\n // technically HUF does have decimals, but due to the exchange rate banks\n // do not accept decimal amounts\n HUF: 0,\n\n BHD: 3,\n JOD: 3,\n KWD: 3,\n OMR: 3,\n TND: 3,\n};\n\nconst DEFAULT_CURRENCY_DECIMALS = 2;\n\nfunction isNumberLocaleSupported() {\n const number = 1234;\n const numberString = number.toLocaleString && number.toLocaleString(DEFAULT_LOCALE);\n return numberString === '1,234';\n}\n\nfunction getValidLocale(locale: string) {\n try {\n const noUnderscoreLocale = locale.replace(/_/, '-');\n\n Intl.NumberFormat(noUnderscoreLocale);\n return noUnderscoreLocale;\n } catch {\n return DEFAULT_LOCALE;\n }\n}\n\nfunction getCurrencyDecimals(currency: string) {\n const upperCaseCurrency = currency.toUpperCase();\n return currencyDecimals[upperCaseCurrency] ?? DEFAULT_CURRENCY_DECIMALS;\n}\n\nfunction getDecimalSeparator(locale: string) {\n return isNumberLocaleSupported() ? (1.1).toLocaleString(locale)[1] : '.';\n}\n\nexport function parseAmount(number: string, currency: string, locale = DEFAULT_LOCALE) {\n const validLocale = getValidLocale(locale);\n\n const precision = getCurrencyDecimals(currency);\n const groupSeparator = isNumberLocaleSupported() ? (10000).toLocaleString(validLocale)[2] : ',';\n const decimalSeparator = getDecimalSeparator(validLocale);\n const numberWithStandardDecimalSeparator = (number ? `${number}` : '')\n .replace(new RegExp(`\\\\${groupSeparator}`, 'g'), '')\n .replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.')\n .replace(/[^0-9.]/g, '');\n const parsedAmount = parseFloat(\n parseFloat(numberWithStandardDecimalSeparator).toFixed(precision),\n );\n return Math.abs(parsedAmount);\n}\n"],"names":["currencyDecimals","BIF","BYR","CLP","DJF","GNF","JPY","KMF","KRW","MGA","PYG","RWF","VND","VUV","XAF","XOF","XPF","HUF","BHD","JOD","KWD","OMR","TND","DEFAULT_CURRENCY_DECIMALS","isNumberLocaleSupported","number","numberString","toLocaleString","DEFAULT_LOCALE","getValidLocale","locale","noUnderscoreLocale","replace","Intl","NumberFormat","getCurrencyDecimals","currency","upperCaseCurrency","toUpperCase","getDecimalSeparator","parseAmount","validLocale","precision","groupSeparator","decimalSeparator","numberWithStandardDecimalSeparator","RegExp","parsedAmount","parseFloat","toFixed","Math","abs"],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export { formatAmount } from '@transferwise/formatting';
|
|
2
|
+
import { DEFAULT_LOCALE } from '../common/locale/index.mjs';
|
|
3
|
+
|
|
4
|
+
// TODO: do not duplicate this between formatting and components
|
|
5
|
+
const currencyDecimals = {
|
|
6
|
+
BIF: 0,
|
|
7
|
+
BYR: 0,
|
|
8
|
+
CLP: 0,
|
|
9
|
+
DJF: 0,
|
|
10
|
+
GNF: 0,
|
|
11
|
+
JPY: 0,
|
|
12
|
+
KMF: 0,
|
|
13
|
+
KRW: 0,
|
|
14
|
+
MGA: 0,
|
|
15
|
+
PYG: 0,
|
|
16
|
+
RWF: 0,
|
|
17
|
+
VND: 0,
|
|
18
|
+
VUV: 0,
|
|
19
|
+
XAF: 0,
|
|
20
|
+
XOF: 0,
|
|
21
|
+
XPF: 0,
|
|
22
|
+
// technically HUF does have decimals, but due to the exchange rate banks
|
|
23
|
+
// do not accept decimal amounts
|
|
24
|
+
HUF: 0,
|
|
25
|
+
BHD: 3,
|
|
26
|
+
JOD: 3,
|
|
27
|
+
KWD: 3,
|
|
28
|
+
OMR: 3,
|
|
29
|
+
TND: 3
|
|
30
|
+
};
|
|
31
|
+
const DEFAULT_CURRENCY_DECIMALS = 2;
|
|
32
|
+
function isNumberLocaleSupported() {
|
|
33
|
+
const number = 1234;
|
|
34
|
+
const numberString = number.toLocaleString && number.toLocaleString(DEFAULT_LOCALE);
|
|
35
|
+
return numberString === '1,234';
|
|
36
|
+
}
|
|
37
|
+
function getValidLocale(locale) {
|
|
38
|
+
try {
|
|
39
|
+
const noUnderscoreLocale = locale.replace(/_/, '-');
|
|
40
|
+
Intl.NumberFormat(noUnderscoreLocale);
|
|
41
|
+
return noUnderscoreLocale;
|
|
42
|
+
} catch {
|
|
43
|
+
return DEFAULT_LOCALE;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function getCurrencyDecimals(currency) {
|
|
47
|
+
const upperCaseCurrency = currency.toUpperCase();
|
|
48
|
+
return currencyDecimals[upperCaseCurrency] ?? DEFAULT_CURRENCY_DECIMALS;
|
|
49
|
+
}
|
|
50
|
+
function getDecimalSeparator(locale) {
|
|
51
|
+
return isNumberLocaleSupported() ? 1.1.toLocaleString(locale)[1] : '.';
|
|
52
|
+
}
|
|
53
|
+
function parseAmount(number, currency, locale = DEFAULT_LOCALE) {
|
|
54
|
+
const validLocale = getValidLocale(locale);
|
|
55
|
+
const precision = getCurrencyDecimals(currency);
|
|
56
|
+
const groupSeparator = isNumberLocaleSupported() ? 10000 .toLocaleString(validLocale)[2] : ',';
|
|
57
|
+
const decimalSeparator = getDecimalSeparator(validLocale);
|
|
58
|
+
const numberWithStandardDecimalSeparator = (number ? `${number}` : '').replace(new RegExp(`\\${groupSeparator}`, 'g'), '').replace(new RegExp(`\\${decimalSeparator}`, 'g'), '.').replace(/[^0-9.]/g, '');
|
|
59
|
+
const parsedAmount = parseFloat(parseFloat(numberWithStandardDecimalSeparator).toFixed(precision));
|
|
60
|
+
return Math.abs(parsedAmount);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { parseAmount };
|
|
64
|
+
//# sourceMappingURL=currencyFormatting.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currencyFormatting.mjs","sources":["../../src/moneyInput/currencyFormatting.ts"],"sourcesContent":["import { formatAmount } from '@transferwise/formatting';\n\nimport { DEFAULT_LOCALE } from '../common/locale';\n\nexport { formatAmount };\n\n// TODO: do not duplicate this between formatting and components\nconst currencyDecimals: Record<string, number> = {\n BIF: 0,\n BYR: 0,\n CLP: 0,\n DJF: 0,\n GNF: 0,\n JPY: 0,\n KMF: 0,\n KRW: 0,\n MGA: 0,\n PYG: 0,\n RWF: 0,\n VND: 0,\n VUV: 0,\n XAF: 0,\n XOF: 0,\n XPF: 0,\n // technically HUF does have decimals, but due to the exchange rate banks\n // do not accept decimal amounts\n HUF: 0,\n\n BHD: 3,\n JOD: 3,\n KWD: 3,\n OMR: 3,\n TND: 3,\n};\n\nconst DEFAULT_CURRENCY_DECIMALS = 2;\n\nfunction isNumberLocaleSupported() {\n const number = 1234;\n const numberString = number.toLocaleString && number.toLocaleString(DEFAULT_LOCALE);\n return numberString === '1,234';\n}\n\nfunction getValidLocale(locale: string) {\n try {\n const noUnderscoreLocale = locale.replace(/_/, '-');\n\n Intl.NumberFormat(noUnderscoreLocale);\n return noUnderscoreLocale;\n } catch {\n return DEFAULT_LOCALE;\n }\n}\n\nfunction getCurrencyDecimals(currency: string) {\n const upperCaseCurrency = currency.toUpperCase();\n return currencyDecimals[upperCaseCurrency] ?? DEFAULT_CURRENCY_DECIMALS;\n}\n\nfunction getDecimalSeparator(locale: string) {\n return isNumberLocaleSupported() ? (1.1).toLocaleString(locale)[1] : '.';\n}\n\nexport function parseAmount(number: string, currency: string, locale = DEFAULT_LOCALE) {\n const validLocale = getValidLocale(locale);\n\n const precision = getCurrencyDecimals(currency);\n const groupSeparator = isNumberLocaleSupported() ? (10000).toLocaleString(validLocale)[2] : ',';\n const decimalSeparator = getDecimalSeparator(validLocale);\n const numberWithStandardDecimalSeparator = (number ? `${number}` : '')\n .replace(new RegExp(`\\\\${groupSeparator}`, 'g'), '')\n .replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.')\n .replace(/[^0-9.]/g, '');\n const parsedAmount = parseFloat(\n parseFloat(numberWithStandardDecimalSeparator).toFixed(precision),\n );\n return Math.abs(parsedAmount);\n}\n"],"names":["currencyDecimals","BIF","BYR","CLP","DJF","GNF","JPY","KMF","KRW","MGA","PYG","RWF","VND","VUV","XAF","XOF","XPF","HUF","BHD","JOD","KWD","OMR","TND","DEFAULT_CURRENCY_DECIMALS","isNumberLocaleSupported","number","numberString","toLocaleString","DEFAULT_LOCALE","getValidLocale","locale","noUnderscoreLocale","replace","Intl","NumberFormat","getCurrencyDecimals","currency","upperCaseCurrency","toUpperCase","getDecimalSeparator","parseAmount","validLocale","precision","groupSeparator","decimalSeparator","numberWithStandardDecimalSeparator","RegExp","parsedAmount","parseFloat","toFixed","Math","abs"],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var classNames = require('classnames');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var Chevron = require('../chevron/Chevron.js');
|
|
6
|
+
var Option = require('../common/Option/Option.js');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var position = require('../common/propsValues/position.js');
|
|
9
|
+
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var classNames__default = /*#__PURE__*/_interopDefault(classNames);
|
|
13
|
+
|
|
14
|
+
const NavigationOption = /*#__PURE__*/React.forwardRef(({
|
|
15
|
+
as: component = 'button',
|
|
16
|
+
disabled = false,
|
|
17
|
+
onClick,
|
|
18
|
+
className,
|
|
19
|
+
...rest
|
|
20
|
+
}, reference) => {
|
|
21
|
+
if ('href' in rest && rest.href) {
|
|
22
|
+
component = 'a';
|
|
23
|
+
}
|
|
24
|
+
return /*#__PURE__*/jsxRuntime.jsx(Option, {
|
|
25
|
+
...rest,
|
|
26
|
+
ref: reference,
|
|
27
|
+
as: component,
|
|
28
|
+
className: classNames__default.default('np-navigation-option', className),
|
|
29
|
+
button: /*#__PURE__*/jsxRuntime.jsx(Chevron, {
|
|
30
|
+
orientation: position.Position.RIGHT,
|
|
31
|
+
disabled: disabled,
|
|
32
|
+
className: "d-block"
|
|
33
|
+
}),
|
|
34
|
+
disabled: disabled,
|
|
35
|
+
onClick: event => {
|
|
36
|
+
if (disabled) {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (onClick) {
|
|
41
|
+
onClick(event);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
module.exports = NavigationOption;
|
|
48
|
+
//# sourceMappingURL=NavigationOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationOption.js","sources":["../../src/navigationOption/NavigationOption.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport Option from '../common/Option';\nimport { OptionProps, ReferenceType } from '../common/Option/Option';\n\ntype NavigationOptionProps = OptionProps;\n\nconst NavigationOption = forwardRef<ReferenceType, NavigationOptionProps>(\n ({ as: component = 'button', disabled = false, onClick, className, ...rest }, reference) => {\n if ('href' in rest && rest.href) {\n component = 'a';\n }\n\n return (\n <Option\n {...rest}\n ref={reference}\n as={component}\n className={classNames('np-navigation-option', className)}\n button={<Chevron orientation={Position.RIGHT} disabled={disabled} className=\"d-block\" />}\n disabled={disabled}\n onClick={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n }}\n />\n );\n },\n);\n\nexport default NavigationOption;\n"],"names":["NavigationOption","forwardRef","as","component","disabled","onClick","className","rest","reference","href","_jsx","Option","ref","classNames","button","Chevron","orientation","Position","RIGHT","event","preventDefault"],"mappings":";;;;;;;;;;;;;AAUA,MAAMA,gBAAgB,gBAAGC,gBAAU,CACjC,CAAC;EAAEC,EAAE,EAAEC,SAAS,GAAG,QAAQ;AAAEC,EAAAA,QAAQ,GAAG,KAAK;EAAEC,OAAO;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAM,CAAA,EAAEC,SAAS,KAAI;AACzF,EAAA,IAAI,MAAM,IAAID,IAAI,IAAIA,IAAI,CAACE,IAAI,EAAE;AAC/BN,IAAAA,SAAS,GAAG,GAAG,CAAA;AACjB,GAAA;EAEA,oBACEO,cAAA,CAACC,MAAM,EAAA;AAAA,IAAA,GACDJ,IAAI;AACRK,IAAAA,GAAG,EAAEJ,SAAU;AACfN,IAAAA,EAAE,EAAEC,SAAU;AACdG,IAAAA,SAAS,EAAEO,2BAAU,CAAC,sBAAsB,EAAEP,SAAS,CAAE;IACzDQ,MAAM,eAAEJ,cAAA,CAACK,OAAO,EAAA;MAACC,WAAW,EAAEC,iBAAQ,CAACC,KAAM;AAACd,MAAAA,QAAQ,EAAEA,QAAS;AAACE,MAAAA,SAAS,EAAC,SAAA;AAAS,KAAG,CAAC;AACzFF,IAAAA,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAGc,KAAK,IAAI;AACjB,MAAA,IAAIf,QAAQ,EAAE;QACZe,KAAK,CAACC,cAAc,EAAE,CAAA;AACtB,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIf,OAAO,EAAE;QACXA,OAAO,CAACc,KAAK,CAAC,CAAA;AAChB,OAAA;AACF,KAAA;AAAE,GACF,CAAA,CAAA;AAEN,CAAC;;;;"}
|