@transferwise/components 46.78.0 → 46.79.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/AccordionItem/AccordionItem.js +22 -3
- package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/build/accordion/AccordionItem/AccordionItem.mjs +22 -3
- package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
- package/build/actionButton/ActionButton.js +22 -1
- package/build/actionButton/ActionButton.js.map +1 -1
- package/build/actionButton/ActionButton.mjs +22 -1
- package/build/actionButton/ActionButton.mjs.map +1 -1
- package/build/actionOption/ActionOption.js +24 -2
- package/build/actionOption/ActionOption.js.map +1 -1
- package/build/actionOption/ActionOption.mjs +24 -2
- package/build/actionOption/ActionOption.mjs.map +1 -1
- package/build/alert/Alert.js +22 -6
- package/build/alert/Alert.js.map +1 -1
- package/build/alert/Alert.mjs +22 -6
- package/build/alert/Alert.mjs.map +1 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.js +25 -2
- package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs +25 -2
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +1 -1
- package/build/avatar/Avatar.js +23 -2
- package/build/avatar/Avatar.js.map +1 -1
- package/build/avatar/Avatar.mjs +23 -2
- package/build/avatar/Avatar.mjs.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.js +23 -3
- package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.mjs +23 -3
- package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
- package/build/badge/Badge.js +23 -2
- package/build/badge/Badge.js.map +1 -1
- package/build/badge/Badge.mjs +23 -2
- package/build/badge/Badge.mjs.map +1 -1
- package/build/button/Button.js +22 -6
- package/build/button/Button.js.map +1 -1
- package/build/button/Button.messages.js.map +1 -1
- package/build/button/Button.messages.mjs.map +1 -1
- package/build/button/Button.mjs +22 -6
- package/build/button/Button.mjs.map +1 -1
- package/build/button/classMap.js +24 -0
- package/build/button/classMap.js.map +1 -1
- package/build/button/classMap.mjs +24 -0
- package/build/button/classMap.mjs.map +1 -1
- package/build/button/legacyUtils/legacyUtils.js +30 -7
- package/build/button/legacyUtils/legacyUtils.js.map +1 -1
- package/build/button/legacyUtils/legacyUtils.mjs +30 -7
- package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
- package/build/card/Card.js +23 -3
- package/build/card/Card.js.map +1 -1
- package/build/card/Card.mjs +23 -3
- package/build/card/Card.mjs.map +1 -1
- package/build/checkbox/Checkbox.js +23 -1
- package/build/checkbox/Checkbox.js.map +1 -1
- package/build/checkbox/Checkbox.mjs +23 -1
- package/build/checkbox/Checkbox.mjs.map +1 -1
- package/build/checkboxOption/CheckboxOption.js +1 -1
- package/build/checkboxOption/CheckboxOption.mjs +1 -1
- package/build/chevron/Chevron.js +21 -1
- package/build/chevron/Chevron.js.map +1 -1
- package/build/chevron/Chevron.mjs +21 -1
- package/build/chevron/Chevron.mjs.map +1 -1
- package/build/chips/Chip.js +19 -1
- package/build/chips/Chip.js.map +1 -1
- package/build/chips/Chip.mjs +19 -1
- package/build/chips/Chip.mjs.map +1 -1
- package/build/circularButton/CircularButton.js +23 -4
- package/build/circularButton/CircularButton.js.map +1 -1
- package/build/circularButton/CircularButton.mjs +23 -4
- package/build/circularButton/CircularButton.mjs.map +1 -1
- package/build/common/bottomSheet/BottomSheet.js +3 -2
- package/build/common/bottomSheet/BottomSheet.js.map +1 -1
- package/build/common/bottomSheet/BottomSheet.mjs +3 -2
- package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
- package/build/common/dateUtils/getDateView/getDateView.js +10 -0
- package/build/common/dateUtils/getDateView/getDateView.js.map +1 -0
- package/build/common/dateUtils/getDateView/getDateView.mjs +8 -0
- package/build/common/dateUtils/getDateView/getDateView.mjs.map +1 -0
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +10 -10
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +10 -10
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -1
- package/build/common/locale/index.js +24 -0
- package/build/common/locale/index.js.map +1 -1
- package/build/common/locale/index.mjs +24 -0
- package/build/common/locale/index.mjs.map +1 -1
- package/build/common/panel/Panel.js +23 -2
- package/build/common/panel/Panel.js.map +1 -1
- package/build/common/panel/Panel.mjs +23 -2
- package/build/common/panel/Panel.mjs.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.js +27 -3
- package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.mjs +27 -3
- package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.js +22 -3
- package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.mjs +22 -3
- package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
- package/build/dateInput/DateInput.js +22 -5
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +22 -5
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js +30 -12
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs +30 -12
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.js +26 -5
- package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.mjs +26 -5
- package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.js +19 -3
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.mjs +19 -3
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +4 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +1 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs +4 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs.map +1 -1
- package/build/decision/Decision.js +24 -3
- package/build/decision/Decision.js.map +1 -1
- package/build/decision/Decision.mjs +24 -3
- package/build/decision/Decision.mjs.map +1 -1
- package/build/definitionList/DefinitionList.js +23 -1
- package/build/definitionList/DefinitionList.js.map +1 -1
- package/build/definitionList/DefinitionList.mjs +23 -1
- package/build/definitionList/DefinitionList.mjs.map +1 -1
- package/build/dimmer/Dimmer.js +24 -2
- package/build/dimmer/Dimmer.js.map +1 -1
- package/build/dimmer/Dimmer.mjs +24 -2
- package/build/dimmer/Dimmer.mjs.map +1 -1
- package/build/display/Display.js +23 -1
- package/build/display/Display.js.map +1 -1
- package/build/display/Display.mjs +23 -1
- package/build/display/Display.mjs.map +1 -1
- package/build/drawer/Drawer.js +23 -4
- package/build/drawer/Drawer.js.map +1 -1
- package/build/drawer/Drawer.mjs +23 -4
- package/build/drawer/Drawer.mjs.map +1 -1
- package/build/field/Field.js +23 -2
- package/build/field/Field.js.map +1 -1
- package/build/field/Field.mjs +23 -2
- package/build/field/Field.mjs.map +1 -1
- package/build/flowNavigation/FlowNavigation.js +19 -2
- package/build/flowNavigation/FlowNavigation.js.map +1 -1
- package/build/flowNavigation/FlowNavigation.mjs +19 -2
- package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
- package/build/header/Header.js +24 -2
- package/build/header/Header.js.map +1 -1
- package/build/header/Header.mjs +24 -2
- package/build/header/Header.mjs.map +1 -1
- package/build/image/Image.js +4 -1
- package/build/image/Image.js.map +1 -1
- package/build/image/Image.mjs +4 -1
- package/build/image/Image.mjs.map +1 -1
- package/build/index.js +69 -62
- package/build/index.js.map +1 -1
- package/build/index.mjs +27 -20
- package/build/index.mjs.map +1 -1
- package/build/info/Info.js +21 -3
- package/build/info/Info.js.map +1 -1
- package/build/info/Info.mjs +21 -3
- package/build/info/Info.mjs.map +1 -1
- package/build/inlineAlert/InlineAlert.js +24 -3
- package/build/inlineAlert/InlineAlert.js.map +1 -1
- package/build/inlineAlert/InlineAlert.mjs +24 -3
- package/build/inlineAlert/InlineAlert.mjs.map +1 -1
- package/build/inputs/SearchInput.js +23 -2
- package/build/inputs/SearchInput.js.map +1 -1
- package/build/inputs/SearchInput.mjs +23 -2
- package/build/inputs/SearchInput.mjs.map +1 -1
- package/build/instructionsList/InstructionsList.js +22 -1
- package/build/instructionsList/InstructionsList.js.map +1 -1
- package/build/instructionsList/InstructionsList.mjs +22 -1
- package/build/instructionsList/InstructionsList.mjs.map +1 -1
- package/build/loader/Loader.js +22 -1
- package/build/loader/Loader.js.map +1 -1
- package/build/loader/Loader.mjs +22 -1
- package/build/loader/Loader.mjs.map +1 -1
- package/build/markdown/Markdown.js +24 -1
- package/build/markdown/Markdown.js.map +1 -1
- package/build/markdown/Markdown.mjs +24 -1
- package/build/markdown/Markdown.mjs.map +1 -1
- package/build/modal/Modal.js +22 -5
- package/build/modal/Modal.js.map +1 -1
- package/build/modal/Modal.mjs +22 -5
- package/build/modal/Modal.mjs.map +1 -1
- package/build/moneyInput/MoneyInput.js +22 -3
- package/build/moneyInput/MoneyInput.js.map +1 -1
- package/build/moneyInput/MoneyInput.mjs +22 -3
- package/build/moneyInput/MoneyInput.mjs.map +1 -1
- package/build/navigationOption/NavigationOption.js +23 -2
- package/build/navigationOption/NavigationOption.js.map +1 -1
- package/build/navigationOption/NavigationOption.mjs +23 -2
- package/build/navigationOption/NavigationOption.mjs.map +1 -1
- package/build/nudge/Nudge.js +19 -1
- package/build/nudge/Nudge.js.map +1 -1
- package/build/nudge/Nudge.mjs +19 -1
- package/build/nudge/Nudge.mjs.map +1 -1
- package/build/overlayHeader/OverlayHeader.js +19 -1
- package/build/overlayHeader/OverlayHeader.js.map +1 -1
- package/build/overlayHeader/OverlayHeader.mjs +19 -1
- package/build/overlayHeader/OverlayHeader.mjs.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js +23 -2
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +23 -2
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/popover/Popover.js +24 -4
- package/build/popover/Popover.js.map +1 -1
- package/build/popover/Popover.mjs +24 -4
- package/build/popover/Popover.mjs.map +1 -1
- package/build/processIndicator/ProcessIndicator.js +22 -1
- package/build/processIndicator/ProcessIndicator.js.map +1 -1
- package/build/processIndicator/ProcessIndicator.mjs +22 -1
- package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
- package/build/progressBar/ProgressBar.js +24 -2
- package/build/progressBar/ProgressBar.js.map +1 -1
- package/build/progressBar/ProgressBar.mjs +24 -2
- package/build/progressBar/ProgressBar.mjs.map +1 -1
- package/build/promoCard/PromoCard.js +22 -2
- package/build/promoCard/PromoCard.js.map +1 -1
- package/build/promoCard/PromoCard.mjs +22 -2
- package/build/promoCard/PromoCard.mjs.map +1 -1
- package/build/promoCard/PromoCardIndicator.js +22 -1
- package/build/promoCard/PromoCardIndicator.js.map +1 -1
- package/build/promoCard/PromoCardIndicator.mjs +22 -1
- package/build/promoCard/PromoCardIndicator.mjs.map +1 -1
- package/build/provider/Provider.js +25 -2
- package/build/provider/Provider.js.map +1 -1
- package/build/provider/Provider.mjs +25 -2
- package/build/provider/Provider.mjs.map +1 -1
- package/build/radio/Radio.js +24 -2
- package/build/radio/Radio.js.map +1 -1
- package/build/radio/Radio.mjs +24 -2
- package/build/radio/Radio.mjs.map +1 -1
- package/build/segmentedControl/SegmentedControl.js +22 -1
- package/build/segmentedControl/SegmentedControl.js.map +1 -1
- package/build/segmentedControl/SegmentedControl.mjs +22 -1
- package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
- package/build/select/Select.js +26 -4
- package/build/select/Select.js.map +1 -1
- package/build/select/Select.mjs +26 -4
- package/build/select/Select.mjs.map +1 -1
- package/build/select/option/Option.js +22 -1
- package/build/select/option/Option.js.map +1 -1
- package/build/select/option/Option.mjs +22 -1
- package/build/select/option/Option.mjs.map +1 -1
- package/build/selectOption/SelectOption.js +24 -6
- package/build/selectOption/SelectOption.js.map +1 -1
- package/build/selectOption/SelectOption.mjs +24 -6
- package/build/selectOption/SelectOption.mjs.map +1 -1
- package/build/statusIcon/StatusIcon.js +22 -4
- package/build/statusIcon/StatusIcon.js.map +1 -1
- package/build/statusIcon/StatusIcon.mjs +22 -4
- package/build/statusIcon/StatusIcon.mjs.map +1 -1
- package/build/stepper/Stepper.js +25 -3
- package/build/stepper/Stepper.js.map +1 -1
- package/build/stepper/Stepper.mjs +25 -3
- package/build/stepper/Stepper.mjs.map +1 -1
- package/build/stepper/deviceDetection.js +2 -3
- package/build/stepper/deviceDetection.js.map +1 -1
- package/build/stepper/deviceDetection.mjs +2 -3
- package/build/stepper/deviceDetection.mjs.map +1 -1
- package/build/sticky/Sticky.js +25 -2
- package/build/sticky/Sticky.js.map +1 -1
- package/build/sticky/Sticky.mjs +25 -2
- package/build/sticky/Sticky.mjs.map +1 -1
- package/build/summary/Summary.js +21 -5
- package/build/summary/Summary.js.map +1 -1
- package/build/summary/Summary.mjs +21 -5
- package/build/summary/Summary.mjs.map +1 -1
- package/build/tabs/Tabs.js +23 -3
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +23 -3
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/tile/Tile.js +24 -2
- package/build/tile/Tile.js.map +1 -1
- package/build/tile/Tile.mjs +24 -2
- package/build/tile/Tile.mjs.map +1 -1
- package/build/title/Title.js +23 -1
- package/build/title/Title.js.map +1 -1
- package/build/title/Title.mjs +23 -1
- package/build/title/Title.mjs.map +1 -1
- package/build/tooltip/Tooltip.js +22 -1
- package/build/tooltip/Tooltip.js.map +1 -1
- package/build/tooltip/Tooltip.mjs +22 -1
- package/build/tooltip/Tooltip.mjs.map +1 -1
- package/build/typeahead/Typeahead.js +22 -4
- package/build/typeahead/Typeahead.js.map +1 -1
- package/build/typeahead/Typeahead.mjs +22 -4
- package/build/typeahead/Typeahead.mjs.map +1 -1
- package/build/types/button/Button.d.ts.map +1 -1
- package/build/types/button/Button.messages.d.ts +7 -7
- package/build/types/button/Button.messages.d.ts.map +1 -1
- package/build/types/button/classMap.d.ts +10 -10
- package/build/types/button/classMap.d.ts.map +1 -1
- package/build/types/button/legacyUtils/index.d.ts +1 -1
- package/build/types/button/legacyUtils/index.d.ts.map +1 -1
- package/build/types/button/legacyUtils/legacyUtils.d.ts +20 -6
- package/build/types/button/legacyUtils/legacyUtils.d.ts.map +1 -1
- package/build/types/checkboxButton/index.d.ts +1 -1
- package/build/types/checkboxButton/index.d.ts.map +1 -1
- package/build/types/common/dateUtils/getDateView/getDateView.d.ts +2 -0
- package/build/types/common/dateUtils/getDateView/getDateView.d.ts.map +1 -0
- package/build/types/common/dateUtils/index.d.ts +1 -0
- package/build/types/common/dateUtils/index.d.ts.map +1 -1
- package/build/types/common/fakeEvents.d.ts +23 -0
- package/build/types/common/fakeEvents.d.ts.map +1 -0
- package/build/types/common/hooks/index.d.ts +4 -4
- package/build/types/common/hooks/index.d.ts.map +1 -1
- package/build/types/common/hooks/useConditionalListener/index.d.ts +1 -1
- package/build/types/common/hooks/useConditionalListener/index.d.ts.map +1 -1
- package/build/types/common/hooks/useDirection/index.d.ts +1 -1
- package/build/types/common/hooks/useDirection/index.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/index.d.ts +1 -1
- package/build/types/common/hooks/useHasIntersected/index.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts +15 -4
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts.map +1 -1
- package/build/types/common/index.d.ts +28 -28
- package/build/types/common/index.d.ts.map +1 -1
- package/build/types/common/responsivePanel/index.d.ts +1 -1
- package/build/types/common/responsivePanel/index.d.ts.map +1 -1
- package/build/types/dateLookup/DateLookup.d.ts +1 -1
- package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
- package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts +1 -1
- package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/navigationOption/NavigationOption.d.ts +1 -0
- package/build/types/navigationOption/NavigationOption.d.ts.map +1 -1
- package/build/types/stepper/deviceDetection.d.ts +1 -1
- package/build/types/stepper/deviceDetection.d.ts.map +1 -1
- package/build/types/test-utils/style-mock.d.ts +1 -0
- package/build/types/test-utils/style-mock.d.ts.map +1 -0
- package/build/types/utilities/deprecatedProperty/deprecatedProperty.d.ts +8 -6
- package/build/types/utilities/deprecatedProperty/deprecatedProperty.d.ts.map +1 -1
- package/build/types/utilities/deprecatedProperty/index.d.ts +1 -1
- package/build/types/utilities/deprecatedProperty/index.d.ts.map +1 -1
- package/build/types/utilities/index.d.ts +2 -2
- package/build/types/utilities/index.d.ts.map +1 -1
- package/build/types/utilities/logActionRequired.d.ts +2 -2
- package/build/types/utilities/logActionRequired.d.ts.map +1 -1
- package/build/upload/Upload.js +21 -2
- package/build/upload/Upload.js.map +1 -1
- package/build/upload/Upload.mjs +21 -2
- package/build/upload/Upload.mjs.map +1 -1
- package/build/upload/steps/processingStep/processingStep.js +25 -3
- package/build/upload/steps/processingStep/processingStep.js.map +1 -1
- package/build/upload/steps/processingStep/processingStep.mjs +25 -3
- package/build/upload/steps/processingStep/processingStep.mjs.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +23 -3
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +23 -3
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/build/uploadInput/UploadInput.js +22 -3
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs +22 -3
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.js +21 -2
- package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.mjs +21 -2
- package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
- package/build/uploadInput/uploadButton/defaults.js +24 -0
- package/build/uploadInput/uploadButton/defaults.js.map +1 -1
- package/build/uploadInput/uploadButton/defaults.mjs +24 -0
- package/build/uploadInput/uploadButton/defaults.mjs.map +1 -1
- package/build/uploadInput/uploadItem/UploadItem.js +21 -4
- package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
- package/build/uploadInput/uploadItem/UploadItem.mjs +21 -4
- package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
- package/build/utilities/logActionRequired.js.map +1 -1
- package/build/utilities/logActionRequired.mjs.map +1 -1
- package/build/withDisplayFormat/WithDisplayFormat.js +25 -1
- package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -1
- package/build/withDisplayFormat/WithDisplayFormat.mjs +25 -1
- package/build/withDisplayFormat/WithDisplayFormat.mjs.map +1 -1
- package/package.json +2 -2
- package/src/button/Button.tsx +0 -3
- package/src/button/legacyUtils/legacyUtils.ts +74 -0
- package/src/common/dateUtils/getDateView/getDateView.ts +5 -0
- package/src/common/dateUtils/index.ts +1 -0
- package/src/common/{fakeEvents.js → fakeEvents.ts} +1 -1
- package/src/common/hooks/useHasIntersected/{useHasIntersected.js → useHasIntersected.ts} +20 -11
- package/src/dateLookup/DateLookup.tests.story.tsx +40 -5
- package/src/dateLookup/DateLookup.tsx +9 -11
- package/src/dateLookup/dayCalendar/table/DayCalendarTable.tsx +5 -2
- package/src/flowNavigation/{FlowNavigation.story.js → FlowNavigation.story.tsx} +34 -16
- package/src/index.ts +1 -0
- package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.tsx +78 -0
- package/src/navigationOption/{NavigationOption.story.js → NavigationOption.story.tsx} +23 -5
- package/src/navigationOption/NavigationOption.tsx +1 -1
- package/src/select/{Select.story.js → Select.story.tsx} +97 -47
- package/src/stepper/{deviceDetection.js → deviceDetection.ts} +2 -6
- package/src/utilities/deprecatedProperty/{deprecatedProperty.spec.js → deprecatedProperty.spec.ts} +7 -13
- package/src/utilities/deprecatedProperty/{deprecatedProperty.js → deprecatedProperty.ts} +23 -4
- package/src/utilities/{logActionRequired.js → logActionRequired.ts} +2 -2
- package/src/button/legacyUtils/legacyUtils.js +0 -54
- package/src/common/requirements.js +0 -440
- package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.js +0 -85
- /package/src/button/{Button.messages.js → Button.messages.ts} +0 -0
- /package/src/button/{classMap.js → classMap.ts} +0 -0
- /package/src/button/legacyUtils/{index.js → index.ts} +0 -0
- /package/src/checkboxButton/{index.js → index.ts} +0 -0
- /package/src/common/hooks/{index.js → index.ts} +0 -0
- /package/src/common/hooks/useConditionalListener/{index.js → index.ts} +0 -0
- /package/src/common/hooks/useDirection/{index.js → index.ts} +0 -0
- /package/src/common/hooks/useHasIntersected/{index.js → index.ts} +0 -0
- /package/src/common/{index.js → index.ts} +0 -0
- /package/src/common/responsivePanel/{index.js → index.ts} +0 -0
- /package/src/test-utils/{style-mock.js → style-mock.ts} +0 -0
- /package/src/utilities/deprecatedProperty/{index.js → index.ts} +0 -0
- /package/src/utilities/{index.js → index.ts} +0 -0
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { PureComponent, createRef } from 'react';
|
|
3
|
+
import '../common/theme.mjs';
|
|
4
|
+
import '../common/direction.mjs';
|
|
5
|
+
import '../common/propsValues/control.mjs';
|
|
6
|
+
import { Breakpoint } from '../common/propsValues/breakpoint.mjs';
|
|
7
|
+
import { Size } from '../common/propsValues/size.mjs';
|
|
8
|
+
import '../common/propsValues/typography.mjs';
|
|
9
|
+
import '../common/propsValues/width.mjs';
|
|
10
|
+
import '../common/propsValues/type.mjs';
|
|
11
|
+
import '../common/propsValues/dateMode.mjs';
|
|
12
|
+
import { MonthFormat } from '../common/propsValues/monthFormat.mjs';
|
|
13
|
+
import { Position } from '../common/propsValues/position.mjs';
|
|
14
|
+
import '../common/propsValues/layouts.mjs';
|
|
15
|
+
import '../common/propsValues/status.mjs';
|
|
16
|
+
import '../common/propsValues/sentiment.mjs';
|
|
17
|
+
import '../common/propsValues/profileType.mjs';
|
|
18
|
+
import '../common/propsValues/variant.mjs';
|
|
19
|
+
import '../common/propsValues/scroll.mjs';
|
|
20
|
+
import '../common/propsValues/markdownNodeType.mjs';
|
|
21
|
+
import '../common/fileType.mjs';
|
|
22
|
+
import '@transferwise/icons';
|
|
23
|
+
import 'react-intl';
|
|
24
|
+
import '../common/closeButton/CloseButton.messages.mjs';
|
|
25
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
26
|
import '@transferwise/formatting';
|
|
4
27
|
import { moveToWithinRange } from '../common/dateUtils/moveToWithinRange/moveToWithinRange.mjs';
|
|
5
28
|
import { isWithinRange } from '../common/dateUtils/isWithinRange/isWithinRange.mjs';
|
|
29
|
+
import { returnDateView } from '../common/dateUtils/getDateView/getDateView.mjs';
|
|
30
|
+
import ResponsivePanel from '../common/responsivePanel/ResponsivePanel.mjs';
|
|
6
31
|
import { withInputAttributes } from '../inputs/contexts.mjs';
|
|
7
32
|
import { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider.mjs';
|
|
8
33
|
import DateTrigger from './dateTrigger/DateTrigger.mjs';
|
|
@@ -10,12 +35,6 @@ import DayCalendar from './dayCalendar/DayCalendar.mjs';
|
|
|
10
35
|
import { getStartOfDay } from './getStartOfDay/getStartOfDay.mjs';
|
|
11
36
|
import MonthCalendar from './monthCalendar/MonthCalendar.mjs';
|
|
12
37
|
import YearCalendar from './yearCalendar/YearCalendar.mjs';
|
|
13
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
14
|
-
import { MonthFormat } from '../common/propsValues/monthFormat.mjs';
|
|
15
|
-
import { Breakpoint } from '../common/propsValues/breakpoint.mjs';
|
|
16
|
-
import ResponsivePanel from '../common/responsivePanel/ResponsivePanel.mjs';
|
|
17
|
-
import { Size } from '../common/propsValues/size.mjs';
|
|
18
|
-
import { Position } from '../common/propsValues/position.mjs';
|
|
19
38
|
|
|
20
39
|
class DateLookup extends PureComponent {
|
|
21
40
|
static defaultProps = {
|
|
@@ -33,13 +52,14 @@ class DateLookup extends PureComponent {
|
|
|
33
52
|
dropdown = /*#__PURE__*/createRef();
|
|
34
53
|
constructor(props) {
|
|
35
54
|
super(props);
|
|
55
|
+
const dateView = returnDateView(props.value, props.min, props.max);
|
|
36
56
|
this.state = {
|
|
37
57
|
selectedDate: getStartOfDay(props.value),
|
|
38
58
|
originalDate: null,
|
|
39
59
|
min: getStartOfDay(props.min),
|
|
40
60
|
max: getStartOfDay(props.max),
|
|
41
|
-
viewMonth:
|
|
42
|
-
viewYear:
|
|
61
|
+
viewMonth: dateView.getMonth(),
|
|
62
|
+
viewYear: dateView.getFullYear(),
|
|
43
63
|
open: false,
|
|
44
64
|
mode: 'day',
|
|
45
65
|
isMobile: false
|
|
@@ -60,7 +80,7 @@ class DateLookup extends PureComponent {
|
|
|
60
80
|
props.onChange(moveToWithinRange(selectedDate, min, max));
|
|
61
81
|
return null;
|
|
62
82
|
}
|
|
63
|
-
const viewDateThatIsWithinRange = selectedDate
|
|
83
|
+
const viewDateThatIsWithinRange = returnDateView(selectedDate, min, max);
|
|
64
84
|
const viewMonth = viewDateThatIsWithinRange.getMonth();
|
|
65
85
|
const viewYear = viewDateThatIsWithinRange.getFullYear();
|
|
66
86
|
return {
|
|
@@ -185,9 +205,7 @@ class DateLookup extends PureComponent {
|
|
|
185
205
|
} else {
|
|
186
206
|
date = getStartOfDay(new Date());
|
|
187
207
|
}
|
|
188
|
-
|
|
189
|
-
date = moveToWithinRange(date, min, max);
|
|
190
|
-
}
|
|
208
|
+
date &&= moveToWithinRange(date, min, max);
|
|
191
209
|
if (date?.getTime() !== selectedDate?.getTime()) {
|
|
192
210
|
this.props.onChange(date);
|
|
193
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateLookup.mjs","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\n\nimport {\n Size,\n MonthFormat,\n Position,\n Breakpoint,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n} from '../common';\nimport { isWithinRange, moveToWithinRange } from '../common/dateUtils';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdContext, OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n selectedDate: Date | null;\n originalDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n open: boolean;\n mode: 'day' | 'month' | 'year';\n isMobile: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n dropdown = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n selectedDate: getStartOfDay(props.value),\n originalDate: null,\n min: getStartOfDay(props.min),\n max: getStartOfDay(props.max),\n viewMonth: (props.value || new Date()).getMonth(),\n viewYear: (props.value || new Date()).getFullYear(),\n open: false,\n mode: 'day',\n isMobile: false,\n };\n }\n\n static getDerivedStateFromProps(props: DateLookup['props'], state: DateLookupState) {\n const propsSelected = getStartOfDay(props.value);\n const propsMin = getStartOfDay(props.min);\n const propsMax = getStartOfDay(props.max);\n const hasSelectedChanged = state.selectedDate?.getTime() !== propsSelected?.getTime();\n const hasMinChanged = state.min?.getTime() !== propsMin?.getTime();\n const hasMaxChanged = state.max?.getTime() !== propsMax?.getTime();\n if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {\n const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;\n const min = hasMinChanged ? propsMin : state.min;\n const max = hasMaxChanged ? propsMax : state.max;\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n props.onChange(moveToWithinRange(selectedDate, min, max));\n return null;\n }\n const viewDateThatIsWithinRange: Date =\n selectedDate || ((min || max) && moveToWithinRange(new Date(), min, max)) || new Date();\n const viewMonth = viewDateThatIsWithinRange.getMonth();\n const viewYear = viewDateThatIsWithinRange.getFullYear();\n return { selectedDate, min, max, viewMonth, viewYear };\n }\n return null;\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n const mediaQuery = window.matchMedia(`(max-width: ${Breakpoint.SMALL}px)`);\n this.setState({ isMobile: mediaQuery.matches });\n }\n\n componentWillUnmount() {\n // Prevents memory leak by cleaning state.\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true, mode: 'day' });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n if (open) {\n this.adjustDate(-1, -1, -1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n if (open) {\n this.adjustDate(-7, -4, -4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowRight':\n if (open) {\n this.adjustDate(1, 1, 1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowDown':\n if (open) {\n this.adjustDate(7, 4, 4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n adjustDate = (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n const { selectedDate, min, max, mode, originalDate } = this.state;\n if (originalDate === null) {\n this.setState({ originalDate: selectedDate });\n }\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n if (date) {\n date = moveToWithinRange(date, min, max);\n }\n if (date?.getTime() !== selectedDate?.getTime()) {\n this.props.onChange(date);\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n switchMode = (mode: 'day' | 'month' | 'year') => {\n this.setState({ mode }, () => {\n this.focusOn('.active', '.today');\n });\n };\n\n switchToDays = () => this.switchMode('day');\n\n switchToMonths = () => this.switchMode('month');\n\n switchToYears = () => this.switchMode('year');\n\n handleSelectedDateUpdate = (selectedDate: Date) => {\n this.setState({ selectedDate }, () => {\n this.props.onChange(selectedDate);\n this.close();\n this.focusOn('.btn');\n });\n };\n\n handleViewDateUpdate = ({ month = this.state.viewMonth, year = this.state.viewYear }) => {\n this.setState({ viewMonth: month, viewYear: year });\n };\n\n getCalendar = () => {\n const { selectedDate, min, max, viewMonth, viewYear, mode, isMobile } = this.state;\n const { placeholder, monthFormat } = this.props;\n return (\n <div className={clsx({ 'p-a-1': !isMobile })}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={this.handleSelectedDateUpdate}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToDays}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToMonths}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { selectedDate, open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n {...inputAttributes}\n id={id}\n className=\"input-group\"\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={selectedDate}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nexport default withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","dropdown","constructor","props","state","selectedDate","getStartOfDay","originalDate","viewMonth","Date","getMonth","viewYear","getFullYear","open","mode","isMobile","getDerivedStateFromProps","propsSelected","propsMin","propsMax","hasSelectedChanged","getTime","hasMinChanged","hasMaxChanged","isWithinRange","onChange","moveToWithinRange","viewDateThatIsWithinRange","componentDidUpdate","previousProps","focusOn","mediaQuery","window","matchMedia","Breakpoint","SMALL","setState","matches","componentWillUnmount","onFocus","discard","close","onBlur","handleKeyDown","event","key","adjustDate","preventDefault","daysToAdd","monthsToAdd","yearsToAdd","date","getDate","preferredElement","fallbackElement","current","querySelector","focus","switchMode","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","handleViewDateUpdate","month","year","getCalendar","_jsxs","className","clsx","children","_jsx","DayCalendar","onSelect","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","onKeyDown","OverlayIdProvider","DateTrigger","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","onClose","withInputAttributes","nonLabelable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateLookup.mjs","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\n\nimport {\n Size,\n MonthFormat,\n Position,\n Breakpoint,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdContext, OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n selectedDate: Date | null;\n originalDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n open: boolean;\n mode: 'day' | 'month' | 'year';\n isMobile: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n dropdown = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n const dateView = returnDateView(props.value, props.min, props.max);\n this.state = {\n selectedDate: getStartOfDay(props.value),\n originalDate: null,\n min: getStartOfDay(props.min),\n max: getStartOfDay(props.max),\n viewMonth: dateView.getMonth(),\n viewYear: dateView.getFullYear(),\n open: false,\n mode: 'day',\n isMobile: false,\n };\n }\n\n static getDerivedStateFromProps(props: DateLookup['props'], state: DateLookupState) {\n const propsSelected = getStartOfDay(props.value);\n const propsMin = getStartOfDay(props.min);\n const propsMax = getStartOfDay(props.max);\n const hasSelectedChanged = state.selectedDate?.getTime() !== propsSelected?.getTime();\n const hasMinChanged = state.min?.getTime() !== propsMin?.getTime();\n const hasMaxChanged = state.max?.getTime() !== propsMax?.getTime();\n if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {\n const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;\n const min = hasMinChanged ? propsMin : state.min;\n const max = hasMaxChanged ? propsMax : state.max;\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n props.onChange(moveToWithinRange(selectedDate, min, max));\n return null;\n }\n const viewDateThatIsWithinRange: Date = returnDateView(selectedDate, min, max);\n const viewMonth = viewDateThatIsWithinRange.getMonth();\n const viewYear = viewDateThatIsWithinRange.getFullYear();\n return { selectedDate, min, max, viewMonth, viewYear };\n }\n return null;\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n const mediaQuery = window.matchMedia(`(max-width: ${Breakpoint.SMALL}px)`);\n this.setState({ isMobile: mediaQuery.matches });\n }\n\n componentWillUnmount() {\n // Prevents memory leak by cleaning state.\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true, mode: 'day' });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n if (open) {\n this.adjustDate(-1, -1, -1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n if (open) {\n this.adjustDate(-7, -4, -4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowRight':\n if (open) {\n this.adjustDate(1, 1, 1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowDown':\n if (open) {\n this.adjustDate(7, 4, 4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n adjustDate = (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n const { selectedDate, min, max, mode, originalDate } = this.state;\n if (originalDate === null) {\n this.setState({ originalDate: selectedDate });\n }\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n this.props.onChange(date);\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n switchMode = (mode: 'day' | 'month' | 'year') => {\n this.setState({ mode }, () => {\n this.focusOn('.active', '.today');\n });\n };\n\n switchToDays = () => this.switchMode('day');\n\n switchToMonths = () => this.switchMode('month');\n\n switchToYears = () => this.switchMode('year');\n\n handleSelectedDateUpdate = (selectedDate: Date) => {\n this.setState({ selectedDate }, () => {\n this.props.onChange(selectedDate);\n this.close();\n this.focusOn('.btn');\n });\n };\n\n handleViewDateUpdate = ({ month = this.state.viewMonth, year = this.state.viewYear }) => {\n this.setState({ viewMonth: month, viewYear: year });\n };\n\n getCalendar = () => {\n const { selectedDate, min, max, viewMonth, viewYear, mode, isMobile } = this.state;\n const { placeholder, monthFormat } = this.props;\n return (\n <div className={clsx({ 'p-a-1': !isMobile })}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={this.handleSelectedDateUpdate}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToDays}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToMonths}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { selectedDate, open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n {...inputAttributes}\n id={id}\n className=\"input-group\"\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={selectedDate}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nexport default withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","dropdown","constructor","props","dateView","returnDateView","state","selectedDate","getStartOfDay","originalDate","viewMonth","getMonth","viewYear","getFullYear","open","mode","isMobile","getDerivedStateFromProps","propsSelected","propsMin","propsMax","hasSelectedChanged","getTime","hasMinChanged","hasMaxChanged","isWithinRange","onChange","moveToWithinRange","viewDateThatIsWithinRange","componentDidUpdate","previousProps","focusOn","mediaQuery","window","matchMedia","Breakpoint","SMALL","setState","matches","componentWillUnmount","onFocus","discard","close","onBlur","handleKeyDown","event","key","adjustDate","preventDefault","daysToAdd","monthsToAdd","yearsToAdd","date","Date","getDate","preferredElement","fallbackElement","current","querySelector","focus","switchMode","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","handleViewDateUpdate","month","year","getCalendar","_jsxs","className","clsx","children","_jsx","DayCalendar","onSelect","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","onKeyDown","OverlayIdProvider","DateTrigger","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","onClose","withInputAttributes","nonLabelable"],"mappings":"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"}
|
|
@@ -3,13 +3,34 @@
|
|
|
3
3
|
var clsx = require('clsx');
|
|
4
4
|
var reactIntl = require('react-intl');
|
|
5
5
|
var Chevron = require('../../chevron/Chevron.js');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var position = require('../../common/propsValues/position.js');
|
|
6
|
+
require('../../common/theme.js');
|
|
7
|
+
require('../../common/direction.js');
|
|
8
|
+
require('../../common/propsValues/control.js');
|
|
9
|
+
require('../../common/propsValues/breakpoint.js');
|
|
11
10
|
var size = require('../../common/propsValues/size.js');
|
|
12
11
|
var typography = require('../../common/propsValues/typography.js');
|
|
12
|
+
require('../../common/propsValues/width.js');
|
|
13
|
+
require('../../common/propsValues/type.js');
|
|
14
|
+
require('../../common/propsValues/dateMode.js');
|
|
15
|
+
require('../../common/propsValues/monthFormat.js');
|
|
16
|
+
var position = require('../../common/propsValues/position.js');
|
|
17
|
+
require('../../common/propsValues/layouts.js');
|
|
18
|
+
require('../../common/propsValues/status.js');
|
|
19
|
+
require('../../common/propsValues/sentiment.js');
|
|
20
|
+
require('../../common/propsValues/profileType.js');
|
|
21
|
+
require('../../common/propsValues/variant.js');
|
|
22
|
+
require('../../common/propsValues/scroll.js');
|
|
23
|
+
require('../../common/propsValues/markdownNodeType.js');
|
|
24
|
+
require('../../common/fileType.js');
|
|
25
|
+
require('@transferwise/icons');
|
|
26
|
+
require('react');
|
|
27
|
+
require('../../common/closeButton/CloseButton.messages.js');
|
|
28
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
29
|
+
require('@transferwise/neptune-validation');
|
|
30
|
+
require('../../provider/direction/DirectionProvider.js');
|
|
31
|
+
var useLayout = require('../../common/hooks/useLayout/useLayout.js');
|
|
32
|
+
var Title = require('../../title/Title.js');
|
|
33
|
+
var DateLookup_messages = require('../DateLookup.messages.js');
|
|
13
34
|
|
|
14
35
|
const buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';
|
|
15
36
|
const DateHeader = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateHeader.js","sources":["../../../src/dateLookup/dateHeader/DateHeader.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport { useLayout } from '../../common/hooks';\nimport Title from '../../title';\nimport messages from '../DateLookup.messages';\n\nconst buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';\n\ninterface DateHeaderProps {\n label?: string;\n onLabelClick?: () => void;\n onPreviousClick: () => void;\n onNextClick: () => void;\n dateMode: string;\n}\n\nconst DateHeader: React.FC<DateHeaderProps> = ({\n label,\n onLabelClick,\n onPreviousClick,\n onNextClick,\n dateMode,\n}) => {\n const intl = useIntl();\n const { isMobile } = useLayout();\n return (\n <div className={clsx('text-xs-center', !isMobile && ['clearfix', 'p-y-1'])}>\n <div className=\"pull-left-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${intl.formatMessage(messages.previous)} ${dateMode}`}\n onClick={onPreviousClick}\n >\n <Chevron\n orientation={Position.LEFT}\n className=\"left-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n {label && (\n <Title type={Typography.TITLE_BODY} className=\"tw-date-lookup-header-current-container\">\n <button\n type=\"button\"\n className={`tw-date-lookup-header-current ${buttonClasses}`}\n aria-label={intl.formatMessage(messages.goTo20YearView)}\n onClick={onLabelClick}\n >\n {label}\n </button>\n </Title>\n )}\n <div className=\"pull-right-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${useIntl().formatMessage(messages.next)} ${dateMode}`}\n onClick={onNextClick}\n >\n <Chevron\n orientation={Position.RIGHT}\n className=\"right-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport default DateHeader;\n"],"names":["buttonClasses","DateHeader","label","onLabelClick","onPreviousClick","onNextClick","dateMode","intl","useIntl","isMobile","useLayout","_jsxs","className","clsx","children","_jsx","type","formatMessage","messages","previous","onClick","Chevron","orientation","Position","LEFT","size","Size","MEDIUM","Title","Typography","TITLE_BODY","goTo20YearView","next","RIGHT"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateHeader.js","sources":["../../../src/dateLookup/dateHeader/DateHeader.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport { useLayout } from '../../common/hooks';\nimport Title from '../../title';\nimport messages from '../DateLookup.messages';\n\nconst buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';\n\ninterface DateHeaderProps {\n label?: string;\n onLabelClick?: () => void;\n onPreviousClick: () => void;\n onNextClick: () => void;\n dateMode: string;\n}\n\nconst DateHeader: React.FC<DateHeaderProps> = ({\n label,\n onLabelClick,\n onPreviousClick,\n onNextClick,\n dateMode,\n}) => {\n const intl = useIntl();\n const { isMobile } = useLayout();\n return (\n <div className={clsx('text-xs-center', !isMobile && ['clearfix', 'p-y-1'])}>\n <div className=\"pull-left-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${intl.formatMessage(messages.previous)} ${dateMode}`}\n onClick={onPreviousClick}\n >\n <Chevron\n orientation={Position.LEFT}\n className=\"left-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n {label && (\n <Title type={Typography.TITLE_BODY} className=\"tw-date-lookup-header-current-container\">\n <button\n type=\"button\"\n className={`tw-date-lookup-header-current ${buttonClasses}`}\n aria-label={intl.formatMessage(messages.goTo20YearView)}\n onClick={onLabelClick}\n >\n {label}\n </button>\n </Title>\n )}\n <div className=\"pull-right-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${useIntl().formatMessage(messages.next)} ${dateMode}`}\n onClick={onNextClick}\n >\n <Chevron\n orientation={Position.RIGHT}\n className=\"right-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport default DateHeader;\n"],"names":["buttonClasses","DateHeader","label","onLabelClick","onPreviousClick","onNextClick","dateMode","intl","useIntl","isMobile","useLayout","_jsxs","className","clsx","children","_jsx","type","formatMessage","messages","previous","onClick","Chevron","orientation","Position","LEFT","size","Size","MEDIUM","Title","Typography","TITLE_BODY","goTo20YearView","next","RIGHT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,aAAa,GAAG,sEAAsE,CAAA;AAUtFC,MAAAA,UAAU,GAA8BA,CAAC;EAC7CC,KAAK;EACLC,YAAY;EACZC,eAAe;EACfC,WAAW;AACXC,EAAAA,QAAAA;AAAQ,CACT,KAAI;AACH,EAAA,MAAMC,IAAI,GAAGC,iBAAO,EAAE,CAAA;EACtB,MAAM;AAAEC,IAAAA,QAAAA;GAAU,GAAGC,mBAAS,EAAE,CAAA;AAChC,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,SAAI,CAAC,gBAAgB,EAAE,CAACJ,QAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAE;AAAAK,IAAAA,QAAA,gBACzEC,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,4BAA4B;AAAAE,MAAAA,QAAA,eACzCC,cAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiBZ,cAAAA,EAAAA,aAAa,CAAG,CAAA;QAC5C,YAAY,EAAA,CAAA,EAAGO,IAAI,CAACU,aAAa,CAACC,mBAAQ,CAACC,QAAQ,CAAC,CAAIb,CAAAA,EAAAA,QAAQ,CAAG,CAAA;AACnEc,QAAAA,OAAO,EAAEhB,eAAgB;QAAAU,QAAA,eAEzBC,cAAA,CAACM,OAAO,EAAA;UACNC,WAAW,EAAEC,iBAAQ,CAACC,IAAK;AAC3BZ,UAAAA,SAAS,EAAC,uBAAuB;UACjCa,IAAI,EAAEC,SAAI,CAACC,MAAAA;SAEf,CAAA;OAAQ,CAAA;AACV,KAAK,CACL,EAACzB,KAAK,iBACJa,cAAA,CAACa,KAAK,EAAA;MAACZ,IAAI,EAAEa,qBAAU,CAACC,UAAW;AAAClB,MAAAA,SAAS,EAAC,yCAAyC;AAAAE,MAAAA,QAAA,eACrFC,cAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiCZ,8BAAAA,EAAAA,aAAa,CAAG,CAAA;AAC5D,QAAA,YAAA,EAAYO,IAAI,CAACU,aAAa,CAACC,mBAAQ,CAACa,cAAc,CAAE;AACxDX,QAAAA,OAAO,EAAEjB,YAAa;AAAAW,QAAAA,QAAA,EAErBZ,KAAAA;OACK,CAAA;KACH,CACR,eACDa,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,6BAA6B;AAAAE,MAAAA,QAAA,eAC1CC,cAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiBZ,cAAAA,EAAAA,aAAa,CAAG,CAAA;AAC5C,QAAA,YAAA,EAAY,CAAGQ,EAAAA,iBAAO,EAAE,CAACS,aAAa,CAACC,mBAAQ,CAACc,IAAI,CAAC,CAAA,CAAA,EAAI1B,QAAQ,CAAG,CAAA;AACpEc,QAAAA,OAAO,EAAEf,WAAY;QAAAS,QAAA,eAErBC,cAAA,CAACM,OAAO,EAAA;UACNC,WAAW,EAAEC,iBAAQ,CAACU,KAAM;AAC5BrB,UAAAA,SAAS,EAAC,wBAAwB;UAClCa,IAAI,EAAEC,SAAI,CAACC,MAAAA;SAEf,CAAA;OAAQ,CAAA;AACV,KAAK,CACP,CAAA;AAAA,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -1,13 +1,34 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import Chevron from '../../chevron/Chevron.mjs';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { Position } from '../../common/propsValues/position.mjs';
|
|
4
|
+
import '../../common/theme.mjs';
|
|
5
|
+
import '../../common/direction.mjs';
|
|
6
|
+
import '../../common/propsValues/control.mjs';
|
|
7
|
+
import '../../common/propsValues/breakpoint.mjs';
|
|
9
8
|
import { Size } from '../../common/propsValues/size.mjs';
|
|
10
9
|
import { Typography } from '../../common/propsValues/typography.mjs';
|
|
10
|
+
import '../../common/propsValues/width.mjs';
|
|
11
|
+
import '../../common/propsValues/type.mjs';
|
|
12
|
+
import '../../common/propsValues/dateMode.mjs';
|
|
13
|
+
import '../../common/propsValues/monthFormat.mjs';
|
|
14
|
+
import { Position } from '../../common/propsValues/position.mjs';
|
|
15
|
+
import '../../common/propsValues/layouts.mjs';
|
|
16
|
+
import '../../common/propsValues/status.mjs';
|
|
17
|
+
import '../../common/propsValues/sentiment.mjs';
|
|
18
|
+
import '../../common/propsValues/profileType.mjs';
|
|
19
|
+
import '../../common/propsValues/variant.mjs';
|
|
20
|
+
import '../../common/propsValues/scroll.mjs';
|
|
21
|
+
import '../../common/propsValues/markdownNodeType.mjs';
|
|
22
|
+
import '../../common/fileType.mjs';
|
|
23
|
+
import '@transferwise/icons';
|
|
24
|
+
import 'react';
|
|
25
|
+
import '../../common/closeButton/CloseButton.messages.mjs';
|
|
26
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
27
|
+
import '@transferwise/neptune-validation';
|
|
28
|
+
import '../../provider/direction/DirectionProvider.mjs';
|
|
29
|
+
import { useLayout } from '../../common/hooks/useLayout/useLayout.mjs';
|
|
30
|
+
import Title from '../../title/Title.mjs';
|
|
31
|
+
import messages from '../DateLookup.messages.mjs';
|
|
11
32
|
|
|
12
33
|
const buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';
|
|
13
34
|
const DateHeader = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateHeader.mjs","sources":["../../../src/dateLookup/dateHeader/DateHeader.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport { useLayout } from '../../common/hooks';\nimport Title from '../../title';\nimport messages from '../DateLookup.messages';\n\nconst buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';\n\ninterface DateHeaderProps {\n label?: string;\n onLabelClick?: () => void;\n onPreviousClick: () => void;\n onNextClick: () => void;\n dateMode: string;\n}\n\nconst DateHeader: React.FC<DateHeaderProps> = ({\n label,\n onLabelClick,\n onPreviousClick,\n onNextClick,\n dateMode,\n}) => {\n const intl = useIntl();\n const { isMobile } = useLayout();\n return (\n <div className={clsx('text-xs-center', !isMobile && ['clearfix', 'p-y-1'])}>\n <div className=\"pull-left-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${intl.formatMessage(messages.previous)} ${dateMode}`}\n onClick={onPreviousClick}\n >\n <Chevron\n orientation={Position.LEFT}\n className=\"left-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n {label && (\n <Title type={Typography.TITLE_BODY} className=\"tw-date-lookup-header-current-container\">\n <button\n type=\"button\"\n className={`tw-date-lookup-header-current ${buttonClasses}`}\n aria-label={intl.formatMessage(messages.goTo20YearView)}\n onClick={onLabelClick}\n >\n {label}\n </button>\n </Title>\n )}\n <div className=\"pull-right-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${useIntl().formatMessage(messages.next)} ${dateMode}`}\n onClick={onNextClick}\n >\n <Chevron\n orientation={Position.RIGHT}\n className=\"right-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport default DateHeader;\n"],"names":["buttonClasses","DateHeader","label","onLabelClick","onPreviousClick","onNextClick","dateMode","intl","useIntl","isMobile","useLayout","_jsxs","className","clsx","children","_jsx","type","formatMessage","messages","previous","onClick","Chevron","orientation","Position","LEFT","size","Size","MEDIUM","Title","Typography","TITLE_BODY","goTo20YearView","next","RIGHT"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateHeader.mjs","sources":["../../../src/dateLookup/dateHeader/DateHeader.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport { useLayout } from '../../common/hooks';\nimport Title from '../../title';\nimport messages from '../DateLookup.messages';\n\nconst buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';\n\ninterface DateHeaderProps {\n label?: string;\n onLabelClick?: () => void;\n onPreviousClick: () => void;\n onNextClick: () => void;\n dateMode: string;\n}\n\nconst DateHeader: React.FC<DateHeaderProps> = ({\n label,\n onLabelClick,\n onPreviousClick,\n onNextClick,\n dateMode,\n}) => {\n const intl = useIntl();\n const { isMobile } = useLayout();\n return (\n <div className={clsx('text-xs-center', !isMobile && ['clearfix', 'p-y-1'])}>\n <div className=\"pull-left-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${intl.formatMessage(messages.previous)} ${dateMode}`}\n onClick={onPreviousClick}\n >\n <Chevron\n orientation={Position.LEFT}\n className=\"left-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n {label && (\n <Title type={Typography.TITLE_BODY} className=\"tw-date-lookup-header-current-container\">\n <button\n type=\"button\"\n className={`tw-date-lookup-header-current ${buttonClasses}`}\n aria-label={intl.formatMessage(messages.goTo20YearView)}\n onClick={onLabelClick}\n >\n {label}\n </button>\n </Title>\n )}\n <div className=\"pull-right-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${useIntl().formatMessage(messages.next)} ${dateMode}`}\n onClick={onNextClick}\n >\n <Chevron\n orientation={Position.RIGHT}\n className=\"right-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport default DateHeader;\n"],"names":["buttonClasses","DateHeader","label","onLabelClick","onPreviousClick","onNextClick","dateMode","intl","useIntl","isMobile","useLayout","_jsxs","className","clsx","children","_jsx","type","formatMessage","messages","previous","onClick","Chevron","orientation","Position","LEFT","size","Size","MEDIUM","Title","Typography","TITLE_BODY","goTo20YearView","next","RIGHT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,aAAa,GAAG,sEAAsE,CAAA;AAUtFC,MAAAA,UAAU,GAA8BA,CAAC;EAC7CC,KAAK;EACLC,YAAY;EACZC,eAAe;EACfC,WAAW;AACXC,EAAAA,QAAAA;AAAQ,CACT,KAAI;AACH,EAAA,MAAMC,IAAI,GAAGC,OAAO,EAAE,CAAA;EACtB,MAAM;AAAEC,IAAAA,QAAAA;GAAU,GAAGC,SAAS,EAAE,CAAA;AAChC,EAAA,oBACEC,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEC,IAAI,CAAC,gBAAgB,EAAE,CAACJ,QAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAE;AAAAK,IAAAA,QAAA,gBACzEC,GAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,4BAA4B;AAAAE,MAAAA,QAAA,eACzCC,GAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiBZ,cAAAA,EAAAA,aAAa,CAAG,CAAA;QAC5C,YAAY,EAAA,CAAA,EAAGO,IAAI,CAACU,aAAa,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAIb,CAAAA,EAAAA,QAAQ,CAAG,CAAA;AACnEc,QAAAA,OAAO,EAAEhB,eAAgB;QAAAU,QAAA,eAEzBC,GAAA,CAACM,OAAO,EAAA;UACNC,WAAW,EAAEC,QAAQ,CAACC,IAAK;AAC3BZ,UAAAA,SAAS,EAAC,uBAAuB;UACjCa,IAAI,EAAEC,IAAI,CAACC,MAAAA;SAEf,CAAA;OAAQ,CAAA;AACV,KAAK,CACL,EAACzB,KAAK,iBACJa,GAAA,CAACa,KAAK,EAAA;MAACZ,IAAI,EAAEa,UAAU,CAACC,UAAW;AAAClB,MAAAA,SAAS,EAAC,yCAAyC;AAAAE,MAAAA,QAAA,eACrFC,GAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiCZ,8BAAAA,EAAAA,aAAa,CAAG,CAAA;AAC5D,QAAA,YAAA,EAAYO,IAAI,CAACU,aAAa,CAACC,QAAQ,CAACa,cAAc,CAAE;AACxDX,QAAAA,OAAO,EAAEjB,YAAa;AAAAW,QAAAA,QAAA,EAErBZ,KAAAA;OACK,CAAA;KACH,CACR,eACDa,GAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,6BAA6B;AAAAE,MAAAA,QAAA,eAC1CC,GAAA,CAAA,QAAA,EAAA;AACEC,QAAAA,IAAI,EAAC,QAAQ;QACbJ,SAAS,EAAE,CAAiBZ,cAAAA,EAAAA,aAAa,CAAG,CAAA;AAC5C,QAAA,YAAA,EAAY,CAAGQ,EAAAA,OAAO,EAAE,CAACS,aAAa,CAACC,QAAQ,CAACc,IAAI,CAAC,CAAA,CAAA,EAAI1B,QAAQ,CAAG,CAAA;AACpEc,QAAAA,OAAO,EAAEf,WAAY;QAAAS,QAAA,eAErBC,GAAA,CAACM,OAAO,EAAA;UACNC,WAAW,EAAEC,QAAQ,CAACU,KAAM;AAC5BrB,UAAAA,SAAS,EAAC,wBAAwB;UAClCa,IAAI,EAAEC,IAAI,CAACC,MAAAA;SAEf,CAAA;OAAQ,CAAA;AACV,KAAK,CACP,CAAA;AAAA,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -3,15 +3,31 @@
|
|
|
3
3
|
var formatting = require('@transferwise/formatting');
|
|
4
4
|
var reactIntl = require('react-intl');
|
|
5
5
|
var Chevron = require('../../chevron/Chevron.js');
|
|
6
|
+
require('../../common/theme.js');
|
|
7
|
+
require('../../common/direction.js');
|
|
8
|
+
require('../../common/propsValues/control.js');
|
|
9
|
+
require('../../common/propsValues/breakpoint.js');
|
|
10
|
+
var size = require('../../common/propsValues/size.js');
|
|
11
|
+
var typography = require('../../common/propsValues/typography.js');
|
|
12
|
+
require('../../common/propsValues/width.js');
|
|
13
|
+
require('../../common/propsValues/type.js');
|
|
14
|
+
require('../../common/propsValues/dateMode.js');
|
|
15
|
+
require('../../common/propsValues/monthFormat.js');
|
|
16
|
+
var position = require('../../common/propsValues/position.js');
|
|
17
|
+
require('../../common/propsValues/layouts.js');
|
|
18
|
+
require('../../common/propsValues/status.js');
|
|
19
|
+
require('../../common/propsValues/sentiment.js');
|
|
20
|
+
require('../../common/propsValues/profileType.js');
|
|
21
|
+
require('../../common/propsValues/variant.js');
|
|
22
|
+
require('../../common/propsValues/scroll.js');
|
|
23
|
+
require('../../common/propsValues/markdownNodeType.js');
|
|
24
|
+
require('../../common/fileType.js');
|
|
6
25
|
var CloseButton = require('../../common/closeButton/CloseButton.js');
|
|
7
26
|
var DateTrigger_messages = require('./DateTrigger.messages.js');
|
|
8
27
|
var React = require('react');
|
|
9
28
|
var OverlayIdProvider = require('../../provider/overlay/OverlayIdProvider.js');
|
|
10
29
|
var Body = require('../../body/Body.js');
|
|
11
30
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
-
var typography = require('../../common/propsValues/typography.js');
|
|
13
|
-
var position = require('../../common/propsValues/position.js');
|
|
14
|
-
var size = require('../../common/propsValues/size.js');
|
|
15
31
|
|
|
16
32
|
const DateTrigger = ({
|
|
17
33
|
selectedDate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTrigger.js","sources":["../../../src/dateLookup/dateTrigger/DateTrigger.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Size, Position, SizeSmall, SizeMedium, SizeLarge, Typography } from '../../common';\nimport { CloseButton } from '../../common/closeButton/CloseButton';\n\nimport messages from './DateTrigger.messages';\nimport { useContext, useId } from 'react';\nimport { OverlayIdContext } from '../../provider/overlay/OverlayIdProvider';\nimport Body from '../../body';\n\ninterface DateTriggerProps {\n ariaLabelledBy?: string;\n selectedDate: Date | null;\n size: SizeSmall | SizeMedium | SizeLarge;\n placeholder: string;\n label: string;\n monthFormat: 'short' | 'long';\n disabled: boolean;\n onClick: () => void;\n onClear?: () => void;\n}\n\nconst DateTrigger: React.FC<DateTriggerProps> = ({\n selectedDate,\n size = Size.MEDIUM,\n placeholder,\n label,\n monthFormat,\n disabled,\n ariaLabelledBy,\n onClick,\n onClear,\n}) => {\n const { locale, formatMessage } = useIntl();\n const valueIdPrefix = useId();\n const overlayId = useContext(OverlayIdContext);\n const ariaLabelIds = [ariaLabelledBy, `${valueIdPrefix}:prefix`, `${valueIdPrefix}:value`];\n\n return (\n <>\n <button\n aria-haspopup=\"dialog\"\n aria-expanded={overlayId != null}\n aria-controls={overlayId}\n aria-labelledby={ariaLabelIds.filter(Boolean).join(' ')}\n className={`btn btn-${size} btn-input np-date-trigger`}\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n >\n {label && (\n <Body as=\"span\" className=\"np-date-trigger-label m-r-1\" id={ariaLabelIds[1]}>\n {label}\n </Body>\n )}\n {selectedDate ? (\n <Body as=\"span\" type={Typography.BODY_LARGE} id={ariaLabelIds[2]}>\n {formatDate(selectedDate, locale, {\n day: 'numeric',\n month: monthFormat,\n year: 'numeric',\n })}\n </Body>\n ) : (\n <span\n className=\"form-control-placeholder visible-xs-inline visible-sm-inline\n visible-md-inline visible-lg-inline visible-xl-inline\"\n id={ariaLabelIds[2]}\n >\n {placeholder}\n </span>\n )}\n {!onClear ? <Chevron orientation={Position.BOTTOM} disabled={disabled} /> : null}\n </button>\n {onClear ? (\n <>\n <div className=\"clearfix\" />\n <span className=\"input-group-addon\">\n <CloseButton\n className={`clear-btn clear-btn--${size}`}\n aria-label={`${formatMessage(messages.ariaLabel)} ${label}`}\n size={Size.SMALL}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n onClear();\n }}\n />\n </span>\n </>\n ) : null}\n </>\n );\n};\n\nexport default DateTrigger;\n"],"names":["DateTrigger","selectedDate","size","Size","MEDIUM","placeholder","label","monthFormat","disabled","ariaLabelledBy","onClick","onClear","locale","formatMessage","useIntl","valueIdPrefix","useId","overlayId","useContext","OverlayIdContext","ariaLabelIds","_jsxs","_Fragment","children","filter","Boolean","join","className","type","_jsx","Body","as","id","Typography","BODY_LARGE","formatDate","day","month","year","Chevron","orientation","Position","BOTTOM","CloseButton","messages","ariaLabel","SMALL","event","stopPropagation","preventDefault"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateTrigger.js","sources":["../../../src/dateLookup/dateTrigger/DateTrigger.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Size, Position, SizeSmall, SizeMedium, SizeLarge, Typography } from '../../common';\nimport { CloseButton } from '../../common/closeButton/CloseButton';\n\nimport messages from './DateTrigger.messages';\nimport { useContext, useId } from 'react';\nimport { OverlayIdContext } from '../../provider/overlay/OverlayIdProvider';\nimport Body from '../../body';\n\ninterface DateTriggerProps {\n ariaLabelledBy?: string;\n selectedDate: Date | null;\n size: SizeSmall | SizeMedium | SizeLarge;\n placeholder: string;\n label: string;\n monthFormat: 'short' | 'long';\n disabled: boolean;\n onClick: () => void;\n onClear?: () => void;\n}\n\nconst DateTrigger: React.FC<DateTriggerProps> = ({\n selectedDate,\n size = Size.MEDIUM,\n placeholder,\n label,\n monthFormat,\n disabled,\n ariaLabelledBy,\n onClick,\n onClear,\n}) => {\n const { locale, formatMessage } = useIntl();\n const valueIdPrefix = useId();\n const overlayId = useContext(OverlayIdContext);\n const ariaLabelIds = [ariaLabelledBy, `${valueIdPrefix}:prefix`, `${valueIdPrefix}:value`];\n\n return (\n <>\n <button\n aria-haspopup=\"dialog\"\n aria-expanded={overlayId != null}\n aria-controls={overlayId}\n aria-labelledby={ariaLabelIds.filter(Boolean).join(' ')}\n className={`btn btn-${size} btn-input np-date-trigger`}\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n >\n {label && (\n <Body as=\"span\" className=\"np-date-trigger-label m-r-1\" id={ariaLabelIds[1]}>\n {label}\n </Body>\n )}\n {selectedDate ? (\n <Body as=\"span\" type={Typography.BODY_LARGE} id={ariaLabelIds[2]}>\n {formatDate(selectedDate, locale, {\n day: 'numeric',\n month: monthFormat,\n year: 'numeric',\n })}\n </Body>\n ) : (\n <span\n className=\"form-control-placeholder visible-xs-inline visible-sm-inline\n visible-md-inline visible-lg-inline visible-xl-inline\"\n id={ariaLabelIds[2]}\n >\n {placeholder}\n </span>\n )}\n {!onClear ? <Chevron orientation={Position.BOTTOM} disabled={disabled} /> : null}\n </button>\n {onClear ? (\n <>\n <div className=\"clearfix\" />\n <span className=\"input-group-addon\">\n <CloseButton\n className={`clear-btn clear-btn--${size}`}\n aria-label={`${formatMessage(messages.ariaLabel)} ${label}`}\n size={Size.SMALL}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n onClear();\n }}\n />\n </span>\n </>\n ) : null}\n </>\n );\n};\n\nexport default DateTrigger;\n"],"names":["DateTrigger","selectedDate","size","Size","MEDIUM","placeholder","label","monthFormat","disabled","ariaLabelledBy","onClick","onClear","locale","formatMessage","useIntl","valueIdPrefix","useId","overlayId","useContext","OverlayIdContext","ariaLabelIds","_jsxs","_Fragment","children","filter","Boolean","join","className","type","_jsx","Body","as","id","Typography","BODY_LARGE","formatDate","day","month","year","Chevron","orientation","Position","BOTTOM","CloseButton","messages","ariaLabel","SMALL","event","stopPropagation","preventDefault"],"mappings":"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"}
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { formatDate } from '@transferwise/formatting';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import Chevron from '../../chevron/Chevron.mjs';
|
|
4
|
+
import '../../common/theme.mjs';
|
|
5
|
+
import '../../common/direction.mjs';
|
|
6
|
+
import '../../common/propsValues/control.mjs';
|
|
7
|
+
import '../../common/propsValues/breakpoint.mjs';
|
|
8
|
+
import { Size } from '../../common/propsValues/size.mjs';
|
|
9
|
+
import { Typography } from '../../common/propsValues/typography.mjs';
|
|
10
|
+
import '../../common/propsValues/width.mjs';
|
|
11
|
+
import '../../common/propsValues/type.mjs';
|
|
12
|
+
import '../../common/propsValues/dateMode.mjs';
|
|
13
|
+
import '../../common/propsValues/monthFormat.mjs';
|
|
14
|
+
import { Position } from '../../common/propsValues/position.mjs';
|
|
15
|
+
import '../../common/propsValues/layouts.mjs';
|
|
16
|
+
import '../../common/propsValues/status.mjs';
|
|
17
|
+
import '../../common/propsValues/sentiment.mjs';
|
|
18
|
+
import '../../common/propsValues/profileType.mjs';
|
|
19
|
+
import '../../common/propsValues/variant.mjs';
|
|
20
|
+
import '../../common/propsValues/scroll.mjs';
|
|
21
|
+
import '../../common/propsValues/markdownNodeType.mjs';
|
|
22
|
+
import '../../common/fileType.mjs';
|
|
4
23
|
import { CloseButton } from '../../common/closeButton/CloseButton.mjs';
|
|
5
24
|
import dateTriggerMessages from './DateTrigger.messages.mjs';
|
|
6
25
|
import { useId, useContext } from 'react';
|
|
7
26
|
import { OverlayIdContext } from '../../provider/overlay/OverlayIdProvider.mjs';
|
|
8
27
|
import Body from '../../body/Body.mjs';
|
|
9
28
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
10
|
-
import { Typography } from '../../common/propsValues/typography.mjs';
|
|
11
|
-
import { Position } from '../../common/propsValues/position.mjs';
|
|
12
|
-
import { Size } from '../../common/propsValues/size.mjs';
|
|
13
29
|
|
|
14
30
|
const DateTrigger = ({
|
|
15
31
|
selectedDate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTrigger.mjs","sources":["../../../src/dateLookup/dateTrigger/DateTrigger.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Size, Position, SizeSmall, SizeMedium, SizeLarge, Typography } from '../../common';\nimport { CloseButton } from '../../common/closeButton/CloseButton';\n\nimport messages from './DateTrigger.messages';\nimport { useContext, useId } from 'react';\nimport { OverlayIdContext } from '../../provider/overlay/OverlayIdProvider';\nimport Body from '../../body';\n\ninterface DateTriggerProps {\n ariaLabelledBy?: string;\n selectedDate: Date | null;\n size: SizeSmall | SizeMedium | SizeLarge;\n placeholder: string;\n label: string;\n monthFormat: 'short' | 'long';\n disabled: boolean;\n onClick: () => void;\n onClear?: () => void;\n}\n\nconst DateTrigger: React.FC<DateTriggerProps> = ({\n selectedDate,\n size = Size.MEDIUM,\n placeholder,\n label,\n monthFormat,\n disabled,\n ariaLabelledBy,\n onClick,\n onClear,\n}) => {\n const { locale, formatMessage } = useIntl();\n const valueIdPrefix = useId();\n const overlayId = useContext(OverlayIdContext);\n const ariaLabelIds = [ariaLabelledBy, `${valueIdPrefix}:prefix`, `${valueIdPrefix}:value`];\n\n return (\n <>\n <button\n aria-haspopup=\"dialog\"\n aria-expanded={overlayId != null}\n aria-controls={overlayId}\n aria-labelledby={ariaLabelIds.filter(Boolean).join(' ')}\n className={`btn btn-${size} btn-input np-date-trigger`}\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n >\n {label && (\n <Body as=\"span\" className=\"np-date-trigger-label m-r-1\" id={ariaLabelIds[1]}>\n {label}\n </Body>\n )}\n {selectedDate ? (\n <Body as=\"span\" type={Typography.BODY_LARGE} id={ariaLabelIds[2]}>\n {formatDate(selectedDate, locale, {\n day: 'numeric',\n month: monthFormat,\n year: 'numeric',\n })}\n </Body>\n ) : (\n <span\n className=\"form-control-placeholder visible-xs-inline visible-sm-inline\n visible-md-inline visible-lg-inline visible-xl-inline\"\n id={ariaLabelIds[2]}\n >\n {placeholder}\n </span>\n )}\n {!onClear ? <Chevron orientation={Position.BOTTOM} disabled={disabled} /> : null}\n </button>\n {onClear ? (\n <>\n <div className=\"clearfix\" />\n <span className=\"input-group-addon\">\n <CloseButton\n className={`clear-btn clear-btn--${size}`}\n aria-label={`${formatMessage(messages.ariaLabel)} ${label}`}\n size={Size.SMALL}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n onClear();\n }}\n />\n </span>\n </>\n ) : null}\n </>\n );\n};\n\nexport default DateTrigger;\n"],"names":["DateTrigger","selectedDate","size","Size","MEDIUM","placeholder","label","monthFormat","disabled","ariaLabelledBy","onClick","onClear","locale","formatMessage","useIntl","valueIdPrefix","useId","overlayId","useContext","OverlayIdContext","ariaLabelIds","_jsxs","_Fragment","children","filter","Boolean","join","className","type","_jsx","Body","as","id","Typography","BODY_LARGE","formatDate","day","month","year","Chevron","orientation","Position","BOTTOM","CloseButton","messages","ariaLabel","SMALL","event","stopPropagation","preventDefault"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateTrigger.mjs","sources":["../../../src/dateLookup/dateTrigger/DateTrigger.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Size, Position, SizeSmall, SizeMedium, SizeLarge, Typography } from '../../common';\nimport { CloseButton } from '../../common/closeButton/CloseButton';\n\nimport messages from './DateTrigger.messages';\nimport { useContext, useId } from 'react';\nimport { OverlayIdContext } from '../../provider/overlay/OverlayIdProvider';\nimport Body from '../../body';\n\ninterface DateTriggerProps {\n ariaLabelledBy?: string;\n selectedDate: Date | null;\n size: SizeSmall | SizeMedium | SizeLarge;\n placeholder: string;\n label: string;\n monthFormat: 'short' | 'long';\n disabled: boolean;\n onClick: () => void;\n onClear?: () => void;\n}\n\nconst DateTrigger: React.FC<DateTriggerProps> = ({\n selectedDate,\n size = Size.MEDIUM,\n placeholder,\n label,\n monthFormat,\n disabled,\n ariaLabelledBy,\n onClick,\n onClear,\n}) => {\n const { locale, formatMessage } = useIntl();\n const valueIdPrefix = useId();\n const overlayId = useContext(OverlayIdContext);\n const ariaLabelIds = [ariaLabelledBy, `${valueIdPrefix}:prefix`, `${valueIdPrefix}:value`];\n\n return (\n <>\n <button\n aria-haspopup=\"dialog\"\n aria-expanded={overlayId != null}\n aria-controls={overlayId}\n aria-labelledby={ariaLabelIds.filter(Boolean).join(' ')}\n className={`btn btn-${size} btn-input np-date-trigger`}\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n >\n {label && (\n <Body as=\"span\" className=\"np-date-trigger-label m-r-1\" id={ariaLabelIds[1]}>\n {label}\n </Body>\n )}\n {selectedDate ? (\n <Body as=\"span\" type={Typography.BODY_LARGE} id={ariaLabelIds[2]}>\n {formatDate(selectedDate, locale, {\n day: 'numeric',\n month: monthFormat,\n year: 'numeric',\n })}\n </Body>\n ) : (\n <span\n className=\"form-control-placeholder visible-xs-inline visible-sm-inline\n visible-md-inline visible-lg-inline visible-xl-inline\"\n id={ariaLabelIds[2]}\n >\n {placeholder}\n </span>\n )}\n {!onClear ? <Chevron orientation={Position.BOTTOM} disabled={disabled} /> : null}\n </button>\n {onClear ? (\n <>\n <div className=\"clearfix\" />\n <span className=\"input-group-addon\">\n <CloseButton\n className={`clear-btn clear-btn--${size}`}\n aria-label={`${formatMessage(messages.ariaLabel)} ${label}`}\n size={Size.SMALL}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n onClear();\n }}\n />\n </span>\n </>\n ) : null}\n </>\n );\n};\n\nexport default DateTrigger;\n"],"names":["DateTrigger","selectedDate","size","Size","MEDIUM","placeholder","label","monthFormat","disabled","ariaLabelledBy","onClick","onClear","locale","formatMessage","useIntl","valueIdPrefix","useId","overlayId","useContext","OverlayIdContext","ariaLabelIds","_jsxs","_Fragment","children","filter","Boolean","join","className","type","_jsx","Body","as","id","Typography","BODY_LARGE","formatDate","day","month","year","Chevron","orientation","Position","BOTTOM","CloseButton","messages","ariaLabel","SMALL","event","stopPropagation","preventDefault"],"mappings":"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"}
|
|
@@ -61,6 +61,9 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
61
61
|
onSelect(new Date(viewYear, viewMonth, day));
|
|
62
62
|
};
|
|
63
63
|
isDisabled = day => {
|
|
64
|
+
if (day < 0) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
64
67
|
const {
|
|
65
68
|
min,
|
|
66
69
|
max,
|
|
@@ -76,7 +79,7 @@ class DayCalendarTable extends React.PureComponent {
|
|
|
76
79
|
viewMonth,
|
|
77
80
|
viewYear
|
|
78
81
|
} = this.props;
|
|
79
|
-
return !!(selectedDate &&
|
|
82
|
+
return !!(selectedDate && Number(new Date(viewYear, viewMonth, day)) === Number(selectedDate));
|
|
80
83
|
};
|
|
81
84
|
isToday = day => {
|
|
82
85
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayCalendarTable.js","sources":["../../../../src/dateLookup/dayCalendar/table/DayCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { getDayNames, isWithinRange } from '../../../common/dateUtils';\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport { getStartOfDay } from '../../getStartOfDay';\nimport TableLink from '../../tableLink';\n\nconst SHORT_DAY_FORMAT: Intl.DateTimeFormatOptions = { day: 'numeric' };\n\ninterface DayCalendarTableProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n onSelect: (date: Date) => void;\n}\n\nclass DayCalendarTable extends PureComponent<DayCalendarTableProps> {\n getTableStructure = () => {\n const { viewMonth, viewYear } = this.props;\n let firstDayOfMonth = new Date(viewYear, viewMonth, 1).getDay();\n // JS Sunday is 0, we're setting it last\n if (firstDayOfMonth === 0) {\n firstDayOfMonth = 7;\n }\n const daysInMonth = new Date(viewYear, viewMonth + 1, 0).getDate();\n\n let week: number[] = [];\n const weeks: number[][] = [];\n let i;\n\n // Pad first week\n for (i = 1; i < firstDayOfMonth; i += 1) {\n week.push(-1);\n }\n // Fill in days\n for (i = 1; i <= daysInMonth; i += 1) {\n week.push(i);\n if ((firstDayOfMonth + i - 1) % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n if (week.length > 0) {\n // Pad last week\n for (i = week.length; i < 7; i += 1) {\n week.push(-1);\n }\n weeks.push(week);\n }\n return weeks;\n };\n\n days = getDayNames(this.props.intl.locale, 'short');\n daysShort = getDayNames(this.props.intl.locale, 'narrow');\n daysLong = getDayNames(this.props.intl.locale, 'long');\n\n selectDay = (day: number) => {\n const { viewMonth, viewYear, onSelect } = this.props;\n onSelect(new Date(viewYear, viewMonth, day));\n };\n\n isDisabled = (day: number) => {\n const { min, max, viewMonth, viewYear } = this.props;\n const date = new Date(viewYear, viewMonth, day);\n\n return !isWithinRange(date, min, max);\n };\n\n isActive = (day: number) => {\n const { selectedDate, viewMonth, viewYear } = this.props;\n return !!(selectedDate && +new Date(viewYear, viewMonth, day) === +selectedDate);\n };\n\n isToday = (day: number) => {\n const { viewMonth, viewYear } = this.props;\n return Number(getStartOfDay(new Date())) === Number(new Date(viewYear, viewMonth, day));\n };\n\n getAutofocusDay = (weeks: number[][]) => {\n const days = weeks.flatMap((week) => week);\n return getFocusableTime({\n isActive: this.isActive,\n isNow: this.isToday,\n isDisabled: this.isDisabled,\n timeSpan: days,\n });\n };\n\n render() {\n const { viewMonth, viewYear, intl } = this.props;\n const weeks = this.getTableStructure();\n const autoFocusDay = this.getAutofocusDay(weeks);\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead>\n <tr>\n {this.days.map((day, index) => (\n <th\n key={day}\n className={\n index > 4\n ? 'text-xs-center np-text-body-default'\n : 'text-xs-center np-text-body-default-bold'\n }\n >\n <span className=\"hidden-xs\">\n <abbr title={this.daysLong[index]}>{day.slice(0, 3)}</abbr>\n </span>\n <span className=\"visible-xs-inline-block\">\n <abbr title={this.daysLong[index]}>{this.daysShort[index].slice(0, 2)}</abbr>\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {/* eslint-disable react/no-array-index-key */}\n {weeks.map((week, weekIndex) => (\n <tr key={weekIndex}>\n {week.map((day, dayIndex) => (\n <td key={dayIndex} className={dayIndex > 4 ? 'weekend' : ''}>\n {day !== -1 && (\n <TableLink\n item={day}\n type=\"day\"\n title={formatDate(\n new Date(viewYear, viewMonth, day),\n intl.locale,\n SHORT_DAY_FORMAT,\n )}\n autofocus={day === autoFocusDay}\n longTitle={formatDate(new Date(viewYear, viewMonth, day), intl.locale)}\n active={this.isActive(day)}\n disabled={this.isDisabled(day)}\n today={this.isToday(day)}\n onClick={this.selectDay}\n />\n )}\n </td>\n ))}\n </tr>\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </tbody>\n </table>\n );\n }\n}\n\nexport default injectIntl(DayCalendarTable);\n"],"names":["SHORT_DAY_FORMAT","day","DayCalendarTable","PureComponent","getTableStructure","viewMonth","viewYear","props","firstDayOfMonth","Date","getDay","daysInMonth","getDate","week","weeks","i","push","length","days","getDayNames","intl","locale","daysShort","daysLong","selectDay","onSelect","isDisabled","min","max","date","isWithinRange","isActive","selectedDate","isToday","Number","getStartOfDay","getAutofocusDay","flatMap","getFocusableTime","isNow","timeSpan","render","autoFocusDay","_jsxs","className","children","_jsx","map","index","title","slice","weekIndex","dayIndex","TableLink","item","type","formatDate","autofocus","longTitle","active","disabled","today","onClick","injectIntl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DayCalendarTable.js","sources":["../../../../src/dateLookup/dayCalendar/table/DayCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, type WrappedComponentProps } from 'react-intl';\n\nimport { getDayNames, isWithinRange } from '../../../common/dateUtils';\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport { getStartOfDay } from '../../getStartOfDay';\nimport TableLink from '../../tableLink';\n\nconst SHORT_DAY_FORMAT: Intl.DateTimeFormatOptions = { day: 'numeric' };\n\ninterface DayCalendarTableProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n onSelect: (date: Date) => void;\n}\n\nclass DayCalendarTable extends PureComponent<DayCalendarTableProps> {\n getTableStructure = () => {\n const { viewMonth, viewYear } = this.props;\n let firstDayOfMonth = new Date(viewYear, viewMonth, 1).getDay();\n // JS Sunday is 0, we're setting it last\n if (firstDayOfMonth === 0) {\n firstDayOfMonth = 7;\n }\n const daysInMonth = new Date(viewYear, viewMonth + 1, 0).getDate();\n\n let week: number[] = [];\n const weeks: number[][] = [];\n let i;\n\n // Pad first week\n for (i = 1; i < firstDayOfMonth; i += 1) {\n week.push(-1);\n }\n // Fill in days\n for (i = 1; i <= daysInMonth; i += 1) {\n week.push(i);\n if ((firstDayOfMonth + i - 1) % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n if (week.length > 0) {\n // Pad last week\n for (i = week.length; i < 7; i += 1) {\n week.push(-1);\n }\n weeks.push(week);\n }\n return weeks;\n };\n\n days = getDayNames(this.props.intl.locale, 'short');\n daysShort = getDayNames(this.props.intl.locale, 'narrow');\n daysLong = getDayNames(this.props.intl.locale, 'long');\n\n selectDay = (day: number) => {\n const { viewMonth, viewYear, onSelect } = this.props;\n onSelect(new Date(viewYear, viewMonth, day));\n };\n\n isDisabled = (day: number) => {\n if (day < 0) {\n return true;\n }\n const { min, max, viewMonth, viewYear } = this.props;\n const date = new Date(viewYear, viewMonth, day);\n\n return !isWithinRange(date, min, max);\n };\n\n isActive = (day: number) => {\n const { selectedDate, viewMonth, viewYear } = this.props;\n return !!(selectedDate && Number(new Date(viewYear, viewMonth, day)) === Number(selectedDate));\n };\n\n isToday = (day: number) => {\n const { viewMonth, viewYear } = this.props;\n return Number(getStartOfDay(new Date())) === Number(new Date(viewYear, viewMonth, day));\n };\n\n getAutofocusDay = (weeks: number[][]) => {\n const days = weeks.flatMap((week) => week);\n return getFocusableTime({\n isActive: this.isActive,\n isNow: this.isToday,\n isDisabled: this.isDisabled,\n timeSpan: days,\n });\n };\n\n render() {\n const { viewMonth, viewYear, intl } = this.props;\n const weeks = this.getTableStructure();\n const autoFocusDay = this.getAutofocusDay(weeks);\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead>\n <tr>\n {this.days.map((day, index) => (\n <th\n key={day}\n className={\n index > 4\n ? 'text-xs-center np-text-body-default'\n : 'text-xs-center np-text-body-default-bold'\n }\n >\n <span className=\"hidden-xs\">\n <abbr title={this.daysLong[index]}>{day.slice(0, 3)}</abbr>\n </span>\n <span className=\"visible-xs-inline-block\">\n <abbr title={this.daysLong[index]}>{this.daysShort[index].slice(0, 2)}</abbr>\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {/* eslint-disable react/no-array-index-key */}\n {weeks.map((week, weekIndex) => (\n <tr key={weekIndex}>\n {week.map((day, dayIndex) => (\n <td key={dayIndex} className={dayIndex > 4 ? 'weekend' : ''}>\n {day !== -1 && (\n <TableLink\n item={day}\n type=\"day\"\n title={formatDate(\n new Date(viewYear, viewMonth, day),\n intl.locale,\n SHORT_DAY_FORMAT,\n )}\n autofocus={day === autoFocusDay}\n longTitle={formatDate(new Date(viewYear, viewMonth, day), intl.locale)}\n active={this.isActive(day)}\n disabled={this.isDisabled(day)}\n today={this.isToday(day)}\n onClick={this.selectDay}\n />\n )}\n </td>\n ))}\n </tr>\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </tbody>\n </table>\n );\n }\n}\n\nexport default injectIntl(DayCalendarTable);\n"],"names":["SHORT_DAY_FORMAT","day","DayCalendarTable","PureComponent","getTableStructure","viewMonth","viewYear","props","firstDayOfMonth","Date","getDay","daysInMonth","getDate","week","weeks","i","push","length","days","getDayNames","intl","locale","daysShort","daysLong","selectDay","onSelect","isDisabled","min","max","date","isWithinRange","isActive","selectedDate","Number","isToday","getStartOfDay","getAutofocusDay","flatMap","getFocusableTime","isNow","timeSpan","render","autoFocusDay","_jsxs","className","children","_jsx","map","index","title","slice","weekIndex","dayIndex","TableLink","item","type","formatDate","autofocus","longTitle","active","disabled","today","onClick","injectIntl"],"mappings":"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"}
|
|
@@ -59,6 +59,9 @@ class DayCalendarTable extends PureComponent {
|
|
|
59
59
|
onSelect(new Date(viewYear, viewMonth, day));
|
|
60
60
|
};
|
|
61
61
|
isDisabled = day => {
|
|
62
|
+
if (day < 0) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
62
65
|
const {
|
|
63
66
|
min,
|
|
64
67
|
max,
|
|
@@ -74,7 +77,7 @@ class DayCalendarTable extends PureComponent {
|
|
|
74
77
|
viewMonth,
|
|
75
78
|
viewYear
|
|
76
79
|
} = this.props;
|
|
77
|
-
return !!(selectedDate &&
|
|
80
|
+
return !!(selectedDate && Number(new Date(viewYear, viewMonth, day)) === Number(selectedDate));
|
|
78
81
|
};
|
|
79
82
|
isToday = day => {
|
|
80
83
|
const {
|