UNPKG

mantine-datepicker-jalali

Version:
201 lines (194 loc) 26.7 kB
'use strict'; 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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