guestbell-forms 3.0.18 → 3.0.20

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 (200) hide show
  1. package/.babelrc.js +1 -1
  2. package/build/components/base/input/BaseInput.js +8 -96
  3. package/build/components/base/input/BaseInput.js.map +1 -1
  4. package/build/components/base/input/index.js +0 -2
  5. package/build/components/base/input/index.js.map +1 -1
  6. package/build/components/bookingCalendar/BookingCalendar.d.ts +1 -0
  7. package/build/components/bookingCalendar/BookingCalendar.js +10 -32
  8. package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
  9. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js +2 -22
  10. package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
  11. package/build/components/bookingCalendar/bookingCalendarControls/classes.js.map +1 -1
  12. package/build/components/bookingCalendar/bookingCalendarControls/index.js +0 -4
  13. package/build/components/bookingCalendar/bookingCalendarControls/index.js.map +1 -1
  14. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js +6 -19
  15. package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js.map +1 -1
  16. package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.js.map +1 -1
  17. package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js +0 -4
  18. package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js.map +1 -1
  19. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.d.ts +2 -1
  20. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js +11 -10
  21. package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js.map +1 -1
  22. package/build/components/bookingCalendar/bookingCalendarGrid/classes.js.map +1 -1
  23. package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js +0 -9
  24. package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js.map +1 -1
  25. package/build/components/bookingCalendar/bookingCalendarItem/classes.js.map +1 -1
  26. package/build/components/bookingCalendar/bookingCalendarItem/index.js +0 -4
  27. package/build/components/bookingCalendar/bookingCalendarItem/index.js.map +1 -1
  28. package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js +0 -10
  29. package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js.map +1 -1
  30. package/build/components/bookingCalendar/bookingCalendarLane/classes.js.map +1 -1
  31. package/build/components/bookingCalendar/bookingCalendarLane/index.js +0 -4
  32. package/build/components/bookingCalendar/bookingCalendarLane/index.js.map +1 -1
  33. package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js +0 -7
  34. package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js.map +1 -1
  35. package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.js.map +1 -1
  36. package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js +0 -2
  37. package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js.map +1 -1
  38. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js +0 -12
  39. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js.map +1 -1
  40. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js +0 -9
  41. package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
  42. package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.js.map +1 -1
  43. package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js +0 -4
  44. package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js.map +1 -1
  45. package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js +0 -9
  46. package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js.map +1 -1
  47. package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.js.map +1 -1
  48. package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js +0 -2
  49. package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js.map +1 -1
  50. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +0 -30
  51. package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
  52. package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js +0 -7
  53. package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js.map +1 -1
  54. package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.js.map +1 -1
  55. package/build/components/bookingCalendar/classes.js.map +1 -1
  56. package/build/components/bookingCalendar/common.js +0 -9
  57. package/build/components/bookingCalendar/common.js.map +1 -1
  58. package/build/components/bookingCalendar/index.js +0 -6
  59. package/build/components/bookingCalendar/index.js.map +1 -1
  60. package/build/components/bookingCalendar/utils.js +5 -50
  61. package/build/components/bookingCalendar/utils.js.map +1 -1
  62. package/build/components/button/Button.js +9 -37
  63. package/build/components/button/Button.js.map +1 -1
  64. package/build/components/button/index.js +0 -4
  65. package/build/components/button/index.js.map +1 -1
  66. package/build/components/checkbox/Checkbox.js +5 -35
  67. package/build/components/checkbox/Checkbox.js.map +1 -1
  68. package/build/components/checkbox/index.js +0 -4
  69. package/build/components/checkbox/index.js.map +1 -1
  70. package/build/components/dropdown/Dropdown.js +1 -15
  71. package/build/components/dropdown/Dropdown.js.map +1 -1
  72. package/build/components/dropdown/index.js +0 -4
  73. package/build/components/dropdown/index.js.map +1 -1
  74. package/build/components/dynamicSubmit/DynamicSubmit.js +7 -39
  75. package/build/components/dynamicSubmit/DynamicSubmit.js.map +1 -1
  76. package/build/components/dynamicSubmit/index.js +0 -4
  77. package/build/components/dynamicSubmit/index.js.map +1 -1
  78. package/build/components/externalValidationComponent/ExternalValidationComponent.js +6 -17
  79. package/build/components/externalValidationComponent/ExternalValidationComponent.js.map +1 -1
  80. package/build/components/externalValidationComponent/index.js +0 -4
  81. package/build/components/externalValidationComponent/index.js.map +1 -1
  82. package/build/components/form/Form.js +8 -46
  83. package/build/components/form/Form.js.map +1 -1
  84. package/build/components/form/FormContext.js +0 -4
  85. package/build/components/form/FormContext.js.map +1 -1
  86. package/build/components/form/FormValidationSummary.js +3 -25
  87. package/build/components/form/FormValidationSummary.js.map +1 -1
  88. package/build/components/form/index.js +0 -10
  89. package/build/components/form/index.js.map +1 -1
  90. package/build/components/form/withFormContext.js +0 -6
  91. package/build/components/form/withFormContext.js.map +1 -1
  92. package/build/components/inputGroup/InputGroup.js +5 -15
  93. package/build/components/inputGroup/InputGroup.js.map +1 -1
  94. package/build/components/inputGroup/index.js +0 -4
  95. package/build/components/inputGroup/index.js.map +1 -1
  96. package/build/components/inputHeader/InputHeader.js +16 -75
  97. package/build/components/inputHeader/InputHeader.js.map +1 -1
  98. package/build/components/inputHeader/InputHeaderContext.js +0 -4
  99. package/build/components/inputHeader/InputHeaderContext.js.map +1 -1
  100. package/build/components/inputHeader/index.js +0 -4
  101. package/build/components/inputHeader/index.js.map +1 -1
  102. package/build/components/inputHeader/withInputHeaderContext.js +0 -6
  103. package/build/components/inputHeader/withInputHeaderContext.js.map +1 -1
  104. package/build/components/money/Money.js +20 -64
  105. package/build/components/money/Money.js.map +1 -1
  106. package/build/components/money/index.js +0 -4
  107. package/build/components/money/index.js.map +1 -1
  108. package/build/components/numberInput/NumberInput.js +13 -44
  109. package/build/components/numberInput/NumberInput.js.map +1 -1
  110. package/build/components/numberInput/index.js +0 -4
  111. package/build/components/numberInput/index.js.map +1 -1
  112. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +13 -62
  113. package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
  114. package/build/components/openingHours/openingHoursDay/index.js +0 -4
  115. package/build/components/openingHours/openingHoursDay/index.js.map +1 -1
  116. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js +18 -49
  117. package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js.map +1 -1
  118. package/build/components/openingHours/openingHoursSpecial/index.js +0 -4
  119. package/build/components/openingHours/openingHoursSpecial/index.js.map +1 -1
  120. package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js +16 -53
  121. package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js.map +1 -1
  122. package/build/components/openingHours/openingHoursWeek/index.js +0 -4
  123. package/build/components/openingHours/openingHoursWeek/index.js.map +1 -1
  124. package/build/components/openingHours/utils/OpeningHoursUtil.js +3 -21
  125. package/build/components/openingHours/utils/OpeningHoursUtil.js.map +1 -1
  126. package/build/components/radio/Radio.js +4 -19
  127. package/build/components/radio/Radio.js.map +1 -1
  128. package/build/components/radio/index.js +0 -4
  129. package/build/components/radio/index.js.map +1 -1
  130. package/build/components/radioContainer/RadioContainer.js +2 -13
  131. package/build/components/radioContainer/RadioContainer.js.map +1 -1
  132. package/build/components/radioContainer/index.js +0 -4
  133. package/build/components/radioContainer/index.js.map +1 -1
  134. package/build/components/select/Select.js +6 -53
  135. package/build/components/select/Select.js.map +1 -1
  136. package/build/components/select/index.js +0 -4
  137. package/build/components/select/index.js.map +1 -1
  138. package/build/components/submit/Submit.js +5 -28
  139. package/build/components/submit/Submit.js.map +1 -1
  140. package/build/components/submit/index.js +0 -4
  141. package/build/components/submit/index.js.map +1 -1
  142. package/build/components/submit/subComponents/SubmitValidationSummary.js +0 -9
  143. package/build/components/submit/subComponents/SubmitValidationSummary.js.map +1 -1
  144. package/build/components/tags/Tags.js +34 -119
  145. package/build/components/tags/Tags.js.map +1 -1
  146. package/build/components/tags/index.js +0 -4
  147. package/build/components/tags/index.js.map +1 -1
  148. package/build/components/tags/subComponents/TagsSuggestions.js +0 -14
  149. package/build/components/tags/subComponents/TagsSuggestions.js.map +1 -1
  150. package/build/components/text/Text.js +10 -42
  151. package/build/components/text/Text.js.map +1 -1
  152. package/build/components/text/index.js +0 -4
  153. package/build/components/text/index.js.map +1 -1
  154. package/build/components/textArea/TextArea.js +8 -31
  155. package/build/components/textArea/TextArea.js.map +1 -1
  156. package/build/components/textArea/index.js +0 -4
  157. package/build/components/textArea/index.js.map +1 -1
  158. package/build/components/themeProvider/ThemeContext.js +0 -4
  159. package/build/components/themeProvider/ThemeContext.js.map +1 -1
  160. package/build/components/themeProvider/ThemeProvider.js +2 -6
  161. package/build/components/themeProvider/ThemeProvider.js.map +1 -1
  162. package/build/components/themeProvider/index.js +0 -8
  163. package/build/components/themeProvider/index.js.map +1 -1
  164. package/build/components/themeProvider/withThemeContext.js +0 -8
  165. package/build/components/themeProvider/withThemeContext.js.map +1 -1
  166. package/build/components/time/Time.js +17 -73
  167. package/build/components/time/Time.js.map +1 -1
  168. package/build/components/time/index.js +0 -4
  169. package/build/components/time/index.js.map +1 -1
  170. package/build/components/timeSpan/TimeSpan.js +17 -99
  171. package/build/components/timeSpan/TimeSpan.js.map +1 -1
  172. package/build/components/timeSpan/index.js +0 -4
  173. package/build/components/timeSpan/index.js.map +1 -1
  174. package/build/components/utils/Guid.js +0 -3
  175. package/build/components/utils/Guid.js.map +1 -1
  176. package/build/components/utils/ShallowEqual.js +5 -10
  177. package/build/components/utils/ShallowEqual.js.map +1 -1
  178. package/build/components/utils/TimeUtil.js +1 -3
  179. package/build/components/utils/TimeUtil.js.map +1 -1
  180. package/build/dist/guestbell-forms.css.map +1 -1
  181. package/build/dist/guestbell-forms.js +21 -84
  182. package/build/dist/guestbell-forms.js.map +1 -1
  183. package/build/dist/guestbell-forms.min.js +1 -1
  184. package/build/dist/guestbell-forms.min.js.map +1 -1
  185. package/build/dist/report.html +13 -41
  186. package/build/index.js +0 -48
  187. package/build/index.js.map +1 -1
  188. package/build/validators/EmailValidator.js +0 -4
  189. package/build/validators/EmailValidator.js.map +1 -1
  190. package/build/validators/LatitudeValidator.js +0 -8
  191. package/build/validators/LatitudeValidator.js.map +1 -1
  192. package/build/validators/LongitudeValidator.js +0 -8
  193. package/build/validators/LongitudeValidator.js.map +1 -1
  194. package/build/validators/NumberValidator.js +0 -15
  195. package/build/validators/NumberValidator.js.map +1 -1
  196. package/build/validators/UrlValidator.js +2 -5
  197. package/build/validators/UrlValidator.js.map +1 -1
  198. package/build/validators/index.js +0 -7
  199. package/build/validators/index.js.map +1 -1
  200. package/package.json +19 -19
@@ -4,50 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BookingCalendar = BookingCalendar;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _classes = require("./classes");
11
-
12
9
  var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
10
  var _common = require("./common");
15
-
16
11
  var _BookingCalendarControls = require("./bookingCalendarControls/BookingCalendarControls");
17
-
18
12
  var _utils = require("./utils");
19
-
20
13
  var _BookingCalendarLane = require("./bookingCalendarLane/BookingCalendarLane");
21
-
22
14
  var _moment = require("moment");
23
-
24
15
  var _BookingCalendarGrid = require("./bookingCalendarGrid/BookingCalendarGrid");
25
-
26
16
  var _bookingCalendarLaneHeader = require("./bookingCalendarLaneHeader");
27
-
28
17
  var _bookingCalendarLanesHeader = require("./bookingCalendarLanesHeader");
29
-
30
18
  var _bookingCalendarDatePicker = require("./bookingCalendarDatePicker");
31
-
32
19
  var _ = require(".");
33
-
34
20
  var _BookingCalendarTimeAxis = require("./bookingCalendarTimeAxis/BookingCalendarTimeAxis");
35
-
36
21
  var _reactCoolDimensions = _interopRequireDefault(require("react-cool-dimensions"));
37
-
38
22
  var _BookingCalendarSelection = _interopRequireDefault(require("./bookingCalendarSelection/BookingCalendarSelection"));
39
-
40
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
-
42
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
-
44
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
-
46
26
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
47
-
48
27
  const defaultStep = (0, _moment.duration)(1, 'day');
49
-
50
28
  function BookingCalendar(props) {
29
+ var _entry$target;
51
30
  const {
52
31
  bookings,
53
32
  className,
@@ -79,32 +58,30 @@ function BookingCalendar(props) {
79
58
  BookingCalendarGrid = _BookingCalendarGrid.BookingCalendarGrid,
80
59
  BookingCalendarLaneHeader = _bookingCalendarLaneHeader.BookingCalendarLaneHeader,
81
60
  BookingCalendarLanesHeader = _bookingCalendarLanesHeader.BookingCalendarLanesHeader,
82
- BookingCalendarDatePicker = _bookingCalendarDatePicker.BookingCalendarDatePicker
61
+ BookingCalendarDatePicker = _bookingCalendarDatePicker.BookingCalendarDatePicker,
62
+ children
83
63
  } = props;
84
64
  const lanes = React.useMemo(() => (0, _utils.splitBookingsToLanes)(bookings, from, minLanesCount, lanesSource), [bookings, from, minLanesCount, lanesSource]);
85
65
  const {
86
66
  observe,
87
- width
67
+ entry
88
68
  } = (0, _reactCoolDimensions.default)();
69
+ const width = (entry === null || entry === void 0 ? void 0 : (_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.scrollWidth) ?? 0;
89
70
  const {
90
71
  items: gridItems,
91
72
  bestStep
92
73
  } = React.useMemo(() => {
93
74
  var _from$clone;
94
-
95
75
  return (0, _utils.generateGridItems)(from, till, step, width, gridAvailableSteps, goalGridWidthPx, from === null || from === void 0 ? void 0 : (_from$clone = from.clone()) === null || _from$clone === void 0 ? void 0 : _from$clone.startOf('day'));
96
76
  }, [from, till, step, width, gridAvailableSteps, goalGridWidthPx]);
97
77
  const onSelected = React.useCallback(data => {
98
78
  if (!from || !till || !width || !onRangeChange) {
99
79
  return;
100
80
  }
101
-
102
81
  const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);
103
82
  const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);
104
83
  const durationMs = till.valueOf() - from.valueOf();
105
-
106
84
  const toTimeSpace = num => num / (width || 1) * durationMs;
107
-
108
85
  const timeSpaceStart = from.clone().add(toTimeSpace(screenSpaceStartX), 'ms');
109
86
  const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');
110
87
  onRangeChange({
@@ -125,9 +102,9 @@ function BookingCalendar(props) {
125
102
  })), /*#__PURE__*/React.createElement("div", {
126
103
  className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.tableClassName, tableClassName)
127
104
  }, showGrid && /*#__PURE__*/React.createElement(BookingCalendarGrid, {
128
- containerRef: observe,
129
105
  items: gridItems,
130
- dataRowsCount: lanes.length
106
+ dataRowsCount: lanes.length,
107
+ width: width
131
108
  }), showSelection && /*#__PURE__*/React.createElement(_BookingCalendarSelection.default, {
132
109
  dataRowsCount: lanes.length,
133
110
  onSelected: onSelected,
@@ -140,7 +117,8 @@ function BookingCalendar(props) {
140
117
  onRangeChange: onRangeChange,
141
118
  getNewMomentFunction: getNewMomentFunction
142
119
  }) : BookingCalendarDatePicker), /*#__PURE__*/React.createElement("div", {
143
- className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderContainerClassName, lanesHeaderContainerClassName)
120
+ className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.lanesHeaderContainerClassName, lanesHeaderContainerClassName),
121
+ ref: observe
144
122
  }, /*#__PURE__*/React.createElement(BookingCalendarLanesHeader, _extends({}, controlsClasses, {
145
123
  from: from,
146
124
  till: till,
@@ -177,6 +155,6 @@ function BookingCalendar(props) {
177
155
  items: gridItems,
178
156
  bestStep: bestStep,
179
157
  getMomentFormatFunction: getMomentFormatFunction
180
- }))));
158
+ }))), children);
181
159
  }
182
160
  //# sourceMappingURL=BookingCalendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookingCalendar.js","names":["defaultStep","duration","BookingCalendar","props","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","lanes","React","useMemo","splitBookingsToLanes","observe","width","useDimensions","items","gridItems","bestStep","generateGridItems","clone","startOf","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","target","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","classNames","bookingCalendarDefaultClasses","length","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","rowClassName","laneKey"],"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<\r\n T extends BookingCalendarItemT,\r\n TLaneData\r\n> extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, width } = useDimensions();\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n containerRef={observe}\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookingCalendar.js","names":["React","_interopRequireWildcard","require","_classes","_classnames","_interopRequireDefault","_common","_BookingCalendarControls","_utils","_BookingCalendarLane","_moment","_BookingCalendarGrid","_bookingCalendarLaneHeader","_bookingCalendarLanesHeader","_bookingCalendarDatePicker","_","_BookingCalendarTimeAxis","_reactCoolDimensions","_BookingCalendarSelection","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","defaultStep","duration","BookingCalendar","props","_entry$target","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","children","lanes","useMemo","splitBookingsToLanes","observe","entry","useDimensions","width","scrollWidth","items","gridItems","bestStep","_from$clone","generateGridItems","clone","startOf","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","createElement","classNames","bookingCalendarDefaultClasses","dataRowsCount","ref","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","Fragment","rowClassName","laneKey","BookingCalendarTimeAxis"],"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<T extends BookingCalendarItemT, TLaneData>\r\n extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n children?: React.ReactNode;\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n children,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, entry } = useDimensions<HTMLDivElement>();\r\n const width = entry?.target?.scrollWidth ?? 0;\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n width={width}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n ref={observe}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAMA,IAAAK,wBAAA,GAAAL,OAAA;AAIA,IAAAM,MAAA,GAAAN,OAAA;AAKA,IAAAO,oBAAA,GAAAP,OAAA;AAIA,IAAAQ,OAAA,GAAAR,OAAA;AAGA,IAAAS,oBAAA,GAAAT,OAAA;AAIA,IAAAU,0BAAA,GAAAV,OAAA;AAIA,IAAAW,2BAAA,GAAAX,OAAA;AAIA,IAAAY,0BAAA,GAAAZ,OAAA;AAIA,IAAAa,CAAA,GAAAb,OAAA;AAMA,IAAAc,wBAAA,GAAAd,OAAA;AACA,IAAAe,oBAAA,GAAAZ,sBAAA,CAAAH,OAAA;AACA,IAAAgB,yBAAA,GAAAb,sBAAA,CAAAH,OAAA;AAE6D,SAAAG,uBAAAc,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAtB,wBAAAkB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AA2C7D,MAAMI,WAAW,GAAG,IAAAC,gBAAQ,EAAC,CAAC,EAAE,KAAK,CAAC;AAE/B,SAASC,eAAeA,CAC7BC,KAAyC,EACzC;EAAA,IAAAC,aAAA;EACA,MAAM;IACJC,QAAQ;IACRC,SAAS;IACTC,sBAAsB;IACtBC,4BAA4B;IAC5BC,6BAA6B;IAC7BC,mCAAmC;IACnCC,eAAe;IACfC,cAAc;IACdC,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,IAAI,GAAGhB,WAAW;IAClBiB,QAAQ,GAAG,IAAI;IACfC,aAAa,GAAG,IAAI;IACpBC,kBAAkB,GAAGC,2BAAyB;IAC9CC,uBAAuB,GAAGC,sCAA8B;IACxDC,oBAAoB,GAAGC,6BAA2B;IAClDC,eAAe,GAAG,EAAE;IACpBC,gBAAgB,GAAG,EAAE;IACrBC,aAAa;IACbC,WAAW;IACXC,oBAAoB;IACpBC,UAAU;IACVC,uBAAuB,GAAGC,gDAA8B;IACxDC,mBAAmB;IACnBC,mBAAmB,GAAGC,wCAA0B;IAChDC,yBAAyB;IACzBC,mBAAmB,GAAGC,wCAA0B;IAChDC,yBAAyB,GAAGC,oDAAgC;IAC5DC,0BAA0B,GAAGC,sDAAiC;IAC9DC,yBAAyB,GAAGC,oDAAgC;IAC5DC;EACF,CAAC,GAAG1C,KAAK;EACT,MAAM2C,KAAK,GAAGhG,KAAK,CAACiG,OAAO,CACzB,MACE,IAAAC,2BAAoB,EAClB3C,QAAQ,EACRQ,IAAI,EACJc,aAAa,EACbC,WACF,CAAC,EACH,CAACvB,QAAQ,EAAEQ,IAAI,EAAEc,aAAa,EAAEC,WAAW,CAC7C,CAAC;EACD,MAAM;IAAEqB,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,4BAAa,EAAiB,CAAC;EAC1D,MAAMC,KAAK,GAAG,CAAAF,KAAK,aAALA,KAAK,wBAAA9C,aAAA,GAAL8C,KAAK,CAAExD,MAAM,cAAAU,aAAA,uBAAbA,aAAA,CAAeiD,WAAW,KAAI,CAAC;EAC7C,MAAM;IAAEC,KAAK,EAAEC,SAAS;IAAEC;EAAS,CAAC,GAAG1G,KAAK,CAACiG,OAAO,CAClD;IAAA,IAAAU,WAAA;IAAA,OACE,IAAAC,wBAAiB,EACf7C,IAAI,EACJC,IAAI,EACJE,IAAI,EACJoC,KAAK,EACLjC,kBAAkB,EAClBM,eAAe,EACfZ,IAAI,aAAJA,IAAI,wBAAA4C,WAAA,GAAJ5C,IAAI,CAAE8C,KAAK,CAAC,CAAC,cAAAF,WAAA,uBAAbA,WAAA,CAAeG,OAAO,CAAC,KAAK,CAC9B,CAAC;EAAA,GACH,CAAC/C,IAAI,EAAEC,IAAI,EAAEE,IAAI,EAAEoC,KAAK,EAAEjC,kBAAkB,EAAEM,eAAe,CAC/D,CAAC;EACD,MAAMoC,UAAU,GAAG/G,KAAK,CAACgH,WAAW,CACjCC,IAAkC,IAAK;IACtC,IAAI,CAAClD,IAAI,IAAI,CAACC,IAAI,IAAI,CAACsC,KAAK,IAAI,CAACrC,aAAa,EAAE;MAC9C;IACF;IACA,MAAMiD,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,CAAC,EAAEJ,IAAI,CAACrE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM0E,eAAe,GAAGH,IAAI,CAACI,GAAG,CAACN,IAAI,CAACI,MAAM,CAAC,CAAC,CAAC,EAAEJ,IAAI,CAACrE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM4E,UAAU,GAAGxD,IAAI,CAACyD,OAAO,CAAC,CAAC,GAAG1D,IAAI,CAAC0D,OAAO,CAAC,CAAC;IAClD,MAAMC,WAAW,GAAIC,GAAW,IAAMA,GAAG,IAAIrB,KAAK,IAAI,CAAC,CAAC,GAAIkB,UAAU;IACtE,MAAMI,cAAc,GAAG7D,IAAI,CACxB8C,KAAK,CAAC,CAAC,CACPgB,GAAG,CAACH,WAAW,CAACR,iBAAiB,CAAC,EAAE,IAAI,CAAC;IAC5C,MAAMY,YAAY,GAAG/D,IAAI,CAAC8C,KAAK,CAAC,CAAC,CAACgB,GAAG,CAACH,WAAW,CAACJ,eAAe,CAAC,EAAE,IAAI,CAAC;IACzErD,aAAa,CAAC;MAAEF,IAAI,EAAE6D,cAAc;MAAE5D,IAAI,EAAE8D;IAAa,CAAC,CAAC;EAC7D,CAAC,EACD,CAAC/D,IAAI,EAAEC,IAAI,EAAEsC,KAAK,EAAErC,aAAa,CACnC,CAAC;EACD,oBACEjE,KAAA,CAAA+H,aAAA;IACEvE,SAAS,EAAE,IAAAwE,mBAAU,EAACC,sCAA6B,CAACzE,SAAS,EAAEA,SAAS;EAAE,gBAE1ExD,KAAA,CAAA+H,aAAA,CAAC9C,uBAAuB,EAAAxC,QAAA,KAClBoB,eAAe;IACnB2C,KAAK,EAAEjD,QAAS;IAChBQ,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA,IAAK;IACXa,oBAAoB,EAAEA,oBAAqB;IAC3CC,UAAU,EAAEA;EAAW,EACxB,CAAC,eACFhF,KAAA,CAAA+H,aAAA;IACEvE,SAAS,EAAE,IAAAwE,mBAAU,EACnBC,sCAA6B,CAACnE,cAAc,EAC5CA,cACF;EAAE,GAEDK,QAAQ,iBACPnE,KAAA,CAAA+H,aAAA,CAACxC,mBAAmB;IAClBiB,KAAK,EAAEC,SAAU;IACjByB,aAAa,EAAElC,KAAK,CAACjD,MAAO;IAC5BuD,KAAK,EAAEA;EAAM,CACd,CACF,EACAlC,aAAa,iBACZpE,KAAA,CAAA+H,aAAA,CAAC7G,yBAAA,CAAAG,OAAwB;IACvB6G,aAAa,EAAElC,KAAK,CAACjD,MAAO;IAC5BgE,UAAU,EAAEA,UAAW;IACvBnC,gBAAgB,EAAEA;EAAiB,CACpC,CACF,eACD5E,KAAA,CAAA+H,aAAA;IACEvE,SAAS,EAAE,IAAAwE,mBAAU,EACnBC,sCAA6B,CAACrE,mCAAmC,EACjEA,mCACF;EAAE,GAED,OAAOiC,yBAAyB,KAAK,UAAU,gBAC9C7F,KAAA,CAAA+H,aAAA,CAAClC,yBAAyB;IACxB9B,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BQ,oBAAoB,EAAEA;EAAqB,CAC5C,CAAC,GAEFoB,yBAEC,CAAC,eACN7F,KAAA,CAAA+H,aAAA;IACEvE,SAAS,EAAE,IAAAwE,mBAAU,EACnBC,sCAA6B,CAACtE,6BAA6B,EAC3DA,6BACF,CAAE;IACFwE,GAAG,EAAEhC;EAAQ,gBAEbnG,KAAA,CAAA+H,aAAA,CAACpC,0BAA0B,EAAAlD,QAAA,KACrBoB,eAAe;IACnBE,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,EACZ,CACE,CAAC,EAEL8B,KAAK,CAACoC,GAAG,CAAC,CAACC,IAAI,EAAEC,SAAS,KAAK;IAC9B,MAAMC,6BAA6B,GACjCF,IAAI,CAAC5C,yBAAyB,IAAIA,yBAAyB;IAC7D,MAAM+C,uBAAuB,GAC3BH,IAAI,CAACjD,mBAAmB,IAAIA,mBAAmB;IACjD,oBACEpF,KAAA,CAAA+H,aAAA,CAAC/H,KAAK,CAACyI,QAAQ;MAACtG,GAAG,EAAEmG;IAAU,gBAC7BtI,KAAA,CAAA+H,aAAA;MACEvE,SAAS,EAAE,IAAAwE,mBAAU,EACnBC,sCAA6B,CAACvE,4BAA4B,EAC1DA,4BAA4B,EAC5B2E,IAAI,CAACK,YAAY,EACjB;QACE,CAAE,GAAET,sCAA6B,CAACvE,4BAA6B,QAAO,GACpE4E,SAAS,KAAKtC,KAAK,CAACjD,MAAM,GAAG,CAAC;QAChC,CAAE,GAAEkF,sCAA6B,CAACvE,4BAA6B,SAAQ,GACrE4E,SAAS,KAAK;MAClB,CACF;IAAE,gBAEFtI,KAAA,CAAA+H,aAAA,CAACQ,6BAA6B;MAC5BI,OAAO,EAAEN,IAAI,CAACM,OAAO,IAAIL,SAAU;MACnCrB,IAAI,EAAEoB,IAAI,CAACpB;IAAK,CACjB,CACE,CAAC,eACNjH,KAAA,CAAA+H,aAAA;MACEvE,SAAS,EAAE,IAAAwE,mBAAU,EACnBC,sCAA6B,CAACxE,sBAAsB,EACpDA,sBAAsB,EACtB4E,IAAI,CAACK,YAAY,EACjB;QACE,CAAE,GAAET,sCAA6B,CAACxE,sBAAuB,QAAO,GAC9D6E,SAAS,KAAKtC,KAAK,CAACjD,MAAM,GAAG,CAAC;QAChC,CAAE,GAAEkF,sCAA6B,CAACxE,sBAAuB,SAAQ,GAC/D6E,SAAS,KAAK;MAClB,CACF;IAAE,gBAEFtI,KAAA,CAAA+H,aAAA,CAACS,uBAAuB;MACtBF,SAAS,EAAEA,SAAU;MACrB9B,KAAK,EAAE6B,IAAI,CAAC7B,KAAM;MAClBzC,IAAI,EAAEA,IAAK;MACXC,IAAI,EAAEA,IAAK;MACXmB,mBAAmB,EACjBkD,IAAI,CAAClD,mBAAmB,IAAIA,mBAC7B;MACDG,yBAAyB,EACvB+C,IAAI,CAAC/C,yBAAyB,IAAIA,yBACnC;MACDpB,IAAI,EAAEA;IAAK,CACZ,CACE,CACS,CAAC;EAErB,CAAC,CAAC,eACFlE,KAAA,CAAA+H,aAAA,YAAM,CAAC,eACP/H,KAAA,CAAA+H,aAAA,2BACE/H,KAAA,CAAA+H,aAAA,CAAC/G,wBAAA,CAAA4H,uBAAuB;IACtBpC,KAAK,EAAEC,SAAU;IACjBC,QAAQ,EAAEA,QAAS;IACnBnC,uBAAuB,EAAEA;EAAwB,CAClD,CACE,CACF,CAAC,EACLwB,QACE,CAAC;AAEV"}
@@ -4,88 +4,69 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BookingCalendarControls = BookingCalendarControls;
7
-
8
7
  var _classnames = _interopRequireDefault(require("classnames"));
9
-
10
8
  var React = _interopRequireWildcard(require("react"));
11
-
12
9
  var _moment = require("moment");
13
-
14
10
  var _ = require(".");
15
-
16
11
  var _Button = require("../../button/Button");
17
-
18
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  var LeftArrowLongIcon = function LeftArrowLongIcon(props) {
25
16
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
26
17
  d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"
27
18
  }));
28
19
  };
29
-
30
20
  LeftArrowLongIcon.defaultProps = {
31
21
  xmlns: "http://www.w3.org/2000/svg",
32
22
  width: "24",
33
23
  height: "24",
34
24
  viewBox: "0 0 24 24"
35
25
  };
36
-
37
26
  var LeftArrowIcon = function LeftArrowIcon(props) {
38
27
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
39
28
  d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"
40
29
  }));
41
30
  };
42
-
43
31
  LeftArrowIcon.defaultProps = {
44
32
  xmlns: "http://www.w3.org/2000/svg",
45
33
  width: "24",
46
34
  height: "24",
47
35
  viewBox: "0 0 24 24"
48
36
  };
49
-
50
37
  var RightArrowLongIcon = function RightArrowLongIcon(props) {
51
38
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
52
39
  d: "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"
53
40
  }));
54
41
  };
55
-
56
42
  RightArrowLongIcon.defaultProps = {
57
43
  xmlns: "http://www.w3.org/2000/svg",
58
44
  width: "24",
59
45
  height: "24",
60
46
  viewBox: "0 0 24 24"
61
47
  };
62
-
63
48
  var RightArrowIcon = function RightArrowIcon(props) {
64
49
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
65
50
  d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
66
51
  }));
67
52
  };
68
-
69
53
  RightArrowIcon.defaultProps = {
70
54
  xmlns: "http://www.w3.org/2000/svg",
71
55
  width: "24",
72
56
  height: "24",
73
57
  viewBox: "0 0 24 24"
74
58
  };
75
-
76
59
  var UnfoldLessIcon = function UnfoldLessIcon(props) {
77
60
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
78
61
  d: "M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"
79
62
  }));
80
63
  };
81
-
82
64
  UnfoldLessIcon.defaultProps = {
83
65
  xmlns: "http://www.w3.org/2000/svg",
84
66
  width: "24",
85
67
  height: "24",
86
68
  viewBox: "0 0 24 24"
87
69
  };
88
-
89
70
  function BookingCalendarControls(props) {
90
71
  const {
91
72
  className,
@@ -101,11 +82,9 @@ function BookingCalendarControls(props) {
101
82
  items,
102
83
  filterBookingsToZoom = () => true
103
84
  } = props;
104
-
105
85
  if (!step || !from || !till) {
106
86
  return null;
107
87
  }
108
-
109
88
  const onStepFactory = React.useCallback(_step => () => onRangeChange({
110
89
  from: from.clone().add(_step),
111
90
  till: till.clone().add(_step)
@@ -132,7 +111,8 @@ function BookingCalendarControls(props) {
132
111
  }, from.format('MMMM'), ", ", from.format('YYYY')), (zoomLevels === null || zoomLevels === void 0 ? void 0 : zoomLevels.length) > 0 && /*#__PURE__*/React.createElement("div", {
133
112
  className: (0, _classnames.default)(_.bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName, zoomLevelsContainerClassName)
134
113
  }, zoomLevels.map((level, index) => /*#__PURE__*/React.createElement(_Button.Button, {
135
- type: till.valueOf() - from.valueOf() === level.step.asMilliseconds() ? 'primary' : undefined // blank={true}
114
+ type: till.valueOf() - from.valueOf() === level.step.asMilliseconds() ? 'primary' : undefined
115
+ // blank={true}
136
116
  ,
137
117
  noShadow: true,
138
118
  key: index,
@@ -1 +1 @@
1
- {"version":3,"file":"BookingCalendarControls.js","names":["LeftArrowLongIcon","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","BookingCalendarControls","props","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","onStepFactory","React","useCallback","_step","clone","add","onBigStepLeftClick","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","classNames","bookingCalendarControlsDefaultClasses","format","length","level","index","asMilliseconds","undefined","startOf","label"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport { duration, Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from '.';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {from.format('MMMM')}, {from.format('YYYY')}\r\n </div>\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from\r\n .clone()\r\n .startOf('day')\r\n .add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookingCalendarControls.js","names":["_classnames","_interopRequireDefault","require","React","_interopRequireWildcard","_moment","_","_Button","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","LeftArrowLongIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","RightArrowLongIcon","RightArrowIcon","UnfoldLessIcon","BookingCalendarControls","className","monthLabelClassName","buttonsContainerClassName","zoomBookingsButtonClassName","zoomLevelsContainerClassName","zoomLevels","step","from","till","onRangeChange","items","filterBookingsToZoom","onStepFactory","useCallback","_step","clone","add","onBigStepLeftClick","duration","onSmallStepLeftClick","onBigStepRightClick","onSmallStepRightClick","filteredItems","useMemo","filter","onZoomBookingsClick","minFromMs","Math","min","map","a","valueOf","minFrom","subtract","maxTillMs","max","maxTill","classNames","bookingCalendarControlsDefaultClasses","format","length","level","index","Button","type","asMilliseconds","undefined","noShadow","onClick","startOf","label","disabled"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.tsx"],"sourcesContent":["import classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n ZoomLevel,\r\n} from '../common';\r\nimport { duration, Duration, Moment } from 'moment';\r\nimport { BookingCalendarControlsClasses } from './classes';\r\nimport { bookingCalendarControlsDefaultClasses } from '.';\r\nimport { Button } from '../../button/Button';\r\nimport * as LeftArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg';\r\nimport * as RightArrowLongIcon from 'material-design-icons/navigation/svg/production/ic_arrow_forward_24px.svg';\r\nimport * as RightArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg';\r\nimport * as UnfoldLessIcon from 'material-design-icons/navigation/svg/production/ic_unfold_less_24px.svg';\r\n\r\nexport interface BookingCalendarControlsProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarControlsClasses {\r\n items: T[];\r\n step: Duration;\r\n from: Moment;\r\n till: Moment;\r\n zoomLevels?: ZoomLevel[];\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n}\r\n\r\nexport function BookingCalendarControls<T extends BookingCalendarItemT>(\r\n props: BookingCalendarControlsProps<T>\r\n) {\r\n const {\r\n className,\r\n monthLabelClassName,\r\n buttonsContainerClassName,\r\n zoomBookingsButtonClassName,\r\n zoomLevelsContainerClassName,\r\n zoomLevels,\r\n step,\r\n from,\r\n till,\r\n onRangeChange,\r\n items,\r\n filterBookingsToZoom = () => true,\r\n } = props;\r\n if (!step || !from || !till) {\r\n return null;\r\n }\r\n const onStepFactory = React.useCallback(\r\n (_step: Duration) => () =>\r\n onRangeChange({\r\n from: from.clone().add(_step),\r\n till: till.clone().add(_step),\r\n }),\r\n [from, till, onRangeChange]\r\n );\r\n const onBigStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepLeftClick = React.useCallback(\r\n onStepFactory(duration(-1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const onBigStepRightClick = React.useCallback(\r\n onStepFactory(duration(7, 'days')),\r\n [onStepFactory, till, from]\r\n );\r\n const onSmallStepRightClick = React.useCallback(\r\n onStepFactory(duration(1, 'day')),\r\n [onStepFactory, step]\r\n );\r\n const filteredItems = React.useMemo(\r\n () => items?.filter(filterBookingsToZoom),\r\n [filterBookingsToZoom, items]\r\n );\r\n const onZoomBookingsClick = React.useCallback(() => {\r\n const minFromMs =\r\n Math.min(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.from.valueOf())\r\n ) ?? from?.valueOf();\r\n const minFrom = from.clone().subtract(from.valueOf() - minFromMs, 'ms');\r\n const maxTillMs =\r\n Math.max(\r\n ...filteredItems\r\n ?.filter(filterBookingsToZoom)\r\n .map(a => a.till.valueOf())\r\n ) ?? till?.valueOf();\r\n const maxTill = till.clone().subtract(till.valueOf() - maxTillMs, 'ms');\r\n onRangeChange({\r\n from: minFrom,\r\n till: maxTill,\r\n });\r\n }, [from, till, filteredItems]);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.monthLabelClassName,\r\n monthLabelClassName\r\n )}\r\n >\r\n {from.format('MMMM')}, {from.format('YYYY')}\r\n </div>\r\n {zoomLevels?.length > 0 && (\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomLevelsContainerClassName,\r\n zoomLevelsContainerClassName\r\n )}\r\n >\r\n {zoomLevels.map((level, index) => (\r\n <Button\r\n type={\r\n till.valueOf() - from.valueOf() === level.step.asMilliseconds()\r\n ? 'primary'\r\n : undefined\r\n }\r\n // blank={true}\r\n noShadow={true}\r\n key={index}\r\n onClick={() =>\r\n onRangeChange({\r\n from: from.clone().startOf('day'),\r\n till: from\r\n .clone()\r\n .startOf('day')\r\n .add(level.step),\r\n })\r\n }\r\n >\r\n {level.label}\r\n </Button>\r\n ))}\r\n </div>\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.buttonsContainerClassName,\r\n buttonsContainerClassName\r\n )}\r\n >\r\n <Button noShadow={true} onClick={onBigStepLeftClick}>\r\n <LeftArrowLongIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepLeftClick}>\r\n <LeftArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onSmallStepRightClick}>\r\n <RightArrowIcon />\r\n </Button>\r\n <Button noShadow={true} onClick={onBigStepRightClick}>\r\n <RightArrowLongIcon />\r\n </Button>\r\n <Button\r\n className={classNames(\r\n bookingCalendarControlsDefaultClasses.zoomBookingsButtonClassName,\r\n zoomBookingsButtonClassName\r\n )}\r\n noShadow={true}\r\n disabled={!filteredItems?.length}\r\n onClick={onZoomBookingsClick}\r\n >\r\n <UnfoldLessIcon />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","names":["bookingCalendarControlsDefaultClasses","className","monthLabelClassName","buttonsContainerClassName","zoomLevelsContainerClassName","zoomBookingsButtonClassName"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/classes.ts"],"sourcesContent":["export interface BookingCalendarControlsClasses {\r\n className?: string;\r\n monthLabelClassName?: string;\r\n zoomLevelsContainerClassName?: string;\r\n buttonsContainerClassName?: string;\r\n zoomBookingsButtonClassName?: string;\r\n}\r\n\r\nexport const bookingCalendarControlsDefaultClasses: BookingCalendarControlsClasses = {\r\n className: 'bookingCalendar__controls',\r\n monthLabelClassName: 'bookingCalendar__controls__monthLabel',\r\n buttonsContainerClassName: 'bookingCalendar__controls__buttonsContainer',\r\n zoomLevelsContainerClassName:\r\n 'bookingCalendar__controls__zoomLevelsContainer',\r\n zoomBookingsButtonClassName: 'bookingCalendar__controls__zoomBookingsButton',\r\n};\r\n"],"mappings":";;;;;;AAQO,MAAMA,qCAAqE,GAAG;EACnFC,SAAS,EAAE,2BADwE;EAEnFC,mBAAmB,EAAE,uCAF8D;EAGnFC,yBAAyB,EAAE,6CAHwD;EAInFC,4BAA4B,EAC1B,gDALiF;EAMnFC,2BAA2B,EAAE;AANsD,CAA9E"}
1
+ {"version":3,"file":"classes.js","names":["bookingCalendarControlsDefaultClasses","className","monthLabelClassName","buttonsContainerClassName","zoomLevelsContainerClassName","zoomBookingsButtonClassName","exports"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/classes.ts"],"sourcesContent":["export interface BookingCalendarControlsClasses {\r\n className?: string;\r\n monthLabelClassName?: string;\r\n zoomLevelsContainerClassName?: string;\r\n buttonsContainerClassName?: string;\r\n zoomBookingsButtonClassName?: string;\r\n}\r\n\r\nexport const bookingCalendarControlsDefaultClasses: BookingCalendarControlsClasses = {\r\n className: 'bookingCalendar__controls',\r\n monthLabelClassName: 'bookingCalendar__controls__monthLabel',\r\n buttonsContainerClassName: 'bookingCalendar__controls__buttonsContainer',\r\n zoomLevelsContainerClassName:\r\n 'bookingCalendar__controls__zoomLevelsContainer',\r\n zoomBookingsButtonClassName: 'bookingCalendar__controls__zoomBookingsButton',\r\n};\r\n"],"mappings":";;;;;;AAQO,MAAMA,qCAAqE,GAAG;EACnFC,SAAS,EAAE,2BAA2B;EACtCC,mBAAmB,EAAE,uCAAuC;EAC5DC,yBAAyB,EAAE,6CAA6C;EACxEC,4BAA4B,EAC1B,gDAAgD;EAClDC,2BAA2B,EAAE;AAC/B,CAAC;AAACC,OAAA,CAAAN,qCAAA,GAAAA,qCAAA"}
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _BookingCalendarControls = require("./BookingCalendarControls");
8
-
9
7
  Object.keys(_BookingCalendarControls).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _BookingCalendarControls[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_BookingCalendarControls).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _classes = require("./classes");
21
-
22
18
  Object.keys(_classes).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _classes[key]) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/index.ts"],"sourcesContent":["export * from './BookingCalendarControls';\r\nexport * from './classes';\r\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["_BookingCalendarControls","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarControls/index.ts"],"sourcesContent":["export * from './BookingCalendarControls';\r\nexport * from './classes';\r\n"],"mappings":";;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,wBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,wBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,wBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
@@ -4,42 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BookingCalendarDatePicker = BookingCalendarDatePicker;
7
-
8
7
  var React = _interopRequireWildcard(require("react"));
9
-
10
8
  var _classnames = _interopRequireDefault(require("classnames"));
11
-
12
9
  var _classes = require("./classes");
13
-
14
10
  var _Button = require("../../button/Button");
15
-
16
11
  var _ = require("..");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
22
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
15
  var EventIcon = function EventIcon(props) {
25
16
  return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
26
17
  d: "M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
27
18
  }));
28
19
  };
29
-
30
20
  EventIcon.defaultProps = {
31
21
  xmlns: "http://www.w3.org/2000/svg",
32
22
  width: "24",
33
23
  height: "24",
34
24
  viewBox: "0 0 24 24"
35
25
  };
36
-
37
26
  try {
38
27
  var DatePicker = require('react-datepicker').default;
39
28
  } catch {
40
29
  DatePicker = undefined;
41
- } // import DatePicker from 'react-datepicker';
42
-
30
+ }
31
+ // import DatePicker from 'react-datepicker';
43
32
 
44
33
  function BookingCalendarDatePicker(props) {
45
34
  const {
@@ -65,23 +54,23 @@ function BookingCalendarDatePicker(props) {
65
54
  }, /*#__PURE__*/React.createElement(EventIcon, null)), /*#__PURE__*/React.createElement(DatePicker, {
66
55
  ref: calendarRef,
67
56
  customInput: /*#__PURE__*/React.createElement("span", null),
68
- selected: from === null || from === void 0 ? void 0 : from.toDate() // selectsRange={true}
57
+ selected: from === null || from === void 0 ? void 0 : from.toDate()
58
+ // selectsRange={true}
69
59
  ,
70
60
  selectsStart: shownModal !== 'end',
71
61
  selectsEnd: shownModal === 'end',
72
62
  startDate: from === null || from === void 0 ? void 0 : from.toDate(),
73
63
  endDate: till === null || till === void 0 ? void 0 : till.toDate(),
74
- shouldCloseOnSelect: shownModal === 'end' //dateFormat={DAY_FORMAT}
64
+ shouldCloseOnSelect: shownModal === 'end'
65
+ //dateFormat={DAY_FORMAT}
75
66
  ,
76
67
  onChange: dt => {
77
68
  if (shownModal !== 'end') {
78
69
  const dtm = getNewMomentFunction(dt);
79
70
  let validTill = till.clone();
80
-
81
71
  if (dtm.isAfter(till)) {
82
72
  validTill = dtm.clone().add(1, 'day');
83
73
  }
84
-
85
74
  onRangeChange({
86
75
  from: dtm,
87
76
  till: validTill
@@ -90,11 +79,9 @@ function BookingCalendarDatePicker(props) {
90
79
  } else {
91
80
  let dtm = getNewMomentFunction(dt).startOf('day').add(1, 'day');
92
81
  let validFrom = from.clone();
93
-
94
82
  if (dtm.isBefore(from)) {
95
83
  validFrom = dtm.clone().add(-1, 'day');
96
84
  }
97
-
98
85
  onRangeChange({
99
86
  from: validFrom,
100
87
  till: dtm
@@ -1 +1 @@
1
- {"version":3,"file":"BookingCalendarDatePicker.js","names":["EventIcon","DatePicker","require","default","undefined","BookingCalendarDatePicker","props","className","buttonClassName","from","till","onRangeChange","getNewMomentFunction","defaultGetNewMomentFunction","shownModal","setShownModal","React","useState","calendarRef","useRef","onButtonClick","useCallback","current","setOpen","classNames","bookingCalendarDatePickerDefaultClasses","toDate","dt","dtm","validTill","clone","isAfter","add","startOf","validFrom","isBefore"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDatePickerClasses,\r\n bookingCalendarDatePickerDefaultClasses,\r\n} from './classes';\r\nimport { Moment } from 'moment';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n GetNewMomentFunctionType,\r\n} from '../common';\r\nimport { Button } from '../../button/Button';\r\nimport * as EventIcon from 'material-design-icons/action/svg/production/ic_event_24px.svg';\r\ntry {\r\n var DatePicker = require('react-datepicker').default;\r\n} catch {\r\n DatePicker = undefined;\r\n}\r\n// import DatePicker from 'react-datepicker';\r\nimport { defaultGetNewMomentFunction } from '..';\r\n\r\nexport interface BookingCalendarDatePickerBaseProps<\r\n T extends BookingCalendarItemT\r\n> {\r\n from: Moment;\r\n till: Moment;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n}\r\n\r\nexport interface BookingCalendarDatePickerProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarDatePickerClasses,\r\n BookingCalendarDatePickerBaseProps<T> {}\r\n\r\nexport function BookingCalendarDatePicker<T extends BookingCalendarItemT>(\r\n props: BookingCalendarDatePickerProps<T>\r\n) {\r\n const {\r\n className,\r\n buttonClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n } = props;\r\n const [shownModal, setShownModal] = React.useState<null | 'start' | 'end'>();\r\n const calendarRef = React.useRef<typeof DatePicker>();\r\n const onButtonClick = React.useCallback(() => {\r\n setShownModal('start');\r\n calendarRef.current.setOpen(true);\r\n }, []);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarDatePickerDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <Button\r\n className={classNames(\r\n bookingCalendarDatePickerDefaultClasses.buttonClassName,\r\n buttonClassName\r\n )}\r\n noShadow={true}\r\n onClick={onButtonClick}\r\n >\r\n <EventIcon />\r\n </Button>\r\n <DatePicker\r\n ref={calendarRef}\r\n customInput={<span />}\r\n selected={from?.toDate()}\r\n // selectsRange={true}\r\n selectsStart={shownModal !== 'end'}\r\n selectsEnd={shownModal === 'end'}\r\n startDate={from?.toDate()}\r\n endDate={till?.toDate()}\r\n shouldCloseOnSelect={shownModal === 'end'}\r\n //dateFormat={DAY_FORMAT}\r\n onChange={(dt: Date) => {\r\n if (shownModal !== 'end') {\r\n const dtm = getNewMomentFunction(dt);\r\n let validTill = till.clone();\r\n if (dtm.isAfter(till)) {\r\n validTill = dtm.clone().add(1, 'day');\r\n }\r\n onRangeChange({ from: dtm, till: validTill });\r\n setShownModal('end');\r\n } else {\r\n let dtm = getNewMomentFunction(dt)\r\n .startOf('day')\r\n .add(1, 'day');\r\n let validFrom = from.clone();\r\n if (dtm.isBefore(from)) {\r\n validFrom = dtm.clone().add(-1, 'day');\r\n }\r\n onRangeChange({ from: validFrom, till: dtm });\r\n setShownModal(null);\r\n }\r\n }}\r\n withPortal={true}\r\n />\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"BookingCalendarDatePicker.js","names":["React","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_classes","_Button","_","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EventIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","DatePicker","undefined","BookingCalendarDatePicker","className","buttonClassName","from","till","onRangeChange","getNewMomentFunction","defaultGetNewMomentFunction","shownModal","setShownModal","useState","calendarRef","useRef","onButtonClick","useCallback","current","setOpen","classNames","bookingCalendarDatePickerDefaultClasses","Button","noShadow","onClick","ref","customInput","selected","toDate","selectsStart","selectsEnd","startDate","endDate","shouldCloseOnSelect","onChange","dt","dtm","validTill","clone","isAfter","add","startOf","validFrom","isBefore","withPortal"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDatePickerClasses,\r\n bookingCalendarDatePickerDefaultClasses,\r\n} from './classes';\r\nimport { Moment } from 'moment';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n GetNewMomentFunctionType,\r\n} from '../common';\r\nimport { Button } from '../../button/Button';\r\nimport * as EventIcon from 'material-design-icons/action/svg/production/ic_event_24px.svg';\r\ntry {\r\n var DatePicker = require('react-datepicker').default;\r\n} catch {\r\n DatePicker = undefined;\r\n}\r\n// import DatePicker from 'react-datepicker';\r\nimport { defaultGetNewMomentFunction } from '..';\r\n\r\nexport interface BookingCalendarDatePickerBaseProps<\r\n T extends BookingCalendarItemT\r\n> {\r\n from: Moment;\r\n till: Moment;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n}\r\n\r\nexport interface BookingCalendarDatePickerProps<T extends BookingCalendarItemT>\r\n extends BookingCalendarDatePickerClasses,\r\n BookingCalendarDatePickerBaseProps<T> {}\r\n\r\nexport function BookingCalendarDatePicker<T extends BookingCalendarItemT>(\r\n props: BookingCalendarDatePickerProps<T>\r\n) {\r\n const {\r\n className,\r\n buttonClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n } = props;\r\n const [shownModal, setShownModal] = React.useState<null | 'start' | 'end'>();\r\n const calendarRef = React.useRef<typeof DatePicker>();\r\n const onButtonClick = React.useCallback(() => {\r\n setShownModal('start');\r\n calendarRef.current.setOpen(true);\r\n }, []);\r\n return (\r\n <div\r\n className={classNames(\r\n bookingCalendarDatePickerDefaultClasses.className,\r\n className\r\n )}\r\n >\r\n <Button\r\n className={classNames(\r\n bookingCalendarDatePickerDefaultClasses.buttonClassName,\r\n buttonClassName\r\n )}\r\n noShadow={true}\r\n onClick={onButtonClick}\r\n >\r\n <EventIcon />\r\n </Button>\r\n <DatePicker\r\n ref={calendarRef}\r\n customInput={<span />}\r\n selected={from?.toDate()}\r\n // selectsRange={true}\r\n selectsStart={shownModal !== 'end'}\r\n selectsEnd={shownModal === 'end'}\r\n startDate={from?.toDate()}\r\n endDate={till?.toDate()}\r\n shouldCloseOnSelect={shownModal === 'end'}\r\n //dateFormat={DAY_FORMAT}\r\n onChange={(dt: Date) => {\r\n if (shownModal !== 'end') {\r\n const dtm = getNewMomentFunction(dt);\r\n let validTill = till.clone();\r\n if (dtm.isAfter(till)) {\r\n validTill = dtm.clone().add(1, 'day');\r\n }\r\n onRangeChange({ from: dtm, till: validTill });\r\n setShownModal('end');\r\n } else {\r\n let dtm = getNewMomentFunction(dt)\r\n .startOf('day')\r\n .add(1, 'day');\r\n let validFrom = from.clone();\r\n if (dtm.isBefore(from)) {\r\n validFrom = dtm.clone().add(-1, 'day');\r\n }\r\n onRangeChange({ from: validFrom, till: dtm });\r\n setShownModal(null);\r\n }\r\n }}\r\n withPortal={true}\r\n />\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","names":["bookingCalendarDatePickerDefaultClasses","className","buttonClassName"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/classes.ts"],"sourcesContent":["export interface BookingCalendarDatePickerClasses {\r\n className?: string;\r\n buttonClassName?: string;\r\n}\r\n\r\nexport const bookingCalendarDatePickerDefaultClasses: BookingCalendarDatePickerClasses = {\r\n className: 'bookingCalendar__datePicker',\r\n buttonClassName: 'bookingCalendar__datePicker__button',\r\n};\r\n"],"mappings":";;;;;;AAKO,MAAMA,uCAAyE,GAAG;EACvFC,SAAS,EAAE,6BAD4E;EAEvFC,eAAe,EAAE;AAFsE,CAAlF"}
1
+ {"version":3,"file":"classes.js","names":["bookingCalendarDatePickerDefaultClasses","className","buttonClassName","exports"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/classes.ts"],"sourcesContent":["export interface BookingCalendarDatePickerClasses {\r\n className?: string;\r\n buttonClassName?: string;\r\n}\r\n\r\nexport const bookingCalendarDatePickerDefaultClasses: BookingCalendarDatePickerClasses = {\r\n className: 'bookingCalendar__datePicker',\r\n buttonClassName: 'bookingCalendar__datePicker__button',\r\n};\r\n"],"mappings":";;;;;;AAKO,MAAMA,uCAAyE,GAAG;EACvFC,SAAS,EAAE,6BAA6B;EACxCC,eAAe,EAAE;AACnB,CAAC;AAACC,OAAA,CAAAH,uCAAA,GAAAA,uCAAA"}
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _BookingCalendarDatePicker = require("./BookingCalendarDatePicker");
8
-
9
7
  Object.keys(_BookingCalendarDatePicker).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _BookingCalendarDatePicker[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_BookingCalendarDatePicker).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _classes = require("./classes");
21
-
22
18
  Object.keys(_classes).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _classes[key]) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/index.ts"],"sourcesContent":["export * from './BookingCalendarDatePicker';\r\nexport * from './classes';\r\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["_BookingCalendarDatePicker","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_classes"],"sources":["../../../../src/lib/components/bookingCalendar/bookingCalendarDatePicker/index.ts"],"sourcesContent":["export * from './BookingCalendarDatePicker';\r\nexport * from './classes';\r\n"],"mappings":";;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,0BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,0BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,0BAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
@@ -3,7 +3,8 @@ import { BookingCalendarGridClasses } from './classes';
3
3
  import { GridItem } from '../utils';
4
4
  export interface BookingCalendarGridProps extends BookingCalendarGridClasses {
5
5
  items: GridItem[];
6
- containerRef: (elem: HTMLElement) => void;
6
+ containerRef?: (elem: HTMLElement) => void;
7
7
  dataRowsCount: number;
8
+ width: number;
8
9
  }
9
10
  export declare function BookingCalendarGrid(props: BookingCalendarGridProps): JSX.Element;