@birdnet/advanced-react-dates 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/.babelrc +67 -0
  2. package/.eslintrc +66 -0
  3. package/.nvmrc +1 -0
  4. package/.nyc_output/4d8efcd220c2aec1f2b4ffd49d875001.json +1 -0
  5. package/.nyc_output/66d34779498a5d49bcf9d757dfc7fdb5.json +1 -0
  6. package/.nyc_output/8ca7e04140934515928bc7d4ae476b73.json +1 -0
  7. package/.nyc_output/afc270bb597bfc50e690436959c2ae54.json +1 -0
  8. package/.nycrc +19 -0
  9. package/.travis.yml +13 -0
  10. package/CHANGELOG.md +665 -0
  11. package/CLAUDE.md +56 -0
  12. package/INTHEWILD.md +9 -0
  13. package/LICENSE +21 -0
  14. package/README.md +421 -2
  15. package/constants.js +2 -0
  16. package/esm/components/CalendarDay.js +321 -0
  17. package/esm/components/CalendarIcon.js +11 -0
  18. package/esm/components/CalendarMonth.js +254 -0
  19. package/esm/components/CalendarMonthGrid.js +365 -0
  20. package/esm/components/CalendarWeek.js +11 -0
  21. package/esm/components/ChevronDown.js +11 -0
  22. package/esm/components/ChevronUp.js +11 -0
  23. package/esm/components/CloseButton.js +12 -0
  24. package/esm/components/CustomizableCalendarDay.js +341 -0
  25. package/esm/components/DateInput.js +344 -0
  26. package/esm/components/DateRangePicker.js +647 -0
  27. package/esm/components/DateRangePickerInput.js +341 -0
  28. package/esm/components/DateRangePickerInputController.js +348 -0
  29. package/esm/components/DayPicker.js +1167 -0
  30. package/esm/components/DayPickerKeyboardShortcuts.js +364 -0
  31. package/esm/components/DayPickerNavigation.js +314 -0
  32. package/esm/components/DayPickerRangeController.js +1202 -0
  33. package/esm/components/DayPickerSingleDateController.js +690 -0
  34. package/esm/components/KeyboardShortcutRow.js +69 -0
  35. package/esm/components/LeftArrow.js +11 -0
  36. package/esm/components/RightArrow.js +11 -0
  37. package/esm/components/SingleDatePicker.js +605 -0
  38. package/esm/components/SingleDatePickerInput.js +264 -0
  39. package/esm/components/SingleDatePickerInputController.js +260 -0
  40. package/esm/constants.js +28 -0
  41. package/esm/defaultPhrases.js +225 -0
  42. package/esm/index.js +20 -0
  43. package/esm/initialize.js +2 -0
  44. package/esm/shapes/AnchorDirectionShape.js +3 -0
  45. package/esm/shapes/CalendarInfoPositionShape.js +3 -0
  46. package/esm/shapes/DateRangePickerShape.js +101 -0
  47. package/esm/shapes/DayOfWeekShape.js +3 -0
  48. package/esm/shapes/DisabledShape.js +3 -0
  49. package/esm/shapes/FocusedInputShape.js +3 -0
  50. package/esm/shapes/IconPositionShape.js +3 -0
  51. package/esm/shapes/ModifiersShape.js +18 -0
  52. package/esm/shapes/NavPositionShape.js +3 -0
  53. package/esm/shapes/OpenDirectionShape.js +3 -0
  54. package/esm/shapes/OrientationShape.js +3 -0
  55. package/esm/shapes/ScrollableOrientationShape.js +3 -0
  56. package/esm/shapes/SingleDatePickerShape.js +90 -0
  57. package/esm/theme/DefaultTheme.js +176 -0
  58. package/esm/utils/calculateDimension.js +28 -0
  59. package/esm/utils/disableScroll.js +67 -0
  60. package/esm/utils/getActiveElement.js +3 -0
  61. package/esm/utils/getCalendarDaySettings.js +48 -0
  62. package/esm/utils/getCalendarMonthWeeks.js +37 -0
  63. package/esm/utils/getCalendarMonthWidth.js +4 -0
  64. package/esm/utils/getDetachedContainerStyles.js +36 -0
  65. package/esm/utils/getInputHeight.js +42 -0
  66. package/esm/utils/getNumberOfCalendarMonthWeeks.js +11 -0
  67. package/esm/utils/getPhrase.js +7 -0
  68. package/esm/utils/getPhrasePropTypes.js +9 -0
  69. package/esm/utils/getPooledMoment.js +8 -0
  70. package/esm/utils/getPreviousMonthMemoLast.js +9 -0
  71. package/esm/utils/getResponsiveContainerStyles.js +8 -0
  72. package/esm/utils/getSelectedDateOffset.js +8 -0
  73. package/esm/utils/getTransformStyles.js +8 -0
  74. package/esm/utils/getVisibleDays.js +42 -0
  75. package/esm/utils/isAfterDay.js +7 -0
  76. package/esm/utils/isBeforeDay.js +13 -0
  77. package/esm/utils/isDayVisible.js +38 -0
  78. package/esm/utils/isInclusivelyAfterDay.js +6 -0
  79. package/esm/utils/isInclusivelyBeforeDay.js +6 -0
  80. package/esm/utils/isNextDay.js +7 -0
  81. package/esm/utils/isNextMonth.js +6 -0
  82. package/esm/utils/isPrevMonth.js +6 -0
  83. package/esm/utils/isPreviousDay.js +7 -0
  84. package/esm/utils/isSameDay.js +7 -0
  85. package/esm/utils/isSameMonth.js +7 -0
  86. package/esm/utils/isTransitionEndSupported.js +3 -0
  87. package/esm/utils/modifiers.js +94 -0
  88. package/esm/utils/noflip.js +10 -0
  89. package/esm/utils/registerCSSInterfaceWithDefaultTheme.js +5 -0
  90. package/esm/utils/registerInterfaceWithDefaultTheme.js +6 -0
  91. package/esm/utils/toISODateString.js +12 -0
  92. package/esm/utils/toISOMonthString.js +12 -0
  93. package/esm/utils/toLocalizedDateString.js +8 -0
  94. package/esm/utils/toMomentObject.js +7 -0
  95. package/index.js +2 -0
  96. package/initialize.js +2 -0
  97. package/karma.conf.js +82 -0
  98. package/lib/components/CalendarDay.js +327 -0
  99. package/lib/components/CalendarIcon.js +18 -0
  100. package/lib/components/CalendarMonth.js +259 -0
  101. package/lib/components/CalendarMonthGrid.js +372 -0
  102. package/lib/components/CalendarWeek.js +18 -0
  103. package/lib/components/ChevronDown.js +18 -0
  104. package/lib/components/ChevronUp.js +18 -0
  105. package/lib/components/CloseButton.js +19 -0
  106. package/lib/components/CustomizableCalendarDay.js +347 -0
  107. package/lib/components/DateInput.js +351 -0
  108. package/lib/components/DateRangePicker.js +653 -0
  109. package/lib/components/DateRangePickerInput.js +348 -0
  110. package/lib/components/DateRangePickerInputController.js +354 -0
  111. package/lib/components/DayPicker.js +1175 -0
  112. package/lib/components/DayPickerKeyboardShortcuts.js +371 -0
  113. package/lib/components/DayPickerNavigation.js +321 -0
  114. package/lib/components/DayPickerRangeController.js +1208 -0
  115. package/lib/components/DayPickerSingleDateController.js +695 -0
  116. package/lib/components/KeyboardShortcutRow.js +76 -0
  117. package/lib/components/LeftArrow.js +18 -0
  118. package/lib/components/RightArrow.js +18 -0
  119. package/lib/components/SingleDatePicker.js +611 -0
  120. package/lib/components/SingleDatePickerInput.js +271 -0
  121. package/lib/components/SingleDatePickerInputController.js +266 -0
  122. package/lib/constants.js +34 -0
  123. package/lib/css/_datepicker.css +886 -0
  124. package/lib/defaultPhrases.js +231 -0
  125. package/lib/index.js +146 -0
  126. package/lib/initialize.js +5 -0
  127. package/lib/shapes/AnchorDirectionShape.js +10 -0
  128. package/lib/shapes/CalendarInfoPositionShape.js +10 -0
  129. package/lib/shapes/DateRangePickerShape.js +108 -0
  130. package/lib/shapes/DayOfWeekShape.js +10 -0
  131. package/lib/shapes/DisabledShape.js +10 -0
  132. package/lib/shapes/FocusedInputShape.js +10 -0
  133. package/lib/shapes/IconPositionShape.js +10 -0
  134. package/lib/shapes/ModifiersShape.js +25 -0
  135. package/lib/shapes/NavPositionShape.js +10 -0
  136. package/lib/shapes/OpenDirectionShape.js +10 -0
  137. package/lib/shapes/OrientationShape.js +10 -0
  138. package/lib/shapes/ScrollableOrientationShape.js +10 -0
  139. package/lib/shapes/SingleDatePickerShape.js +97 -0
  140. package/lib/theme/DefaultTheme.js +182 -0
  141. package/lib/utils/calculateDimension.js +34 -0
  142. package/lib/utils/disableScroll.js +75 -0
  143. package/lib/utils/getActiveElement.js +9 -0
  144. package/lib/utils/getCalendarDaySettings.js +55 -0
  145. package/lib/utils/getCalendarMonthWeeks.js +44 -0
  146. package/lib/utils/getCalendarMonthWidth.js +10 -0
  147. package/lib/utils/getDetachedContainerStyles.js +41 -0
  148. package/lib/utils/getInputHeight.js +48 -0
  149. package/lib/utils/getNumberOfCalendarMonthWeeks.js +18 -0
  150. package/lib/utils/getPhrase.js +13 -0
  151. package/lib/utils/getPhrasePropTypes.js +16 -0
  152. package/lib/utils/getPooledMoment.js +15 -0
  153. package/lib/utils/getPreviousMonthMemoLast.js +15 -0
  154. package/lib/utils/getResponsiveContainerStyles.js +15 -0
  155. package/lib/utils/getSelectedDateOffset.js +14 -0
  156. package/lib/utils/getTransformStyles.js +14 -0
  157. package/lib/utils/getVisibleDays.js +49 -0
  158. package/lib/utils/isAfterDay.js +14 -0
  159. package/lib/utils/isBeforeDay.js +20 -0
  160. package/lib/utils/isDayVisible.js +45 -0
  161. package/lib/utils/isInclusivelyAfterDay.js +13 -0
  162. package/lib/utils/isInclusivelyBeforeDay.js +13 -0
  163. package/lib/utils/isNextDay.js +14 -0
  164. package/lib/utils/isNextMonth.js +13 -0
  165. package/lib/utils/isPrevMonth.js +13 -0
  166. package/lib/utils/isPreviousDay.js +14 -0
  167. package/lib/utils/isSameDay.js +14 -0
  168. package/lib/utils/isSameMonth.js +14 -0
  169. package/lib/utils/isTransitionEndSupported.js +9 -0
  170. package/lib/utils/modifiers.js +102 -0
  171. package/lib/utils/noflip.js +16 -0
  172. package/lib/utils/registerCSSInterfaceWithDefaultTheme.js +12 -0
  173. package/lib/utils/registerInterfaceWithDefaultTheme.js +13 -0
  174. package/lib/utils/toISODateString.js +19 -0
  175. package/lib/utils/toISOMonthString.js +19 -0
  176. package/lib/utils/toLocalizedDateString.js +15 -0
  177. package/lib/utils/toMomentObject.js +14 -0
  178. package/package.json +141 -4
  179. package/scripts/.eslintrc +7 -0
  180. package/scripts/buildCSS.js +37 -0
  181. package/scripts/pure-component-fallback.js +70 -0
  182. package/scripts/renderAllComponents.jsx +25 -0
  183. package/src/components/CalendarDay.jsx +366 -0
  184. package/src/components/CalendarIcon.jsx +3 -0
  185. package/src/components/CalendarMonth.jsx +300 -0
  186. package/src/components/CalendarMonthGrid.jsx +427 -0
  187. package/src/components/CalendarWeek.jsx +17 -0
  188. package/src/components/ChevronDown.jsx +3 -0
  189. package/src/components/ChevronUp.jsx +3 -0
  190. package/src/components/CloseButton.jsx +3 -0
  191. package/src/components/CustomizableCalendarDay.jsx +382 -0
  192. package/src/components/DateInput.jsx +401 -0
  193. package/src/components/DateRangePicker.jsx +777 -0
  194. package/src/components/DateRangePickerInput.jsx +434 -0
  195. package/src/components/DateRangePickerInputController.jsx +379 -0
  196. package/src/components/DayPicker.jsx +1407 -0
  197. package/src/components/DayPickerKeyboardShortcuts.jsx +443 -0
  198. package/src/components/DayPickerNavigation.jsx +445 -0
  199. package/src/components/DayPickerRangeController.jsx +1409 -0
  200. package/src/components/DayPickerSingleDateController.jsx +769 -0
  201. package/src/components/KeyboardShortcutRow.jsx +93 -0
  202. package/src/components/LeftArrow.jsx +3 -0
  203. package/src/components/RightArrow.jsx +3 -0
  204. package/src/components/SingleDatePicker.jsx +731 -0
  205. package/src/components/SingleDatePickerInput.jsx +329 -0
  206. package/src/components/SingleDatePickerInputController.jsx +280 -0
  207. package/src/constants.js +37 -0
  208. package/src/defaultPhrases.js +215 -0
  209. package/src/index.js +20 -0
  210. package/src/initialize.js +3 -0
  211. package/src/shapes/AnchorDirectionShape.js +8 -0
  212. package/src/shapes/CalendarInfoPositionShape.js +15 -0
  213. package/src/shapes/DateRangePickerShape.js +111 -0
  214. package/src/shapes/DayOfWeekShape.js +5 -0
  215. package/src/shapes/DisabledShape.js +5 -0
  216. package/src/shapes/FocusedInputShape.js +8 -0
  217. package/src/shapes/IconPositionShape.js +8 -0
  218. package/src/shapes/ModifiersShape.js +20 -0
  219. package/src/shapes/NavPositionShape.js +8 -0
  220. package/src/shapes/OpenDirectionShape.js +8 -0
  221. package/src/shapes/OrientationShape.js +8 -0
  222. package/src/shapes/ScrollableOrientationShape.js +13 -0
  223. package/src/shapes/SingleDatePickerShape.js +100 -0
  224. package/src/svg/arrow-left.svg +1 -0
  225. package/src/svg/arrow-right.svg +1 -0
  226. package/src/svg/calendar.svg +1 -0
  227. package/src/svg/chevron-down.svg +1 -0
  228. package/src/svg/chevron-up.svg +1 -0
  229. package/src/svg/close.svg +1 -0
  230. package/src/theme/DefaultTheme.js +196 -0
  231. package/src/utils/calculateDimension.js +32 -0
  232. package/src/utils/disableScroll.js +65 -0
  233. package/src/utils/getActiveElement.js +3 -0
  234. package/src/utils/getCalendarDaySettings.js +61 -0
  235. package/src/utils/getCalendarMonthWeeks.js +49 -0
  236. package/src/utils/getCalendarMonthWidth.js +3 -0
  237. package/src/utils/getDetachedContainerStyles.js +39 -0
  238. package/src/utils/getInputHeight.js +67 -0
  239. package/src/utils/getNumberOfCalendarMonthWeeks.js +15 -0
  240. package/src/utils/getPhrase.jsx +9 -0
  241. package/src/utils/getPhrasePropTypes.js +9 -0
  242. package/src/utils/getPooledMoment.js +10 -0
  243. package/src/utils/getPreviousMonthMemoLast.js +11 -0
  244. package/src/utils/getResponsiveContainerStyles.js +18 -0
  245. package/src/utils/getSelectedDateOffset.js +6 -0
  246. package/src/utils/getTransformStyles.js +8 -0
  247. package/src/utils/getVisibleDays.js +54 -0
  248. package/src/utils/isAfterDay.js +9 -0
  249. package/src/utils/isBeforeDay.js +18 -0
  250. package/src/utils/isDayVisible.js +57 -0
  251. package/src/utils/isInclusivelyAfterDay.js +8 -0
  252. package/src/utils/isInclusivelyBeforeDay.js +8 -0
  253. package/src/utils/isNextDay.js +9 -0
  254. package/src/utils/isNextMonth.js +8 -0
  255. package/src/utils/isPrevMonth.js +8 -0
  256. package/src/utils/isPreviousDay.js +9 -0
  257. package/src/utils/isSameDay.js +10 -0
  258. package/src/utils/isSameMonth.js +9 -0
  259. package/src/utils/isTransitionEndSupported.js +3 -0
  260. package/src/utils/modifiers.js +116 -0
  261. package/src/utils/noflip.js +11 -0
  262. package/src/utils/registerCSSInterfaceWithDefaultTheme.js +7 -0
  263. package/src/utils/registerInterfaceWithDefaultTheme.js +7 -0
  264. package/src/utils/toISODateString.js +14 -0
  265. package/src/utils/toISOMonthString.js +14 -0
  266. package/src/utils/toLocalizedDateString.js +12 -0
  267. package/src/utils/toMomentObject.js +12 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _reactMomentProptypes = _interopRequireDefault(require("react-moment-proptypes"));
10
+ var _airbnbPropTypes = require("airbnb-prop-types");
11
+ var _defaultPhrases = require("../defaultPhrases");
12
+ var _getPhrasePropTypes = _interopRequireDefault(require("../utils/getPhrasePropTypes"));
13
+ var _IconPositionShape = _interopRequireDefault(require("./IconPositionShape"));
14
+ var _OrientationShape = _interopRequireDefault(require("./OrientationShape"));
15
+ var _AnchorDirectionShape = _interopRequireDefault(require("./AnchorDirectionShape"));
16
+ var _OpenDirectionShape = _interopRequireDefault(require("./OpenDirectionShape"));
17
+ var _DayOfWeekShape = _interopRequireDefault(require("./DayOfWeekShape"));
18
+ var _CalendarInfoPositionShape = _interopRequireDefault(require("./CalendarInfoPositionShape"));
19
+ var _NavPositionShape = _interopRequireDefault(require("./NavPositionShape"));
20
+ var _default = exports["default"] = {
21
+ // required props for a functional interactive SingleDatePicker
22
+ date: _reactMomentProptypes["default"].momentObj,
23
+ onDateChange: _propTypes["default"].func.isRequired,
24
+ focused: _propTypes["default"].bool,
25
+ onFocusChange: _propTypes["default"].func.isRequired,
26
+ // input related props
27
+ id: _propTypes["default"].string.isRequired,
28
+ placeholder: _propTypes["default"].string,
29
+ ariaLabel: _propTypes["default"].string,
30
+ titleText: _propTypes["default"].string,
31
+ disabled: _propTypes["default"].bool,
32
+ required: _propTypes["default"].bool,
33
+ readOnly: _propTypes["default"].bool,
34
+ screenReaderInputMessage: _propTypes["default"].string,
35
+ showClearDate: _propTypes["default"].bool,
36
+ customCloseIcon: _propTypes["default"].node,
37
+ showDefaultInputIcon: _propTypes["default"].bool,
38
+ inputIconPosition: _IconPositionShape["default"],
39
+ customInputIcon: _propTypes["default"].node,
40
+ noBorder: _propTypes["default"].bool,
41
+ block: _propTypes["default"].bool,
42
+ small: _propTypes["default"].bool,
43
+ regular: _propTypes["default"].bool,
44
+ verticalSpacing: _airbnbPropTypes.nonNegativeInteger,
45
+ keepFocusOnInput: _propTypes["default"].bool,
46
+ autoComplete: _propTypes["default"].string,
47
+ // calendar presentation and interaction related props
48
+ renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes["default"].func, 'renderMonthText', 'renderMonthElement'),
49
+ renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes["default"].func, 'renderMonthText', 'renderMonthElement'),
50
+ renderWeekHeaderElement: _propTypes["default"].func,
51
+ orientation: _OrientationShape["default"],
52
+ anchorDirection: _AnchorDirectionShape["default"],
53
+ openDirection: _OpenDirectionShape["default"],
54
+ horizontalMargin: _propTypes["default"].number,
55
+ withPortal: _propTypes["default"].bool,
56
+ withFullScreenPortal: _propTypes["default"].bool,
57
+ appendToBody: _propTypes["default"].bool,
58
+ disableScroll: _propTypes["default"].bool,
59
+ initialVisibleMonth: _propTypes["default"].func,
60
+ firstDayOfWeek: _DayOfWeekShape["default"],
61
+ numberOfMonths: _propTypes["default"].number,
62
+ keepOpenOnDateSelect: _propTypes["default"].bool,
63
+ reopenPickerOnClearDate: _propTypes["default"].bool,
64
+ renderCalendarInfo: _propTypes["default"].func,
65
+ calendarInfoPosition: _CalendarInfoPositionShape["default"],
66
+ hideKeyboardShortcutsPanel: _propTypes["default"].bool,
67
+ daySize: _airbnbPropTypes.nonNegativeInteger,
68
+ isRTL: _propTypes["default"].bool,
69
+ verticalHeight: _airbnbPropTypes.nonNegativeInteger,
70
+ transitionDuration: _airbnbPropTypes.nonNegativeInteger,
71
+ horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,
72
+ // navigation related props
73
+ dayPickerNavigationInlineStyles: _propTypes["default"].object,
74
+ navPosition: _NavPositionShape["default"],
75
+ navPrev: _propTypes["default"].node,
76
+ navNext: _propTypes["default"].node,
77
+ renderNavPrevButton: _propTypes["default"].func,
78
+ renderNavNextButton: _propTypes["default"].func,
79
+ onPrevMonthClick: _propTypes["default"].func,
80
+ onNextMonthClick: _propTypes["default"].func,
81
+ onClose: _propTypes["default"].func,
82
+ // day presentation and interaction related props
83
+ renderCalendarDay: _propTypes["default"].func,
84
+ renderDayContents: _propTypes["default"].func,
85
+ enableOutsideDays: _propTypes["default"].bool,
86
+ isDayBlocked: _propTypes["default"].func,
87
+ isOutsideRange: _propTypes["default"].func,
88
+ isDayHighlighted: _propTypes["default"].func,
89
+ minDate: _reactMomentProptypes["default"].momentObj,
90
+ maxDate: _reactMomentProptypes["default"].momentObj,
91
+ // internationalization props
92
+ displayFormat: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]),
93
+ monthFormat: _propTypes["default"].string,
94
+ weekDayFormat: _propTypes["default"].string,
95
+ phrases: _propTypes["default"].shape((0, _getPhrasePropTypes["default"])(_defaultPhrases.SingleDatePickerPhrases)),
96
+ dayAriaLabelFormat: _propTypes["default"].string
97
+ };
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var core = {
8
+ white: '#fff',
9
+ gray: '#484848',
10
+ grayLight: '#82888a',
11
+ grayLighter: '#cacccd',
12
+ grayLightest: '#f2f2f2',
13
+ borderMedium: '#c4c4c4',
14
+ border: '#dbdbdb',
15
+ borderLight: '#e4e7e7',
16
+ borderLighter: '#eceeee',
17
+ borderBright: '#f4f5f5',
18
+ primary: '#00a699',
19
+ primaryShade_1: '#33dacd',
20
+ primaryShade_2: '#66e2da',
21
+ primaryShade_3: '#80e8e0',
22
+ primaryShade_4: '#b2f1ec',
23
+ primary_dark: '#008489',
24
+ secondary: '#007a87',
25
+ yellow: '#ffe8bc',
26
+ yellow_dark: '#ffce71'
27
+ };
28
+ var _default = exports["default"] = {
29
+ reactDates: {
30
+ zIndex: 0,
31
+ border: {
32
+ input: {
33
+ border: 0,
34
+ borderTop: 0,
35
+ borderRight: 0,
36
+ borderBottom: '2px solid transparent',
37
+ borderLeft: 0,
38
+ outlineFocused: 0,
39
+ borderFocused: 0,
40
+ borderTopFocused: 0,
41
+ borderLeftFocused: 0,
42
+ borderBottomFocused: "2px solid ".concat(core.primary_dark),
43
+ borderRightFocused: 0,
44
+ borderRadius: 0
45
+ },
46
+ pickerInput: {
47
+ borderWidth: 1,
48
+ borderStyle: 'solid',
49
+ borderRadius: 2
50
+ }
51
+ },
52
+ color: {
53
+ core: core,
54
+ disabled: core.grayLightest,
55
+ background: core.white,
56
+ backgroundDark: '#f2f2f2',
57
+ backgroundFocused: core.white,
58
+ border: 'rgb(219, 219, 219)',
59
+ text: core.gray,
60
+ textDisabled: core.border,
61
+ textFocused: '#007a87',
62
+ placeholderText: '#757575',
63
+ outside: {
64
+ backgroundColor: core.white,
65
+ backgroundColor_active: core.white,
66
+ backgroundColor_hover: core.white,
67
+ color: core.gray,
68
+ color_active: core.gray,
69
+ color_hover: core.gray
70
+ },
71
+ highlighted: {
72
+ backgroundColor: core.yellow,
73
+ backgroundColor_active: core.yellow_dark,
74
+ backgroundColor_hover: core.yellow_dark,
75
+ color: core.gray,
76
+ color_active: core.gray,
77
+ color_hover: core.gray
78
+ },
79
+ minimumNights: {
80
+ backgroundColor: core.white,
81
+ backgroundColor_active: core.white,
82
+ backgroundColor_hover: core.white,
83
+ borderColor: core.borderLighter,
84
+ color: core.grayLighter,
85
+ color_active: core.grayLighter,
86
+ color_hover: core.grayLighter
87
+ },
88
+ hoveredSpan: {
89
+ backgroundColor: core.primaryShade_4,
90
+ backgroundColor_active: core.primaryShade_3,
91
+ backgroundColor_hover: core.primaryShade_4,
92
+ borderColor: core.primaryShade_3,
93
+ borderColor_active: core.primaryShade_3,
94
+ borderColor_hover: core.primaryShade_3,
95
+ color: core.secondary,
96
+ color_active: core.secondary,
97
+ color_hover: core.secondary
98
+ },
99
+ selectedSpan: {
100
+ backgroundColor: core.primaryShade_2,
101
+ backgroundColor_active: core.primaryShade_1,
102
+ backgroundColor_hover: core.primaryShade_1,
103
+ borderColor: core.primaryShade_1,
104
+ borderColor_active: core.primary,
105
+ borderColor_hover: core.primary,
106
+ color: core.white,
107
+ color_active: core.white,
108
+ color_hover: core.white
109
+ },
110
+ selected: {
111
+ backgroundColor: core.primary,
112
+ backgroundColor_active: core.primary,
113
+ backgroundColor_hover: core.primary,
114
+ borderColor: core.primary,
115
+ borderColor_active: core.primary,
116
+ borderColor_hover: core.primary,
117
+ color: core.white,
118
+ color_active: core.white,
119
+ color_hover: core.white
120
+ },
121
+ blocked_calendar: {
122
+ backgroundColor: core.grayLighter,
123
+ backgroundColor_active: core.grayLighter,
124
+ backgroundColor_hover: core.grayLighter,
125
+ borderColor: core.grayLighter,
126
+ borderColor_active: core.grayLighter,
127
+ borderColor_hover: core.grayLighter,
128
+ color: core.grayLight,
129
+ color_active: core.grayLight,
130
+ color_hover: core.grayLight
131
+ },
132
+ blocked_out_of_range: {
133
+ backgroundColor: core.white,
134
+ backgroundColor_active: core.white,
135
+ backgroundColor_hover: core.white,
136
+ borderColor: core.borderLight,
137
+ borderColor_active: core.borderLight,
138
+ borderColor_hover: core.borderLight,
139
+ color: core.grayLighter,
140
+ color_active: core.grayLighter,
141
+ color_hover: core.grayLighter
142
+ }
143
+ },
144
+ spacing: {
145
+ dayPickerHorizontalPadding: 9,
146
+ captionPaddingTop: 22,
147
+ captionPaddingBottom: 37,
148
+ inputPadding: 0,
149
+ displayTextPaddingVertical: undefined,
150
+ displayTextPaddingTop: 11,
151
+ displayTextPaddingBottom: 9,
152
+ displayTextPaddingHorizontal: undefined,
153
+ displayTextPaddingLeft: 11,
154
+ displayTextPaddingRight: 11,
155
+ displayTextPaddingVertical_small: undefined,
156
+ displayTextPaddingTop_small: 7,
157
+ displayTextPaddingBottom_small: 5,
158
+ displayTextPaddingHorizontal_small: undefined,
159
+ displayTextPaddingLeft_small: 7,
160
+ displayTextPaddingRight_small: 7
161
+ },
162
+ sizing: {
163
+ inputWidth: 130,
164
+ inputWidth_small: 97,
165
+ arrowWidth: 24
166
+ },
167
+ noScrollBarOnVerticalScrollable: false,
168
+ font: {
169
+ size: 14,
170
+ captionSize: 18,
171
+ input: {
172
+ size: 19,
173
+ weight: 200,
174
+ lineHeight: '24px',
175
+ size_small: 15,
176
+ lineHeight_small: '18px',
177
+ letterSpacing_small: '0.2px',
178
+ styleDisabled: 'italic'
179
+ }
180
+ }
181
+ }
182
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = calculateDimension;
7
+ function calculateDimension(el, axis) {
8
+ var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
9
+ var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10
+ if (!el) {
11
+ return 0;
12
+ }
13
+ var axisStart = axis === 'width' ? 'Left' : 'Top';
14
+ var axisEnd = axis === 'width' ? 'Right' : 'Bottom';
15
+
16
+ // Only read styles if we need to
17
+ var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;
18
+
19
+ // Offset includes border and padding
20
+ var offsetWidth = el.offsetWidth,
21
+ offsetHeight = el.offsetHeight;
22
+ var size = axis === 'width' ? offsetWidth : offsetHeight;
23
+
24
+ // Get the inner size
25
+ if (!borderBox) {
26
+ size -= parseFloat(style["padding".concat(axisStart)]) + parseFloat(style["padding".concat(axisEnd)]) + parseFloat(style["border".concat(axisStart, "Width")]) + parseFloat(style["border".concat(axisEnd, "Width")]);
27
+ }
28
+
29
+ // Apply margin
30
+ if (withMargin) {
31
+ size += parseFloat(style["margin".concat(axisStart)]) + parseFloat(style["margin".concat(axisEnd)]);
32
+ }
33
+ return size;
34
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = disableScroll;
7
+ exports.getScrollAncestorsOverflowY = getScrollAncestorsOverflowY;
8
+ exports.getScrollParent = getScrollParent;
9
+ var getScrollingRoot = function getScrollingRoot() {
10
+ return document.scrollingElement || document.documentElement;
11
+ };
12
+
13
+ /**
14
+ * Recursively finds the scroll parent of a node. The scroll parrent of a node
15
+ * is the closest node that is scrollable. A node is scrollable if:
16
+ * - it is allowed to scroll via CSS ('overflow-y' not visible or hidden);
17
+ * - and its children/content are "bigger" than the node's box height.
18
+ *
19
+ * The root of the document always scrolls by default.
20
+ *
21
+ * @param {HTMLElement} node Any DOM element.
22
+ * @return {HTMLElement} The scroll parent element.
23
+ */
24
+ function getScrollParent(node) {
25
+ var parent = node.parentElement;
26
+ if (parent == null) return getScrollingRoot();
27
+ var _window$getComputedSt = window.getComputedStyle(parent),
28
+ overflowY = _window$getComputedSt.overflowY;
29
+ var canScroll = overflowY !== 'visible' && overflowY !== 'hidden';
30
+ if (canScroll && parent.scrollHeight > parent.clientHeight) {
31
+ return parent;
32
+ }
33
+ return getScrollParent(parent);
34
+ }
35
+
36
+ /**
37
+ * Recursively traverses the tree upwards from the given node, capturing all
38
+ * ancestor nodes that scroll along with their current 'overflow-y' CSS
39
+ * property.
40
+ *
41
+ * @param {HTMLElement} node Any DOM element.
42
+ * @param {Map<HTMLElement,string>} [acc] Accumulator map.
43
+ * @return {Map<HTMLElement,string>} Map of ancestors with their 'overflow-y' value.
44
+ */
45
+ function getScrollAncestorsOverflowY(node) {
46
+ var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
47
+ var scrollingRoot = getScrollingRoot();
48
+ var scrollParent = getScrollParent(node);
49
+ acc.set(scrollParent, scrollParent.style.overflowY);
50
+ if (scrollParent === scrollingRoot) return acc;
51
+ return getScrollAncestorsOverflowY(scrollParent, acc);
52
+ }
53
+
54
+ /**
55
+ * Disabling the scroll on a node involves finding all the scrollable ancestors
56
+ * and set their 'overflow-y' CSS property to 'hidden'. When all ancestors have
57
+ * 'overflow-y: hidden' (up to the document element) there is no scroll
58
+ * container, thus all the scroll outside of the node is disabled. In order to
59
+ * enable scroll again, we store the previous value of the 'overflow-y' for
60
+ * every ancestor in a closure and reset it back.
61
+ *
62
+ * @param {HTMLElement} node Any DOM element.
63
+ */
64
+ function disableScroll(node) {
65
+ var scrollAncestorsOverflowY = getScrollAncestorsOverflowY(node);
66
+ var toggle = function toggle(on) {
67
+ return scrollAncestorsOverflowY.forEach(function (overflowY, ancestor) {
68
+ ancestor.style.setProperty('overflow-y', on ? 'hidden' : overflowY);
69
+ });
70
+ };
71
+ toggle(true);
72
+ return function () {
73
+ return toggle(false);
74
+ };
75
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getActiveElement;
7
+ function getActiveElement() {
8
+ return typeof document !== 'undefined' && document.activeElement;
9
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getCalendarDaySettings;
8
+ var _getPhrase = _interopRequireDefault(require("./getPhrase"));
9
+ var _constants = require("../constants");
10
+ function isSelected(modifiers) {
11
+ return modifiers.has('selected') || modifiers.has('selected-span') || modifiers.has('selected-start') || modifiers.has('selected-end');
12
+ }
13
+ function shouldUseDefaultCursor(modifiers) {
14
+ return modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');
15
+ }
16
+ function isHoveredSpan(modifiers) {
17
+ if (isSelected(modifiers)) return false;
18
+ return modifiers.has('hovered-span') || modifiers.has('after-hovered-start') || modifiers.has('before-hovered-end');
19
+ }
20
+ function getAriaLabel(phrases, modifiers, day, ariaLabelFormat) {
21
+ var chooseAvailableDate = phrases.chooseAvailableDate,
22
+ dateIsUnavailable = phrases.dateIsUnavailable,
23
+ dateIsSelected = phrases.dateIsSelected,
24
+ dateIsSelectedAsStartDate = phrases.dateIsSelectedAsStartDate,
25
+ dateIsSelectedAsEndDate = phrases.dateIsSelectedAsEndDate;
26
+ var formattedDate = {
27
+ date: day.format(ariaLabelFormat)
28
+ };
29
+ if (modifiers.has('selected-start') && dateIsSelectedAsStartDate) {
30
+ return (0, _getPhrase["default"])(dateIsSelectedAsStartDate, formattedDate);
31
+ }
32
+ if (modifiers.has('selected-end') && dateIsSelectedAsEndDate) {
33
+ return (0, _getPhrase["default"])(dateIsSelectedAsEndDate, formattedDate);
34
+ }
35
+ if (isSelected(modifiers) && dateIsSelected) {
36
+ return (0, _getPhrase["default"])(dateIsSelected, formattedDate);
37
+ }
38
+ if (modifiers.has(_constants.BLOCKED_MODIFIER)) {
39
+ return (0, _getPhrase["default"])(dateIsUnavailable, formattedDate);
40
+ }
41
+ return (0, _getPhrase["default"])(chooseAvailableDate, formattedDate);
42
+ }
43
+ function getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {
44
+ return {
45
+ ariaLabel: getAriaLabel(phrases, modifiers, day, ariaLabelFormat),
46
+ hoveredSpan: isHoveredSpan(modifiers),
47
+ isOutsideRange: modifiers.has('blocked-out-of-range'),
48
+ selected: isSelected(modifiers),
49
+ useDefaultCursor: shouldUseDefaultCursor(modifiers),
50
+ daySizeStyles: {
51
+ width: daySize,
52
+ height: daySize - 1
53
+ }
54
+ };
55
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getCalendarMonthWeeks;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _constants = require("../constants");
10
+ function getCalendarMonthWeeks(month, enableOutsideDays) {
11
+ var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment["default"].localeData().firstDayOfWeek();
12
+ if (!_moment["default"].isMoment(month) || !month.isValid()) {
13
+ throw new TypeError('`month` must be a valid moment object');
14
+ }
15
+ if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) {
16
+ throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6');
17
+ }
18
+
19
+ // set utc offset to get correct dates in future (when timezone changes)
20
+ var firstOfMonth = month.clone().startOf('month').hour(12);
21
+ var lastOfMonth = month.clone().endOf('month').hour(12);
22
+
23
+ // calculate the exact first and last days to fill the entire matrix
24
+ // (considering days outside month)
25
+ var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7;
26
+ var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7;
27
+ var firstDay = firstOfMonth.clone().subtract(prevDays, 'day');
28
+ var lastDay = lastOfMonth.clone().add(nextDays, 'day');
29
+ var totalDays = lastDay.diff(firstDay, 'days') + 1;
30
+ var currentDay = firstDay.clone();
31
+ var weeksInMonth = [];
32
+ for (var i = 0; i < totalDays; i += 1) {
33
+ if (i % 7 === 0) {
34
+ weeksInMonth.push([]);
35
+ }
36
+ var day = null;
37
+ if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) {
38
+ day = currentDay.clone();
39
+ }
40
+ weeksInMonth[weeksInMonth.length - 1].push(day);
41
+ currentDay.add(1, 'day');
42
+ }
43
+ return weeksInMonth;
44
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getCalendarMonthWidth;
7
+ function getCalendarMonthWidth(daySize) {
8
+ var calendarMonthPadding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
9
+ return 7 * daySize + 2 * calendarMonthPadding + 1;
10
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getDetachedContainerStyles;
7
+ var _constants = require("../constants");
8
+ /**
9
+ * Calculate and return a CSS transform style to position a detached element
10
+ * next to a reference element. The open and anchor direction indicate wether
11
+ * it should be positioned above/below and/or to the left/right of the
12
+ * reference element.
13
+ *
14
+ * Assuming r(0,0), r(1,1), d(0,0), d(1,1) for the bottom-left and top-right
15
+ * corners of the reference and detached elements, respectively:
16
+ * - openDirection = DOWN, anchorDirection = LEFT => d(0,1) == r(0,1)
17
+ * - openDirection = UP, anchorDirection = LEFT => d(0,0) == r(0,0)
18
+ * - openDirection = DOWN, anchorDirection = RIGHT => d(1,1) == r(1,1)
19
+ * - openDirection = UP, anchorDirection = RIGHT => d(1,0) == r(1,0)
20
+ *
21
+ * By using a CSS transform, we allow to further position it using
22
+ * top/bottom CSS properties for the anchor gutter.
23
+ *
24
+ * @param {string} openDirection The vertical positioning of the popup
25
+ * @param {string} anchorDirection The horizontal position of the popup
26
+ * @param {HTMLElement} referenceEl The reference element
27
+ */
28
+ function getDetachedContainerStyles(openDirection, anchorDirection, referenceEl) {
29
+ var referenceRect = referenceEl.getBoundingClientRect();
30
+ var offsetX = referenceRect.left;
31
+ var offsetY = referenceRect.top;
32
+ if (openDirection === _constants.OPEN_UP) {
33
+ offsetY = -(window.innerHeight - referenceRect.bottom);
34
+ }
35
+ if (anchorDirection === _constants.ANCHOR_RIGHT) {
36
+ offsetX = -(window.innerWidth - referenceRect.right);
37
+ }
38
+ return {
39
+ transform: "translate3d(".concat(Math.round(offsetX), "px, ").concat(Math.round(offsetY), "px, 0)")
40
+ };
41
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getInputHeight;
7
+ /* eslint-disable camelcase */
8
+
9
+ function getPadding(vertical, top, bottom) {
10
+ var isTopDefined = typeof top === 'number';
11
+ var isBottomDefined = typeof bottom === 'number';
12
+ var isVerticalDefined = typeof vertical === 'number';
13
+ if (isTopDefined && isBottomDefined) {
14
+ return top + bottom;
15
+ }
16
+ if (isTopDefined && isVerticalDefined) {
17
+ return top + vertical;
18
+ }
19
+ if (isTopDefined) {
20
+ return top;
21
+ }
22
+ if (isBottomDefined && isVerticalDefined) {
23
+ return bottom + vertical;
24
+ }
25
+ if (isBottomDefined) {
26
+ return bottom;
27
+ }
28
+ if (isVerticalDefined) {
29
+ return 2 * vertical;
30
+ }
31
+ return 0;
32
+ }
33
+ function getInputHeight(_ref, small) {
34
+ var _ref$font$input = _ref.font.input,
35
+ lineHeight = _ref$font$input.lineHeight,
36
+ lineHeight_small = _ref$font$input.lineHeight_small,
37
+ _ref$spacing = _ref.spacing,
38
+ inputPadding = _ref$spacing.inputPadding,
39
+ displayTextPaddingVertical = _ref$spacing.displayTextPaddingVertical,
40
+ displayTextPaddingTop = _ref$spacing.displayTextPaddingTop,
41
+ displayTextPaddingBottom = _ref$spacing.displayTextPaddingBottom,
42
+ displayTextPaddingVertical_small = _ref$spacing.displayTextPaddingVertical_small,
43
+ displayTextPaddingTop_small = _ref$spacing.displayTextPaddingTop_small,
44
+ displayTextPaddingBottom_small = _ref$spacing.displayTextPaddingBottom_small;
45
+ var calcLineHeight = small ? lineHeight_small : lineHeight;
46
+ var padding = small ? getPadding(displayTextPaddingVertical_small, displayTextPaddingTop_small, displayTextPaddingBottom_small) : getPadding(displayTextPaddingVertical, displayTextPaddingTop, displayTextPaddingBottom);
47
+ return parseInt(calcLineHeight, 10) + 2 * inputPadding + padding;
48
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getNumberOfCalendarMonthWeeks;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ function getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) {
10
+ var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek;
11
+ return (weekDayDiff + 7) % 7;
12
+ }
13
+ function getNumberOfCalendarMonthWeeks(month) {
14
+ var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment["default"].localeData().firstDayOfWeek();
15
+ var firstDayOfMonth = month.clone().startOf('month').hour(12);
16
+ var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek);
17
+ return Math.ceil((numBlankDays + month.daysInMonth()) / 7);
18
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getPhrase;
7
+ function getPhrase(phrase, args) {
8
+ if (typeof phrase === 'string') return phrase;
9
+ if (typeof phrase === 'function') {
10
+ return phrase(args);
11
+ }
12
+ return '';
13
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getPhrasePropTypes;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function getPhrasePropTypes(defaultPhrases) {
13
+ return Object.keys(defaultPhrases).reduce(function (phrases, key) {
14
+ return _objectSpread(_objectSpread({}, phrases), {}, (0, _defineProperty2["default"])({}, key, _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func, _propTypes["default"].node])));
15
+ }, {});
16
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getPooledMoment;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var momentPool = new Map();
10
+ function getPooledMoment(dayString) {
11
+ if (!momentPool.has(dayString)) {
12
+ momentPool.set(dayString, (0, _moment["default"])(dayString));
13
+ }
14
+ return momentPool.get(dayString);
15
+ }