@dfds-ui/react-components 2.2.0-alpha.c2f773c5 → 2.2.0-alpha.c79adffa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/accordion/Accordion.d.ts +2 -2
  2. package/accordion/Accordion.js +47 -65
  3. package/accordion/AccordionContent.d.ts +1 -2
  4. package/accordion/AccordionContent.js +5 -12
  5. package/accordion/AccordionSmall.d.ts +2 -3
  6. package/accordion/AccordionSmall.js +36 -49
  7. package/app-bar/AppBar.d.ts +3 -3
  8. package/app-bar/AppBar.js +38 -50
  9. package/app-bar/AppBarContext.d.ts +3 -3
  10. package/app-bar/AppBarContext.js +4 -5
  11. package/app-bar/AppBarDrawer.d.ts +2 -2
  12. package/app-bar/AppBarDrawer.js +5 -12
  13. package/app-bar/AppBarIconButton.d.ts +2 -2
  14. package/app-bar/AppBarIconButton.js +4 -9
  15. package/app-bar/AppBarItem.d.ts +4 -4
  16. package/app-bar/AppBarItem.js +59 -67
  17. package/app-bar/AppBarListItem.d.ts +12 -11
  18. package/assertions/banner/Banner.d.ts +3 -3
  19. package/assertions/banner/Banner.js +50 -62
  20. package/assertions/banner/BannerAction.d.ts +1 -1
  21. package/assertions/banner/BannerAction.js +3 -8
  22. package/assertions/banner/BannerTypography.d.ts +0 -2
  23. package/assertions/banner/BannerTypography.js +8 -11
  24. package/assertions/toast/Toast.d.ts +1 -2
  25. package/assertions/toast/Toast.js +22 -32
  26. package/assertions/toast/Toaster.d.ts +2 -2
  27. package/assertions/toast/Toaster.js +28 -33
  28. package/badge/Badge.d.ts +2 -2
  29. package/badge/Badge.js +9 -16
  30. package/button/BadgeIcon.d.ts +3 -3
  31. package/button/BadgeIcon.js +16 -18
  32. package/button/BaseButton.d.ts +6 -6
  33. package/button/BaseButton.js +1 -1
  34. package/button/Button.d.ts +4 -4
  35. package/button/Button.js +29 -36
  36. package/button/IconButton.d.ts +2 -2
  37. package/button/IconButton.js +13 -19
  38. package/button/LinkButton.d.ts +2 -2
  39. package/button/LinkButton.js +4 -9
  40. package/button/button-style.js +2 -1
  41. package/button-stack/ButtonStack.d.ts +3 -4
  42. package/button-stack/ButtonStack.js +20 -28
  43. package/card/Card.d.ts +2 -3
  44. package/card/Card.js +30 -44
  45. package/card/CardActions.js +4 -11
  46. package/card/CardContent.d.ts +2 -3
  47. package/card/CardContent.js +9 -19
  48. package/card/CardMedia.d.ts +3 -4
  49. package/card/CardMedia.js +7 -15
  50. package/card/CardPriceTag.d.ts +3 -3
  51. package/card/CardPriceTag.js +14 -26
  52. package/card/CardTitle.d.ts +2 -3
  53. package/card/CardTitle.js +13 -23
  54. package/chip/Chip.d.ts +5 -5
  55. package/chip/Chip.js +13 -20
  56. package/cjs/accordion/Accordion.d.ts +2 -2
  57. package/cjs/accordion/Accordion.js +71 -80
  58. package/cjs/accordion/AccordionContent.d.ts +1 -2
  59. package/cjs/accordion/AccordionContent.js +12 -12
  60. package/cjs/accordion/AccordionSmall.d.ts +2 -3
  61. package/cjs/accordion/AccordionSmall.js +49 -54
  62. package/cjs/accordion/index.js +3 -3
  63. package/cjs/app-bar/AppBar.d.ts +3 -3
  64. package/cjs/app-bar/AppBar.js +104 -92
  65. package/cjs/app-bar/AppBarContext.d.ts +3 -3
  66. package/cjs/app-bar/AppBarContext.js +19 -8
  67. package/cjs/app-bar/AppBarDrawer.d.ts +2 -2
  68. package/cjs/app-bar/AppBarDrawer.js +16 -16
  69. package/cjs/app-bar/AppBarIconButton.d.ts +2 -2
  70. package/cjs/app-bar/AppBarIconButton.js +14 -12
  71. package/cjs/app-bar/AppBarItem.d.ts +4 -4
  72. package/cjs/app-bar/AppBarItem.js +88 -78
  73. package/cjs/app-bar/AppBarListItem.d.ts +12 -11
  74. package/cjs/app-bar/index.js +8 -8
  75. package/cjs/assertions/banner/Banner.d.ts +3 -3
  76. package/cjs/assertions/banner/Banner.js +92 -79
  77. package/cjs/assertions/banner/BannerAction.d.ts +1 -1
  78. package/cjs/assertions/banner/BannerAction.js +13 -12
  79. package/cjs/assertions/banner/BannerTypography.d.ts +0 -2
  80. package/cjs/assertions/banner/BannerTypography.js +11 -11
  81. package/cjs/assertions/banner/index.js +3 -3
  82. package/cjs/assertions/index.js +2 -2
  83. package/cjs/assertions/toast/Toast.d.ts +1 -2
  84. package/cjs/assertions/toast/Toast.js +35 -36
  85. package/cjs/assertions/toast/Toaster.d.ts +2 -2
  86. package/cjs/assertions/toast/Toaster.js +66 -55
  87. package/cjs/assertions/toast/index.js +4 -4
  88. package/cjs/badge/Badge.d.ts +2 -2
  89. package/cjs/badge/Badge.js +23 -21
  90. package/cjs/badge/index.js +3 -3
  91. package/cjs/button/BadgeIcon.d.ts +3 -3
  92. package/cjs/button/BadgeIcon.js +15 -18
  93. package/cjs/button/BaseButton.d.ts +6 -6
  94. package/cjs/button/BaseButton.js +1 -1
  95. package/cjs/button/Button.d.ts +4 -4
  96. package/cjs/button/Button.js +48 -43
  97. package/cjs/button/IconButton.d.ts +2 -2
  98. package/cjs/button/IconButton.js +41 -34
  99. package/cjs/button/LinkButton.d.ts +2 -2
  100. package/cjs/button/LinkButton.js +5 -6
  101. package/cjs/button/button-style.js +2 -1
  102. package/cjs/button/index.js +8 -8
  103. package/cjs/button-stack/ButtonStack.d.ts +3 -4
  104. package/cjs/button-stack/ButtonStack.js +30 -29
  105. package/cjs/button-stack/index.js +1 -1
  106. package/cjs/card/Card.d.ts +2 -3
  107. package/cjs/card/Card.js +65 -61
  108. package/cjs/card/CardActions.js +12 -9
  109. package/cjs/card/CardContent.d.ts +2 -3
  110. package/cjs/card/CardContent.js +17 -18
  111. package/cjs/card/CardMedia.d.ts +3 -4
  112. package/cjs/card/CardMedia.js +16 -16
  113. package/cjs/card/CardPriceTag.d.ts +3 -3
  114. package/cjs/card/CardPriceTag.js +24 -27
  115. package/cjs/card/CardTitle.d.ts +2 -3
  116. package/cjs/card/CardTitle.js +21 -24
  117. package/cjs/card/index.js +6 -6
  118. package/cjs/chip/Chip.d.ts +5 -5
  119. package/cjs/chip/Chip.js +45 -32
  120. package/cjs/chip/index.js +3 -3
  121. package/cjs/common/LockBodyScroll.d.ts +2 -2
  122. package/cjs/common/LockBodyScroll.js +15 -18
  123. package/cjs/common/arrow.d.ts +1 -1
  124. package/cjs/common/arrow.js +4 -2
  125. package/cjs/common/emotionCloneElement.d.ts +1 -0
  126. package/cjs/common/emotionCloneElement.js +8 -5
  127. package/cjs/common/intent.d.ts +1 -1
  128. package/cjs/common/polymorphic.d.ts +5 -5
  129. package/cjs/common/polymorphic.js +8 -12
  130. package/cjs/common/use-media.js +10 -1
  131. package/cjs/common/useOnClickOutside.d.ts +2 -1
  132. package/cjs/counter/Counter.d.ts +1 -1
  133. package/cjs/counter/Counter.js +62 -56
  134. package/cjs/counter/PluralCounter.d.ts +1 -1
  135. package/cjs/counter/PluralCounter.js +32 -22
  136. package/cjs/counter/index.js +2 -2
  137. package/cjs/data-table/DataTable.d.ts +2 -3
  138. package/cjs/data-table/DataTable.js +57 -55
  139. package/cjs/data-table/index.js +1 -1
  140. package/cjs/date-range-picker/DatePickerDefaultStyles.d.ts +2 -0
  141. package/cjs/date-range-picker/DatePickerDefaultStyles.js +19 -0
  142. package/cjs/date-range-picker/DatePickerDfdsStyles.d.ts +2 -0
  143. package/cjs/date-range-picker/DatePickerDfdsStyles.js +10 -0
  144. package/cjs/date-range-picker/DateRangePicker.d.ts +5 -5
  145. package/cjs/date-range-picker/DateRangePicker.js +252 -295
  146. package/cjs/date-range-picker/index.js +1 -1
  147. package/cjs/divider/Divider.d.ts +3 -3
  148. package/cjs/divider/Divider.js +13 -14
  149. package/cjs/divider/index.js +1 -1
  150. package/cjs/drawer/Drawer.d.ts +4 -4
  151. package/cjs/drawer/Drawer.js +20 -18
  152. package/cjs/drawer/index.js +1 -1
  153. package/cjs/dropdown-menu/Dropdown.d.ts +3 -3
  154. package/cjs/dropdown-menu/Dropdown.js +59 -50
  155. package/cjs/dropdown-menu/DropdownContext.d.ts +4 -4
  156. package/cjs/dropdown-menu/DropdownContext.js +5 -6
  157. package/cjs/dropdown-menu/MenuCheckbox.d.ts +1 -1
  158. package/cjs/dropdown-menu/MenuCheckbox.js +23 -26
  159. package/cjs/dropdown-menu/MenuItem.d.ts +1 -1
  160. package/cjs/dropdown-menu/MenuItem.js +66 -52
  161. package/cjs/dropdown-menu/MenuTitle.d.ts +1 -1
  162. package/cjs/dropdown-menu/MenuTitle.js +14 -18
  163. package/cjs/dropdown-menu/index.js +6 -6
  164. package/cjs/elevation/index.d.ts +1 -1
  165. package/cjs/elevation/index.js +6 -3
  166. package/cjs/flexbox/FlexBox.d.ts +5 -5
  167. package/cjs/flexbox/FlexBox.js +13 -5
  168. package/cjs/flexbox/index.js +1 -1
  169. package/cjs/footer/Footer.d.ts +2 -2
  170. package/cjs/footer/Footer.js +7 -12
  171. package/cjs/footer/index.js +1 -1
  172. package/cjs/forms/assistive-text/AssistiveText.d.ts +4 -3
  173. package/cjs/forms/asterisk/Asterisk.d.ts +2 -2
  174. package/cjs/forms/asterisk/Asterisk.js +2 -4
  175. package/cjs/forms/checkbox/Checkbox.d.ts +5 -5
  176. package/cjs/forms/checkbox/Checkbox.js +54 -54
  177. package/cjs/forms/checkbox/ExampleControlComponent.d.ts +1 -2
  178. package/cjs/forms/checkbox/ExampleControlComponent.js +22 -12
  179. package/cjs/forms/checkbox/index.js +1 -1
  180. package/cjs/forms/email-field/EmailField.d.ts +2 -2
  181. package/cjs/forms/email-field/EmailField.js +5 -6
  182. package/cjs/forms/error-text/ErrorText.d.ts +4 -3
  183. package/cjs/forms/error-text/ErrorText.js +4 -2
  184. package/cjs/forms/field/Field.d.ts +1 -2
  185. package/cjs/forms/field/Field.js +10 -12
  186. package/cjs/forms/index.d.ts +3 -3
  187. package/cjs/forms/index.js +18 -18
  188. package/cjs/forms/input/Input.d.ts +3 -3
  189. package/cjs/forms/input/Input.js +50 -43
  190. package/cjs/forms/input/InputComposition.d.ts +12 -12
  191. package/cjs/forms/input/InputComposition.js +54 -58
  192. package/cjs/forms/label/Label.d.ts +1 -2
  193. package/cjs/forms/label/Label.js +14 -14
  194. package/cjs/forms/number-field/NumberField.d.ts +2 -2
  195. package/cjs/forms/number-field/NumberField.js +6 -6
  196. package/cjs/forms/password-field/PasswordField.d.ts +1 -1
  197. package/cjs/forms/password-field/PasswordField.js +22 -13
  198. package/cjs/forms/radio/Radio.d.ts +4 -4
  199. package/cjs/forms/radio/Radio.js +30 -27
  200. package/cjs/forms/reactselect/ReactSelect.d.ts +15 -15
  201. package/cjs/forms/reactselect/ReactSelect.js +97 -100
  202. package/cjs/forms/searchable-select/AsyncSearchableSelect.d.ts +2 -2
  203. package/cjs/forms/searchable-select/AsyncSearchableSelect.js +66 -72
  204. package/cjs/forms/select/Select.d.ts +4 -4
  205. package/cjs/forms/select/Select.js +45 -42
  206. package/cjs/forms/select-field/SelectField.d.ts +3 -3
  207. package/cjs/forms/select-field/SelectField.js +48 -48
  208. package/cjs/forms/switch/Switch.d.ts +2 -2
  209. package/cjs/forms/switch/Switch.js +51 -51
  210. package/cjs/forms/tel-field/TelField.d.ts +2 -2
  211. package/cjs/forms/tel-field/TelField.js +5 -6
  212. package/cjs/forms/text-field/TextField.d.ts +4 -4
  213. package/cjs/forms/text-field/TextField.js +58 -57
  214. package/cjs/global-styles/GlobalStyles.d.ts +3 -3
  215. package/cjs/global-styles/GlobalStyles.js +2 -3
  216. package/cjs/global-styles/ResetStyles.d.ts +2 -2
  217. package/cjs/global-styles/ResetStyles.js +3 -3
  218. package/cjs/global-styles/sanitize.js +2 -1
  219. package/cjs/grid/Column.d.ts +1 -1
  220. package/cjs/grid/Column.js +15 -14
  221. package/cjs/grid/Container.d.ts +2 -2
  222. package/cjs/grid/Container.js +38 -42
  223. package/cjs/grid/index.js +2 -2
  224. package/cjs/hero/Hero.d.ts +2 -2
  225. package/cjs/hero/Hero.js +24 -41
  226. package/cjs/hero/index.js +1 -1
  227. package/cjs/hero/stripes.d.ts +2 -2
  228. package/cjs/hero/stripes.js +160 -176
  229. package/cjs/ie-banner/IEBanner.d.ts +1 -2
  230. package/cjs/ie-banner/IEBanner.js +25 -16
  231. package/cjs/ie-banner/index.js +1 -1
  232. package/cjs/index.js +45 -45
  233. package/cjs/layout/LayoutLegacy.d.ts +2 -2
  234. package/cjs/layout/LayoutLegacy.js +1 -2
  235. package/cjs/lists/FeatureList.d.ts +9 -7
  236. package/cjs/lists/FeatureList.js +19 -21
  237. package/cjs/lists/ListAddon.d.ts +2 -2
  238. package/cjs/lists/ListAddon.js +14 -15
  239. package/cjs/lists/ListDivider.d.ts +3 -3
  240. package/cjs/lists/ListDivider.js +13 -11
  241. package/cjs/lists/ListIcon.d.ts +3 -3
  242. package/cjs/lists/ListIcon.js +19 -17
  243. package/cjs/lists/ListItem.d.ts +2 -2
  244. package/cjs/lists/ListItem.js +28 -21
  245. package/cjs/lists/ListText.d.ts +4 -4
  246. package/cjs/lists/ListText.js +15 -13
  247. package/cjs/lists/ListTextGroup.d.ts +2 -2
  248. package/cjs/lists/ListTextGroup.js +17 -14
  249. package/cjs/lists/ListTitle.d.ts +2 -2
  250. package/cjs/lists/ListTitle.js +13 -10
  251. package/cjs/lists/index.js +8 -8
  252. package/cjs/loader/DfdsLoader.d.ts +1 -1
  253. package/cjs/loader/DfdsLoader.js +22 -28
  254. package/cjs/loader/Loader.d.ts +3 -3
  255. package/cjs/loader/Loader.js +3 -9
  256. package/cjs/loader/index.js +2 -2
  257. package/cjs/localization/LocaleFlag.d.ts +3 -3
  258. package/cjs/localization/LocaleFlag.js +16 -13
  259. package/cjs/localization/index.js +2 -2
  260. package/cjs/localization/locales.d.ts +2 -2
  261. package/cjs/logo/Logo.d.ts +3 -3
  262. package/cjs/logo/Logo.js +14 -16
  263. package/cjs/logo/index.js +1 -1
  264. package/cjs/menu/Menu.d.ts +1 -1
  265. package/cjs/menu/Menu.js +38 -44
  266. package/cjs/menu/index.js +3 -3
  267. package/cjs/mobile-stepper/MobileStepper.d.ts +3 -3
  268. package/cjs/mobile-stepper/MobileStepper.js +29 -26
  269. package/cjs/mobile-stepper/index.js +1 -1
  270. package/cjs/nav-bar/NavBar.d.ts +9 -11
  271. package/cjs/nav-bar/NavBar.js +67 -63
  272. package/cjs/nav-bar/index.js +3 -3
  273. package/cjs/nav-menu/NavMenuItem.d.ts +1 -1
  274. package/cjs/nav-menu/NavMenuItem.js +11 -13
  275. package/cjs/nav-menu/index.js +1 -1
  276. package/cjs/pagination/Pagination.d.ts +3 -3
  277. package/cjs/pagination/Pagination.js +46 -58
  278. package/cjs/pagination/Pagination.styles.js +2 -1
  279. package/cjs/pagination/index.js +1 -1
  280. package/cjs/popper/Popper.d.ts +4 -4
  281. package/cjs/popper/Popper.js +40 -40
  282. package/cjs/popper/index.js +1 -1
  283. package/cjs/progress-bar/ProgressBar.d.ts +3 -3
  284. package/cjs/progress-bar/ProgressBar.js +5 -4
  285. package/cjs/progress-bar/index.js +3 -3
  286. package/cjs/schedule/ScheduleItem.d.ts +10 -8
  287. package/cjs/schedule/ScheduleItem.js +4 -9
  288. package/cjs/schedule/ScheduleList.d.ts +3 -3
  289. package/cjs/schedule/ScheduleList.js +15 -13
  290. package/cjs/schedule/index.js +2 -2
  291. package/cjs/side-sheet/SideSheet.d.ts +5 -5
  292. package/cjs/side-sheet/SideSheet.js +86 -74
  293. package/cjs/side-sheet/SideSheetCloseButton.d.ts +2 -2
  294. package/cjs/side-sheet/SideSheetCloseButton.js +17 -13
  295. package/cjs/side-sheet/SideSheetContent.d.ts +3 -3
  296. package/cjs/side-sheet/SideSheetContent.js +13 -15
  297. package/cjs/side-sheet/SideSheetFooter.d.ts +3 -3
  298. package/cjs/side-sheet/SideSheetFooter.js +13 -15
  299. package/cjs/side-sheet/SideSheetHeader.d.ts +3 -3
  300. package/cjs/side-sheet/SideSheetHeader.js +16 -17
  301. package/cjs/side-sheet/SideSheetHeadline.d.ts +3 -3
  302. package/cjs/side-sheet/SideSheetHeadline.js +3 -5
  303. package/cjs/side-sheet/index.js +5 -5
  304. package/cjs/site-layout/SiteLayout.d.ts +11 -15
  305. package/cjs/site-layout/SiteLayout.js +47 -56
  306. package/cjs/site-layout/index.js +3 -3
  307. package/cjs/skeleton/Skeleton.d.ts +3 -3
  308. package/cjs/skeleton/Skeleton.js +15 -12
  309. package/cjs/skeleton/index.js +1 -1
  310. package/cjs/social-media-link-list/SocialMediaLinkList.d.ts +9 -7
  311. package/cjs/social-media-link-list/SocialMediaLinkList.js +69 -75
  312. package/cjs/social-media-link-list/index.js +1 -1
  313. package/cjs/spinner/Spinner.d.ts +9 -9
  314. package/cjs/spinner/Spinner.js +23 -20
  315. package/cjs/spinner/index.js +1 -1
  316. package/cjs/step/Step.d.ts +2 -2
  317. package/cjs/step/Step.js +47 -49
  318. package/cjs/step/Step.styles.js +2 -1
  319. package/cjs/step/StepButton.d.ts +2 -2
  320. package/cjs/step/StepButton.js +39 -43
  321. package/cjs/step/StepContent.d.ts +3 -3
  322. package/cjs/step/StepContent.js +14 -16
  323. package/cjs/step/StepContext.d.ts +1 -1
  324. package/cjs/step/StepLabel.d.ts +1 -1
  325. package/cjs/step/StepLabel.js +10 -13
  326. package/cjs/step/index.js +1 -1
  327. package/cjs/stepper/Stepper.d.ts +2 -2
  328. package/cjs/stepper/Stepper.js +34 -26
  329. package/cjs/stepper/StepperContext.d.ts +1 -1
  330. package/cjs/stepper/index.js +1 -1
  331. package/cjs/stepper-feedback-message/StepperFeedbackMessage.d.ts +2 -2
  332. package/cjs/stepper-feedback-message/StepperFeedbackMessage.js +7 -10
  333. package/cjs/stepper-feedback-message/index.js +1 -1
  334. package/cjs/styles/index.js +5 -5
  335. package/cjs/styles/media.d.ts +1 -1
  336. package/cjs/styles/style-helpers.js +2 -1
  337. package/cjs/styles/theme.d.ts +1 -1
  338. package/cjs/surface/Surface.d.ts +7 -7
  339. package/cjs/surface/Surface.js +31 -32
  340. package/cjs/surface/index.js +1 -1
  341. package/cjs/tab/Tab.d.ts +3 -3
  342. package/cjs/tab/Tab.js +21 -21
  343. package/cjs/tab/TabPanel.d.ts +2 -2
  344. package/cjs/tab/TabPanel.js +7 -9
  345. package/cjs/tab/Tabs.d.ts +3 -3
  346. package/cjs/tab/Tabs.js +67 -52
  347. package/cjs/tab/TabsContext.d.ts +3 -3
  348. package/cjs/tab/TabsContext.js +5 -6
  349. package/cjs/tab/index.js +4 -4
  350. package/cjs/table/Table.d.ts +3 -3
  351. package/cjs/table/Table.js +22 -20
  352. package/cjs/table/TableBody.d.ts +2 -2
  353. package/cjs/table/TableBody.js +12 -11
  354. package/cjs/table/TableDataCell.d.ts +2 -2
  355. package/cjs/table/TableDataCell.js +15 -13
  356. package/cjs/table/TableHead.d.ts +2 -2
  357. package/cjs/table/TableHead.js +16 -16
  358. package/cjs/table/TableHeaderCell.d.ts +3 -3
  359. package/cjs/table/TableHeaderCell.js +15 -13
  360. package/cjs/table/TableRow.d.ts +2 -2
  361. package/cjs/table/TableRow.js +18 -17
  362. package/cjs/table/index.js +6 -6
  363. package/cjs/test/Test.js +2 -4
  364. package/cjs/tooltip/Tooltip.d.ts +4 -4
  365. package/cjs/tooltip/Tooltip.js +35 -40
  366. package/cjs/tooltip/index.js +3 -3
  367. package/cjs/typography/Headlines.d.ts +40 -41
  368. package/cjs/typography/Headlines.js +28 -25
  369. package/cjs/typography/Text.d.ts +3 -2
  370. package/cjs/typography/Text.js +2 -1
  371. package/cjs/typography/index.js +2 -2
  372. package/common/LockBodyScroll.d.ts +2 -2
  373. package/common/LockBodyScroll.js +8 -18
  374. package/common/arrow.d.ts +1 -1
  375. package/common/arrow.js +4 -2
  376. package/common/emotionCloneElement.d.ts +1 -0
  377. package/common/intent.d.ts +1 -1
  378. package/common/polymorphic.d.ts +5 -5
  379. package/common/polymorphic.js +2 -8
  380. package/common/useOnClickOutside.d.ts +2 -1
  381. package/counter/Counter.d.ts +1 -1
  382. package/counter/Counter.js +50 -53
  383. package/counter/PluralCounter.d.ts +1 -1
  384. package/counter/PluralCounter.js +9 -17
  385. package/data-table/DataTable.d.ts +2 -3
  386. package/data-table/DataTable.js +36 -49
  387. package/date-range-picker/DatePickerDefaultStyles.d.ts +2 -0
  388. package/date-range-picker/DatePickerDefaultStyles.js +13 -0
  389. package/date-range-picker/DatePickerDfdsStyles.d.ts +2 -0
  390. package/date-range-picker/DatePickerDfdsStyles.js +4 -0
  391. package/date-range-picker/DateRangePicker.d.ts +5 -5
  392. package/date-range-picker/DateRangePicker.js +236 -317
  393. package/divider/Divider.d.ts +3 -3
  394. package/divider/Divider.js +3 -8
  395. package/drawer/Drawer.d.ts +4 -4
  396. package/drawer/Drawer.js +5 -14
  397. package/dropdown-menu/Dropdown.d.ts +3 -3
  398. package/dropdown-menu/Dropdown.js +28 -38
  399. package/dropdown-menu/DropdownContext.d.ts +4 -4
  400. package/dropdown-menu/DropdownContext.js +4 -5
  401. package/dropdown-menu/MenuCheckbox.d.ts +1 -1
  402. package/dropdown-menu/MenuCheckbox.js +17 -24
  403. package/dropdown-menu/MenuItem.d.ts +1 -1
  404. package/dropdown-menu/MenuItem.js +24 -27
  405. package/dropdown-menu/MenuTitle.d.ts +1 -1
  406. package/dropdown-menu/MenuTitle.js +13 -15
  407. package/elevation/index.d.ts +1 -1
  408. package/elevation/index.js +6 -3
  409. package/flexbox/FlexBox.d.ts +5 -5
  410. package/flexbox/FlexBox.js +2 -2
  411. package/footer/Footer.d.ts +2 -2
  412. package/footer/Footer.js +7 -12
  413. package/forms/assistive-text/AssistiveText.d.ts +4 -3
  414. package/forms/asterisk/Asterisk.d.ts +2 -2
  415. package/forms/asterisk/Asterisk.js +2 -4
  416. package/forms/checkbox/Checkbox.d.ts +5 -5
  417. package/forms/checkbox/Checkbox.js +38 -47
  418. package/forms/checkbox/ExampleControlComponent.d.ts +1 -2
  419. package/forms/checkbox/ExampleControlComponent.js +4 -11
  420. package/forms/email-field/EmailField.d.ts +2 -2
  421. package/forms/email-field/EmailField.js +4 -9
  422. package/forms/error-text/ErrorText.d.ts +4 -3
  423. package/forms/error-text/ErrorText.js +4 -2
  424. package/forms/field/Field.d.ts +1 -2
  425. package/forms/field/Field.js +10 -12
  426. package/forms/index.d.ts +3 -3
  427. package/forms/input/Input.d.ts +3 -3
  428. package/forms/input/Input.js +36 -35
  429. package/forms/input/InputComposition.d.ts +12 -12
  430. package/forms/input/InputComposition.js +27 -38
  431. package/forms/label/Label.d.ts +1 -2
  432. package/forms/label/Label.js +9 -15
  433. package/forms/number-field/NumberField.d.ts +2 -2
  434. package/forms/number-field/NumberField.js +6 -10
  435. package/forms/password-field/PasswordField.d.ts +1 -1
  436. package/forms/password-field/PasswordField.js +10 -15
  437. package/forms/radio/Radio.d.ts +4 -4
  438. package/forms/radio/Radio.js +21 -27
  439. package/forms/reactselect/ReactSelect.d.ts +15 -15
  440. package/forms/reactselect/ReactSelect.js +64 -71
  441. package/forms/searchable-select/AsyncSearchableSelect.d.ts +2 -2
  442. package/forms/searchable-select/AsyncSearchableSelect.js +37 -49
  443. package/forms/select/Select.d.ts +4 -4
  444. package/forms/select/Select.js +35 -38
  445. package/forms/select-field/SelectField.d.ts +3 -3
  446. package/forms/select-field/SelectField.js +35 -40
  447. package/forms/switch/Switch.d.ts +2 -2
  448. package/forms/switch/Switch.js +41 -50
  449. package/forms/tel-field/TelField.d.ts +2 -2
  450. package/forms/tel-field/TelField.js +4 -9
  451. package/forms/text-field/TextField.d.ts +4 -4
  452. package/forms/text-field/TextField.js +42 -47
  453. package/global-styles/GlobalStyles.d.ts +3 -3
  454. package/global-styles/GlobalStyles.js +3 -3
  455. package/global-styles/ResetStyles.d.ts +2 -2
  456. package/global-styles/ResetStyles.js +4 -3
  457. package/global-styles/sanitize.js +2 -1
  458. package/grid/Column.d.ts +1 -1
  459. package/grid/Column.js +5 -12
  460. package/grid/Container.d.ts +2 -2
  461. package/grid/Container.js +26 -33
  462. package/hero/Hero.d.ts +2 -2
  463. package/hero/Hero.js +24 -42
  464. package/hero/stripes.d.ts +2 -2
  465. package/hero/stripes.js +160 -176
  466. package/ie-banner/IEBanner.d.ts +1 -2
  467. package/ie-banner/IEBanner.js +6 -12
  468. package/layout/LayoutLegacy.d.ts +2 -2
  469. package/layout/LayoutLegacy.js +2 -2
  470. package/lists/FeatureList.d.ts +9 -7
  471. package/lists/FeatureList.js +9 -19
  472. package/lists/ListAddon.d.ts +2 -2
  473. package/lists/ListAddon.js +4 -11
  474. package/lists/ListDivider.d.ts +3 -3
  475. package/lists/ListDivider.js +3 -8
  476. package/lists/ListIcon.d.ts +3 -3
  477. package/lists/ListIcon.js +3 -8
  478. package/lists/ListItem.d.ts +2 -2
  479. package/lists/ListItem.js +4 -11
  480. package/lists/ListText.d.ts +4 -4
  481. package/lists/ListText.js +3 -8
  482. package/lists/ListTextGroup.d.ts +2 -2
  483. package/lists/ListTextGroup.js +3 -8
  484. package/lists/ListTitle.d.ts +2 -2
  485. package/lists/ListTitle.js +5 -9
  486. package/loader/DfdsLoader.d.ts +1 -1
  487. package/loader/DfdsLoader.js +21 -26
  488. package/loader/Loader.d.ts +3 -3
  489. package/loader/Loader.js +4 -9
  490. package/localization/LocaleFlag.d.ts +3 -3
  491. package/localization/LocaleFlag.js +3 -8
  492. package/localization/locales.d.ts +2 -2
  493. package/logo/Logo.d.ts +3 -3
  494. package/logo/Logo.js +5 -12
  495. package/menu/Menu.d.ts +1 -1
  496. package/menu/Menu.js +15 -28
  497. package/mobile-stepper/MobileStepper.d.ts +3 -3
  498. package/mobile-stepper/MobileStepper.js +19 -25
  499. package/nav-bar/NavBar.d.ts +9 -11
  500. package/nav-bar/NavBar.js +34 -49
  501. package/nav-menu/NavMenuItem.d.ts +1 -1
  502. package/nav-menu/NavMenuItem.js +12 -13
  503. package/package.json +22 -20
  504. package/pagination/Pagination.d.ts +3 -3
  505. package/pagination/Pagination.js +38 -54
  506. package/pagination/Pagination.styles.js +2 -1
  507. package/popper/Popper.d.ts +4 -4
  508. package/popper/Popper.js +16 -25
  509. package/progress-bar/ProgressBar.d.ts +3 -3
  510. package/progress-bar/ProgressBar.js +6 -4
  511. package/schedule/ScheduleItem.d.ts +10 -8
  512. package/schedule/ScheduleItem.js +4 -9
  513. package/schedule/ScheduleList.d.ts +3 -3
  514. package/schedule/ScheduleList.js +8 -14
  515. package/side-sheet/SideSheet.d.ts +5 -5
  516. package/side-sheet/SideSheet.js +40 -48
  517. package/side-sheet/SideSheetCloseButton.d.ts +2 -2
  518. package/side-sheet/SideSheetCloseButton.js +3 -8
  519. package/side-sheet/SideSheetContent.d.ts +3 -3
  520. package/side-sheet/SideSheetContent.js +6 -15
  521. package/side-sheet/SideSheetFooter.d.ts +3 -3
  522. package/side-sheet/SideSheetFooter.js +6 -15
  523. package/side-sheet/SideSheetHeader.d.ts +3 -3
  524. package/side-sheet/SideSheetHeader.js +6 -15
  525. package/side-sheet/SideSheetHeadline.d.ts +3 -3
  526. package/side-sheet/SideSheetHeadline.js +4 -5
  527. package/site-layout/SiteLayout.d.ts +11 -15
  528. package/site-layout/SiteLayout.js +16 -34
  529. package/skeleton/Skeleton.d.ts +3 -3
  530. package/skeleton/Skeleton.js +3 -8
  531. package/social-media-link-list/SocialMediaLinkList.d.ts +9 -7
  532. package/social-media-link-list/SocialMediaLinkList.js +53 -67
  533. package/spinner/Spinner.d.ts +9 -9
  534. package/spinner/Spinner.js +10 -16
  535. package/step/Step.d.ts +2 -2
  536. package/step/Step.js +18 -32
  537. package/step/Step.styles.js +2 -1
  538. package/step/StepButton.d.ts +2 -2
  539. package/step/StepButton.js +20 -26
  540. package/step/StepContent.d.ts +3 -3
  541. package/step/StepContent.js +13 -13
  542. package/step/StepContext.d.ts +1 -1
  543. package/step/StepLabel.d.ts +1 -1
  544. package/step/StepLabel.js +8 -9
  545. package/stepper/Stepper.d.ts +2 -2
  546. package/stepper/Stepper.js +13 -13
  547. package/stepper/StepperContext.d.ts +1 -1
  548. package/stepper-feedback-message/StepperFeedbackMessage.d.ts +2 -2
  549. package/stepper-feedback-message/StepperFeedbackMessage.js +8 -10
  550. package/styles/media.d.ts +1 -1
  551. package/styles/style-helpers.js +2 -1
  552. package/styles/theme.d.ts +1 -1
  553. package/surface/Surface.d.ts +7 -7
  554. package/surface/Surface.js +12 -15
  555. package/tab/Tab.d.ts +3 -3
  556. package/tab/Tab.js +10 -16
  557. package/tab/TabPanel.d.ts +2 -2
  558. package/tab/TabPanel.js +5 -6
  559. package/tab/Tabs.d.ts +3 -3
  560. package/tab/Tabs.js +36 -42
  561. package/tab/TabsContext.d.ts +3 -3
  562. package/tab/TabsContext.js +4 -5
  563. package/table/Table.d.ts +3 -3
  564. package/table/Table.js +11 -18
  565. package/table/TableBody.d.ts +2 -2
  566. package/table/TableBody.js +5 -11
  567. package/table/TableDataCell.d.ts +2 -2
  568. package/table/TableDataCell.js +6 -12
  569. package/table/TableHead.d.ts +2 -2
  570. package/table/TableHead.js +6 -8
  571. package/table/TableHeaderCell.d.ts +3 -3
  572. package/table/TableHeaderCell.js +6 -12
  573. package/table/TableRow.d.ts +2 -2
  574. package/table/TableRow.js +6 -8
  575. package/test/Test.js +2 -4
  576. package/tooltip/Tooltip.d.ts +4 -4
  577. package/tooltip/Tooltip.js +22 -31
  578. package/typography/Headlines.d.ts +40 -41
  579. package/typography/Headlines.js +17 -22
  580. package/typography/Text.d.ts +3 -2
  581. package/typography/Text.js +2 -1
  582. package/cjs/date-range-picker/DateRangePicker.styles.d.ts +0 -6
  583. package/cjs/date-range-picker/DateRangePicker.styles.js +0 -14
  584. package/date-range-picker/DateRangePicker.styles.d.ts +0 -6
  585. package/date-range-picker/DateRangePicker.styles.js +0 -9
@@ -1,78 +1,35 @@
1
1
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
3
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
5
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
6
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
6
7
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
8
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
- import { DayPicker } from 'react-day-picker';
9
+ /* eslint-disable deprecation/deprecation */
10
+ /* eslint-disable @typescript-eslint/restrict-plus-operands */
11
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
12
+ import { DayPickerRangeController, DayPickerSingleDateController } from 'react-dates';
9
13
  import classNames from 'classnames';
10
- import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';
14
+ // eslint-disable-next-line import/no-extraneous-dependencies
15
+ import moment from 'moment';
16
+ import React, { useState, useRef, useEffect } from 'react';
17
+ import 'react-dates/initialize';
11
18
  import { css } from '@emotion/react';
12
19
  import { Close, RightLink, LeftLink, CalendarOutbound, CalendarReturn } from '@dfds-ui/icons';
13
20
  import useMedia from '../common/use-media';
14
21
  import { miniMoize } from '../common/miniMoize';
15
- import { dateRangePickerDfdsStyles } from './DateRangePicker.styles';
22
+ import DatePickerDefaultStyles from './DatePickerDefaultStyles';
23
+ import DatePickerDfdsStyles from './DatePickerDfdsStyles';
16
24
  import LockBodyScroll from '../common/LockBodyScroll';
17
- import 'react-day-picker/dist/style.css';
18
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
19
- // --- Date helpers (replace moment) ---
20
-
21
- function toISOStr(d) {
22
- if (!d) return null;
23
- var y = d.getFullYear();
24
- var m = String(d.getMonth() + 1).padStart(2, '0');
25
- var day = String(d.getDate()).padStart(2, '0');
26
- return "".concat(y, "-").concat(m, "-").concat(day);
27
- }
28
- function toDate(s) {
29
- if (!s) return null;
30
- var _s$split$map = s.split('-').map(Number),
31
- _s$split$map2 = _slicedToArray(_s$split$map, 3),
32
- y = _s$split$map2[0],
33
- m = _s$split$map2[1],
34
- d = _s$split$map2[2];
35
- return new Date(y, m - 1, d);
36
- }
37
- function formatDisplayDate(date, locale) {
38
- var weekday = date.toLocaleDateString(locale || 'en', {
39
- weekday: 'short'
40
- });
41
- var day = String(date.getDate()).padStart(2, '0');
42
- var month = String(date.getMonth() + 1).padStart(2, '0');
43
- return "".concat(weekday, " ").concat(day, "/").concat(month);
44
- }
45
- function getWeekStart(locale) {
46
- var sundayLocales = ['en', 'en-US', 'ja', 'ko', 'zh'];
47
- var lang = locale.split('-')[0];
48
- return sundayLocales.includes(locale) || sundayLocales.includes(lang) ? 0 : 1;
49
- }
50
- function buildMap(dates) {
51
- var map = {};
52
- if (!dates) return map;
53
- var _iterator = _createForOfIteratorHelper(dates),
54
- _step;
55
- try {
56
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
57
- var d = _step.value;
58
- map[d] = 1;
59
- }
60
- } catch (err) {
61
- _iterator.e(err);
62
- } finally {
63
- _iterator.f();
64
- }
65
- return map;
66
- }
67
-
68
- // --- Component ---
69
-
25
+ import { jsx as ___EmotionJSX } from "@emotion/react";
26
+ // Do a wrapper to support styled components: https://github.com/airbnb/react-dates/issues/1030#issuecomment-388227454
70
27
  var DateRangePicker = function DateRangePicker(props) {
71
- var _useState = useState(toDate(props.startDates.initial)),
28
+ var _useState = useState(toMoment(props.startDates.initial)),
72
29
  _useState2 = _slicedToArray(_useState, 2),
73
30
  startDate = _useState2[0],
74
31
  setStartDate = _useState2[1];
75
- var _useState3 = useState(toDate(props.endDates.initial)),
32
+ var _useState3 = useState(toMoment(props.endDates.initial)),
76
33
  _useState4 = _slicedToArray(_useState3, 2),
77
34
  endDate = _useState4[0],
78
35
  setEndDate = _useState4[1];
@@ -84,13 +41,8 @@ var DateRangePicker = function DateRangePicker(props) {
84
41
  _useState8 = _slicedToArray(_useState7, 2),
85
42
  focusedInput = _useState8[0],
86
43
  setFocusedInput = _useState8[1];
87
- var _useState9 = useState(toDate(props.startDates.initial) || new Date()),
88
- _useState0 = _slicedToArray(_useState9, 2),
89
- displayMonth = _useState0[0],
90
- setDisplayMonth = _useState0[1];
91
- var wrapperRef = useRef(null);
92
44
  var _useMedia = useMedia(['(max-width: 64em)', '(min-width: 78.063em)'], [{
93
- numberOfMonths: 1,
45
+ numberOfMonths: props.numberOfMobileMonths || 12,
94
46
  mobileState: true,
95
47
  size: 40
96
48
  }, {
@@ -105,28 +57,14 @@ var DateRangePicker = function DateRangePicker(props) {
105
57
  numberOfMonths = _useMedia.numberOfMonths,
106
58
  mobileState = _useMedia.mobileState,
107
59
  size = _useMedia.size;
60
+ moment.locale(props.locale);
61
+ moment().weekday(0);
108
62
  useEffect(function () {
109
- setStartDate(toDate(props.startDates.initial));
110
- setEndDate(toDate(props.endDates.initial));
63
+ setStartDate(toMoment(props.startDates.initial));
64
+ setEndDate(toMoment(props.endDates.initial));
111
65
  }, [props.startDates.initial, props.endDates.initial]);
112
-
113
- // Handle clicks outside the calendar to close it
114
- var onDateChangeRef = useRef(props.onDateChange);
115
- onDateChangeRef.current = props.onDateChange;
116
- useEffect(function () {
117
- if (!showCalendar) return;
118
- var handleClickOutside = function handleClickOutside(e) {
119
- if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
120
- setShowCalendar(false);
121
- setFocusedInput('startDate');
122
- onDateChangeRef.current(toISOStr(startDate), toISOStr(endDate));
123
- }
124
- };
125
- document.addEventListener('mousedown', handleClickOutside);
126
- return function () {
127
- return document.removeEventListener('mousedown', handleClickOutside);
128
- };
129
- }, [showCalendar, startDate, endDate]);
66
+ var closeExceptionDivOut = useRef(null);
67
+ var closeExceptionImgOut = useRef(null);
130
68
  var startCalendarClicked = function startCalendarClicked() {
131
69
  setShowCalendar(function (prev) {
132
70
  return !prev;
@@ -139,253 +77,234 @@ var DateRangePicker = function DateRangePicker(props) {
139
77
  });
140
78
  setFocusedInput('endDate');
141
79
  };
80
+ var onOutsideClick = function onOutsideClick(_ref) {
81
+ var target = _ref.target;
82
+ if (target === closeExceptionDivOut.current || target === closeExceptionImgOut.current) {
83
+ return;
84
+ }
85
+ setShowCalendar(false);
86
+ setFocusedInput('startDate');
87
+ props.onDateChange(getKeyStr(startDate), getKeyStr(endDate));
88
+ };
142
89
  var renderCalendarInfo = function renderCalendarInfo() {
143
- return props.infoLabel ? _jsxs("div", {
144
- className: "dateRangePickerInfo",
145
- children: [_jsx("span", {
146
- className: "dateRangePickerInfo__legend"
147
- }), _jsx("p", {
148
- className: "dateRangePickerInfo__info",
149
- children: props.infoLabel
150
- })]
151
- }) : null;
90
+ return props.infoLabel ? ___EmotionJSX("div", {
91
+ className: "dateRangePickerInfo"
92
+ }, ___EmotionJSX("span", {
93
+ className: "dateRangePickerInfo__legend"
94
+ }), ___EmotionJSX("p", {
95
+ className: "dateRangePickerInfo__info"
96
+ }, props.infoLabel)) : '';
152
97
  };
153
-
154
- // Memoized disabled dates map
155
- var disabledDatesMap = miniMoize(function (focusedInput, start, startDisabledDates, endDisabledDates) {
98
+ var disabledDates = miniMoize(function (focusedInput, start, startDisabledDates, endDisabledDates) {
156
99
  return buildMap(focusedInput !== 'endDate' ? startDisabledDates : (startDisabledDates || []).filter(function (d) {
157
- return d < (start || '');
158
- }).concat(endDisabledDates || []));
100
+ return d < start;
101
+ }).concat(endDisabledDates));
159
102
  });
160
- var isDayDisabled = useCallback(function (date) {
161
- var startDateStr = toISOStr(startDate);
162
- var disabled = disabledDatesMap(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
163
- var dateStr = toISOStr(date);
164
- if (!dateStr) return false;
103
+ var _isDayBlocked = function isDayBlocked(date) {
104
+ var startDateStr = getKeyStr(startDate);
105
+ var disabled = disabledDates(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
106
+ var dateN = getKeyStr(date);
107
+ if (!dateN) {
108
+ return false;
109
+ }
165
110
  var d = focusedInput !== 'endDate' ? props.startDates : props.endDates;
166
111
  var min = props.startDates.minDate;
167
- if (disabled[dateStr]) return true;
168
- if (min && dateStr < min) return true;
169
- if (d.maxDate && dateStr > d.maxDate) return true;
170
- if (focusedInput === 'endDate' && startDateStr && startDateStr < dateStr && dateStr < props.endDates.minDate) {
112
+ if (disabled[dateN]) {
113
+ return true;
114
+ }
115
+ if (min && dateN && dateN < min) {
116
+ return true;
117
+ }
118
+ if (d.maxDate && dateN && dateN > d.maxDate) {
119
+ return true;
120
+ }
121
+ if (focusedInput === 'endDate' && startDateStr && startDateStr < dateN && dateN < props.endDates.minDate) {
171
122
  return true;
172
123
  }
173
124
  return false;
174
- }, [focusedInput, startDate, props.startDates, props.endDates, disabledDatesMap]);
175
-
176
- // Memoized offer dates map
177
- var offerDatesMap = miniMoize(function (focusedInput, startOffers, endOffers) {
125
+ };
126
+ var offerDates = miniMoize(function (focusedInput, startOffers, endOffers) {
178
127
  return buildMap(focusedInput !== 'endDate' ? startOffers : endOffers);
179
128
  });
180
- var isOfferDay = useCallback(function (date) {
181
- var map = offerDatesMap(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
182
- var dateStr = toISOStr(date);
183
- return dateStr ? !!map[dateStr] : false;
184
- }, [focusedInput, props.startDates.offerDates, props.endDates.offerDates, offerDatesMap]);
185
- var defaultMonth = useMemo(function () {
186
- if (mobileState) {
187
- return toDate(props.startDates.minDate) || new Date();
188
- }
189
- return startDate || new Date();
190
- // Only compute on mount / when mobile state changes
191
- // eslint-disable-next-line react-hooks/exhaustive-deps
192
- }, [mobileState]);
193
- var handleMonthChange = useCallback(function (month) {
194
- if (month > displayMonth) {
195
- var _props$onNextMonthCli;
196
- (_props$onNextMonthCli = props.onNextMonthClick) === null || _props$onNextMonthCli === void 0 || _props$onNextMonthCli.call(props);
197
- } else {
198
- var _props$onPrevMonthCli;
199
- (_props$onPrevMonthCli = props.onPrevMonthClick) === null || _props$onPrevMonthCli === void 0 || _props$onPrevMonthCli.call(props);
200
- }
201
- setDisplayMonth(month);
202
- }, [displayMonth, props.onNextMonthClick, props.onPrevMonthClick]);
203
- var handleDayClick = function handleDayClick(day) {
204
- if (isDayDisabled(day)) return;
205
- if (props.endDateDisabled) {
206
- setStartDate(day);
207
- setEndDate(day);
208
- props.onDateChange(toISOStr(day), null);
209
- setShowCalendar(false);
210
- return;
129
+ var isOfferValid = function isOfferValid(date) {
130
+ var map = offerDates(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
131
+ return map[getKeyStr(date)];
132
+ };
133
+ var minimumNights = function minimumNights() {
134
+ var start = toMoment(props.startDates.initial);
135
+ var end = toMoment(props.endDates.minDate);
136
+ return end && start ? end.diff(start, 'days') : 0;
137
+ };
138
+ var initialMonth = function initialMonth() {
139
+ return (mobileState ? toMoment(props.startDates.minDate) : startDate) || moment();
140
+ };
141
+ var sharedCustomProps = {
142
+ hideKeyboardShortcutsPanel: true,
143
+ navPrev: ___EmotionJSX(LeftLink, {
144
+ "aria-label": "Previous Month"
145
+ }),
146
+ navNext: ___EmotionJSX(RightLink, {
147
+ "aria-label": "Next Month"
148
+ }),
149
+ weekDayFormat: 'ddd',
150
+ daySize: size,
151
+ monthFormat: 'MMMM YYYY',
152
+ dayAriaLabelFormat: 'YYYY-MM-DD',
153
+ transitionDuration: 100,
154
+ numberOfMonths: numberOfMonths,
155
+ onOutsideClick: onOutsideClick,
156
+ isDayBlocked: function isDayBlocked(d) {
157
+ return _isDayBlocked(d);
158
+ },
159
+ isDayHighlighted: function isDayHighlighted(d) {
160
+ return isOfferValid(d);
161
+ },
162
+ initialVisibleMonth: initialMonth,
163
+ renderCalendarInfo: renderCalendarInfo
164
+ };
165
+ return ___EmotionJSX(LockBodyScroll, {
166
+ enabled: mobileState && showCalendar
167
+ }, ___EmotionJSX("div", {
168
+ className: 'outer ' + props.className,
169
+ css: /*#__PURE__*/css(DatePickerDefaultStyles, ";", DatePickerDfdsStyles, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1LZ0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBkZXByZWNhdGlvbi9kZXByZWNhdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24gKi9cbmltcG9ydCB7IERheVBpY2tlclJhbmdlQ29udHJvbGxlciwgRm9jdXNlZElucHV0U2hhcGUsIERheVBpY2tlclNpbmdsZURhdGVDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtZGF0ZXMnXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgJ3JlYWN0LWRhdGVzL2luaXRpYWxpemUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IERhdGVQaWNrZXJEZWZhdWx0U3R5bGVzIGZyb20gJy4vRGF0ZVBpY2tlckRlZmF1bHRTdHlsZXMnXG5pbXBvcnQgRGF0ZVBpY2tlckRmZHNTdHlsZXMgZnJvbSAnLi9EYXRlUGlja2VyRGZkc1N0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5pbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlclByb3BzIHtcbiAgZW5kRGF0ZURpc2FibGVkPzogYm9vbGVhblxuICB2YWxpZDogYm9vbGVhblxuICBvbkRhdGVDaGFuZ2U6IChkOiBzdHJpbmcgfCBudWxsLCByOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIGZvcm1hdD86IHN0cmluZ1xuICBpbmZvTGFiZWw/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 */")
170
+ }, ___EmotionJSX("div", {
171
+ className: classNames('dateRangePickerWrapper', {
172
+ 'dateRangePickerWrapper--active': showCalendar
173
+ })
174
+ }, mobileState && showCalendar && ___EmotionJSX(React.Fragment, null, ___EmotionJSX("h2", {
175
+ className: "dateRangePickerWrapper__title"
176
+ }, props.labels.header), ___EmotionJSX("span", {
177
+ className: "dateRangePickerWrapper__close",
178
+ onClick: function onClick() {
179
+ return setShowCalendar(false);
211
180
  }
212
- if (focusedInput === 'startDate') {
213
- setStartDate(day);
214
- setEndDate(null);
215
- setFocusedInput('endDate');
216
- props.onDateChange(toISOStr(day), null);
217
- } else {
218
- setEndDate(day);
219
- setFocusedInput('startDate');
220
- setShowCalendar(false);
221
- props.onDateChange(toISOStr(startDate), toISOStr(day));
181
+ }, ___EmotionJSX(Close, null))), ___EmotionJSX("div", {
182
+ className: classNames({
183
+ datepicker_container: true,
184
+ datepicker_open: showCalendar
185
+ })
186
+ }, ___EmotionJSX("div", {
187
+ className: classNames({
188
+ dateInputs: true,
189
+ dateInputs__errorBorder: !props.valid && !showCalendar,
190
+ dateInputs__focus_out: focusedInput === 'startDate' && showCalendar,
191
+ dateInputs__nonfocus: focusedInput === 'endDate' && showCalendar,
192
+ fromDate: true,
193
+ dateInputs__hideIcon: props.hideIcon
194
+ }),
195
+ onClick: startCalendarClicked,
196
+ ref: closeExceptionDivOut
197
+ }, ___EmotionJSX("label", {
198
+ className: "dateInputs__label"
199
+ }, props.labels.start), !props.hideIcon && ___EmotionJSX(CalendarOutbound, {
200
+ className: "dateInputs__icon",
201
+ ref: closeExceptionImgOut
202
+ }), ___EmotionJSX("input", {
203
+ className: "dateInputs__input",
204
+ type: "text",
205
+ name: "fromDate",
206
+ value: startDate ? startDate.format('ddd DD/MM') : '',
207
+ readOnly: true
208
+ }))), ___EmotionJSX("div", {
209
+ className: classNames({
210
+ datepicker_container: true,
211
+ datepicker_open: showCalendar
212
+ })
213
+ }, ___EmotionJSX("div", {
214
+ className: classNames({
215
+ dateInputs: true,
216
+ dateInputs__oneWay: true,
217
+ dateInputs__disabled: props.endDateDisabled,
218
+ 'dateInputs__disabled--active': showCalendar && props.endDateDisabled,
219
+ dateInputs__errorBorder: !props.valid && !showCalendar,
220
+ dateInputs__nonfocus: focusedInput === 'startDate' && showCalendar && !props.endDateDisabled,
221
+ dateInputs__focus_ret: focusedInput === 'endDate' && showCalendar,
222
+ endDate: true,
223
+ dateInputs__hideIcon: props.hideIcon
224
+ }),
225
+ onClick: endCalendarClicked
226
+ }, ___EmotionJSX("label", {
227
+ className: "dateInputs__label"
228
+ }, props.labels.end), !props.hideIcon && ___EmotionJSX(CalendarReturn, {
229
+ className: "dateInputs__icon"
230
+ }), ___EmotionJSX("input", {
231
+ className: "dateInputs__input",
232
+ type: "text",
233
+ name: "toDate",
234
+ value: endDate ? endDate.format('ddd DD/MM') : '',
235
+ readOnly: true,
236
+ disabled: props.endDateDisabled
237
+ }))), showCalendar && !props.endDateDisabled && ___EmotionJSX(DayPickerRangeController, _extends({
238
+ onNextMonthClick: props.onNextMonthClick,
239
+ onPrevMonthClick: props.onPrevMonthClick
240
+ // Required props
241
+ ,
242
+ onDatesChange: function onDatesChange(_ref2) {
243
+ var startDate = _ref2.startDate,
244
+ endDate = _ref2.endDate;
245
+ setStartDate(startDate);
246
+ setEndDate(endDate);
247
+ props.onDateChange(getKeyStr(startDate), getKeyStr(endDate));
248
+ },
249
+ focusedInput: focusedInput,
250
+ startDate: startDate,
251
+ endDate: endDate,
252
+ onFocusChange: function onFocusChange(focusedInput) {
253
+ setFocusedInput(focusedInput || 'startDate');
254
+ setShowCalendar(!!focusedInput);
222
255
  }
223
- };
224
- var isSelected = useCallback(function (date) {
225
- var dateStr = toISOStr(date);
226
- return dateStr === toISOStr(startDate) || dateStr === toISOStr(endDate);
227
- }, [startDate, endDate]);
228
- var isRangeMiddle = useCallback(function (date) {
229
- if (!startDate || !endDate) return false;
230
- return date > startDate && date < endDate;
231
- }, [startDate, endDate]);
232
-
233
- // Custom DayContent that sets aria-label to the ISO date (for testability & a11y)
234
- var DayContent = useMemo(function () {
235
- return function DayContentComponent(_ref) {
236
- var date = _ref.date;
237
- return _jsx(_Fragment, {
238
- children: date.getDate()
239
- });
240
- };
241
- }, []);
242
- var formatters = useMemo(function () {
243
- return {
244
- formatWeekdayName: function formatWeekdayName(date) {
245
- return date.toLocaleDateString(props.locale || 'en', {
246
- weekday: 'short'
247
- });
256
+ // We use phrases to disable extra stuff from aria-label
257
+ ,
258
+ phrases: {
259
+ chooseAvailableStartDate: function chooseAvailableStartDate(a) {
260
+ return a.date;
248
261
  },
249
- formatCaption: function formatCaption(date) {
250
- return date.toLocaleDateString(props.locale || 'en', {
251
- month: 'long',
252
- year: 'numeric'
253
- });
254
- },
255
- formatDay: function formatDay(date) {
256
- return String(date.getDate());
262
+ chooseAvailableEndDate: function chooseAvailableEndDate(a) {
263
+ return a.date;
257
264
  }
258
- };
259
- }, [props.locale]);
260
- var daySizeCss = /*#__PURE__*/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Sd0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/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== */");
261
- return _jsx(LockBodyScroll, {
262
- enabled: mobileState && showCalendar,
263
- children: _jsx("div", {
264
- ref: wrapperRef,
265
- className: 'outer ' + (props.className || ''),
266
- css: /*#__PURE__*/css(dateRangePickerDfdsStyles, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZSZ0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/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== */"),
267
- children: _jsxs("div", {
268
- className: classNames('dateRangePickerWrapper', {
269
- 'dateRangePickerWrapper--active': showCalendar
270
- }),
271
- children: [mobileState && showCalendar && _jsxs(_Fragment, {
272
- children: [_jsx("h2", {
273
- className: "dateRangePickerWrapper__title",
274
- children: props.labels.header
275
- }), _jsx("span", {
276
- className: "dateRangePickerWrapper__close",
277
- onClick: function onClick() {
278
- return setShowCalendar(false);
279
- },
280
- children: _jsx(Close, {})
281
- })]
282
- }), _jsx("div", {
283
- className: classNames({
284
- datepicker_container: true,
285
- datepicker_open: showCalendar
286
- }),
287
- children: _jsxs("div", {
288
- className: classNames({
289
- dateInputs: true,
290
- dateInputs__errorBorder: !props.valid && !showCalendar,
291
- dateInputs__focus_out: focusedInput === 'startDate' && showCalendar,
292
- dateInputs__nonfocus: focusedInput === 'endDate' && showCalendar,
293
- fromDate: true,
294
- dateInputs__hideIcon: props.hideIcon
295
- }),
296
- onClick: startCalendarClicked,
297
- children: [_jsx("label", {
298
- className: "dateInputs__label",
299
- children: props.labels.start
300
- }), !props.hideIcon && _jsx(CalendarOutbound, {
301
- className: "dateInputs__icon"
302
- }), _jsx("input", {
303
- className: "dateInputs__input",
304
- type: "text",
305
- name: "fromDate",
306
- value: startDate ? formatDisplayDate(startDate, props.locale) : '',
307
- readOnly: true
308
- })]
309
- })
310
- }), _jsx("div", {
311
- className: classNames({
312
- datepicker_container: true,
313
- datepicker_open: showCalendar
314
- }),
315
- children: _jsxs("div", {
316
- className: classNames({
317
- dateInputs: true,
318
- dateInputs__oneWay: true,
319
- dateInputs__disabled: props.endDateDisabled,
320
- 'dateInputs__disabled--active': showCalendar && props.endDateDisabled,
321
- dateInputs__errorBorder: !props.valid && !showCalendar,
322
- dateInputs__nonfocus: focusedInput === 'startDate' && showCalendar && !props.endDateDisabled,
323
- dateInputs__focus_ret: focusedInput === 'endDate' && showCalendar,
324
- endDate: true,
325
- dateInputs__hideIcon: props.hideIcon
326
- }),
327
- onClick: endCalendarClicked,
328
- children: [_jsx("label", {
329
- className: "dateInputs__label",
330
- children: props.labels.end
331
- }), !props.hideIcon && _jsx(CalendarReturn, {
332
- className: "dateInputs__icon"
333
- }), _jsx("input", {
334
- className: "dateInputs__input",
335
- type: "text",
336
- name: "toDate",
337
- value: endDate ? formatDisplayDate(endDate, props.locale) : '',
338
- readOnly: true,
339
- disabled: props.endDateDisabled
340
- })]
341
- })
342
- }), showCalendar && _jsxs(_Fragment, {
343
- children: [_jsx(DayPicker, {
344
- css: daySizeCss,
345
- numberOfMonths: numberOfMonths,
346
- month: displayMonth,
347
- defaultMonth: defaultMonth,
348
- onMonthChange: handleMonthChange,
349
- onDayClick: handleDayClick,
350
- disabled: isDayDisabled,
351
- components: {
352
- IconLeft: function IconLeft() {
353
- return _jsx(LeftLink, {
354
- "aria-label": "Previous Month"
355
- });
356
- },
357
- IconRight: function IconRight() {
358
- return _jsx(RightLink, {
359
- "aria-label": "Next Month"
360
- });
361
- },
362
- DayContent: DayContent
363
- },
364
- formatters: formatters,
365
- modifiers: {
366
- selected: isSelected,
367
- range_start: function range_start(d) {
368
- return toISOStr(d) === toISOStr(startDate);
369
- },
370
- range_end: function range_end(d) {
371
- return !props.endDateDisabled && toISOStr(d) === toISOStr(endDate);
372
- },
373
- range_middle: isRangeMiddle,
374
- highlighted: isOfferDay
375
- },
376
- modifiersClassNames: {
377
- selected: 'CalendarDay__selected',
378
- range_start: 'CalendarDay__selected_start',
379
- range_end: 'CalendarDay__selected_end',
380
- range_middle: 'CalendarDay__selected_span',
381
- highlighted: 'CalendarDay__highlighted_calendar'
382
- },
383
- pagedNavigation: true,
384
- weekStartsOn: getWeekStart(props.locale || 'en')
385
- }), renderCalendarInfo()]
386
- })]
387
- })
388
- })
389
- });
265
+ },
266
+ minimumNights: minimumNights(),
267
+ orientation: mobileState ? 'verticalScrollable' : 'horizontal'
268
+ }, sharedCustomProps)), showCalendar && props.endDateDisabled && ___EmotionJSX(DayPickerSingleDateController
269
+ // Required props
270
+ , _extends({
271
+ onDateChange: function onDateChange(date) {
272
+ setStartDate(date);
273
+ setEndDate(date);
274
+ props.onDateChange(getKeyStr(date), null);
275
+ setShowCalendar(false);
276
+ },
277
+ onFocusChange: function onFocusChange() {
278
+ return undefined;
279
+ },
280
+ focused: true,
281
+ date: startDate,
282
+ orientation: mobileState ? 'verticalScrollable' : 'horizontal'
283
+ }, sharedCustomProps)))));
390
284
  };
285
+ function getKeyStr(m) {
286
+ return m && m.format('YYYY-MM-DD');
287
+ }
288
+ function toMoment(n) {
289
+ return n ? moment(n, 'YYYY-MM-DD') : null;
290
+ }
291
+ function buildMap(dates) {
292
+ var map = {};
293
+ if (!dates) {
294
+ return map;
295
+ }
296
+ var _iterator = _createForOfIteratorHelper(dates),
297
+ _step;
298
+ try {
299
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
300
+ var d = _step.value;
301
+ map[d] = 1;
302
+ }
303
+ } catch (err) {
304
+ _iterator.e(err);
305
+ } finally {
306
+ _iterator.f();
307
+ }
308
+ return map;
309
+ }
391
310
  export default DateRangePicker;