@dfds-ui/react-components 2.2.0-alpha.eac8b0de → 2.2.0-alpha.f4b478d6

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 (37) hide show
  1. package/accordion/Accordion.js +9 -9
  2. package/accordion/AccordionSmall.js +5 -5
  3. package/app-bar/AppBarItem.js +12 -13
  4. package/cjs/accordion/Accordion.js +10 -10
  5. package/cjs/accordion/AccordionSmall.js +6 -6
  6. package/cjs/app-bar/AppBarItem.js +12 -13
  7. package/cjs/common/use-media.js +1 -1
  8. package/cjs/common/useOnClickOutside.js +2 -2
  9. package/cjs/data-table/DataTable.js +2 -2
  10. package/cjs/date-range-picker/DateRangePicker.d.ts +4 -4
  11. package/cjs/date-range-picker/DateRangePicker.js +188 -141
  12. package/cjs/date-range-picker/DateRangePicker.styles.d.ts +6 -0
  13. package/cjs/date-range-picker/DateRangePicker.styles.js +14 -0
  14. package/cjs/dropdown-menu/Dropdown.js +4 -5
  15. package/cjs/grid/Column.js +1 -1
  16. package/cjs/grid/Container.js +18 -22
  17. package/cjs/popper/Popper.js +3 -4
  18. package/common/use-media.js +1 -1
  19. package/common/useOnClickOutside.js +2 -2
  20. package/data-table/DataTable.js +2 -2
  21. package/date-range-picker/DateRangePicker.d.ts +4 -4
  22. package/date-range-picker/DateRangePicker.js +232 -171
  23. package/date-range-picker/DateRangePicker.styles.d.ts +6 -0
  24. package/date-range-picker/DateRangePicker.styles.js +9 -0
  25. package/dropdown-menu/Dropdown.js +4 -5
  26. package/grid/Column.js +1 -1
  27. package/grid/Container.js +17 -21
  28. package/package.json +13 -15
  29. package/popper/Popper.js +3 -4
  30. package/cjs/date-range-picker/DatePickerDefaultStyles.d.ts +0 -2
  31. package/cjs/date-range-picker/DatePickerDefaultStyles.js +0 -18
  32. package/cjs/date-range-picker/DatePickerDfdsStyles.d.ts +0 -2
  33. package/cjs/date-range-picker/DatePickerDfdsStyles.js +0 -10
  34. package/date-range-picker/DatePickerDefaultStyles.d.ts +0 -2
  35. package/date-range-picker/DatePickerDefaultStyles.js +0 -12
  36. package/date-range-picker/DatePickerDfdsStyles.d.ts +0 -2
  37. package/date-range-picker/DatePickerDfdsStyles.js +0 -4
@@ -1,40 +1,78 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
1
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3
- 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; }
4
- 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) { _defineProperty(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; }
5
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
2
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
4
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
5
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
6
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
7
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
- /* eslint-disable @typescript-eslint/no-deprecated */
15
- /* eslint-disable @typescript-eslint/restrict-plus-operands */
16
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
17
- import { DayPickerRangeController, DayPickerSingleDateController } from 'react-dates';
8
+ import { DayPicker } from 'react-day-picker';
18
9
  import classNames from 'classnames';
19
- // eslint-disable-next-line import/no-extraneous-dependencies
20
- import moment from 'moment';
21
- import React, { useState, useRef, useEffect } from 'react';
22
- import 'react-dates/initialize';
10
+ import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';
23
11
  import { css } from '@emotion/react';
24
12
  import { Close, RightLink, LeftLink, CalendarOutbound, CalendarReturn } from '@dfds-ui/icons';
25
13
  import useMedia from '../common/use-media';
26
14
  import { miniMoize } from '../common/miniMoize';
27
- import DatePickerDefaultStyles from './DatePickerDefaultStyles';
28
- import DatePickerDfdsStyles from './DatePickerDfdsStyles';
15
+ import { dateRangePickerDfdsStyles } from './DateRangePicker.styles';
29
16
  import LockBodyScroll from '../common/LockBodyScroll';
17
+ import 'react-day-picker/dist/style.css';
30
18
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
31
- // Do a wrapper to support styled components: https://github.com/airbnb/react-dates/issues/1030#issuecomment-388227454
19
+ // --- Date helpers (replace moment) ---
20
+
21
+ function toISOStr(d) {
22
+ if (!d) return null;
23
+ var y = d.getFullYear();
24
+ var m = String(d.getMonth() + 1).padStart(2, '0');
25
+ var day = String(d.getDate()).padStart(2, '0');
26
+ return "".concat(y, "-").concat(m, "-").concat(day);
27
+ }
28
+ function toDate(s) {
29
+ if (!s) return null;
30
+ var _s$split$map = s.split('-').map(Number),
31
+ _s$split$map2 = _slicedToArray(_s$split$map, 3),
32
+ y = _s$split$map2[0],
33
+ m = _s$split$map2[1],
34
+ d = _s$split$map2[2];
35
+ return new Date(y, m - 1, d);
36
+ }
37
+ function formatDisplayDate(date, locale) {
38
+ var weekday = date.toLocaleDateString(locale || 'en', {
39
+ weekday: 'short'
40
+ });
41
+ var day = String(date.getDate()).padStart(2, '0');
42
+ var month = String(date.getMonth() + 1).padStart(2, '0');
43
+ return "".concat(weekday, " ").concat(day, "/").concat(month);
44
+ }
45
+ function getWeekStart(locale) {
46
+ var sundayLocales = ['en', 'en-US', 'ja', 'ko', 'zh'];
47
+ var lang = locale.split('-')[0];
48
+ return sundayLocales.includes(locale) || sundayLocales.includes(lang) ? 0 : 1;
49
+ }
50
+ function buildMap(dates) {
51
+ var map = {};
52
+ if (!dates) return map;
53
+ var _iterator = _createForOfIteratorHelper(dates),
54
+ _step;
55
+ try {
56
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
57
+ var d = _step.value;
58
+ map[d] = 1;
59
+ }
60
+ } catch (err) {
61
+ _iterator.e(err);
62
+ } finally {
63
+ _iterator.f();
64
+ }
65
+ return map;
66
+ }
67
+
68
+ // --- Component ---
69
+
32
70
  var DateRangePicker = function DateRangePicker(props) {
33
- var _useState = useState(toMoment(props.startDates.initial)),
71
+ var _useState = useState(toDate(props.startDates.initial)),
34
72
  _useState2 = _slicedToArray(_useState, 2),
35
73
  startDate = _useState2[0],
36
74
  setStartDate = _useState2[1];
37
- var _useState3 = useState(toMoment(props.endDates.initial)),
75
+ var _useState3 = useState(toDate(props.endDates.initial)),
38
76
  _useState4 = _slicedToArray(_useState3, 2),
39
77
  endDate = _useState4[0],
40
78
  setEndDate = _useState4[1];
@@ -46,8 +84,13 @@ var DateRangePicker = function DateRangePicker(props) {
46
84
  _useState8 = _slicedToArray(_useState7, 2),
47
85
  focusedInput = _useState8[0],
48
86
  setFocusedInput = _useState8[1];
87
+ var _useState9 = useState(toDate(props.startDates.initial) || new Date()),
88
+ _useState0 = _slicedToArray(_useState9, 2),
89
+ displayMonth = _useState0[0],
90
+ setDisplayMonth = _useState0[1];
91
+ var wrapperRef = useRef(null);
49
92
  var _useMedia = useMedia(['(max-width: 64em)', '(min-width: 78.063em)'], [{
50
- numberOfMonths: props.numberOfMobileMonths || 12,
93
+ numberOfMonths: 1,
51
94
  mobileState: true,
52
95
  size: 40
53
96
  }, {
@@ -62,14 +105,28 @@ var DateRangePicker = function DateRangePicker(props) {
62
105
  numberOfMonths = _useMedia.numberOfMonths,
63
106
  mobileState = _useMedia.mobileState,
64
107
  size = _useMedia.size;
65
- moment.locale(props.locale);
66
- moment().weekday(0);
67
108
  useEffect(function () {
68
- setStartDate(toMoment(props.startDates.initial));
69
- setEndDate(toMoment(props.endDates.initial));
109
+ setStartDate(toDate(props.startDates.initial));
110
+ setEndDate(toDate(props.endDates.initial));
70
111
  }, [props.startDates.initial, props.endDates.initial]);
71
- var closeExceptionDivOut = useRef(null);
72
- var closeExceptionImgOut = useRef(null);
112
+
113
+ // Handle clicks outside the calendar to close it
114
+ var onDateChangeRef = useRef(props.onDateChange);
115
+ onDateChangeRef.current = props.onDateChange;
116
+ useEffect(function () {
117
+ if (!showCalendar) return;
118
+ var handleClickOutside = function handleClickOutside(e) {
119
+ if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
120
+ setShowCalendar(false);
121
+ setFocusedInput('startDate');
122
+ onDateChangeRef.current(toISOStr(startDate), toISOStr(endDate));
123
+ }
124
+ };
125
+ document.addEventListener('mousedown', handleClickOutside);
126
+ return function () {
127
+ return document.removeEventListener('mousedown', handleClickOutside);
128
+ };
129
+ }, [showCalendar, startDate, endDate]);
73
130
  var startCalendarClicked = function startCalendarClicked() {
74
131
  setShowCalendar(function (prev) {
75
132
  return !prev;
@@ -82,15 +139,6 @@ var DateRangePicker = function DateRangePicker(props) {
82
139
  });
83
140
  setFocusedInput('endDate');
84
141
  };
85
- var onOutsideClick = function onOutsideClick(_ref) {
86
- var target = _ref.target;
87
- if (target === closeExceptionDivOut.current || target === closeExceptionImgOut.current) {
88
- return;
89
- }
90
- setShowCalendar(false);
91
- setFocusedInput('startDate');
92
- props.onDateChange(getKeyStr(startDate), getKeyStr(endDate));
93
- };
94
142
  var renderCalendarInfo = function renderCalendarInfo() {
95
143
  return props.infoLabel ? _jsxs("div", {
96
144
  className: "dateRangePickerInfo",
@@ -100,80 +148,122 @@ var DateRangePicker = function DateRangePicker(props) {
100
148
  className: "dateRangePickerInfo__info",
101
149
  children: props.infoLabel
102
150
  })]
103
- }) : '';
151
+ }) : null;
104
152
  };
105
- var disabledDates = miniMoize(function (focusedInput, start, startDisabledDates, endDisabledDates) {
153
+
154
+ // Memoized disabled dates map
155
+ var disabledDatesMap = miniMoize(function (focusedInput, start, startDisabledDates, endDisabledDates) {
106
156
  return buildMap(focusedInput !== 'endDate' ? startDisabledDates : (startDisabledDates || []).filter(function (d) {
107
- return d < start;
108
- }).concat(endDisabledDates));
157
+ return d < (start || '');
158
+ }).concat(endDisabledDates || []));
109
159
  });
110
- var _isDayBlocked = function isDayBlocked(date) {
111
- var startDateStr = getKeyStr(startDate);
112
- var disabled = disabledDates(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
113
- var dateN = getKeyStr(date);
114
- if (!dateN) {
115
- return false;
116
- }
160
+ var isDayDisabled = useCallback(function (date) {
161
+ var startDateStr = toISOStr(startDate);
162
+ var disabled = disabledDatesMap(focusedInput, startDateStr, props.startDates.disabledDates, props.endDates.disabledDates);
163
+ var dateStr = toISOStr(date);
164
+ if (!dateStr) return false;
117
165
  var d = focusedInput !== 'endDate' ? props.startDates : props.endDates;
118
166
  var min = props.startDates.minDate;
119
- if (disabled[dateN]) {
120
- return true;
121
- }
122
- if (min && dateN && dateN < min) {
123
- return true;
124
- }
125
- if (d.maxDate && dateN && dateN > d.maxDate) {
126
- return true;
127
- }
128
- if (focusedInput === 'endDate' && startDateStr && startDateStr < dateN && dateN < props.endDates.minDate) {
167
+ if (disabled[dateStr]) return true;
168
+ if (min && dateStr < min) return true;
169
+ if (d.maxDate && dateStr > d.maxDate) return true;
170
+ if (focusedInput === 'endDate' && startDateStr && startDateStr < dateStr && dateStr < props.endDates.minDate) {
129
171
  return true;
130
172
  }
131
173
  return false;
132
- };
133
- var offerDates = miniMoize(function (focusedInput, startOffers, endOffers) {
174
+ }, [focusedInput, startDate, props.startDates, props.endDates, disabledDatesMap]);
175
+
176
+ // Memoized offer dates map
177
+ var offerDatesMap = miniMoize(function (focusedInput, startOffers, endOffers) {
134
178
  return buildMap(focusedInput !== 'endDate' ? startOffers : endOffers);
135
179
  });
136
- var isOfferValid = function isOfferValid(date) {
137
- var map = offerDates(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
138
- return map[getKeyStr(date)];
139
- };
140
- var minimumNights = function minimumNights() {
141
- var start = toMoment(props.startDates.initial);
142
- var end = toMoment(props.endDates.minDate);
143
- return end && start ? end.diff(start, 'days') : 0;
144
- };
145
- var initialMonth = function initialMonth() {
146
- return (mobileState ? toMoment(props.startDates.minDate) : startDate) || moment();
147
- };
148
- var sharedCustomProps = {
149
- hideKeyboardShortcutsPanel: true,
150
- navPrev: _jsx(LeftLink, {
151
- "aria-label": "Previous Month"
152
- }),
153
- navNext: _jsx(RightLink, {
154
- "aria-label": "Next Month"
155
- }),
156
- weekDayFormat: 'ddd',
157
- daySize: size,
158
- monthFormat: 'MMMM YYYY',
159
- dayAriaLabelFormat: 'YYYY-MM-DD',
160
- transitionDuration: 100,
161
- numberOfMonths: numberOfMonths,
162
- onOutsideClick: onOutsideClick,
163
- isDayBlocked: function isDayBlocked(d) {
164
- return _isDayBlocked(d);
165
- },
166
- isDayHighlighted: function isDayHighlighted(d) {
167
- return isOfferValid(d);
168
- },
169
- initialVisibleMonth: initialMonth,
170
- renderCalendarInfo: renderCalendarInfo
180
+ var isOfferDay = useCallback(function (date) {
181
+ var map = offerDatesMap(focusedInput, props.startDates.offerDates, props.endDates.offerDates);
182
+ var dateStr = toISOStr(date);
183
+ return dateStr ? !!map[dateStr] : false;
184
+ }, [focusedInput, props.startDates.offerDates, props.endDates.offerDates, offerDatesMap]);
185
+ var defaultMonth = useMemo(function () {
186
+ if (mobileState) {
187
+ return toDate(props.startDates.minDate) || new Date();
188
+ }
189
+ return startDate || new Date();
190
+ // Only compute on mount / when mobile state changes
191
+ // eslint-disable-next-line @eslint-react/exhaustive-deps
192
+ }, [mobileState]);
193
+ var handleMonthChange = useCallback(function (month) {
194
+ if (month > displayMonth) {
195
+ var _props$onNextMonthCli;
196
+ (_props$onNextMonthCli = props.onNextMonthClick) === null || _props$onNextMonthCli === void 0 || _props$onNextMonthCli.call(props);
197
+ } else {
198
+ var _props$onPrevMonthCli;
199
+ (_props$onPrevMonthCli = props.onPrevMonthClick) === null || _props$onPrevMonthCli === void 0 || _props$onPrevMonthCli.call(props);
200
+ }
201
+ setDisplayMonth(month);
202
+ }, [displayMonth, props.onNextMonthClick, props.onPrevMonthClick]);
203
+ var handleDayClick = function handleDayClick(day) {
204
+ if (isDayDisabled(day)) return;
205
+ if (props.endDateDisabled) {
206
+ setStartDate(day);
207
+ setEndDate(day);
208
+ props.onDateChange(toISOStr(day), null);
209
+ setShowCalendar(false);
210
+ return;
211
+ }
212
+ if (focusedInput === 'startDate') {
213
+ setStartDate(day);
214
+ setEndDate(null);
215
+ setFocusedInput('endDate');
216
+ props.onDateChange(toISOStr(day), null);
217
+ } else {
218
+ setEndDate(day);
219
+ setFocusedInput('startDate');
220
+ setShowCalendar(false);
221
+ props.onDateChange(toISOStr(startDate), toISOStr(day));
222
+ }
171
223
  };
224
+ var isSelected = useCallback(function (date) {
225
+ var dateStr = toISOStr(date);
226
+ return dateStr === toISOStr(startDate) || dateStr === toISOStr(endDate);
227
+ }, [startDate, endDate]);
228
+ var isRangeMiddle = useCallback(function (date) {
229
+ if (!startDate || !endDate) return false;
230
+ return date > startDate && date < endDate;
231
+ }, [startDate, endDate]);
232
+
233
+ // Custom DayContent that sets aria-label to the ISO date (for testability & a11y)
234
+ var DayContent = useMemo(function () {
235
+ return function DayContentComponent(_ref) {
236
+ var date = _ref.date;
237
+ return _jsx(_Fragment, {
238
+ children: date.getDate()
239
+ });
240
+ };
241
+ }, []);
242
+ var formatters = useMemo(function () {
243
+ return {
244
+ formatWeekdayName: function formatWeekdayName(date) {
245
+ return date.toLocaleDateString(props.locale || 'en', {
246
+ weekday: 'short'
247
+ });
248
+ },
249
+ formatCaption: function formatCaption(date) {
250
+ return date.toLocaleDateString(props.locale || 'en', {
251
+ month: 'long',
252
+ year: 'numeric'
253
+ });
254
+ },
255
+ formatDay: function formatDay(date) {
256
+ return String(date.getDate());
257
+ }
258
+ };
259
+ }, [props.locale]);
260
+ var daySizeCss = /*#__PURE__*/css("--rdp-cell-size:", size, "px;" + (process.env.NODE_ENV === "production" ? "" : ";label:daySizeCss;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Sd0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/OiBzdHJpbmdcbiAgaW5mb0xhYmVsPzogc3RyaW5nXG4gIHN0YXJ0RGF0ZXM6IElEYXRlTGVnXG4gIGVuZERhdGVzOiBJRGF0ZUxlZ1xuICBsYWJlbHM6IElEYXRlUmFuZ2VQaWNrZXJMYWJlbHNcbiAgb25OZXh0TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgb25QcmV2TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgbnVtYmVyT2ZNb2JpbGVNb250aHM/OiBudW1iZXJcbiAgaGlkZUljb24/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUxlZyB7XG4gIGluaXRpYWw6IHN0cmluZyB8IG51bGxcbiAgbWF4RGF0ZTogc3RyaW5nXG4gIG1pbkRhdGU6IHN0cmluZ1xuICBkaXNhYmxlZERhdGVzPzogc3RyaW5nW11cbiAgb2ZmZXJEYXRlcz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlckxhYmVscyB7XG4gIHN0YXJ0OiBzdHJpbmdcbiAgZW5kOiBzdHJpbmdcbiAgaGVhZGVyOiBzdHJpbmdcbiAgaW5mbz86IHN0cmluZ1xufVxuXG4vLyAtLS0gRGF0ZSBoZWxwZXJzIChyZXBsYWNlIG1vbWVudCkgLS0tXG5cbmZ1bmN0aW9uIHRvSVNPU3RyKGQ6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghZCkgcmV0dXJuIG51bGxcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5fS0ke219LSR7ZGF5fWBcbn1cblxuZnVuY3Rpb24gdG9EYXRlKHM6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gIGlmICghcykgcmV0dXJuIG51bGxcbiAgY29uc3QgW3ksIG0sIGRdID0gcy5zcGxpdCgnLScpLm1hcChOdW1iZXIpXG4gIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlzcGxheURhdGUoZGF0ZTogRGF0ZSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd2Vla2RheSA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSB8fCAnZW4nLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSlcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgcmV0dXJuIGAke3dlZWtkYXl9ICR7ZGF5fS8ke21vbnRofWBcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0KGxvY2FsZTogc3RyaW5nKTogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB7XG4gIGNvbnN0IHN1bmRheUxvY2FsZXMgPSBbJ2VuJywgJ2VuLVVTJywgJ2phJywgJ2tvJywgJ3poJ11cbiAgY29uc3QgbGFuZyA9IGxvY2FsZS5zcGxpdCgnLScpWzBdXG4gIHJldHVybiBzdW5kYXlMb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkgfHwgc3VuZGF5TG9jYWxlcy5pbmNsdWRlcyhsYW5nKSA/IDAgOiAxXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWFwKGRhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBtYXA6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fVxuICBpZiAoIWRhdGVzKSByZXR1cm4gbWFwXG4gIGZvciAoY29uc3QgZCBvZiBkYXRlcykge1xuICAgIG1hcFtkXSA9IDFcbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbi8vIC0tLSBDb21wb25lbnQgLS0tXG5cbmNvbnN0IERhdGVSYW5nZVBpY2tlciA9IChwcm9wczogSURhdGVSYW5nZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGFydERhdGUsIHNldFN0YXJ0RGF0ZV0gPSB1c2VTdGF0ZSh0b0RhdGUocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgY29uc3QgW2VuZERhdGUsIHNldEVuZERhdGVdID0gdXNlU3RhdGUodG9EYXRlKHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb2N1c2VkSW5wdXQsIHNldEZvY3VzZWRJbnB1dF0gPSB1c2VTdGF0ZTxGb2N1c2VkSW5wdXQ+KCdzdGFydERhdGUnKVxuICBjb25zdCBbZGlzcGxheU1vbnRoLCBzZXREaXNwbGF5TW9udGhdID0gdXNlU3RhdGU8RGF0ZT4odG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkgfHwgbmV3IERhdGUoKSlcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCB7IG51bWJlck9mTW9udGhzLCBtb2JpbGVTdGF0ZSwgc2l6ZSB9ID0gdXNlTWVkaWEoXG4gICAgWycobWF4LXdpZHRoOiA2NGVtKScsICcobWluLXdpZHRoOiA3OC4wNjNlbSknXSxcbiAgICBbXG4gICAgICB7IG51bWJlck9mTW9udGhzOiAxLCBtb2JpbGVTdGF0ZTogdHJ1ZSwgc2l6ZTogNDAgfSxcbiAgICAgIHsgbnVtYmVyT2ZNb250aHM6IDIsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfSxcbiAgICBdLFxuICAgIHsgbnVtYmVyT2ZNb250aHM6IDEsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gICAgc2V0RW5kRGF0ZSh0b0RhdGUocHJvcHMuZW5kRGF0ZXMuaW5pdGlhbCkpXG4gIH0sIFtwcm9wcy5zdGFydERhdGVzLmluaXRpYWwsIHByb3BzLmVuZERhdGVzLmluaXRpYWxdKVxuXG4gIC8vIEhhbmRsZSBjbGlja3Mgb3V0c2lkZSB0aGUgY2FsZW5kYXIgdG8gY2xvc2UgaXRcbiAgY29uc3Qgb25EYXRlQ2hhbmdlUmVmID0gdXNlUmVmKHByb3BzLm9uRGF0ZUNoYW5nZSlcbiAgb25EYXRlQ2hhbmdlUmVmLmN1cnJlbnQgPSBwcm9wcy5vbkRhdGVDaGFuZ2VcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd0NhbGVuZGFyKSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudCAmJiAhd3JhcHBlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICAgICAgICBvbkRhdGVDaGFuZ2VSZWYuY3VycmVudCh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihlbmREYXRlKSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFtzaG93Q2FsZW5kYXIsIHN0YXJ0RGF0ZSwgZW5kRGF0ZV0pXG5cbiAgY29uc3Qgc3RhcnRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gIH1cblxuICBjb25zdCBlbmRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ2VuZERhdGUnKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQ2FsZW5kYXJJbmZvID0gKCkgPT5cbiAgICBwcm9wcy5pbmZvTGFiZWwgPyAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19fbGVnZW5kXCIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19faW5mb1wiPntwcm9wcy5pbmZvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSA6IG51bGxcblxuICAvLyBNZW1vaXplZCBkaXNhYmxlZCBkYXRlcyBtYXBcbiAgY29uc3QgZGlzYWJsZWREYXRlc01hcCA9IG1pbmlNb2l6ZShcbiAgICAoXG4gICAgICBmb2N1c2VkSW5wdXQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBzdHJpbmcgfCBudWxsLFxuICAgICAgc3RhcnREaXNhYmxlZERhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGVuZERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgKSA9PlxuICAgICAgYnVpbGRNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnXG4gICAgICAgICAgPyBzdGFydERpc2FibGVkRGF0ZXNcbiAgICAgICAgICA6IChzdGFydERpc2FibGVkRGF0ZXMgfHwgW10pLmZpbHRlcigoZCkgPT4gZCA8IChzdGFydCB8fCAnJykpLmNvbmNhdChlbmREaXNhYmxlZERhdGVzIHx8IFtdKVxuICAgICAgKVxuICApXG5cbiAgY29uc3QgaXNEYXlEaXNhYmxlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGVTdHIgPSB0b0lTT1N0cihzdGFydERhdGUpXG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRGF0ZXNNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCxcbiAgICAgICAgc3RhcnREYXRlU3RyLFxuICAgICAgICBwcm9wcy5zdGFydERhdGVzLmRpc2FibGVkRGF0ZXMsXG4gICAgICAgIHByb3BzLmVuZERhdGVzLmRpc2FibGVkRGF0ZXNcbiAgICAgIClcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgZCA9IGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gcHJvcHMuc3RhcnREYXRlcyA6IHByb3BzLmVuZERhdGVzXG4gICAgICBjb25zdCBtaW4gPSBwcm9wcy5zdGFydERhdGVzLm1pbkRhdGVcbiAgICAgIGlmIChkaXNhYmxlZFtkYXRlU3RyXSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChtaW4gJiYgZGF0ZVN0ciA8IG1pbikgcmV0dXJuIHRydWVcbiAgICAgIGlmIChkLm1heERhdGUgJiYgZGF0ZVN0ciA+IGQubWF4RGF0ZSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzdGFydERhdGVTdHIgJiYgc3RhcnREYXRlU3RyIDwgZGF0ZVN0ciAmJiBkYXRlU3RyIDwgcHJvcHMuZW5kRGF0ZXMubWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcbiAgICBbZm9jdXNlZElucHV0LCBzdGFydERhdGUsIHByb3BzLnN0YXJ0RGF0ZXMsIHByb3BzLmVuZERhdGVzLCBkaXNhYmxlZERhdGVzTWFwXVxuICApXG5cbiAgLy8gTWVtb2l6ZWQgb2ZmZXIgZGF0ZXMgbWFwXG4gIGNvbnN0IG9mZmVyRGF0ZXNNYXAgPSBtaW5pTW9pemUoXG4gICAgKGZvY3VzZWRJbnB1dDogc3RyaW5nLCBzdGFydE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQsIGVuZE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQpID0+XG4gICAgICBidWlsZE1hcChmb2N1c2VkSW5wdXQgIT09ICdlbmREYXRlJyA/IHN0YXJ0T2ZmZXJzIDogZW5kT2ZmZXJzKVxuICApXG5cbiAgY29uc3QgaXNPZmZlckRheSA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBvZmZlckRhdGVzTWFwKGZvY3VzZWRJbnB1dCwgcHJvcHMuc3RhcnREYXRlcy5vZmZlckRhdGVzLCBwcm9wcy5lbmREYXRlcy5vZmZlckRhdGVzKVxuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA/ICEhbWFwW2RhdGVTdHJdIDogZmFsc2VcbiAgICB9LFxuICAgIFtmb2N1c2VkSW5wdXQsIHByb3BzLnN0YXJ0RGF0ZXMub2ZmZXJEYXRlcywgcHJvcHMuZW5kRGF0ZXMub2ZmZXJEYXRlcywgb2ZmZXJEYXRlc01hcF1cbiAgKVxuXG4gIGNvbnN0IGRlZmF1bHRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChtb2JpbGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRvRGF0ZShwcm9wcy5zdGFydERhdGVzLm1pbkRhdGUpIHx8IG5ldyBEYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0RGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgLy8gT25seSBjb21wdXRlIG9uIG1vdW50IC8gd2hlbiBtb2JpbGUgc3RhdGUgY2hhbmdlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAZXNsaW50LXJlYWN0L2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbbW9iaWxlU3RhdGVdKVxuXG4gIGNvbnN0IGhhbmRsZU1vbnRoQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vbnRoOiBEYXRlKSA9PiB7XG4gICAgICBpZiAobW9udGggPiBkaXNwbGF5TW9udGgpIHtcbiAgICAgICAgcHJvcHMub25OZXh0TW9udGhDbGljaz8uKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLm9uUHJldk1vbnRoQ2xpY2s/LigpXG4gICAgICB9XG4gICAgICBzZXREaXNwbGF5TW9udGgobW9udGgpXG4gICAgfSxcbiAgICBbZGlzcGxheU1vbnRoLCBwcm9wcy5vbk5leHRNb250aENsaWNrLCBwcm9wcy5vblByZXZNb250aENsaWNrXVxuICApXG5cbiAgY29uc3QgaGFuZGxlRGF5Q2xpY2sgPSAoZGF5OiBEYXRlKSA9PiB7XG4gICAgaWYgKGlzRGF5RGlzYWJsZWQoZGF5KSkgcmV0dXJuXG5cbiAgICBpZiAocHJvcHMuZW5kRGF0ZURpc2FibGVkKSB7XG4gICAgICBzZXRTdGFydERhdGUoZGF5KVxuICAgICAgc2V0RW5kRGF0ZShkYXkpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoZGF5KSwgbnVsbClcbiAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICBzZXRTdGFydERhdGUoZGF5KVxuICAgICAgc2V0RW5kRGF0ZShudWxsKVxuICAgICAgc2V0Rm9jdXNlZElucHV0KCdlbmREYXRlJylcbiAgICAgIHByb3BzLm9uRGF0ZUNoYW5nZSh0b0lTT1N0cihkYXkpLCBudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFbmREYXRlKGRheSlcbiAgICAgIHNldEZvY3VzZWRJbnB1dCgnc3RhcnREYXRlJylcbiAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgIHByb3BzLm9uRGF0ZUNoYW5nZSh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihkYXkpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlzU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA9PT0gdG9JU09TdHIoc3RhcnREYXRlKSB8fCBkYXRlU3RyID09PSB0b0lTT1N0cihlbmREYXRlKVxuICAgIH0sXG4gICAgW3N0YXJ0RGF0ZSwgZW5kRGF0ZV1cbiAgKVxuXG4gIGNvbnN0IGlzUmFuZ2VNaWRkbGUgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIGRhdGUgPiBzdGFydERhdGUgJiYgZGF0ZSA8IGVuZERhdGVcbiAgICB9LFxuICAgIFtzdGFydERhdGUsIGVuZERhdGVdXG4gIClcblxuICAvLyBDdXN0b20gRGF5Q29udGVudCB0aGF0IHNldHMgYXJpYS1sYWJlbCB0byB0aGUgSVNPIGRhdGUgKGZvciB0ZXN0YWJpbGl0eSAmIGExMXkpXG4gIGNvbnN0IERheUNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gRGF5Q29udGVudENvbXBvbmVudCh7IGRhdGUgfTogRGF5Q29udGVudFByb3BzKSB7XG4gICAgICByZXR1cm4gPD57ZGF0ZS5nZXREYXRlKCl9PC8+XG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBmb3JtYXR0ZXJzID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZm9ybWF0V2Vla2RheU5hbWU6IChkYXRlOiBEYXRlKSA9PiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhwcm9wcy5sb2NhbGUgfHwgJ2VuJywgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pLFxuICAgICAgZm9ybWF0Q2FwdGlvbjogKGRhdGU6IERhdGUpID0+IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHByb3BzLmxvY2FsZSB8fCAnZW4nLCB7IG1vbnRoOiAnbG9uZycsIHllYXI6ICdudW1lcmljJyB9KSxcbiAgICAgIGZvcm1hdERheTogKGRhdGU6IERhdGUpID0+IFN0cmluZyhkYXRlLmdldERhdGUoKSksXG4gICAgfSksXG4gICAgW3Byb3BzLmxvY2FsZV1cbiAgKVxuXG4gIGNvbnN0IGRheVNpemVDc3MgPSBjc3NgXG4gICAgLS1yZHAtY2VsbC1zaXplOiAke3NpemV9cHg7XG4gIGBcblxuICByZXR1cm4gKFxuICAgIDxMb2NrQm9keVNjcm9sbCBlbmFibGVkPXttb2JpbGVTdGF0ZSAmJiBzaG93Q2FsZW5kYXJ9PlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17J291dGVyICcgKyAocHJvcHMuY2xhc3NOYW1lIHx8ICcnKX1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtkYXRlUmFuZ2VQaWNrZXJEZmRzU3R5bGVzfTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyJywgeyAnZGF0ZVJhbmdlUGlja2VyV3JhcHBlci0tYWN0aXZlJzogc2hvd0NhbGVuZGFyIH0pfT5cbiAgICAgICAgICB7bW9iaWxlU3RhdGUgJiYgc2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyX190aXRsZVwiPntwcm9wcy5sYWJlbHMuaGVhZGVyfTwvaDI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlcldyYXBwZXJfX2Nsb3NlXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NhbGVuZGFyKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgPENsb3NlIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9jb250YWluZXI6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfb3Blbjogc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZXJyb3JCb3JkZXI6ICFwcm9wcy52YWxpZCAmJiAhc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2ZvY3VzX291dDogZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtzdGFydENhbGVuZGFyQ2xpY2tlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2xhYmVsXCI+e3Byb3BzLmxhYmVscy5zdGFydH08L2xhYmVsPlxuICAgICAgICAgICAgICB7IXByb3BzLmhpZGVJY29uICYmIDxDYWxlbmRhck91dGJvdW5kIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtzdGFydERhdGUgPyBmb3JtYXREaXNwbGF5RGF0ZShzdGFydERhdGUsIHByb3BzLmxvY2FsZSkgOiAnJ31cbiAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9jb250YWluZXI6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfb3Blbjogc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fb25lV2F5OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Rpc2FibGVkOiBwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2RhdGVJbnB1dHNfX2Rpc2FibGVkLS1hY3RpdmUnOiBzaG93Q2FsZW5kYXIgJiYgcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Vycm9yQm9yZGVyOiAhcHJvcHMudmFsaWQgJiYgIXNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19ub25mb2N1czogZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJyAmJiBzaG93Q2FsZW5kYXIgJiYgIXByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19mb2N1c19yZXQ6IGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBlbmREYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2hpZGVJY29uOiBwcm9wcy5oaWRlSWNvbixcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2VuZENhbGVuZGFyQ2xpY2tlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2xhYmVsXCI+e3Byb3BzLmxhYmVscy5lbmR9PC9sYWJlbD5cbiAgICAgICAgICAgICAgeyFwcm9wcy5oaWRlSWNvbiAmJiA8Q2FsZW5kYXJSZXR1cm4gY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faWNvblwiIC8+fVxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0b0RhdGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtlbmREYXRlID8gZm9ybWF0RGlzcGxheURhdGUoZW5kRGF0ZSwgcHJvcHMubG9jYWxlKSA6ICcnfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmVuZERhdGVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtzaG93Q2FsZW5kYXIgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERheVBpY2tlclxuICAgICAgICAgICAgICAgIGNzcz17ZGF5U2l6ZUNzc31cbiAgICAgICAgICAgICAgICBudW1iZXJPZk1vbnRocz17bnVtYmVyT2ZNb250aHN9XG4gICAgICAgICAgICAgICAgbW9udGg9e2Rpc3BsYXlNb250aH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0TW9udGg9e2RlZmF1bHRNb250aH1cbiAgICAgICAgICAgICAgICBvbk1vbnRoQ2hhbmdlPXtoYW5kbGVNb250aENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkRheUNsaWNrPXtoYW5kbGVEYXlDbGlja31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEYXlEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgICAgICBJY29uTGVmdDogKCkgPT4gPExlZnRMaW5rIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBNb250aFwiIC8+LFxuICAgICAgICAgICAgICAgICAgSWNvblJpZ2h0OiAoKSA9PiA8UmlnaHRMaW5rIGFyaWEtbGFiZWw9XCJOZXh0IE1vbnRoXCIgLz4sXG4gICAgICAgICAgICAgICAgICBEYXlDb250ZW50LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVycz17Zm9ybWF0dGVyc31cbiAgICAgICAgICAgICAgICBtb2RpZmllcnM9e3tcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RhcnQ6IChkOiBEYXRlKSA9PiB0b0lTT1N0cihkKSA9PT0gdG9JU09TdHIoc3RhcnREYXRlKSxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX2VuZDogKGQ6IERhdGUpID0+ICFwcm9wcy5lbmREYXRlRGlzYWJsZWQgJiYgdG9JU09TdHIoZCkgPT09IHRvSVNPU3RyKGVuZERhdGUpLFxuICAgICAgICAgICAgICAgICAgcmFuZ2VfbWlkZGxlOiBpc1JhbmdlTWlkZGxlLFxuICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWQ6IGlzT2ZmZXJEYXksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBtb2RpZmllcnNDbGFzc05hbWVzPXt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9zdGFydDogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZF9zdGFydCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9lbmQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfZW5kJyxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZF9zcGFuJyxcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiAnQ2FsZW5kYXJEYXlfX2hpZ2hsaWdodGVkX2NhbGVuZGFyJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHBhZ2VkTmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIHdlZWtTdGFydHNPbj17Z2V0V2Vla1N0YXJ0KHByb3BzLmxvY2FsZSB8fCAnZW4nKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge3JlbmRlckNhbGVuZGFySW5mbygpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L0xvY2tCb2R5U2Nyb2xsPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVSYW5nZVBpY2tlclxuIl19 */");
172
261
  return _jsx(LockBodyScroll, {
173
262
  enabled: mobileState && showCalendar,
174
263
  children: _jsx("div", {
175
- className: 'outer ' + props.className,
176
- css: /*#__PURE__*/css(DatePickerDefaultStyles, ";", DatePickerDfdsStyles, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1LZ0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZGVwcmVjYXRlZCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24gKi9cbmltcG9ydCB7IERheVBpY2tlclJhbmdlQ29udHJvbGxlciwgRm9jdXNlZElucHV0U2hhcGUsIERheVBpY2tlclNpbmdsZURhdGVDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtZGF0ZXMnXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgJ3JlYWN0LWRhdGVzL2luaXRpYWxpemUnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IERhdGVQaWNrZXJEZWZhdWx0U3R5bGVzIGZyb20gJy4vRGF0ZVBpY2tlckRlZmF1bHRTdHlsZXMnXG5pbXBvcnQgRGF0ZVBpY2tlckRmZHNTdHlsZXMgZnJvbSAnLi9EYXRlUGlja2VyRGZkc1N0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5pbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlclByb3BzIHtcbiAgZW5kRGF0ZURpc2FibGVkPzogYm9vbGVhblxuICB2YWxpZDogYm9vbGVhblxuICBvbkRhdGVDaGFuZ2U6IChkOiBzdHJpbmcgfCBudWxsLCByOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIGZvcm1hdD86IHN0cmluZ1xuICBpbmZvTGFiZWw/OiBzdHJpbmdcbiAgc3RhcnREYXRlczogSURhdGVMZWdcbiAgZW5kRGF0ZXM6IElEYXRlTGVnXG4gIGxhYmVsczogSURhdGVSYW5nZVBpY2tlckxhYmVsc1xuICBvbk5leHRNb250aENsaWNrPzogKCkgPT4gdm9pZFxuICBvblByZXZNb250aENsaWNrPzogKCkgPT4gdm9pZFxuICBudW1iZXJPZk1vYmlsZU1vbnRocz86IG51bWJlclxuICBoaWRlSWNvbj86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xufVxuaW50ZXJmYWNlIElEYXRlTGVnIHtcbiAgaW5pdGlhbDogc3RyaW5nIHwgbnVsbFxuICBtYXhEYXRlOiBzdHJpbmdcbiAgbWluRGF0ZTogc3RyaW5nXG4gIGRpc2FibGVkRGF0ZXM/OiBzdHJpbmdbXVxuICBvZmZlckRhdGVzPzogc3RyaW5nW11cbn1cbmludGVyZmFjZSBJRGF0ZVJhbmdlUGlja2VyTGFiZWxzIHtcbiAgc3RhcnQ6IHN0cmluZ1xuICBlbmQ6IHN0cmluZ1xuICBoZWFkZXI6IHN0cmluZ1xuICBpbmZvPzogc3RyaW5nXG59XG4vLyBEbyBhIHdyYXBwZXIgdG8gc3VwcG9ydCBzdHlsZWQgY29tcG9uZW50czogaHR0cHM6Ly9naXRodWIuY29tL2FpcmJuYi9yZWFjdC1kYXRlcy9pc3N1ZXMvMTAzMCNpc3N1ZWNvbW1lbnQtMzg4MjI3NDU0XG5jb25zdCBEYXRlUmFuZ2VQaWNrZXIgPSAocHJvcHM6IElEYXRlUmFuZ2VQaWNrZXJQcm9wcykgPT4ge1xuICBjb25zdCBbc3RhcnREYXRlLCBzZXRTdGFydERhdGVdID0gdXNlU3RhdGUodG9Nb21lbnQocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgY29uc3QgW2VuZERhdGUsIHNldEVuZERhdGVdID0gdXNlU3RhdGUodG9Nb21lbnQocHJvcHMuZW5kRGF0ZXMuaW5pdGlhbCkpXG4gIGNvbnN0IFtzaG93Q2FsZW5kYXIsIHNldFNob3dDYWxlbmRhcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2ZvY3VzZWRJbnB1dCwgc2V0Rm9jdXNlZElucHV0XSA9IHVzZVN0YXRlKCdzdGFydERhdGUnIGFzIEZvY3VzZWRJbnB1dFNoYXBlKVxuICBjb25zdCB7IG51bWJlck9mTW9udGhzLCBtb2JpbGVTdGF0ZSwgc2l6ZSB9ID0gdXNlTWVkaWEoXG4gICAgWycobWF4LXdpZHRoOiA2NGVtKScsICcobWluLXdpZHRoOiA3OC4wNjNlbSknXSxcbiAgICBbXG4gICAgICB7IG51bWJlck9mTW9udGhzOiBwcm9wcy5udW1iZXJPZk1vYmlsZU1vbnRocyB8fCAxMiwgbW9iaWxlU3RhdGU6IHRydWUsIHNpemU6IDQwIH0sXG4gICAgICB7IG51bWJlck9mTW9udGhzOiAyLCBtb2JpbGVTdGF0ZTogZmFsc2UsIHNpemU6IDQ4IH0sXG4gICAgXSxcbiAgICB7IG51bWJlck9mTW9udGhzOiAxLCBtb2JpbGVTdGF0ZTogZmFsc2UsIHNpemU6IDQ4IH1cbiAgKVxuXG4gIG1vbWVudC5sb2NhbGUocHJvcHMubG9jYWxlKVxuICBtb21lbnQoKS53ZWVrZGF5KDApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodG9Nb21lbnQocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgICBzZXRFbmREYXRlKHRvTW9tZW50KHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICB9LCBbcHJvcHMuc3RhcnREYXRlcy5pbml0aWFsLCBwcm9wcy5lbmREYXRlcy5pbml0aWFsXSlcbiAgY29uc3QgY2xvc2VFeGNlcHRpb25EaXZPdXQgPSB1c2VSZWYobnVsbClcbiAgY29uc3QgY2xvc2VFeGNlcHRpb25JbWdPdXQgPSB1c2VSZWYobnVsbClcbiAgY29uc3Qgc3RhcnRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gIH1cbiAgY29uc3QgZW5kQ2FsZW5kYXJDbGlja2VkID0gKCkgPT4ge1xuICAgIHNldFNob3dDYWxlbmRhcigocHJldikgPT4gIXByZXYpXG4gICAgc2V0Rm9jdXNlZElucHV0KCdlbmREYXRlJylcbiAgfVxuICBjb25zdCBvbk91dHNpZGVDbGljayA9ICh7IHRhcmdldCB9OiBhbnkpID0+IHtcbiAgICBpZiAodGFyZ2V0ID09PSBjbG9zZUV4Y2VwdGlvbkRpdk91dC5jdXJyZW50IHx8IHRhcmdldCA9PT0gY2xvc2VFeGNlcHRpb25JbWdPdXQuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gICAgcHJvcHMub25EYXRlQ2hhbmdlKGdldEtleVN0cihzdGFydERhdGUpLCBnZXRLZXlTdHIoZW5kRGF0ZSkpXG4gIH1cbiAgY29uc3QgcmVuZGVyQ2FsZW5kYXJJbmZvID0gKCkgPT5cbiAgICBwcm9wcy5pbmZvTGFiZWwgPyAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19fbGVnZW5kXCIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19faW5mb1wiPntwcm9wcy5pbmZvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSA6IChcbiAgICAgICcnXG4gICAgKVxuICBjb25zdCBkaXNhYmxlZERhdGVzID0gbWluaU1vaXplKFxuICAgIChmb2N1c2VkSW5wdXQ6IHN0cmluZywgc3RhcnQ6IHN0cmluZywgc3RhcnREaXNhYmxlZERhdGVzOiBzdHJpbmdbXSwgZW5kRGlzYWJsZWREYXRlczogc3RyaW5nW10pID0+XG4gICAgICBidWlsZE1hcChcbiAgICAgICAgZm9jdXNlZElucHV0ICE9PSAnZW5kRGF0ZSdcbiAgICAgICAgICA/IHN0YXJ0RGlzYWJsZWREYXRlc1xuICAgICAgICAgIDogKHN0YXJ0RGlzYWJsZWREYXRlcyB8fCBbXSkuZmlsdGVyKChkKSA9PiBkIDwgc3RhcnQpLmNvbmNhdChlbmREaXNhYmxlZERhdGVzKVxuICAgICAgKVxuICApXG4gIGNvbnN0IGlzRGF5QmxvY2tlZCA9IChkYXRlOiBNb21lbnQpID0+IHtcbiAgICBjb25zdCBzdGFydERhdGVTdHIgPSBnZXRLZXlTdHIoc3RhcnREYXRlKVxuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWREYXRlcyhcbiAgICAgIGZvY3VzZWRJbnB1dCxcbiAgICAgIHN0YXJ0RGF0ZVN0cixcbiAgICAgIHByb3BzLnN0YXJ0RGF0ZXMuZGlzYWJsZWREYXRlcyxcbiAgICAgIHByb3BzLmVuZERhdGVzLmRpc2FibGVkRGF0ZXNcbiAgICApXG4gICAgY29uc3QgZGF0ZU4gPSBnZXRLZXlTdHIoZGF0ZSlcbiAgICBpZiAoIWRhdGVOKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgY29uc3QgZCA9IGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gcHJvcHMuc3RhcnREYXRlcyA6IHByb3BzLmVuZERhdGVzXG4gICAgY29uc3QgbWluID0gcHJvcHMuc3RhcnREYXRlcy5taW5EYXRlXG4gICAgaWYgKGRpc2FibGVkW2RhdGVOXSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYgKG1pbiAmJiBkYXRlTiAmJiBkYXRlTiA8IG1pbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYgKGQubWF4RGF0ZSAmJiBkYXRlTiAmJiBkYXRlTiA+IGQubWF4RGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgaWYgKGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHN0YXJ0RGF0ZVN0ciAmJiBzdGFydERhdGVTdHIgPCBkYXRlTiAmJiBkYXRlTiA8IHByb3BzLmVuZERhdGVzLm1pbkRhdGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IG9mZmVyRGF0ZXMgPSBtaW5pTW9pemUoKGZvY3VzZWRJbnB1dDogc3RyaW5nLCBzdGFydE9mZmVyczogc3RyaW5nW10sIGVuZE9mZmVyczogc3RyaW5nW10pID0+XG4gICAgYnVpbGRNYXAoZm9jdXNlZElucHV0ICE9PSAnZW5kRGF0ZScgPyBzdGFydE9mZmVycyA6IGVuZE9mZmVycylcbiAgKVxuICBjb25zdCBpc09mZmVyVmFsaWQgPSAoZGF0ZTogTW9tZW50KSA9PiB7XG4gICAgY29uc3QgbWFwID0gb2ZmZXJEYXRlcyhmb2N1c2VkSW5wdXQsIHByb3BzLnN0YXJ0RGF0ZXMub2ZmZXJEYXRlcywgcHJvcHMuZW5kRGF0ZXMub2ZmZXJEYXRlcylcbiAgICByZXR1cm4gbWFwW2dldEtleVN0cihkYXRlKSFdXG4gIH1cbiAgY29uc3QgbWluaW11bU5pZ2h0cyA9ICgpID0+IHtcbiAgICBjb25zdCBzdGFydCA9IHRvTW9tZW50KHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbClcbiAgICBjb25zdCBlbmQgPSB0b01vbWVudChwcm9wcy5lbmREYXRlcy5taW5EYXRlKVxuICAgIHJldHVybiBlbmQgJiYgc3RhcnQgPyBlbmQuZGlmZihzdGFydCwgJ2RheXMnKSA6IDBcbiAgfVxuICBjb25zdCBpbml0aWFsTW9udGggPSAoKSA9PiAobW9iaWxlU3RhdGUgPyB0b01vbWVudChwcm9wcy5zdGFydERhdGVzLm1pbkRhdGUpIDogc3RhcnREYXRlKSB8fCBtb21lbnQoKVxuICBjb25zdCBzaGFyZWRDdXN0b21Qcm9wcyA9IHtcbiAgICBoaWRlS2V5Ym9hcmRTaG9ydGN1dHNQYW5lbDogdHJ1ZSxcbiAgICBuYXZQcmV2OiA8TGVmdExpbmsgYXJpYS1sYWJlbD1cIlByZXZpb3VzIE1vbnRoXCIgLz4sXG4gICAgbmF2TmV4dDogPFJpZ2h0TGluayBhcmlhLWxhYmVsPVwiTmV4dCBNb250aFwiIC8+LFxuICAgIHdlZWtEYXlGb3JtYXQ6ICdkZGQnLFxuICAgIGRheVNpemU6IHNpemUsXG4gICAgbW9udGhGb3JtYXQ6ICdNTU1NIFlZWVknLFxuICAgIGRheUFyaWFMYWJlbEZvcm1hdDogJ1lZWVktTU0tREQnLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogMTAwLFxuICAgIG51bWJlck9mTW9udGhzLFxuICAgIG9uT3V0c2lkZUNsaWNrLFxuICAgIGlzRGF5QmxvY2tlZDogKGQ6IE1vbWVudCkgPT4gaXNEYXlCbG9ja2VkKGQpLFxuICAgIGlzRGF5SGlnaGxpZ2h0ZWQ6IChkOiBNb21lbnQpID0+IGlzT2ZmZXJWYWxpZChkKSxcbiAgICBpbml0aWFsVmlzaWJsZU1vbnRoOiBpbml0aWFsTW9udGgsXG4gICAgcmVuZGVyQ2FsZW5kYXJJbmZvLFxuICB9XG4gIHJldHVybiAoXG4gICAgPExvY2tCb2R5U2Nyb2xsIGVuYWJsZWQ9e21vYmlsZVN0YXRlICYmIHNob3dDYWxlbmRhcn0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J291dGVyICcgKyBwcm9wcy5jbGFzc05hbWV9XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICR7RGF0ZVBpY2tlckRlZmF1bHRTdHlsZXN9O1xuICAgICAgICAgICR7RGF0ZVBpY2tlckRmZHNTdHlsZXN9O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2RhdGVSYW5nZVBpY2tlcldyYXBwZXInLCB7ICdkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyLS1hY3RpdmUnOiBzaG93Q2FsZW5kYXIgfSl9PlxuICAgICAgICAgIHttb2JpbGVTdGF0ZSAmJiBzaG93Q2FsZW5kYXIgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlcldyYXBwZXJfX3RpdGxlXCI+e3Byb3BzLmxhYmVscy5oZWFkZXJ9PC9oMj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VyV3JhcHBlcl9fY2xvc2VcIiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpfT5cbiAgICAgICAgICAgICAgICA8Q2xvc2UgLz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICBkYXRlcGlja2VyX2NvbnRhaW5lcjogdHJ1ZSxcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9vcGVuOiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19lcnJvckJvcmRlcjogIXByb3BzLnZhbGlkICYmICFzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZm9jdXNfb3V0OiBmb2N1c2VkSW5wdXQgPT09ICdzdGFydERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19ub25mb2N1czogZm9jdXNlZElucHV0ID09PSAnZW5kRGF0ZScgJiYgc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGZyb21EYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2hpZGVJY29uOiBwcm9wcy5oaWRlSWNvbixcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e3N0YXJ0Q2FsZW5kYXJDbGlja2VkfVxuICAgICAgICAgICAgICByZWY9e2Nsb3NlRXhjZXB0aW9uRGl2T3V0fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19fbGFiZWxcIj57cHJvcHMubGFiZWxzLnN0YXJ0fTwvbGFiZWw+XG4gICAgICAgICAgICAgIHshcHJvcHMuaGlkZUljb24gJiYgPENhbGVuZGFyT3V0Ym91bmQgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faWNvblwiIHJlZj17Y2xvc2VFeGNlcHRpb25JbWdPdXR9IC8+fVxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJmcm9tRGF0ZVwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N0YXJ0RGF0ZSA/IHN0YXJ0RGF0ZS5mb3JtYXQoJ2RkZCBERC9NTScpIDogJyd9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfY29udGFpbmVyOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlcGlja2VyX29wZW46IHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX29uZVdheTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19kaXNhYmxlZDogcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgICdkYXRlSW5wdXRzX19kaXNhYmxlZC0tYWN0aXZlJzogc2hvd0NhbGVuZGFyICYmIHByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19lcnJvckJvcmRlcjogIXByb3BzLnZhbGlkICYmICFzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ3N0YXJ0RGF0ZScgJiYgc2hvd0NhbGVuZGFyICYmICFwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZm9jdXNfcmV0OiBmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlbmRDYWxlbmRhckNsaWNrZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19sYWJlbFwiPntwcm9wcy5sYWJlbHMuZW5kfTwvbGFiZWw+XG4gICAgICAgICAgICAgIHshcHJvcHMuaGlkZUljb24gJiYgPENhbGVuZGFyUmV0dXJuIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwidG9EYXRlXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17ZW5kRGF0ZSA/IGVuZERhdGUuZm9ybWF0KCdkZGQgREQvTU0nKSA6ICcnfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmVuZERhdGVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtzaG93Q2FsZW5kYXIgJiYgIXByb3BzLmVuZERhdGVEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8RGF5UGlja2VyUmFuZ2VDb250cm9sbGVyXG4gICAgICAgICAgICAgIG9uTmV4dE1vbnRoQ2xpY2s9e3Byb3BzLm9uTmV4dE1vbnRoQ2xpY2t9XG4gICAgICAgICAgICAgIG9uUHJldk1vbnRoQ2xpY2s9e3Byb3BzLm9uUHJldk1vbnRoQ2xpY2t9XG4gICAgICAgICAgICAgIC8vIFJlcXVpcmVkIHByb3BzXG4gICAgICAgICAgICAgIG9uRGF0ZXNDaGFuZ2U9eyh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U3RhcnREYXRlKHN0YXJ0RGF0ZSlcbiAgICAgICAgICAgICAgICBzZXRFbmREYXRlKGVuZERhdGUpXG4gICAgICAgICAgICAgICAgcHJvcHMub25EYXRlQ2hhbmdlKGdldEtleVN0cihzdGFydERhdGUpLCBnZXRLZXlTdHIoZW5kRGF0ZSkpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGZvY3VzZWRJbnB1dD17Zm9jdXNlZElucHV0fVxuICAgICAgICAgICAgICBzdGFydERhdGU9e3N0YXJ0RGF0ZX1cbiAgICAgICAgICAgICAgZW5kRGF0ZT17ZW5kRGF0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1c0NoYW5nZT17KGZvY3VzZWRJbnB1dDogRm9jdXNlZElucHV0U2hhcGUgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Rm9jdXNlZElucHV0KGZvY3VzZWRJbnB1dCB8fCAnc3RhcnREYXRlJylcbiAgICAgICAgICAgICAgICBzZXRTaG93Q2FsZW5kYXIoISFmb2N1c2VkSW5wdXQpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8vIFdlIHVzZSBwaHJhc2VzIHRvIGRpc2FibGUgZXh0cmEgc3R1ZmYgZnJvbSBhcmlhLWxhYmVsXG4gICAgICAgICAgICAgIHBocmFzZXM9e3sgY2hvb3NlQXZhaWxhYmxlU3RhcnREYXRlOiAoYTogYW55KSA9PiBhLmRhdGUsIGNob29zZUF2YWlsYWJsZUVuZERhdGU6IChhOiBhbnkpID0+IGEuZGF0ZSB9fVxuICAgICAgICAgICAgICBtaW5pbXVtTmlnaHRzPXttaW5pbXVtTmlnaHRzKCl9XG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uPXttb2JpbGVTdGF0ZSA/ICd2ZXJ0aWNhbFNjcm9sbGFibGUnIDogJ2hvcml6b250YWwnfVxuICAgICAgICAgICAgICB7Li4uc2hhcmVkQ3VzdG9tUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dDYWxlbmRhciAmJiBwcm9wcy5lbmREYXRlRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPERheVBpY2tlclNpbmdsZURhdGVDb250cm9sbGVyXG4gICAgICAgICAgICAgIC8vIFJlcXVpcmVkIHByb3BzXG4gICAgICAgICAgICAgIG9uRGF0ZUNoYW5nZT17KGRhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRTdGFydERhdGUoZGF0ZSlcbiAgICAgICAgICAgICAgICBzZXRFbmREYXRlKGRhdGUpXG4gICAgICAgICAgICAgICAgcHJvcHMub25EYXRlQ2hhbmdlKGdldEtleVN0cihkYXRlKSwgbnVsbClcbiAgICAgICAgICAgICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uRm9jdXNDaGFuZ2U9eygpID0+IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgZm9jdXNlZFxuICAgICAgICAgICAgICBkYXRlPXtzdGFydERhdGV9XG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uPXttb2JpbGVTdGF0ZSA/ICd2ZXJ0aWNhbFNjcm9sbGFibGUnIDogJ2hvcml6b250YWwnfVxuICAgICAgICAgICAgICB7Li4uc2hhcmVkQ3VzdG9tUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Mb2NrQm9keVNjcm9sbD5cbiAgKVxufVxuZnVuY3Rpb24gZ2V0S2V5U3RyKG06IE1vbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIG0gJiYgbS5mb3JtYXQoJ1lZWVktTU0tREQnKVxufVxuZnVuY3Rpb24gdG9Nb21lbnQobjogc3RyaW5nIHwgbnVsbCk6IE1vbWVudCB8IG51bGwge1xuICByZXR1cm4gbiA/IG1vbWVudChuLCAnWVlZWS1NTS1ERCcpIDogbnVsbFxufVxuZnVuY3Rpb24gYnVpbGRNYXAoZGF0ZXM6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IG1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9XG4gIGlmICghZGF0ZXMpIHtcbiAgICByZXR1cm4gbWFwXG4gIH1cbiAgZm9yIChjb25zdCBkIG9mIGRhdGVzKSB7XG4gICAgbWFwW2RdID0gMVxuICB9XG4gIHJldHVybiBtYXBcbn1cbmV4cG9ydCBkZWZhdWx0IERhdGVSYW5nZVBpY2tlclxuIl19 */"),
264
+ ref: wrapperRef,
265
+ className: 'outer ' + (props.className || ''),
266
+ css: /*#__PURE__*/css(dateRangePickerDfdsStyles, ";position:relative;" + (process.env.NODE_ENV === "production" ? "" : ";label:DateRangePicker;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXJhbmdlLXBpY2tlci9EYXRlUmFuZ2VQaWNrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZSZ0IiLCJmaWxlIjoiLi4vLi4vc3JjL2RhdGUtcmFuZ2UtcGlja2VyL0RhdGVSYW5nZVBpY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlQaWNrZXIgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IHR5cGUgeyBEYXlDb250ZW50UHJvcHMgfSBmcm9tICdyZWFjdC1kYXktcGlja2VyJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IENsb3NlLCBSaWdodExpbmssIExlZnRMaW5rLCBDYWxlbmRhck91dGJvdW5kLCBDYWxlbmRhclJldHVybiB9IGZyb20gJ0BkZmRzLXVpL2ljb25zJ1xuaW1wb3J0IHVzZU1lZGlhIGZyb20gJy4uL2NvbW1vbi91c2UtbWVkaWEnXG5pbXBvcnQgeyBtaW5pTW9pemUgfSBmcm9tICcuLi9jb21tb24vbWluaU1vaXplJ1xuaW1wb3J0IHsgZGF0ZVJhbmdlUGlja2VyRGZkc1N0eWxlcyB9IGZyb20gJy4vRGF0ZVJhbmdlUGlja2VyLnN0eWxlcydcbmltcG9ydCBMb2NrQm9keVNjcm9sbCBmcm9tICcuLi9jb21tb24vTG9ja0JvZHlTY3JvbGwnXG5cbmltcG9ydCAncmVhY3QtZGF5LXBpY2tlci9kaXN0L3N0eWxlLmNzcydcblxudHlwZSBGb2N1c2VkSW5wdXQgPSAnc3RhcnREYXRlJyB8ICdlbmREYXRlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlUmFuZ2VQaWNrZXJQcm9wcyB7XG4gIGVuZERhdGVEaXNhYmxlZD86IGJvb2xlYW5cbiAgdmFsaWQ6IGJvb2xlYW5cbiAgb25EYXRlQ2hhbmdlOiAoZDogc3RyaW5nIHwgbnVsbCwgcjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZFxuICBmb3JtYXQ/OiBzdHJpbmdcbiAgaW5mb0xhYmVsPzogc3RyaW5nXG4gIHN0YXJ0RGF0ZXM6IElEYXRlTGVnXG4gIGVuZERhdGVzOiBJRGF0ZUxlZ1xuICBsYWJlbHM6IElEYXRlUmFuZ2VQaWNrZXJMYWJlbHNcbiAgb25OZXh0TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgb25QcmV2TW9udGhDbGljaz86ICgpID0+IHZvaWRcbiAgbnVtYmVyT2ZNb2JpbGVNb250aHM/OiBudW1iZXJcbiAgaGlkZUljb24/OiBib29sZWFuXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUxlZyB7XG4gIGluaXRpYWw6IHN0cmluZyB8IG51bGxcbiAgbWF4RGF0ZTogc3RyaW5nXG4gIG1pbkRhdGU6IHN0cmluZ1xuICBkaXNhYmxlZERhdGVzPzogc3RyaW5nW11cbiAgb2ZmZXJEYXRlcz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVSYW5nZVBpY2tlckxhYmVscyB7XG4gIHN0YXJ0OiBzdHJpbmdcbiAgZW5kOiBzdHJpbmdcbiAgaGVhZGVyOiBzdHJpbmdcbiAgaW5mbz86IHN0cmluZ1xufVxuXG4vLyAtLS0gRGF0ZSBoZWxwZXJzIChyZXBsYWNlIG1vbWVudCkgLS0tXG5cbmZ1bmN0aW9uIHRvSVNPU3RyKGQ6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghZCkgcmV0dXJuIG51bGxcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKVxuICBjb25zdCBtID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5fS0ke219LSR7ZGF5fWBcbn1cblxuZnVuY3Rpb24gdG9EYXRlKHM6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gIGlmICghcykgcmV0dXJuIG51bGxcbiAgY29uc3QgW3ksIG0sIGRdID0gcy5zcGxpdCgnLScpLm1hcChOdW1iZXIpXG4gIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlzcGxheURhdGUoZGF0ZTogRGF0ZSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd2Vla2RheSA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSB8fCAnZW4nLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSlcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgcmV0dXJuIGAke3dlZWtkYXl9ICR7ZGF5fS8ke21vbnRofWBcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0KGxvY2FsZTogc3RyaW5nKTogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB7XG4gIGNvbnN0IHN1bmRheUxvY2FsZXMgPSBbJ2VuJywgJ2VuLVVTJywgJ2phJywgJ2tvJywgJ3poJ11cbiAgY29uc3QgbGFuZyA9IGxvY2FsZS5zcGxpdCgnLScpWzBdXG4gIHJldHVybiBzdW5kYXlMb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkgfHwgc3VuZGF5TG9jYWxlcy5pbmNsdWRlcyhsYW5nKSA/IDAgOiAxXG59XG5cbmZ1bmN0aW9uIGJ1aWxkTWFwKGRhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBtYXA6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fVxuICBpZiAoIWRhdGVzKSByZXR1cm4gbWFwXG4gIGZvciAoY29uc3QgZCBvZiBkYXRlcykge1xuICAgIG1hcFtkXSA9IDFcbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbi8vIC0tLSBDb21wb25lbnQgLS0tXG5cbmNvbnN0IERhdGVSYW5nZVBpY2tlciA9IChwcm9wczogSURhdGVSYW5nZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGFydERhdGUsIHNldFN0YXJ0RGF0ZV0gPSB1c2VTdGF0ZSh0b0RhdGUocHJvcHMuc3RhcnREYXRlcy5pbml0aWFsKSlcbiAgY29uc3QgW2VuZERhdGUsIHNldEVuZERhdGVdID0gdXNlU3RhdGUodG9EYXRlKHByb3BzLmVuZERhdGVzLmluaXRpYWwpKVxuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb2N1c2VkSW5wdXQsIHNldEZvY3VzZWRJbnB1dF0gPSB1c2VTdGF0ZTxGb2N1c2VkSW5wdXQ+KCdzdGFydERhdGUnKVxuICBjb25zdCBbZGlzcGxheU1vbnRoLCBzZXREaXNwbGF5TW9udGhdID0gdXNlU3RhdGU8RGF0ZT4odG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkgfHwgbmV3IERhdGUoKSlcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCB7IG51bWJlck9mTW9udGhzLCBtb2JpbGVTdGF0ZSwgc2l6ZSB9ID0gdXNlTWVkaWEoXG4gICAgWycobWF4LXdpZHRoOiA2NGVtKScsICcobWluLXdpZHRoOiA3OC4wNjNlbSknXSxcbiAgICBbXG4gICAgICB7IG51bWJlck9mTW9udGhzOiAxLCBtb2JpbGVTdGF0ZTogdHJ1ZSwgc2l6ZTogNDAgfSxcbiAgICAgIHsgbnVtYmVyT2ZNb250aHM6IDIsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfSxcbiAgICBdLFxuICAgIHsgbnVtYmVyT2ZNb250aHM6IDEsIG1vYmlsZVN0YXRlOiBmYWxzZSwgc2l6ZTogNDggfVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTdGFydERhdGUodG9EYXRlKHByb3BzLnN0YXJ0RGF0ZXMuaW5pdGlhbCkpXG4gICAgc2V0RW5kRGF0ZSh0b0RhdGUocHJvcHMuZW5kRGF0ZXMuaW5pdGlhbCkpXG4gIH0sIFtwcm9wcy5zdGFydERhdGVzLmluaXRpYWwsIHByb3BzLmVuZERhdGVzLmluaXRpYWxdKVxuXG4gIC8vIEhhbmRsZSBjbGlja3Mgb3V0c2lkZSB0aGUgY2FsZW5kYXIgdG8gY2xvc2UgaXRcbiAgY29uc3Qgb25EYXRlQ2hhbmdlUmVmID0gdXNlUmVmKHByb3BzLm9uRGF0ZUNoYW5nZSlcbiAgb25EYXRlQ2hhbmdlUmVmLmN1cnJlbnQgPSBwcm9wcy5vbkRhdGVDaGFuZ2VcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd0NhbGVuZGFyKSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudCAmJiAhd3JhcHBlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgICAgc2V0Rm9jdXNlZElucHV0KCdzdGFydERhdGUnKVxuICAgICAgICBvbkRhdGVDaGFuZ2VSZWYuY3VycmVudCh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihlbmREYXRlKSlcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFtzaG93Q2FsZW5kYXIsIHN0YXJ0RGF0ZSwgZW5kRGF0ZV0pXG5cbiAgY29uc3Qgc3RhcnRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ3N0YXJ0RGF0ZScpXG4gIH1cblxuICBjb25zdCBlbmRDYWxlbmRhckNsaWNrZWQgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0NhbGVuZGFyKChwcmV2KSA9PiAhcHJldilcbiAgICBzZXRGb2N1c2VkSW5wdXQoJ2VuZERhdGUnKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQ2FsZW5kYXJJbmZvID0gKCkgPT5cbiAgICBwcm9wcy5pbmZvTGFiZWwgPyAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlckluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19fbGVnZW5kXCIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiZGF0ZVJhbmdlUGlja2VySW5mb19faW5mb1wiPntwcm9wcy5pbmZvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSA6IG51bGxcblxuICAvLyBNZW1vaXplZCBkaXNhYmxlZCBkYXRlcyBtYXBcbiAgY29uc3QgZGlzYWJsZWREYXRlc01hcCA9IG1pbmlNb2l6ZShcbiAgICAoXG4gICAgICBmb2N1c2VkSW5wdXQ6IHN0cmluZyxcbiAgICAgIHN0YXJ0OiBzdHJpbmcgfCBudWxsLFxuICAgICAgc3RhcnREaXNhYmxlZERhdGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGVuZERpc2FibGVkRGF0ZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgKSA9PlxuICAgICAgYnVpbGRNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnXG4gICAgICAgICAgPyBzdGFydERpc2FibGVkRGF0ZXNcbiAgICAgICAgICA6IChzdGFydERpc2FibGVkRGF0ZXMgfHwgW10pLmZpbHRlcigoZCkgPT4gZCA8IChzdGFydCB8fCAnJykpLmNvbmNhdChlbmREaXNhYmxlZERhdGVzIHx8IFtdKVxuICAgICAgKVxuICApXG5cbiAgY29uc3QgaXNEYXlEaXNhYmxlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGVTdHIgPSB0b0lTT1N0cihzdGFydERhdGUpXG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkRGF0ZXNNYXAoXG4gICAgICAgIGZvY3VzZWRJbnB1dCxcbiAgICAgICAgc3RhcnREYXRlU3RyLFxuICAgICAgICBwcm9wcy5zdGFydERhdGVzLmRpc2FibGVkRGF0ZXMsXG4gICAgICAgIHByb3BzLmVuZERhdGVzLmRpc2FibGVkRGF0ZXNcbiAgICAgIClcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSB0b0lTT1N0cihkYXRlKVxuICAgICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgZCA9IGZvY3VzZWRJbnB1dCAhPT0gJ2VuZERhdGUnID8gcHJvcHMuc3RhcnREYXRlcyA6IHByb3BzLmVuZERhdGVzXG4gICAgICBjb25zdCBtaW4gPSBwcm9wcy5zdGFydERhdGVzLm1pbkRhdGVcbiAgICAgIGlmIChkaXNhYmxlZFtkYXRlU3RyXSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChtaW4gJiYgZGF0ZVN0ciA8IG1pbikgcmV0dXJuIHRydWVcbiAgICAgIGlmIChkLm1heERhdGUgJiYgZGF0ZVN0ciA+IGQubWF4RGF0ZSkgcmV0dXJuIHRydWVcbiAgICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdlbmREYXRlJyAmJiBzdGFydERhdGVTdHIgJiYgc3RhcnREYXRlU3RyIDwgZGF0ZVN0ciAmJiBkYXRlU3RyIDwgcHJvcHMuZW5kRGF0ZXMubWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcbiAgICBbZm9jdXNlZElucHV0LCBzdGFydERhdGUsIHByb3BzLnN0YXJ0RGF0ZXMsIHByb3BzLmVuZERhdGVzLCBkaXNhYmxlZERhdGVzTWFwXVxuICApXG5cbiAgLy8gTWVtb2l6ZWQgb2ZmZXIgZGF0ZXMgbWFwXG4gIGNvbnN0IG9mZmVyRGF0ZXNNYXAgPSBtaW5pTW9pemUoXG4gICAgKGZvY3VzZWRJbnB1dDogc3RyaW5nLCBzdGFydE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQsIGVuZE9mZmVyczogc3RyaW5nW10gfCB1bmRlZmluZWQpID0+XG4gICAgICBidWlsZE1hcChmb2N1c2VkSW5wdXQgIT09ICdlbmREYXRlJyA/IHN0YXJ0T2ZmZXJzIDogZW5kT2ZmZXJzKVxuICApXG5cbiAgY29uc3QgaXNPZmZlckRheSA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBvZmZlckRhdGVzTWFwKGZvY3VzZWRJbnB1dCwgcHJvcHMuc3RhcnREYXRlcy5vZmZlckRhdGVzLCBwcm9wcy5lbmREYXRlcy5vZmZlckRhdGVzKVxuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA/ICEhbWFwW2RhdGVTdHJdIDogZmFsc2VcbiAgICB9LFxuICAgIFtmb2N1c2VkSW5wdXQsIHByb3BzLnN0YXJ0RGF0ZXMub2ZmZXJEYXRlcywgcHJvcHMuZW5kRGF0ZXMub2ZmZXJEYXRlcywgb2ZmZXJEYXRlc01hcF1cbiAgKVxuXG4gIGNvbnN0IGRlZmF1bHRNb250aCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChtb2JpbGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRvRGF0ZShwcm9wcy5zdGFydERhdGVzLm1pbkRhdGUpIHx8IG5ldyBEYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0RGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgLy8gT25seSBjb21wdXRlIG9uIG1vdW50IC8gd2hlbiBtb2JpbGUgc3RhdGUgY2hhbmdlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAZXNsaW50LXJlYWN0L2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbbW9iaWxlU3RhdGVdKVxuXG4gIGNvbnN0IGhhbmRsZU1vbnRoQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1vbnRoOiBEYXRlKSA9PiB7XG4gICAgICBpZiAobW9udGggPiBkaXNwbGF5TW9udGgpIHtcbiAgICAgICAgcHJvcHMub25OZXh0TW9udGhDbGljaz8uKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLm9uUHJldk1vbnRoQ2xpY2s/LigpXG4gICAgICB9XG4gICAgICBzZXREaXNwbGF5TW9udGgobW9udGgpXG4gICAgfSxcbiAgICBbZGlzcGxheU1vbnRoLCBwcm9wcy5vbk5leHRNb250aENsaWNrLCBwcm9wcy5vblByZXZNb250aENsaWNrXVxuICApXG5cbiAgY29uc3QgaGFuZGxlRGF5Q2xpY2sgPSAoZGF5OiBEYXRlKSA9PiB7XG4gICAgaWYgKGlzRGF5RGlzYWJsZWQoZGF5KSkgcmV0dXJuXG5cbiAgICBpZiAocHJvcHMuZW5kRGF0ZURpc2FibGVkKSB7XG4gICAgICBzZXRTdGFydERhdGUoZGF5KVxuICAgICAgc2V0RW5kRGF0ZShkYXkpXG4gICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UodG9JU09TdHIoZGF5KSwgbnVsbClcbiAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmb2N1c2VkSW5wdXQgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICBzZXRTdGFydERhdGUoZGF5KVxuICAgICAgc2V0RW5kRGF0ZShudWxsKVxuICAgICAgc2V0Rm9jdXNlZElucHV0KCdlbmREYXRlJylcbiAgICAgIHByb3BzLm9uRGF0ZUNoYW5nZSh0b0lTT1N0cihkYXkpLCBudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRFbmREYXRlKGRheSlcbiAgICAgIHNldEZvY3VzZWRJbnB1dCgnc3RhcnREYXRlJylcbiAgICAgIHNldFNob3dDYWxlbmRhcihmYWxzZSlcbiAgICAgIHByb3BzLm9uRGF0ZUNoYW5nZSh0b0lTT1N0cihzdGFydERhdGUpLCB0b0lTT1N0cihkYXkpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlzU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IHRvSVNPU3RyKGRhdGUpXG4gICAgICByZXR1cm4gZGF0ZVN0ciA9PT0gdG9JU09TdHIoc3RhcnREYXRlKSB8fCBkYXRlU3RyID09PSB0b0lTT1N0cihlbmREYXRlKVxuICAgIH0sXG4gICAgW3N0YXJ0RGF0ZSwgZW5kRGF0ZV1cbiAgKVxuXG4gIGNvbnN0IGlzUmFuZ2VNaWRkbGUgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIGRhdGUgPiBzdGFydERhdGUgJiYgZGF0ZSA8IGVuZERhdGVcbiAgICB9LFxuICAgIFtzdGFydERhdGUsIGVuZERhdGVdXG4gIClcblxuICAvLyBDdXN0b20gRGF5Q29udGVudCB0aGF0IHNldHMgYXJpYS1sYWJlbCB0byB0aGUgSVNPIGRhdGUgKGZvciB0ZXN0YWJpbGl0eSAmIGExMXkpXG4gIGNvbnN0IERheUNvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gRGF5Q29udGVudENvbXBvbmVudCh7IGRhdGUgfTogRGF5Q29udGVudFByb3BzKSB7XG4gICAgICByZXR1cm4gPD57ZGF0ZS5nZXREYXRlKCl9PC8+XG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBmb3JtYXR0ZXJzID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZm9ybWF0V2Vla2RheU5hbWU6IChkYXRlOiBEYXRlKSA9PiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhwcm9wcy5sb2NhbGUgfHwgJ2VuJywgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pLFxuICAgICAgZm9ybWF0Q2FwdGlvbjogKGRhdGU6IERhdGUpID0+IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHByb3BzLmxvY2FsZSB8fCAnZW4nLCB7IG1vbnRoOiAnbG9uZycsIHllYXI6ICdudW1lcmljJyB9KSxcbiAgICAgIGZvcm1hdERheTogKGRhdGU6IERhdGUpID0+IFN0cmluZyhkYXRlLmdldERhdGUoKSksXG4gICAgfSksXG4gICAgW3Byb3BzLmxvY2FsZV1cbiAgKVxuXG4gIGNvbnN0IGRheVNpemVDc3MgPSBjc3NgXG4gICAgLS1yZHAtY2VsbC1zaXplOiAke3NpemV9cHg7XG4gIGBcblxuICByZXR1cm4gKFxuICAgIDxMb2NrQm9keVNjcm9sbCBlbmFibGVkPXttb2JpbGVTdGF0ZSAmJiBzaG93Q2FsZW5kYXJ9PlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17J291dGVyICcgKyAocHJvcHMuY2xhc3NOYW1lIHx8ICcnKX1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtkYXRlUmFuZ2VQaWNrZXJEZmRzU3R5bGVzfTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyJywgeyAnZGF0ZVJhbmdlUGlja2VyV3JhcHBlci0tYWN0aXZlJzogc2hvd0NhbGVuZGFyIH0pfT5cbiAgICAgICAgICB7bW9iaWxlU3RhdGUgJiYgc2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJkYXRlUmFuZ2VQaWNrZXJXcmFwcGVyX190aXRsZVwiPntwcm9wcy5sYWJlbHMuaGVhZGVyfTwvaDI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVSYW5nZVBpY2tlcldyYXBwZXJfX2Nsb3NlXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NhbGVuZGFyKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgPENsb3NlIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9jb250YWluZXI6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfb3Blbjogc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fZXJyb3JCb3JkZXI6ICFwcm9wcy52YWxpZCAmJiAhc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2ZvY3VzX291dDogZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJyAmJiBzaG93Q2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fbm9uZm9jdXM6IGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBmcm9tRGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19oaWRlSWNvbjogcHJvcHMuaGlkZUljb24sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtzdGFydENhbGVuZGFyQ2xpY2tlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2xhYmVsXCI+e3Byb3BzLmxhYmVscy5zdGFydH08L2xhYmVsPlxuICAgICAgICAgICAgICB7IXByb3BzLmhpZGVJY29uICYmIDxDYWxlbmRhck91dGJvdW5kIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2ljb25cIiAvPn1cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faW5wdXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtzdGFydERhdGUgPyBmb3JtYXREaXNwbGF5RGF0ZShzdGFydERhdGUsIHByb3BzLmxvY2FsZSkgOiAnJ31cbiAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgZGF0ZXBpY2tlcl9jb250YWluZXI6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGVwaWNrZXJfb3Blbjogc2hvd0NhbGVuZGFyLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0ZUlucHV0c19fb25lV2F5OiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Rpc2FibGVkOiBwcm9wcy5lbmREYXRlRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2RhdGVJbnB1dHNfX2Rpc2FibGVkLS1hY3RpdmUnOiBzaG93Q2FsZW5kYXIgJiYgcHJvcHMuZW5kRGF0ZURpc2FibGVkLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2Vycm9yQm9yZGVyOiAhcHJvcHMudmFsaWQgJiYgIXNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19ub25mb2N1czogZm9jdXNlZElucHV0ID09PSAnc3RhcnREYXRlJyAmJiBzaG93Q2FsZW5kYXIgJiYgIXByb3BzLmVuZERhdGVEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXRzX19mb2N1c19yZXQ6IGZvY3VzZWRJbnB1dCA9PT0gJ2VuZERhdGUnICYmIHNob3dDYWxlbmRhcixcbiAgICAgICAgICAgICAgICBlbmREYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGVJbnB1dHNfX2hpZGVJY29uOiBwcm9wcy5oaWRlSWNvbixcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2VuZENhbGVuZGFyQ2xpY2tlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImRhdGVJbnB1dHNfX2xhYmVsXCI+e3Byb3BzLmxhYmVscy5lbmR9PC9sYWJlbD5cbiAgICAgICAgICAgICAgeyFwcm9wcy5oaWRlSWNvbiAmJiA8Q2FsZW5kYXJSZXR1cm4gY2xhc3NOYW1lPVwiZGF0ZUlucHV0c19faWNvblwiIC8+fVxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRlSW5wdXRzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0b0RhdGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtlbmREYXRlID8gZm9ybWF0RGlzcGxheURhdGUoZW5kRGF0ZSwgcHJvcHMubG9jYWxlKSA6ICcnfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmVuZERhdGVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtzaG93Q2FsZW5kYXIgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPERheVBpY2tlclxuICAgICAgICAgICAgICAgIGNzcz17ZGF5U2l6ZUNzc31cbiAgICAgICAgICAgICAgICBudW1iZXJPZk1vbnRocz17bnVtYmVyT2ZNb250aHN9XG4gICAgICAgICAgICAgICAgbW9udGg9e2Rpc3BsYXlNb250aH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0TW9udGg9e2RlZmF1bHRNb250aH1cbiAgICAgICAgICAgICAgICBvbk1vbnRoQ2hhbmdlPXtoYW5kbGVNb250aENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkRheUNsaWNrPXtoYW5kbGVEYXlDbGlja31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEYXlEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgICAgICBJY29uTGVmdDogKCkgPT4gPExlZnRMaW5rIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBNb250aFwiIC8+LFxuICAgICAgICAgICAgICAgICAgSWNvblJpZ2h0OiAoKSA9PiA8UmlnaHRMaW5rIGFyaWEtbGFiZWw9XCJOZXh0IE1vbnRoXCIgLz4sXG4gICAgICAgICAgICAgICAgICBEYXlDb250ZW50LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVycz17Zm9ybWF0dGVyc31cbiAgICAgICAgICAgICAgICBtb2RpZmllcnM9e3tcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgcmFuZ2Vfc3RhcnQ6IChkOiBEYXRlKSA9PiB0b0lTT1N0cihkKSA9PT0gdG9JU09TdHIoc3RhcnREYXRlKSxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX2VuZDogKGQ6IERhdGUpID0+ICFwcm9wcy5lbmREYXRlRGlzYWJsZWQgJiYgdG9JU09TdHIoZCkgPT09IHRvSVNPU3RyKGVuZERhdGUpLFxuICAgICAgICAgICAgICAgICAgcmFuZ2VfbWlkZGxlOiBpc1JhbmdlTWlkZGxlLFxuICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWQ6IGlzT2ZmZXJEYXksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBtb2RpZmllcnNDbGFzc05hbWVzPXt7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9zdGFydDogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZF9zdGFydCcsXG4gICAgICAgICAgICAgICAgICByYW5nZV9lbmQ6ICdDYWxlbmRhckRheV9fc2VsZWN0ZWRfZW5kJyxcbiAgICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogJ0NhbGVuZGFyRGF5X19zZWxlY3RlZF9zcGFuJyxcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiAnQ2FsZW5kYXJEYXlfX2hpZ2hsaWdodGVkX2NhbGVuZGFyJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHBhZ2VkTmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIHdlZWtTdGFydHNPbj17Z2V0V2Vla1N0YXJ0KHByb3BzLmxvY2FsZSB8fCAnZW4nKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge3JlbmRlckNhbGVuZGFySW5mbygpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L0xvY2tCb2R5U2Nyb2xsPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVSYW5nZVBpY2tlclxuIl19 */"),
177
267
  children: _jsxs("div", {
178
268
  className: classNames('dateRangePickerWrapper', {
179
269
  'dateRangePickerWrapper--active': showCalendar
@@ -204,18 +294,16 @@ var DateRangePicker = function DateRangePicker(props) {
204
294
  dateInputs__hideIcon: props.hideIcon
205
295
  }),
206
296
  onClick: startCalendarClicked,
207
- ref: closeExceptionDivOut,
208
297
  children: [_jsx("label", {
209
298
  className: "dateInputs__label",
210
299
  children: props.labels.start
211
300
  }), !props.hideIcon && _jsx(CalendarOutbound, {
212
- className: "dateInputs__icon",
213
- ref: closeExceptionImgOut
301
+ className: "dateInputs__icon"
214
302
  }), _jsx("input", {
215
303
  className: "dateInputs__input",
216
304
  type: "text",
217
305
  name: "fromDate",
218
- value: startDate ? startDate.format('ddd DD/MM') : '',
306
+ value: startDate ? formatDisplayDate(startDate, props.locale) : '',
219
307
  readOnly: true
220
308
  })]
221
309
  })
@@ -246,85 +334,58 @@ var DateRangePicker = function DateRangePicker(props) {
246
334
  className: "dateInputs__input",
247
335
  type: "text",
248
336
  name: "toDate",
249
- value: endDate ? endDate.format('ddd DD/MM') : '',
337
+ value: endDate ? formatDisplayDate(endDate, props.locale) : '',
250
338
  readOnly: true,
251
339
  disabled: props.endDateDisabled
252
340
  })]
253
341
  })
254
- }), showCalendar && !props.endDateDisabled && _jsx(DayPickerRangeController, _objectSpread({
255
- onNextMonthClick: props.onNextMonthClick,
256
- onPrevMonthClick: props.onPrevMonthClick
257
- // Required props
258
- ,
259
- onDatesChange: function onDatesChange(_ref2) {
260
- var startDate = _ref2.startDate,
261
- endDate = _ref2.endDate;
262
- setStartDate(startDate);
263
- setEndDate(endDate);
264
- props.onDateChange(getKeyStr(startDate), getKeyStr(endDate));
265
- },
266
- focusedInput: focusedInput,
267
- startDate: startDate,
268
- endDate: endDate,
269
- onFocusChange: function onFocusChange(focusedInput) {
270
- setFocusedInput(focusedInput || 'startDate');
271
- setShowCalendar(!!focusedInput);
272
- }
273
- // We use phrases to disable extra stuff from aria-label
274
- ,
275
- phrases: {
276
- chooseAvailableStartDate: function chooseAvailableStartDate(a) {
277
- return a.date;
342
+ }), showCalendar && _jsxs(_Fragment, {
343
+ children: [_jsx(DayPicker, {
344
+ css: daySizeCss,
345
+ numberOfMonths: numberOfMonths,
346
+ month: displayMonth,
347
+ defaultMonth: defaultMonth,
348
+ onMonthChange: handleMonthChange,
349
+ onDayClick: handleDayClick,
350
+ disabled: isDayDisabled,
351
+ components: {
352
+ IconLeft: function IconLeft() {
353
+ return _jsx(LeftLink, {
354
+ "aria-label": "Previous Month"
355
+ });
356
+ },
357
+ IconRight: function IconRight() {
358
+ return _jsx(RightLink, {
359
+ "aria-label": "Next Month"
360
+ });
361
+ },
362
+ DayContent: DayContent
363
+ },
364
+ formatters: formatters,
365
+ modifiers: {
366
+ selected: isSelected,
367
+ range_start: function range_start(d) {
368
+ return toISOStr(d) === toISOStr(startDate);
369
+ },
370
+ range_end: function range_end(d) {
371
+ return !props.endDateDisabled && toISOStr(d) === toISOStr(endDate);
372
+ },
373
+ range_middle: isRangeMiddle,
374
+ highlighted: isOfferDay
278
375
  },
279
- chooseAvailableEndDate: function chooseAvailableEndDate(a) {
280
- return a.date;
281
- }
282
- },
283
- minimumNights: minimumNights(),
284
- orientation: mobileState ? 'verticalScrollable' : 'horizontal'
285
- }, sharedCustomProps)), showCalendar && props.endDateDisabled && _jsx(DayPickerSingleDateController
286
- // Required props
287
- , _objectSpread({
288
- onDateChange: function onDateChange(date) {
289
- setStartDate(date);
290
- setEndDate(date);
291
- props.onDateChange(getKeyStr(date), null);
292
- setShowCalendar(false);
293
- },
294
- onFocusChange: function onFocusChange() {
295
- return undefined;
296
- },
297
- focused: true,
298
- date: startDate,
299
- orientation: mobileState ? 'verticalScrollable' : 'horizontal'
300
- }, sharedCustomProps))]
376
+ modifiersClassNames: {
377
+ selected: 'CalendarDay__selected',
378
+ range_start: 'CalendarDay__selected_start',
379
+ range_end: 'CalendarDay__selected_end',
380
+ range_middle: 'CalendarDay__selected_span',
381
+ highlighted: 'CalendarDay__highlighted_calendar'
382
+ },
383
+ pagedNavigation: true,
384
+ weekStartsOn: getWeekStart(props.locale || 'en')
385
+ }), renderCalendarInfo()]
386
+ })]
301
387
  })
302
388
  })
303
389
  });
304
390
  };
305
- function getKeyStr(m) {
306
- return m && m.format('YYYY-MM-DD');
307
- }
308
- function toMoment(n) {
309
- return n ? moment(n, 'YYYY-MM-DD') : null;
310
- }
311
- function buildMap(dates) {
312
- var map = {};
313
- if (!dates) {
314
- return map;
315
- }
316
- var _iterator = _createForOfIteratorHelper(dates),
317
- _step;
318
- try {
319
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
320
- var d = _step.value;
321
- map[d] = 1;
322
- }
323
- } catch (err) {
324
- _iterator.e(err);
325
- } finally {
326
- _iterator.f();
327
- }
328
- return map;
329
- }
330
391
  export default DateRangePicker;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * DFDS-themed styles for DateRangePicker.
3
+ * Base rdp styles come from 'react-day-picker/dist/style.css' imported in the component.
4
+ * This file contains only the DFDS overrides, info panel, input/wrapper/mobile overlay CSS.
5
+ */
6
+ export declare const dateRangePickerDfdsStyles: import("@emotion/utils").SerializedStyles;