@dfds-ui/react-components 2.2.0-alpha.3b2e3359 → 2.2.0-alpha.4d430dbf
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/accordion/Accordion.d.ts +2 -2
- package/accordion/Accordion.js +67 -49
- package/accordion/AccordionContent.d.ts +2 -1
- package/accordion/AccordionContent.js +14 -7
- package/accordion/AccordionSmall.d.ts +3 -2
- package/accordion/AccordionSmall.js +51 -38
- package/app-bar/AppBar.d.ts +3 -3
- package/app-bar/AppBar.js +58 -46
- package/app-bar/AppBarContext.d.ts +3 -3
- package/app-bar/AppBarContext.js +10 -9
- package/app-bar/AppBarDrawer.d.ts +2 -2
- package/app-bar/AppBarDrawer.js +14 -7
- package/app-bar/AppBarIconButton.d.ts +2 -2
- package/app-bar/AppBarIconButton.js +11 -6
- package/app-bar/AppBarItem.d.ts +4 -4
- package/app-bar/AppBarItem.js +91 -83
- package/app-bar/AppBarListItem.d.ts +11 -12
- package/assertions/banner/Banner.d.ts +3 -3
- package/assertions/banner/Banner.js +71 -59
- package/assertions/banner/BannerAction.d.ts +1 -1
- package/assertions/banner/BannerAction.js +10 -5
- package/assertions/banner/BannerTypography.d.ts +2 -0
- package/assertions/banner/BannerTypography.js +11 -8
- package/assertions/toast/Toast.d.ts +2 -1
- package/assertions/toast/Toast.js +34 -24
- package/assertions/toast/Toaster.d.ts +2 -2
- package/assertions/toast/Toaster.js +61 -58
- package/badge/Badge.d.ts +2 -2
- package/badge/Badge.js +18 -11
- package/button/BadgeIcon.d.ts +3 -3
- package/button/BadgeIcon.js +18 -16
- package/button/BaseButton.d.ts +6 -6
- package/button/BaseButton.js +1 -1
- package/button/Button.d.ts +4 -4
- package/button/Button.js +38 -31
- package/button/IconButton.d.ts +2 -2
- package/button/IconButton.js +21 -15
- package/button/LinkButton.d.ts +2 -2
- package/button/LinkButton.js +9 -4
- package/button/button-style.js +1 -2
- package/button-stack/ButtonStack.d.ts +4 -3
- package/button-stack/ButtonStack.js +31 -23
- package/card/Card.d.ts +3 -2
- package/card/Card.js +59 -45
- package/card/CardActions.js +13 -6
- package/card/CardContent.d.ts +3 -2
- package/card/CardContent.js +21 -11
- package/card/CardMedia.d.ts +4 -3
- package/card/CardMedia.js +17 -9
- package/card/CardPriceTag.d.ts +3 -3
- package/card/CardPriceTag.js +28 -16
- package/card/CardTitle.d.ts +3 -2
- package/card/CardTitle.js +25 -15
- package/chip/Chip.d.ts +5 -5
- package/chip/Chip.js +27 -20
- package/cjs/accordion/Accordion.d.ts +2 -2
- package/cjs/accordion/Accordion.js +82 -74
- package/cjs/accordion/AccordionContent.d.ts +2 -1
- package/cjs/accordion/AccordionContent.js +14 -15
- package/cjs/accordion/AccordionSmall.d.ts +3 -2
- package/cjs/accordion/AccordionSmall.js +56 -52
- package/cjs/accordion/index.js +3 -3
- package/cjs/app-bar/AppBar.d.ts +3 -3
- package/cjs/app-bar/AppBar.js +94 -108
- package/cjs/app-bar/AppBarContext.d.ts +3 -3
- package/cjs/app-bar/AppBarContext.js +8 -20
- package/cjs/app-bar/AppBarDrawer.d.ts +2 -2
- package/cjs/app-bar/AppBarDrawer.js +18 -20
- package/cjs/app-bar/AppBarIconButton.d.ts +2 -2
- package/cjs/app-bar/AppBarIconButton.js +14 -17
- package/cjs/app-bar/AppBarItem.d.ts +4 -4
- package/cjs/app-bar/AppBarItem.js +81 -94
- package/cjs/app-bar/AppBarListItem.d.ts +11 -12
- package/cjs/app-bar/AppBarListItem.js +2 -3
- package/cjs/app-bar/index.js +9 -9
- package/cjs/assertions/banner/Banner.d.ts +3 -3
- package/cjs/assertions/banner/Banner.js +81 -97
- package/cjs/assertions/banner/BannerAction.d.ts +1 -1
- package/cjs/assertions/banner/BannerAction.js +13 -14
- package/cjs/assertions/banner/BannerTypography.d.ts +2 -0
- package/cjs/assertions/banner/BannerTypography.js +12 -12
- package/cjs/assertions/banner/index.js +3 -3
- package/cjs/assertions/index.js +2 -2
- package/cjs/assertions/toast/Toast.d.ts +2 -1
- package/cjs/assertions/toast/Toast.js +38 -38
- package/cjs/assertions/toast/Toaster.d.ts +2 -2
- package/cjs/assertions/toast/Toaster.js +57 -70
- package/cjs/assertions/toast/index.js +5 -6
- package/cjs/badge/Badge.d.ts +2 -2
- package/cjs/badge/Badge.js +22 -24
- package/cjs/badge/index.js +3 -4
- package/cjs/button/BadgeIcon.d.ts +3 -3
- package/cjs/button/BadgeIcon.js +20 -18
- package/cjs/button/BaseButton.d.ts +6 -6
- package/cjs/button/BaseButton.js +4 -6
- package/cjs/button/Button.d.ts +4 -4
- package/cjs/button/Button.js +45 -51
- package/cjs/button/IconButton.d.ts +2 -2
- package/cjs/button/IconButton.js +35 -44
- package/cjs/button/LinkButton.d.ts +2 -2
- package/cjs/button/LinkButton.js +8 -9
- package/cjs/button/button-style.js +9 -17
- package/cjs/button/index.js +8 -9
- package/cjs/button-stack/ButtonStack.d.ts +4 -3
- package/cjs/button-stack/ButtonStack.js +31 -33
- package/cjs/button-stack/index.js +2 -2
- package/cjs/card/Card.d.ts +3 -2
- package/cjs/card/Card.js +64 -71
- package/cjs/card/CardActions.js +11 -15
- package/cjs/card/CardContent.d.ts +3 -2
- package/cjs/card/CardContent.js +20 -20
- package/cjs/card/CardMedia.d.ts +4 -3
- package/cjs/card/CardMedia.js +18 -19
- package/cjs/card/CardPriceTag.d.ts +3 -3
- package/cjs/card/CardPriceTag.js +29 -27
- package/cjs/card/CardTitle.d.ts +3 -2
- package/cjs/card/CardTitle.js +26 -24
- package/cjs/card/index.js +7 -7
- package/cjs/chip/Chip.d.ts +5 -5
- package/cjs/chip/Chip.js +34 -49
- package/cjs/chip/index.js +3 -4
- package/cjs/common/LockBodyScroll.d.ts +2 -2
- package/cjs/common/LockBodyScroll.js +20 -19
- package/cjs/common/arrow.d.ts +1 -1
- package/cjs/common/arrow.js +2 -4
- package/cjs/common/emotionCloneElement.d.ts +0 -1
- package/cjs/common/emotionCloneElement.js +6 -10
- package/cjs/common/intent.d.ts +1 -1
- package/cjs/common/polymorphic.d.ts +5 -5
- package/cjs/common/polymorphic.js +13 -9
- package/cjs/common/use-media.js +1 -10
- package/cjs/common/useOnClickOutside.d.ts +1 -2
- package/cjs/counter/Counter.d.ts +1 -1
- package/cjs/counter/Counter.js +59 -68
- package/cjs/counter/PluralCounter.d.ts +1 -1
- package/cjs/counter/PluralCounter.js +24 -36
- package/cjs/counter/index.js +3 -3
- package/cjs/data-table/DataTable.d.ts +3 -2
- package/cjs/data-table/DataTable.js +56 -60
- package/cjs/data-table/index.js +1 -1
- package/cjs/date-range-picker/DateRangePicker.d.ts +5 -5
- package/cjs/date-range-picker/DateRangePicker.js +297 -256
- package/cjs/date-range-picker/DateRangePicker.styles.d.ts +6 -0
- package/cjs/date-range-picker/DateRangePicker.styles.js +14 -0
- package/cjs/date-range-picker/index.js +2 -2
- package/cjs/divider/Divider.d.ts +3 -3
- package/cjs/divider/Divider.js +16 -16
- package/cjs/divider/index.js +1 -1
- package/cjs/drawer/Drawer.d.ts +4 -4
- package/cjs/drawer/Drawer.js +20 -24
- package/cjs/drawer/index.js +1 -1
- package/cjs/dropdown-menu/Dropdown.d.ts +3 -3
- package/cjs/dropdown-menu/Dropdown.js +52 -62
- package/cjs/dropdown-menu/DropdownContext.d.ts +4 -4
- package/cjs/dropdown-menu/DropdownContext.js +8 -10
- package/cjs/dropdown-menu/MenuCheckbox.d.ts +1 -1
- package/cjs/dropdown-menu/MenuCheckbox.js +28 -26
- package/cjs/dropdown-menu/MenuItem.d.ts +1 -1
- package/cjs/dropdown-menu/MenuItem.js +54 -69
- package/cjs/dropdown-menu/MenuTitle.d.ts +1 -1
- package/cjs/dropdown-menu/MenuTitle.js +20 -17
- package/cjs/dropdown-menu/index.js +7 -8
- package/cjs/elevation/index.d.ts +1 -1
- package/cjs/elevation/index.js +4 -8
- package/cjs/flexbox/FlexBox.d.ts +5 -5
- package/cjs/flexbox/FlexBox.js +8 -18
- package/cjs/flexbox/index.js +1 -1
- package/cjs/footer/Footer.d.ts +2 -2
- package/cjs/footer/Footer.js +14 -10
- package/cjs/footer/index.js +2 -2
- package/cjs/forms/assistive-text/AssistiveText.d.ts +3 -4
- package/cjs/forms/assistive-text/AssistiveText.js +2 -3
- package/cjs/forms/asterisk/Asterisk.d.ts +2 -2
- package/cjs/forms/asterisk/Asterisk.js +6 -5
- package/cjs/forms/checkbox/Checkbox.d.ts +5 -5
- package/cjs/forms/checkbox/Checkbox.js +56 -57
- package/cjs/forms/checkbox/ExampleControlComponent.d.ts +2 -1
- package/cjs/forms/checkbox/ExampleControlComponent.js +14 -25
- package/cjs/forms/checkbox/index.js +2 -2
- package/cjs/forms/email-field/EmailField.d.ts +2 -2
- package/cjs/forms/email-field/EmailField.js +8 -8
- package/cjs/forms/error-text/ErrorText.d.ts +3 -4
- package/cjs/forms/error-text/ErrorText.js +4 -7
- package/cjs/forms/field/Field.d.ts +2 -1
- package/cjs/forms/field/Field.js +14 -13
- package/cjs/forms/index.d.ts +3 -3
- package/cjs/forms/index.js +19 -19
- package/cjs/forms/input/Input.d.ts +3 -3
- package/cjs/forms/input/Input.js +45 -53
- package/cjs/forms/input/InputComposition.d.ts +12 -12
- package/cjs/forms/input/InputComposition.js +62 -62
- package/cjs/forms/label/Label.d.ts +2 -1
- package/cjs/forms/label/Label.js +16 -17
- package/cjs/forms/number-field/NumberField.d.ts +2 -2
- package/cjs/forms/number-field/NumberField.js +8 -9
- package/cjs/forms/password-field/PasswordField.d.ts +1 -1
- package/cjs/forms/password-field/PasswordField.js +15 -26
- package/cjs/forms/radio/Radio.d.ts +4 -4
- package/cjs/forms/radio/Radio.js +30 -35
- package/cjs/forms/reactselect/ReactSelect.d.ts +15 -15
- package/cjs/forms/reactselect/ReactSelect.js +104 -105
- package/cjs/forms/searchable-select/AsyncSearchableSelect.d.ts +2 -2
- package/cjs/forms/searchable-select/AsyncSearchableSelect.js +74 -69
- package/cjs/forms/select/Select.d.ts +4 -4
- package/cjs/forms/select/Select.js +44 -48
- package/cjs/forms/select-field/SelectField.d.ts +3 -3
- package/cjs/forms/select-field/SelectField.js +51 -52
- package/cjs/forms/switch/Switch.d.ts +2 -2
- package/cjs/forms/switch/Switch.js +53 -54
- package/cjs/forms/tel-field/TelField.d.ts +2 -2
- package/cjs/forms/tel-field/TelField.js +8 -8
- package/cjs/forms/text-field/TextField.d.ts +4 -4
- package/cjs/forms/text-field/TextField.js +59 -61
- package/cjs/global-styles/GlobalStyles.d.ts +3 -3
- package/cjs/global-styles/GlobalStyles.js +4 -3
- package/cjs/global-styles/ResetStyles.d.ts +2 -2
- package/cjs/global-styles/ResetStyles.js +4 -4
- package/cjs/global-styles/sanitize.js +3 -5
- package/cjs/grid/Column.d.ts +1 -1
- package/cjs/grid/Column.js +16 -18
- package/cjs/grid/Container.d.ts +2 -2
- package/cjs/grid/Container.js +44 -41
- package/cjs/grid/index.js +3 -3
- package/cjs/hero/Hero.d.ts +2 -2
- package/cjs/hero/Hero.js +43 -27
- package/cjs/hero/index.js +2 -2
- package/cjs/hero/stripes.d.ts +2 -2
- package/cjs/hero/stripes.js +178 -163
- package/cjs/ie-banner/IEBanner.d.ts +2 -1
- package/cjs/ie-banner/IEBanner.js +17 -28
- package/cjs/ie-banner/index.js +2 -2
- package/cjs/index.js +46 -46
- package/cjs/layout/LayoutLegacy.d.ts +2 -2
- package/cjs/layout/LayoutLegacy.js +3 -2
- package/cjs/lists/FeatureList.d.ts +7 -9
- package/cjs/lists/FeatureList.js +24 -24
- package/cjs/lists/ListAddon.d.ts +2 -2
- package/cjs/lists/ListAddon.js +17 -17
- package/cjs/lists/ListDivider.d.ts +3 -3
- package/cjs/lists/ListDivider.js +13 -16
- package/cjs/lists/ListIcon.d.ts +3 -3
- package/cjs/lists/ListIcon.js +19 -22
- package/cjs/lists/ListItem.d.ts +2 -2
- package/cjs/lists/ListItem.js +23 -31
- package/cjs/lists/ListText.d.ts +4 -4
- package/cjs/lists/ListText.js +15 -18
- package/cjs/lists/ListTextGroup.d.ts +2 -2
- package/cjs/lists/ListTextGroup.js +16 -20
- package/cjs/lists/ListTitle.d.ts +2 -2
- package/cjs/lists/ListTitle.js +12 -16
- package/cjs/lists/index.js +9 -9
- package/cjs/loader/DfdsLoader.d.ts +1 -1
- package/cjs/loader/DfdsLoader.js +30 -25
- package/cjs/loader/Loader.d.ts +3 -3
- package/cjs/loader/Loader.js +11 -6
- package/cjs/loader/index.js +3 -3
- package/cjs/localization/LocaleFlag.d.ts +3 -3
- package/cjs/localization/LocaleFlag.js +14 -18
- package/cjs/localization/index.js +2 -2
- package/cjs/localization/locales.d.ts +2 -2
- package/cjs/localization/locales.js +3 -6
- package/cjs/logo/Logo.d.ts +3 -3
- package/cjs/logo/Logo.js +18 -18
- package/cjs/logo/index.js +1 -1
- package/cjs/media/index.js +1 -2
- package/cjs/menu/Menu.d.ts +1 -1
- package/cjs/menu/Menu.js +46 -41
- package/cjs/menu/index.js +3 -4
- package/cjs/mobile-stepper/MobileStepper.d.ts +3 -3
- package/cjs/mobile-stepper/MobileStepper.js +28 -32
- package/cjs/mobile-stepper/index.js +2 -2
- package/cjs/nav-bar/NavBar.d.ts +11 -9
- package/cjs/nav-bar/NavBar.js +67 -75
- package/cjs/nav-bar/index.js +3 -4
- package/cjs/nav-menu/NavMenuItem.d.ts +1 -1
- package/cjs/nav-menu/NavMenuItem.js +15 -14
- package/cjs/nav-menu/index.js +2 -2
- package/cjs/pagination/Pagination.d.ts +3 -3
- package/cjs/pagination/Pagination.js +60 -49
- package/cjs/pagination/Pagination.styles.js +7 -14
- package/cjs/pagination/index.js +1 -1
- package/cjs/popper/Popper.d.ts +4 -4
- package/cjs/popper/Popper.js +42 -43
- package/cjs/popper/index.js +2 -2
- package/cjs/progress-bar/ProgressBar.d.ts +3 -3
- package/cjs/progress-bar/ProgressBar.js +6 -8
- package/cjs/progress-bar/index.js +3 -4
- package/cjs/schedule/ScheduleItem.d.ts +8 -10
- package/cjs/schedule/ScheduleItem.js +12 -9
- package/cjs/schedule/ScheduleList.d.ts +3 -3
- package/cjs/schedule/ScheduleList.js +15 -18
- package/cjs/schedule/index.js +3 -3
- package/cjs/side-sheet/SideSheet.d.ts +5 -5
- package/cjs/side-sheet/SideSheet.js +76 -90
- package/cjs/side-sheet/SideSheetCloseButton.d.ts +2 -2
- package/cjs/side-sheet/SideSheetCloseButton.js +15 -20
- package/cjs/side-sheet/SideSheetContent.d.ts +3 -3
- package/cjs/side-sheet/SideSheetContent.js +16 -16
- package/cjs/side-sheet/SideSheetFooter.d.ts +3 -3
- package/cjs/side-sheet/SideSheetFooter.js +16 -16
- package/cjs/side-sheet/SideSheetHeader.d.ts +3 -3
- package/cjs/side-sheet/SideSheetHeader.js +19 -20
- package/cjs/side-sheet/SideSheetHeadline.d.ts +3 -3
- package/cjs/side-sheet/SideSheetHeadline.js +7 -6
- package/cjs/side-sheet/index.js +6 -7
- package/cjs/site-layout/SiteLayout.d.ts +15 -11
- package/cjs/site-layout/SiteLayout.js +60 -53
- package/cjs/site-layout/index.js +3 -4
- package/cjs/skeleton/Skeleton.d.ts +3 -3
- package/cjs/skeleton/Skeleton.js +14 -18
- package/cjs/skeleton/index.js +1 -1
- package/cjs/social-media-link-list/SocialMediaLinkList.d.ts +7 -9
- package/cjs/social-media-link-list/SocialMediaLinkList.js +78 -74
- package/cjs/social-media-link-list/index.js +1 -1
- package/cjs/spinner/Spinner.d.ts +9 -9
- package/cjs/spinner/Spinner.js +23 -28
- package/cjs/spinner/index.js +1 -1
- package/cjs/step/Step.d.ts +2 -2
- package/cjs/step/Step.js +51 -51
- package/cjs/step/Step.styles.js +5 -10
- package/cjs/step/StepButton.d.ts +2 -2
- package/cjs/step/StepButton.js +45 -42
- package/cjs/step/StepContent.d.ts +3 -3
- package/cjs/step/StepContent.js +18 -17
- package/cjs/step/StepContext.d.ts +1 -1
- package/cjs/step/StepContext.js +2 -3
- package/cjs/step/StepLabel.d.ts +1 -1
- package/cjs/step/StepLabel.js +15 -13
- package/cjs/step/index.js +2 -2
- package/cjs/stepper/Stepper.d.ts +2 -2
- package/cjs/stepper/Stepper.js +28 -38
- package/cjs/stepper/StepperContext.d.ts +1 -1
- package/cjs/stepper/StepperContext.js +2 -3
- package/cjs/stepper/index.js +2 -2
- package/cjs/stepper-feedback-message/StepperFeedbackMessage.d.ts +2 -2
- package/cjs/stepper-feedback-message/StepperFeedbackMessage.js +12 -10
- package/cjs/stepper-feedback-message/index.js +2 -2
- package/cjs/styles/index.js +6 -7
- package/cjs/styles/media.d.ts +1 -1
- package/cjs/styles/media.js +2 -4
- package/cjs/styles/style-helpers.js +1 -2
- package/cjs/styles/theme.d.ts +1 -1
- package/cjs/styles/theme.js +2 -4
- package/cjs/surface/Surface.d.ts +7 -7
- package/cjs/surface/Surface.js +33 -34
- package/cjs/surface/index.js +1 -1
- package/cjs/tab/Tab.d.ts +3 -3
- package/cjs/tab/Tab.js +23 -24
- package/cjs/tab/TabPanel.d.ts +2 -2
- package/cjs/tab/TabPanel.js +11 -10
- package/cjs/tab/Tabs.d.ts +3 -3
- package/cjs/tab/Tabs.js +54 -71
- package/cjs/tab/TabsContext.d.ts +3 -3
- package/cjs/tab/TabsContext.js +8 -10
- package/cjs/tab/index.js +5 -5
- package/cjs/table/Table.d.ts +3 -3
- package/cjs/table/Table.js +21 -26
- package/cjs/table/TableBody.d.ts +2 -2
- package/cjs/table/TableBody.js +12 -16
- package/cjs/table/TableDataCell.d.ts +2 -2
- package/cjs/table/TableDataCell.js +14 -19
- package/cjs/table/TableHead.d.ts +2 -2
- package/cjs/table/TableHead.js +19 -23
- package/cjs/table/TableHeaderCell.d.ts +3 -3
- package/cjs/table/TableHeaderCell.js +14 -19
- package/cjs/table/TableRow.d.ts +2 -2
- package/cjs/table/TableRow.js +19 -23
- package/cjs/table/index.js +6 -6
- package/cjs/test/Test.js +6 -5
- package/cjs/tooltip/Tooltip.d.ts +4 -4
- package/cjs/tooltip/Tooltip.js +42 -39
- package/cjs/tooltip/index.js +3 -4
- package/cjs/typography/Headlines.d.ts +41 -40
- package/cjs/typography/Headlines.js +34 -45
- package/cjs/typography/Text.d.ts +2 -3
- package/cjs/typography/Text.js +4 -6
- package/cjs/typography/index.js +2 -2
- package/common/LockBodyScroll.d.ts +2 -2
- package/common/LockBodyScroll.js +20 -10
- package/common/arrow.d.ts +1 -1
- package/common/arrow.js +2 -4
- package/common/emotionCloneElement.d.ts +0 -1
- package/common/emotionCloneElement.js +1 -1
- package/common/intent.d.ts +1 -1
- package/common/polymorphic.d.ts +5 -5
- package/common/polymorphic.js +10 -4
- package/common/use-media.js +5 -5
- package/common/useOnClickOutside.d.ts +1 -2
- package/common/utils.js +1 -1
- package/counter/Counter.d.ts +1 -1
- package/counter/Counter.js +58 -55
- package/counter/PluralCounter.d.ts +1 -1
- package/counter/PluralCounter.js +24 -16
- package/data-table/DataTable.d.ts +3 -2
- package/data-table/DataTable.js +59 -46
- package/date-range-picker/DateRangePicker.d.ts +5 -5
- package/date-range-picker/DateRangePicker.js +323 -242
- package/date-range-picker/DateRangePicker.styles.d.ts +6 -0
- package/date-range-picker/DateRangePicker.styles.js +9 -0
- package/divider/Divider.d.ts +3 -3
- package/divider/Divider.js +10 -5
- package/drawer/Drawer.d.ts +4 -4
- package/drawer/Drawer.js +16 -7
- package/dropdown-menu/Dropdown.d.ts +3 -3
- package/dropdown-menu/Dropdown.js +45 -35
- package/dropdown-menu/DropdownContext.d.ts +4 -4
- package/dropdown-menu/DropdownContext.js +5 -4
- package/dropdown-menu/MenuCheckbox.d.ts +1 -1
- package/dropdown-menu/MenuCheckbox.js +24 -17
- package/dropdown-menu/MenuItem.d.ts +1 -1
- package/dropdown-menu/MenuItem.js +34 -31
- package/dropdown-menu/MenuTitle.d.ts +1 -1
- package/dropdown-menu/MenuTitle.js +15 -13
- package/elevation/index.d.ts +1 -1
- package/elevation/index.js +3 -6
- package/flexbox/FlexBox.d.ts +5 -5
- package/flexbox/FlexBox.js +8 -8
- package/footer/Footer.d.ts +2 -2
- package/footer/Footer.js +12 -7
- package/forms/assistive-text/AssistiveText.d.ts +3 -4
- package/forms/asterisk/Asterisk.d.ts +2 -2
- package/forms/asterisk/Asterisk.js +4 -2
- package/forms/checkbox/Checkbox.d.ts +5 -5
- package/forms/checkbox/Checkbox.js +49 -40
- package/forms/checkbox/ExampleControlComponent.d.ts +2 -1
- package/forms/checkbox/ExampleControlComponent.js +18 -11
- package/forms/email-field/EmailField.d.ts +2 -2
- package/forms/email-field/EmailField.js +10 -5
- package/forms/error-text/ErrorText.d.ts +3 -4
- package/forms/error-text/ErrorText.js +2 -4
- package/forms/field/Field.d.ts +2 -1
- package/forms/field/Field.js +12 -10
- package/forms/index.d.ts +3 -3
- package/forms/input/Input.d.ts +3 -3
- package/forms/input/Input.js +37 -38
- package/forms/input/InputComposition.d.ts +12 -12
- package/forms/input/InputComposition.js +40 -29
- package/forms/label/Label.d.ts +2 -1
- package/forms/label/Label.js +17 -11
- package/forms/number-field/NumberField.d.ts +2 -2
- package/forms/number-field/NumberField.js +11 -7
- package/forms/password-field/PasswordField.d.ts +1 -1
- package/forms/password-field/PasswordField.js +20 -15
- package/forms/radio/Radio.d.ts +4 -4
- package/forms/radio/Radio.js +29 -23
- package/forms/reactselect/ReactSelect.d.ts +15 -15
- package/forms/reactselect/ReactSelect.js +72 -65
- package/forms/searchable-select/AsyncSearchableSelect.d.ts +2 -2
- package/forms/searchable-select/AsyncSearchableSelect.js +51 -39
- package/forms/select/Select.d.ts +4 -4
- package/forms/select/Select.js +40 -37
- package/forms/select-field/SelectField.d.ts +3 -3
- package/forms/select-field/SelectField.js +43 -38
- package/forms/switch/Switch.d.ts +2 -2
- package/forms/switch/Switch.js +52 -43
- package/forms/tel-field/TelField.d.ts +2 -2
- package/forms/tel-field/TelField.js +10 -5
- package/forms/text-field/TextField.d.ts +4 -4
- package/forms/text-field/TextField.js +50 -45
- package/global-styles/GlobalStyles.d.ts +3 -3
- package/global-styles/GlobalStyles.js +3 -3
- package/global-styles/ResetStyles.d.ts +2 -2
- package/global-styles/ResetStyles.js +3 -4
- package/global-styles/sanitize.js +1 -2
- package/grid/Column.d.ts +1 -1
- package/grid/Column.js +14 -7
- package/grid/Container.d.ts +2 -2
- package/grid/Container.js +42 -36
- package/hero/Hero.d.ts +2 -2
- package/hero/Hero.js +43 -25
- package/hero/stripes.d.ts +2 -2
- package/hero/stripes.js +176 -160
- package/ie-banner/IEBanner.d.ts +2 -1
- package/ie-banner/IEBanner.js +17 -11
- package/layout/LayoutLegacy.d.ts +2 -2
- package/layout/LayoutLegacy.js +2 -2
- package/lists/FeatureList.d.ts +7 -9
- package/lists/FeatureList.js +21 -11
- package/lists/ListAddon.d.ts +2 -2
- package/lists/ListAddon.js +13 -6
- package/lists/ListDivider.d.ts +3 -3
- package/lists/ListDivider.js +10 -5
- package/lists/ListIcon.d.ts +3 -3
- package/lists/ListIcon.js +10 -5
- package/lists/ListItem.d.ts +2 -2
- package/lists/ListItem.js +13 -6
- package/lists/ListText.d.ts +4 -4
- package/lists/ListText.js +10 -5
- package/lists/ListTextGroup.d.ts +2 -2
- package/lists/ListTextGroup.js +10 -5
- package/lists/ListTitle.d.ts +2 -2
- package/lists/ListTitle.js +11 -7
- package/loader/DfdsLoader.d.ts +1 -1
- package/loader/DfdsLoader.js +27 -22
- package/loader/Loader.d.ts +3 -3
- package/loader/Loader.js +10 -5
- package/localization/LocaleFlag.d.ts +3 -3
- package/localization/LocaleFlag.js +10 -5
- package/localization/locales.d.ts +2 -2
- package/logo/Logo.d.ts +3 -3
- package/logo/Logo.js +14 -7
- package/menu/Menu.d.ts +1 -1
- package/menu/Menu.js +30 -17
- package/mobile-stepper/MobileStepper.d.ts +3 -3
- package/mobile-stepper/MobileStepper.js +32 -26
- package/nav-bar/NavBar.d.ts +11 -9
- package/nav-bar/NavBar.js +56 -41
- package/nav-menu/NavMenuItem.d.ts +1 -1
- package/nav-menu/NavMenuItem.js +13 -12
- package/package.json +20 -22
- package/pagination/Pagination.d.ts +3 -3
- package/pagination/Pagination.js +56 -40
- package/pagination/Pagination.styles.js +2 -3
- package/popper/Popper.d.ts +4 -4
- package/popper/Popper.js +27 -18
- package/progress-bar/ProgressBar.d.ts +3 -3
- package/progress-bar/ProgressBar.js +4 -6
- package/schedule/ScheduleItem.d.ts +8 -10
- package/schedule/ScheduleItem.js +9 -4
- package/schedule/ScheduleList.d.ts +3 -3
- package/schedule/ScheduleList.js +16 -10
- package/side-sheet/SideSheet.d.ts +5 -5
- package/side-sheet/SideSheet.js +56 -48
- package/side-sheet/SideSheetCloseButton.d.ts +2 -2
- package/side-sheet/SideSheetCloseButton.js +10 -5
- package/side-sheet/SideSheetContent.d.ts +3 -3
- package/side-sheet/SideSheetContent.js +17 -8
- package/side-sheet/SideSheetFooter.d.ts +3 -3
- package/side-sheet/SideSheetFooter.js +17 -8
- package/side-sheet/SideSheetHeader.d.ts +3 -3
- package/side-sheet/SideSheetHeader.js +17 -8
- package/side-sheet/SideSheetHeadline.d.ts +3 -3
- package/side-sheet/SideSheetHeadline.js +5 -4
- package/site-layout/SiteLayout.d.ts +15 -11
- package/site-layout/SiteLayout.js +36 -18
- package/skeleton/Skeleton.d.ts +3 -3
- package/skeleton/Skeleton.js +11 -6
- package/social-media-link-list/SocialMediaLinkList.d.ts +7 -9
- package/social-media-link-list/SocialMediaLinkList.js +69 -55
- package/spinner/Spinner.d.ts +9 -9
- package/spinner/Spinner.js +19 -13
- package/step/Step.d.ts +2 -2
- package/step/Step.js +34 -20
- package/step/Step.styles.js +1 -2
- package/step/StepButton.d.ts +2 -2
- package/step/StepButton.js +28 -22
- package/step/StepContent.d.ts +3 -3
- package/step/StepContent.js +13 -13
- package/step/StepContext.d.ts +1 -1
- package/step/StepLabel.d.ts +1 -1
- package/step/StepLabel.js +9 -8
- package/stepper/Stepper.d.ts +2 -2
- package/stepper/Stepper.js +16 -16
- package/stepper/StepperContext.d.ts +1 -1
- package/stepper-feedback-message/StepperFeedbackMessage.d.ts +2 -2
- package/stepper-feedback-message/StepperFeedbackMessage.js +10 -8
- package/styles/media.d.ts +1 -1
- package/styles/style-helpers.js +1 -2
- package/styles/theme.d.ts +1 -1
- package/surface/Surface.d.ts +7 -7
- package/surface/Surface.js +18 -15
- package/tab/Tab.d.ts +3 -3
- package/tab/Tab.js +18 -12
- package/tab/TabPanel.d.ts +2 -2
- package/tab/TabPanel.js +6 -5
- package/tab/Tabs.d.ts +3 -3
- package/tab/Tabs.js +49 -43
- package/tab/TabsContext.d.ts +3 -3
- package/tab/TabsContext.js +5 -4
- package/table/Table.d.ts +3 -3
- package/table/Table.js +20 -13
- package/table/TableBody.d.ts +2 -2
- package/table/TableBody.js +13 -7
- package/table/TableDataCell.d.ts +2 -2
- package/table/TableDataCell.js +14 -8
- package/table/TableHead.d.ts +2 -2
- package/table/TableHead.js +11 -9
- package/table/TableHeaderCell.d.ts +3 -3
- package/table/TableHeaderCell.js +14 -8
- package/table/TableRow.d.ts +2 -2
- package/table/TableRow.js +12 -11
- package/test/Test.js +4 -2
- package/tooltip/Tooltip.d.ts +4 -4
- package/tooltip/Tooltip.js +33 -24
- package/typography/Headlines.d.ts +41 -40
- package/typography/Headlines.js +24 -19
- package/typography/Text.d.ts +2 -3
- package/typography/Text.js +1 -2
- package/cjs/date-range-picker/DatePickerDefaultStyles.d.ts +0 -2
- package/cjs/date-range-picker/DatePickerDefaultStyles.js +0 -20
- package/cjs/date-range-picker/DatePickerDfdsStyles.d.ts +0 -2
- package/cjs/date-range-picker/DatePickerDfdsStyles.js +0 -11
- package/date-range-picker/DatePickerDefaultStyles.d.ts +0 -2
- package/date-range-picker/DatePickerDefaultStyles.js +0 -13
- package/date-range-picker/DatePickerDfdsStyles.d.ts +0 -2
- package/date-range-picker/DatePickerDfdsStyles.js +0 -4
|
@@ -4,71 +4,101 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _reactDayPicker = require("react-day-picker");
|
|
8
8
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var _moment = _interopRequireDefault(require("moment"));
|
|
10
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
require("react-dates/initialize");
|
|
12
10
|
var _react2 = require("@emotion/react");
|
|
13
11
|
var _icons = require("@dfds-ui/icons");
|
|
14
|
-
var
|
|
12
|
+
var _useMedia = _interopRequireDefault(require("../common/use-media"));
|
|
15
13
|
var _miniMoize = require("../common/miniMoize");
|
|
16
|
-
var
|
|
17
|
-
var _DatePickerDfdsStyles = _interopRequireDefault(require("./DatePickerDfdsStyles"));
|
|
14
|
+
var _DateRangePicker = require("./DateRangePicker.styles");
|
|
18
15
|
var _LockBodyScroll = _interopRequireDefault(require("../common/LockBodyScroll"));
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
function
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
require("react-day-picker/dist/style.css");
|
|
17
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
// --- Date helpers (replace moment) ---
|
|
21
|
+
|
|
22
|
+
function toISOStr(d) {
|
|
23
|
+
if (!d) return null;
|
|
24
|
+
const y = d.getFullYear();
|
|
25
|
+
const m = String(d.getMonth() + 1).padStart(2, '0');
|
|
26
|
+
const day = String(d.getDate()).padStart(2, '0');
|
|
27
|
+
return `${y}-${m}-${day}`;
|
|
28
|
+
}
|
|
29
|
+
function toDate(s) {
|
|
30
|
+
if (!s) return null;
|
|
31
|
+
const [y, m, d] = s.split('-').map(Number);
|
|
32
|
+
return new Date(y, m - 1, d);
|
|
33
|
+
}
|
|
34
|
+
function formatDisplayDate(date, locale) {
|
|
35
|
+
const weekday = date.toLocaleDateString(locale || 'en', {
|
|
36
|
+
weekday: 'short'
|
|
37
|
+
});
|
|
38
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
39
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
40
|
+
return `${weekday} ${day}/${month}`;
|
|
41
|
+
}
|
|
42
|
+
function getWeekStart(locale) {
|
|
43
|
+
const sundayLocales = ['en', 'en-US', 'ja', 'ko', 'zh'];
|
|
44
|
+
const lang = locale.split('-')[0];
|
|
45
|
+
return sundayLocales.includes(locale) || sundayLocales.includes(lang) ? 0 : 1;
|
|
46
|
+
}
|
|
47
|
+
function buildMap(dates) {
|
|
48
|
+
const map = {};
|
|
49
|
+
if (!dates) return map;
|
|
50
|
+
for (const d of dates) {
|
|
51
|
+
map[d] = 1;
|
|
52
|
+
}
|
|
53
|
+
return map;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// --- Component ---
|
|
57
|
+
|
|
31
58
|
const DateRangePicker = props => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
size: 48
|
|
56
|
-
}], {
|
|
57
|
-
numberOfMonths: 1,
|
|
58
|
-
mobileState: false,
|
|
59
|
-
size: 48
|
|
60
|
-
}),
|
|
61
|
-
numberOfMonths = _useMedia.numberOfMonths,
|
|
62
|
-
mobileState = _useMedia.mobileState,
|
|
63
|
-
size = _useMedia.size;
|
|
64
|
-
_moment.default.locale(props.locale);
|
|
65
|
-
(0, _moment.default)().weekday(0);
|
|
59
|
+
const [startDate, setStartDate] = (0, _react.useState)(toDate(props.startDates.initial));
|
|
60
|
+
const [endDate, setEndDate] = (0, _react.useState)(toDate(props.endDates.initial));
|
|
61
|
+
const [showCalendar, setShowCalendar] = (0, _react.useState)(false);
|
|
62
|
+
const [focusedInput, setFocusedInput] = (0, _react.useState)('startDate');
|
|
63
|
+
const [displayMonth, setDisplayMonth] = (0, _react.useState)(toDate(props.startDates.initial) || new Date());
|
|
64
|
+
const wrapperRef = (0, _react.useRef)(null);
|
|
65
|
+
const {
|
|
66
|
+
numberOfMonths,
|
|
67
|
+
mobileState,
|
|
68
|
+
size
|
|
69
|
+
} = (0, _useMedia.default)(['(max-width: 64em)', '(min-width: 78.063em)'], [{
|
|
70
|
+
numberOfMonths: 1,
|
|
71
|
+
mobileState: true,
|
|
72
|
+
size: 40
|
|
73
|
+
}, {
|
|
74
|
+
numberOfMonths: 2,
|
|
75
|
+
mobileState: false,
|
|
76
|
+
size: 48
|
|
77
|
+
}], {
|
|
78
|
+
numberOfMonths: 1,
|
|
79
|
+
mobileState: false,
|
|
80
|
+
size: 48
|
|
81
|
+
});
|
|
66
82
|
(0, _react.useEffect)(() => {
|
|
67
|
-
setStartDate(
|
|
68
|
-
setEndDate(
|
|
83
|
+
setStartDate(toDate(props.startDates.initial));
|
|
84
|
+
setEndDate(toDate(props.endDates.initial));
|
|
69
85
|
}, [props.startDates.initial, props.endDates.initial]);
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
|
|
87
|
+
// Handle clicks outside the calendar to close it
|
|
88
|
+
const onDateChangeRef = (0, _react.useRef)(props.onDateChange);
|
|
89
|
+
onDateChangeRef.current = props.onDateChange;
|
|
90
|
+
(0, _react.useEffect)(() => {
|
|
91
|
+
if (!showCalendar) return;
|
|
92
|
+
const handleClickOutside = e => {
|
|
93
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
94
|
+
setShowCalendar(false);
|
|
95
|
+
setFocusedInput('startDate');
|
|
96
|
+
onDateChangeRef.current(toISOStr(startDate), toISOStr(endDate));
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
100
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
101
|
+
}, [showCalendar, startDate, endDate]);
|
|
72
102
|
const startCalendarClicked = () => {
|
|
73
103
|
setShowCalendar(prev => !prev);
|
|
74
104
|
setFocusedInput('startDate');
|
|
@@ -77,215 +107,226 @@ const DateRangePicker = props => {
|
|
|
77
107
|
setShowCalendar(prev => !prev);
|
|
78
108
|
setFocusedInput('endDate');
|
|
79
109
|
};
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const disabledDates = (0, _miniMoize.miniMoize)((focusedInput, start, startDisabledDates, endDisabledDates) => buildMap(focusedInput !== 'endDate' ? startDisabledDates : (startDisabledDates || []).filter(d => d < start).concat(endDisabledDates)));
|
|
98
|
-
const _isDayBlocked = date => {
|
|
99
|
-
const startDateStr = getKeyStr(startDate);
|
|
100
|
-
const disabled = disabledDates(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
|
|
101
|
-
const dateN = getKeyStr(date);
|
|
102
|
-
if (!dateN) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
110
|
+
const renderCalendarInfo = () => props.infoLabel ? (0, _jsxRuntime.jsxs)("div", {
|
|
111
|
+
className: "dateRangePickerInfo",
|
|
112
|
+
children: [(0, _jsxRuntime.jsx)("span", {
|
|
113
|
+
className: "dateRangePickerInfo__legend"
|
|
114
|
+
}), (0, _jsxRuntime.jsx)("p", {
|
|
115
|
+
className: "dateRangePickerInfo__info",
|
|
116
|
+
children: props.infoLabel
|
|
117
|
+
})]
|
|
118
|
+
}) : null;
|
|
119
|
+
|
|
120
|
+
// Memoized disabled dates map
|
|
121
|
+
const disabledDatesMap = (0, _miniMoize.miniMoize)((focusedInput, start, startDisabledDates, endDisabledDates) => buildMap(focusedInput !== 'endDate' ? startDisabledDates : (startDisabledDates || []).filter(d => d < (start || '')).concat(endDisabledDates || [])));
|
|
122
|
+
const isDayDisabled = (0, _react.useCallback)(date => {
|
|
123
|
+
const startDateStr = toISOStr(startDate);
|
|
124
|
+
const disabled = disabledDatesMap(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
|
|
125
|
+
const dateStr = toISOStr(date);
|
|
126
|
+
if (!dateStr) return false;
|
|
105
127
|
const d = focusedInput !== 'endDate' ? props.startDates : props.endDates;
|
|
106
128
|
const min = props.startDates.minDate;
|
|
107
|
-
if (disabled[
|
|
129
|
+
if (disabled[dateStr]) return true;
|
|
130
|
+
if (min && dateStr < min) return true;
|
|
131
|
+
if (d.maxDate && dateStr > d.maxDate) return true;
|
|
132
|
+
if (focusedInput === 'endDate' && startDateStr && startDateStr < dateStr && dateStr < props.endDates.minDate) {
|
|
108
133
|
return true;
|
|
109
134
|
}
|
|
110
|
-
|
|
111
|
-
|
|
135
|
+
return false;
|
|
136
|
+
}, [focusedInput, startDate, props.startDates, props.endDates, disabledDatesMap]);
|
|
137
|
+
|
|
138
|
+
// Memoized offer dates map
|
|
139
|
+
const offerDatesMap = (0, _miniMoize.miniMoize)((focusedInput, startOffers, endOffers) => buildMap(focusedInput !== 'endDate' ? startOffers : endOffers));
|
|
140
|
+
const isOfferDay = (0, _react.useCallback)(date => {
|
|
141
|
+
const map = offerDatesMap(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
|
|
142
|
+
const dateStr = toISOStr(date);
|
|
143
|
+
return dateStr ? !!map[dateStr] : false;
|
|
144
|
+
}, [focusedInput, props.startDates.offerDates, props.endDates.offerDates, offerDatesMap]);
|
|
145
|
+
const defaultMonth = (0, _react.useMemo)(() => {
|
|
146
|
+
if (mobileState) {
|
|
147
|
+
return toDate(props.startDates.minDate) || new Date();
|
|
112
148
|
}
|
|
113
|
-
|
|
114
|
-
|
|
149
|
+
return startDate || new Date();
|
|
150
|
+
// Only compute on mount / when mobile state changes
|
|
151
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
152
|
+
}, [mobileState]);
|
|
153
|
+
const handleMonthChange = (0, _react.useCallback)(month => {
|
|
154
|
+
if (month > displayMonth) {
|
|
155
|
+
props.onNextMonthClick?.();
|
|
156
|
+
} else {
|
|
157
|
+
props.onPrevMonthClick?.();
|
|
115
158
|
}
|
|
116
|
-
|
|
117
|
-
|
|
159
|
+
setDisplayMonth(month);
|
|
160
|
+
}, [displayMonth, props.onNextMonthClick, props.onPrevMonthClick]);
|
|
161
|
+
const handleDayClick = day => {
|
|
162
|
+
if (isDayDisabled(day)) return;
|
|
163
|
+
if (props.endDateDisabled) {
|
|
164
|
+
setStartDate(day);
|
|
165
|
+
setEndDate(day);
|
|
166
|
+
props.onDateChange(toISOStr(day), null);
|
|
167
|
+
setShowCalendar(false);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (focusedInput === 'startDate') {
|
|
171
|
+
setStartDate(day);
|
|
172
|
+
setEndDate(null);
|
|
173
|
+
setFocusedInput('endDate');
|
|
174
|
+
props.onDateChange(toISOStr(day), null);
|
|
175
|
+
} else {
|
|
176
|
+
setEndDate(day);
|
|
177
|
+
setFocusedInput('startDate');
|
|
178
|
+
setShowCalendar(false);
|
|
179
|
+
props.onDateChange(toISOStr(startDate), toISOStr(day));
|
|
118
180
|
}
|
|
119
|
-
return false;
|
|
120
|
-
};
|
|
121
|
-
const offerDates = (0, _miniMoize.miniMoize)((focusedInput, startOffers, endOffers) => buildMap(focusedInput !== 'endDate' ? startOffers : endOffers));
|
|
122
|
-
const isOfferValid = date => {
|
|
123
|
-
const map = offerDates(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
|
|
124
|
-
return map[getKeyStr(date)];
|
|
125
|
-
};
|
|
126
|
-
const minimumNights = () => {
|
|
127
|
-
const start = toMoment(props.startDates.initial);
|
|
128
|
-
const end = toMoment(props.endDates.minDate);
|
|
129
|
-
return end && start ? end.diff(start, 'days') : 0;
|
|
130
181
|
};
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
182
|
+
const isSelected = (0, _react.useCallback)(date => {
|
|
183
|
+
const dateStr = toISOStr(date);
|
|
184
|
+
return dateStr === toISOStr(startDate) || dateStr === toISOStr(endDate);
|
|
185
|
+
}, [startDate, endDate]);
|
|
186
|
+
const isRangeMiddle = (0, _react.useCallback)(date => {
|
|
187
|
+
if (!startDate || !endDate) return false;
|
|
188
|
+
return date > startDate && date < endDate;
|
|
189
|
+
}, [startDate, endDate]);
|
|
190
|
+
|
|
191
|
+
// Custom DayContent that sets aria-label to the ISO date (for testability & a11y)
|
|
192
|
+
const DayContent = (0, _react.useMemo)(() => {
|
|
193
|
+
return function DayContentComponent({
|
|
194
|
+
date
|
|
195
|
+
}) {
|
|
196
|
+
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
197
|
+
children: date.getDate()
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
}, []);
|
|
201
|
+
const formatters = (0, _react.useMemo)(() => ({
|
|
202
|
+
formatWeekdayName: date => date.toLocaleDateString(props.locale || 'en', {
|
|
203
|
+
weekday: 'short'
|
|
139
204
|
}),
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
dayAriaLabelFormat: 'YYYY-MM-DD',
|
|
144
|
-
transitionDuration: 100,
|
|
145
|
-
numberOfMonths,
|
|
146
|
-
onOutsideClick,
|
|
147
|
-
isDayBlocked: d => _isDayBlocked(d),
|
|
148
|
-
isDayHighlighted: d => isOfferValid(d),
|
|
149
|
-
initialVisibleMonth: initialMonth,
|
|
150
|
-
renderCalendarInfo
|
|
151
|
-
};
|
|
152
|
-
return (0, _react2.jsx)(_LockBodyScroll.default, {
|
|
153
|
-
enabled: mobileState && showCalendar
|
|
154
|
-
}, (0, _react2.jsx)("div", {
|
|
155
|
-
className: 'outer ' + props.className,
|
|
156
|
-
css: /*#__PURE__*/(0, _react2.css)(_DatePickerDefaultStyles.default, ";", _DatePickerDfdsStyles.default, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1LZ0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24gKi9cbmltcG9ydCB7IERheVBpY2tlclJhbmdlQ29udHJvbGxlciwgRm9jdXNlZElucHV0U2hhcGUsIERheVBpY2tlclNpbmdsZURhdGVDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtZGF0ZXMnXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgJ3JlYWN0LWRhdGVzL2luaXRpYWxpemUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IERhdGVQaWNrZXJEZWZhdWx0U3R5bGVzIGZyb20gJy4vRGF0ZVBpY2tlckRlZmF1bHRTdHlsZXMnXG5pbXBvcnQgRGF0ZVBpY2tlckRmZHNTdHlsZXMgZnJvbSAnLi9EYXRlUGlja2VyRGZkc1N0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5pbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlclByb3BzIHtcbiAgZW5kRGF0ZURpc2FibGVkPzogYm9vbGVhblxuICB2YWxpZDogYm9vbGVhblxuICBvbkRhdGVDaGFuZ2U6IChkOiBzdHJpbmcgfCBudWxsLCByOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIGZvcm1hdD86IHN0cmluZ1xuICBpbmZvTGFiZWw/OiBzdHJpbmdcbiAgc3RhcnREYXRlczogSURhdGVMZWdcbiAgZW5kRGF0ZXM6IElEYXRlTGVnXG4gIGxhYmVsczogSURhdGVSYW5nZVBpY2tlckxhYmVsc1xuICBvbk5leHRNb250aENsaWNrPzogKCkgPT4gdm9pZFxuICBvblByZXZNb250aENsaWNrPzogKCkgPT4gdm9pZFxuICBudW1iZXJPZk1vYmlsZU1vbnRocz86IG51bWJlclxuICBoaWRlSWNvbj86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xufVxuaW50ZXJmYWNlIElEYXRlTGVnIHtcbiAgaW5pdGlhbDogc3RyaW5nIHwgbnVsbFxuICBtYXhEYXRlOiBzdHJpbmdcbiAgbWluRGF0ZTogc3RyaW5nXG4gIGRpc2FibGVkRGF0ZXM/OiBzdHJpbmdbXVxuICBvZmZlckRhdGVzPzogc3RyaW5nW11cbn1cbmludGVyZmFjZSBJRGF0ZVJhbmdlUGlja2VyTGFiZWxzIHtcbiAgc3RhcnQ6IHN0cmluZ1xuICBlbmQ6IHN0cmluZ1xuICBoZWFkZXI6IHN0cmluZ1xuICBpbmZvPzogc3RyaW5nXG59XG4vLyBEbyBhIHdyYXBwZXIgdG8gc3VwcG9ydCBzdHlsZWQgY29tcG9uZW50czogaHR0cHM6Ly9naXRodWIuY29tL2FpcmJuYi9yZWFjdC1kYXRlcy9pc3N1ZXMvMTAzMCNpc3N1ZWNvbW1lbnQtMzg4MjI3NDU0XG5jb25zdCBEYXRlUmFuZ2VQaWNrZXI6IFJlYWN0LkZDPElEYXRlUmFuZ2VQaWNrZXJQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgW3N0YXJ0RGF0ZSwgc2V0U3RhcnREYXRlXSA9IHVzZVN0YXRlKHRvTW9tZW50KHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gIGNvbnN0IFtlbmREYXRlLCBzZXRFbmREYXRlXSA9IHVzZVN0YXRlKHRvTW9tZW50KHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb2N1c2VkSW5wdXQsIHNldEZvY3VzZWRJbnB1dF0gPSB1c2VTdGF0ZSgnc3RhcnREYXRlJyBhcyBGb2N1c2VkSW5wdXRTaGFwZSlcbiAgY29uc3QgeyBudW1iZXJPZk1vbnRocywgbW9iaWxlU3RhdGUsIHNpemUgfSA9IHVzZU1lZGlhKFxuICAgIFsnKG1heC13aWR0aDogNjRlbSknLCAnKG1pbi13aWR0aDogNzguMDYzZW0pJ10sXG4gICAgW1xuICAgICAgeyBudW1iZXJPZk1vbnRoczogcHJvcHMubnVtYmVyT2ZNb2JpbGVNb250aHMgfHwgMTIsIG1vYmlsZVN0YXRlOiB0cnVlLCBzaXplOiA0MCB9LFxuICAgICAgeyBudW1iZXJPZk1vbnRoczogMiwgbW9iaWxlU3RhdGU6IGZhbHNlLCBzaXplOiA0OCB9LFxuICAgIF0sXG4gICAgeyBudW1iZXJPZk1vbnRoczogMSwgbW9iaWxlU3RhdGU6IGZhbHNlLCBzaXplOiA0OCB9XG4gIClcblxuICBtb21lbnQubG9jYWxlKHByb3BzLmxvY2FsZSlcbiAgbW9tZW50KCkud2Vla2RheSgwKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHRvTW9tZW50KHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gICAgc2V0RW5kRGF0ZSh0b01vbWVudChwcm9wcy5lbmREYXRlcy5pbml0aWFsKSlcbiAgfSwgW3Byb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCwgcHJvcHMuZW5kRGF0ZXMuaW5pdGlhbF0pXG4gIGNvbnN0IGNsb3NlRXhjZXB0aW9uRGl2T3V0ID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IGNsb3NlRXhjZXB0aW9uSW1nT3V0ID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IHN0YXJ0Q2FsZW5kYXJDbGlja2VkID0gKCkgPT4ge1xuICAgIHNldFNob3dDYWxlbmRhcigocHJldikgPT4gIXByZXYpXG4gICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICB9XG4gIGNvbnN0IGVuZENhbGVuZGFyQ2xpY2tlZCA9ICgpID0+IHtcbiAgICBzZXRTaG93Q2FsZW5kYXIoKHByZXYpID0+ICFwcmV2KVxuICAgIHNldEZvY3VzZWRJbnB1dCgnZW5kRGF0ZScpXG4gIH1cbiAgY29uc3Qgb25PdXRzaWRlQ2xpY2sgPSAoeyB0YXJnZXQgfTogYW55KSA9PiB7XG4gICAgaWYgKHRhcmdldCA9PT0gY2xvc2VFeGNlcHRpb25EaXZPdXQuY3VycmVudCB8fCB0YXJnZXQgPT09IGNsb3NlRXhjZXB0aW9uSW1nT3V0LmN1cnJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICAgIHByb3BzLm9uRGF0ZUNoYW5nZShnZXRLZXlTdHIoc3RhcnREYXRlKSwgZ2V0S2V5U3RyKGVuZERhdGUpKVxuICB9XG4gIGNvbnN0IHJlbmRlckNhbGVuZGFySW5mbyA9ICgpID0+XG4gICAgcHJvcHMuaW5mb0xhYmVsID8gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJJbmZvXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9fX2xlZ2VuZFwiIC8+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9fX2luZm9cIj57cHJvcHMuaW5mb0xhYmVsfTwvcD5cbiAgICAgIDwvZGl2PlxuICAgICkgOiAoXG4gICAgICAnJ1xuICAgIClcbiAgY29uc3QgZGlzYWJsZWREYXRlcyA9IG1pbmlNb2l6ZShcbiAgICAoZm9jdXNlZElucHV0OiBzdHJpbmcsIHN0YXJ0OiBzdHJpbmcsIHN0YXJ0RGlzYWJsZWREYXRlczogc3RyaW5nW10sIGVuZERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdKSA9PlxuICAgICAgYnVpbGRNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnXG4gICAgICAgICAgPyBzdGFydERpc2FibGVkRGF0ZXNcbiAgICAgICAgICA6IChzdGFydERpc2FibGVkRGF0ZXMgfHwgW10pLmZpbHRlcigoZCkgPT4gZCA8IHN0YXJ0KS5jb25jYXQoZW5kRGlzYWJsZWREYXRlcylcbiAgICAgIClcbiAgKVxuICBjb25zdCBpc0RheUJsb2NrZWQgPSAoZGF0ZTogTW9tZW50KSA9PiB7XG4gICAgY29uc3Qgc3RhcnREYXRlU3RyID0gZ2V0S2V5U3RyKHN0YXJ0RGF0ZSlcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRGF0ZXMoXG4gICAgICBmb2N1c2VkSW5wdXQsXG4gICAgICBzdGFydERhdGVTdHIsXG4gICAgICBwcm9wcy5zdGFydERhdGVzLmRpc2FibGVkRGF0ZXMsXG4gICAgICBwcm9wcy5lbmREYXRlcy5kaXNhYmxlZERhdGVzXG4gICAgKVxuICAgIGNvbnN0IGRhdGVOID0gZ2V0S2V5U3RyKGRhdGUpXG4gICAgaWYgKCFkYXRlTikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGNvbnN0IGQgPSBmb2N1c2VkSW5wdXQgIT09ICdlbmREYXRlJyA/IHByb3BzLnN0YXJ0RGF0ZXMgOiBwcm9wcy5lbmREYXRlc1xuICAgIGNvbnN0IG1pbiA9IHByb3BzLnN0YXJ0RGF0ZXMubWluRGF0ZVxuICAgIGlmIChkaXNhYmxlZFtkYXRlTl0pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChtaW4gJiYgZGF0ZU4gJiYgZGF0ZU4gPCBtaW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChkLm1heERhdGUgJiYgZGF0ZU4gJiYgZGF0ZU4gPiBkLm1heERhdGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzdGFydERhdGVTdHIgJiYgc3RhcnREYXRlU3RyIDwgZGF0ZU4gJiYgZGF0ZU4gPCBwcm9wcy5lbmREYXRlcy5taW5EYXRlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBvZmZlckRhdGVzID0gbWluaU1vaXplKChmb2N1c2VkSW5wdXQ6IHN0cmluZywgc3RhcnRPZmZlcnM6IHN0cmluZ1tdLCBlbmRPZmZlcnM6IHN0cmluZ1tdKSA9PlxuICAgIGJ1aWxkTWFwKGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gc3RhcnRPZmZlcnMgOiBlbmRPZmZlcnMpXG4gIClcbiAgY29uc3QgaXNPZmZlclZhbGlkID0gKGRhdGU6IE1vbWVudCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG9mZmVyRGF0ZXMoZm9jdXNlZElucHV0LCBwcm9wcy5zdGFydERhdGVzLm9mZmVyRGF0ZXMsIHByb3BzLmVuZERhdGVzLm9mZmVyRGF0ZXMpXG4gICAgcmV0dXJuIG1hcFtnZXRLZXlTdHIoZGF0ZSkhXVxuICB9XG4gIGNvbnN0IG1pbmltdW1OaWdodHMgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RhcnQgPSB0b01vbWVudChwcm9wcy5zdGFydERhdGVzLmluaXRpYWwpXG4gICAgY29uc3QgZW5kID0gdG9Nb21lbnQocHJvcHMuZW5kRGF0ZXMubWluRGF0ZSlcbiAgICByZXR1cm4gZW5kICYmIHN0YXJ0ID8gZW5kLmRpZmYoc3RhcnQsICdkYXlzJykgOiAwXG4gIH1cbiAgY29uc3QgaW5pdGlhbE1vbnRoID0gKCkgPT4gKG1vYmlsZVN0YXRlID8gdG9Nb21lbnQocHJvcHMuc3RhcnREYXRlcy5taW5EYXRlKSA6IHN0YXJ0RGF0ZSkgfHwgbW9tZW50KClcbiAgY29uc3Qgc2hhcmVkQ3VzdG9tUHJvcHMgPSB7XG4gICAgaGlkZUtleWJvYXJkU2hvcnRjdXRzUGFuZWw6IHRydWUsXG4gICAgbmF2UHJldjogPExlZnRMaW5rIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBNb250aFwiIC8+LFxuICAgIG5hdk5leHQ6IDxSaWdodExpbmsgYXJpYS1sYWJlbD1cIk5leHQgTW9udGhcIiAvPixcbiAgICB3ZWVrRGF5Rm9ybWF0OiAnZGRkJyxcbiAgICBkYXlTaXplOiBzaXplLFxuICAgIG1vbnRoRm9ybWF0OiAnTU1NTSBZWVlZJyxcbiAgICBkYXlBcmlhTGFiZWxGb3JtYXQ6ICdZWVlZLU1NLUREJyxcbiAgICB0cmFuc2l0aW9uRHVyYXRpb246IDEwMCxcbiAgICBudW1iZXJPZk1vbnRocyxcbiAgICBvbk91dHNpZGVDbGljayxcbiAgICBpc0RheUJsb2NrZWQ6IChkOiBNb21lbnQpID0+IGlzRGF5QmxvY2tlZChkKSxcbiAgICBpc0RheUhpZ2hsaWdodGVkOiAoZDogTW9tZW50KSA9PiBpc09mZmVyVmFsaWQoZCksXG4gICAgaW5pdGlhbFZpc2libGVNb250aDogaW5pdGlhbE1vbnRoLFxuICAgIHJlbmRlckNhbGVuZGFySW5mbyxcbiAgfVxuICByZXR1cm4gKFxuICAgIDxMb2NrQm9keVNjcm9sbCBlbmFibGVkPXttb2JpbGVTdGF0ZSAmJiBzaG93Q2FsZW5kYXJ9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9eydvdXRlciAnICsgcHJvcHMuY2xhc3NOYW1lfVxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAke0RhdGVQaWNrZXJEZWZhdWx0U3R5bGVzfTtcbiAgICAgICAgICAke0RhdGVQaWNrZXJEZmRzU3R5bGVzfTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyJywgeyAnZGF0ZVJhbmdlUGlja2VyV3JhcHBlci0tYWN0aXZlJzogc2hvd0NhbGVuZGFyIH0pfT5cbiAgICAgICAgICB7bW9iaWxlU3RhdGUgJiYgc2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyX190aXRsZVwiPntwcm9wcy5sYWJlbHMuaGVhZGVyfTwvaDI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlcldyYXBwZXJfX2Nsb3NlXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NhbGVuZGFyKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgPENsb3NlIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9jb250YWluZXI6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfb3Blbjogc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZXJyb3JCb3JkZXI6ICFwcm9wcy52YWxpZCAmJiAhc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2ZvY3VzX291dDogZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtzdGFydENhbGVuZGFyQ2xpY2tlZH1cbiAgICAgICAgICAgICAgcmVmPXtjbG9zZUV4Y2VwdGlvbkRpdk91dH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2xhYmVsXCI+e3Byb3BzLmxhYmVscy5zdGFydH08L2xhYmVsPlxuICAgICAgICAgICAgICB7IXByb3BzLmhpZGVJY29uICYmIDxDYWxlbmRhck91dGJvdW5kIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiByZWY9e2Nsb3NlRXhjZXB0aW9uSW1nT3V0fSAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtzdGFydERhdGUgPyBzdGFydERhdGUuZm9ybWF0KCdkZGQgREQvTU0nKSA6ICcnfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICBkYXRlcGlja2VyX2NvbnRhaW5lcjogdHJ1ZSxcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9vcGVuOiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19vbmVXYXk6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZGlzYWJsZWQ6IHByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnZGF0ZUlucHV0c19fZGlzYWJsZWQtLWFjdGl2ZSc6IHNob3dDYWxlbmRhciAmJiBwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZXJyb3JCb3JkZXI6ICFwcm9wcy52YWxpZCAmJiAhc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX25vbmZvY3VzOiBmb2N1c2VkSW5wdXQgPT09ICdzdGFydERhdGUnICYmIHNob3dDYWxlbmRhciAmJiAhcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2ZvY3VzX3JldDogZm9jdXNlZElucHV0ID09PSAnZW5kRGF0ZScgJiYgc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGVuZERhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19faGlkZUljb246IHByb3BzLmhpZGVJY29uLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17ZW5kQ2FsZW5kYXJDbGlja2VkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19fbGFiZWxcIj57cHJvcHMubGFiZWxzLmVuZH08L2xhYmVsPlxuICAgICAgICAgICAgICB7IXByb3BzLmhpZGVJY29uICYmIDxDYWxlbmRhclJldHVybiBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pY29uXCIgLz59XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInRvRGF0ZVwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e2VuZERhdGUgPyBlbmREYXRlLmZvcm1hdCgnZGRkIEREL01NJykgOiAnJ31cbiAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5lbmREYXRlRGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmICFwcm9wcy5lbmREYXRlRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPERheVBpY2tlclJhbmdlQ29udHJvbGxlclxuICAgICAgICAgICAgICBvbk5leHRNb250aENsaWNrPXtwcm9wcy5vbk5leHRNb250aENsaWNrfVxuICAgICAgICAgICAgICBvblByZXZNb250aENsaWNrPXtwcm9wcy5vblByZXZNb250aENsaWNrfVxuICAgICAgICAgICAgICAvLyBSZXF1aXJlZCBwcm9wc1xuICAgICAgICAgICAgICBvbkRhdGVzQ2hhbmdlPXsoeyBzdGFydERhdGUsIGVuZERhdGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFN0YXJ0RGF0ZShzdGFydERhdGUpXG4gICAgICAgICAgICAgICAgc2V0RW5kRGF0ZShlbmREYXRlKVxuICAgICAgICAgICAgICAgIHByb3BzLm9uRGF0ZUNoYW5nZShnZXRLZXlTdHIoc3RhcnREYXRlKSwgZ2V0S2V5U3RyKGVuZERhdGUpKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBmb2N1c2VkSW5wdXQ9e2ZvY3VzZWRJbnB1dH1cbiAgICAgICAgICAgICAgc3RhcnREYXRlPXtzdGFydERhdGV9XG4gICAgICAgICAgICAgIGVuZERhdGU9e2VuZERhdGV9XG4gICAgICAgICAgICAgIG9uRm9jdXNDaGFuZ2U9eyhmb2N1c2VkSW5wdXQ6IEZvY3VzZWRJbnB1dFNoYXBlIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEZvY3VzZWRJbnB1dChmb2N1c2VkSW5wdXQgfHwgJ3N0YXJ0RGF0ZScpXG4gICAgICAgICAgICAgICAgc2V0U2hvd0NhbGVuZGFyKCEhZm9jdXNlZElucHV0KVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvLyBXZSB1c2UgcGhyYXNlcyB0byBkaXNhYmxlIGV4dHJhIHN0dWZmIGZyb20gYXJpYS1sYWJlbFxuICAgICAgICAgICAgICBwaHJhc2VzPXtcbiAgICAgICAgICAgICAgICB7IGNob29zZUF2YWlsYWJsZVN0YXJ0RGF0ZTogKGE6IGFueSkgPT4gYS5kYXRlLCBjaG9vc2VBdmFpbGFibGVFbmREYXRlOiAoYTogYW55KSA9PiBhLmRhdGUgfSBhcyBhbnlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBtaW5pbXVtTmlnaHRzPXttaW5pbXVtTmlnaHRzKCl9XG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uPXttb2JpbGVTdGF0ZSA/ICd2ZXJ0aWNhbFNjcm9sbGFibGUnIDogJ2hvcml6b250YWwnfVxuICAgICAgICAgICAgICB7Li4uc2hhcmVkQ3VzdG9tUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dDYWxlbmRhciAmJiBwcm9wcy5lbmREYXRlRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPERheVBpY2tlclNpbmdsZURhdGVDb250cm9sbGVyXG4gICAgICAgICAgICAgIC8vIFJlcXVpcmVkIHByb3BzXG4gICAgICAgICAgICAgIG9uRGF0ZUNoYW5nZT17KGRhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRTdGFydERhdGUoZGF0ZSlcbiAgICAgICAgICAgICAgICBzZXRFbmREYXRlKGRhdGUpXG4gICAgICAgICAgICAgICAgcHJvcHMub25EYXRlQ2hhbmdlKGdldEtleVN0cihkYXRlKSwgbnVsbClcbiAgICAgICAgICAgICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uRm9jdXNDaGFuZ2U9eygpID0+IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgZm9jdXNlZFxuICAgICAgICAgICAgICBkYXRlPXtzdGFydERhdGV9XG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uPXttb2JpbGVTdGF0ZSA/ICd2ZXJ0aWNhbFNjcm9sbGFibGUnIDogJ2hvcml6b250YWwnfVxuICAgICAgICAgICAgICB7Li4uc2hhcmVkQ3VzdG9tUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Mb2NrQm9keVNjcm9sbD5cbiAgKVxufVxuZnVuY3Rpb24gZ2V0S2V5U3RyKG06IE1vbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIG0gJiYgbS5mb3JtYXQoJ1lZWVktTU0tREQnKVxufVxuZnVuY3Rpb24gdG9Nb21lbnQobjogc3RyaW5nIHwgbnVsbCk6IE1vbWVudCB8IG51bGwge1xuICByZXR1cm4gbiA/IG1vbWVudChuLCAnWVlZWS1NTS1ERCcpIDogbnVsbFxufVxuZnVuY3Rpb24gYnVpbGRNYXAoZGF0ZXM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IG1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9XG4gIGlmICghZGF0ZXMpIHtcbiAgICByZXR1cm4gbWFwXG4gIH1cbiAgZm9yIChjb25zdCBkIG9mIGRhdGVzKSB7XG4gICAgbWFwW2RdID0gMVxuICB9XG4gIHJldHVybiBtYXBcbn1cbmV4cG9ydCBkZWZhdWx0IERhdGVSYW5nZVBpY2tlclxuIl19 */")
|
|
157
|
-
}, (0, _react2.jsx)("div", {
|
|
158
|
-
className: (0, _classnames.default)('dateRangePickerWrapper', {
|
|
159
|
-
'dateRangePickerWrapper--active': showCalendar
|
|
160
|
-
})
|
|
161
|
-
}, mobileState && showCalendar && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("h2", {
|
|
162
|
-
className: "dateRangePickerWrapper__title"
|
|
163
|
-
}, props.labels.header), (0, _react2.jsx)("span", {
|
|
164
|
-
className: "dateRangePickerWrapper__close",
|
|
165
|
-
onClick: () => setShowCalendar(false)
|
|
166
|
-
}, (0, _react2.jsx)(_icons.Close, null))), (0, _react2.jsx)("div", {
|
|
167
|
-
className: (0, _classnames.default)({
|
|
168
|
-
datepicker_container: true,
|
|
169
|
-
datepicker_open: showCalendar
|
|
170
|
-
})
|
|
171
|
-
}, (0, _react2.jsx)("div", {
|
|
172
|
-
className: (0, _classnames.default)({
|
|
173
|
-
dateInputs: true,
|
|
174
|
-
dateInputs__errorBorder: !props.valid && !showCalendar,
|
|
175
|
-
dateInputs__focus_out: focusedInput === 'startDate' && showCalendar,
|
|
176
|
-
dateInputs__nonfocus: focusedInput === 'endDate' && showCalendar,
|
|
177
|
-
fromDate: true,
|
|
178
|
-
dateInputs__hideIcon: props.hideIcon
|
|
205
|
+
formatCaption: date => date.toLocaleDateString(props.locale || 'en', {
|
|
206
|
+
month: 'long',
|
|
207
|
+
year: 'numeric'
|
|
179
208
|
}),
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}, (0, _react2.jsx)("label", {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
className: "dateInputs__input",
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
209
|
+
formatDay: date => String(date.getDate())
|
|
210
|
+
}), [props.locale]);
|
|
211
|
+
const daySizeCss = /*#__PURE__*/(0, _react2.css)("--rdp-cell-size:", size, "px;" + (process.env.NODE_ENV === "production" ? "" : ";label:daySizeCss;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Sd0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/OiBzdHJpbmdcbiAgaW5mb0xhYmVsPzogc3RyaW5nXG4gIHN0YXJ0RGF0ZXM6IElEYXRlTGVnXG4gIGVuZERhdGVzOiBJRGF0ZUxlZ1xuICBsYWJlbHM6IElEYXRlUmFuZ2VQaWNrZXJMYWJlbHNcbiAgb25OZXh0TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgb25QcmV2TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgbnVtYmVyT2ZNb2JpbGVNb250aHM/OiBudW1iZXJcbiAgaGlkZUljb24/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUxlZyB7XG4gIGluaXRpYWw6IHN0cmluZyB8IG51bGxcbiAgbWF4RGF0ZTogc3RyaW5nXG4gIG1pbkRhdGU6IHN0cmluZ1xuICBkaXNhYmxlZERhdGVzPzogc3RyaW5nW11cbiAgb2ZmZXJEYXRlcz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlckxhYmVscyB7XG4gIHN0YXJ0OiBzdHJpbmdcbiAgZW5kOiBzdHJpbmdcbiAgaGVhZGVyOiBzdHJpbmdcbiAgaW5mbz86IHN0cmluZ1xufVxuXG4vLyAtLS0gRGF0ZSBoZWxwZXJzIChyZXBsYWNlIG1vbWVudCkgLS0tXG5cbmZ1bmN0aW9uIHRvSVNPU3RyKGQ6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghZCkgcmV0dXJuIG51bGxcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5fS0ke219LSR7ZGF5fWBcbn1cblxuZnVuY3Rpb24gdG9EYXRlKHM6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gIGlmICghcykgcmV0dXJuIG51bGxcbiAgY29uc3QgW3ksIG0sIGRdID0gcy5zcGxpdCgnLScpLm1hcChOdW1iZXIpXG4gIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlzcGxheURhdGUoZGF0ZTogRGF0ZSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd2Vla2RheSA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSB8fCAnZW4nLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSlcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgcmV0dXJuIGAke3dlZWtkYXl9ICR7ZGF5fS8ke21vbnRofWBcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0KGxvY2FsZTogc3RyaW5nKTogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB7XG4gIGNvbnN0IHN1bmRheUxvY2FsZXMgPSBbJ2VuJywgJ2VuLVVTJywgJ2phJywgJ2tvJywgJ3poJ11cbiAgY29uc3QgbGFuZyA9IGxvY2FsZS5zcGxpdCgnLScpWzBdXG4gIHJldHVybiBzdW5kYXlMb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkgfHwgc3VuZGF5TG9jYWxlcy5pbmNsdWRlcyhsYW5nKSA/IDAgOiAxXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWFwKGRhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBtYXA6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fVxuICBpZiAoIWRhdGVzKSByZXR1cm4gbWFwXG4gIGZvciAoY29uc3QgZCBvZiBkYXRlcykge1xuICAgIG1hcFtkXSA9IDFcbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbi8vIC0tLSBDb21wb25lbnQgLS0tXG5cbmNvbnN0IERhdGVSYW5nZVBpY2tlciA9IChwcm9wczogSURhdGVSYW5nZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGFydERhdGUsIHNldFN0YXJ0RGF0ZV0gPSB1c2VTdGF0ZSh0b0RhdGUocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgY29uc3QgW2VuZERhdGUsIHNldEVuZERhdGVdID0gdXNlU3RhdGUodG9EYXRlKHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb2N1c2VkSW5wdXQsIHNldEZvY3VzZWRJbnB1dF0gPSB1c2VTdGF0ZTxGb2N1c2VkSW5wdXQ+KCdzdGFydERhdGUnKVxuICBjb25zdCBbZGlzcGxheU1vbnRoLCBzZXREaXNwbGF5TW9udGhdID0gdXNlU3RhdGU8RGF0ZT4odG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkgfHwgbmV3IERhdGUoKSlcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCB7IG51bWJlck9mTW9udGhzLCBtb2JpbGVTdGF0ZSwgc2l6ZSB9ID0gdXNlTWVkaWEoXG4gICAgWycobWF4LXdpZHRoOiA2NGVtKScsICcobWluLXdpZHRoOiA3OC4wNjNlbSknXSxcbiAgICBbXG4gICAgICB7IG51bWJlck9mTW9udGhzOiAxLCBtb2JpbGVTdGF0ZTogdHJ1ZSwgc2l6ZTogNDAgfSxcbiAgICAgIHsgbnVtYmVyT2ZNb250aHM6IDIsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfSxcbiAgICBdLFxuICAgIHsgbnVtYmVyT2ZNb250aHM6IDEsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gICAgc2V0RW5kRGF0ZSh0b0RhdGUocHJvcHMuZW5kRGF0ZXMuaW5pdGlhbCkpXG4gIH0sIFtwcm9wcy5zdGFydERhdGVzLmluaXRpYWwsIHByb3BzLmVuZERhdGVzLmluaXRpYWxdKVxuXG4gIC8vIEhhbmRsZSBjbGlja3Mgb3V0c2lkZSB0aGUgY2FsZW5kYXIgdG8gY2xvc2UgaXRcbiAgY29uc3Qgb25EYXRlQ2hhbmdlUmVmID0gdXNlUmVmKHByb3BzLm9uRGF0ZUNoYW5nZSlcbiAgb25EYXRlQ2hhbmdlUmVmLmN1cnJlbnQgPSBwcm9wcy5vbkRhdGVDaGFuZ2VcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd0NhbGVuZGFyKSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudCAmJiAhd3JhcHBlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICAgICAgICBvbkRhdGVDaGFuZ2VSZWYuY3VycmVudCh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihlbmREYXRlKSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFtzaG93Q2FsZW5kYXIsIHN0YXJ0RGF0ZSwgZW5kRGF0ZV0pXG5cbiAgY29uc3Qgc3RhcnRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gIH1cblxuICBjb25zdCBlbmRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ2VuZERhdGUnKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQ2FsZW5kYXJJbmZvID0gKCkgPT5cbiAgICBwcm9wcy5pbmZvTGFiZWwgPyAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19fbGVnZW5kXCIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19faW5mb1wiPntwcm9wcy5pbmZvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSA6IG51bGxcblxuICAvLyBNZW1vaXplZCBkaXNhYmxlZCBkYXRlcyBtYXBcbiAgY29uc3QgZGlzYWJsZWREYXRlc01hcCA9IG1pbmlNb2l6ZShcbiAgICAoXG4gICAgICBmb2N1c2VkSW5wdXQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBzdHJpbmcgfCBudWxsLFxuICAgICAgc3RhcnREaXNhYmxlZERhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGVuZERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgKSA9PlxuICAgICAgYnVpbGRNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnXG4gICAgICAgICAgPyBzdGFydERpc2FibGVkRGF0ZXNcbiAgICAgICAgICA6IChzdGFydERpc2FibGVkRGF0ZXMgfHwgW10pLmZpbHRlcigoZCkgPT4gZCA8IChzdGFydCB8fCAnJykpLmNvbmNhdChlbmREaXNhYmxlZERhdGVzIHx8IFtdKVxuICAgICAgKVxuICApXG5cbiAgY29uc3QgaXNEYXlEaXNhYmxlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGVTdHIgPSB0b0lTT1N0cihzdGFydERhdGUpXG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRGF0ZXNNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCxcbiAgICAgICAgc3RhcnREYXRlU3RyLFxuICAgICAgICBwcm9wcy5zdGFydERhdGVzLmRpc2FibGVkRGF0ZXMsXG4gICAgICAgIHByb3BzLmVuZERhdGVzLmRpc2FibGVkRGF0ZXNcbiAgICAgIClcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgZCA9IGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gcHJvcHMuc3RhcnREYXRlcyA6IHByb3BzLmVuZERhdGVzXG4gICAgICBjb25zdCBtaW4gPSBwcm9wcy5zdGFydERhdGVzLm1pbkRhdGVcbiAgICAgIGlmIChkaXNhYmxlZFtkYXRlU3RyXSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChtaW4gJiYgZGF0ZVN0ciA8IG1pbikgcmV0dXJuIHRydWVcbiAgICAgIGlmIChkLm1heERhdGUgJiYgZGF0ZVN0ciA+IGQubWF4RGF0ZSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzdGFydERhdGVTdHIgJiYgc3RhcnREYXRlU3RyIDwgZGF0ZVN0ciAmJiBkYXRlU3RyIDwgcHJvcHMuZW5kRGF0ZXMubWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcbiAgICBbZm9jdXNlZElucHV0LCBzdGFydERhdGUsIHByb3BzLnN0YXJ0RGF0ZXMsIHByb3BzLmVuZERhdGVzLCBkaXNhYmxlZERhdGVzTWFwXVxuICApXG5cbiAgLy8gTWVtb2l6ZWQgb2ZmZXIgZGF0ZXMgbWFwXG4gIGNvbnN0IG9mZmVyRGF0ZXNNYXAgPSBtaW5pTW9pemUoXG4gICAgKGZvY3VzZWRJbnB1dDogc3RyaW5nLCBzdGFydE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQsIGVuZE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQpID0+XG4gICAgICBidWlsZE1hcChmb2N1c2VkSW5wdXQgIT09ICdlbmREYXRlJyA/IHN0YXJ0T2ZmZXJzIDogZW5kT2ZmZXJzKVxuICApXG5cbiAgY29uc3QgaXNPZmZlckRheSA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBvZmZlckRhdGVzTWFwKGZvY3VzZWRJbnB1dCwgcHJvcHMuc3RhcnREYXRlcy5vZmZlckRhdGVzLCBwcm9wcy5lbmREYXRlcy5vZmZlckRhdGVzKVxuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA/ICEhbWFwW2RhdGVTdHJdIDogZmFsc2VcbiAgICB9LFxuICAgIFtmb2N1c2VkSW5wdXQsIHByb3BzLnN0YXJ0RGF0ZXMub2ZmZXJEYXRlcywgcHJvcHMuZW5kRGF0ZXMub2ZmZXJEYXRlcywgb2ZmZXJEYXRlc01hcF1cbiAgKVxuXG4gIGNvbnN0IGRlZmF1bHRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChtb2JpbGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRvRGF0ZShwcm9wcy5zdGFydERhdGVzLm1pbkRhdGUpIHx8IG5ldyBEYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0RGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgLy8gT25seSBjb21wdXRlIG9uIG1vdW50IC8gd2hlbiBtb2JpbGUgc3RhdGUgY2hhbmdlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW21vYmlsZVN0YXRlXSlcblxuICBjb25zdCBoYW5kbGVNb250aENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChtb250aDogRGF0ZSkgPT4ge1xuICAgICAgaWYgKG1vbnRoID4gZGlzcGxheU1vbnRoKSB7XG4gICAgICAgIHByb3BzLm9uTmV4dE1vbnRoQ2xpY2s/LigpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5vblByZXZNb250aENsaWNrPy4oKVxuICAgICAgfVxuICAgICAgc2V0RGlzcGxheU1vbnRoKG1vbnRoKVxuICAgIH0sXG4gICAgW2Rpc3BsYXlNb250aCwgcHJvcHMub25OZXh0TW9udGhDbGljaywgcHJvcHMub25QcmV2TW9udGhDbGlja11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZURheUNsaWNrID0gKGRheTogRGF0ZSkgPT4ge1xuICAgIGlmIChpc0RheURpc2FibGVkKGRheSkpIHJldHVyblxuXG4gICAgaWYgKHByb3BzLmVuZERhdGVEaXNhYmxlZCkge1xuICAgICAgc2V0U3RhcnREYXRlKGRheSlcbiAgICAgIHNldEVuZERhdGUoZGF5KVxuICAgICAgcHJvcHMub25EYXRlQ2hhbmdlKHRvSVNPU3RyKGRheSksIG51bGwpXG4gICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJykge1xuICAgICAgc2V0U3RhcnREYXRlKGRheSlcbiAgICAgIHNldEVuZERhdGUobnVsbClcbiAgICAgIHNldEZvY3VzZWRJbnB1dCgnZW5kRGF0ZScpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoZGF5KSwgbnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RW5kRGF0ZShkYXkpXG4gICAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoc3RhcnREYXRlKSwgdG9JU09TdHIoZGF5KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBpc1NlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGRhdGU6IERhdGUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgcmV0dXJuIGRhdGVTdHIgPT09IHRvSVNPU3RyKHN0YXJ0RGF0ZSkgfHwgZGF0ZVN0ciA9PT0gdG9JU09TdHIoZW5kRGF0ZSlcbiAgICB9LFxuICAgIFtzdGFydERhdGUsIGVuZERhdGVdXG4gIClcblxuICBjb25zdCBpc1JhbmdlTWlkZGxlID0gdXNlQ2FsbGJhY2soXG4gICAgKGRhdGU6IERhdGUpID0+IHtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSByZXR1cm4gZmFsc2VcbiAgICAgIHJldHVybiBkYXRlID4gc3RhcnREYXRlICYmIGRhdGUgPCBlbmREYXRlXG4gICAgfSxcbiAgICBbc3RhcnREYXRlLCBlbmREYXRlXVxuICApXG5cbiAgLy8gQ3VzdG9tIERheUNvbnRlbnQgdGhhdCBzZXRzIGFyaWEtbGFiZWwgdG8gdGhlIElTTyBkYXRlIChmb3IgdGVzdGFiaWxpdHkgJiBhMTF5KVxuICBjb25zdCBEYXlDb250ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIERheUNvbnRlbnRDb21wb25lbnQoeyBkYXRlIH06IERheUNvbnRlbnRQcm9wcykge1xuICAgICAgcmV0dXJuIDw+e2RhdGUuZ2V0RGF0ZSgpfTwvPlxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgZm9ybWF0dGVycyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGZvcm1hdFdlZWtkYXlOYW1lOiAoZGF0ZTogRGF0ZSkgPT4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcocHJvcHMubG9jYWxlIHx8ICdlbicsIHsgd2Vla2RheTogJ3Nob3J0JyB9KSxcbiAgICAgIGZvcm1hdENhcHRpb246IChkYXRlOiBEYXRlKSA9PiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhwcm9wcy5sb2NhbGUgfHwgJ2VuJywgeyBtb250aDogJ2xvbmcnLCB5ZWFyOiAnbnVtZXJpYycgfSksXG4gICAgICBmb3JtYXREYXk6IChkYXRlOiBEYXRlKSA9PiBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLFxuICAgIH0pLFxuICAgIFtwcm9wcy5sb2NhbGVdXG4gIClcblxuICBjb25zdCBkYXlTaXplQ3NzID0gY3NzYFxuICAgIC0tcmRwLWNlbGwtc2l6ZTogJHtzaXplfXB4O1xuICBgXG5cbiAgcmV0dXJuIChcbiAgICA8TG9ja0JvZHlTY3JvbGwgZW5hYmxlZD17bW9iaWxlU3RhdGUgJiYgc2hvd0NhbGVuZGFyfT5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBjbGFzc05hbWU9eydvdXRlciAnICsgKHByb3BzLmNsYXNzTmFtZSB8fCAnJyl9XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICR7ZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlc307XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnZGF0ZVJhbmdlUGlja2VyV3JhcHBlcicsIHsgJ2RhdGVSYW5nZVBpY2tlcldyYXBwZXItLWFjdGl2ZSc6IHNob3dDYWxlbmRhciB9KX0+XG4gICAgICAgICAge21vYmlsZVN0YXRlICYmIHNob3dDYWxlbmRhciAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VyV3JhcHBlcl9fdGl0bGVcIj57cHJvcHMubGFiZWxzLmhlYWRlcn08L2gyPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyX19jbG9zZVwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dDYWxlbmRhcihmYWxzZSl9PlxuICAgICAgICAgICAgICAgIDxDbG9zZSAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfY29udGFpbmVyOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlcGlja2VyX29wZW46IHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Vycm9yQm9yZGVyOiAhcHJvcHMudmFsaWQgJiYgIXNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19mb2N1c19vdXQ6IGZvY3VzZWRJbnB1dCA9PT0gJ3N0YXJ0RGF0ZScgJiYgc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX25vbmZvY3VzOiBmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZnJvbURhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19faGlkZUljb246IHByb3BzLmhpZGVJY29uLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17c3RhcnRDYWxlbmRhckNsaWNrZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19sYWJlbFwiPntwcm9wcy5sYWJlbHMuc3RhcnR9PC9sYWJlbD5cbiAgICAgICAgICAgICAgeyFwcm9wcy5oaWRlSWNvbiAmJiA8Q2FsZW5kYXJPdXRib3VuZCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pY29uXCIgLz59XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZyb21EYXRlXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3RhcnREYXRlID8gZm9ybWF0RGlzcGxheURhdGUoc3RhcnREYXRlLCBwcm9wcy5sb2NhbGUpIDogJyd9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfY29udGFpbmVyOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlcGlja2VyX29wZW46IHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX29uZVdheTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19kaXNhYmxlZDogcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgICdkYXRlSW5wdXRzX19kaXNhYmxlZC0tYWN0aXZlJzogc2hvd0NhbGVuZGFyICYmIHByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19lcnJvckJvcmRlcjogIXByb3BzLnZhbGlkICYmICFzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ3N0YXJ0RGF0ZScgJiYgc2hvd0NhbGVuZGFyICYmICFwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZm9jdXNfcmV0OiBmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlbmRDYWxlbmRhckNsaWNrZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19sYWJlbFwiPntwcm9wcy5sYWJlbHMuZW5kfTwvbGFiZWw+XG4gICAgICAgICAgICAgIHshcHJvcHMuaGlkZUljb24gJiYgPENhbGVuZGFyUmV0dXJuIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwidG9EYXRlXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17ZW5kRGF0ZSA/IGZvcm1hdERpc3BsYXlEYXRlKGVuZERhdGUsIHByb3BzLmxvY2FsZSkgOiAnJ31cbiAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5lbmREYXRlRGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEYXlQaWNrZXJcbiAgICAgICAgICAgICAgICBjc3M9e2RheVNpemVDc3N9XG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZNb250aHM9e251bWJlck9mTW9udGhzfVxuICAgICAgICAgICAgICAgIG1vbnRoPXtkaXNwbGF5TW9udGh9XG4gICAgICAgICAgICAgICAgZGVmYXVsdE1vbnRoPXtkZWZhdWx0TW9udGh9XG4gICAgICAgICAgICAgICAgb25Nb250aENoYW5nZT17aGFuZGxlTW9udGhDaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25EYXlDbGljaz17aGFuZGxlRGF5Q2xpY2t9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGF5RGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50cz17e1xuICAgICAgICAgICAgICAgICAgSWNvbkxlZnQ6ICgpID0+IDxMZWZ0TGluayBhcmlhLWxhYmVsPVwiUHJldmlvdXMgTW9udGhcIiAvPixcbiAgICAgICAgICAgICAgICAgIEljb25SaWdodDogKCkgPT4gPFJpZ2h0TGluayBhcmlhLWxhYmVsPVwiTmV4dCBNb250aFwiIC8+LFxuICAgICAgICAgICAgICAgICAgRGF5Q29udGVudCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGZvcm1hdHRlcnM9e2Zvcm1hdHRlcnN9XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzPXt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX3N0YXJ0OiAoZDogRGF0ZSkgPT4gdG9JU09TdHIoZCkgPT09IHRvSVNPU3RyKHN0YXJ0RGF0ZSksXG4gICAgICAgICAgICAgICAgICByYW5nZV9lbmQ6IChkOiBEYXRlKSA9PiAhcHJvcHMuZW5kRGF0ZURpc2FibGVkICYmIHRvSVNPU3RyKGQpID09PSB0b0lTT1N0cihlbmREYXRlKSxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogaXNSYW5nZU1pZGRsZSxcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiBpc09mZmVyRGF5LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzQ2xhc3NOYW1lcz17e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWQnLFxuICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RhcnQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgcmFuZ2VfZW5kOiAnQ2FsZW5kYXJEYXlfX3NlbGVjdGVkX2VuZCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9taWRkbGU6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfc3BhbicsXG4gICAgICAgICAgICAgICAgICBoaWdobGlnaHRlZDogJ0NhbGVuZGFyRGF5X19oaWdobGlnaHRlZF9jYWxlbmRhcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBwYWdlZE5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnRzT249e2dldFdlZWtTdGFydChwcm9wcy5sb2NhbGUgfHwgJ2VuJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtyZW5kZXJDYWxlbmRhckluZm8oKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Mb2NrQm9keVNjcm9sbD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlUmFuZ2VQaWNrZXJcbiJdfQ== */");
|
|
212
|
+
return (0, _jsxRuntime.jsx)(_LockBodyScroll.default, {
|
|
213
|
+
enabled: mobileState && showCalendar,
|
|
214
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
215
|
+
ref: wrapperRef,
|
|
216
|
+
className: 'outer ' + (props.className || ''),
|
|
217
|
+
css: /*#__PURE__*/(0, _react2.css)(_DateRangePicker.dateRangePickerDfdsStyles, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZSZ0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/OiBzdHJpbmdcbiAgaW5mb0xhYmVsPzogc3RyaW5nXG4gIHN0YXJ0RGF0ZXM6IElEYXRlTGVnXG4gIGVuZERhdGVzOiBJRGF0ZUxlZ1xuICBsYWJlbHM6IElEYXRlUmFuZ2VQaWNrZXJMYWJlbHNcbiAgb25OZXh0TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgb25QcmV2TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgbnVtYmVyT2ZNb2JpbGVNb250aHM/OiBudW1iZXJcbiAgaGlkZUljb24/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUxlZyB7XG4gIGluaXRpYWw6IHN0cmluZyB8IG51bGxcbiAgbWF4RGF0ZTogc3RyaW5nXG4gIG1pbkRhdGU6IHN0cmluZ1xuICBkaXNhYmxlZERhdGVzPzogc3RyaW5nW11cbiAgb2ZmZXJEYXRlcz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlckxhYmVscyB7XG4gIHN0YXJ0OiBzdHJpbmdcbiAgZW5kOiBzdHJpbmdcbiAgaGVhZGVyOiBzdHJpbmdcbiAgaW5mbz86IHN0cmluZ1xufVxuXG4vLyAtLS0gRGF0ZSBoZWxwZXJzIChyZXBsYWNlIG1vbWVudCkgLS0tXG5cbmZ1bmN0aW9uIHRvSVNPU3RyKGQ6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghZCkgcmV0dXJuIG51bGxcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5fS0ke219LSR7ZGF5fWBcbn1cblxuZnVuY3Rpb24gdG9EYXRlKHM6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gIGlmICghcykgcmV0dXJuIG51bGxcbiAgY29uc3QgW3ksIG0sIGRdID0gcy5zcGxpdCgnLScpLm1hcChOdW1iZXIpXG4gIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlzcGxheURhdGUoZGF0ZTogRGF0ZSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd2Vla2RheSA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSB8fCAnZW4nLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSlcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgcmV0dXJuIGAke3dlZWtkYXl9ICR7ZGF5fS8ke21vbnRofWBcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0KGxvY2FsZTogc3RyaW5nKTogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB7XG4gIGNvbnN0IHN1bmRheUxvY2FsZXMgPSBbJ2VuJywgJ2VuLVVTJywgJ2phJywgJ2tvJywgJ3poJ11cbiAgY29uc3QgbGFuZyA9IGxvY2FsZS5zcGxpdCgnLScpWzBdXG4gIHJldHVybiBzdW5kYXlMb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkgfHwgc3VuZGF5TG9jYWxlcy5pbmNsdWRlcyhsYW5nKSA/IDAgOiAxXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWFwKGRhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBtYXA6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fVxuICBpZiAoIWRhdGVzKSByZXR1cm4gbWFwXG4gIGZvciAoY29uc3QgZCBvZiBkYXRlcykge1xuICAgIG1hcFtkXSA9IDFcbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbi8vIC0tLSBDb21wb25lbnQgLS0tXG5cbmNvbnN0IERhdGVSYW5nZVBpY2tlciA9IChwcm9wczogSURhdGVSYW5nZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGFydERhdGUsIHNldFN0YXJ0RGF0ZV0gPSB1c2VTdGF0ZSh0b0RhdGUocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgY29uc3QgW2VuZERhdGUsIHNldEVuZERhdGVdID0gdXNlU3RhdGUodG9EYXRlKHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb2N1c2VkSW5wdXQsIHNldEZvY3VzZWRJbnB1dF0gPSB1c2VTdGF0ZTxGb2N1c2VkSW5wdXQ+KCdzdGFydERhdGUnKVxuICBjb25zdCBbZGlzcGxheU1vbnRoLCBzZXREaXNwbGF5TW9udGhdID0gdXNlU3RhdGU8RGF0ZT4odG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkgfHwgbmV3IERhdGUoKSlcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCB7IG51bWJlck9mTW9udGhzLCBtb2JpbGVTdGF0ZSwgc2l6ZSB9ID0gdXNlTWVkaWEoXG4gICAgWycobWF4LXdpZHRoOiA2NGVtKScsICcobWluLXdpZHRoOiA3OC4wNjNlbSknXSxcbiAgICBbXG4gICAgICB7IG51bWJlck9mTW9udGhzOiAxLCBtb2JpbGVTdGF0ZTogdHJ1ZSwgc2l6ZTogNDAgfSxcbiAgICAgIHsgbnVtYmVyT2ZNb250aHM6IDIsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfSxcbiAgICBdLFxuICAgIHsgbnVtYmVyT2ZNb250aHM6IDEsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gICAgc2V0RW5kRGF0ZSh0b0RhdGUocHJvcHMuZW5kRGF0ZXMuaW5pdGlhbCkpXG4gIH0sIFtwcm9wcy5zdGFydERhdGVzLmluaXRpYWwsIHByb3BzLmVuZERhdGVzLmluaXRpYWxdKVxuXG4gIC8vIEhhbmRsZSBjbGlja3Mgb3V0c2lkZSB0aGUgY2FsZW5kYXIgdG8gY2xvc2UgaXRcbiAgY29uc3Qgb25EYXRlQ2hhbmdlUmVmID0gdXNlUmVmKHByb3BzLm9uRGF0ZUNoYW5nZSlcbiAgb25EYXRlQ2hhbmdlUmVmLmN1cnJlbnQgPSBwcm9wcy5vbkRhdGVDaGFuZ2VcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd0NhbGVuZGFyKSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudCAmJiAhd3JhcHBlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICAgICAgICBvbkRhdGVDaGFuZ2VSZWYuY3VycmVudCh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihlbmREYXRlKSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFtzaG93Q2FsZW5kYXIsIHN0YXJ0RGF0ZSwgZW5kRGF0ZV0pXG5cbiAgY29uc3Qgc3RhcnRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gIH1cblxuICBjb25zdCBlbmRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ2VuZERhdGUnKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQ2FsZW5kYXJJbmZvID0gKCkgPT5cbiAgICBwcm9wcy5pbmZvTGFiZWwgPyAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19fbGVnZW5kXCIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19faW5mb1wiPntwcm9wcy5pbmZvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSA6IG51bGxcblxuICAvLyBNZW1vaXplZCBkaXNhYmxlZCBkYXRlcyBtYXBcbiAgY29uc3QgZGlzYWJsZWREYXRlc01hcCA9IG1pbmlNb2l6ZShcbiAgICAoXG4gICAgICBmb2N1c2VkSW5wdXQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBzdHJpbmcgfCBudWxsLFxuICAgICAgc3RhcnREaXNhYmxlZERhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGVuZERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgKSA9PlxuICAgICAgYnVpbGRNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnXG4gICAgICAgICAgPyBzdGFydERpc2FibGVkRGF0ZXNcbiAgICAgICAgICA6IChzdGFydERpc2FibGVkRGF0ZXMgfHwgW10pLmZpbHRlcigoZCkgPT4gZCA8IChzdGFydCB8fCAnJykpLmNvbmNhdChlbmREaXNhYmxlZERhdGVzIHx8IFtdKVxuICAgICAgKVxuICApXG5cbiAgY29uc3QgaXNEYXlEaXNhYmxlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGVTdHIgPSB0b0lTT1N0cihzdGFydERhdGUpXG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRGF0ZXNNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCxcbiAgICAgICAgc3RhcnREYXRlU3RyLFxuICAgICAgICBwcm9wcy5zdGFydERhdGVzLmRpc2FibGVkRGF0ZXMsXG4gICAgICAgIHByb3BzLmVuZERhdGVzLmRpc2FibGVkRGF0ZXNcbiAgICAgIClcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgZCA9IGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gcHJvcHMuc3RhcnREYXRlcyA6IHByb3BzLmVuZERhdGVzXG4gICAgICBjb25zdCBtaW4gPSBwcm9wcy5zdGFydERhdGVzLm1pbkRhdGVcbiAgICAgIGlmIChkaXNhYmxlZFtkYXRlU3RyXSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChtaW4gJiYgZGF0ZVN0ciA8IG1pbikgcmV0dXJuIHRydWVcbiAgICAgIGlmIChkLm1heERhdGUgJiYgZGF0ZVN0ciA+IGQubWF4RGF0ZSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzdGFydERhdGVTdHIgJiYgc3RhcnREYXRlU3RyIDwgZGF0ZVN0ciAmJiBkYXRlU3RyIDwgcHJvcHMuZW5kRGF0ZXMubWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcbiAgICBbZm9jdXNlZElucHV0LCBzdGFydERhdGUsIHByb3BzLnN0YXJ0RGF0ZXMsIHByb3BzLmVuZERhdGVzLCBkaXNhYmxlZERhdGVzTWFwXVxuICApXG5cbiAgLy8gTWVtb2l6ZWQgb2ZmZXIgZGF0ZXMgbWFwXG4gIGNvbnN0IG9mZmVyRGF0ZXNNYXAgPSBtaW5pTW9pemUoXG4gICAgKGZvY3VzZWRJbnB1dDogc3RyaW5nLCBzdGFydE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQsIGVuZE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQpID0+XG4gICAgICBidWlsZE1hcChmb2N1c2VkSW5wdXQgIT09ICdlbmREYXRlJyA/IHN0YXJ0T2ZmZXJzIDogZW5kT2ZmZXJzKVxuICApXG5cbiAgY29uc3QgaXNPZmZlckRheSA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBvZmZlckRhdGVzTWFwKGZvY3VzZWRJbnB1dCwgcHJvcHMuc3RhcnREYXRlcy5vZmZlckRhdGVzLCBwcm9wcy5lbmREYXRlcy5vZmZlckRhdGVzKVxuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA/ICEhbWFwW2RhdGVTdHJdIDogZmFsc2VcbiAgICB9LFxuICAgIFtmb2N1c2VkSW5wdXQsIHByb3BzLnN0YXJ0RGF0ZXMub2ZmZXJEYXRlcywgcHJvcHMuZW5kRGF0ZXMub2ZmZXJEYXRlcywgb2ZmZXJEYXRlc01hcF1cbiAgKVxuXG4gIGNvbnN0IGRlZmF1bHRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChtb2JpbGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRvRGF0ZShwcm9wcy5zdGFydERhdGVzLm1pbkRhdGUpIHx8IG5ldyBEYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0RGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgLy8gT25seSBjb21wdXRlIG9uIG1vdW50IC8gd2hlbiBtb2JpbGUgc3RhdGUgY2hhbmdlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW21vYmlsZVN0YXRlXSlcblxuICBjb25zdCBoYW5kbGVNb250aENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChtb250aDogRGF0ZSkgPT4ge1xuICAgICAgaWYgKG1vbnRoID4gZGlzcGxheU1vbnRoKSB7XG4gICAgICAgIHByb3BzLm9uTmV4dE1vbnRoQ2xpY2s/LigpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5vblByZXZNb250aENsaWNrPy4oKVxuICAgICAgfVxuICAgICAgc2V0RGlzcGxheU1vbnRoKG1vbnRoKVxuICAgIH0sXG4gICAgW2Rpc3BsYXlNb250aCwgcHJvcHMub25OZXh0TW9udGhDbGljaywgcHJvcHMub25QcmV2TW9udGhDbGlja11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZURheUNsaWNrID0gKGRheTogRGF0ZSkgPT4ge1xuICAgIGlmIChpc0RheURpc2FibGVkKGRheSkpIHJldHVyblxuXG4gICAgaWYgKHByb3BzLmVuZERhdGVEaXNhYmxlZCkge1xuICAgICAgc2V0U3RhcnREYXRlKGRheSlcbiAgICAgIHNldEVuZERhdGUoZGF5KVxuICAgICAgcHJvcHMub25EYXRlQ2hhbmdlKHRvSVNPU3RyKGRheSksIG51bGwpXG4gICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJykge1xuICAgICAgc2V0U3RhcnREYXRlKGRheSlcbiAgICAgIHNldEVuZERhdGUobnVsbClcbiAgICAgIHNldEZvY3VzZWRJbnB1dCgnZW5kRGF0ZScpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoZGF5KSwgbnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RW5kRGF0ZShkYXkpXG4gICAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoc3RhcnREYXRlKSwgdG9JU09TdHIoZGF5KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBpc1NlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGRhdGU6IERhdGUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgcmV0dXJuIGRhdGVTdHIgPT09IHRvSVNPU3RyKHN0YXJ0RGF0ZSkgfHwgZGF0ZVN0ciA9PT0gdG9JU09TdHIoZW5kRGF0ZSlcbiAgICB9LFxuICAgIFtzdGFydERhdGUsIGVuZERhdGVdXG4gIClcblxuICBjb25zdCBpc1JhbmdlTWlkZGxlID0gdXNlQ2FsbGJhY2soXG4gICAgKGRhdGU6IERhdGUpID0+IHtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSByZXR1cm4gZmFsc2VcbiAgICAgIHJldHVybiBkYXRlID4gc3RhcnREYXRlICYmIGRhdGUgPCBlbmREYXRlXG4gICAgfSxcbiAgICBbc3RhcnREYXRlLCBlbmREYXRlXVxuICApXG5cbiAgLy8gQ3VzdG9tIERheUNvbnRlbnQgdGhhdCBzZXRzIGFyaWEtbGFiZWwgdG8gdGhlIElTTyBkYXRlIChmb3IgdGVzdGFiaWxpdHkgJiBhMTF5KVxuICBjb25zdCBEYXlDb250ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIERheUNvbnRlbnRDb21wb25lbnQoeyBkYXRlIH06IERheUNvbnRlbnRQcm9wcykge1xuICAgICAgcmV0dXJuIDw+e2RhdGUuZ2V0RGF0ZSgpfTwvPlxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgZm9ybWF0dGVycyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGZvcm1hdFdlZWtkYXlOYW1lOiAoZGF0ZTogRGF0ZSkgPT4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcocHJvcHMubG9jYWxlIHx8ICdlbicsIHsgd2Vla2RheTogJ3Nob3J0JyB9KSxcbiAgICAgIGZvcm1hdENhcHRpb246IChkYXRlOiBEYXRlKSA9PiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhwcm9wcy5sb2NhbGUgfHwgJ2VuJywgeyBtb250aDogJ2xvbmcnLCB5ZWFyOiAnbnVtZXJpYycgfSksXG4gICAgICBmb3JtYXREYXk6IChkYXRlOiBEYXRlKSA9PiBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLFxuICAgIH0pLFxuICAgIFtwcm9wcy5sb2NhbGVdXG4gIClcblxuICBjb25zdCBkYXlTaXplQ3NzID0gY3NzYFxuICAgIC0tcmRwLWNlbGwtc2l6ZTogJHtzaXplfXB4O1xuICBgXG5cbiAgcmV0dXJuIChcbiAgICA8TG9ja0JvZHlTY3JvbGwgZW5hYmxlZD17bW9iaWxlU3RhdGUgJiYgc2hvd0NhbGVuZGFyfT5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBjbGFzc05hbWU9eydvdXRlciAnICsgKHByb3BzLmNsYXNzTmFtZSB8fCAnJyl9XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICR7ZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlc307XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnZGF0ZVJhbmdlUGlja2VyV3JhcHBlcicsIHsgJ2RhdGVSYW5nZVBpY2tlcldyYXBwZXItLWFjdGl2ZSc6IHNob3dDYWxlbmRhciB9KX0+XG4gICAgICAgICAge21vYmlsZVN0YXRlICYmIHNob3dDYWxlbmRhciAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VyV3JhcHBlcl9fdGl0bGVcIj57cHJvcHMubGFiZWxzLmhlYWRlcn08L2gyPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyX19jbG9zZVwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dDYWxlbmRhcihmYWxzZSl9PlxuICAgICAgICAgICAgICAgIDxDbG9zZSAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfY29udGFpbmVyOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlcGlja2VyX29wZW46IHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Vycm9yQm9yZGVyOiAhcHJvcHMudmFsaWQgJiYgIXNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19mb2N1c19vdXQ6IGZvY3VzZWRJbnB1dCA9PT0gJ3N0YXJ0RGF0ZScgJiYgc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX25vbmZvY3VzOiBmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZnJvbURhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19faGlkZUljb246IHByb3BzLmhpZGVJY29uLFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17c3RhcnRDYWxlbmRhckNsaWNrZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19sYWJlbFwiPntwcm9wcy5sYWJlbHMuc3RhcnR9PC9sYWJlbD5cbiAgICAgICAgICAgICAgeyFwcm9wcy5oaWRlSWNvbiAmJiA8Q2FsZW5kYXJPdXRib3VuZCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pY29uXCIgLz59XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZyb21EYXRlXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3RhcnREYXRlID8gZm9ybWF0RGlzcGxheURhdGUoc3RhcnREYXRlLCBwcm9wcy5sb2NhbGUpIDogJyd9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfY29udGFpbmVyOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlcGlja2VyX29wZW46IHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX29uZVdheTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19kaXNhYmxlZDogcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgICdkYXRlSW5wdXRzX19kaXNhYmxlZC0tYWN0aXZlJzogc2hvd0NhbGVuZGFyICYmIHByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19lcnJvckJvcmRlcjogIXByb3BzLnZhbGlkICYmICFzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ3N0YXJ0RGF0ZScgJiYgc2hvd0NhbGVuZGFyICYmICFwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZm9jdXNfcmV0OiBmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlbmRDYWxlbmRhckNsaWNrZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19sYWJlbFwiPntwcm9wcy5sYWJlbHMuZW5kfTwvbGFiZWw+XG4gICAgICAgICAgICAgIHshcHJvcHMuaGlkZUljb24gJiYgPENhbGVuZGFyUmV0dXJuIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwidG9EYXRlXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17ZW5kRGF0ZSA/IGZvcm1hdERpc3BsYXlEYXRlKGVuZERhdGUsIHByb3BzLmxvY2FsZSkgOiAnJ31cbiAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5lbmREYXRlRGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxEYXlQaWNrZXJcbiAgICAgICAgICAgICAgICBjc3M9e2RheVNpemVDc3N9XG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZNb250aHM9e251bWJlck9mTW9udGhzfVxuICAgICAgICAgICAgICAgIG1vbnRoPXtkaXNwbGF5TW9udGh9XG4gICAgICAgICAgICAgICAgZGVmYXVsdE1vbnRoPXtkZWZhdWx0TW9udGh9XG4gICAgICAgICAgICAgICAgb25Nb250aENoYW5nZT17aGFuZGxlTW9udGhDaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25EYXlDbGljaz17aGFuZGxlRGF5Q2xpY2t9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGF5RGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50cz17e1xuICAgICAgICAgICAgICAgICAgSWNvbkxlZnQ6ICgpID0+IDxMZWZ0TGluayBhcmlhLWxhYmVsPVwiUHJldmlvdXMgTW9udGhcIiAvPixcbiAgICAgICAgICAgICAgICAgIEljb25SaWdodDogKCkgPT4gPFJpZ2h0TGluayBhcmlhLWxhYmVsPVwiTmV4dCBNb250aFwiIC8+LFxuICAgICAgICAgICAgICAgICAgRGF5Q29udGVudCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGZvcm1hdHRlcnM9e2Zvcm1hdHRlcnN9XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzPXt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX3N0YXJ0OiAoZDogRGF0ZSkgPT4gdG9JU09TdHIoZCkgPT09IHRvSVNPU3RyKHN0YXJ0RGF0ZSksXG4gICAgICAgICAgICAgICAgICByYW5nZV9lbmQ6IChkOiBEYXRlKSA9PiAhcHJvcHMuZW5kRGF0ZURpc2FibGVkICYmIHRvSVNPU3RyKGQpID09PSB0b0lTT1N0cihlbmREYXRlKSxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogaXNSYW5nZU1pZGRsZSxcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiBpc09mZmVyRGF5LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzQ2xhc3NOYW1lcz17e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWQnLFxuICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RhcnQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgcmFuZ2VfZW5kOiAnQ2FsZW5kYXJEYXlfX3NlbGVjdGVkX2VuZCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9taWRkbGU6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfc3BhbicsXG4gICAgICAgICAgICAgICAgICBoaWdobGlnaHRlZDogJ0NhbGVuZGFyRGF5X19oaWdobGlnaHRlZF9jYWxlbmRhcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBwYWdlZE5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICB3ZWVrU3RhcnRzT249e2dldFdlZWtTdGFydChwcm9wcy5sb2NhbGUgfHwgJ2VuJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtyZW5kZXJDYWxlbmRhckluZm8oKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Mb2NrQm9keVNjcm9sbD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlUmFuZ2VQaWNrZXJcbiJdfQ== */"),
|
|
218
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
219
|
+
className: (0, _classnames.default)('dateRangePickerWrapper', {
|
|
220
|
+
'dateRangePickerWrapper--active': showCalendar
|
|
221
|
+
}),
|
|
222
|
+
children: [mobileState && showCalendar && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
223
|
+
children: [(0, _jsxRuntime.jsx)("h2", {
|
|
224
|
+
className: "dateRangePickerWrapper__title",
|
|
225
|
+
children: props.labels.header
|
|
226
|
+
}), (0, _jsxRuntime.jsx)("span", {
|
|
227
|
+
className: "dateRangePickerWrapper__close",
|
|
228
|
+
onClick: () => setShowCalendar(false),
|
|
229
|
+
children: (0, _jsxRuntime.jsx)(_icons.Close, {})
|
|
230
|
+
})]
|
|
231
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
232
|
+
className: (0, _classnames.default)({
|
|
233
|
+
datepicker_container: true,
|
|
234
|
+
datepicker_open: showCalendar
|
|
235
|
+
}),
|
|
236
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
237
|
+
className: (0, _classnames.default)({
|
|
238
|
+
dateInputs: true,
|
|
239
|
+
dateInputs__errorBorder: !props.valid && !showCalendar,
|
|
240
|
+
dateInputs__focus_out: focusedInput === 'startDate' && showCalendar,
|
|
241
|
+
dateInputs__nonfocus: focusedInput === 'endDate' && showCalendar,
|
|
242
|
+
fromDate: true,
|
|
243
|
+
dateInputs__hideIcon: props.hideIcon
|
|
244
|
+
}),
|
|
245
|
+
onClick: startCalendarClicked,
|
|
246
|
+
children: [(0, _jsxRuntime.jsx)("label", {
|
|
247
|
+
className: "dateInputs__label",
|
|
248
|
+
children: props.labels.start
|
|
249
|
+
}), !props.hideIcon && (0, _jsxRuntime.jsx)(_icons.CalendarOutbound, {
|
|
250
|
+
className: "dateInputs__icon"
|
|
251
|
+
}), (0, _jsxRuntime.jsx)("input", {
|
|
252
|
+
className: "dateInputs__input",
|
|
253
|
+
type: "text",
|
|
254
|
+
name: "fromDate",
|
|
255
|
+
value: startDate ? formatDisplayDate(startDate, props.locale) : '',
|
|
256
|
+
readOnly: true
|
|
257
|
+
})]
|
|
258
|
+
})
|
|
259
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
260
|
+
className: (0, _classnames.default)({
|
|
261
|
+
datepicker_container: true,
|
|
262
|
+
datepicker_open: showCalendar
|
|
263
|
+
}),
|
|
264
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
265
|
+
className: (0, _classnames.default)({
|
|
266
|
+
dateInputs: true,
|
|
267
|
+
dateInputs__oneWay: true,
|
|
268
|
+
dateInputs__disabled: props.endDateDisabled,
|
|
269
|
+
'dateInputs__disabled--active': showCalendar && props.endDateDisabled,
|
|
270
|
+
dateInputs__errorBorder: !props.valid && !showCalendar,
|
|
271
|
+
dateInputs__nonfocus: focusedInput === 'startDate' && showCalendar && !props.endDateDisabled,
|
|
272
|
+
dateInputs__focus_ret: focusedInput === 'endDate' && showCalendar,
|
|
273
|
+
endDate: true,
|
|
274
|
+
dateInputs__hideIcon: props.hideIcon
|
|
275
|
+
}),
|
|
276
|
+
onClick: endCalendarClicked,
|
|
277
|
+
children: [(0, _jsxRuntime.jsx)("label", {
|
|
278
|
+
className: "dateInputs__label",
|
|
279
|
+
children: props.labels.end
|
|
280
|
+
}), !props.hideIcon && (0, _jsxRuntime.jsx)(_icons.CalendarReturn, {
|
|
281
|
+
className: "dateInputs__icon"
|
|
282
|
+
}), (0, _jsxRuntime.jsx)("input", {
|
|
283
|
+
className: "dateInputs__input",
|
|
284
|
+
type: "text",
|
|
285
|
+
name: "toDate",
|
|
286
|
+
value: endDate ? formatDisplayDate(endDate, props.locale) : '',
|
|
287
|
+
readOnly: true,
|
|
288
|
+
disabled: props.endDateDisabled
|
|
289
|
+
})]
|
|
290
|
+
})
|
|
291
|
+
}), showCalendar && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
292
|
+
children: [(0, _jsxRuntime.jsx)(_reactDayPicker.DayPicker, {
|
|
293
|
+
css: daySizeCss,
|
|
294
|
+
numberOfMonths: numberOfMonths,
|
|
295
|
+
month: displayMonth,
|
|
296
|
+
defaultMonth: defaultMonth,
|
|
297
|
+
onMonthChange: handleMonthChange,
|
|
298
|
+
onDayClick: handleDayClick,
|
|
299
|
+
disabled: isDayDisabled,
|
|
300
|
+
components: {
|
|
301
|
+
IconLeft: () => (0, _jsxRuntime.jsx)(_icons.LeftLink, {
|
|
302
|
+
"aria-label": "Previous Month"
|
|
303
|
+
}),
|
|
304
|
+
IconRight: () => (0, _jsxRuntime.jsx)(_icons.RightLink, {
|
|
305
|
+
"aria-label": "Next Month"
|
|
306
|
+
}),
|
|
307
|
+
DayContent
|
|
308
|
+
},
|
|
309
|
+
formatters: formatters,
|
|
310
|
+
modifiers: {
|
|
311
|
+
selected: isSelected,
|
|
312
|
+
range_start: d => toISOStr(d) === toISOStr(startDate),
|
|
313
|
+
range_end: d => !props.endDateDisabled && toISOStr(d) === toISOStr(endDate),
|
|
314
|
+
range_middle: isRangeMiddle,
|
|
315
|
+
highlighted: isOfferDay
|
|
316
|
+
},
|
|
317
|
+
modifiersClassNames: {
|
|
318
|
+
selected: 'CalendarDay__selected',
|
|
319
|
+
range_start: 'CalendarDay__selected_start',
|
|
320
|
+
range_end: 'CalendarDay__selected_end',
|
|
321
|
+
range_middle: 'CalendarDay__selected_span',
|
|
322
|
+
highlighted: 'CalendarDay__highlighted_calendar'
|
|
323
|
+
},
|
|
324
|
+
pagedNavigation: true,
|
|
325
|
+
weekStartsOn: getWeekStart(props.locale || 'en')
|
|
326
|
+
}), renderCalendarInfo()]
|
|
327
|
+
})]
|
|
328
|
+
})
|
|
197
329
|
})
|
|
198
|
-
}
|
|
199
|
-
className: (0, _classnames.default)({
|
|
200
|
-
dateInputs: true,
|
|
201
|
-
dateInputs__oneWay: true,
|
|
202
|
-
dateInputs__disabled: props.endDateDisabled,
|
|
203
|
-
'dateInputs__disabled--active': showCalendar && props.endDateDisabled,
|
|
204
|
-
dateInputs__errorBorder: !props.valid && !showCalendar,
|
|
205
|
-
dateInputs__nonfocus: focusedInput === 'startDate' && showCalendar && !props.endDateDisabled,
|
|
206
|
-
dateInputs__focus_ret: focusedInput === 'endDate' && showCalendar,
|
|
207
|
-
endDate: true,
|
|
208
|
-
dateInputs__hideIcon: props.hideIcon
|
|
209
|
-
}),
|
|
210
|
-
onClick: endCalendarClicked
|
|
211
|
-
}, (0, _react2.jsx)("label", {
|
|
212
|
-
className: "dateInputs__label"
|
|
213
|
-
}, props.labels.end), !props.hideIcon && (0, _react2.jsx)(_icons.CalendarReturn, {
|
|
214
|
-
className: "dateInputs__icon"
|
|
215
|
-
}), (0, _react2.jsx)("input", {
|
|
216
|
-
className: "dateInputs__input",
|
|
217
|
-
type: "text",
|
|
218
|
-
name: "toDate",
|
|
219
|
-
value: endDate ? endDate.format('ddd DD/MM') : '',
|
|
220
|
-
readOnly: true,
|
|
221
|
-
disabled: props.endDateDisabled
|
|
222
|
-
}))), showCalendar && !props.endDateDisabled && (0, _react2.jsx)(_reactDates.DayPickerRangeController, _extends({
|
|
223
|
-
onNextMonthClick: props.onNextMonthClick,
|
|
224
|
-
onPrevMonthClick: props.onPrevMonthClick
|
|
225
|
-
// Required props
|
|
226
|
-
,
|
|
227
|
-
onDatesChange: ({
|
|
228
|
-
startDate,
|
|
229
|
-
endDate
|
|
230
|
-
}) => {
|
|
231
|
-
setStartDate(startDate);
|
|
232
|
-
setEndDate(endDate);
|
|
233
|
-
props.onDateChange(getKeyStr(startDate), getKeyStr(endDate));
|
|
234
|
-
},
|
|
235
|
-
focusedInput: focusedInput,
|
|
236
|
-
startDate: startDate,
|
|
237
|
-
endDate: endDate,
|
|
238
|
-
onFocusChange: focusedInput => {
|
|
239
|
-
setFocusedInput(focusedInput || 'startDate');
|
|
240
|
-
setShowCalendar(!!focusedInput);
|
|
241
|
-
}
|
|
242
|
-
// We use phrases to disable extra stuff from aria-label
|
|
243
|
-
,
|
|
244
|
-
phrases: {
|
|
245
|
-
chooseAvailableStartDate: a => a.date,
|
|
246
|
-
chooseAvailableEndDate: a => a.date
|
|
247
|
-
},
|
|
248
|
-
minimumNights: minimumNights(),
|
|
249
|
-
orientation: mobileState ? 'verticalScrollable' : 'horizontal'
|
|
250
|
-
}, sharedCustomProps)), showCalendar && props.endDateDisabled && (0, _react2.jsx)(_reactDates.DayPickerSingleDateController
|
|
251
|
-
// Required props
|
|
252
|
-
, _extends({
|
|
253
|
-
onDateChange: date => {
|
|
254
|
-
setStartDate(date);
|
|
255
|
-
setEndDate(date);
|
|
256
|
-
props.onDateChange(getKeyStr(date), null);
|
|
257
|
-
setShowCalendar(false);
|
|
258
|
-
},
|
|
259
|
-
onFocusChange: () => undefined,
|
|
260
|
-
focused: true,
|
|
261
|
-
date: startDate,
|
|
262
|
-
orientation: mobileState ? 'verticalScrollable' : 'horizontal'
|
|
263
|
-
}, sharedCustomProps)))));
|
|
330
|
+
});
|
|
264
331
|
};
|
|
265
|
-
|
|
266
|
-
return m && m.format('YYYY-MM-DD');
|
|
267
|
-
}
|
|
268
|
-
function toMoment(n) {
|
|
269
|
-
return n ? (0, _moment.default)(n, 'YYYY-MM-DD') : null;
|
|
270
|
-
}
|
|
271
|
-
function buildMap(dates) {
|
|
272
|
-
const map = {};
|
|
273
|
-
if (!dates) {
|
|
274
|
-
return map;
|
|
275
|
-
}
|
|
276
|
-
var _iterator = _createForOfIteratorHelper(dates),
|
|
277
|
-
_step;
|
|
278
|
-
try {
|
|
279
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
280
|
-
const d = _step.value;
|
|
281
|
-
map[d] = 1;
|
|
282
|
-
}
|
|
283
|
-
} catch (err) {
|
|
284
|
-
_iterator.e(err);
|
|
285
|
-
} finally {
|
|
286
|
-
_iterator.f();
|
|
287
|
-
}
|
|
288
|
-
return map;
|
|
289
|
-
}
|
|
290
|
-
var _default = DateRangePicker;
|
|
291
|
-
exports.default = _default;
|
|
332
|
+
var _default = exports.default = DateRangePicker;
|