@fundamental-ngx/moment-adapter 0.58.0-rc.8 → 0.58.0-rc.81

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.
@@ -12,7 +12,6 @@ const MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('MOMENT_DATE_TIME_AD
12
12
  providedIn: 'root',
13
13
  factory: MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY
14
14
  });
15
- // eslint-disable-next-line @typescript-eslint/naming-convention
16
15
  function MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {
17
16
  return {
18
17
  useUtc: false,
@@ -120,10 +119,14 @@ class MomentDatetimeAdapter extends DatetimeAdapter {
120
119
  const momentDate = this._createMomentDate();
121
120
  return range(24, (i) => this.clone(momentDate).hour(i).format(format));
122
121
  }
123
- getMinuteNames({ twoDigit }) {
122
+ getMinuteNames({ twoDigit, minuteStep = 1 }) {
124
123
  const format = twoDigit ? 'mm' : 'm';
125
124
  const momentDate = this._createMomentDate();
126
- return range(60, (i) => this.clone(momentDate).minute(i).format(format));
125
+ const length = Math.ceil(60 / minuteStep);
126
+ return range(length, (index) => {
127
+ const minute = index * minuteStep;
128
+ return this.clone(momentDate).minute(minute).format(format);
129
+ });
127
130
  }
128
131
  getSecondNames({ twoDigit }) {
129
132
  const format = twoDigit ? 'ss' : 's';
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-moment-adapter.mjs","sources":["../tmp-esm2022/lib/moment-datetime-adapter.js","../tmp-esm2022/lib/moment-datetime-formats.js","../tmp-esm2022/lib/moment-datetime.module.js","../tmp-esm2022/fundamental-ngx-moment-adapter.js"],"sourcesContent":["import { Inject, Injectable, InjectionToken, isDevMode, LOCALE_ID, Optional } from '@angular/core';\nimport moment from 'moment';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';\nimport * as i0 from \"@angular/core\";\nfunction range(length, mapFn) {\n return Array.from(new Array(length)).map((_, index) => mapFn(index));\n}\nexport const MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('MOMENT_DATE_TIME_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY\n});\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {\n return {\n useUtc: false,\n strict: false\n };\n}\n/**\n * @deprecated Use `DayjsDatetimeAdapter` from `@fundamental-ngx/datetime-adapter` package instead.\n *\n * DatetimeAdapter implementation based on moment.\n *\n * This uses moment.js as a date model instance.\n * It relies on moment implementation for formatting and translation purposes.\n *\n */\nexport class MomentDatetimeAdapter extends DatetimeAdapter {\n constructor(localeId, _options) {\n super();\n this._options = _options;\n this.setLocale(localeId || moment.locale());\n if (isDevMode()) {\n warnOnce('MomentDatetimeAdapter is deprecated. ' +\n 'Use \"DayjsDatetimeAdapter\" from \"@fundamental-ngx/datetime-adapter\" package instead.');\n }\n }\n setLocale(locale) {\n this._momentLocaleData = moment.localeData(locale);\n this._localeData = {\n firstDayOfWeek: this._momentLocaleData.firstDayOfWeek(),\n longMonths: this._momentLocaleData.months(),\n shortMonths: this._momentLocaleData.monthsShort(),\n narrowMonths: this._momentLocaleData.months().map((name) => name.charAt(0)),\n longDaysOfWeek: this._momentLocaleData.weekdays(),\n shortDaysOfWeek: this._momentLocaleData.weekdaysShort(),\n narrowDaysOfWeek: this._momentLocaleData.weekdaysMin()\n };\n super.setLocale(locale);\n }\n getYear(date) {\n return this.clone(date).year();\n }\n getMonth(date) {\n return this.clone(date).month() + 1;\n }\n getDate(date) {\n return this.clone(date).date();\n }\n getDayOfWeek(date) {\n return this.clone(date).day() + 1;\n }\n getHours(date) {\n return this.clone(date).hours();\n }\n getMinutes(date) {\n return this.clone(date).minutes();\n }\n getSeconds(date) {\n return this.clone(date).seconds();\n }\n setHours(date, hours) {\n return this.clone(date).hours(hours);\n }\n setMinutes(date, minutes) {\n return this.clone(date).minutes(minutes);\n }\n setSeconds(date, seconds) {\n return this.clone(date).seconds(seconds);\n }\n getWeekNumber(date) {\n return this.clone(date).isoWeek();\n }\n getMonthNames(style) {\n switch (style) {\n case 'narrow':\n return this._localeData.narrowMonths;\n case 'short':\n return this._localeData.shortMonths;\n case 'long':\n default:\n return this._localeData.longMonths;\n }\n }\n getDateNames() {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n getDayOfWeekNames(style) {\n switch (style) {\n case 'narrow':\n return this._localeData.narrowDaysOfWeek;\n case 'short':\n return this._localeData.shortDaysOfWeek;\n case 'long':\n default:\n return this._localeData.longDaysOfWeek;\n }\n }\n getYearName(date) {\n return this.clone(date).format('YYYY');\n }\n getWeekName(date) {\n return this.clone(date).isoWeek().toLocaleString(this.locale);\n }\n getHourNames({ meridian, twoDigit }) {\n const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';\n const momentDate = this._createMomentDate();\n return range(24, (i) => this.clone(momentDate).hour(i).format(format));\n }\n getMinuteNames({ twoDigit }) {\n const format = twoDigit ? 'mm' : 'm';\n const momentDate = this._createMomentDate();\n return range(60, (i) => this.clone(momentDate).minute(i).format(format));\n }\n getSecondNames({ twoDigit }) {\n const format = twoDigit ? 'ss' : 's';\n const momentDate = this._createMomentDate();\n return range(60, (i) => this.clone(momentDate).second(i).format(format));\n }\n // isLower property is responsible for the lower and upper cases of the result\n getDayPeriodNames(isLower = false) {\n const AM = this._momentLocaleData.meridiem(6, 0, isLower);\n const PM = this._momentLocaleData.meridiem(16, 0, isLower);\n return [AM, PM];\n }\n getFirstDayOfWeek() {\n return this._localeData.firstDayOfWeek;\n }\n getNumDaysInMonth(date) {\n return this.clone(date).daysInMonth();\n }\n parse(value, parseFormat = '') {\n if (value && typeof value === 'string') {\n return this._createMomentDate(value, parseFormat, this.locale);\n }\n else if (value instanceof FdDate) {\n // FdDate instance may be incorrectly parsed by Moment.js\n value = value.toString();\n }\n return value ? this._createMomentDate(value).locale(this.locale) : null;\n }\n format(date, displayFormat) {\n if (!date) {\n return '';\n }\n date = this.clone(date);\n if (!this.isValid(date)) {\n throw Error('MomentDatetimeAdapter: Cannot format invalid date.');\n }\n return date.format(displayFormat);\n }\n createDate(year, month, date) {\n if (typeof month === 'number' && (month < 0 || month > 12)) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n if (typeof date === 'number' && date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n const result = this._createMomentDate(typeof month === 'number' && typeof date === 'number'\n ? {\n year,\n month: month !== 0 ? month - 1 : month,\n date\n }\n : `${year}`).locale(this.locale);\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n today() {\n return this._createMomentDate().locale(this.locale).startOf('day');\n }\n now() {\n return this._createMomentDate().locale(this.locale);\n }\n addCalendarYears(date, years) {\n return this.clone(date).add({ years });\n }\n addCalendarMonths(date, months) {\n return this.clone(date).add({ months });\n }\n addCalendarDays(date, days) {\n return this.clone(date).add({ days });\n }\n clone(date) {\n if (!date) {\n return moment();\n }\n return date.clone().locale(this.locale);\n }\n datesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2, 'day');\n }\n dateTimesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2);\n }\n isBetween(dateToCheck, startDate, endDate) {\n if (!dateToCheck || !startDate || !endDate) {\n return false;\n }\n return dateToCheck.isBetween(startDate, endDate);\n }\n isValid(date) {\n return !!date?.isValid();\n }\n toIso8601(date) {\n return this.clone(date).toISOString();\n }\n isTimeFormatIncludesDayPeriod(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[aA]/);\n }\n isTimeFormatIncludesHours(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[hH]/);\n }\n isTimeFormatIncludesMinutes(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[m]/);\n }\n isTimeFormatIncludesSeconds(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[s]/);\n }\n /**\n * @hidden\n * _prepareFormat will remove escaped text, and will check for moment localized formats.\n * But it works only with simple long date formats, combined formats will not be handled,\n * for example these will not be handled: 'MM-DD-YYYY LT', 'L LT'.\n */\n _prepareFormat(displayFormat) {\n const format = displayFormat.trim();\n const longDateFormat = this._momentLocaleData._longDateFormat;\n for (const key in longDateFormat) {\n if (Object.prototype.hasOwnProperty.call(longDateFormat, key) && format === key) {\n return longDateFormat[key];\n }\n }\n return format;\n }\n /** @hidden */\n _createMomentDate(date, format, locale) {\n const { strict, useUtc } = this._options || {};\n return useUtc ? moment.utc(date, format, locale, strict) : moment(date, format, locale, strict);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: MOMENT_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MOMENT_DATE_TIME_ADAPTER_OPTIONS]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21vbWVudC1hZGFwdGVyL3NyYy9saWIvbW9tZW50LWRhdGV0aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBc0YsTUFBTSxRQUFRLENBQUM7QUFFNUcsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxLQUEyQjtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBT0QsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQzlELGtDQUFrQyxFQUNsQztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx3Q0FBd0M7Q0FDcEQsQ0FDSixDQUFDO0FBRUYsZ0VBQWdFO0FBQ2hFLE1BQU0sVUFBVSx3Q0FBd0M7SUFDcEQsT0FBTztRQUNILE1BQU0sRUFBRSxLQUFLO1FBQ2IsTUFBTSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztBQUNOLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUF1QjtJQU85RCxZQUNtQyxRQUFnQixFQUNlLFFBQXVDO1FBRXJHLEtBQUssRUFB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QWM7SUFDZCxpQkFBaUIsQ0FBQyxJQUFrQixFQUFFLE1BQWtDLEVBQUUsTUFBZTtRQUNyRixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFpQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BHLENBQUM7OEdBN1RRLHFCQUFxQixrQkFRTixTQUFTLDZCQUNULGdDQUFnQztrSEFUL0MscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFTRixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGlzRGV2TW9kZSwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCwgeyBMb2NhbGUsIExvbmdEYXRlRm9ybWF0U3BlYywgTW9tZW50LCBNb21lbnRGb3JtYXRTcGVjaWZpY2F0aW9uLCBNb21lbnRJbnB1dCB9IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciwgRmREYXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcblxuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIG1hcEZuOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IEFycmF5KGxlbmd0aCkpLm1hcCgoXywgaW5kZXgpID0+IG1hcEZuKGluZGV4KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9tZW50RGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyB7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICB1c2VVdGM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TW9tZW50RGF0ZXRpbWVBZGFwdGVyT3B0aW9ucz4oXG4gICAgJ01PTUVOVF9EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlNfRkFDVE9SWVxuICAgIH1cbik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBNT01FTlRfREFURV9USU1FX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IE1vbWVudERhdGV0aW1lQWRhcHRlck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIHVzZVV0YzogZmFsc2UsXG4gICAgICAgIHN0cmljdDogZmFsc2VcbiAgICB9O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgRGF5anNEYXRldGltZUFkYXB0ZXJgIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvZGF0ZXRpbWUtYWRhcHRlcmAgcGFja2FnZSBpbnN0ZWFkLlxuICpcbiAqIERhdGV0aW1lQWRhcHRlciBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBtb21lbnQuXG4gKlxuICogVGhpcyB1c2VzIG1vbWVudC5qcyBhcyBhIGRhdGUgbW9kZWwgaW5zdGFuY2UuXG4gKiBJdCByZWxpZXMgb24gbW9tZW50IGltcGxlbWVudGF0aW9uIGZvciBmb3JtYXR0aW5nIGFuZCB0cmFuc2xhdGlvbiBwdXJwb3Nlcy5cbiAqXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb21lbnREYXRldGltZUFkYXB0ZXIgZXh0ZW5kcyBEYXRldGltZUFkYXB0ZXI8TW9tZW50PiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tb21lbnRMb2NhbGVEYXRhOiBMb2NhbGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xvY2FsZURhdGE6IERhdGVMb2NhbGU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMpIHByaXZhdGUgX29wdGlvbnM/OiBNb21lbnREYXRldGltZUFkYXB0ZXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlSWQgfHwgbW9tZW50LmxvY2FsZSgpKTtcblxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgICAgICdNb21lbnREYXRldGltZUFkYXB0ZXIgaXMgZGVwcmVjYXRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICdVc2UgXCJEYXlqc0RhdGV0aW1lQWRhcHRlclwiIGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2RhdGV0aW1lLWFkYXB0ZXJcIiBwYWNrYWdlIGluc3RlYWQuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZyb21Ob3c/KGRhdGU6IE1vbWVudCk6IHN0cmluZztcblxuICAgIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb21lbnRMb2NhbGVEYXRhID0gbW9tZW50LmxvY2FsZURhdGEobG9jYWxlKTtcblxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IHRoaXMuX21vbWVudExvY2FsZURhdGEuZmlyc3REYXlPZldlZWsoKSxcbiAgICAgICAgICAgIGxvbmdNb250aHM6IHRoaXMuX21vbWVudExvY2FsZURhdGEubW9udGhzKCksXG4gICAgICAgICAgICBzaG9ydE1vbnRoczogdGhpcy5fbW9tZW50TG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxuICAgICAgICAgICAgbmFycm93TW9udGhzOiB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLm1vbnRocygpLm1hcCgobmFtZTogc3RyaW5nKSA9PiBuYW1lLmNoYXJBdCgwKSksXG4gICAgICAgICAgICBsb25nRGF5c09mV2VlazogdGhpcy5fbW9tZW50TG9jYWxlRGF0YS53ZWVrZGF5cygpLFxuICAgICAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcbiAgICAgICAgICAgIG5hcnJvd0RheXNPZldlZWs6IHRoaXMuX21vbWVudExvY2FsZURhdGEud2Vla2RheXNNaW4oKVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIGdldFllYXIoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkueWVhcigpO1xuICAgIH1cblxuICAgIGdldE1vbnRoKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1vbnRoKCkgKyAxO1xuICAgIH1cblxuICAgIGdldERhdGUoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF0ZSgpO1xuICAgIH1cblxuICAgIGdldERheU9mV2VlayhkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5kYXkoKSArIDE7XG4gICAgfVxuXG4gICAgZ2V0SG91cnMoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuaG91cnMoKTtcbiAgICB9XG5cbiAgICBnZXRNaW51dGVzKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRzKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLnNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBzZXRIb3VycyhkYXRlOiBNb21lbnQsIGhvdXJzOiBudW1iZXIpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5ob3Vycyhob3Vycyk7XG4gICAgfVxuXG4gICAgc2V0TWludXRlcyhkYXRlOiBNb21lbnQsIG1pbnV0ZXM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1pbnV0ZXMobWludXRlcyk7XG4gICAgfVxuXG4gICAgc2V0U2Vjb25kcyhkYXRlOiBNb21lbnQsIHNlY29uZHM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLnNlY29uZHMoc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgZ2V0V2Vla051bWJlcihkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5pc29XZWVrKCk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICAgICAgICBjYXNlICduYXJyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd01vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydE1vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nTW9udGhzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHJhbmdlKDMxLCAoaSkgPT4gdGhpcy5jcmVhdGVEYXRlKDIwMTcsIDAsIGkgKyAxKS5mb3JtYXQoJ0QnKSk7XG4gICAgfVxuXG4gICAgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgICAgY2FzZSAnbmFycm93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dEYXlzT2ZXZWVrO1xuICAgICAgICAgICAgY2FzZSAnc2hvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFllYXJOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmZvcm1hdCgnWVlZWScpO1xuICAgIH1cblxuICAgIGdldFdlZWtOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmlzb1dlZWsoKS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgZ2V0SG91ck5hbWVzKHsgbWVyaWRpYW4sIHR3b0RpZ2l0IH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1lcmlkaWFuOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gbWVyaWRpYW4gPyAodHdvRGlnaXQgPyAnaGgnIDogJ2gnKSA6IHR3b0RpZ2l0ID8gJ0hIJyA6ICdIJztcbiAgICAgICAgY29uc3QgbW9tZW50RGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoMjQsIChpKSA9PiB0aGlzLmNsb25lKG1vbWVudERhdGUpLmhvdXIoaSkuZm9ybWF0KGZvcm1hdCkpO1xuICAgIH1cblxuICAgIGdldE1pbnV0ZU5hbWVzKHsgdHdvRGlnaXQgfTogeyB0d29EaWdpdDogYm9vbGVhbiB9KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmb3JtYXQ6IHN0cmluZyA9IHR3b0RpZ2l0ID8gJ21tJyA6ICdtJztcbiAgICAgICAgY29uc3QgbW9tZW50RGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKG1vbWVudERhdGUpLm1pbnV0ZShpKS5mb3JtYXQoZm9ybWF0KSk7XG4gICAgfVxuXG4gICAgZ2V0U2Vjb25kTmFtZXMoeyB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gdHdvRGlnaXQgPyAnc3MnIDogJ3MnO1xuICAgICAgICBjb25zdCBtb21lbnREYXRlID0gdGhpcy5fY3JlYXRlTW9tZW50RGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiByYW5nZSg2MCwgKGkpID0+IHRoaXMuY2xvbmUobW9tZW50RGF0ZSkuc2Vjb25kKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvLyBpc0xvd2VyIHByb3BlcnR5IGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgbG93ZXIgYW5kIHVwcGVyIGNhc2VzIG9mIHRoZSByZXN1bHRcbiAgICBnZXREYXlQZXJpb2ROYW1lcyhpc0xvd2VyID0gZmFsc2UpOiBbc3RyaW5nLCBzdHJpbmddIHtcbiAgICAgICAgY29uc3QgQU0gPSB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLm1lcmlkaWVtKDYsIDAsIGlzTG93ZXIpO1xuICAgICAgICBjb25zdCBQTSA9IHRoaXMuX21vbWVudExvY2FsZURhdGEubWVyaWRpZW0oMTYsIDAsIGlzTG93ZXIpO1xuXG4gICAgICAgIHJldHVybiBbQU0sIFBNXTtcbiAgICB9XG5cbiAgICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcbiAgICB9XG5cbiAgICBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5kYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBNb21lbnRGb3JtYXRTcGVjaWZpY2F0aW9uID0gJycpOiBNb21lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnREYXRlKHZhbHVlLCBwYXJzZUZvcm1hdCwgdGhpcy5sb2NhbGUpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmREYXRlKSB7XG4gICAgICAgICAgICAvLyBGZERhdGUgaW5zdGFuY2UgbWF5IGJlIGluY29ycmVjdGx5IHBhcnNlZCBieSBNb21lbnQuanNcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUodmFsdWUpLmxvY2FsZSh0aGlzLmxvY2FsZSkgOiBudWxsO1xuICAgIH1cblxuICAgIGZvcm1hdChkYXRlOiBNb21lbnQsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0ZSA9IHRoaXMuY2xvbmUoZGF0ZSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdNb21lbnREYXRldGltZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF0ZT86IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9udGggPT09ICdudW1iZXInICYmIChtb250aCA8IDAgfHwgbW9udGggPiAxMikpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIGluZGV4IFwiJHttb250aH1cIi4gTW9udGggaW5kZXggaGFzIHRvIGJlIGJldHdlZW4gMCBhbmQgMTEuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInICYmIGRhdGUgPCAxKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiLiBEYXRlIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoXG4gICAgICAgICAgICB0eXBlb2YgbW9udGggPT09ICdudW1iZXInICYmIHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICAgICAgICAgICAgbW9udGg6IG1vbnRoICE9PSAwID8gbW9udGggLSAxIDogbW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogYCR7eWVhcn1gXG4gICAgICAgICkubG9jYWxlKHRoaXMubG9jYWxlKTtcblxuICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB0b2RheSgpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlTW9tZW50RGF0ZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSkuc3RhcnRPZignZGF5Jyk7XG4gICAgfVxuXG4gICAgbm93KCk6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVNb21lbnREYXRlKCkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICB9XG5cbiAgICBhZGRDYWxlbmRhclllYXJzKGRhdGU6IE1vbWVudCwgeWVhcnM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmFkZCh7IHllYXJzIH0pO1xuICAgIH1cblxuICAgIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IE1vbWVudCwgbW9udGhzOiBudW1iZXIpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoeyBtb250aHMgfSk7XG4gICAgfVxuXG4gICAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IE1vbWVudCwgZGF5czogbnVtYmVyKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuYWRkKHsgZGF5cyB9KTtcbiAgICB9XG5cbiAgICBjbG9uZShkYXRlOiBNb21lbnQpOiBNb21lbnQge1xuICAgICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBtb21lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmNsb25lKCkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICB9XG5cbiAgICBkYXRlc0VxdWFsKGRhdGUxOiBNb21lbnQsIGRhdGUyOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlMS5pc1NhbWUoZGF0ZTIsICdkYXknKTtcbiAgICB9XG5cbiAgICBkYXRlVGltZXNFcXVhbChkYXRlMTogTW9tZW50LCBkYXRlMjogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZTEuaXNTYW1lKGRhdGUyKTtcbiAgICB9XG5cbiAgICBpc0JldHdlZW4oZGF0ZVRvQ2hlY2s6IE1vbWVudCwgc3RhcnREYXRlOiBNb21lbnQsIGVuZERhdGU6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWRhdGVUb0NoZWNrIHx8ICFzdGFydERhdGUgfHwgIWVuZERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlVG9DaGVjay5pc0JldHdlZW4oc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKGRhdGU6IE51bGxhYmxlPE1vbWVudD4pOiBkYXRlIGlzIE1vbWVudCB7XG4gICAgICAgIHJldHVybiAhIWRhdGU/LmlzVmFsaWQoKTtcbiAgICB9XG5cbiAgICB0b0lzbzg2MDEoZGF0ZTogTW9tZW50KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0RheVBlcmlvZChkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1thQV0vKTtcbiAgICB9XG5cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0hvdXJzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW2hIXS8pO1xuICAgIH1cblxuICAgIGlzVGltZUZvcm1hdEluY2x1ZGVzTWludXRlcyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1ttXS8pO1xuICAgIH1cblxuICAgIGlzVGltZUZvcm1hdEluY2x1ZGVzU2Vjb25kcyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1tzXS8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBfcHJlcGFyZUZvcm1hdCB3aWxsIHJlbW92ZSBlc2NhcGVkIHRleHQsIGFuZCB3aWxsIGNoZWNrIGZvciBtb21lbnQgbG9jYWxpemVkIGZvcm1hdHMuXG4gICAgICogQnV0IGl0IHdvcmtzIG9ubHkgd2l0aCBzaW1wbGUgbG9uZyBkYXRlIGZvcm1hdHMsIGNvbWJpbmVkIGZvcm1hdHMgd2lsbCBub3QgYmUgaGFuZGxlZCxcbiAgICAgKiBmb3IgZXhhbXBsZSB0aGVzZSB3aWxsIG5vdCBiZSBoYW5kbGVkOiAnTU0tREQtWVlZWSBMVCcsICdMIExUJy5cbiAgICAgKi9cbiAgICBfcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBkaXNwbGF5Rm9ybWF0LnRyaW0oKTtcbiAgICAgICAgY29uc3QgbG9uZ0RhdGVGb3JtYXQ6IExvbmdEYXRlRm9ybWF0U3BlYyA9ICh0aGlzLl9tb21lbnRMb2NhbGVEYXRhIGFzIGFueSkuX2xvbmdEYXRlRm9ybWF0O1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGxvbmdEYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGxvbmdEYXRlRm9ybWF0LCBrZXkpICYmIGZvcm1hdCA9PT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NyZWF0ZU1vbWVudERhdGUoZGF0ZT86IE1vbWVudElucHV0LCBmb3JtYXQ/OiBNb21lbnRGb3JtYXRTcGVjaWZpY2F0aW9uLCBsb2NhbGU/OiBzdHJpbmcpOiBNb21lbnQge1xuICAgICAgICBjb25zdCB7IHN0cmljdCwgdXNlVXRjIH06IE1vbWVudERhdGV0aW1lQWRhcHRlck9wdGlvbnMgPSB0aGlzLl9vcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIHJldHVybiB1c2VVdGMgPyBtb21lbnQudXRjKGRhdGUsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIDogbW9tZW50KGRhdGUsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIERhdGVMb2NhbGUge1xuICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXI7XG4gICAgbG9uZ01vbnRoczogc3RyaW5nW107XG4gICAgc2hvcnRNb250aHM6IHN0cmluZ1tdO1xuICAgIG5hcnJvd01vbnRoczogc3RyaW5nW107XG4gICAgbG9uZ0RheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgIHNob3J0RGF5c09mV2Vlazogc3RyaW5nW107XG4gICAgbmFycm93RGF5c09mV2Vlazogc3RyaW5nW107XG59XG4iXX0=","export const MOMENT_DATETIME_FORMATS = {\n parse: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A'\n },\n display: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A',\n dateA11yLabel: 'YYYY MMMM DD',\n monthA11yLabel: 'MMMM',\n yearA11yLabel: 'YYYY'\n },\n rangeDelimiter: ' - '\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLWZvcm1hdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21vbWVudC1hZGFwdGVyL3NyYy9saWIvbW9tZW50LWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9CO0lBQ3BELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLFFBQVE7UUFDbkIsYUFBYSxFQUFFLFVBQVU7S0FDNUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBNT01FTlRfREFURVRJTUVfRk9STUFUUzogRGF0ZVRpbWVGb3JtYXRzID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ2wnLFxuICAgICAgICB0aW1lSW5wdXQ6ICdoOm1tIEEnLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnbCBoOm1tIEEnXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ2wnLFxuICAgICAgICB0aW1lSW5wdXQ6ICdoOm1tIEEnLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnbCBoOm1tIEEnLFxuXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZIE1NTU0gREQnLFxuICAgICAgICBtb250aEExMXlMYWJlbDogJ01NTU0nLFxuICAgICAgICB5ZWFyQTExeUxhYmVsOiAnWVlZWSdcbiAgICB9LFxuICAgIHJhbmdlRGVsaW1pdGVyOiAnIC0gJ1xufTtcbiJdfQ==","import { NgModule } from '@angular/core';\nimport { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { MomentDatetimeAdapter } from './moment-datetime-adapter';\nimport { MOMENT_DATETIME_FORMATS } from './moment-datetime-formats';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/datetime\";\n/**\n * @deprecated Use `DatetimeAdapterRawModule` from `@fundamental-ngx/datetime-adapter` package instead.\n */\nexport class MomentDatetimeAdapterModule {\n /** @hidden */\n constructor(_adapter) {\n this._adapter = _adapter;\n warnOnce('MomentDatetimeAdapterModule is deprecated since version 0.20.0 and will be removed in future release.' +\n ' Use DatetimeAdapterRawModule from @fundamental-ngx/datetime-adapter package instead.');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, deps: [{ token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, providers: [{ provide: DatetimeAdapter, useClass: MomentDatetimeAdapter }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [{ provide: DatetimeAdapter, useClass: MomentDatetimeAdapter }]\n }]\n }], ctorParameters: () => [{ type: i1.DatetimeAdapter }] });\n/**\n * @deprecated Use `DatetimeAdapterModule` from `@fundamental-ngx/datetime-adapter` package instead.\n */\nexport class MomentDatetimeModule {\n /** @hidden */\n constructor(_adapter) {\n this._adapter = _adapter;\n warnOnce('MomentDatetimeModule is deprecated since version 0.20.0 and will be removed in future release.' +\n ' Use DatetimeAdapterModule from @fundamental-ngx/datetime-adapter package instead.');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, deps: [{ token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, imports: [MomentDatetimeAdapterModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: MOMENT_DATETIME_FORMATS }], imports: [MomentDatetimeAdapterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MomentDatetimeAdapterModule],\n providers: [{ provide: DATE_TIME_FORMATS, useValue: MOMENT_DATETIME_FORMATS }]\n }]\n }], ctorParameters: () => [{ type: i1.DatetimeAdapter }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9tZW50LWFkYXB0ZXIvc3JjL2xpYi9tb21lbnQtZGF0ZXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRXBFOztHQUVHO0FBSUgsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxjQUFjO0lBQ2QsWUFBb0IsUUFBK0I7UUFBL0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFDL0MsUUFBUSxDQUNKLHVHQUF1RztZQUNuRyx1RkFBdUYsQ0FDOUYsQ0FBQztJQUNOLENBQUM7OEdBUFEsMkJBQTJCOytHQUEzQiwyQkFBMkI7K0dBQTNCLDJCQUEyQixhQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQzs7MkZBRWpFLDJCQUEyQjtrQkFIdkMsUUFBUTttQkFBQztvQkFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7aUJBQzdFOztBQVdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixjQUFjO0lBQ2QsWUFBb0IsUUFBK0I7UUFBL0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFDL0MsUUFBUSxDQUNKLGdHQUFnRztZQUM1RixvRkFBb0YsQ0FDM0YsQ0FBQztJQUNOLENBQUM7OEdBUFEsb0JBQW9COytHQUFwQixvQkFBb0IsWUFqQnBCLDJCQUEyQjsrR0FpQjNCLG9CQUFvQixhQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLFlBRHBFLDJCQUEyQjs7MkZBRzVCLG9CQUFvQjtrQkFKaEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE1vbWVudERhdGV0aW1lQWRhcHRlciB9IGZyb20gJy4vbW9tZW50LWRhdGV0aW1lLWFkYXB0ZXInO1xuaW1wb3J0IHsgTU9NRU5UX0RBVEVUSU1FX0ZPUk1BVFMgfSBmcm9tICcuL21vbWVudC1kYXRldGltZS1mb3JtYXRzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYERhdGV0aW1lQWRhcHRlclJhd01vZHVsZWAgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyYCBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEYXRldGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBNb21lbnREYXRldGltZUFkYXB0ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgTW9tZW50RGF0ZXRpbWVBZGFwdGVyTW9kdWxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEYXRlPikge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdNb21lbnREYXRldGltZUFkYXB0ZXJNb2R1bGUgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuMjAuMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSByZWxlYXNlLicgK1xuICAgICAgICAgICAgICAgICcgVXNlIERhdGV0aW1lQWRhcHRlclJhd01vZHVsZSBmcm9tIEBmdW5kYW1lbnRhbC1uZ3gvZGF0ZXRpbWUtYWRhcHRlciBwYWNrYWdlIGluc3RlYWQuJ1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYERhdGV0aW1lQWRhcHRlck1vZHVsZWAgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyYCBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW01vbWVudERhdGV0aW1lQWRhcHRlck1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEQVRFX1RJTUVfRk9STUFUUywgdXNlVmFsdWU6IE1PTUVOVF9EQVRFVElNRV9GT1JNQVRTIH1dXG59KVxuZXhwb3J0IGNsYXNzIE1vbWVudERhdGV0aW1lTW9kdWxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEYXRlPikge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdNb21lbnREYXRldGltZU1vZHVsZSBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC4yMC4wIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHJlbGVhc2UuJyArXG4gICAgICAgICAgICAgICAgJyBVc2UgRGF0ZXRpbWVBZGFwdGVyTW9kdWxlIGZyb20gQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyIHBhY2thZ2UgaW5zdGVhZC4nXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LW1vbWVudC1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9tb21lbnQtYWRhcHRlci9zcmMvZnVuZGFtZW50YWwtbmd4LW1vbWVudC1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;AAKA,SAAS,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;AAC9B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AACxE;AACY,MAAC,gCAAgC,GAAG,IAAI,cAAc,CAAC,kCAAkC,EAAE;AACvG,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE;AACb,CAAC;AACD;AACO,SAAS,wCAAwC,GAAG;AAC3D,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,MAAM,EAAE;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,qBAAqB,SAAS,eAAe,CAAC;AAC3D,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACpC,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;AACnD,QAAQ,IAAI,SAAS,EAAE,EAAE;AACzB,YAAY,QAAQ,CAAC,uCAAuC;AAC5D,gBAAgB,sFAAsF,CAAC;AACvG,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AAC1D,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;AACnE,YAAY,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACvD,YAAY,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AAC7D,YAAY,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAC7D,YAAY,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACnE,YAAY,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAChE,SAAS;AACT,QAAQ,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAC/B,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACtC,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACtC,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;AACzC,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AACzC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AACzC,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAChD,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAChD,IAAI;AACJ,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AACzC,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,QAAQ,KAAK;AACrB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;AACpD,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW;AACnD,YAAY,KAAK,MAAM;AACvB,YAAY;AACZ,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;AAClD;AACA,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,QAAQ,KAAK;AACrB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB;AACxD,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe;AACvD,YAAY,KAAK,MAAM;AACvB,YAAY;AACZ,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;AACtD;AACA,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9C,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AACrE,IAAI;AACJ,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,QAAQ,GAAG,IAAI,GAAG,GAAG;AACjF,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACnD,QAAQ,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;AACjC,QAAQ,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC5C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACnD,QAAQ,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;AACjC,QAAQ,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC5C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACnD,QAAQ,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChF,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,OAAO,GAAG,KAAK,EAAE;AACvC,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;AACjE,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC;AAClE,QAAQ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACvB,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;AAC9C,IAAI;AACJ,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;AAC7C,IAAI;AACJ,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,EAAE,EAAE;AACnC,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD,YAAY,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;AAC1E,QAAQ;AACR,aAAa,IAAI,KAAK,YAAY,MAAM,EAAE;AAC1C;AACA,YAAY,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;AACpC,QAAQ;AACR,QAAQ,OAAO,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;AAC/E,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE;AAChC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,MAAM,KAAK,CAAC,oDAAoD,CAAC;AAC7E,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAClC,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE;AACpE,YAAY,MAAM,KAAK,CAAC,CAAC,qBAAqB,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAClG,QAAQ;AACR,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AAClD,YAAY,MAAM,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC;AACjF,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK;AAC3F,cAAc;AACd,gBAAgB,IAAI;AACpB,gBAAgB,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK;AACtD,gBAAgB;AAChB;AACA,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;AAC/B,YAAY,MAAM,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAClF,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAC1E,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3D,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9C,IAAI;AACJ,IAAI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;AAC/C,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAI;AACJ,IAAI,KAAK,CAAC,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,MAAM,EAAE;AAC3B,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,IAAI;AACJ,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACzC,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE;AACjC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClC,IAAI;AACJ,IAAI,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE;AAC/C,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AACpD,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC;AACxD,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;AAC7C,IAAI;AACJ,IAAI,6BAA6B,CAAC,aAAa,EAAE;AACjD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AACzD,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACrC,IAAI;AACJ,IAAI,yBAAyB,CAAC,aAAa,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AACzD,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACrC,IAAI;AACJ,IAAI,2BAA2B,CAAC,aAAa,EAAE;AAC/C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AACzD,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,IAAI;AACJ,IAAI,2BAA2B,CAAC,aAAa,EAAE;AAC/C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AACzD,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,aAAa,EAAE;AAClC,QAAQ,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE;AAC3C,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe;AACrE,QAAQ,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;AAC1C,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,MAAM,KAAK,GAAG,EAAE;AAC7F,gBAAgB,OAAO,cAAc,CAAC,GAAG,CAAC;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5C,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;AACtD,QAAQ,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACvG,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACzR,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC3I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnE,oBAAoB,IAAI,EAAE;AAC1B,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,SAAS;AACpC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACtD,oBAAoB,IAAI,EAAE;AAC1B,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,gCAAgC;AAC3D,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;;ACtRZ,MAAC,uBAAuB,GAAG;AACvC,IAAI,KAAK,EAAE;AACX,QAAQ,SAAS,EAAE,GAAG;AACtB,QAAQ,SAAS,EAAE,QAAQ;AAC3B,QAAQ,aAAa,EAAE;AACvB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,SAAS,EAAE,GAAG;AACtB,QAAQ,SAAS,EAAE,QAAQ;AAC3B,QAAQ,aAAa,EAAE,UAAU;AACjC,QAAQ,aAAa,EAAE,cAAc;AACrC,QAAQ,cAAc,EAAE,MAAM;AAC9B,QAAQ,aAAa,EAAE;AACvB,KAAK;AACL,IAAI,cAAc,EAAE;AACpB;;ACRA;AACA;AACA;AACO,MAAM,2BAA2B,CAAC;AACzC;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,QAAQ,CAAC,uGAAuG;AACxH,YAAY,uFAAuF,CAAC;AACpG,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzN,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAC9I,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1N;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE;AAC7F,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;AACnE;AACA;AACA;AACO,MAAM,oBAAoB,CAAC;AAClC;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,QAAQ,CAAC,gGAAgG;AACjH,YAAY,oFAAoF,CAAC;AACjG,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClN,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAC/P;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AAC1D,oBAAoB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;;AC/CnE;AACA;AACA;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-moment-adapter.mjs","sources":["../tmp-esm2022/lib/moment-datetime-adapter.js","../tmp-esm2022/lib/moment-datetime-formats.js","../tmp-esm2022/lib/moment-datetime.module.js","../tmp-esm2022/fundamental-ngx-moment-adapter.js"],"sourcesContent":["import { Inject, Injectable, InjectionToken, isDevMode, LOCALE_ID, Optional } from '@angular/core';\nimport moment from 'moment';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';\nimport * as i0 from \"@angular/core\";\nfunction range(length, mapFn) {\n return Array.from(new Array(length)).map((_, index) => mapFn(index));\n}\nexport const MOMENT_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('MOMENT_DATE_TIME_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY\n});\nexport function MOMENT_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {\n return {\n useUtc: false,\n strict: false\n };\n}\n/**\n * @deprecated Use `DayjsDatetimeAdapter` from `@fundamental-ngx/datetime-adapter` package instead.\n *\n * DatetimeAdapter implementation based on moment.\n *\n * This uses moment.js as a date model instance.\n * It relies on moment implementation for formatting and translation purposes.\n *\n */\nexport class MomentDatetimeAdapter extends DatetimeAdapter {\n constructor(localeId, _options) {\n super();\n this._options = _options;\n this.setLocale(localeId || moment.locale());\n if (isDevMode()) {\n warnOnce('MomentDatetimeAdapter is deprecated. ' +\n 'Use \"DayjsDatetimeAdapter\" from \"@fundamental-ngx/datetime-adapter\" package instead.');\n }\n }\n setLocale(locale) {\n this._momentLocaleData = moment.localeData(locale);\n this._localeData = {\n firstDayOfWeek: this._momentLocaleData.firstDayOfWeek(),\n longMonths: this._momentLocaleData.months(),\n shortMonths: this._momentLocaleData.monthsShort(),\n narrowMonths: this._momentLocaleData.months().map((name) => name.charAt(0)),\n longDaysOfWeek: this._momentLocaleData.weekdays(),\n shortDaysOfWeek: this._momentLocaleData.weekdaysShort(),\n narrowDaysOfWeek: this._momentLocaleData.weekdaysMin()\n };\n super.setLocale(locale);\n }\n getYear(date) {\n return this.clone(date).year();\n }\n getMonth(date) {\n return this.clone(date).month() + 1;\n }\n getDate(date) {\n return this.clone(date).date();\n }\n getDayOfWeek(date) {\n return this.clone(date).day() + 1;\n }\n getHours(date) {\n return this.clone(date).hours();\n }\n getMinutes(date) {\n return this.clone(date).minutes();\n }\n getSeconds(date) {\n return this.clone(date).seconds();\n }\n setHours(date, hours) {\n return this.clone(date).hours(hours);\n }\n setMinutes(date, minutes) {\n return this.clone(date).minutes(minutes);\n }\n setSeconds(date, seconds) {\n return this.clone(date).seconds(seconds);\n }\n getWeekNumber(date) {\n return this.clone(date).isoWeek();\n }\n getMonthNames(style) {\n switch (style) {\n case 'narrow':\n return this._localeData.narrowMonths;\n case 'short':\n return this._localeData.shortMonths;\n case 'long':\n default:\n return this._localeData.longMonths;\n }\n }\n getDateNames() {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n getDayOfWeekNames(style) {\n switch (style) {\n case 'narrow':\n return this._localeData.narrowDaysOfWeek;\n case 'short':\n return this._localeData.shortDaysOfWeek;\n case 'long':\n default:\n return this._localeData.longDaysOfWeek;\n }\n }\n getYearName(date) {\n return this.clone(date).format('YYYY');\n }\n getWeekName(date) {\n return this.clone(date).isoWeek().toLocaleString(this.locale);\n }\n getHourNames({ meridian, twoDigit }) {\n const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';\n const momentDate = this._createMomentDate();\n return range(24, (i) => this.clone(momentDate).hour(i).format(format));\n }\n getMinuteNames({ twoDigit, minuteStep = 1 }) {\n const format = twoDigit ? 'mm' : 'm';\n const momentDate = this._createMomentDate();\n const length = Math.ceil(60 / minuteStep);\n return range(length, (index) => {\n const minute = index * minuteStep;\n return this.clone(momentDate).minute(minute).format(format);\n });\n }\n getSecondNames({ twoDigit }) {\n const format = twoDigit ? 'ss' : 's';\n const momentDate = this._createMomentDate();\n return range(60, (i) => this.clone(momentDate).second(i).format(format));\n }\n // isLower property is responsible for the lower and upper cases of the result\n getDayPeriodNames(isLower = false) {\n const AM = this._momentLocaleData.meridiem(6, 0, isLower);\n const PM = this._momentLocaleData.meridiem(16, 0, isLower);\n return [AM, PM];\n }\n getFirstDayOfWeek() {\n return this._localeData.firstDayOfWeek;\n }\n getNumDaysInMonth(date) {\n return this.clone(date).daysInMonth();\n }\n parse(value, parseFormat = '') {\n if (value && typeof value === 'string') {\n return this._createMomentDate(value, parseFormat, this.locale);\n }\n else if (value instanceof FdDate) {\n // FdDate instance may be incorrectly parsed by Moment.js\n value = value.toString();\n }\n return value ? this._createMomentDate(value).locale(this.locale) : null;\n }\n format(date, displayFormat) {\n if (!date) {\n return '';\n }\n date = this.clone(date);\n if (!this.isValid(date)) {\n throw Error('MomentDatetimeAdapter: Cannot format invalid date.');\n }\n return date.format(displayFormat);\n }\n createDate(year, month, date) {\n if (typeof month === 'number' && (month < 0 || month > 12)) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n if (typeof date === 'number' && date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n const result = this._createMomentDate(typeof month === 'number' && typeof date === 'number'\n ? {\n year,\n month: month !== 0 ? month - 1 : month,\n date\n }\n : `${year}`).locale(this.locale);\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n return result;\n }\n today() {\n return this._createMomentDate().locale(this.locale).startOf('day');\n }\n now() {\n return this._createMomentDate().locale(this.locale);\n }\n addCalendarYears(date, years) {\n return this.clone(date).add({ years });\n }\n addCalendarMonths(date, months) {\n return this.clone(date).add({ months });\n }\n addCalendarDays(date, days) {\n return this.clone(date).add({ days });\n }\n clone(date) {\n if (!date) {\n return moment();\n }\n return date.clone().locale(this.locale);\n }\n datesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2, 'day');\n }\n dateTimesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2);\n }\n isBetween(dateToCheck, startDate, endDate) {\n if (!dateToCheck || !startDate || !endDate) {\n return false;\n }\n return dateToCheck.isBetween(startDate, endDate);\n }\n isValid(date) {\n return !!date?.isValid();\n }\n toIso8601(date) {\n return this.clone(date).toISOString();\n }\n isTimeFormatIncludesDayPeriod(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[aA]/);\n }\n isTimeFormatIncludesHours(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[hH]/);\n }\n isTimeFormatIncludesMinutes(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[m]/);\n }\n isTimeFormatIncludesSeconds(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[s]/);\n }\n /**\n * @hidden\n * _prepareFormat will remove escaped text, and will check for moment localized formats.\n * But it works only with simple long date formats, combined formats will not be handled,\n * for example these will not be handled: 'MM-DD-YYYY LT', 'L LT'.\n */\n _prepareFormat(displayFormat) {\n const format = displayFormat.trim();\n const longDateFormat = this._momentLocaleData._longDateFormat;\n for (const key in longDateFormat) {\n if (Object.prototype.hasOwnProperty.call(longDateFormat, key) && format === key) {\n return longDateFormat[key];\n }\n }\n return format;\n }\n /** @hidden */\n _createMomentDate(date, format, locale) {\n const { strict, useUtc } = this._options || {};\n return useUtc ? moment.utc(date, format, locale, strict) : moment(date, format, locale, strict);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: MOMENT_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapter, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MOMENT_DATE_TIME_ADAPTER_OPTIONS]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21vbWVudC1hZGFwdGVyL3NyYy9saWIvbW9tZW50LWRhdGV0aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBc0YsTUFBTSxRQUFRLENBQUM7QUFFNUcsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxLQUEyQjtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBT0QsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQzlELGtDQUFrQyxFQUNsQztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx3Q0FBd0M7Q0FDcEQsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLHdDQUF3QztJQUNwRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUUsS0FBSztLQUNoQixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQXVCO0lBTzlELFlBQ21DLFFBQWdCLEVBQ2UsUUFBdUM7UUFFckcsS0FBSyxFQUFFLENBQUM7UUFGc0Qs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QUFHLENBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzlFLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsQ0FBQyxJQUFrQixFQUFFLE1BQWtDLEVBQUUsTUFBZTtRQUNyRixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFpQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BHLENBQUM7OEdBalVRLHFCQUFxQixrQkFRTixTQUFTLDZCQUNULGdDQUFnQztrSEFUL0MscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFTRixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGlzRGV2TW9kZSwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCwgeyBMb2NhbGUsIExvbmdEYXRlRm9ybWF0U3BlYywgTW9tZW50LCBNb21lbnRGb3JtYXRTcGVjaWZpY2F0aW9uLCBNb21lbnRJbnB1dCB9IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciwgRmREYXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcblxuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIG1hcEZuOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IEFycmF5KGxlbmd0aCkpLm1hcCgoXywgaW5kZXgpID0+IG1hcEZuKGluZGV4KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9tZW50RGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyB7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICB1c2VVdGM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TW9tZW50RGF0ZXRpbWVBZGFwdGVyT3B0aW9ucz4oXG4gICAgJ01PTUVOVF9EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlNfRkFDVE9SWVxuICAgIH1cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBNT01FTlRfREFURV9USU1FX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IE1vbWVudERhdGV0aW1lQWRhcHRlck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIHVzZVV0YzogZmFsc2UsXG4gICAgICAgIHN0cmljdDogZmFsc2VcbiAgICB9O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgRGF5anNEYXRldGltZUFkYXB0ZXJgIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvZGF0ZXRpbWUtYWRhcHRlcmAgcGFja2FnZSBpbnN0ZWFkLlxuICpcbiAqIERhdGV0aW1lQWRhcHRlciBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBtb21lbnQuXG4gKlxuICogVGhpcyB1c2VzIG1vbWVudC5qcyBhcyBhIGRhdGUgbW9kZWwgaW5zdGFuY2UuXG4gKiBJdCByZWxpZXMgb24gbW9tZW50IGltcGxlbWVudGF0aW9uIGZvciBmb3JtYXR0aW5nIGFuZCB0cmFuc2xhdGlvbiBwdXJwb3Nlcy5cbiAqXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb21lbnREYXRldGltZUFkYXB0ZXIgZXh0ZW5kcyBEYXRldGltZUFkYXB0ZXI8TW9tZW50PiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tb21lbnRMb2NhbGVEYXRhOiBMb2NhbGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xvY2FsZURhdGE6IERhdGVMb2NhbGU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMpIHByaXZhdGUgX29wdGlvbnM/OiBNb21lbnREYXRldGltZUFkYXB0ZXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlSWQgfHwgbW9tZW50LmxvY2FsZSgpKTtcblxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgICAgICdNb21lbnREYXRldGltZUFkYXB0ZXIgaXMgZGVwcmVjYXRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICdVc2UgXCJEYXlqc0RhdGV0aW1lQWRhcHRlclwiIGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2RhdGV0aW1lLWFkYXB0ZXJcIiBwYWNrYWdlIGluc3RlYWQuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZyb21Ob3c/KGRhdGU6IE1vbWVudCk6IHN0cmluZztcblxuICAgIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb21lbnRMb2NhbGVEYXRhID0gbW9tZW50LmxvY2FsZURhdGEobG9jYWxlKTtcblxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IHRoaXMuX21vbWVudExvY2FsZURhdGEuZmlyc3REYXlPZldlZWsoKSxcbiAgICAgICAgICAgIGxvbmdNb250aHM6IHRoaXMuX21vbWVudExvY2FsZURhdGEubW9udGhzKCksXG4gICAgICAgICAgICBzaG9ydE1vbnRoczogdGhpcy5fbW9tZW50TG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxuICAgICAgICAgICAgbmFycm93TW9udGhzOiB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLm1vbnRocygpLm1hcCgobmFtZTogc3RyaW5nKSA9PiBuYW1lLmNoYXJBdCgwKSksXG4gICAgICAgICAgICBsb25nRGF5c09mV2VlazogdGhpcy5fbW9tZW50TG9jYWxlRGF0YS53ZWVrZGF5cygpLFxuICAgICAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcbiAgICAgICAgICAgIG5hcnJvd0RheXNPZldlZWs6IHRoaXMuX21vbWVudExvY2FsZURhdGEud2Vla2RheXNNaW4oKVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIGdldFllYXIoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkueWVhcigpO1xuICAgIH1cblxuICAgIGdldE1vbnRoKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1vbnRoKCkgKyAxO1xuICAgIH1cblxuICAgIGdldERhdGUoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF0ZSgpO1xuICAgIH1cblxuICAgIGdldERheU9mV2VlayhkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5kYXkoKSArIDE7XG4gICAgfVxuXG4gICAgZ2V0SG91cnMoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuaG91cnMoKTtcbiAgICB9XG5cbiAgICBnZXRNaW51dGVzKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRzKGRhdGU6IE1vbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLnNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBzZXRIb3VycyhkYXRlOiBNb21lbnQsIGhvdXJzOiBudW1iZXIpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5ob3Vycyhob3Vycyk7XG4gICAgfVxuXG4gICAgc2V0TWludXRlcyhkYXRlOiBNb21lbnQsIG1pbnV0ZXM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLm1pbnV0ZXMobWludXRlcyk7XG4gICAgfVxuXG4gICAgc2V0U2Vjb25kcyhkYXRlOiBNb21lbnQsIHNlY29uZHM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLnNlY29uZHMoc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgZ2V0V2Vla051bWJlcihkYXRlOiBNb21lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5pc29XZWVrKCk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICAgICAgICBjYXNlICduYXJyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd01vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydE1vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nTW9udGhzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHJhbmdlKDMxLCAoaSkgPT4gdGhpcy5jcmVhdGVEYXRlKDIwMTcsIDAsIGkgKyAxKS5mb3JtYXQoJ0QnKSk7XG4gICAgfVxuXG4gICAgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgICAgY2FzZSAnbmFycm93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dEYXlzT2ZXZWVrO1xuICAgICAgICAgICAgY2FzZSAnc2hvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFllYXJOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmZvcm1hdCgnWVlZWScpO1xuICAgIH1cblxuICAgIGdldFdlZWtOYW1lKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmlzb1dlZWsoKS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgZ2V0SG91ck5hbWVzKHsgbWVyaWRpYW4sIHR3b0RpZ2l0IH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1lcmlkaWFuOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gbWVyaWRpYW4gPyAodHdvRGlnaXQgPyAnaGgnIDogJ2gnKSA6IHR3b0RpZ2l0ID8gJ0hIJyA6ICdIJztcbiAgICAgICAgY29uc3QgbW9tZW50RGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoMjQsIChpKSA9PiB0aGlzLmNsb25lKG1vbWVudERhdGUpLmhvdXIoaSkuZm9ybWF0KGZvcm1hdCkpO1xuICAgIH1cblxuICAgIGdldE1pbnV0ZU5hbWVzKHsgdHdvRGlnaXQsIG1pbnV0ZVN0ZXAgPSAxIH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1pbnV0ZVN0ZXA/OiBudW1iZXIgfSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZm9ybWF0OiBzdHJpbmcgPSB0d29EaWdpdCA/ICdtbScgOiAnbSc7XG4gICAgICAgIGNvbnN0IG1vbWVudERhdGUgPSB0aGlzLl9jcmVhdGVNb21lbnREYXRlKCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguY2VpbCg2MCAvIG1pbnV0ZVN0ZXApO1xuXG4gICAgICAgIHJldHVybiByYW5nZShsZW5ndGgsIChpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWludXRlID0gaW5kZXggKiBtaW51dGVTdGVwO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUobW9tZW50RGF0ZSkubWludXRlKG1pbnV0ZSkuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFNlY29uZE5hbWVzKHsgdHdvRGlnaXQgfTogeyB0d29EaWdpdDogYm9vbGVhbiB9KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmb3JtYXQ6IHN0cmluZyA9IHR3b0RpZ2l0ID8gJ3NzJyA6ICdzJztcbiAgICAgICAgY29uc3QgbW9tZW50RGF0ZSA9IHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKG1vbWVudERhdGUpLnNlY29uZChpKS5mb3JtYXQoZm9ybWF0KSk7XG4gICAgfVxuXG4gICAgLy8gaXNMb3dlciBwcm9wZXJ0eSBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGxvd2VyIGFuZCB1cHBlciBjYXNlcyBvZiB0aGUgcmVzdWx0XG4gICAgZ2V0RGF5UGVyaW9kTmFtZXMoaXNMb3dlciA9IGZhbHNlKTogW3N0cmluZywgc3RyaW5nXSB7XG4gICAgICAgIGNvbnN0IEFNID0gdGhpcy5fbW9tZW50TG9jYWxlRGF0YS5tZXJpZGllbSg2LCAwLCBpc0xvd2VyKTtcbiAgICAgICAgY29uc3QgUE0gPSB0aGlzLl9tb21lbnRMb2NhbGVEYXRhLm1lcmlkaWVtKDE2LCAwLCBpc0xvd2VyKTtcblxuICAgICAgICByZXR1cm4gW0FNLCBQTV07XG4gICAgfVxuXG4gICAgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuZmlyc3REYXlPZldlZWs7XG4gICAgfVxuXG4gICAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogTW9tZW50Rm9ybWF0U3BlY2lmaWNhdGlvbiA9ICcnKTogTW9tZW50IHwgbnVsbCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlTW9tZW50RGF0ZSh2YWx1ZSwgcGFyc2VGb3JtYXQsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZkRGF0ZSkge1xuICAgICAgICAgICAgLy8gRmREYXRlIGluc3RhbmNlIG1heSBiZSBpbmNvcnJlY3RseSBwYXJzZWQgYnkgTW9tZW50LmpzXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLl9jcmVhdGVNb21lbnREYXRlKHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmb3JtYXQoZGF0ZTogTW9tZW50LCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGUgPSB0aGlzLmNsb25lKGRhdGUpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignTW9tZW50RGF0ZXRpbWVBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcbiAgICB9XG5cbiAgICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIGRhdGU/OiBudW1iZXIpOiBNb21lbnQge1xuICAgICAgICBpZiAodHlwZW9mIG1vbnRoID09PSAnbnVtYmVyJyAmJiAobW9udGggPCAwIHx8IG1vbnRoID4gMTIpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCBcIiR7bW9udGh9XCIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJyAmJiBkYXRlIDwgMSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIi4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVNb21lbnREYXRlKFxuICAgICAgICAgICAgdHlwZW9mIG1vbnRoID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiBtb250aCAhPT0gMCA/IG1vbnRoIC0gMSA6IG1vbnRoLFxuICAgICAgICAgICAgICAgICAgICAgIGRhdGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IGAke3llYXJ9YFxuICAgICAgICApLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG5cbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdG9kYXkoKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZU1vbWVudERhdGUoKS5sb2NhbGUodGhpcy5sb2NhbGUpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cblxuICAgIG5vdygpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlTW9tZW50RGF0ZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBNb21lbnQsIHllYXJzOiBudW1iZXIpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZShkYXRlKS5hZGQoeyB5ZWFycyB9KTtcbiAgICB9XG5cbiAgICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBNb21lbnQsIG1vbnRoczogbnVtYmVyKTogTW9tZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoZGF0ZSkuYWRkKHsgbW9udGhzIH0pO1xuICAgIH1cblxuICAgIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBNb21lbnQsIGRheXM6IG51bWJlcik6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLmFkZCh7IGRheXMgfSk7XG4gICAgfVxuXG4gICAgY2xvbmUoZGF0ZTogTW9tZW50KTogTW9tZW50IHtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZS5jbG9uZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgZGF0ZXNFcXVhbChkYXRlMTogTW9tZW50LCBkYXRlMjogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZTEuaXNTYW1lKGRhdGUyLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgZGF0ZVRpbWVzRXF1YWwoZGF0ZTE6IE1vbWVudCwgZGF0ZTI6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUxLmlzU2FtZShkYXRlMik7XG4gICAgfVxuXG4gICAgaXNCZXR3ZWVuKGRhdGVUb0NoZWNrOiBNb21lbnQsIHN0YXJ0RGF0ZTogTW9tZW50LCBlbmREYXRlOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlVG9DaGVjayB8fCAhc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZVRvQ2hlY2suaXNCZXR3ZWVuKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZChkYXRlOiBOdWxsYWJsZTxNb21lbnQ+KTogZGF0ZSBpcyBNb21lbnQge1xuICAgICAgICByZXR1cm4gISFkYXRlPy5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgdG9Jc284NjAxKGRhdGU6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNEYXlQZXJpb2QoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bYUFdLyk7XG4gICAgfVxuXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNIb3VycyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1toSF0vKTtcbiAgICB9XG5cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc01pbnV0ZXMoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bbV0vKTtcbiAgICB9XG5cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc1NlY29uZHMoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bc10vKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogX3ByZXBhcmVGb3JtYXQgd2lsbCByZW1vdmUgZXNjYXBlZCB0ZXh0LCBhbmQgd2lsbCBjaGVjayBmb3IgbW9tZW50IGxvY2FsaXplZCBmb3JtYXRzLlxuICAgICAqIEJ1dCBpdCB3b3JrcyBvbmx5IHdpdGggc2ltcGxlIGxvbmcgZGF0ZSBmb3JtYXRzLCBjb21iaW5lZCBmb3JtYXRzIHdpbGwgbm90IGJlIGhhbmRsZWQsXG4gICAgICogZm9yIGV4YW1wbGUgdGhlc2Ugd2lsbCBub3QgYmUgaGFuZGxlZDogJ01NLURELVlZWVkgTFQnLCAnTCBMVCcuXG4gICAgICovXG4gICAgX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gZGlzcGxheUZvcm1hdC50cmltKCk7XG4gICAgICAgIGNvbnN0IGxvbmdEYXRlRm9ybWF0OiBMb25nRGF0ZUZvcm1hdFNwZWMgPSAodGhpcy5fbW9tZW50TG9jYWxlRGF0YSBhcyBhbnkpLl9sb25nRGF0ZUZvcm1hdDtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBsb25nRGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsb25nRGF0ZUZvcm1hdCwga2V5KSAmJiBmb3JtYXQgPT09IGtleSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb25nRGF0ZUZvcm1hdFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jcmVhdGVNb21lbnREYXRlKGRhdGU/OiBNb21lbnRJbnB1dCwgZm9ybWF0PzogTW9tZW50Rm9ybWF0U3BlY2lmaWNhdGlvbiwgbG9jYWxlPzogc3RyaW5nKTogTW9tZW50IHtcbiAgICAgICAgY29uc3QgeyBzdHJpY3QsIHVzZVV0YyB9OiBNb21lbnREYXRldGltZUFkYXB0ZXJPcHRpb25zID0gdGhpcy5fb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICByZXR1cm4gdXNlVXRjID8gbW9tZW50LnV0YyhkYXRlLCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSA6IG1vbWVudChkYXRlLCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBEYXRlTG9jYWxlIHtcbiAgICBmaXJzdERheU9mV2VlazogbnVtYmVyO1xuICAgIGxvbmdNb250aHM6IHN0cmluZ1tdO1xuICAgIHNob3J0TW9udGhzOiBzdHJpbmdbXTtcbiAgICBuYXJyb3dNb250aHM6IHN0cmluZ1tdO1xuICAgIGxvbmdEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbiAgICBzaG9ydERheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgIG5hcnJvd0RheXNPZldlZWs6IHN0cmluZ1tdO1xufVxuIl19","export const MOMENT_DATETIME_FORMATS = {\n parse: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A'\n },\n display: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A',\n dateA11yLabel: 'YYYY MMMM DD',\n monthA11yLabel: 'MMMM',\n yearA11yLabel: 'YYYY'\n },\n rangeDelimiter: ' - '\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLWZvcm1hdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21vbWVudC1hZGFwdGVyL3NyYy9saWIvbW9tZW50LWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9CO0lBQ3BELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLFFBQVE7UUFDbkIsYUFBYSxFQUFFLFVBQVU7S0FDNUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBNT01FTlRfREFURVRJTUVfRk9STUFUUzogRGF0ZVRpbWVGb3JtYXRzID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ2wnLFxuICAgICAgICB0aW1lSW5wdXQ6ICdoOm1tIEEnLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnbCBoOm1tIEEnXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ2wnLFxuICAgICAgICB0aW1lSW5wdXQ6ICdoOm1tIEEnLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnbCBoOm1tIEEnLFxuXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZIE1NTU0gREQnLFxuICAgICAgICBtb250aEExMXlMYWJlbDogJ01NTU0nLFxuICAgICAgICB5ZWFyQTExeUxhYmVsOiAnWVlZWSdcbiAgICB9LFxuICAgIHJhbmdlRGVsaW1pdGVyOiAnIC0gJ1xufTtcbiJdfQ==","import { NgModule } from '@angular/core';\nimport { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { MomentDatetimeAdapter } from './moment-datetime-adapter';\nimport { MOMENT_DATETIME_FORMATS } from './moment-datetime-formats';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/datetime\";\n/**\n * @deprecated Use `DatetimeAdapterRawModule` from `@fundamental-ngx/datetime-adapter` package instead.\n */\nexport class MomentDatetimeAdapterModule {\n /** @hidden */\n constructor(_adapter) {\n this._adapter = _adapter;\n warnOnce('MomentDatetimeAdapterModule is deprecated since version 0.20.0 and will be removed in future release.' +\n ' Use DatetimeAdapterRawModule from @fundamental-ngx/datetime-adapter package instead.');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, deps: [{ token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, providers: [{ provide: DatetimeAdapter, useClass: MomentDatetimeAdapter }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeAdapterModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [{ provide: DatetimeAdapter, useClass: MomentDatetimeAdapter }]\n }]\n }], ctorParameters: () => [{ type: i1.DatetimeAdapter }] });\n/**\n * @deprecated Use `DatetimeAdapterModule` from `@fundamental-ngx/datetime-adapter` package instead.\n */\nexport class MomentDatetimeModule {\n /** @hidden */\n constructor(_adapter) {\n this._adapter = _adapter;\n warnOnce('MomentDatetimeModule is deprecated since version 0.20.0 and will be removed in future release.' +\n ' Use DatetimeAdapterModule from @fundamental-ngx/datetime-adapter package instead.');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, deps: [{ token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, imports: [MomentDatetimeAdapterModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: MOMENT_DATETIME_FORMATS }], imports: [MomentDatetimeAdapterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: MomentDatetimeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MomentDatetimeAdapterModule],\n providers: [{ provide: DATE_TIME_FORMATS, useValue: MOMENT_DATETIME_FORMATS }]\n }]\n }], ctorParameters: () => [{ type: i1.DatetimeAdapter }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWRhdGV0aW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9tZW50LWFkYXB0ZXIvc3JjL2xpYi9tb21lbnQtZGF0ZXRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRXBFOztHQUVHO0FBSUgsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxjQUFjO0lBQ2QsWUFBb0IsUUFBK0I7UUFBL0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFDL0MsUUFBUSxDQUNKLHVHQUF1RztZQUNuRyx1RkFBdUYsQ0FDOUYsQ0FBQztJQUNOLENBQUM7OEdBUFEsMkJBQTJCOytHQUEzQiwyQkFBMkI7K0dBQTNCLDJCQUEyQixhQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQzs7MkZBRWpFLDJCQUEyQjtrQkFIdkMsUUFBUTttQkFBQztvQkFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7aUJBQzdFOztBQVdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixjQUFjO0lBQ2QsWUFBb0IsUUFBK0I7UUFBL0IsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFDL0MsUUFBUSxDQUNKLGdHQUFnRztZQUM1RixvRkFBb0YsQ0FDM0YsQ0FBQztJQUNOLENBQUM7OEdBUFEsb0JBQW9COytHQUFwQixvQkFBb0IsWUFqQnBCLDJCQUEyQjsrR0FpQjNCLG9CQUFvQixhQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLFlBRHBFLDJCQUEyQjs7MkZBRzVCLG9CQUFvQjtrQkFKaEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE1vbWVudERhdGV0aW1lQWRhcHRlciB9IGZyb20gJy4vbW9tZW50LWRhdGV0aW1lLWFkYXB0ZXInO1xuaW1wb3J0IHsgTU9NRU5UX0RBVEVUSU1FX0ZPUk1BVFMgfSBmcm9tICcuL21vbWVudC1kYXRldGltZS1mb3JtYXRzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYERhdGV0aW1lQWRhcHRlclJhd01vZHVsZWAgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyYCBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEYXRldGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBNb21lbnREYXRldGltZUFkYXB0ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgTW9tZW50RGF0ZXRpbWVBZGFwdGVyTW9kdWxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEYXRlPikge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdNb21lbnREYXRldGltZUFkYXB0ZXJNb2R1bGUgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuMjAuMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSByZWxlYXNlLicgK1xuICAgICAgICAgICAgICAgICcgVXNlIERhdGV0aW1lQWRhcHRlclJhd01vZHVsZSBmcm9tIEBmdW5kYW1lbnRhbC1uZ3gvZGF0ZXRpbWUtYWRhcHRlciBwYWNrYWdlIGluc3RlYWQuJ1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYERhdGV0aW1lQWRhcHRlck1vZHVsZWAgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyYCBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW01vbWVudERhdGV0aW1lQWRhcHRlck1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEQVRFX1RJTUVfRk9STUFUUywgdXNlVmFsdWU6IE1PTUVOVF9EQVRFVElNRV9GT1JNQVRTIH1dXG59KVxuZXhwb3J0IGNsYXNzIE1vbWVudERhdGV0aW1lTW9kdWxlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEYXRlPikge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdNb21lbnREYXRldGltZU1vZHVsZSBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC4yMC4wIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHJlbGVhc2UuJyArXG4gICAgICAgICAgICAgICAgJyBVc2UgRGF0ZXRpbWVBZGFwdGVyTW9kdWxlIGZyb20gQGZ1bmRhbWVudGFsLW5neC9kYXRldGltZS1hZGFwdGVyIHBhY2thZ2UgaW5zdGVhZC4nXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LW1vbWVudC1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9tb21lbnQtYWRhcHRlci9zcmMvZnVuZGFtZW50YWwtbmd4LW1vbWVudC1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -48,8 +48,9 @@ declare class MomentDatetimeAdapter extends DatetimeAdapter<Moment> {
48
48
  twoDigit: boolean;
49
49
  meridian: boolean;
50
50
  }): string[];
51
- getMinuteNames({ twoDigit }: {
51
+ getMinuteNames({ twoDigit, minuteStep }: {
52
52
  twoDigit: boolean;
53
+ minuteStep?: number;
53
54
  }): string[];
54
55
  getSecondNames({ twoDigit }: {
55
56
  twoDigit: boolean;
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/moment-adapter",
3
- "version": "0.58.0-rc.8",
3
+ "version": "0.58.0-rc.81",
4
4
  "description": "Datetime adapter for SAP Fundamentals, based on Moment.js package",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://sap.github.io/fundamental-ngx",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/SAP/fundamental-ngx"
9
+ "url": "git+https://github.com/SAP/fundamental-ngx.git"
10
10
  },
11
11
  "peerDependencies": {
12
- "@fundamental-ngx/core": "0.58.0-rc.8",
12
+ "@fundamental-ngx/core": "0.58.0-rc.81",
13
13
  "moment": "^2.18.1"
14
14
  },
15
15
  "ng-add": {