mantine-datepicker-jalali
Version:
jalali datepicker of mantine library
201 lines (194 loc) • 26.7 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var dayjs = require('dayjs');
var React = require('react');
var core = require('@mantine/core');
var hooks = require('@mantine/hooks');
var assignTime = require('../../utils/assign-time/assign-time.js');
var TimeInput = require('../TimeInput/TimeInput.js');
require('../Calendar/Calendar.js');
var pickCalendarLevelsProps = require('../Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js');
var DatePicker = require('../DatePicker/DatePicker.js');
var PickerInputBase = require('../PickerInputBase/PickerInputBase.js');
require('../DatesProvider/DatesProvider.js');
var useDatesContext = require('../DatesProvider/use-dates-context.js');
var DateTimePicker_styles = require('./DateTimePicker.styles.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
var target = {};
for (var prop in source)
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
target[prop] = source[prop];
if (source != null && __getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(source)) {
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
target[prop] = source[prop];
}
return target;
};
const defaultProps = {};
const DateTimePicker = React.forwardRef((props, ref) => {
const _a = core.useComponentDefaultProps("DateTimePicker", defaultProps, props), {
value,
defaultValue,
onChange,
valueFormat,
locale,
classNames,
styles,
unstyled,
timeInputProps,
submitButtonProps,
withSeconds,
level,
defaultLevel
} = _a, rest = __objRest(_a, [
"value",
"defaultValue",
"onChange",
"valueFormat",
"locale",
"classNames",
"styles",
"unstyled",
"timeInputProps",
"submitButtonProps",
"withSeconds",
"level",
"defaultLevel"
]);
const _valueFormat = valueFormat || (withSeconds ? "DD/MM/YYYY HH:mm:ss" : "DD/MM/YYYY HH:mm");
const { classes, cx } = DateTimePicker_styles(null, { name: "DateTimePicker", classNames, styles, unstyled });
const timeInputRef = React.useRef();
const _b = pickCalendarLevelsProps.pickCalendarProps(rest), {
calendarProps: _c
} = _b, _d = _c, calendarProps = __objRest(_d, ["allowSingleDateInRange"]), {
others
} = _b;
const ctx = useDatesContext.useDatesContext();
const [_value, setValue] = hooks.useUncontrolled({
value,
defaultValue,
finalValue: null,
onChange
});
const formatTime = (dateValue) => dateValue ? dayjs__default(dateValue).format(withSeconds ? "HH:mm:ss" : "HH:mm") : "";
const [timeValue, setTimeValue] = React.useState(formatTime(_value));
const [currentLevel, setCurrentLevel] = React.useState(level || defaultLevel || "month");
const [dropdownOpened, dropdownHandlers] = hooks.useDisclosure(false);
const formattedValue = _value ? dayjs__default(_value).locale(ctx.getLocale(locale)).format(_valueFormat) : "";
const handleTimeChange = (event) => {
var _a2;
(_a2 = timeInputProps == null ? void 0 : timeInputProps.onChange) == null ? void 0 : _a2.call(timeInputProps, event);
const val = event.currentTarget.value;
setTimeValue(val);
if (val) {
const [hours, minutes, seconds] = val.split(":").map(Number);
const timeDate = new Date();
timeDate.setHours(hours);
timeDate.setMinutes(minutes);
seconds !== void 0 && timeDate.setSeconds(seconds);
setValue(assignTime.assignTime(timeDate, _value || new Date()));
}
};
const handleDateChange = (date) => {
var _a2;
setValue(assignTime.assignTime(_value, date));
(_a2 = timeInputRef.current) == null ? void 0 : _a2.focus();
};
const handleTimeInputKeyDown = (event) => {
var _a2;
(_a2 = timeInputProps == null ? void 0 : timeInputProps.onKeyDown) == null ? void 0 : _a2.call(timeInputProps, event);
if (event.key === "Enter") {
event.preventDefault();
dropdownHandlers.close();
}
};
hooks.useDidUpdate(() => {
if (!dropdownOpened) {
setTimeValue(formatTime(_value));
}
}, [_value, dropdownOpened]);
return /* @__PURE__ */ React__default.createElement(PickerInputBase.PickerInputBase, __spreadValues({
formattedValue: locale && locale === "fa" ? new Intl.DateTimeFormat("fa-IR", { dateStyle: "long", timeStyle: "short" }).format(_value) : formattedValue,
style: {
direction: locale && locale === "fa" ? "rtl" : "ltr",
textAlignLast: locale && locale === "fa" ? "right" : "auto"
},
dropdownOpened,
dropdownHandlers,
classNames,
styles,
unstyled,
__staticSelector: "DateTimePicker",
ref,
onClear: () => setValue(null),
shouldClear: !!_value,
value: _value,
type: "default"
}, others), /* @__PURE__ */ React__default.createElement(DatePicker.DatePicker, __spreadProps(__spreadValues({}, calendarProps), {
type: "default",
value: _value,
defaultDate: _value,
onChange: handleDateChange,
locale,
classNames,
styles,
unstyled,
__staticSelector: "DateTimePicker",
level,
defaultLevel,
onLevelChange: (_level) => {
var _a2;
setCurrentLevel(_level);
(_a2 = calendarProps.onLevelChange) == null ? void 0 : _a2.call(calendarProps, _level);
}
})), currentLevel === "month" && /* @__PURE__ */ React__default.createElement("div", {
className: classes.timeWrapper
}, /* @__PURE__ */ React__default.createElement(TimeInput.TimeInput, __spreadProps(__spreadValues({
value: timeValue,
withSeconds,
ref: timeInputRef,
unstyled
}, timeInputProps), {
className: cx(classes.timeInput, timeInputProps == null ? void 0 : timeInputProps.className),
onChange: handleTimeChange,
onKeyDown: handleTimeInputKeyDown
})), /* @__PURE__ */ React__default.createElement(core.ActionIcon, __spreadValues({
variant: "default",
size: 36,
onClick: (event) => {
var _a2;
(_a2 = submitButtonProps == null ? void 0 : submitButtonProps.onClick) == null ? void 0 : _a2.call(submitButtonProps, event);
dropdownHandlers.close();
},
children: /* @__PURE__ */ React__default.createElement(core.CheckIcon, {
width: 12
}),
unstyled
}, submitButtonProps))));
});
DateTimePicker.displayName = "@mantine/dates/DateTimePicker";
exports.DateTimePicker = DateTimePicker;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWVQaWNrZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICB1c2VDb21wb25lbnREZWZhdWx0UHJvcHMsXG4gIENoZWNrSWNvbixcbiAgQWN0aW9uSWNvbixcbiAgQWN0aW9uSWNvblByb3BzLFxuICBTZWxlY3RvcnMsXG4gIERlZmF1bHRQcm9wcyxcbn0gZnJvbSAnQG1hbnRpbmUvY29yZSc7XG5pbXBvcnQgeyB1c2VEaXNjbG9zdXJlLCB1c2VVbmNvbnRyb2xsZWQsIHVzZURpZFVwZGF0ZSB9IGZyb20gJ0BtYW50aW5lL2hvb2tzJztcbmltcG9ydCB7IGFzc2lnblRpbWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBUaW1lSW5wdXQsIFRpbWVJbnB1dFByb3BzIH0gZnJvbSAnLi4vVGltZUlucHV0JztcbmltcG9ydCB7IHBpY2tDYWxlbmRhclByb3BzLCBDYWxlbmRhckJhc2VQcm9wcywgQ2FsZW5kYXJTZXR0aW5ncyB9IGZyb20gJy4uL0NhbGVuZGFyJztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICcuLi9EYXRlUGlja2VyJztcbmltcG9ydCB7XG4gIFBpY2tlcklucHV0QmFzZSxcbiAgRGF0ZUlucHV0U2hhcmVkUHJvcHMsXG4gIFBpY2tlcklucHV0QmFzZVN0eWxlc05hbWVzLFxufSBmcm9tICcuLi9QaWNrZXJJbnB1dEJhc2UnO1xuaW1wb3J0IHsgRGF0ZVZhbHVlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlRGF0ZXNDb250ZXh0IH0gZnJvbSAnLi4vRGF0ZXNQcm92aWRlcic7XG5pbXBvcnQgdXNlU3R5bGVzIGZyb20gJy4vRGF0ZVRpbWVQaWNrZXIuc3R5bGVzJztcblxuZXhwb3J0IHR5cGUgRGF0ZVRpbWVQaWNrZXJTdHlsZXNOYW1lcyA9IFBpY2tlcklucHV0QmFzZVN0eWxlc05hbWVzIHwgU2VsZWN0b3JzPHR5cGVvZiB1c2VTdHlsZXM+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lUGlja2VyUHJvcHNcbiAgZXh0ZW5kcyBEZWZhdWx0UHJvcHM8RGF0ZVRpbWVQaWNrZXJTdHlsZXNOYW1lcz4sXG4gICAgT21pdDxEYXRlSW5wdXRTaGFyZWRQcm9wcywgJ2NsYXNzTmFtZXMnIHwgJ3N0eWxlcycgfCAnY2xvc2VPbkNoYW5nZSc+LFxuICAgIE9taXQ8Q2FsZW5kYXJCYXNlUHJvcHMsICdkZWZhdWx0RGF0ZSc+LFxuICAgIENhbGVuZGFyU2V0dGluZ3Mge1xuICAvKiogRGF5anMgZm9ybWF0IHRvIGRpc3BsYXkgaW5wdXQgdmFsdWUsIFwiREQvTU0vWVlZWSBISDptbVwiIGJ5IGRlZmF1bHQgICovXG4gIHZhbHVlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKiBDb250cm9sbGVkIGNvbXBvbmVudCB2YWx1ZSAqL1xuICB2YWx1ZT86IERhdGVWYWx1ZTtcblxuICAvKiogRGVmYXVsdCB2YWx1ZSBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudCAqL1xuICBkZWZhdWx0VmFsdWU/OiBEYXRlVmFsdWU7XG5cbiAgLyoqIENhbGxlZCB3aGVuIHZhbHVlIGNoYW5nZXMgKi9cbiAgb25DaGFuZ2U/KHZhbHVlOiBEYXRlVmFsdWUpOiB2b2lkO1xuXG4gIC8qKiBUaW1lSW5wdXQgY29tcG9uZW50IHByb3BzICovXG4gIHRpbWVJbnB1dFByb3BzPzogVGltZUlucHV0UHJvcHM7XG5cbiAgLyoqIFByb3BzIGFkZGVkIHRvIHN1Ym1pdCBidXR0b24gKi9cbiAgc3VibWl0QnV0dG9uUHJvcHM/OiBBY3Rpb25JY29uUHJvcHMgJiBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J2J1dHRvbic+O1xuXG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgc2Vjb25kcyBpbnB1dCBzaG91bGQgYmUgcmVuZGVyZWQgKi9cbiAgd2l0aFNlY29uZHM/OiBib29sZWFuO1xufVxuXG5jb25zdCBkZWZhdWx0UHJvcHM6IFBhcnRpYWw8RGF0ZVRpbWVQaWNrZXJQcm9wcz4gPSB7fTtcblxuZXhwb3J0IGNvbnN0IERhdGVUaW1lUGlja2VyID0gZm9yd2FyZFJlZjxIVE1MQnV0dG9uRWxlbWVudCwgRGF0ZVRpbWVQaWNrZXJQcm9wcz4oKHByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIHZhbHVlLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICB2YWx1ZUZvcm1hdCxcbiAgICBsb2NhbGUsXG4gICAgY2xhc3NOYW1lcyxcbiAgICBzdHlsZXMsXG4gICAgdW5zdHlsZWQsXG4gICAgdGltZUlucHV0UHJvcHMsXG4gICAgc3VibWl0QnV0dG9uUHJvcHMsXG4gICAgd2l0aFNlY29uZHMsXG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdExldmVsLFxuICAgIC4uLnJlc3RcbiAgfSA9IHVzZUNvbXBvbmVudERlZmF1bHRQcm9wcygnRGF0ZVRpbWVQaWNrZXInLCBkZWZhdWx0UHJvcHMsIHByb3BzKTtcblxuICBjb25zdCBfdmFsdWVGb3JtYXQgPSB2YWx1ZUZvcm1hdCB8fCAod2l0aFNlY29uZHMgPyAnREQvTU0vWVlZWSBISDptbTpzcycgOiAnREQvTU0vWVlZWSBISDptbScpO1xuXG4gIGNvbnN0IHsgY2xhc3NlcywgY3ggfSA9IHVzZVN0eWxlcyhudWxsLCB7IG5hbWU6ICdEYXRlVGltZVBpY2tlcicsIGNsYXNzTmFtZXMsIHN0eWxlcywgdW5zdHlsZWQgfSk7XG5cbiAgY29uc3QgdGltZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgY29uc3Qge1xuICAgIGNhbGVuZGFyUHJvcHM6IHsgYWxsb3dTaW5nbGVEYXRlSW5SYW5nZSwgLi4uY2FsZW5kYXJQcm9wcyB9LFxuICAgIG90aGVycyxcbiAgfSA9IHBpY2tDYWxlbmRhclByb3BzKHJlc3QpO1xuXG4gIGNvbnN0IGN0eCA9IHVzZURhdGVzQ29udGV4dCgpO1xuICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VVbmNvbnRyb2xsZWQoe1xuICAgIHZhbHVlLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBmaW5hbFZhbHVlOiBudWxsLFxuICAgIG9uQ2hhbmdlLFxuICB9KTtcblxuICBjb25zdCBmb3JtYXRUaW1lID0gKGRhdGVWYWx1ZTogRGF0ZSkgPT5cbiAgICBkYXRlVmFsdWUgPyBkYXlqcyhkYXRlVmFsdWUpLmZvcm1hdCh3aXRoU2Vjb25kcyA/ICdISDptbTpzcycgOiAnSEg6bW0nKSA6ICcnO1xuXG4gIGNvbnN0IFt0aW1lVmFsdWUsIHNldFRpbWVWYWx1ZV0gPSB1c2VTdGF0ZShmb3JtYXRUaW1lKF92YWx1ZSkpO1xuICBjb25zdCBbY3VycmVudExldmVsLCBzZXRDdXJyZW50TGV2ZWxdID0gdXNlU3RhdGUobGV2ZWwgfHwgZGVmYXVsdExldmVsIHx8ICdtb250aCcpO1xuXG4gIGNvbnN0IFtkcm9wZG93bk9wZW5lZCwgZHJvcGRvd25IYW5kbGVyc10gPSB1c2VEaXNjbG9zdXJlKGZhbHNlKTtcbiAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBfdmFsdWVcbiAgICA/IGRheWpzKF92YWx1ZSkubG9jYWxlKGN0eC5nZXRMb2NhbGUobG9jYWxlKSkuZm9ybWF0KF92YWx1ZUZvcm1hdClcbiAgICA6ICcnO1xuXG4gIGNvbnN0IGhhbmRsZVRpbWVDaGFuZ2UgPSAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgdGltZUlucHV0UHJvcHM/Lm9uQ2hhbmdlPy4oZXZlbnQpO1xuICAgIGNvbnN0IHZhbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgc2V0VGltZVZhbHVlKHZhbCk7XG5cbiAgICBpZiAodmFsKSB7XG4gICAgICBjb25zdCBbaG91cnMsIG1pbnV0ZXMsIHNlY29uZHNdID0gdmFsLnNwbGl0KCc6JykubWFwKE51bWJlcik7XG4gICAgICBjb25zdCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICB0aW1lRGF0ZS5zZXRIb3Vycyhob3Vycyk7XG4gICAgICB0aW1lRGF0ZS5zZXRNaW51dGVzKG1pbnV0ZXMpO1xuICAgICAgc2Vjb25kcyAhPT0gdW5kZWZpbmVkICYmIHRpbWVEYXRlLnNldFNlY29uZHMoc2Vjb25kcyk7XG4gICAgICBzZXRWYWx1ZShhc3NpZ25UaW1lKHRpbWVEYXRlLCBfdmFsdWUgfHwgbmV3IERhdGUoKSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVEYXRlQ2hhbmdlID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBzZXRWYWx1ZShhc3NpZ25UaW1lKF92YWx1ZSwgZGF0ZSkpO1xuICAgIHRpbWVJbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRpbWVJbnB1dEtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICB0aW1lSW5wdXRQcm9wcz8ub25LZXlEb3duPy4oZXZlbnQpO1xuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGRyb3Bkb3duSGFuZGxlcnMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRGlkVXBkYXRlKCgpID0+IHtcbiAgICBpZiAoIWRyb3Bkb3duT3BlbmVkKSB7XG4gICAgICBzZXRUaW1lVmFsdWUoZm9ybWF0VGltZShfdmFsdWUpKTtcbiAgICB9XG4gIH0sIFtfdmFsdWUsIGRyb3Bkb3duT3BlbmVkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGlja2VySW5wdXRCYXNlXG4gICAgICBmb3JtYXR0ZWRWYWx1ZT17XG4gICAgICAgIGxvY2FsZSAmJiBsb2NhbGUgPT09ICdmYSdcbiAgICAgICAgICA/IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdmYS1JUicsIHsgZGF0ZVN0eWxlOiAnbG9uZycsIHRpbWVTdHlsZTogJ3Nob3J0JyB9KS5mb3JtYXQoXG4gICAgICAgICAgICAgIF92YWx1ZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogZm9ybWF0dGVkVmFsdWVcbiAgICAgIH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGRpcmVjdGlvbjogbG9jYWxlICYmIGxvY2FsZSA9PT0gJ2ZhJyA/ICdydGwnIDogJ2x0cicsXG4gICAgICAgIHRleHRBbGlnbkxhc3Q6IGxvY2FsZSAmJiBsb2NhbGUgPT09ICdmYScgPyAncmlnaHQnIDogJ2F1dG8nLFxuICAgICAgfX1cbiAgICAgIGRyb3Bkb3duT3BlbmVkPXtkcm9wZG93bk9wZW5lZH1cbiAgICAgIGRyb3Bkb3duSGFuZGxlcnM9e2Ryb3Bkb3duSGFuZGxlcnN9XG4gICAgICBjbGFzc05hbWVzPXtjbGFzc05hbWVzfVxuICAgICAgc3R5bGVzPXtzdHlsZXN9XG4gICAgICB1bnN0eWxlZD17dW5zdHlsZWR9XG4gICAgICBfX3N0YXRpY1NlbGVjdG9yPVwiRGF0ZVRpbWVQaWNrZXJcIlxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBvbkNsZWFyPXsoKSA9PiBzZXRWYWx1ZShudWxsKX1cbiAgICAgIHNob3VsZENsZWFyPXshIV92YWx1ZX1cbiAgICAgIHZhbHVlPXtfdmFsdWV9XG4gICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICB7Li4ub3RoZXJzfVxuICAgID5cbiAgICAgIDxEYXRlUGlja2VyXG4gICAgICAgIHsuLi5jYWxlbmRhclByb3BzfVxuICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgIHZhbHVlPXtfdmFsdWV9XG4gICAgICAgIGRlZmF1bHREYXRlPXtfdmFsdWV9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVEYXRlQ2hhbmdlfVxuICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgY2xhc3NOYW1lcz17Y2xhc3NOYW1lc31cbiAgICAgICAgc3R5bGVzPXtzdHlsZXN9XG4gICAgICAgIHVuc3R5bGVkPXt1bnN0eWxlZH1cbiAgICAgICAgX19zdGF0aWNTZWxlY3Rvcj1cIkRhdGVUaW1lUGlja2VyXCJcbiAgICAgICAgbGV2ZWw9e2xldmVsfVxuICAgICAgICBkZWZhdWx0TGV2ZWw9e2RlZmF1bHRMZXZlbH1cbiAgICAgICAgb25MZXZlbENoYW5nZT17KF9sZXZlbCkgPT4ge1xuICAgICAgICAgIHNldEN1cnJlbnRMZXZlbChfbGV2ZWwpO1xuICAgICAgICAgIGNhbGVuZGFyUHJvcHMub25MZXZlbENoYW5nZT8uKF9sZXZlbCk7XG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICB7Y3VycmVudExldmVsID09PSAnbW9udGgnICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMudGltZVdyYXBwZXJ9PlxuICAgICAgICAgIDxUaW1lSW5wdXRcbiAgICAgICAgICAgIHZhbHVlPXt0aW1lVmFsdWV9XG4gICAgICAgICAgICB3aXRoU2Vjb25kcz17d2l0aFNlY29uZHN9XG4gICAgICAgICAgICByZWY9e3RpbWVJbnB1dFJlZn1cbiAgICAgICAgICAgIHVuc3R5bGVkPXt1bnN0eWxlZH1cbiAgICAgICAgICAgIHsuLi50aW1lSW5wdXRQcm9wc31cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy50aW1lSW5wdXQsIHRpbWVJbnB1dFByb3BzPy5jbGFzc05hbWUpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRpbWVDaGFuZ2V9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZVRpbWVJbnB1dEtleURvd259XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDxBY3Rpb25JY29uPCdidXR0b24nPlxuICAgICAgICAgICAgdmFyaWFudD1cImRlZmF1bHRcIlxuICAgICAgICAgICAgc2l6ZT17MzZ9XG4gICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgc3VibWl0QnV0dG9uUHJvcHM/Lm9uQ2xpY2s/LihldmVudCk7XG4gICAgICAgICAgICAgIGRyb3Bkb3duSGFuZGxlcnMuY2xvc2UoKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tY2hpbGRyZW4tcHJvcFxuICAgICAgICAgICAgY2hpbGRyZW49ezxDaGVja0ljb24gd2lkdGg9ezEyfSAvPn1cbiAgICAgICAgICAgIHVuc3R5bGVkPXt1bnN0eWxlZH1cbiAgICAgICAgICAgIHsuLi5zdWJtaXRCdXR0b25Qcm9wc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9QaWNrZXJJbnB1dEJhc2U+XG4gICk7XG59KTtcblxuRGF0ZVRpbWVQaWNrZXIuZGlzcGxheU5hbWUgPSAnQG1hbnRpbmUvZGF0ZXMvRGF0ZVRpbWVQaWNrZXInO1xuIl0sIm5hbWVzIjpbImZvcndhcmRSZWYiLCJ1c2VDb21wb25lbnREZWZhdWx0UHJvcHMiLCJ1c2VTdHlsZXMiLCJ1c2VSZWYiLCJwaWNrQ2FsZW5kYXJQcm9wcyIsInVzZURhdGVzQ29udGV4dCIsInVzZVVuY29udHJvbGxlZCIsImRheWpzIiwidXNlU3RhdGUiLCJ1c2VEaXNjbG9zdXJlIiwiYXNzaWduVGltZSIsInVzZURpZFVwZGF0ZSIsIlJlYWN0IiwiUGlja2VySW5wdXRCYXNlIiwiRGF0ZVBpY2tlciIsIlRpbWVJbnB1dCIsIkFjdGlvbkljb24iLCJDaGVja0ljb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUN0QyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7QUFDekMsSUFBSSxpQkFBaUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUM7QUFDekQsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFC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