@fundamental-ngx/datetime-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.
|
@@ -156,10 +156,14 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
|
|
|
156
156
|
return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));
|
|
157
157
|
}
|
|
158
158
|
/** Get minute names */
|
|
159
|
-
getMinuteNames({ twoDigit }) {
|
|
159
|
+
getMinuteNames({ twoDigit, minuteStep = 1 }) {
|
|
160
160
|
const format = twoDigit ? 'mm' : 'm';
|
|
161
161
|
const dayjsDate = this._createDayjsDate();
|
|
162
|
-
|
|
162
|
+
const length = Math.ceil(60 / minuteStep);
|
|
163
|
+
return range(length, (index) => {
|
|
164
|
+
const minute = index * minuteStep;
|
|
165
|
+
return this.clone(dayjsDate).minute(minute).format(format);
|
|
166
|
+
});
|
|
163
167
|
}
|
|
164
168
|
/** Get second names */
|
|
165
169
|
getSecondNames({ twoDigit }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-datetime-adapter.mjs","sources":["../tmp-esm2022/lib/dayjs-datetime-adapter.js","../tmp-esm2022/lib/dayjs-datetime-formats.js","../tmp-esm2022/lib/dayjs-datetime-adapter.module.js","../tmp-esm2022/fundamental-ngx-datetime-adapter.js"],"sourcesContent":["import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport localeData from 'dayjs/plugin/localeData';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport utc from 'dayjs/plugin/utc';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\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 DAYJS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('DAYJS_DATE_TIME_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY\n});\n/** @hidden */\nexport function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {\n return {\n useUtc: false,\n strict: false\n };\n}\n/**\n * DatetimeAdapter implementation based on dayjs.\n *\n * This uses dayjs as a date model instance.\n * It relies on dayjs implementation for formatting and translation purposes.\n */\nexport class DayjsDatetimeAdapter extends DatetimeAdapter {\n /** @hidden */\n constructor(localeId, _options) {\n super();\n this._options = _options;\n dayjs.extend(localeData);\n dayjs.extend(weekOfYear);\n dayjs.extend(utc);\n dayjs.extend(isBetween);\n dayjs.extend(objectSupport);\n dayjs.extend(localizedFormat);\n dayjs.extend(customParseFormat);\n this.setLocale(localeId || dayjs.locale());\n }\n /** Set locale */\n setLocale(locale) {\n if (locale.toLowerCase() === 'en-us') {\n // Handle English locale name as it's a default one and it is different\n locale = 'en';\n }\n dayjs.locale(locale);\n if (dayjs.locale() !== locale) {\n throw new Error(`Failed to load locale ${locale}. ` +\n 'Make sure it exists and is preloaded. See the imports at the top of the example file at ' +\n 'https://sap.github.io/fundamental-ngx/#/core/dayjs-datetime-adapter' +\n 'List of supported locales can be found here: https://github.com/iamkun/dayjs/tree/dev/src/locale.');\n }\n this._dayjsLocaleData = dayjs.localeData();\n this._localeData = {\n firstDayOfWeek: this._dayjsLocaleData.firstDayOfWeek(),\n longMonths: this._dayjsLocaleData.months(),\n shortMonths: this._dayjsLocaleData.monthsShort(),\n narrowMonths: this._dayjsLocaleData.months().map((name) => name.charAt(0)),\n longDaysOfWeek: this._dayjsLocaleData.weekdays(),\n shortDaysOfWeek: this._dayjsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: this._dayjsLocaleData.weekdaysMin()\n };\n super.setLocale(locale);\n }\n /** Get year */\n getYear(date) {\n return date.year();\n }\n /** Get month */\n getMonth(date) {\n return date.month() + 1;\n }\n /** Get date */\n getDate(date) {\n return date.date();\n }\n /** Get day of the week */\n getDayOfWeek(date) {\n return date.day() + 1;\n }\n /** Get hours */\n getHours(date) {\n return date.hour();\n }\n /** Get minutes */\n getMinutes(date) {\n return date.minute();\n }\n /** Get seconds */\n getSeconds(date) {\n return date.second();\n }\n /** Set hours in date object */\n setHours(date, hours) {\n return date.hour(hours);\n }\n /** Set minutes in date object */\n setMinutes(date, minutes) {\n return date.minute(minutes);\n }\n /** Set seconds in date object */\n setSeconds(date, seconds) {\n return date.second(seconds);\n }\n /** Get week number */\n getWeekNumber(date) {\n return date.week();\n }\n /** Get months names */\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 /** Get date names */\n getDateNames() {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n /** Get days of week names */\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 /** Get year name */\n getYearName(date) {\n return date.format('YYYY');\n }\n /** Get week name */\n getWeekName(date) {\n return date.week().toLocaleString(this.locale);\n }\n /** Get hour names */\n getHourNames({ meridian, twoDigit }) {\n const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';\n const dayjsDate = this._createDayjsDate();\n return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));\n }\n /** Get minute names */\n getMinuteNames({ twoDigit }) {\n const format = twoDigit ? 'mm' : 'm';\n const dayjsDate = this._createDayjsDate();\n return range(60, (i) => this.clone(dayjsDate).minute(i).format(format));\n }\n /** Get second names */\n getSecondNames({ twoDigit }) {\n const format = twoDigit ? 'ss' : 's';\n const dayjsDate = this._createDayjsDate();\n return range(60, (i) => this.clone(dayjsDate).second(i).format(format));\n }\n /**\n * Get day period names\n * @param isLower responsible for the lower and upper cases of the result\n */\n getDayPeriodNames(isLower = false) {\n const AM = this._dayjsLocaleData.meridiem?.(6, 0, isLower) ?? (isLower ? 'am' : 'AM');\n const PM = this._dayjsLocaleData.meridiem?.(16, 0, isLower) ?? (isLower ? 'pm' : 'PM');\n return [AM, PM];\n }\n /** Get first day of the week */\n getFirstDayOfWeek() {\n return this._localeData.firstDayOfWeek;\n }\n /** Get number of days in the month */\n getNumDaysInMonth(date) {\n return date.daysInMonth();\n }\n /** Try to parse a string to a date object */\n parse(value, parseFormat = '') {\n if (value && typeof value === 'string') {\n return this._createDayjsDate(value, parseFormat);\n }\n else if (value instanceof FdDate) {\n // FdDate instance may be incorrectly parsed by DayJS\n value = value.toString();\n }\n return value ? this._createDayjsDate(value).locale(this.locale) : null;\n }\n /** Format a date as a string */\n format(date, displayFormat) {\n if (!date) {\n return '';\n }\n if (!this.isValid(date)) {\n throw Error('DayjsDateTimeAdapter: Cannot format invalid date.');\n }\n return date.locale(dayjs.locale()).format(displayFormat);\n }\n /** Create date object from values */\n createDate(year, month, date) {\n const result = this._createDayjsDate(typeof month === 'number' && typeof date === 'number' ? new Date(year, month - 1, date) : `${year}`, undefined, true);\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\" and year \"${year}\".`);\n }\n return result;\n }\n /** Get today */\n today() {\n return this._createDayjsDate().locale(this.locale).startOf('day');\n }\n /** Get now */\n now() {\n return this._createDayjsDate().locale(this.locale);\n }\n /** Add years to date */\n addCalendarYears(date, years) {\n return date.add(years, 'year');\n }\n /** Add months to date */\n addCalendarMonths(date, months) {\n return date.add(months, 'month');\n }\n /** Add days to date */\n addCalendarDays(date, days) {\n return date.add(days, 'day');\n }\n /** Clone date */\n clone(date) {\n if (!date) {\n return date;\n }\n if (this.locale) {\n return date.clone().locale(this.locale);\n }\n return date.clone();\n }\n /** Compare if dates are equal */\n datesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n // Since date may come from `createDate` method which uses `local` time, we need to convert both dates to the same timezone.\n return date1.local().isSame(date2.local(), 'day');\n }\n /** Compare if dates and time are equal */\n dateTimesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2);\n }\n /** Check if date is in range */\n isBetween(dateToCheck, startDate, endDate) {\n if (!dateToCheck || !startDate || !endDate) {\n return false;\n }\n return dateToCheck.isBetween(startDate, endDate);\n }\n /** Check if date is valid date object */\n isValid(date) {\n return !!date?.isValid();\n }\n /** Convert date to ISO8601 string */\n toIso8601(date) {\n return date.toISOString();\n }\n /** Check if time format includes day period */\n isTimeFormatIncludesDayPeriod(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[aA]/);\n }\n /** Check if time format includes hours */\n isTimeFormatIncludesHours(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[hH]/);\n }\n /** Check if time format includes minutes */\n isTimeFormatIncludesMinutes(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[m]/);\n }\n /** Check if time format includes seconds */\n isTimeFormatIncludesSeconds(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[s]/);\n }\n /**\n * @hidden\n * will attempt to parse longDataFormat (e.g. \"L\", \"LT\") and convert it to simple one.\n */\n _prepareFormat(displayFormat) {\n displayFormat = displayFormat.trim();\n try {\n const formats = dayjs.Ls[dayjs.locale()].formats;\n // this is the regular expression to parse format taken from dayjs repo\n // https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/utils.js\n return displayFormat.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => a || formats[b] || displayFormat);\n }\n catch {\n return displayFormat;\n }\n }\n /** @hidden */\n _createDayjsDate(date, format, ignoreUtc = false) {\n const { strict, useUtc } = this._options || {};\n const method = useUtc && !ignoreUtc ? dayjs.utc : dayjs;\n if (typeof date === 'string' && format) {\n const fallbackFormats = [\n format, // original\n format.replace(/ ?[Hh]:?mm[aA]?/, ''), // remove time\n format.replace(/ ?[Hh]:?mm/, ''), // remove time (no meridiem),\n 'L',\n dayjs.Ls[dayjs.locale()].formats['L'],\n 'DD/MM/YYYY',\n 'YYYY-MM-DD'\n ];\n for (const f of fallbackFormats) {\n const tryParsed = method(date, f, strict);\n if (tryParsed.isValid()) {\n return tryParsed;\n }\n }\n }\n const parsed = method(date, format, strict);\n return parsed;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_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: DayjsDatetimeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapter, 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: [DAYJS_DATE_TIME_ADAPTER_OPTIONS]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sZUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBR2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxLQUEyQjtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBT0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQzdELGlDQUFpQyxFQUNqQztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7Q0FDbkQsQ0FDSixDQUFDO0FBRUYsY0FBYztBQUNkLE1BQU0s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QUssUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLE1BQU0sZUFBZSxHQUFHO2dCQUNwQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsRUFBRSxjQUFjO2dCQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsRUFBRSw2QkFBNkI7Z0JBQy9ELEdBQUc7Z0JBQ0gsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNyQyxZQUFZO2dCQUNaLFlBQVk7YUFDZixDQUFDO1lBRUYsS0FBSyxNQUFNLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sU0FBUyxDQUFDO2dCQUNyQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQXRZUSxvQkFBb0Isa0JBU0wsU0FBUyw2QkFDVCwrQkFBK0I7a0hBVjlDLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBVUYsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxTQUFTOzswQkFDNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBMT0NBTEVfSUQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMsIHsgQ29uZmlnVHlwZSwgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcbmltcG9ydCBpc0JldHdlZW4gZnJvbSAnZGF5anMvcGx1Z2luL2lzQmV0d2Vlbic7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQgbG9jYWxpemVkRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQnO1xuaW1wb3J0IG9iamVjdFN1cHBvcnQgZnJvbSAnZGF5anMvcGx1Z2luL29iamVjdFN1cHBvcnQnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcbmltcG9ydCB3ZWVrT2ZZZWFyIGZyb20gJ2RheWpzL3BsdWdpbi93ZWVrT2ZZZWFyJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEYXRldGltZUFkYXB0ZXIsIEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmZ1bmN0aW9uIHJhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCBtYXBGbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBBcnJheShsZW5ndGgpKS5tYXAoKF8sIGluZGV4KSA9PiBtYXBGbihpbmRleCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyB7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICB1c2VVdGM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnM+KFxuICAgICdEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZXG4gICAgfVxuKTtcblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUlkoKTogRGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VVdGM6IGZhbHNlLFxuICAgICAgICBzdHJpY3Q6IGZhbHNlXG4gICAgfTtcbn1cblxuLyoqXG4gKiBEYXRldGltZUFkYXB0ZXIgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gZGF5anMuXG4gKlxuICogVGhpcyB1c2VzIGRheWpzIGFzIGEgZGF0ZSBtb2RlbCBpbnN0YW5jZS5cbiAqIEl0IHJlbGllcyBvbiBkYXlqcyBpbXBsZW1lbnRhdGlvbiBmb3IgZm9ybWF0dGluZyBhbmQgdHJhbnNsYXRpb24gcHVycG9zZXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXlqc0RhdGV0aW1lQWRhcHRlciBleHRlbmRzIERhdGV0aW1lQWRhcHRlcjxEYXlqcz4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGF5anNMb2NhbGVEYXRhOiBkYXlqcy5HbG9iYWxMb2NhbGVEYXRhUmV0dXJuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sb2NhbGVEYXRhOiBEYXRlTG9jYWxlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9ucz86IERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9uc1xuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKHdlZWtPZlllYXIpO1xuICAgICAgICBkYXlqcy5leHRlbmQodXRjKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG4gICAgICAgIGRheWpzLmV4dGVuZChvYmplY3RTdXBwb3J0KTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsaXplZEZvcm1hdCk7XG4gICAgICAgIGRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XG5cbiAgICAgICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlSWQgfHwgZGF5anMubG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZW4gKi9cbiAgICBmcm9tTm93PyhkYXRlOiBkYXlqcy5EYXlqcyk6IHN0cmluZztcblxuICAgIC8qKiBTZXQgbG9jYWxlICovXG4gICAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChsb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gJ2VuLXVzJykge1xuICAgICAgICAgICAgLy8gSGFuZGxlIEVuZ2xpc2ggbG9jYWxlIG5hbWUgYXMgaXQncyBhIGRlZmF1bHQgb25lIGFuZCBpdCBpcyBkaWZmZXJlbnRcbiAgICAgICAgICAgIGxvY2FsZSA9ICdlbic7XG4gICAgICAgIH1cbiAgICAgICAgZGF5anMubG9jYWxlKGxvY2FsZSk7XG5cbiAgICAgICAgaWYgKGRheWpzLmxvY2FsZSgpICE9PSBsb2NhbGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGxvYWQgbG9jYWxlICR7bG9jYWxlfS4gYCArXG4gICAgICAgICAgICAgICAgICAgICdNYWtlIHN1cmUgaXQgZXhpc3RzIGFuZCBpcyBwcmVsb2FkZWQuIFNlZSB0aGUgaW1wb3J0cyBhdCB0aGUgdG9wIG9mIHRoZSBleGFtcGxlIGZpbGUgYXQgJyArXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtbmd4LyMvY29yZS9kYXlqcy1kYXRldGltZS1hZGFwdGVyJyArXG4gICAgICAgICAgICAgICAgICAgICdMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vaWFta3VuL2RheWpzL3RyZWUvZGV2L3NyYy9sb2NhbGUuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RheWpzTG9jYWxlRGF0YSA9IGRheWpzLmxvY2FsZURhdGEoKTtcblxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5maXJzdERheU9mV2VlaygpLFxuICAgICAgICAgICAgbG9uZ01vbnRoczogdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1vbnRocygpLFxuICAgICAgICAgICAgc2hvcnRNb250aHM6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxuICAgICAgICAgICAgbmFycm93TW9udGhzOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEubW9udGhzKCkubWFwKChuYW1lOiBzdHJpbmcpID0+IG5hbWUuY2hhckF0KDApKSxcbiAgICAgICAgICAgIGxvbmdEYXlzT2ZXZWVrOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEud2Vla2RheXMoKSxcbiAgICAgICAgICAgIHNob3J0RGF5c09mV2VlazogdGhpcy5fZGF5anNMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcbiAgICAgICAgICAgIG5hcnJvd0RheXNPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS53ZWVrZGF5c01pbigpXG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIuc2V0TG9jYWxlKGxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB5ZWFyICovXG4gICAgZ2V0WWVhcihkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLnllYXIoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1vbnRoICovXG4gICAgZ2V0TW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5tb250aCgpICsgMTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGRhdGUgKi9cbiAgICBnZXREYXRlKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgZGF5IG9mIHRoZSB3ZWVrICovXG4gICAgZ2V0RGF5T2ZXZWVrKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF5KCkgKyAxO1xuICAgIH1cblxuICAgIC8qKiBHZXQgaG91cnMgKi9cbiAgICBnZXRIb3VycyhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLmhvdXIoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1pbnV0ZXMgKi9cbiAgICBnZXRNaW51dGVzKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUubWludXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBzZWNvbmRzICovXG4gICAgZ2V0U2Vjb25kcyhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLnNlY29uZCgpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaG91cnMgaW4gZGF0ZSBvYmplY3QgKi9cbiAgICBzZXRIb3VycyhkYXRlOiBEYXlqcywgaG91cnM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuaG91cihob3Vycyk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBtaW51dGVzIGluIGRhdGUgb2JqZWN0ICovXG4gICAgc2V0TWludXRlcyhkYXRlOiBEYXlqcywgbWludXRlczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5taW51dGUobWludXRlcyk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBzZWNvbmRzIGluIGRhdGUgb2JqZWN0ICovXG4gICAgc2V0U2Vjb25kcyhkYXRlOiBEYXlqcywgc2Vjb25kczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5zZWNvbmQoc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB3ZWVrIG51bWJlciAqL1xuICAgIGdldFdlZWtOdW1iZXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS53ZWVrKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBtb250aHMgbmFtZXMgKi9cbiAgICBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ25hcnJvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93TW9udGhzO1xuICAgICAgICAgICAgY2FzZSAnc2hvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0TW9udGhzO1xuICAgICAgICAgICAgY2FzZSAnbG9uZyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdNb250aHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0IGRhdGUgbmFtZXMgKi9cbiAgICBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gcmFuZ2UoMzEsIChpKSA9PiB0aGlzLmNyZWF0ZURhdGUoMjAxNywgMCwgaSArIDEpLmZvcm1hdCgnRCcpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGRheXMgb2Ygd2VlayBuYW1lcyAqL1xuICAgIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ25hcnJvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93RGF5c09mV2VlaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydERheXNPZldlZWs7XG4gICAgICAgICAgICBjYXNlICdsb25nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubG9uZ0RheXNPZldlZWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0IHllYXIgbmFtZSAqL1xuICAgIGdldFllYXJOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KCdZWVlZJyk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB3ZWVrIG5hbWUgKi9cbiAgICBnZXRXZWVrTmFtZShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlLndlZWsoKS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBob3VyIG5hbWVzICovXG4gICAgZ2V0SG91ck5hbWVzKHsgbWVyaWRpYW4sIHR3b0RpZ2l0IH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1lcmlkaWFuOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gbWVyaWRpYW4gPyAodHdvRGlnaXQgPyAnaGgnIDogJ2gnKSA6IHR3b0RpZ2l0ID8gJ0hIJyA6ICdIJztcbiAgICAgICAgY29uc3QgZGF5anNEYXRlID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlKDI0LCAoaSkgPT4gdGhpcy5jbG9uZShkYXlqc0RhdGUpLmhvdXIoaSkuZm9ybWF0KGZvcm1hdCkpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbWludXRlIG5hbWVzICovXG4gICAgZ2V0TWludXRlTmFtZXMoeyB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gdHdvRGlnaXQgPyAnbW0nIDogJ20nO1xuICAgICAgICBjb25zdCBkYXlqc0RhdGUgPSB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKGRheWpzRGF0ZSkubWludXRlKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHNlY29uZCBuYW1lcyAqL1xuICAgIGdldFNlY29uZE5hbWVzKHsgdHdvRGlnaXQgfTogeyB0d29EaWdpdDogYm9vbGVhbiB9KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmb3JtYXQ6IHN0cmluZyA9IHR3b0RpZ2l0ID8gJ3NzJyA6ICdzJztcbiAgICAgICAgY29uc3QgZGF5anNEYXRlID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlKDYwLCAoaSkgPT4gdGhpcy5jbG9uZShkYXlqc0RhdGUpLnNlY29uZChpKS5mb3JtYXQoZm9ybWF0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEdldCBkYXkgcGVyaW9kIG5hbWVzXG4gICAgICogQHBhcmFtIGlzTG93ZXIgcmVzcG9uc2libGUgZm9yIHRoZSBsb3dlciBhbmQgdXBwZXIgY2FzZXMgb2YgdGhlIHJlc3VsdFxuICAgICAqL1xuICAgIGdldERheVBlcmlvZE5hbWVzKGlzTG93ZXIgPSBmYWxzZSk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICAgICAgICBjb25zdCBBTSA9IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tZXJpZGllbT8uKDYsIDAsIGlzTG93ZXIpID8/IChpc0xvd2VyID8gJ2FtJyA6ICdBTScpO1xuICAgICAgICBjb25zdCBQTSA9IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tZXJpZGllbT8uKDE2LCAwLCBpc0xvd2VyKSA/PyAoaXNMb3dlciA/ICdwbScgOiAnUE0nKTtcblxuICAgICAgICByZXR1cm4gW0FNLCBQTV07XG4gICAgfVxuXG4gICAgLyoqIEdldCBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKi9cbiAgICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcbiAgICB9XG5cbiAgICAvKiogR2V0IG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCAqL1xuICAgIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICAvKiogVHJ5IHRvIHBhcnNlIGEgc3RyaW5nIHRvIGEgZGF0ZSBvYmplY3QgKi9cbiAgICBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nID0gJycpOiBEYXlqcyB8IG51bGwge1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZURheWpzRGF0ZSh2YWx1ZSwgcGFyc2VGb3JtYXQpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmREYXRlKSB7XG4gICAgICAgICAgICAvLyBGZERhdGUgaW5zdGFuY2UgbWF5IGJlIGluY29ycmVjdGx5IHBhcnNlZCBieSBEYXlKU1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5fY3JlYXRlRGF5anNEYXRlKHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKiogRm9ybWF0IGEgZGF0ZSBhcyBhIHN0cmluZyAqL1xuICAgIGZvcm1hdChkYXRlOiBEYXlqcywgZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0RheWpzRGF0ZVRpbWVBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmxvY2FsZShkYXlqcy5sb2NhbGUoKSkuZm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgZGF0ZSBvYmplY3QgZnJvbSB2YWx1ZXMgKi9cbiAgICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIGRhdGU/OiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURheWpzRGF0ZShcbiAgICAgICAgICAgIHR5cGVvZiBtb250aCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInID8gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXRlKSA6IGAke3llYXJ9YCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiIGFuZCB5ZWFyIFwiJHt5ZWFyfVwiLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRvZGF5ICovXG4gICAgdG9kYXkoKTogRGF5anMge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCkubG9jYWxlKHRoaXMubG9jYWxlKS5zdGFydE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG5vdyAqL1xuICAgIG5vdygpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgeWVhcnMgdG8gZGF0ZSAqL1xuICAgIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF5anMsIHllYXJzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZCh5ZWFycywgJ3llYXInKTtcbiAgICB9XG5cbiAgICAvKiogQWRkIG1vbnRocyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF5anMsIG1vbnRoczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5hZGQobW9udGhzLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICAvKiogQWRkIGRheXMgdG8gZGF0ZSAqL1xuICAgIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5hZGQoZGF5cywgJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBDbG9uZSBkYXRlICovXG4gICAgY2xvbmUoZGF0ZTogRGF5anMpOiBEYXlqcyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmNsb25lKCkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmNsb25lKCk7XG4gICAgfVxuXG4gICAgLyoqIENvbXBhcmUgaWYgZGF0ZXMgYXJlIGVxdWFsICovXG4gICAgZGF0ZXNFcXVhbChkYXRlMTogRGF5anMsIGRhdGUyOiBEYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luY2UgZGF0ZSBtYXkgY29tZSBmcm9tIGBjcmVhdGVEYXRlYCBtZXRob2Qgd2hpY2ggdXNlcyBgbG9jYWxgIHRpbWUsIHdlIG5lZWQgdG8gY29udmVydCBib3RoIGRhdGVzIHRvIHRoZSBzYW1lIHRpbWV6b25lLlxuICAgICAgICByZXR1cm4gZGF0ZTEubG9jYWwoKS5pc1NhbWUoZGF0ZTIubG9jYWwoKSwgJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBDb21wYXJlIGlmIGRhdGVzIGFuZCB0aW1lIGFyZSBlcXVhbCAqL1xuICAgIGRhdGVUaW1lc0VxdWFsKGRhdGUxOiBEYXlqcywgZGF0ZTI6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZTEuaXNTYW1lKGRhdGUyKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgZGF0ZSBpcyBpbiByYW5nZSAqL1xuICAgIGlzQmV0d2VlbihkYXRlVG9DaGVjazogRGF5anMsIHN0YXJ0RGF0ZTogRGF5anMsIGVuZERhdGU6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZVRvQ2hlY2sgfHwgIXN0YXJ0RGF0ZSB8fCAhZW5kRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVUb0NoZWNrLmlzQmV0d2VlbihzdGFydERhdGUsIGVuZERhdGUpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiBkYXRlIGlzIHZhbGlkIGRhdGUgb2JqZWN0ICovXG4gICAgaXNWYWxpZChkYXRlOiBOdWxsYWJsZTxEYXlqcz4pOiBkYXRlIGlzIERheWpzIHtcbiAgICAgICAgcmV0dXJuICEhZGF0ZT8uaXNWYWxpZCgpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGRhdGUgdG8gSVNPODYwMSBzdHJpbmcgKi9cbiAgICB0b0lzbzg2MDEoZGF0ZTogRGF5anMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBkYXkgcGVyaW9kICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNEYXlQZXJpb2QoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bYUFdLyk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIGhvdXJzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNIb3VycyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1toSF0vKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgdGltZSBmb3JtYXQgaW5jbHVkZXMgbWludXRlcyAqL1xuICAgIGlzVGltZUZvcm1hdEluY2x1ZGVzTWludXRlcyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1ttXS8pO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBzZWNvbmRzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNTZWNvbmRzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW3NdLyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIHdpbGwgYXR0ZW1wdCB0byBwYXJzZSBsb25nRGF0YUZvcm1hdCAoZS5nLiBcIkxcIiwgXCJMVFwiKSBhbmQgY29udmVydCBpdCB0byBzaW1wbGUgb25lLlxuICAgICAqL1xuICAgIF9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGRpc3BsYXlGb3JtYXQgPSBkaXNwbGF5Rm9ybWF0LnRyaW0oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHM6IG9iamVjdCA9IGRheWpzLkxzW2RheWpzLmxvY2FsZSgpXS5mb3JtYXRzO1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIHBhcnNlIGZvcm1hdCB0YWtlbiBmcm9tIGRheWpzIHJlcG9cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvYmxvYi9kZXYvc3JjL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQvdXRpbHMuanNcbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5Rm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgLyhcXFtbXlxcXV0rXSl8KExUUz98bHsxLDR9fEx7MSw0fSkvZyxcbiAgICAgICAgICAgICAgICAoXywgYSwgYikgPT4gYSB8fCBmb3JtYXRzW2JdIHx8IGRpc3BsYXlGb3JtYXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlGb3JtYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jcmVhdGVEYXlqc0RhdGUoZGF0ZT86IENvbmZpZ1R5cGUsIGZvcm1hdD86IHN0cmluZywgaWdub3JlVXRjID0gZmFsc2UpOiBEYXlqcyB7XG4gICAgICAgIGNvbnN0IHsgc3RyaWN0LCB1c2VVdGMgfTogRGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zID0gdGhpcy5fb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gdXNlVXRjICYmICFpZ25vcmVVdGMgPyBkYXlqcy51dGMgOiBkYXlqcztcblxuICAgICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmIGZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tGb3JtYXRzID0gW1xuICAgICAgICAgICAgICAgIGZvcm1hdCwgLy8gb3JpZ2luYWxcbiAgICAgICAgICAgICAgICBmb3JtYXQucmVwbGFjZSgvID9bSGhdOj9tbVthQV0/LywgJycpLCAvLyByZW1vdmUgdGltZVxuICAgICAgICAgICAgICAgIGZvcm1hdC5yZXBsYWNlKC8gP1tIaF06P21tLywgJycpLCAvLyByZW1vdmUgdGltZSAobm8gbWVyaWRpZW0pLFxuICAgICAgICAgICAgICAgICdMJyxcbiAgICAgICAgICAgICAgICBkYXlqcy5Mc1tkYXlqcy5sb2NhbGUoKV0uZm9ybWF0c1snTCddLFxuICAgICAgICAgICAgICAgICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgICAgICAnWVlZWS1NTS1ERCdcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBmYWxsYmFja0Zvcm1hdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cnlQYXJzZWQgPSBtZXRob2QoZGF0ZSwgZiwgc3RyaWN0KTtcbiAgICAgICAgICAgICAgICBpZiAodHJ5UGFyc2VkLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ5UGFyc2VkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IG1ldGhvZChkYXRlLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgRGF0ZUxvY2FsZSB7XG4gICAgZmlyc3REYXlPZldlZWs6IG51bWJlcjtcbiAgICBsb25nTW9udGhzOiBzdHJpbmdbXTtcbiAgICBzaG9ydE1vbnRoczogc3RyaW5nW107XG4gICAgbmFycm93TW9udGhzOiBzdHJpbmdbXTtcbiAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW107XG4gICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbiAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbn1cbiJdfQ==","export const DAYJS_DATETIME_FORMATS = {\n parse: {\n dateInput: 'L',\n timeInput: 'h:mm',\n dateTimeInput: 'L h:mm'\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQ25ELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLE1BQU07UUFDakIsYUFBYSxFQUFFLFFBQVE7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBEQVlKU19EQVRFVElNRV9GT1JNQVRTOiBEYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnTCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ2g6bW0nLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnTCBoOm1tJ1xuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdMJyxcbiAgICAgICAgdGltZUlucHV0OiAnaDptbSBBJyxcbiAgICAgICAgZGF0ZVRpbWVJbnB1dDogJ0wgaDptbSBBJyxcblxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnWVlZWSBNTU1NIEREJyxcbiAgICAgICAgbW9udGhBMTF5TGFiZWw6ICdNTU1NJyxcbiAgICAgICAgeWVhckExMXlMYWJlbDogJ1lZWVknXG4gICAgfSxcbiAgICByYW5nZURlbGltaXRlcjogJyAtICdcbn07XG4iXX0=","import { NgModule } from '@angular/core';\nimport { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';\nimport { DayjsDatetimeAdapter } from './dayjs-datetime-adapter';\nimport { DAYJS_DATETIME_FORMATS } from './dayjs-datetime-formats';\nimport * as i0 from \"@angular/core\";\nexport class DayjsDatetimeAdapterRawModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]\n }]\n }] });\nexport class DayjsDatetimeAdapterModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DayjsDatetimeAdapterRawModule],\n providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2xpYi9kYXlqcy1kYXRldGltZS1hZGFwdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7K0dBQTdCLDZCQUE2QixhQUYzQixDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzs7MkZBRWhFLDZCQUE2QjtrQkFIekMsUUFBUTttQkFBQztvQkFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7aUJBQzVFOztBQU9ELE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLFlBTjFCLDZCQUE2QjsrR0FNN0IsMEJBQTBCLGFBRnhCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsWUFEbkUsNkJBQTZCOzsyRkFHOUIsMEJBQTBCO2tCQUp0QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUN4QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztpQkFDaEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX0ZPUk1BVFMsIERhdGV0aW1lQWRhcHRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmltcG9ydCB7IERheWpzRGF0ZXRpbWVBZGFwdGVyIH0gZnJvbSAnLi9kYXlqcy1kYXRldGltZS1hZGFwdGVyJztcbmltcG9ydCB7IERBWUpTX0RBVEVUSU1FX0ZPUk1BVFMgfSBmcm9tICcuL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLCB1c2VDbGFzczogRGF5anNEYXRldGltZUFkYXB0ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogREFURV9USU1FX0ZPUk1BVFMsIHVzZVZhbHVlOiBEQVlKU19EQVRFVElNRV9GT1JNQVRTIH1dXG59KVxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZXRpbWVBZGFwdGVyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWRhdGV0aW1lLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2Z1bmRhbWVudGFsLW5neC1kYXRldGltZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-datetime-adapter.mjs","sources":["../tmp-esm2022/lib/dayjs-datetime-adapter.js","../tmp-esm2022/lib/dayjs-datetime-formats.js","../tmp-esm2022/lib/dayjs-datetime-adapter.module.js","../tmp-esm2022/fundamental-ngx-datetime-adapter.js"],"sourcesContent":["import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport localeData from 'dayjs/plugin/localeData';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport utc from 'dayjs/plugin/utc';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\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 DAYJS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('DAYJS_DATE_TIME_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY\n});\n/** @hidden */\nexport function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {\n return {\n useUtc: false,\n strict: false\n };\n}\n/**\n * DatetimeAdapter implementation based on dayjs.\n *\n * This uses dayjs as a date model instance.\n * It relies on dayjs implementation for formatting and translation purposes.\n */\nexport class DayjsDatetimeAdapter extends DatetimeAdapter {\n /** @hidden */\n constructor(localeId, _options) {\n super();\n this._options = _options;\n dayjs.extend(localeData);\n dayjs.extend(weekOfYear);\n dayjs.extend(utc);\n dayjs.extend(isBetween);\n dayjs.extend(objectSupport);\n dayjs.extend(localizedFormat);\n dayjs.extend(customParseFormat);\n this.setLocale(localeId || dayjs.locale());\n }\n /** Set locale */\n setLocale(locale) {\n if (locale.toLowerCase() === 'en-us') {\n // Handle English locale name as it's a default one and it is different\n locale = 'en';\n }\n dayjs.locale(locale);\n if (dayjs.locale() !== locale) {\n throw new Error(`Failed to load locale ${locale}. ` +\n 'Make sure it exists and is preloaded. See the imports at the top of the example file at ' +\n 'https://sap.github.io/fundamental-ngx/#/core/dayjs-datetime-adapter' +\n 'List of supported locales can be found here: https://github.com/iamkun/dayjs/tree/dev/src/locale.');\n }\n this._dayjsLocaleData = dayjs.localeData();\n this._localeData = {\n firstDayOfWeek: this._dayjsLocaleData.firstDayOfWeek(),\n longMonths: this._dayjsLocaleData.months(),\n shortMonths: this._dayjsLocaleData.monthsShort(),\n narrowMonths: this._dayjsLocaleData.months().map((name) => name.charAt(0)),\n longDaysOfWeek: this._dayjsLocaleData.weekdays(),\n shortDaysOfWeek: this._dayjsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: this._dayjsLocaleData.weekdaysMin()\n };\n super.setLocale(locale);\n }\n /** Get year */\n getYear(date) {\n return date.year();\n }\n /** Get month */\n getMonth(date) {\n return date.month() + 1;\n }\n /** Get date */\n getDate(date) {\n return date.date();\n }\n /** Get day of the week */\n getDayOfWeek(date) {\n return date.day() + 1;\n }\n /** Get hours */\n getHours(date) {\n return date.hour();\n }\n /** Get minutes */\n getMinutes(date) {\n return date.minute();\n }\n /** Get seconds */\n getSeconds(date) {\n return date.second();\n }\n /** Set hours in date object */\n setHours(date, hours) {\n return date.hour(hours);\n }\n /** Set minutes in date object */\n setMinutes(date, minutes) {\n return date.minute(minutes);\n }\n /** Set seconds in date object */\n setSeconds(date, seconds) {\n return date.second(seconds);\n }\n /** Get week number */\n getWeekNumber(date) {\n return date.week();\n }\n /** Get months names */\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 /** Get date names */\n getDateNames() {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n /** Get days of week names */\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 /** Get year name */\n getYearName(date) {\n return date.format('YYYY');\n }\n /** Get week name */\n getWeekName(date) {\n return date.week().toLocaleString(this.locale);\n }\n /** Get hour names */\n getHourNames({ meridian, twoDigit }) {\n const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';\n const dayjsDate = this._createDayjsDate();\n return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));\n }\n /** Get minute names */\n getMinuteNames({ twoDigit, minuteStep = 1 }) {\n const format = twoDigit ? 'mm' : 'm';\n const dayjsDate = this._createDayjsDate();\n const length = Math.ceil(60 / minuteStep);\n return range(length, (index) => {\n const minute = index * minuteStep;\n return this.clone(dayjsDate).minute(minute).format(format);\n });\n }\n /** Get second names */\n getSecondNames({ twoDigit }) {\n const format = twoDigit ? 'ss' : 's';\n const dayjsDate = this._createDayjsDate();\n return range(60, (i) => this.clone(dayjsDate).second(i).format(format));\n }\n /**\n * Get day period names\n * @param isLower responsible for the lower and upper cases of the result\n */\n getDayPeriodNames(isLower = false) {\n const AM = this._dayjsLocaleData.meridiem?.(6, 0, isLower) ?? (isLower ? 'am' : 'AM');\n const PM = this._dayjsLocaleData.meridiem?.(16, 0, isLower) ?? (isLower ? 'pm' : 'PM');\n return [AM, PM];\n }\n /** Get first day of the week */\n getFirstDayOfWeek() {\n return this._localeData.firstDayOfWeek;\n }\n /** Get number of days in the month */\n getNumDaysInMonth(date) {\n return date.daysInMonth();\n }\n /** Try to parse a string to a date object */\n parse(value, parseFormat = '') {\n if (value && typeof value === 'string') {\n return this._createDayjsDate(value, parseFormat);\n }\n else if (value instanceof FdDate) {\n // FdDate instance may be incorrectly parsed by DayJS\n value = value.toString();\n }\n return value ? this._createDayjsDate(value).locale(this.locale) : null;\n }\n /** Format a date as a string */\n format(date, displayFormat) {\n if (!date) {\n return '';\n }\n if (!this.isValid(date)) {\n throw Error('DayjsDateTimeAdapter: Cannot format invalid date.');\n }\n return date.locale(dayjs.locale()).format(displayFormat);\n }\n /** Create date object from values */\n createDate(year, month, date) {\n const result = this._createDayjsDate(typeof month === 'number' && typeof date === 'number' ? new Date(year, month - 1, date) : `${year}`, undefined, true);\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\" and year \"${year}\".`);\n }\n return result;\n }\n /** Get today */\n today() {\n return this._createDayjsDate().locale(this.locale).startOf('day');\n }\n /** Get now */\n now() {\n return this._createDayjsDate().locale(this.locale);\n }\n /** Add years to date */\n addCalendarYears(date, years) {\n return date.add(years, 'year');\n }\n /** Add months to date */\n addCalendarMonths(date, months) {\n return date.add(months, 'month');\n }\n /** Add days to date */\n addCalendarDays(date, days) {\n return date.add(days, 'day');\n }\n /** Clone date */\n clone(date) {\n if (!date) {\n return date;\n }\n if (this.locale) {\n return date.clone().locale(this.locale);\n }\n return date.clone();\n }\n /** Compare if dates are equal */\n datesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n // Since date may come from `createDate` method which uses `local` time, we need to convert both dates to the same timezone.\n return date1.local().isSame(date2.local(), 'day');\n }\n /** Compare if dates and time are equal */\n dateTimesEqual(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return date1.isSame(date2);\n }\n /** Check if date is in range */\n isBetween(dateToCheck, startDate, endDate) {\n if (!dateToCheck || !startDate || !endDate) {\n return false;\n }\n return dateToCheck.isBetween(startDate, endDate);\n }\n /** Check if date is valid date object */\n isValid(date) {\n return !!date?.isValid();\n }\n /** Convert date to ISO8601 string */\n toIso8601(date) {\n return date.toISOString();\n }\n /** Check if time format includes day period */\n isTimeFormatIncludesDayPeriod(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[aA]/);\n }\n /** Check if time format includes hours */\n isTimeFormatIncludesHours(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[hH]/);\n }\n /** Check if time format includes minutes */\n isTimeFormatIncludesMinutes(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[m]/);\n }\n /** Check if time format includes seconds */\n isTimeFormatIncludesSeconds(displayFormat) {\n const format = this._prepareFormat(displayFormat);\n return !!format.match(/[s]/);\n }\n /**\n * @hidden\n * will attempt to parse longDataFormat (e.g. \"L\", \"LT\") and convert it to simple one.\n */\n _prepareFormat(displayFormat) {\n displayFormat = displayFormat.trim();\n try {\n const formats = dayjs.Ls[dayjs.locale()].formats;\n // this is the regular expression to parse format taken from dayjs repo\n // https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/utils.js\n return displayFormat.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => a || formats[b] || displayFormat);\n }\n catch {\n return displayFormat;\n }\n }\n /** @hidden */\n _createDayjsDate(date, format, ignoreUtc = false) {\n const { strict, useUtc } = this._options || {};\n const method = useUtc && !ignoreUtc ? dayjs.utc : dayjs;\n if (typeof date === 'string' && format) {\n const fallbackFormats = [\n format, // original\n format.replace(/ ?[Hh]:?mm[aA]?/, ''), // remove time\n format.replace(/ ?[Hh]:?mm/, ''), // remove time (no meridiem),\n 'L',\n dayjs.Ls[dayjs.locale()].formats['L'],\n 'DD/MM/YYYY',\n 'YYYY-MM-DD'\n ];\n for (const f of fallbackFormats) {\n const tryParsed = method(date, f, strict);\n if (tryParsed.isValid()) {\n return tryParsed;\n }\n }\n }\n const parsed = method(date, format, strict);\n return parsed;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_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: DayjsDatetimeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapter, 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: [DAYJS_DATE_TIME_ADAPTER_OPTIONS]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sZUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBR2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxLQUEyQjtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBT0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQzdELGlDQUFpQyxFQUNqQztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7Q0FDbkQsQ0FDSixDQUFDO0FBRUYsY0FBYztBQUNkLE1BQU0s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QUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IENvbmZpZ1R5cGUsIERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5pbXBvcnQgaXNCZXR3ZWVuIGZyb20gJ2RheWpzL3BsdWdpbi9pc0JldHdlZW4nO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuaW1wb3J0IGxvY2FsaXplZEZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxpemVkRm9ybWF0JztcbmltcG9ydCBvYmplY3RTdXBwb3J0IGZyb20gJ2RheWpzL3BsdWdpbi9vYmplY3RTdXBwb3J0JztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5pbXBvcnQgd2Vla09mWWVhciBmcm9tICdkYXlqcy9wbHVnaW4vd2Vla09mWWVhcic7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGF0ZXRpbWVBZGFwdGVyLCBGZERhdGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZXRpbWUnO1xuXG5mdW5jdGlvbiByYW5nZTxUPihsZW5ndGg6IG51bWJlciwgbWFwRm46IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgQXJyYXkobGVuZ3RoKSkubWFwKChfLCBpbmRleCkgPT4gbWFwRm4oaW5kZXgpKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnMge1xuICAgIHN0cmljdD86IGJvb2xlYW47XG4gICAgdXNlVXRjPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IERBWUpTX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zPihcbiAgICAnREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUycsXG4gICAge1xuICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgIGZhY3Rvcnk6IERBWUpTX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlNfRkFDVE9SWVxuICAgIH1cbik7XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXNlVXRjOiBmYWxzZSxcbiAgICAgICAgc3RyaWN0OiBmYWxzZVxuICAgIH07XG59XG5cbi8qKlxuICogRGF0ZXRpbWVBZGFwdGVyIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIGRheWpzLlxuICpcbiAqIFRoaXMgdXNlcyBkYXlqcyBhcyBhIGRhdGUgbW9kZWwgaW5zdGFuY2UuXG4gKiBJdCByZWxpZXMgb24gZGF5anMgaW1wbGVtZW50YXRpb24gZm9yIGZvcm1hdHRpbmcgYW5kIHRyYW5zbGF0aW9uIHB1cnBvc2VzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF5anNEYXRldGltZUFkYXB0ZXIgZXh0ZW5kcyBEYXRldGltZUFkYXB0ZXI8RGF5anM+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RheWpzTG9jYWxlRGF0YTogZGF5anMuR2xvYmFsTG9jYWxlRGF0YVJldHVybjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbG9jYWxlRGF0YTogRGF0ZUxvY2FsZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9DQUxFX0lEKSBsb2NhbGVJZDogc3RyaW5nLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBWUpTX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMpIHByaXZhdGUgX29wdGlvbnM/OiBEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBkYXlqcy5leHRlbmQobG9jYWxlRGF0YSk7XG4gICAgICAgIGRheWpzLmV4dGVuZCh3ZWVrT2ZZZWFyKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKHV0Yyk7XG4gICAgICAgIGRheWpzLmV4dGVuZChpc0JldHdlZW4pO1xuICAgICAgICBkYXlqcy5leHRlbmQob2JqZWN0U3VwcG9ydCk7XG4gICAgICAgIGRheWpzLmV4dGVuZChsb2NhbGl6ZWRGb3JtYXQpO1xuICAgICAgICBkYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuXG4gICAgICAgIHRoaXMuc2V0TG9jYWxlKGxvY2FsZUlkIHx8IGRheWpzLmxvY2FsZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGVuICovXG4gICAgZnJvbU5vdz8oZGF0ZTogZGF5anMuRGF5anMpOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0IGxvY2FsZSAqL1xuICAgIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAobG9jYWxlLnRvTG93ZXJDYXNlKCkgPT09ICdlbi11cycpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBFbmdsaXNoIGxvY2FsZSBuYW1lIGFzIGl0J3MgYSBkZWZhdWx0IG9uZSBhbmQgaXQgaXMgZGlmZmVyZW50XG4gICAgICAgICAgICBsb2NhbGUgPSAnZW4nO1xuICAgICAgICB9XG4gICAgICAgIGRheWpzLmxvY2FsZShsb2NhbGUpO1xuXG4gICAgICAgIGlmIChkYXlqcy5sb2NhbGUoKSAhPT0gbG9jYWxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byBsb2FkIGxvY2FsZSAke2xvY2FsZX0uIGAgK1xuICAgICAgICAgICAgICAgICAgICAnTWFrZSBzdXJlIGl0IGV4aXN0cyBhbmQgaXMgcHJlbG9hZGVkLiBTZWUgdGhlIGltcG9ydHMgYXQgdGhlIHRvcCBvZiB0aGUgZXhhbXBsZSBmaWxlIGF0ICcgK1xuICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLW5neC8jL2NvcmUvZGF5anMtZGF0ZXRpbWUtYWRhcHRlcicgK1xuICAgICAgICAgICAgICAgICAgICAnTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyBjYW4gYmUgZm91bmQgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2lhbWt1bi9kYXlqcy90cmVlL2Rldi9zcmMvbG9jYWxlLidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kYXlqc0xvY2FsZURhdGEgPSBkYXlqcy5sb2NhbGVEYXRhKCk7XG5cbiAgICAgICAgdGhpcy5fbG9jYWxlRGF0YSA9IHtcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEuZmlyc3REYXlPZldlZWsoKSxcbiAgICAgICAgICAgIGxvbmdNb250aHM6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tb250aHMoKSxcbiAgICAgICAgICAgIHNob3J0TW9udGhzOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEubW9udGhzU2hvcnQoKSxcbiAgICAgICAgICAgIG5hcnJvd01vbnRoczogdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1vbnRocygpLm1hcCgobmFtZTogc3RyaW5nKSA9PiBuYW1lLmNoYXJBdCgwKSksXG4gICAgICAgICAgICBsb25nRGF5c09mV2VlazogdGhpcy5fZGF5anNMb2NhbGVEYXRhLndlZWtkYXlzKCksXG4gICAgICAgICAgICBzaG9ydERheXNPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS53ZWVrZGF5c1Nob3J0KCksXG4gICAgICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEud2Vla2RheXNNaW4oKVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgeWVhciAqL1xuICAgIGdldFllYXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS55ZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBtb250aCAqL1xuICAgIGdldE1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUubW9udGgoKSArIDE7XG4gICAgfVxuXG4gICAgLyoqIEdldCBkYXRlICovXG4gICAgZ2V0RGF0ZShkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLmRhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGRheSBvZiB0aGUgd2VlayAqL1xuICAgIGdldERheU9mV2VlayhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLmRheSgpICsgMTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGhvdXJzICovXG4gICAgZ2V0SG91cnMoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5ob3VyKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBtaW51dGVzICovXG4gICAgZ2V0TWludXRlcyhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgc2Vjb25kcyAqL1xuICAgIGdldFNlY29uZHMoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5zZWNvbmQoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IGhvdXJzIGluIGRhdGUgb2JqZWN0ICovXG4gICAgc2V0SG91cnMoZGF0ZTogRGF5anMsIGhvdXJzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmhvdXIoaG91cnMpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgbWludXRlcyBpbiBkYXRlIG9iamVjdCAqL1xuICAgIHNldE1pbnV0ZXMoZGF0ZTogRGF5anMsIG1pbnV0ZXM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUubWludXRlKG1pbnV0ZXMpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgc2Vjb25kcyBpbiBkYXRlIG9iamVjdCAqL1xuICAgIHNldFNlY29uZHMoZGF0ZTogRGF5anMsIHNlY29uZHM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuc2Vjb25kKHNlY29uZHMpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgd2VlayBudW1iZXIgKi9cbiAgICBnZXRXZWVrTnVtYmVyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUud2VlaygpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbW9udGhzIG5hbWVzICovXG4gICAgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICAgICAgICBjYXNlICduYXJyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd01vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydE1vbnRocztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nTW9udGhzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldCBkYXRlIG5hbWVzICovXG4gICAgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHJhbmdlKDMxLCAoaSkgPT4gdGhpcy5jcmVhdGVEYXRlKDIwMTcsIDAsIGkgKyAxKS5mb3JtYXQoJ0QnKSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBkYXlzIG9mIHdlZWsgbmFtZXMgKi9cbiAgICBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICAgICAgICBjYXNlICduYXJyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd0RheXNPZldlZWs7XG4gICAgICAgICAgICBjYXNlICdzaG9ydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuc2hvcnREYXlzT2ZXZWVrO1xuICAgICAgICAgICAgY2FzZSAnbG9uZyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdEYXlzT2ZXZWVrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldCB5ZWFyIG5hbWUgKi9cbiAgICBnZXRZZWFyTmFtZShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlLmZvcm1hdCgnWVlZWScpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgd2VlayBuYW1lICovXG4gICAgZ2V0V2Vla05hbWUoZGF0ZTogRGF5anMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZS53ZWVrKCkudG9Mb2NhbGVTdHJpbmcodGhpcy5sb2NhbGUpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgaG91ciBuYW1lcyAqL1xuICAgIGdldEhvdXJOYW1lcyh7IG1lcmlkaWFuLCB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuOyBtZXJpZGlhbjogYm9vbGVhbiB9KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmb3JtYXQ6IHN0cmluZyA9IG1lcmlkaWFuID8gKHR3b0RpZ2l0ID8gJ2hoJyA6ICdoJykgOiB0d29EaWdpdCA/ICdISCcgOiAnSCc7XG4gICAgICAgIGNvbnN0IGRheWpzRGF0ZSA9IHRoaXMuX2NyZWF0ZURheWpzRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiByYW5nZSgyNCwgKGkpID0+IHRoaXMuY2xvbmUoZGF5anNEYXRlKS5ob3VyKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1pbnV0ZSBuYW1lcyAqL1xuICAgIGdldE1pbnV0ZU5hbWVzKHsgdHdvRGlnaXQsIG1pbnV0ZVN0ZXAgPSAxIH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1pbnV0ZVN0ZXA/OiBudW1iZXIgfSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZm9ybWF0OiBzdHJpbmcgPSB0d29EaWdpdCA/ICdtbScgOiAnbSc7XG4gICAgICAgIGNvbnN0IGRheWpzRGF0ZSA9IHRoaXMuX2NyZWF0ZURheWpzRGF0ZSgpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBNYXRoLmNlaWwoNjAgLyBtaW51dGVTdGVwKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UobGVuZ3RoLCAoaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1pbnV0ZSA9IGluZGV4ICogbWludXRlU3RlcDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKGRheWpzRGF0ZSkubWludXRlKG1pbnV0ZSkuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBHZXQgc2Vjb25kIG5hbWVzICovXG4gICAgZ2V0U2Vjb25kTmFtZXMoeyB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gdHdvRGlnaXQgPyAnc3MnIDogJ3MnO1xuICAgICAgICBjb25zdCBkYXlqc0RhdGUgPSB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKGRheWpzRGF0ZSkuc2Vjb25kKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgR2V0IGRheSBwZXJpb2QgbmFtZXNcbiAgICAgKiBAcGFyYW0gaXNMb3dlciByZXNwb25zaWJsZSBmb3IgdGhlIGxvd2VyIGFuZCB1cHBlciBjYXNlcyBvZiB0aGUgcmVzdWx0XG4gICAgICovXG4gICAgZ2V0RGF5UGVyaW9kTmFtZXMoaXNMb3dlciA9IGZhbHNlKTogW3N0cmluZywgc3RyaW5nXSB7XG4gICAgICAgIGNvbnN0IEFNID0gdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1lcmlkaWVtPy4oNiwgMCwgaXNMb3dlcikgPz8gKGlzTG93ZXIgPyAnYW0nIDogJ0FNJyk7XG4gICAgICAgIGNvbnN0IFBNID0gdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1lcmlkaWVtPy4oMTYsIDAsIGlzTG93ZXIpID8/IChpc0xvd2VyID8gJ3BtJyA6ICdQTScpO1xuXG4gICAgICAgIHJldHVybiBbQU0sIFBNXTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGZpcnN0IGRheSBvZiB0aGUgd2VlayAqL1xuICAgIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoICovXG4gICAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgYSBzdHJpbmcgdG8gYSBkYXRlIG9iamVjdCAqL1xuICAgIHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBzdHJpbmcgPSAnJyk6IERheWpzIHwgbnVsbCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGF5anNEYXRlKHZhbHVlLCBwYXJzZUZvcm1hdCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGZERhdGUpIHtcbiAgICAgICAgICAgIC8vIEZkRGF0ZSBpbnN0YW5jZSBtYXkgYmUgaW5jb3JyZWN0bHkgcGFyc2VkIGJ5IERheUpTXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLl9jcmVhdGVEYXlqc0RhdGUodmFsdWUpLmxvY2FsZSh0aGlzLmxvY2FsZSkgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBGb3JtYXQgYSBkYXRlIGFzIGEgc3RyaW5nICovXG4gICAgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRGF5anNEYXRlVGltZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUubG9jYWxlKGRheWpzLmxvY2FsZSgpKS5mb3JtYXQoZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBkYXRlIG9iamVjdCBmcm9tIHZhbHVlcyAqL1xuICAgIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF0ZT86IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKFxuICAgICAgICAgICAgdHlwZW9mIG1vbnRoID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicgPyBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRhdGUpIDogYCR7eWVhcn1gLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIgYW5kIHllYXIgXCIke3llYXJ9XCIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBHZXQgdG9kYXkgKi9cbiAgICB0b2RheSgpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKS5sb2NhbGUodGhpcy5sb2NhbGUpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbm93ICovXG4gICAgbm93KCk6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZURheWpzRGF0ZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCB5ZWFycyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXlqcywgeWVhcnM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuYWRkKHllYXJzLCAneWVhcicpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgbW9udGhzIHRvIGRhdGUgKi9cbiAgICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXlqcywgbW9udGhzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZChtb250aHMsICdtb250aCcpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgZGF5cyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IERheWpzLCBkYXlzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgLyoqIENsb25lIGRhdGUgKi9cbiAgICBjbG9uZShkYXRlOiBEYXlqcyk6IERheWpzIHtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcbiAgICB9XG5cbiAgICAvKiogQ29tcGFyZSBpZiBkYXRlcyBhcmUgZXF1YWwgKi9cbiAgICBkYXRlc0VxdWFsKGRhdGUxOiBEYXlqcywgZGF0ZTI6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaW5jZSBkYXRlIG1heSBjb21lIGZyb20gYGNyZWF0ZURhdGVgIG1ldGhvZCB3aGljaCB1c2VzIGBsb2NhbGAgdGltZSwgd2UgbmVlZCB0byBjb252ZXJ0IGJvdGggZGF0ZXMgdG8gdGhlIHNhbWUgdGltZXpvbmUuXG4gICAgICAgIHJldHVybiBkYXRlMS5sb2NhbCgpLmlzU2FtZShkYXRlMi5sb2NhbCgpLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgLyoqIENvbXBhcmUgaWYgZGF0ZXMgYW5kIHRpbWUgYXJlIGVxdWFsICovXG4gICAgZGF0ZVRpbWVzRXF1YWwoZGF0ZTE6IERheWpzLCBkYXRlMjogRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlMS5pc1NhbWUoZGF0ZTIpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiBkYXRlIGlzIGluIHJhbmdlICovXG4gICAgaXNCZXR3ZWVuKGRhdGVUb0NoZWNrOiBEYXlqcywgc3RhcnREYXRlOiBEYXlqcywgZW5kRGF0ZTogRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlVG9DaGVjayB8fCAhc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZVRvQ2hlY2suaXNCZXR3ZWVuKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIGRhdGUgaXMgdmFsaWQgZGF0ZSBvYmplY3QgKi9cbiAgICBpc1ZhbGlkKGRhdGU6IE51bGxhYmxlPERheWpzPik6IGRhdGUgaXMgRGF5anMge1xuICAgICAgICByZXR1cm4gISFkYXRlPy5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgZGF0ZSB0byBJU084NjAxIHN0cmluZyAqL1xuICAgIHRvSXNvODYwMShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIGRheSBwZXJpb2QgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0RheVBlcmlvZChkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1thQV0vKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgdGltZSBmb3JtYXQgaW5jbHVkZXMgaG91cnMgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0hvdXJzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW2hIXS8pO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBtaW51dGVzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNNaW51dGVzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW21dLyk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIHNlY29uZHMgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc1NlY29uZHMoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bc10vKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogd2lsbCBhdHRlbXB0IHRvIHBhcnNlIGxvbmdEYXRhRm9ybWF0IChlLmcuIFwiTFwiLCBcIkxUXCIpIGFuZCBjb252ZXJ0IGl0IHRvIHNpbXBsZSBvbmUuXG4gICAgICovXG4gICAgX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQudHJpbSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0czogb2JqZWN0ID0gZGF5anMuTHNbZGF5anMubG9jYWxlKCldLmZvcm1hdHM7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcGFyc2UgZm9ybWF0IHRha2VuIGZyb20gZGF5anMgcmVwb1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2lhbWt1bi9kYXlqcy9ibG9iL2Rldi9zcmMvcGx1Z2luL2xvY2FsaXplZEZvcm1hdC91dGlscy5qc1xuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlGb3JtYXQucmVwbGFjZShcbiAgICAgICAgICAgICAgICAvKFxcW1teXFxdXStdKXwoTFRTP3xsezEsNH18THsxLDR9KS9nLFxuICAgICAgICAgICAgICAgIChfLCBhLCBiKSA9PiBhIHx8IGZvcm1hdHNbYl0gfHwgZGlzcGxheUZvcm1hdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NyZWF0ZURheWpzRGF0ZShkYXRlPzogQ29uZmlnVHlwZSwgZm9ybWF0Pzogc3RyaW5nLCBpZ25vcmVVdGMgPSBmYWxzZSk6IERheWpzIHtcbiAgICAgICAgY29uc3QgeyBzdHJpY3QsIHVzZVV0YyB9OiBEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnMgPSB0aGlzLl9vcHRpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBtZXRob2QgPSB1c2VVdGMgJiYgIWlnbm9yZVV0YyA/IGRheWpzLnV0YyA6IGRheWpzO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgJiYgZm9ybWF0KSB7XG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja0Zvcm1hdHMgPSBbXG4gICAgICAgICAgICAgICAgZm9ybWF0LCAvLyBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIGZvcm1hdC5yZXBsYWNlKC8gP1tIaF06P21tW2FBXT8vLCAnJyksIC8vIHJlbW92ZSB0aW1lXG4gICAgICAgICAgICAgICAgZm9ybWF0LnJlcGxhY2UoLyA/W0hoXTo/bW0vLCAnJyksIC8vIHJlbW92ZSB0aW1lIChubyBtZXJpZGllbSksXG4gICAgICAgICAgICAgICAgJ0wnLFxuICAgICAgICAgICAgICAgIGRheWpzLkxzW2RheWpzLmxvY2FsZSgpXS5mb3JtYXRzWydMJ10sXG4gICAgICAgICAgICAgICAgJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgICAgICdZWVlZLU1NLUREJ1xuICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmIG9mIGZhbGxiYWNrRm9ybWF0cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyeVBhcnNlZCA9IG1ldGhvZChkYXRlLCBmLCBzdHJpY3QpO1xuICAgICAgICAgICAgICAgIGlmICh0cnlQYXJzZWQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnlQYXJzZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkID0gbWV0aG9kKGRhdGUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG59XG5cbmludGVyZmFjZSBEYXRlTG9jYWxlIHtcbiAgICBmaXJzdERheU9mV2VlazogbnVtYmVyO1xuICAgIGxvbmdNb250aHM6IHN0cmluZ1tdO1xuICAgIHNob3J0TW9udGhzOiBzdHJpbmdbXTtcbiAgICBuYXJyb3dNb250aHM6IHN0cmluZ1tdO1xuICAgIGxvbmdEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbiAgICBzaG9ydERheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgIG5hcnJvd0RheXNPZldlZWs6IHN0cmluZ1tdO1xufVxuIl19","export const DAYJS_DATETIME_FORMATS = {\n parse: {\n dateInput: 'L',\n timeInput: 'h:mm',\n dateTimeInput: 'L h:mm'\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQ25ELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLE1BQU07UUFDakIsYUFBYSxFQUFFLFFBQVE7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBEQVlKU19EQVRFVElNRV9GT1JNQVRTOiBEYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnTCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ2g6bW0nLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnTCBoOm1tJ1xuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdMJyxcbiAgICAgICAgdGltZUlucHV0OiAnaDptbSBBJyxcbiAgICAgICAgZGF0ZVRpbWVJbnB1dDogJ0wgaDptbSBBJyxcblxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnWVlZWSBNTU1NIEREJyxcbiAgICAgICAgbW9udGhBMTF5TGFiZWw6ICdNTU1NJyxcbiAgICAgICAgeWVhckExMXlMYWJlbDogJ1lZWVknXG4gICAgfSxcbiAgICByYW5nZURlbGltaXRlcjogJyAtICdcbn07XG4iXX0=","import { NgModule } from '@angular/core';\nimport { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';\nimport { DayjsDatetimeAdapter } from './dayjs-datetime-adapter';\nimport { DAYJS_DATETIME_FORMATS } from './dayjs-datetime-formats';\nimport * as i0 from \"@angular/core\";\nexport class DayjsDatetimeAdapterRawModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]\n }]\n }] });\nexport class DayjsDatetimeAdapterModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DayjsDatetimeAdapterRawModule],\n providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2xpYi9kYXlqcy1kYXRldGltZS1hZGFwdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7K0dBQTdCLDZCQUE2QixhQUYzQixDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzs7MkZBRWhFLDZCQUE2QjtrQkFIekMsUUFBUTttQkFBQztvQkFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7aUJBQzVFOztBQU9ELE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLFlBTjFCLDZCQUE2QjsrR0FNN0IsMEJBQTBCLGFBRnhCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsWUFEbkUsNkJBQTZCOzsyRkFHOUIsMEJBQTBCO2tCQUp0QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUN4QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztpQkFDaEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX0ZPUk1BVFMsIERhdGV0aW1lQWRhcHRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmltcG9ydCB7IERheWpzRGF0ZXRpbWVBZGFwdGVyIH0gZnJvbSAnLi9kYXlqcy1kYXRldGltZS1hZGFwdGVyJztcbmltcG9ydCB7IERBWUpTX0RBVEVUSU1FX0ZPUk1BVFMgfSBmcm9tICcuL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLCB1c2VDbGFzczogRGF5anNEYXRldGltZUFkYXB0ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogREFURV9USU1FX0ZPUk1BVFMsIHVzZVZhbHVlOiBEQVlKU19EQVRFVElNRV9GT1JNQVRTIH1dXG59KVxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZXRpbWVBZGFwdGVyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWRhdGV0aW1lLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2Z1bmRhbWVudGFsLW5neC1kYXRldGltZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -67,8 +67,9 @@ declare class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {
|
|
|
67
67
|
meridian: boolean;
|
|
68
68
|
}): string[];
|
|
69
69
|
/** Get minute names */
|
|
70
|
-
getMinuteNames({ twoDigit }: {
|
|
70
|
+
getMinuteNames({ twoDigit, minuteStep }: {
|
|
71
71
|
twoDigit: boolean;
|
|
72
|
+
minuteStep?: number;
|
|
72
73
|
}): string[];
|
|
73
74
|
/** Get second names */
|
|
74
75
|
getSecondNames({ twoDigit }: {
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/datetime-adapter",
|
|
3
|
-
"version": "0.58.0-rc.
|
|
3
|
+
"version": "0.58.0-rc.81",
|
|
4
4
|
"description": "Datetime adapter for SAP Fundamentals, based on Day.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.
|
|
12
|
+
"@fundamental-ngx/core": "0.58.0-rc.81",
|
|
13
13
|
"dayjs": "^1.11.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|