@merchi/product-form 1.19.18 → 1.19.19
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.
|
@@ -6,6 +6,12 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
6
6
|
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; }
|
|
7
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
8
8
|
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); }
|
|
9
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
10
|
+
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."); }
|
|
11
|
+
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; } }
|
|
12
|
+
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; }
|
|
13
|
+
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; } }
|
|
14
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
9
15
|
import * as React from 'react';
|
|
10
16
|
import TooltipElement from './TooltipElement';
|
|
11
17
|
import { sortByPosition, variationFieldOptionCostDetail } from './utils';
|
|
@@ -13,23 +19,37 @@ import IconCheckedOrNoStock from './icons/IconCheckedOrNoStock';
|
|
|
13
19
|
import VariationError from './VariationError';
|
|
14
20
|
import VariationLabel from './VariationLabel';
|
|
15
21
|
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
|
|
22
|
+
import * as moment from 'moment-timezone';
|
|
23
|
+
import { DEFAULT_TURNAROUND_TIMEZONE, calculateDeadline } from '../utils/calculateDeadline';
|
|
16
24
|
|
|
17
25
|
/**
|
|
18
26
|
* Formats a date for display
|
|
19
27
|
*/
|
|
20
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
29
|
function formatDate(date) {
|
|
22
|
-
var
|
|
23
|
-
var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
30
|
+
var deadline = moment.tz(date, DEFAULT_TURNAROUND_TIMEZONE);
|
|
24
31
|
return {
|
|
25
|
-
dayName:
|
|
26
|
-
dayNumber:
|
|
27
|
-
month:
|
|
32
|
+
dayName: deadline.format('ddd'),
|
|
33
|
+
dayNumber: deadline.format('D'),
|
|
34
|
+
month: deadline.format('MMM')
|
|
28
35
|
};
|
|
29
36
|
}
|
|
37
|
+
function useNow() {
|
|
38
|
+
var _React$useState = React.useState(function () {
|
|
39
|
+
return new Date();
|
|
40
|
+
}),
|
|
41
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
42
|
+
now = _React$useState2[0],
|
|
43
|
+
setNow = _React$useState2[1];
|
|
44
|
+
React.useEffect(function () {
|
|
45
|
+
setNow(new Date());
|
|
46
|
+
}, []);
|
|
47
|
+
return now;
|
|
48
|
+
}
|
|
30
49
|
function TurnaroundOption(_ref) {
|
|
31
50
|
var disabled = _ref.disabled,
|
|
32
51
|
name = _ref.name,
|
|
52
|
+
now = _ref.now,
|
|
33
53
|
onChange = _ref.onChange,
|
|
34
54
|
option = _ref.option,
|
|
35
55
|
variation = _ref.variation,
|
|
@@ -46,7 +66,6 @@ function TurnaroundOption(_ref) {
|
|
|
46
66
|
available = _option$available === void 0 ? true : _option$available,
|
|
47
67
|
_option$isVisible = option.isVisible,
|
|
48
68
|
isVisible = _option$isVisible === void 0 ? true : _option$isVisible,
|
|
49
|
-
userDeadline = option.userDeadline,
|
|
50
69
|
value = option.value,
|
|
51
70
|
optionId = option.optionId;
|
|
52
71
|
var selectedValues = selectedOptions.map(function (o) {
|
|
@@ -60,8 +79,10 @@ function TurnaroundOption(_ref) {
|
|
|
60
79
|
var isActive = watchedValue ? String(watchedValue) === String(optionId) : isSelected;
|
|
61
80
|
|
|
62
81
|
// Calculate the turnaround date based on days value
|
|
63
|
-
var
|
|
64
|
-
var
|
|
82
|
+
var parsedDays = parseInt(value, 10);
|
|
83
|
+
var days = Number.isNaN(parsedDays) ? 0 : parsedDays;
|
|
84
|
+
var deadlineDate = Number.isNaN(parsedDays) ? null : calculateDeadline(days, considerBusinessHours, now);
|
|
85
|
+
var formattedDate = deadlineDate ? formatDate(deadlineDate) : null;
|
|
65
86
|
var isDisabled = disabled || !available || !isVisible;
|
|
66
87
|
var outOfStock = !isVisible ? ' - disabled' : !available ? ' - insufficient stock' : '';
|
|
67
88
|
var deliveryLabel = shippingTimeIncluded ? 'Delivery by' : 'Produced by';
|
|
@@ -126,6 +147,7 @@ function VariationTurnaroundTime(_ref2) {
|
|
|
126
147
|
considerBusinessHours = _variationField$consi === void 0 ? false : _variationField$consi,
|
|
127
148
|
_variationField$shipp = variationField.shippingTimeIncluded,
|
|
128
149
|
shippingTimeIncluded = _variationField$shipp === void 0 ? false : _variationField$shipp;
|
|
150
|
+
var now = useNow();
|
|
129
151
|
return /*#__PURE__*/_jsxs("div", {
|
|
130
152
|
className: "merchi-turnaround-time-container",
|
|
131
153
|
children: [/*#__PURE__*/_jsx(VariationLabel, {
|
|
@@ -138,6 +160,7 @@ function VariationTurnaroundTime(_ref2) {
|
|
|
138
160
|
return /*#__PURE__*/_jsx(TurnaroundOption, {
|
|
139
161
|
disabled: disabled,
|
|
140
162
|
name: name,
|
|
163
|
+
now: now,
|
|
141
164
|
onChange: onChange,
|
|
142
165
|
option: option,
|
|
143
166
|
variation: variation,
|
|
@@ -153,4 +176,4 @@ function VariationTurnaroundTime(_ref2) {
|
|
|
153
176
|
});
|
|
154
177
|
}
|
|
155
178
|
export default VariationTurnaroundTime;
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiUmVhY3QiLCJUb29sdGlwRWxlbWVudCIsInNvcnRCeVBvc2l0aW9uIiwidmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIiwiSWNvbkNoZWNrZWRPck5vU3RvY2siLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiZm9ybWF0RGF0ZSIsImRhdGUiLCJkYXlOYW1lcyIsIm1vbnRoTmFtZXMiLCJkYXlOYW1lIiwiZ2V0RGF5IiwiZGF5TnVtYmVyIiwiZ2V0RGF0ZSIsIm1vbnRoIiwiZ2V0TW9udGgiLCJUdXJuYXJvdW5kT3B0aW9uIiwiX3JlZiIsImRpc2FibGVkIiwibmFtZSIsIm9uQ2hhbmdlIiwib3B0aW9uIiwidmFyaWF0aW9uIiwiY29uc2lkZXJCdXNpbmVzc0hvdXJzIiwic2hpcHBpbmdUaW1lSW5jbHVkZWQiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJob29rRm9ybSIsImdldFF1b3RlIiwicmVnaXN0ZXIiLCJ3YXRjaCIsIl92YXJpYXRpb24kc2VsZWN0ZWRPcCIsInNlbGVjdGVkT3B0aW9ucyIsIl9vcHRpb24kYXZhaWxhYmxlIiwiYXZhaWxhYmxlIiwiX29wdGlvbiRpc1Zpc2libGUiLCJpc1Zpc2libGUiLCJ1c2VyRGVhZGxpbmUiLCJvcHRpb25JZCIsInNlbGVjdGVkVmFsdWVzIiwibWFwIiwib3B0aW9uQ29zdCIsImlzU2VsZWN0ZWQiLCJpbmNsdWRlcyIsIndhdGNoZWRWYWx1ZSIsImNvbmNhdCIsImlzQWN0aXZlIiwiZGF5cyIsInBhcnNlSW50IiwiZm9ybWF0dGVkRGF0ZSIsIkRhdGUiLCJpc0Rpc2FibGVkIiwib3V0T2ZTdG9jayIsImRlbGl2ZXJ5TGFiZWwiLCJ0b29sdGlwVGV4dCIsImhhbmRsZU9uQ2hhbmdlIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJ0eXBlIiwiZGVmYXVsdENoZWNrZWQiLCJ0b29sdGlwIiwiaXNDaGVja2VkIiwibm9TdG9jayIsIlZhcmlhdGlvblR1cm5hcm91bmRUaW1lIiwiX3JlZjIiLCJfdmFyaWF0aW9uJHNlbGVjdGFibGUiLCJzZWxlY3RhYmxlT3B0aW9ucyIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsInZhcmlhdGlvbkZpZWxkIiwiX3ZhcmlhdGlvbkZpZWxkJGNvbnNpIiwiX3ZhcmlhdGlvbkZpZWxkJHNoaXBwIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiZm9yY2VIaWRlQ29zdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblR1cm5hcm91bmRUaW1lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVG9vbHRpcEVsZW1lbnQgZnJvbSAnLi9Ub29sdGlwRWxlbWVudCc7XG5pbXBvcnQgeyBzb3J0QnlQb3NpdGlvbiwgdmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgSWNvbkNoZWNrZWRPck5vU3RvY2sgZnJvbSAnLi9pY29ucy9JY29uQ2hlY2tlZE9yTm9TdG9jayc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyB1c2VNZXJjaGlGb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlcic7XG5cblxuLyoqXG4gKiBGb3JtYXRzIGEgZGF0ZSBmb3IgZGlzcGxheVxuICovXG5mdW5jdGlvbiBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiB7IGRheU5hbWU6IHN0cmluZzsgZGF5TnVtYmVyOiBzdHJpbmc7IG1vbnRoOiBzdHJpbmcgfSB7XG4gIGNvbnN0IGRheU5hbWVzID0gWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXTtcbiAgY29uc3QgbW9udGhOYW1lcyA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCBcbiAgICAgICAgICAgICAgICAgICAgICAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXTtcbiAgXG4gIHJldHVybiB7XG4gICAgZGF5TmFtZTogZGF5TmFtZXNbZGF0ZS5nZXREYXkoKV0sXG4gICAgZGF5TnVtYmVyOiBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLFxuICAgIG1vbnRoOiBtb250aE5hbWVzW2RhdGUuZ2V0TW9udGgoKV0sXG4gIH07XG59XG5cbmludGVyZmFjZSBUdXJuYXJvdW5kT3B0aW9uUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgb25DaGFuZ2U/OiAoKSA9PiB2b2lkO1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uOiBhbnk7XG4gIGNvbnNpZGVyQnVzaW5lc3NIb3VyczogYm9vbGVhbjtcbiAgc2hpcHBpbmdUaW1lSW5jbHVkZWQ6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIFR1cm5hcm91bmRPcHRpb24oe1xuICBkaXNhYmxlZCxcbiAgbmFtZSxcbiAgb25DaGFuZ2UsXG4gIG9wdGlvbixcbiAgdmFyaWF0aW9uLFxuICBjb25zaWRlckJ1c2luZXNzSG91cnMsXG4gIHNoaXBwaW5nVGltZUluY2x1ZGVkLFxufTogVHVybmFyb3VuZE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgaG9va0Zvcm0sIGdldFF1b3RlIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuICBjb25zdCB7IHJlZ2lzdGVyLCB3YXRjaCB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IHsgc2VsZWN0ZWRPcHRpb25zID0gW10gfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBhdmFpbGFibGUgPSB0cnVlLCBpc1Zpc2libGUgPSB0cnVlLCB1c2VyRGVhZGxpbmUsIHZhbHVlLCBvcHRpb25JZCB9ID0gb3B0aW9uO1xuXG4gIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRPcHRpb25zLm1hcCgobzogYW55KSA9PiBvLm9wdGlvbklkKTtcbiAgY29uc3Qgb3B0aW9uQ29zdCA9IHZhcmlhdGlvbkZpZWxkT3B0aW9uQ29zdERldGFpbChvcHRpb24pO1xuICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZXMgPyBzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhvcHRpb25JZCkgOiBmYWxzZTtcbiAgXG4gIC8vIFdhdGNoIGZvcm0gdmFsdWUgZm9yIHJlYWwtdGltZSB1cGRhdGVzXG4gIGNvbnN0IHdhdGNoZWRWYWx1ZSA9IHdhdGNoKGAke25hbWV9LnZhbHVlYCk7XG4gIGNvbnN0IGlzQWN0aXZlID0gd2F0Y2hlZFZhbHVlID8gU3RyaW5nKHdhdGNoZWRWYWx1ZSkgPT09IFN0cmluZyhvcHRpb25JZCkgOiBpc1NlbGVjdGVkO1xuICBcbiAgLy8gQ2FsY3VsYXRlIHRoZSB0dXJuYXJvdW5kIGRhdGUgYmFzZWQgb24gZGF5cyB2YWx1ZVxuICBjb25zdCBkYXlzID0gcGFyc2VJbnQodmFsdWUsIDEwKSB8fCAwO1xuICBcbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHVzZXJEZWFkbGluZSA/IGZvcm1hdERhdGUobmV3IERhdGUodXNlckRlYWRsaW5lICogMTAwMCkpIDogbnVsbDtcbiAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFhdmFpbGFibGUgfHwgIWlzVmlzaWJsZTtcbiAgY29uc3Qgb3V0T2ZTdG9jayA9ICFpc1Zpc2libGUgPyAnIC0gZGlzYWJsZWQnIDogIWF2YWlsYWJsZSA/ICcgLSBpbnN1ZmZpY2llbnQgc3RvY2snIDogJyc7XG4gIFxuICBjb25zdCBkZWxpdmVyeUxhYmVsID0gc2hpcHBpbmdUaW1lSW5jbHVkZWQgPyAnRGVsaXZlcnkgYnknIDogJ1Byb2R1Y2VkIGJ5JztcbiAgY29uc3QgdG9vbHRpcFRleHQgPSBmb3JtYXR0ZWREYXRlXG4gICAgPyBgJHtkYXlzfSBkYXkke2RheXMgIT09IDEgPyAncycgOiAnJ30gLSAke2RlbGl2ZXJ5TGFiZWx9ICR7Zm9ybWF0dGVkRGF0ZS5kYXlOYW1lfSwgJHtmb3JtYXR0ZWREYXRlLm1vbnRofSAke2Zvcm1hdHRlZERhdGUuZGF5TnVtYmVyfSR7b3V0T2ZTdG9ja31gXG4gICAgOiBgJHtkYXlzfSBkYXkke2RheXMgIT09IDEgPyAncycgOiAnJ30gLSAke2RlbGl2ZXJ5TGFiZWx9JHtvdXRPZlN0b2NrfWA7XG5cbiAgY29uc3QgaGFuZGxlT25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKG9uQ2hhbmdlKSBvbkNoYW5nZSgpO1xuICAgIGdldFF1b3RlKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2B0dXJuYXJvdW5kLW9wdGlvbiAke2lzQWN0aXZlID8gJ3R1cm5hcm91bmQtb3B0aW9uLXNlbGVjdGVkJyA6ICcnfSAke2lzRGlzYWJsZWQgPyAndHVybmFyb3VuZC1vcHRpb24tZGlzYWJsZWQnIDogJyd9YH1cbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tbGFiZWxcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1pbnB1dFwiXG4gICAgICAgICAgZGVmYXVsdENoZWNrZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgdmFsdWU9e29wdGlvbklkfVxuICAgICAgICAgIHsuLi5yZWdpc3RlcihgJHtuYW1lfS52YWx1ZWAsIHsgb25DaGFuZ2U6IGhhbmRsZU9uQ2hhbmdlIH0pfVxuICAgICAgICAvPlxuICAgICAgICA8VG9vbHRpcEVsZW1lbnQgdG9vbHRpcD17dG9vbHRpcFRleHR9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tYm94XCI+XG4gICAgICAgICAgICA8SWNvbkNoZWNrZWRPck5vU3RvY2tcbiAgICAgICAgICAgICAgaXNDaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgICAgbm9TdG9jaz17IWF2YWlsYWJsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7Zm9ybWF0dGVkRGF0ZSAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tZGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInR1cm5hcm91bmQtb3B0aW9uLW1vbnRoXCI+e2Zvcm1hdHRlZERhdGUubW9udGh9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInR1cm5hcm91bmQtb3B0aW9uLWRheVwiPntmb3JtYXR0ZWREYXRlLmRheU51bWJlcn08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tZGF5bmFtZVwiPntmb3JtYXR0ZWREYXRlLmRheU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInR1cm5hcm91bmQtb3B0aW9uLWRheXNcIj5cbiAgICAgICAgICAgICAge2RheXN9IGRheXtkYXlzICE9PSAxID8gJ3MnIDogJyd9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Ub29sdGlwRWxlbWVudD5cbiAgICAgICAge29wdGlvbkNvc3QgJiYgKFxuICAgICAgICAgIDxzbWFsbCBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1jb3N0XCI+XG4gICAgICAgICAgICB7b3B0aW9uQ29zdH1cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICApfVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZDtcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvblR1cm5hcm91bmRUaW1lKHtcbiAgZGlzYWJsZWQsXG4gIG5hbWUsXG4gIG9uQ2hhbmdlLFxuICB2YXJpYXRpb24sXG59OiBQcm9wcykge1xuICBjb25zdCB7IHNlbGVjdGFibGVPcHRpb25zID0gW10sIHZhcmlhdGlvbkZpZWxkID0ge30gfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBjb25zaWRlckJ1c2luZXNzSG91cnMgPSBmYWxzZSwgc2hpcHBpbmdUaW1lSW5jbHVkZWQgPSBmYWxzZSB9ID0gdmFyaWF0aW9uRmllbGQ7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lcmNoaS10dXJuYXJvdW5kLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPVwibWVyY2hpLXR1cm5hcm91bmQtdGltZVwiXG4gICAgICAgIGZvcmNlSGlkZUNvc3Q9e3RydWV9XG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb25zLWdyaWRcIj5cbiAgICAgICAge3NvcnRCeVBvc2l0aW9uKHNlbGVjdGFibGVPcHRpb25zKS5tYXAoKG9wdGlvbjogYW55KSA9PiAoXG4gICAgICAgICAgPFR1cm5hcm91bmRPcHRpb25cbiAgICAgICAgICAgIGtleT17YCR7b3B0aW9uLm9wdGlvbklkfS0ke25hbWV9LXR1cm5hcm91bmRgfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAgICAgICBjb25zaWRlckJ1c2luZXNzSG91cnM9e2NvbnNpZGVyQnVzaW5lc3NIb3Vyc31cbiAgICAgICAgICAgIHNoaXBwaW5nVGltZUluY2x1ZGVkPXtzaGlwcGluZ1RpbWVJbmNsdWRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgICBcbiAgICAgIDxzdHlsZT57YFxuICAgICAgICAubWVyY2hpLXR1cm5hcm91bmQtdGltZS1jb250YWluZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbnMtZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbiB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1pbnB1dCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tYm94IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDkwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZGVlMmU2O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1ib3g6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogI2FkYjViZDtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLXNlbGVjdGVkIC50dXJuYXJvdW5kLW9wdGlvbi1ib3gge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogIzMwM2RiZjtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmOWZmIDAlLCAjZmZmIDEwMCUpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSg0OCwgNjEsIDE5MSwgMC4yKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWRpc2FibGVkIC50dXJuYXJvdW5kLW9wdGlvbi1ib3gge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGVlMmU2O1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGlzYWJsZWQgLnR1cm5hcm91bmQtb3B0aW9uLWxhYmVsIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tYm94IGksXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1ib3ggc3ZnIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICAgIHJpZ2h0OiAtOHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgICBjb2xvcjogIzMwM2RiZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgICBhbmltYXRpb246IGZhZGVJbk9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGF0ZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLW1vbnRoIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgY29sb3I6ICNkYzM1NDU7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGF5IHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBjb2xvcjogIzIxMjUyOTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWRheW5hbWUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGF5cyB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tc2VsZWN0ZWQgLnR1cm5hcm91bmQtb3B0aW9uLWRheXMge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDgsIDYxLCAxOTEsIDAuMSk7XG4gICAgICAgICAgY29sb3I6ICMzMDNkYmY7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1jb3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5PcGFjaXR5IHtcbiAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgfVxuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZhcmlhdGlvblR1cm5hcm91bmRUaW1lO1xuXG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFYLENBQUEsR0FBQVMsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQVAsQ0FBQSxHQUFBQSxDQUFBLENBQUFZLE1BQUEsV0FBQUwsQ0FBQSxXQUFBRSxNQUFBLENBQUFJLHdCQUFBLENBQUFQLENBQUEsRUFBQUMsQ0FBQSxFQUFBTyxVQUFBLE9BQUFOLENBQUEsQ0FBQU8sSUFBQSxDQUFBQyxLQUFBLENBQUFSLENBQUEsRUFBQVIsQ0FBQSxZQUFBUSxDQUFBO0FBQUEsU0FBQVMsY0FBQVgsQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVcsU0FBQSxDQUFBQyxNQUFBLEVBQUFaLENBQUEsVUFBQUMsQ0FBQSxXQUFBVSxTQUFBLENBQUFYLENBQUEsSUFBQVcsU0FBQSxDQUFBWCxDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQVksT0FBQSxXQUFBYixDQUFBLElBQUFjLGVBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFhLHlCQUFBLEdBQUFiLE1BQUEsQ0FBQWMsZ0JBQUEsQ0FBQWpCLENBQUEsRUFBQUcsTUFBQSxDQUFBYSx5QkFBQSxDQUFBZCxDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFZLE9BQUEsV0FBQWIsQ0FBQSxJQUFBRSxNQUFBLENBQUFlLGNBQUEsQ0FBQWxCLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFJLHdCQUFBLENBQUFMLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUFBLFNBQUFlLGdCQUFBZixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxZQUFBRCxDQUFBLEdBQUFrQixjQUFBLENBQUFsQixDQUFBLE1BQUFELENBQUEsR0FBQUcsTUFBQSxDQUFBZSxjQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsSUFBQW1CLEtBQUEsRUFBQWxCLENBQUEsRUFBQU0sVUFBQSxNQUFBYSxZQUFBLE1BQUFDLFFBQUEsVUFBQXRCLENBQUEsQ0FBQUMsQ0FBQSxJQUFBQyxDQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBbUIsZUFBQWpCLENBQUEsUUFBQXFCLENBQUEsR0FBQUMsWUFBQSxDQUFBdEIsQ0FBQSxnQ0FBQVQsT0FBQSxDQUFBOEIsQ0FBQSxJQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBdEIsQ0FBQSxFQUFBRCxDQUFBLG9CQUFBUixPQUFBLENBQUFTLENBQUEsTUFBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFGLENBQUEsR0FBQUUsQ0FBQSxDQUFBUCxNQUFBLENBQUE4QixXQUFBLGtCQUFBekIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBdkIsQ0FBQSxDQUFBMEIsSUFBQSxDQUFBeEIsQ0FBQSxFQUFBRCxDQUFBLGdDQUFBUixPQUFBLENBQUE4QixDQUFBLFVBQUFBLENBQUEsWUFBQUksU0FBQSx5RUFBQTFCLENBQUEsR0FBQTJCLE1BQUEsR0FBQUMsTUFBQSxFQUFBM0IsQ0FBQTtBQUNiLE9BQU8sS0FBSzRCLEtBQUssTUFBTSxPQUFPO0FBQzlCLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsU0FBU0MsY0FBYyxFQUFFQyw4QkFBOEIsUUFBUSxTQUFTO0FBQ3hFLE9BQU9DLG9CQUFvQixNQUFNLDhCQUE4QjtBQUMvRCxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsU0FBU0Msb0JBQW9CLFFBQVEsc0NBQXNDOztBQUczRTtBQUNBO0FBQ0E7QUFGQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBR0EsU0FBU0MsVUFBVUEsQ0FBQ0MsSUFBVSxFQUF5RDtFQUNyRixJQUFNQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7RUFDbEUsSUFBTUMsVUFBVSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQ3hDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0VBRTdELE9BQU87SUFDTEMsT0FBTyxFQUFFRixRQUFRLENBQUNELElBQUksQ0FBQ0ksTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoQ0MsU0FBUyxFQUFFcEIsTUFBTSxDQUFDZSxJQUFJLENBQUNNLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakNDLEtBQUssRUFBRUwsVUFBVSxDQUFDRixJQUFJLENBQUNRLFFBQVEsQ0FBQyxDQUFDO0VBQ25DLENBQUM7QUFDSDtBQVlBLFNBQVNDLGdCQUFnQkEsQ0FBQUMsSUFBQSxFQVFDO0VBQUEsSUFQeEJDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0lBQ1JDLElBQUksR0FBQUYsSUFBQSxDQUFKRSxJQUFJO0lBQ0pDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO0lBQ1JDLE1BQU0sR0FBQUosSUFBQSxDQUFOSSxNQUFNO0lBQ05DLFNBQVMsR0FBQUwsSUFBQSxDQUFUSyxTQUFTO0lBQ1RDLHFCQUFxQixHQUFBTixJQUFBLENBQXJCTSxxQkFBcUI7SUFDckJDLG9CQUFvQixHQUFBUCxJQUFBLENBQXBCTyxvQkFBb0I7RUFFcEIsSUFBQUMscUJBQUEsR0FBK0J4QixvQkFBb0IsQ0FBQyxDQUFDO0lBQTdDeUIsUUFBUSxHQUFBRCxxQkFBQSxDQUFSQyxRQUFRO0lBQUVDLFFBQVEsR0FBQUYscUJBQUEsQ0FBUkUsUUFBUTtFQUMxQixJQUFRQyxRQUFRLEdBQVlGLFFBQVEsQ0FBNUJFLFFBQVE7SUFBRUMsS0FBSyxHQUFLSCxRQUFRLENBQWxCRyxLQUFLO0VBQ3ZCLElBQUFDLHFCQUFBLEdBQWlDUixTQUFTLENBQWxDUyxlQUFlO0lBQWZBLGVBQWUsR0FBQUQscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO0VBQzVCLElBQUFFLGlCQUFBLEdBQThFWCxNQUFNLENBQTVFWSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsaUJBQUEsY0FBRyxJQUFJLEdBQUFBLGlCQUFBO0lBQUFFLGlCQUFBLEdBQXNEYixNQUFNLENBQTFEYyxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsaUJBQUEsY0FBRyxJQUFJLEdBQUFBLGlCQUFBO0lBQUVFLFlBQVksR0FBc0JmLE1BQU0sQ0FBeENlLFlBQVk7SUFBRXBELEtBQUssR0FBZXFDLE1BQU0sQ0FBMUJyQyxLQUFLO0lBQUVxRCxRQUFRLEdBQUtoQixNQUFNLENBQW5CZ0IsUUFBUTtFQUV6RSxJQUFNQyxjQUFjLEdBQUdQLGVBQWUsQ0FBQ1EsR0FBRyxDQUFDLFVBQUNqRixDQUFNO0lBQUEsT0FBS0EsQ0FBQyxDQUFDK0UsUUFBUTtFQUFBLEVBQUM7RUFDbEUsSUFBTUcsVUFBVSxHQUFHM0MsOEJBQThCLENBQUN3QixNQUFNLENBQUM7RUFDekQsSUFBTW9CLFVBQVUsR0FBR0gsY0FBYyxHQUFHQSxjQUFjLENBQUNJLFFBQVEsQ0FBQ0wsUUFBUSxDQUFDLEdBQUcsS0FBSzs7RUFFN0U7RUFDQSxJQUFNTSxZQUFZLEdBQUdkLEtBQUssSUFBQWUsTUFBQSxDQUFJekIsSUFBSSxXQUFRLENBQUM7RUFDM0MsSUFBTTBCLFFBQVEsR0FBR0YsWUFBWSxHQUFHbkQsTUFBTSxDQUFDbUQsWUFBWSxDQUFDLEtBQUtuRCxNQUFNLENBQUM2QyxRQUFRLENBQUMsR0FBR0ksVUFBVTs7RUFFdEY7RUFDQSxJQUFNSyxJQUFJLEdBQUdDLFFBQVEsQ0FBQy9ELEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0VBRXJDLElBQU1nRSxhQUFhLEdBQUdaLFlBQVksR0FBRzlCLFVBQVUsQ0FBQyxJQUFJMkMsSUFBSSxDQUFDYixZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJO0VBQ3JGLElBQU1jLFVBQVUsR0FBR2hDLFFBQVEsSUFBSSxDQUFDZSxTQUFTLElBQUksQ0FBQ0UsU0FBUztFQUN2RCxJQUFNZ0IsVUFBVSxHQUFHLENBQUNoQixTQUFTLEdBQUcsYUFBYSxHQUFHLENBQUNGLFNBQVMsR0FBRyx1QkFBdUIsR0FBRyxFQUFFO0VBRXpGLElBQU1tQixhQUFhLEdBQUc1QixvQkFBb0IsR0FBRyxhQUFhLEdBQUcsYUFBYTtFQUMxRSxJQUFNNkIsV0FBVyxHQUFHTCxhQUFhLE1BQUFKLE1BQUEsQ0FDMUJFLElBQUksVUFBQUYsTUFBQSxDQUFPRSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLFNBQUFGLE1BQUEsQ0FBTVEsYUFBYSxPQUFBUixNQUFBLENBQUlJLGFBQWEsQ0FBQ3RDLE9BQU8sUUFBQWtDLE1BQUEsQ0FBS0ksYUFBYSxDQUFDbEMsS0FBSyxPQUFBOEIsTUFBQSxDQUFJSSxhQUFhLENBQUNwQyxTQUFTLEVBQUFnQyxNQUFBLENBQUdPLFVBQVUsT0FBQVAsTUFBQSxDQUM1SUUsSUFBSSxVQUFBRixNQUFBLENBQU9FLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsU0FBQUYsTUFBQSxDQUFNUSxhQUFhLEVBQUFSLE1BQUEsQ0FBR08sVUFBVSxDQUFFO0VBRXpFLElBQU1HLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0lBQzNCLElBQUlsQyxRQUFRLEVBQUVBLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCTyxRQUFRLENBQUMsQ0FBQztFQUNaLENBQUM7RUFFRCxvQkFDRXhCLElBQUE7SUFDRW9ELFNBQVMsdUJBQUFYLE1BQUEsQ0FBdUJDLFFBQVEsR0FBRyw0QkFBNEIsR0FBRyxFQUFFLE9BQUFELE1BQUEsQ0FBSU0sVUFBVSxHQUFHLDRCQUE0QixHQUFHLEVBQUUsQ0FBRztJQUFBTSxRQUFBLGVBRWpJbkQsS0FBQTtNQUFPa0QsU0FBUyxFQUFDLHlCQUF5QjtNQUFBQyxRQUFBLGdCQUN4Q3JELElBQUEsVUFBQTVCLGFBQUE7UUFDRWtGLElBQUksRUFBQyxPQUFPO1FBQ1pGLFNBQVMsRUFBQyx5QkFBeUI7UUFDbkNHLGNBQWMsRUFBRWpCLFVBQVc7UUFDM0J2QixRQUFRLEVBQUVnQyxVQUFXO1FBQ3JCbEUsS0FBSyxFQUFFcUQ7TUFBUyxHQUNaVCxRQUFRLElBQUFnQixNQUFBLENBQUl6QixJQUFJLGFBQVU7UUFBRUMsUUFBUSxFQUFFa0M7TUFBZSxDQUFDLENBQUMsQ0FDNUQsQ0FBQyxlQUNGbkQsSUFBQSxDQUFDUixjQUFjO1FBQUNnRSxPQUFPLEVBQUVOLFdBQVk7UUFBQUcsUUFBQSxlQUNuQ25ELEtBQUE7VUFBS2tELFNBQVMsRUFBQyx1QkFBdUI7VUFBQUMsUUFBQSxnQkFDcENyRCxJQUFBLENBQUNMLG9CQUFvQjtZQUNuQjhELFNBQVMsRUFBRWYsUUFBUztZQUNwQmdCLE9BQU8sRUFBRSxDQUFDNUI7VUFBVSxDQUNyQixDQUFDLEVBQ0RlLGFBQWEsaUJBQ1ozQyxLQUFBO1lBQUtrRCxTQUFTLEVBQUMsd0JBQXdCO1lBQUFDLFFBQUEsZ0JBQ3JDckQsSUFBQTtjQUFNb0QsU0FBUyxFQUFDLHlCQUF5QjtjQUFBQyxRQUFBLEVBQUVSLGFBQWEsQ0FBQ2xDO1lBQUssQ0FBTyxDQUFDLGVBQ3RFWCxJQUFBO2NBQU1vRCxTQUFTLEVBQUMsdUJBQXVCO2NBQUFDLFFBQUEsRUFBRVIsYUFBYSxDQUFDcEM7WUFBUyxDQUFPLENBQUMsZUFDeEVULElBQUE7Y0FBTW9ELFNBQVMsRUFBQywyQkFBMkI7Y0FBQUMsUUFBQSxFQUFFUixhQUFhLENBQUN0QztZQUFPLENBQU8sQ0FBQztVQUFBLENBQ3ZFLENBQ04sZUFDREwsS0FBQTtZQUFLa0QsU0FBUyxFQUFDLHdCQUF3QjtZQUFBQyxRQUFBLEdBQ3BDVixJQUFJLEVBQUMsTUFBSSxFQUFDQSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1VBQUEsQ0FDN0IsQ0FBQztRQUFBLENBQ0g7TUFBQyxDQUNRLENBQUMsRUFDaEJOLFVBQVUsaUJBQ1RyQyxJQUFBO1FBQU9vRCxTQUFTLEVBQUMsd0JBQXdCO1FBQUFDLFFBQUEsRUFDdENoQjtNQUFVLENBQ04sQ0FDUjtJQUFBLENBQ0k7RUFBQyxDQUNMLENBQUM7QUFFVjtBQVNBLFNBQVNzQix1QkFBdUJBLENBQUFDLEtBQUEsRUFLdEI7RUFBQSxJQUpSN0MsUUFBUSxHQUFBNkMsS0FBQSxDQUFSN0MsUUFBUTtJQUNSQyxJQUFJLEdBQUE0QyxLQUFBLENBQUo1QyxJQUFJO0lBQ0pDLFFBQVEsR0FBQTJDLEtBQUEsQ0FBUjNDLFFBQVE7SUFDUkUsU0FBUyxHQUFBeUMsS0FBQSxDQUFUekMsU0FBUztFQUVULElBQUEwQyxxQkFBQSxHQUF3RDFDLFNBQVMsQ0FBekQyQyxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLEVBQUUsR0FBQUEscUJBQUE7SUFBQUUscUJBQUEsR0FBMEI1QyxTQUFTLENBQWpDNkMsY0FBYztJQUFkQSxjQUFjLEdBQUFELHFCQUFBLGNBQUcsQ0FBQyxDQUFDLEdBQUFBLHFCQUFBO0VBQ25ELElBQUFFLHFCQUFBLEdBQXdFRCxjQUFjLENBQTlFNUMscUJBQXFCO0lBQXJCQSxxQkFBcUIsR0FBQTZDLHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtJQUFBQyxxQkFBQSxHQUFtQ0YsY0FBYyxDQUEvQzNDLG9CQUFvQjtJQUFwQkEsb0JBQW9CLEdBQUE2QyxxQkFBQSxjQUFHLEtBQUssR0FBQUEscUJBQUE7RUFFbkUsb0JBQ0VoRSxLQUFBO0lBQUtrRCxTQUFTLEVBQUMsa0NBQWtDO0lBQUFDLFFBQUEsZ0JBQy9DckQsSUFBQSxDQUFDSCxjQUFjO01BQ2JzRSxrQkFBa0IsRUFBQyx3QkFBd0I7TUFDM0NDLGFBQWEsRUFBRSxJQUFLO01BQ3BCakQsU0FBUyxFQUFFQTtJQUFVLENBQ3RCLENBQUMsZUFDRm5CLElBQUE7TUFBS29ELFNBQVMsRUFBQyx5QkFBeUI7TUFBQUMsUUFBQSxFQUNyQzVELGNBQWMsQ0FBQ3FFLGlCQUFpQixDQUFDLENBQUMxQixHQUFHLENBQUMsVUFBQ2xCLE1BQVc7UUFBQSxvQkFDakRsQixJQUFBLENBQUNhLGdCQUFnQjtVQUVmRSxRQUFRLEVBQUVBLFFBQVM7VUFDbkJDLElBQUksRUFBRUEsSUFBSztVQUNYQyxRQUFRLEVBQUVBLFFBQVM7VUFDbkJDLE1BQU0sRUFBRUEsTUFBTztVQUNmQyxTQUFTLEVBQUVBLFNBQVU7VUFDckJDLHFCQUFxQixFQUFFQSxxQkFBc0I7VUFDN0NDLG9CQUFvQixFQUFFQTtRQUFxQixNQUFBb0IsTUFBQSxDQVBuQ3ZCLE1BQU0sQ0FBQ2dCLFFBQVEsT0FBQU8sTUFBQSxDQUFJekIsSUFBSSxnQkFRaEMsQ0FBQztNQUFBLENBQ0g7SUFBQyxDQUNDLENBQUMsZUFDTmhCLElBQUEsQ0FBQ0osY0FBYztNQUFDb0IsSUFBSSxFQUFFQTtJQUFLLENBQUUsQ0FBQyxlQUU5QmhCLElBQUE7TUFBQXFELFFBQUE7SUFBQSxDQXlJUyxDQUFDO0VBQUEsQ0FDUCxDQUFDO0FBRVY7QUFFQSxlQUFlTSx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiYSIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwiaXNBcnJheSIsIlJlYWN0IiwiVG9vbHRpcEVsZW1lbnQiLCJzb3J0QnlQb3NpdGlvbiIsInZhcmlhdGlvbkZpZWxkT3B0aW9uQ29zdERldGFpbCIsIkljb25DaGVja2VkT3JOb1N0b2NrIiwiVmFyaWF0aW9uRXJyb3IiLCJWYXJpYXRpb25MYWJlbCIsInVzZU1lcmNoaUZvcm1Db250ZXh0IiwibW9tZW50IiwiREVGQVVMVF9UVVJOQVJPVU5EX1RJTUVaT05FIiwiY2FsY3VsYXRlRGVhZGxpbmUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiZm9ybWF0RGF0ZSIsImRhdGUiLCJkZWFkbGluZSIsInR6IiwiZGF5TmFtZSIsImZvcm1hdCIsImRheU51bWJlciIsIm1vbnRoIiwidXNlTm93IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJEYXRlIiwiX1JlYWN0JHVzZVN0YXRlMiIsIm5vdyIsInNldE5vdyIsInVzZUVmZmVjdCIsIlR1cm5hcm91bmRPcHRpb24iLCJfcmVmIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsIm9wdGlvbiIsInZhcmlhdGlvbiIsImNvbnNpZGVyQnVzaW5lc3NIb3VycyIsInNoaXBwaW5nVGltZUluY2x1ZGVkIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0IiwiaG9va0Zvcm0iLCJnZXRRdW90ZSIsInJlZ2lzdGVyIiwid2F0Y2giLCJfdmFyaWF0aW9uJHNlbGVjdGVkT3AiLCJzZWxlY3RlZE9wdGlvbnMiLCJfb3B0aW9uJGF2YWlsYWJsZSIsImF2YWlsYWJsZSIsIl9vcHRpb24kaXNWaXNpYmxlIiwiaXNWaXNpYmxlIiwib3B0aW9uSWQiLCJzZWxlY3RlZFZhbHVlcyIsIm1hcCIsIm9wdGlvbkNvc3QiLCJpc1NlbGVjdGVkIiwiaW5jbHVkZXMiLCJ3YXRjaGVkVmFsdWUiLCJjb25jYXQiLCJpc0FjdGl2ZSIsInBhcnNlZERheXMiLCJwYXJzZUludCIsImRheXMiLCJpc05hTiIsImRlYWRsaW5lRGF0ZSIsImZvcm1hdHRlZERhdGUiLCJpc0Rpc2FibGVkIiwib3V0T2ZTdG9jayIsImRlbGl2ZXJ5TGFiZWwiLCJ0b29sdGlwVGV4dCIsImhhbmRsZU9uQ2hhbmdlIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJ0eXBlIiwiZGVmYXVsdENoZWNrZWQiLCJ0b29sdGlwIiwiaXNDaGVja2VkIiwibm9TdG9jayIsIlZhcmlhdGlvblR1cm5hcm91bmRUaW1lIiwiX3JlZjIiLCJfdmFyaWF0aW9uJHNlbGVjdGFibGUiLCJzZWxlY3RhYmxlT3B0aW9ucyIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsInZhcmlhdGlvbkZpZWxkIiwiX3ZhcmlhdGlvbkZpZWxkJGNvbnNpIiwiX3ZhcmlhdGlvbkZpZWxkJHNoaXBwIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiZm9yY2VIaWRlQ29zdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblR1cm5hcm91bmRUaW1lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVG9vbHRpcEVsZW1lbnQgZnJvbSAnLi9Ub29sdGlwRWxlbWVudCc7XG5pbXBvcnQgeyBzb3J0QnlQb3NpdGlvbiwgdmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgSWNvbkNoZWNrZWRPck5vU3RvY2sgZnJvbSAnLi9pY29ucy9JY29uQ2hlY2tlZE9yTm9TdG9jayc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyB1c2VNZXJjaGlGb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlcic7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7XG4gIERFRkFVTFRfVFVSTkFST1VORF9USU1FWk9ORSxcbiAgY2FsY3VsYXRlRGVhZGxpbmUsXG59IGZyb20gJy4uL3V0aWxzL2NhbGN1bGF0ZURlYWRsaW5lJztcblxuLyoqXG4gKiBGb3JtYXRzIGEgZGF0ZSBmb3IgZGlzcGxheVxuICovXG5mdW5jdGlvbiBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiB7IGRheU5hbWU6IHN0cmluZzsgZGF5TnVtYmVyOiBzdHJpbmc7IG1vbnRoOiBzdHJpbmcgfSB7XG4gIGNvbnN0IGRlYWRsaW5lID0gbW9tZW50LnR6KGRhdGUsIERFRkFVTFRfVFVSTkFST1VORF9USU1FWk9ORSk7XG4gIHJldHVybiB7XG4gICAgZGF5TmFtZTogZGVhZGxpbmUuZm9ybWF0KCdkZGQnKSxcbiAgICBkYXlOdW1iZXI6IGRlYWRsaW5lLmZvcm1hdCgnRCcpLFxuICAgIG1vbnRoOiBkZWFkbGluZS5mb3JtYXQoJ01NTScpLFxuICB9O1xufVxuXG5mdW5jdGlvbiB1c2VOb3coKTogRGF0ZSB7XG4gIGNvbnN0IFtub3csIHNldE5vd10gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiBuZXcgRGF0ZSgpKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXROb3cobmV3IERhdGUoKSk7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIG5vdztcbn1cblxuaW50ZXJmYWNlIFR1cm5hcm91bmRPcHRpb25Qcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBub3c6IERhdGU7XG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZDtcbiAgb3B0aW9uOiBhbnk7XG4gIHZhcmlhdGlvbjogYW55O1xuICBjb25zaWRlckJ1c2luZXNzSG91cnM6IGJvb2xlYW47XG4gIHNoaXBwaW5nVGltZUluY2x1ZGVkOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBUdXJuYXJvdW5kT3B0aW9uKHtcbiAgZGlzYWJsZWQsXG4gIG5hbWUsXG4gIG5vdyxcbiAgb25DaGFuZ2UsXG4gIG9wdGlvbixcbiAgdmFyaWF0aW9uLFxuICBjb25zaWRlckJ1c2luZXNzSG91cnMsXG4gIHNoaXBwaW5nVGltZUluY2x1ZGVkLFxufTogVHVybmFyb3VuZE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgaG9va0Zvcm0sIGdldFF1b3RlIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuICBjb25zdCB7IHJlZ2lzdGVyLCB3YXRjaCB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IHsgc2VsZWN0ZWRPcHRpb25zID0gW10gfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBhdmFpbGFibGUgPSB0cnVlLCBpc1Zpc2libGUgPSB0cnVlLCB2YWx1ZSwgb3B0aW9uSWQgfSA9IG9wdGlvbjtcblxuICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHNlbGVjdGVkT3B0aW9ucy5tYXAoKG86IGFueSkgPT4gby5vcHRpb25JZCk7XG4gIGNvbnN0IG9wdGlvbkNvc3QgPSB2YXJpYXRpb25GaWVsZE9wdGlvbkNvc3REZXRhaWwob3B0aW9uKTtcbiAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWVzID8gc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXMob3B0aW9uSWQpIDogZmFsc2U7XG4gIFxuICAvLyBXYXRjaCBmb3JtIHZhbHVlIGZvciByZWFsLXRpbWUgdXBkYXRlc1xuICBjb25zdCB3YXRjaGVkVmFsdWUgPSB3YXRjaChgJHtuYW1lfS52YWx1ZWApO1xuICBjb25zdCBpc0FjdGl2ZSA9IHdhdGNoZWRWYWx1ZSA/IFN0cmluZyh3YXRjaGVkVmFsdWUpID09PSBTdHJpbmcob3B0aW9uSWQpIDogaXNTZWxlY3RlZDtcbiAgXG4gIC8vIENhbGN1bGF0ZSB0aGUgdHVybmFyb3VuZCBkYXRlIGJhc2VkIG9uIGRheXMgdmFsdWVcbiAgY29uc3QgcGFyc2VkRGF5cyA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIGNvbnN0IGRheXMgPSBOdW1iZXIuaXNOYU4ocGFyc2VkRGF5cykgPyAwIDogcGFyc2VkRGF5cztcbiAgY29uc3QgZGVhZGxpbmVEYXRlID0gTnVtYmVyLmlzTmFOKHBhcnNlZERheXMpXG4gICAgPyBudWxsXG4gICAgOiBjYWxjdWxhdGVEZWFkbGluZShkYXlzLCBjb25zaWRlckJ1c2luZXNzSG91cnMsIG5vdyk7XG4gIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBkZWFkbGluZURhdGUgPyBmb3JtYXREYXRlKGRlYWRsaW5lRGF0ZSkgOiBudWxsO1xuICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZWQgfHwgIWF2YWlsYWJsZSB8fCAhaXNWaXNpYmxlO1xuICBjb25zdCBvdXRPZlN0b2NrID0gIWlzVmlzaWJsZSA/ICcgLSBkaXNhYmxlZCcgOiAhYXZhaWxhYmxlID8gJyAtIGluc3VmZmljaWVudCBzdG9jaycgOiAnJztcbiAgXG4gIGNvbnN0IGRlbGl2ZXJ5TGFiZWwgPSBzaGlwcGluZ1RpbWVJbmNsdWRlZCA/ICdEZWxpdmVyeSBieScgOiAnUHJvZHVjZWQgYnknO1xuICBjb25zdCB0b29sdGlwVGV4dCA9IGZvcm1hdHRlZERhdGVcbiAgICA/IGAke2RheXN9IGRheSR7ZGF5cyAhPT0gMSA/ICdzJyA6ICcnfSAtICR7ZGVsaXZlcnlMYWJlbH0gJHtmb3JtYXR0ZWREYXRlLmRheU5hbWV9LCAke2Zvcm1hdHRlZERhdGUubW9udGh9ICR7Zm9ybWF0dGVkRGF0ZS5kYXlOdW1iZXJ9JHtvdXRPZlN0b2NrfWBcbiAgICA6IGAke2RheXN9IGRheSR7ZGF5cyAhPT0gMSA/ICdzJyA6ICcnfSAtICR7ZGVsaXZlcnlMYWJlbH0ke291dE9mU3RvY2t9YDtcblxuICBjb25zdCBoYW5kbGVPbkNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAob25DaGFuZ2UpIG9uQ2hhbmdlKCk7XG4gICAgZ2V0UXVvdGUoKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YHR1cm5hcm91bmQtb3B0aW9uICR7aXNBY3RpdmUgPyAndHVybmFyb3VuZC1vcHRpb24tc2VsZWN0ZWQnIDogJyd9ICR7aXNEaXNhYmxlZCA/ICd0dXJuYXJvdW5kLW9wdGlvbi1kaXNhYmxlZCcgOiAnJ31gfVxuICAgID5cbiAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1sYWJlbFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInR1cm5hcm91bmQtb3B0aW9uLWlucHV0XCJcbiAgICAgICAgICBkZWZhdWx0Q2hlY2tlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgICAgICB2YWx1ZT17b3B0aW9uSWR9XG4gICAgICAgICAgey4uLnJlZ2lzdGVyKGAke25hbWV9LnZhbHVlYCwgeyBvbkNoYW5nZTogaGFuZGxlT25DaGFuZ2UgfSl9XG4gICAgICAgIC8+XG4gICAgICAgIDxUb29sdGlwRWxlbWVudCB0b29sdGlwPXt0b29sdGlwVGV4dH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1ib3hcIj5cbiAgICAgICAgICAgIDxJY29uQ2hlY2tlZE9yTm9TdG9ja1xuICAgICAgICAgICAgICBpc0NoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICAgICAgICBub1N0b2NrPXshYXZhaWxhYmxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtmb3JtYXR0ZWREYXRlICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1kYXRlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tbW9udGhcIj57Zm9ybWF0dGVkRGF0ZS5tb250aH08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tZGF5XCI+e2Zvcm1hdHRlZERhdGUuZGF5TnVtYmVyfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0dXJuYXJvdW5kLW9wdGlvbi1kYXluYW1lXCI+e2Zvcm1hdHRlZERhdGUuZGF5TmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb24tZGF5c1wiPlxuICAgICAgICAgICAgICB7ZGF5c30gZGF5e2RheXMgIT09IDEgPyAncycgOiAnJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2x0aXBFbGVtZW50PlxuICAgICAgICB7b3B0aW9uQ29zdCAmJiAoXG4gICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT1cInR1cm5hcm91bmQtb3B0aW9uLWNvc3RcIj5cbiAgICAgICAgICAgIHtvcHRpb25Db3N0fVxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICl9XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgb25DaGFuZ2U/OiAoKSA9PiB2b2lkO1xuICB2YXJpYXRpb246IGFueTtcbn1cblxuZnVuY3Rpb24gVmFyaWF0aW9uVHVybmFyb3VuZFRpbWUoe1xuICBkaXNhYmxlZCxcbiAgbmFtZSxcbiAgb25DaGFuZ2UsXG4gIHZhcmlhdGlvbixcbn06IFByb3BzKSB7XG4gIGNvbnN0IHsgc2VsZWN0YWJsZU9wdGlvbnMgPSBbXSwgdmFyaWF0aW9uRmllbGQgPSB7fSB9ID0gdmFyaWF0aW9uO1xuICBjb25zdCB7IGNvbnNpZGVyQnVzaW5lc3NIb3VycyA9IGZhbHNlLCBzaGlwcGluZ1RpbWVJbmNsdWRlZCA9IGZhbHNlIH0gPSB2YXJpYXRpb25GaWVsZDtcbiAgY29uc3Qgbm93ID0gdXNlTm93KCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lcmNoaS10dXJuYXJvdW5kLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPVwibWVyY2hpLXR1cm5hcm91bmQtdGltZVwiXG4gICAgICAgIGZvcmNlSGlkZUNvc3Q9e3RydWV9XG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidHVybmFyb3VuZC1vcHRpb25zLWdyaWRcIj5cbiAgICAgICAge3NvcnRCeVBvc2l0aW9uKHNlbGVjdGFibGVPcHRpb25zKS5tYXAoKG9wdGlvbjogYW55KSA9PiAoXG4gICAgICAgICAgPFR1cm5hcm91bmRPcHRpb25cbiAgICAgICAgICAgIGtleT17YCR7b3B0aW9uLm9wdGlvbklkfS0ke25hbWV9LXR1cm5hcm91bmRgfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIG5vdz17bm93fVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgICAgICAgIGNvbnNpZGVyQnVzaW5lc3NIb3Vycz17Y29uc2lkZXJCdXNpbmVzc0hvdXJzfVxuICAgICAgICAgICAgc2hpcHBpbmdUaW1lSW5jbHVkZWQ9e3NoaXBwaW5nVGltZUluY2x1ZGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICA8VmFyaWF0aW9uRXJyb3IgbmFtZT17bmFtZX0gLz5cbiAgICAgIFxuICAgICAgPHN0eWxlPntgXG4gICAgICAgIC5tZXJjaGktdHVybmFyb3VuZC10aW1lLWNvbnRhaW5lciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9ucy1ncmlkIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1sYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWlucHV0IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1ib3gge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogOTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkZWUyZTY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWJveDpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYWRiNWJkO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tc2VsZWN0ZWQgLnR1cm5hcm91bmQtb3B0aW9uLWJveCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMzAzZGJmO1xuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGY5ZmYgMCUsICNmZmYgMTAwJSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDQ4LCA2MSwgMTkxLCAwLjIpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGlzYWJsZWQgLnR1cm5hcm91bmQtb3B0aW9uLWJveCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICNkZWUyZTY7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1kaXNhYmxlZCAudHVybmFyb3VuZC1vcHRpb24tbGFiZWwge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1ib3ggaSxcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWJveCBzdmcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgICAgcmlnaHQ6IC04cHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICAgIGNvbG9yOiAjMzAzZGJmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluT3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1kYXRlIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tbW9udGgge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBjb2xvcjogI2RjMzU0NTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1kYXkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGNvbG9yOiAjMjEyNTI5O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudHVybmFyb3VuZC1vcHRpb24tZGF5bmFtZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1kYXlzIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50dXJuYXJvdW5kLW9wdGlvbi1zZWxlY3RlZCAudHVybmFyb3VuZC1vcHRpb24tZGF5cyB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0OCwgNjEsIDE5MSwgMC4xKTtcbiAgICAgICAgICBjb2xvcjogIzMwM2RiZjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnR1cm5hcm91bmQtb3B0aW9uLWNvc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbk9wYWNpdHkge1xuICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB9XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFyaWF0aW9uVHVybmFyb3VuZFRpbWU7XG5cbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQyxTQUFBQSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEs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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as moment from 'moment-timezone';
|
|
2
|
+
export var DEFAULT_TURNAROUND_TIMEZONE = 'Australia/Melbourne';
|
|
3
|
+
export function calculateDeadline(deliveryDays) {
|
|
4
|
+
var considerBusinessHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
5
|
+
var now = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date();
|
|
6
|
+
var timezone = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_TURNAROUND_TIMEZONE;
|
|
7
|
+
if (!Number.isFinite(deliveryDays) || deliveryDays < 0) return null;
|
|
8
|
+
var start = moment.tz(now, timezone);
|
|
9
|
+
if (!considerBusinessHours) {
|
|
10
|
+
return start.add(deliveryDays, 'days').endOf('day').toDate();
|
|
11
|
+
}
|
|
12
|
+
var isWeekend = start.day() === 0 || start.day() === 6;
|
|
13
|
+
var isAfterHours = start.hour() >= 17;
|
|
14
|
+
var days = isWeekend || isAfterHours ? deliveryDays + 1 : deliveryDays;
|
|
15
|
+
var current = start;
|
|
16
|
+
while (days > 0) {
|
|
17
|
+
current.add(1, 'day');
|
|
18
|
+
if (current.day() !== 0 && current.day() !== 6) days -= 1;
|
|
19
|
+
}
|
|
20
|
+
return current.endOf('day').toDate();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb21lbnQiLCJERUZBVUxUX1RVUk5BUk9VTkRfVElNRVpPTkUiLCJjYWxjdWxhdGVEZWFkbGluZSIsImRlbGl2ZXJ5RGF5cyIsImNvbnNpZGVyQnVzaW5lc3NIb3VycyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm5vdyIsIkRhdGUiLCJ0aW1lem9uZSIsIk51bWJlciIsImlzRmluaXRlIiwic3RhcnQiLCJ0eiIsImFkZCIsImVuZE9mIiwidG9EYXRlIiwiaXNXZWVrZW5kIiwiZGF5IiwiaXNBZnRlckhvdXJzIiwiaG91ciIsImRheXMiLCJjdXJyZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NhbGN1bGF0ZURlYWRsaW5lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVVJOQVJPVU5EX1RJTUVaT05FID0gJ0F1c3RyYWxpYS9NZWxib3VybmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRGVhZGxpbmUoXG4gIGRlbGl2ZXJ5RGF5czogbnVtYmVyLFxuICBjb25zaWRlckJ1c2luZXNzSG91cnMgPSB0cnVlLFxuICBub3c6IERhdGUgPSBuZXcgRGF0ZSgpLFxuICB0aW1lem9uZSA9IERFRkFVTFRfVFVSTkFST1VORF9USU1FWk9ORSxcbik6IERhdGUgfCBudWxsIHtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoZGVsaXZlcnlEYXlzKSB8fCBkZWxpdmVyeURheXMgPCAwKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzdGFydCA9IG1vbWVudC50eihub3csIHRpbWV6b25lKTtcblxuICBpZiAoIWNvbnNpZGVyQnVzaW5lc3NIb3Vycykge1xuICAgIHJldHVybiBzdGFydC5hZGQoZGVsaXZlcnlEYXlzLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcbiAgfVxuXG4gIGNvbnN0IGlzV2Vla2VuZCA9IHN0YXJ0LmRheSgpID09PSAwIHx8IHN0YXJ0LmRheSgpID09PSA2O1xuICBjb25zdCBpc0FmdGVySG91cnMgPSBzdGFydC5ob3VyKCkgPj0gMTc7XG4gIGxldCBkYXlzID0gaXNXZWVrZW5kIHx8IGlzQWZ0ZXJIb3VycyA/IGRlbGl2ZXJ5RGF5cyArIDEgOiBkZWxpdmVyeURheXM7XG5cbiAgY29uc3QgY3VycmVudCA9IHN0YXJ0O1xuICB3aGlsZSAoZGF5cyA+IDApIHtcbiAgICBjdXJyZW50LmFkZCgxLCAnZGF5Jyk7XG4gICAgaWYgKGN1cnJlbnQuZGF5KCkgIT09IDAgJiYgY3VycmVudC5kYXkoKSAhPT0gNikgZGF5cyAtPSAxO1xuICB9XG4gIHJldHVybiBjdXJyZW50LmVuZE9mKCdkYXknKS50b0RhdGUoKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLQSxNQUFNLE1BQU0saUJBQWlCO0FBRXpDLE9BQU8sSUFBTUMsMkJBQTJCLEdBQUcscUJBQXFCO0FBRWhFLE9BQU8sU0FBU0MsaUJBQWlCQSxDQUMvQkMsWUFBb0IsRUFJUDtFQUFBLElBSGJDLHFCQUFxQixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxJQUFJO0VBQUEsSUFDNUJHLEdBQVMsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsSUFBSUksSUFBSSxDQUFDLENBQUM7RUFBQSxJQUN0QkMsUUFBUSxHQUFBTCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0osMkJBQTJCO0VBRXRDLElBQUksQ0FBQ1UsTUFBTSxDQUFDQyxRQUFRLENBQUNULFlBQVksQ0FBQyxJQUFJQSxZQUFZLEdBQUcsQ0FBQyxFQUFFLE9BQU8sSUFBSTtFQUVuRSxJQUFNVSxLQUFLLEdBQUdiLE1BQU0sQ0FBQ2MsRUFBRSxDQUFDTixHQUFHLEVBQUVFLFFBQVEsQ0FBQztFQUV0QyxJQUFJLENBQUNOLHFCQUFxQixFQUFFO0lBQzFCLE9BQU9TLEtBQUssQ0FBQ0UsR0FBRyxDQUFDWixZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUNhLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7RUFDOUQ7RUFFQSxJQUFNQyxTQUFTLEdBQUdMLEtBQUssQ0FBQ00sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUlOLEtBQUssQ0FBQ00sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0VBQ3hELElBQU1DLFlBQVksR0FBR1AsS0FBSyxDQUFDUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUU7RUFDdkMsSUFBSUMsSUFBSSxHQUFHSixTQUFTLElBQUlFLFlBQVksR0FBR2pCLFlBQVksR0FBRyxDQUFDLEdBQUdBLFlBQVk7RUFFdEUsSUFBTW9CLE9BQU8sR0FBR1YsS0FBSztFQUNyQixPQUFPUyxJQUFJLEdBQUcsQ0FBQyxFQUFFO0lBQ2ZDLE9BQU8sQ0FBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDckIsSUFBSVEsT0FBTyxDQUFDSixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSUksT0FBTyxDQUFDSixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRUcsSUFBSSxJQUFJLENBQUM7RUFDM0Q7RUFDQSxPQUFPQyxPQUFPLENBQUNQLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7QUFDdEMiLCJpZ25vcmVMaXN0IjpbXX0=
|