@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,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getPreviousMonthMemoLast;
7
+ var getPreviousMonthMemoKey;
8
+ var getPreviousMonthMemoValue;
9
+ function getPreviousMonthMemoLast(month) {
10
+ if (month !== getPreviousMonthMemoKey) {
11
+ getPreviousMonthMemoKey = month;
12
+ getPreviousMonthMemoValue = month.clone().subtract(1, 'month');
13
+ }
14
+ return getPreviousMonthMemoValue;
15
+ }
@@ -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"] = getResponsiveContainerStyles;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _constants = require("../constants");
10
+ function getResponsiveContainerStyles(anchorDirection, currentOffset, containerEdge, margin) {
11
+ var windowWidth = typeof window !== 'undefined' ? window.innerWidth : 0;
12
+ var calculatedOffset = anchorDirection === _constants.ANCHOR_LEFT ? windowWidth - containerEdge : containerEdge;
13
+ var calculatedMargin = margin || 0;
14
+ return (0, _defineProperty2["default"])({}, anchorDirection, Math.min(currentOffset + calculatedOffset - calculatedMargin, 0));
15
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getSelectedDateOffset;
7
+ var defaultModifier = function defaultModifier(day) {
8
+ return day;
9
+ };
10
+ function getSelectedDateOffset(fn, day) {
11
+ var modifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultModifier;
12
+ if (!fn) return day;
13
+ return modifier(fn(day.clone()));
14
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = getTransformStyles;
7
+ function getTransformStyles(transformValue) {
8
+ return {
9
+ transform: transformValue,
10
+ msTransform: transformValue,
11
+ MozTransform: transformValue,
12
+ WebkitTransform: transformValue
13
+ };
14
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getVisibleDays;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _toISOMonthString = _interopRequireDefault(require("./toISOMonthString"));
10
+ function getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) {
11
+ if (!_moment["default"].isMoment(month)) return {};
12
+ var visibleDaysByMonth = {};
13
+ var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month');
14
+ for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {
15
+ var visibleDays = [];
16
+
17
+ // set utc offset to get correct dates in future (when timezone changes)
18
+ var baseDate = currentMonth.clone();
19
+ var firstOfMonth = baseDate.clone().startOf('month').hour(12);
20
+ var lastOfMonth = baseDate.clone().endOf('month').hour(12);
21
+ var currentDay = firstOfMonth.clone();
22
+
23
+ // days belonging to the previous month
24
+ if (enableOutsideDays) {
25
+ for (var j = 0; j < currentDay.weekday(); j += 1) {
26
+ var prevDay = currentDay.clone().subtract(j + 1, 'day');
27
+ visibleDays.unshift(prevDay);
28
+ }
29
+ }
30
+ while (currentDay < lastOfMonth) {
31
+ visibleDays.push(currentDay.clone());
32
+ currentDay.add(1, 'day');
33
+ }
34
+ if (enableOutsideDays) {
35
+ // weekday() returns the index of the day of the week according to the locale
36
+ // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1
37
+ if (currentDay.weekday() !== 0) {
38
+ // days belonging to the next month
39
+ for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) {
40
+ var nextDay = currentDay.clone().add(count, 'day');
41
+ visibleDays.push(nextDay);
42
+ }
43
+ }
44
+ }
45
+ visibleDaysByMonth[(0, _toISOMonthString["default"])(currentMonth)] = visibleDays;
46
+ currentMonth = currentMonth.clone().add(1, 'month');
47
+ }
48
+ return visibleDaysByMonth;
49
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isAfterDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isBeforeDay = _interopRequireDefault(require("./isBeforeDay"));
10
+ var _isSameDay = _interopRequireDefault(require("./isSameDay"));
11
+ function isAfterDay(a, b) {
12
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
13
+ return !(0, _isBeforeDay["default"])(a, b) && !(0, _isSameDay["default"])(a, b);
14
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isBeforeDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ function isBeforeDay(a, b) {
10
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
11
+ var aYear = a.year();
12
+ var aMonth = a.month();
13
+ var bYear = b.year();
14
+ var bMonth = b.month();
15
+ var isSameYear = aYear === bYear;
16
+ var isSameMonth = aMonth === bMonth;
17
+ if (isSameYear && isSameMonth) return a.date() < b.date();
18
+ if (isSameYear) return aMonth < bMonth;
19
+ return aYear < bYear;
20
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isDayVisible;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isBeforeDay = _interopRequireDefault(require("./isBeforeDay"));
10
+ var _isAfterDay = _interopRequireDefault(require("./isAfterDay"));
11
+ var _toISOMonthString = _interopRequireDefault(require("./toISOMonthString"));
12
+ var startCacheOutsideDays = new Map();
13
+ var endCacheOutsideDays = new Map();
14
+ var startCacheInsideDays = new Map();
15
+ var endCacheInsideDays = new Map();
16
+ function isDayVisible(day, month, numberOfMonths, enableOutsideDays) {
17
+ if (!_moment["default"].isMoment(day)) return false;
18
+
19
+ // Cloning is a little expensive, so we want to do it as little as possible.
20
+
21
+ var startKey = (0, _toISOMonthString["default"])(month);
22
+ // eslint-disable-next-line prefer-template
23
+ var endKey = startKey + '+' + numberOfMonths;
24
+ if (enableOutsideDays) {
25
+ if (!startCacheOutsideDays.has(startKey)) {
26
+ startCacheOutsideDays.set(startKey, month.clone().startOf('month').startOf('week').hour(12));
27
+ }
28
+ if ((0, _isBeforeDay["default"])(day, startCacheOutsideDays.get(startKey))) return false;
29
+ if (!endCacheOutsideDays.has(endKey)) {
30
+ endCacheOutsideDays.set(endKey, month.clone().endOf('week').add(numberOfMonths - 1, 'months').endOf('month').endOf('week').hour(12));
31
+ }
32
+ return !(0, _isAfterDay["default"])(day, endCacheOutsideDays.get(endKey));
33
+ }
34
+
35
+ // !enableOutsideDays
36
+
37
+ if (!startCacheInsideDays.has(startKey)) {
38
+ startCacheInsideDays.set(startKey, month.clone().startOf('month').hour(12));
39
+ }
40
+ if ((0, _isBeforeDay["default"])(day, startCacheInsideDays.get(startKey))) return false;
41
+ if (!endCacheInsideDays.has(endKey)) {
42
+ endCacheInsideDays.set(endKey, month.clone().add(numberOfMonths - 1, 'months').endOf('month').hour(12));
43
+ }
44
+ return !(0, _isAfterDay["default"])(day, endCacheInsideDays.get(endKey));
45
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isInclusivelyAfterDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isBeforeDay = _interopRequireDefault(require("./isBeforeDay"));
10
+ function isInclusivelyAfterDay(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ return !(0, _isBeforeDay["default"])(a, b);
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isInclusivelyBeforeDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isAfterDay = _interopRequireDefault(require("./isAfterDay"));
10
+ function isInclusivelyBeforeDay(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ return !(0, _isAfterDay["default"])(a, b);
13
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isNextDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isSameDay = _interopRequireDefault(require("./isSameDay"));
10
+ function isNextDay(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ var nextDay = (0, _moment["default"])(a).add(1, 'day');
13
+ return (0, _isSameDay["default"])(nextDay, b);
14
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isNextMonth;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isSameMonth = _interopRequireDefault(require("./isSameMonth"));
10
+ function isNextMonth(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ return (0, _isSameMonth["default"])(a.clone().add(1, 'month'), b);
13
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isPrevMonth;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isSameMonth = _interopRequireDefault(require("./isSameMonth"));
10
+ function isPrevMonth(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ return (0, _isSameMonth["default"])(a.clone().subtract(1, 'month'), b);
13
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isPreviousDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _isSameDay = _interopRequireDefault(require("./isSameDay"));
10
+ function isPreviousDay(a, b) {
11
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
12
+ var dayBefore = (0, _moment["default"])(a).subtract(1, 'day');
13
+ return (0, _isSameDay["default"])(dayBefore, b);
14
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isSameDay;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ function isSameDay(a, b) {
10
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
11
+ // Compare least significant, most likely to change units first
12
+ // Moment's isSame clones moment inputs and is a tad slow
13
+ return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();
14
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = isSameMonth;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ function isSameMonth(a, b) {
10
+ if (!_moment["default"].isMoment(a) || !_moment["default"].isMoment(b)) return false;
11
+ // Compare least significant, most likely to change units first
12
+ // Moment's isSame clones moment inputs and is a tad slow
13
+ return a.month() === b.month() && a.year() === b.year();
14
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = isTransitionEndSupported;
7
+ function isTransitionEndSupported() {
8
+ return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);
9
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.addModifier = addModifier;
8
+ exports.deleteModifier = deleteModifier;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _isDayVisible = _interopRequireDefault(require("./isDayVisible"));
11
+ var _toISODateString = _interopRequireDefault(require("./toISODateString"));
12
+ var _toISOMonthString = _interopRequireDefault(require("./toISOMonthString"));
13
+ var _getPreviousMonthMemoLast = _interopRequireDefault(require("./getPreviousMonthMemoLast"));
14
+ var _constants = require("../constants");
15
+ 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; }
16
+ 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; }
17
+ function addModifier(updatedDays, day, modifier, props, state) {
18
+ var numberOfVisibleMonths = props.numberOfMonths,
19
+ enableOutsideDays = props.enableOutsideDays,
20
+ orientation = props.orientation;
21
+ var firstVisibleMonth = state.currentMonth,
22
+ visibleDays = state.visibleDays;
23
+ var currentMonth = firstVisibleMonth;
24
+ var numberOfMonths = numberOfVisibleMonths;
25
+ if (orientation === _constants.VERTICAL_SCROLLABLE) {
26
+ numberOfMonths = Object.keys(visibleDays).length;
27
+ } else {
28
+ currentMonth = (0, _getPreviousMonthMemoLast["default"])(currentMonth);
29
+ numberOfMonths += 2;
30
+ }
31
+ if (!day || !(0, _isDayVisible["default"])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
32
+ return updatedDays;
33
+ }
34
+ var iso = (0, _toISODateString["default"])(day);
35
+ var updatedDaysAfterAddition = _objectSpread({}, updatedDays);
36
+ if (enableOutsideDays) {
37
+ var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
38
+ return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
39
+ });
40
+ updatedDaysAfterAddition = monthsToUpdate.reduce(function (acc, monthIso) {
41
+ var month = updatedDays[monthIso] || visibleDays[monthIso];
42
+ if (!month[iso] || !month[iso].has(modifier)) {
43
+ var modifiers = new Set(month[iso]);
44
+ modifiers.add(modifier);
45
+ acc[monthIso] = _objectSpread(_objectSpread({}, month), {}, (0, _defineProperty2["default"])({}, iso, modifiers));
46
+ }
47
+ return acc;
48
+ }, updatedDaysAfterAddition);
49
+ } else {
50
+ var monthIso = (0, _toISOMonthString["default"])(day);
51
+ var month = updatedDays[monthIso] || visibleDays[monthIso] || {};
52
+ if (!month[iso] || !month[iso].has(modifier)) {
53
+ var modifiers = new Set(month[iso]);
54
+ modifiers.add(modifier);
55
+ updatedDaysAfterAddition[monthIso] = _objectSpread(_objectSpread({}, month), {}, (0, _defineProperty2["default"])({}, iso, modifiers));
56
+ }
57
+ }
58
+ return updatedDaysAfterAddition;
59
+ }
60
+ function deleteModifier(updatedDays, day, modifier, props, state) {
61
+ var numberOfVisibleMonths = props.numberOfMonths,
62
+ enableOutsideDays = props.enableOutsideDays,
63
+ orientation = props.orientation;
64
+ var firstVisibleMonth = state.currentMonth,
65
+ visibleDays = state.visibleDays;
66
+ var currentMonth = firstVisibleMonth;
67
+ var numberOfMonths = numberOfVisibleMonths;
68
+ if (orientation === _constants.VERTICAL_SCROLLABLE) {
69
+ numberOfMonths = Object.keys(visibleDays).length;
70
+ } else {
71
+ currentMonth = (0, _getPreviousMonthMemoLast["default"])(currentMonth);
72
+ numberOfMonths += 2;
73
+ }
74
+ if (!day || !(0, _isDayVisible["default"])(day, currentMonth, numberOfMonths, enableOutsideDays)) {
75
+ return updatedDays;
76
+ }
77
+ var iso = (0, _toISODateString["default"])(day);
78
+ var updatedDaysAfterDeletion = _objectSpread({}, updatedDays);
79
+ if (enableOutsideDays) {
80
+ var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {
81
+ return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;
82
+ });
83
+ updatedDaysAfterDeletion = monthsToUpdate.reduce(function (acc, monthIso) {
84
+ var month = updatedDays[monthIso] || visibleDays[monthIso];
85
+ if (month[iso] && month[iso].has(modifier)) {
86
+ var modifiers = new Set(month[iso]);
87
+ modifiers["delete"](modifier);
88
+ acc[monthIso] = _objectSpread(_objectSpread({}, month), {}, (0, _defineProperty2["default"])({}, iso, modifiers));
89
+ }
90
+ return acc;
91
+ }, updatedDaysAfterDeletion);
92
+ } else {
93
+ var monthIso = (0, _toISOMonthString["default"])(day);
94
+ var month = updatedDays[monthIso] || visibleDays[monthIso] || {};
95
+ if (month[iso] && month[iso].has(modifier)) {
96
+ var modifiers = new Set(month[iso]);
97
+ modifiers["delete"](modifier);
98
+ updatedDaysAfterDeletion[monthIso] = _objectSpread(_objectSpread({}, month), {}, (0, _defineProperty2["default"])({}, iso, modifiers));
99
+ }
100
+ }
101
+ return updatedDaysAfterDeletion;
102
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = noflip;
7
+ var NOFLIP = '/* @noflip */';
8
+
9
+ // Appends a noflip comment to a style rule in order to prevent it from being automatically
10
+ // flipped in RTL contexts. This should be used only in situations where the style must remain
11
+ // unflipped regardless of direction context. See: https://github.com/kentcdodds/rtl-css-js#usage
12
+ function noflip(value) {
13
+ if (typeof value === 'number') return "".concat(value, "px ").concat(NOFLIP);
14
+ if (typeof value === 'string') return "".concat(value, " ").concat(NOFLIP);
15
+ throw new TypeError('noflip expects a string or a number');
16
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = registerCSSInterfaceWithDefaultTheme;
8
+ var _reactWithStylesInterfaceCss = _interopRequireDefault(require("react-with-styles-interface-css"));
9
+ var _registerInterfaceWithDefaultTheme = _interopRequireDefault(require("./registerInterfaceWithDefaultTheme"));
10
+ function registerCSSInterfaceWithDefaultTheme() {
11
+ (0, _registerInterfaceWithDefaultTheme["default"])(_reactWithStylesInterfaceCss["default"]);
12
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = registerInterfaceWithDefaultTheme;
8
+ var _ThemedStyleSheet = _interopRequireDefault(require("react-with-styles/lib/ThemedStyleSheet"));
9
+ var _DefaultTheme = _interopRequireDefault(require("../theme/DefaultTheme"));
10
+ function registerInterfaceWithDefaultTheme(reactWithStylesInterface) {
11
+ _ThemedStyleSheet["default"].registerInterface(reactWithStylesInterface);
12
+ _ThemedStyleSheet["default"].registerTheme(_DefaultTheme["default"]);
13
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = toISODateString;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _toMomentObject = _interopRequireDefault(require("./toMomentObject"));
10
+ function toISODateString(date, currentFormat) {
11
+ var dateObj = _moment["default"].isMoment(date) ? date : (0, _toMomentObject["default"])(date, currentFormat);
12
+ if (!dateObj) return null;
13
+
14
+ // Template strings compiled in strict mode uses concat, which is slow. Since
15
+ // this code is in a hot path and we want it to be as fast as possible, we
16
+ // want to use old-fashioned +.
17
+ // eslint-disable-next-line prefer-template
18
+ return dateObj.year() + '-' + String(dateObj.month() + 1).padStart(2, '0') + '-' + String(dateObj.date()).padStart(2, '0');
19
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = toISOMonthString;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _toMomentObject = _interopRequireDefault(require("./toMomentObject"));
10
+ function toISOMonthString(date, currentFormat) {
11
+ var dateObj = _moment["default"].isMoment(date) ? date : (0, _toMomentObject["default"])(date, currentFormat);
12
+ if (!dateObj) return null;
13
+
14
+ // Template strings compiled in strict mode uses concat, which is slow. Since
15
+ // this code is in a hot path and we want it to be as fast as possible, we
16
+ // want to use old-fashioned +.
17
+ // eslint-disable-next-line prefer-template
18
+ return dateObj.year() + '-' + String(dateObj.month() + 1).padStart(2, '0');
19
+ }
@@ -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"] = toLocalizedDateString;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _toMomentObject = _interopRequireDefault(require("./toMomentObject"));
10
+ var _constants = require("../constants");
11
+ function toLocalizedDateString(date, currentFormat) {
12
+ var dateObj = _moment["default"].isMoment(date) ? date : (0, _toMomentObject["default"])(date, currentFormat);
13
+ if (!dateObj) return null;
14
+ return dateObj.format(_constants.DISPLAY_FORMAT);
15
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = toMomentObject;
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+ var _constants = require("../constants");
10
+ function toMomentObject(dateString, customFormat) {
11
+ var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];
12
+ var date = (0, _moment["default"])(dateString, dateFormats, true);
13
+ return date.isValid() ? date.hour(12) : null;
14
+ }