@fundamental-ngx/datetime-adapter 0.56.4 → 0.57.0-rc.0

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.
@@ -321,10 +321,10 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
321
321
  }
322
322
  return parsed;
323
323
  }
324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
325
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapter }); }
324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
325
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapter }); }
326
326
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
328
328
  type: Injectable
329
329
  }], ctorParameters: () => [{ type: undefined, decorators: [{
330
330
  type: Optional
@@ -356,22 +356,22 @@ const DAYJS_DATETIME_FORMATS = {
356
356
  };
357
357
 
358
358
  class DayjsDatetimeAdapterRawModule {
359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }
361
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }
359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }
361
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
364
364
  type: NgModule,
365
365
  args: [{
366
366
  providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]
367
367
  }]
368
368
  }] });
369
369
  class DayjsDatetimeAdapterModule {
370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }
372
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }
372
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }
373
373
  }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
375
375
  type: NgModule,
376
376
  args: [{
377
377
  imports: [DayjsDatetimeAdapterRawModule],
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-datetime-adapter.mjs","sources":["../../../../libs/datetime-adapter/src/lib/dayjs-datetime-adapter.ts","../../../../libs/datetime-adapter/src/lib/dayjs-datetime-formats.ts","../../../../libs/datetime-adapter/src/lib/dayjs-datetime-adapter.module.ts","../../../../libs/datetime-adapter/src/fundamental-ngx-datetime-adapter.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';\nimport dayjs, { ConfigType, 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';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';\n\nfunction range<T>(length: number, mapFn: (index: number) => T): T[] {\n return Array.from(new Array(length)).map((_, index) => mapFn(index));\n}\n\nexport interface DayjsDatetimeAdapterOptions {\n strict?: boolean;\n useUtc?: boolean;\n}\n\nexport const DAYJS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken<DayjsDatetimeAdapterOptions>(\n 'DAYJS_DATE_TIME_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY\n }\n);\n\n/** @hidden */\nexport function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): DayjsDatetimeAdapterOptions {\n return {\n useUtc: false,\n strict: false\n };\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 */\n@Injectable()\nexport class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {\n /** @hidden */\n private _dayjsLocaleData: dayjs.GlobalLocaleDataReturn;\n\n /** @hidden */\n private _localeData: DateLocale;\n\n /** @hidden */\n constructor(\n @Optional() @Inject(LOCALE_ID) localeId: string,\n @Optional() @Inject(DAYJS_DATE_TIME_ADAPTER_OPTIONS) private _options?: DayjsDatetimeAdapterOptions\n ) {\n super();\n\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\n this.setLocale(localeId || dayjs.locale());\n }\n\n /** @hiden */\n fromNow?(date: dayjs.Dayjs): string;\n\n /** Set locale */\n setLocale(locale: string): void {\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\n if (dayjs.locale() !== locale) {\n throw new Error(\n `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 }\n\n this._dayjsLocaleData = dayjs.localeData();\n\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: string) => name.charAt(0)),\n longDaysOfWeek: this._dayjsLocaleData.weekdays(),\n shortDaysOfWeek: this._dayjsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: this._dayjsLocaleData.weekdaysMin()\n };\n\n super.setLocale(locale);\n }\n\n /** Get year */\n getYear(date: Dayjs): number {\n return date.year();\n }\n\n /** Get month */\n getMonth(date: Dayjs): number {\n return date.month() + 1;\n }\n\n /** Get date */\n getDate(date: Dayjs): number {\n return date.date();\n }\n\n /** Get day of the week */\n getDayOfWeek(date: Dayjs): number {\n return date.day() + 1;\n }\n\n /** Get hours */\n getHours(date: Dayjs): number {\n return date.hour();\n }\n\n /** Get minutes */\n getMinutes(date: Dayjs): number {\n return date.minute();\n }\n\n /** Get seconds */\n getSeconds(date: Dayjs): number {\n return date.second();\n }\n\n /** Set hours in date object */\n setHours(date: Dayjs, hours: number): Dayjs {\n return date.hour(hours);\n }\n\n /** Set minutes in date object */\n setMinutes(date: Dayjs, minutes: number): Dayjs {\n return date.minute(minutes);\n }\n\n /** Set seconds in date object */\n setSeconds(date: Dayjs, seconds: number): Dayjs {\n return date.second(seconds);\n }\n\n /** Get week number */\n getWeekNumber(date: Dayjs): number {\n return date.week();\n }\n\n /** Get months names */\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\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\n /** Get date names */\n getDateNames(): string[] {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n\n /** Get days of week names */\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\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\n /** Get year name */\n getYearName(date: Dayjs): string {\n return date.format('YYYY');\n }\n\n /** Get week name */\n getWeekName(date: Dayjs): string {\n return date.week().toLocaleString(this.locale);\n }\n\n /** Get hour names */\n getHourNames({ meridian, twoDigit }: { twoDigit: boolean; meridian: boolean }): string[] {\n const format: string = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';\n const dayjsDate = this._createDayjsDate();\n\n return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));\n }\n\n /** Get minute names */\n getMinuteNames({ twoDigit }: { twoDigit: boolean }): string[] {\n const format: string = twoDigit ? 'mm' : 'm';\n const dayjsDate = this._createDayjsDate();\n\n return range(60, (i) => this.clone(dayjsDate).minute(i).format(format));\n }\n\n /** Get second names */\n getSecondNames({ twoDigit }: { twoDigit: boolean }): string[] {\n const format: string = twoDigit ? 'ss' : 's';\n const dayjsDate = this._createDayjsDate();\n\n return range(60, (i) => this.clone(dayjsDate).second(i).format(format));\n }\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): [string, string] {\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\n return [AM, PM];\n }\n\n /** Get first day of the week */\n getFirstDayOfWeek(): number {\n return this._localeData.firstDayOfWeek;\n }\n\n /** Get number of days in the month */\n getNumDaysInMonth(date: Dayjs): number {\n return date.daysInMonth();\n }\n\n /** Try to parse a string to a date object */\n parse(value: any, parseFormat: string = ''): Dayjs | null {\n if (value && typeof value === 'string') {\n return this._createDayjsDate(value, parseFormat);\n } else if (value instanceof FdDate) {\n // FdDate instance may be incorrectly parsed by DayJS\n value = value.toString();\n }\n\n return value ? this._createDayjsDate(value).locale(this.locale) : null;\n }\n\n /** Format a date as a string */\n format(date: Dayjs, displayFormat: string): string {\n if (!date) {\n return '';\n }\n\n if (!this.isValid(date)) {\n throw Error('DayjsDateTimeAdapter: Cannot format invalid date.');\n }\n\n return date.locale(dayjs.locale()).format(displayFormat);\n }\n\n /** Create date object from values */\n createDate(year: number, month?: number, date?: number): Dayjs {\n const result = this._createDayjsDate(\n typeof month === 'number' && typeof date === 'number' ? new Date(year, month - 1, date) : `${year}`,\n undefined,\n true\n );\n\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\" and year \"${year}\".`);\n }\n\n return result;\n }\n\n /** Get today */\n today(): Dayjs {\n return this._createDayjsDate().locale(this.locale).startOf('day');\n }\n\n /** Get now */\n now(): Dayjs {\n return this._createDayjsDate().locale(this.locale);\n }\n\n /** Add years to date */\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n /** Add months to date */\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n /** Add days to date */\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n /** Clone date */\n clone(date: Dayjs): Dayjs {\n if (!date) {\n return date;\n }\n\n if (this.locale) {\n return date.clone().locale(this.locale);\n }\n\n return date.clone();\n }\n\n /** Compare if dates are equal */\n datesEqual(date1: Dayjs, date2: Dayjs): boolean {\n if (!date1 || !date2) {\n return false;\n }\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\n /** Compare if dates and time are equal */\n dateTimesEqual(date1: Dayjs, date2: Dayjs): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return date1.isSame(date2);\n }\n\n /** Check if date is in range */\n isBetween(dateToCheck: Dayjs, startDate: Dayjs, endDate: Dayjs): boolean {\n if (!dateToCheck || !startDate || !endDate) {\n return false;\n }\n\n return dateToCheck.isBetween(startDate, endDate);\n }\n\n /** Check if date is valid date object */\n isValid(date: Nullable<Dayjs>): date is Dayjs {\n return !!date?.isValid();\n }\n\n /** Convert date to ISO8601 string */\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /** Check if time format includes day period */\n isTimeFormatIncludesDayPeriod(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[aA]/);\n }\n\n /** Check if time format includes hours */\n isTimeFormatIncludesHours(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[hH]/);\n }\n\n /** Check if time format includes minutes */\n isTimeFormatIncludesMinutes(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[m]/);\n }\n\n /** Check if time format includes seconds */\n isTimeFormatIncludesSeconds(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[s]/);\n }\n\n /**\n * @hidden\n * will attempt to parse longDataFormat (e.g. \"L\", \"LT\") and convert it to simple one.\n */\n _prepareFormat(displayFormat: string): string {\n displayFormat = displayFormat.trim();\n try {\n const formats: object = 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(\n /(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,\n (_, a, b) => a || formats[b] || displayFormat\n );\n } catch {\n return displayFormat;\n }\n }\n\n /** @hidden */\n _createDayjsDate(date?: ConfigType, format?: string, ignoreUtc = false): Dayjs {\n const { strict, useUtc }: DayjsDatetimeAdapterOptions = this._options || {};\n\n const method = useUtc && !ignoreUtc ? dayjs.utc : dayjs;\n let parsed = method(date, format, strict);\n // dayjs strictly follows the provided format\n // so partial strings will not be resolved. in this case attempt to resolve without formatting\n if (!parsed?.isValid() && !strict && format) {\n parsed = method(date, undefined, strict);\n }\n return parsed;\n }\n}\n\ninterface DateLocale {\n firstDayOfWeek: number;\n longMonths: string[];\n shortMonths: string[];\n narrowMonths: string[];\n longDaysOfWeek: string[];\n shortDaysOfWeek: string[];\n narrowDaysOfWeek: string[];\n}\n","import { DateTimeFormats } from '@fundamental-ngx/core/datetime';\n\nexport const DAYJS_DATETIME_FORMATS: DateTimeFormats = {\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\n dateA11yLabel: 'YYYY MMMM DD',\n monthA11yLabel: 'MMMM',\n yearA11yLabel: 'YYYY'\n },\n rangeDelimiter: ' - '\n};\n","import { NgModule } from '@angular/core';\nimport { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';\n\nimport { DayjsDatetimeAdapter } from './dayjs-datetime-adapter';\nimport { DAYJS_DATETIME_FORMATS } from './dayjs-datetime-formats';\n\n@NgModule({\n providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]\n})\nexport class DayjsDatetimeAdapterRawModule {}\n\n@NgModule({\n imports: [DayjsDatetimeAdapterRawModule],\n providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }]\n})\nexport class DayjsDatetimeAdapterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"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 }) {\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 let parsed = method(date, format, strict);\n // dayjs strictly follows the provided format\n // so partial strings will not be resolved. in this case attempt to resolve without formatting\n if (!parsed?.isValid() && !strict && format) {\n parsed = method(date, undefined, strict);\n }\n return parsed;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", 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.0.2\", ngImport: i0, type: DayjsDatetimeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", 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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QU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLDZDQUE2QztRQUM3Qyw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OEdBeFhRLG9CQUFvQixrQkFTTCxTQUFTLDZCQUNULCtCQUErQjtrSEFWOUMsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFVRixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIExPQ0FMRV9JRCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBDb25maWdUeXBlLCBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xuaW1wb3J0IGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGVEYXRhJztcbmltcG9ydCBsb2NhbGl6ZWRGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsaXplZEZvcm1hdCc7XG5pbXBvcnQgb2JqZWN0U3VwcG9ydCBmcm9tICdkYXlqcy9wbHVnaW4vb2JqZWN0U3VwcG9ydCc7XG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xuaW1wb3J0IHdlZWtPZlllYXIgZnJvbSAnZGF5anMvcGx1Z2luL3dlZWtPZlllYXInO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciwgRmREYXRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcblxuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIG1hcEZuOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IEFycmF5KGxlbmd0aCkpLm1hcCgoXywgaW5kZXgpID0+IG1hcEZuKGluZGV4KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zIHtcbiAgICBzdHJpY3Q/OiBib29sZWFuO1xuICAgIHVzZVV0Yz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9ucz4oXG4gICAgJ0RBWUpTX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMnLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICBmYWN0b3J5OiBEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUllcbiAgICB9XG4pO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERBWUpTX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlNfRkFDVE9SWSgpOiBEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIHVzZVV0YzogZmFsc2UsXG4gICAgICAgIHN0cmljdDogZmFsc2VcbiAgICB9O1xufVxuXG4vKipcbiAqIERhdGV0aW1lQWRhcHRlciBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBkYXlqcy5cbiAqXG4gKiBUaGlzIHVzZXMgZGF5anMgYXMgYSBkYXRlIG1vZGVsIGluc3RhbmNlLlxuICogSXQgcmVsaWVzIG9uIGRheWpzIGltcGxlbWVudGF0aW9uIGZvciBmb3JtYXR0aW5nIGFuZCB0cmFuc2xhdGlvbiBwdXJwb3Nlcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZXRpbWVBZGFwdGVyIGV4dGVuZHMgRGF0ZXRpbWVBZGFwdGVyPERheWpzPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kYXlqc0xvY2FsZURhdGE6IGRheWpzLkdsb2JhbExvY2FsZURhdGFSZXR1cm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xvY2FsZURhdGE6IERhdGVMb2NhbGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMRV9JRCkgbG9jYWxlSWQ6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zPzogRGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuICAgICAgICBkYXlqcy5leHRlbmQod2Vla09mWWVhcik7XG4gICAgICAgIGRheWpzLmV4dGVuZCh1dGMpO1xuICAgICAgICBkYXlqcy5leHRlbmQoaXNCZXR3ZWVuKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKG9iamVjdFN1cHBvcnQpO1xuICAgICAgICBkYXlqcy5leHRlbmQobG9jYWxpemVkRm9ybWF0KTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcblxuICAgICAgICB0aGlzLnNldExvY2FsZShsb2NhbGVJZCB8fCBkYXlqcy5sb2NhbGUoKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRlbiAqL1xuICAgIGZyb21Ob3c/KGRhdGU6IGRheWpzLkRheWpzKTogc3RyaW5nO1xuXG4gICAgLyoqIFNldCBsb2NhbGUgKi9cbiAgICBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSAnZW4tdXMnKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgRW5nbGlzaCBsb2NhbGUgbmFtZSBhcyBpdCdzIGEgZGVmYXVsdCBvbmUgYW5kIGl0IGlzIGRpZmZlcmVudFxuICAgICAgICAgICAgbG9jYWxlID0gJ2VuJztcbiAgICAgICAgfVxuICAgICAgICBkYXlqcy5sb2NhbGUobG9jYWxlKTtcblxuICAgICAgICBpZiAoZGF5anMubG9jYWxlKCkgIT09IGxvY2FsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gbG9hZCBsb2NhbGUgJHtsb2NhbGV9LiBgICtcbiAgICAgICAgICAgICAgICAgICAgJ01ha2Ugc3VyZSBpdCBleGlzdHMgYW5kIGlzIHByZWxvYWRlZC4gU2VlIHRoZSBpbXBvcnRzIGF0IHRoZSB0b3Agb2YgdGhlIGV4YW1wbGUgZmlsZSBhdCAnICtcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vc2FwLmdpdGh1Yi5pby9mdW5kYW1lbnRhbC1uZ3gvIy9jb3JlL2RheWpzLWRhdGV0aW1lLWFkYXB0ZXInICtcbiAgICAgICAgICAgICAgICAgICAgJ0xpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXMgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvdHJlZS9kZXYvc3JjL2xvY2FsZS4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGF5anNMb2NhbGVEYXRhID0gZGF5anMubG9jYWxlRGF0YSgpO1xuXG4gICAgICAgIHRoaXMuX2xvY2FsZURhdGEgPSB7XG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogdGhpcy5fZGF5anNMb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrKCksXG4gICAgICAgICAgICBsb25nTW9udGhzOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEubW9udGhzKCksXG4gICAgICAgICAgICBzaG9ydE1vbnRoczogdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1vbnRoc1Nob3J0KCksXG4gICAgICAgICAgICBuYXJyb3dNb250aHM6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tb250aHMoKS5tYXAoKG5hbWU6IHN0cmluZykgPT4gbmFtZS5jaGFyQXQoMCkpLFxuICAgICAgICAgICAgbG9uZ0RheXNPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS53ZWVrZGF5cygpLFxuICAgICAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEud2Vla2RheXNTaG9ydCgpLFxuICAgICAgICAgICAgbmFycm93RGF5c09mV2VlazogdGhpcy5fZGF5anNMb2NhbGVEYXRhLndlZWtkYXlzTWluKClcbiAgICAgICAgfTtcblxuICAgICAgICBzdXBlci5zZXRMb2NhbGUobG9jYWxlKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHllYXIgKi9cbiAgICBnZXRZZWFyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUueWVhcigpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbW9udGggKi9cbiAgICBnZXRNb250aChkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLm1vbnRoKCkgKyAxO1xuICAgIH1cblxuICAgIC8qKiBHZXQgZGF0ZSAqL1xuICAgIGdldERhdGUoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBkYXkgb2YgdGhlIHdlZWsgKi9cbiAgICBnZXREYXlPZldlZWsoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXkoKSArIDE7XG4gICAgfVxuXG4gICAgLyoqIEdldCBob3VycyAqL1xuICAgIGdldEhvdXJzKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuaG91cigpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbWludXRlcyAqL1xuICAgIGdldE1pbnV0ZXMoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5taW51dGUoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHNlY29uZHMgKi9cbiAgICBnZXRTZWNvbmRzKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuc2Vjb25kKCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBob3VycyBpbiBkYXRlIG9iamVjdCAqL1xuICAgIHNldEhvdXJzKGRhdGU6IERheWpzLCBob3VyczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5ob3VyKGhvdXJzKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IG1pbnV0ZXMgaW4gZGF0ZSBvYmplY3QgKi9cbiAgICBzZXRNaW51dGVzKGRhdGU6IERheWpzLCBtaW51dGVzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZShtaW51dGVzKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHNlY29uZHMgaW4gZGF0ZSBvYmplY3QgKi9cbiAgICBzZXRTZWNvbmRzKGRhdGU6IERheWpzLCBzZWNvbmRzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLnNlY29uZChzZWNvbmRzKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHdlZWsgbnVtYmVyICovXG4gICAgZ2V0V2Vla051bWJlcihkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLndlZWsoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1vbnRocyBuYW1lcyAqL1xuICAgIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgICAgY2FzZSAnbmFycm93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dNb250aHM7XG4gICAgICAgICAgICBjYXNlICdzaG9ydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XG4gICAgICAgICAgICBjYXNlICdsb25nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZXQgZGF0ZSBuYW1lcyAqL1xuICAgIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiByYW5nZSgzMSwgKGkpID0+IHRoaXMuY3JlYXRlRGF0ZSgyMDE3LCAwLCBpICsgMSkuZm9ybWF0KCdEJykpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgZGF5cyBvZiB3ZWVrIG5hbWVzICovXG4gICAgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgICAgY2FzZSAnbmFycm93JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dEYXlzT2ZXZWVrO1xuICAgICAgICAgICAgY2FzZSAnc2hvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0RGF5c09mV2VlaztcbiAgICAgICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBHZXQgeWVhciBuYW1lICovXG4gICAgZ2V0WWVhck5hbWUoZGF0ZTogRGF5anMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoJ1lZWVknKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHdlZWsgbmFtZSAqL1xuICAgIGdldFdlZWtOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRhdGUud2VlaygpLnRvTG9jYWxlU3RyaW5nKHRoaXMubG9jYWxlKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGhvdXIgbmFtZXMgKi9cbiAgICBnZXRIb3VyTmFtZXMoeyBtZXJpZGlhbiwgdHdvRGlnaXQgfTogeyB0d29EaWdpdDogYm9vbGVhbjsgbWVyaWRpYW46IGJvb2xlYW4gfSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZm9ybWF0OiBzdHJpbmcgPSBtZXJpZGlhbiA/ICh0d29EaWdpdCA/ICdoaCcgOiAnaCcpIDogdHdvRGlnaXQgPyAnSEgnIDogJ0gnO1xuICAgICAgICBjb25zdCBkYXlqc0RhdGUgPSB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoMjQsIChpKSA9PiB0aGlzLmNsb25lKGRheWpzRGF0ZSkuaG91cihpKS5mb3JtYXQoZm9ybWF0KSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBtaW51dGUgbmFtZXMgKi9cbiAgICBnZXRNaW51dGVOYW1lcyh7IHR3b0RpZ2l0IH06IHsgdHdvRGlnaXQ6IGJvb2xlYW4gfSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZm9ybWF0OiBzdHJpbmcgPSB0d29EaWdpdCA/ICdtbScgOiAnbSc7XG4gICAgICAgIGNvbnN0IGRheWpzRGF0ZSA9IHRoaXMuX2NyZWF0ZURheWpzRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiByYW5nZSg2MCwgKGkpID0+IHRoaXMuY2xvbmUoZGF5anNEYXRlKS5taW51dGUoaSkuZm9ybWF0KGZvcm1hdCkpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgc2Vjb25kIG5hbWVzICovXG4gICAgZ2V0U2Vjb25kTmFtZXMoeyB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gdHdvRGlnaXQgPyAnc3MnIDogJ3MnO1xuICAgICAgICBjb25zdCBkYXlqc0RhdGUgPSB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKGRheWpzRGF0ZSkuc2Vjb25kKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgR2V0IGRheSBwZXJpb2QgbmFtZXNcbiAgICAgKiBAcGFyYW0gaXNMb3dlciByZXNwb25zaWJsZSBmb3IgdGhlIGxvd2VyIGFuZCB1cHBlciBjYXNlcyBvZiB0aGUgcmVzdWx0XG4gICAgICovXG4gICAgZ2V0RGF5UGVyaW9kTmFtZXMoaXNMb3dlciA9IGZhbHNlKTogW3N0cmluZywgc3RyaW5nXSB7XG4gICAgICAgIGNvbnN0IEFNID0gdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1lcmlkaWVtPy4oNiwgMCwgaXNMb3dlcikgPz8gKGlzTG93ZXIgPyAnYW0nIDogJ0FNJyk7XG4gICAgICAgIGNvbnN0IFBNID0gdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1lcmlkaWVtPy4oMTYsIDAsIGlzTG93ZXIpID8/IChpc0xvd2VyID8gJ3BtJyA6ICdQTScpO1xuXG4gICAgICAgIHJldHVybiBbQU0sIFBNXTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGZpcnN0IGRheSBvZiB0aGUgd2VlayAqL1xuICAgIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoICovXG4gICAgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIC8qKiBUcnkgdG8gcGFyc2UgYSBzdHJpbmcgdG8gYSBkYXRlIG9iamVjdCAqL1xuICAgIHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBzdHJpbmcgPSAnJyk6IERheWpzIHwgbnVsbCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGF5anNEYXRlKHZhbHVlLCBwYXJzZUZvcm1hdCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGZERhdGUpIHtcbiAgICAgICAgICAgIC8vIEZkRGF0ZSBpbnN0YW5jZSBtYXkgYmUgaW5jb3JyZWN0bHkgcGFyc2VkIGJ5IERheUpTXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLl9jcmVhdGVEYXlqc0RhdGUodmFsdWUpLmxvY2FsZSh0aGlzLmxvY2FsZSkgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBGb3JtYXQgYSBkYXRlIGFzIGEgc3RyaW5nICovXG4gICAgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRGF5anNEYXRlVGltZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUubG9jYWxlKGRheWpzLmxvY2FsZSgpKS5mb3JtYXQoZGlzcGxheUZvcm1hdCk7XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBkYXRlIG9iamVjdCBmcm9tIHZhbHVlcyAqL1xuICAgIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF0ZT86IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKFxuICAgICAgICAgICAgdHlwZW9mIG1vbnRoID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicgPyBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRhdGUpIDogYCR7eWVhcn1gLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIgYW5kIHllYXIgXCIke3llYXJ9XCIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKiBHZXQgdG9kYXkgKi9cbiAgICB0b2RheSgpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKS5sb2NhbGUodGhpcy5sb2NhbGUpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbm93ICovXG4gICAgbm93KCk6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZURheWpzRGF0ZSgpLmxvY2FsZSh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEFkZCB5ZWFycyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXlqcywgeWVhcnM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuYWRkKHllYXJzLCAneWVhcicpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgbW9udGhzIHRvIGRhdGUgKi9cbiAgICBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXlqcywgbW9udGhzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZChtb250aHMsICdtb250aCcpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgZGF5cyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IERheWpzLCBkYXlzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgLyoqIENsb25lIGRhdGUgKi9cbiAgICBjbG9uZShkYXRlOiBEYXlqcyk6IERheWpzIHtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcbiAgICB9XG5cbiAgICAvKiogQ29tcGFyZSBpZiBkYXRlcyBhcmUgZXF1YWwgKi9cbiAgICBkYXRlc0VxdWFsKGRhdGUxOiBEYXlqcywgZGF0ZTI6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaW5jZSBkYXRlIG1heSBjb21lIGZyb20gYGNyZWF0ZURhdGVgIG1ldGhvZCB3aGljaCB1c2VzIGBsb2NhbGAgdGltZSwgd2UgbmVlZCB0byBjb252ZXJ0IGJvdGggZGF0ZXMgdG8gdGhlIHNhbWUgdGltZXpvbmUuXG4gICAgICAgIHJldHVybiBkYXRlMS5sb2NhbCgpLmlzU2FtZShkYXRlMi5sb2NhbCgpLCAnZGF5Jyk7XG4gICAgfVxuXG4gICAgLyoqIENvbXBhcmUgaWYgZGF0ZXMgYW5kIHRpbWUgYXJlIGVxdWFsICovXG4gICAgZGF0ZVRpbWVzRXF1YWwoZGF0ZTE6IERheWpzLCBkYXRlMjogRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlMS5pc1NhbWUoZGF0ZTIpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiBkYXRlIGlzIGluIHJhbmdlICovXG4gICAgaXNCZXR3ZWVuKGRhdGVUb0NoZWNrOiBEYXlqcywgc3RhcnREYXRlOiBEYXlqcywgZW5kRGF0ZTogRGF5anMpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFkYXRlVG9DaGVjayB8fCAhc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZVRvQ2hlY2suaXNCZXR3ZWVuKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIGRhdGUgaXMgdmFsaWQgZGF0ZSBvYmplY3QgKi9cbiAgICBpc1ZhbGlkKGRhdGU6IE51bGxhYmxlPERheWpzPik6IGRhdGUgaXMgRGF5anMge1xuICAgICAgICByZXR1cm4gISFkYXRlPy5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqIENvbnZlcnQgZGF0ZSB0byBJU084NjAxIHN0cmluZyAqL1xuICAgIHRvSXNvODYwMShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIGRheSBwZXJpb2QgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0RheVBlcmlvZChkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1thQV0vKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgdGltZSBmb3JtYXQgaW5jbHVkZXMgaG91cnMgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc0hvdXJzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW2hIXS8pO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBtaW51dGVzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNNaW51dGVzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW21dLyk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIHNlY29uZHMgKi9cbiAgICBpc1RpbWVGb3JtYXRJbmNsdWRlc1NlY29uZHMoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bc10vKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogd2lsbCBhdHRlbXB0IHRvIHBhcnNlIGxvbmdEYXRhRm9ybWF0IChlLmcuIFwiTFwiLCBcIkxUXCIpIGFuZCBjb252ZXJ0IGl0IHRvIHNpbXBsZSBvbmUuXG4gICAgICovXG4gICAgX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQudHJpbSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0czogb2JqZWN0ID0gZGF5anMuTHNbZGF5anMubG9jYWxlKCldLmZvcm1hdHM7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcGFyc2UgZm9ybWF0IHRha2VuIGZyb20gZGF5anMgcmVwb1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2lhbWt1bi9kYXlqcy9ibG9iL2Rldi9zcmMvcGx1Z2luL2xvY2FsaXplZEZvcm1hdC91dGlscy5qc1xuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlGb3JtYXQucmVwbGFjZShcbiAgICAgICAgICAgICAgICAvKFxcW1teXFxdXStdKXwoTFRTP3xsezEsNH18THsxLDR9KS9nLFxuICAgICAgICAgICAgICAgIChfLCBhLCBiKSA9PiBhIHx8IGZvcm1hdHNbYl0gfHwgZGlzcGxheUZvcm1hdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NyZWF0ZURheWpzRGF0ZShkYXRlPzogQ29uZmlnVHlwZSwgZm9ybWF0Pzogc3RyaW5nLCBpZ25vcmVVdGMgPSBmYWxzZSk6IERheWpzIHtcbiAgICAgICAgY29uc3QgeyBzdHJpY3QsIHVzZVV0YyB9OiBEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnMgPSB0aGlzLl9vcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHVzZVV0YyAmJiAhaWdub3JlVXRjID8gZGF5anMudXRjIDogZGF5anM7XG4gICAgICAgIGxldCBwYXJzZWQgPSBtZXRob2QoZGF0ZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICAvLyBkYXlqcyBzdHJpY3RseSBmb2xsb3dzIHRoZSBwcm92aWRlZCBmb3JtYXRcbiAgICAgICAgLy8gc28gcGFydGlhbCBzdHJpbmdzIHdpbGwgbm90IGJlIHJlc29sdmVkLiBpbiB0aGlzIGNhc2UgYXR0ZW1wdCB0byByZXNvbHZlIHdpdGhvdXQgZm9ybWF0dGluZ1xuICAgICAgICBpZiAoIXBhcnNlZD8uaXNWYWxpZCgpICYmICFzdHJpY3QgJiYgZm9ybWF0KSB7XG4gICAgICAgICAgICBwYXJzZWQgPSBtZXRob2QoZGF0ZSwgdW5kZWZpbmVkLCBzdHJpY3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgRGF0ZUxvY2FsZSB7XG4gICAgZmlyc3REYXlPZldlZWs6IG51bWJlcjtcbiAgICBsb25nTW9udGhzOiBzdHJpbmdbXTtcbiAgICBzaG9ydE1vbnRoczogc3RyaW5nW107XG4gICAgbmFycm93TW9udGhzOiBzdHJpbmdbXTtcbiAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW107XG4gICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbiAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbn1cbiJdfQ==","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQ25ELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLE1BQU07UUFDakIsYUFBYSxFQUFFLFFBQVE7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBEQVlKU19EQVRFVElNRV9GT1JNQVRTOiBEYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnbCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ2g6bW0nLFxuICAgICAgICBkYXRlVGltZUlucHV0OiAnbCBoOm1tJ1xuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdsJyxcbiAgICAgICAgdGltZUlucHV0OiAnaDptbSBBJyxcbiAgICAgICAgZGF0ZVRpbWVJbnB1dDogJ2wgaDptbSBBJyxcblxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnWVlZWSBNTU1NIEREJyxcbiAgICAgICAgbW9udGhBMTF5TGFiZWw6ICdNTU1NJyxcbiAgICAgICAgeWVhckExMXlMYWJlbDogJ1lZWVknXG4gICAgfSxcbiAgICByYW5nZURlbGltaXRlcjogJyAtICdcbn07XG4iXX0=","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.0.2\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.2\", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", 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.0.2\", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.2\", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", 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
@@ -1,3 +1,147 @@
1
- export * from './lib/dayjs-datetime-adapter';
2
- export * from './lib/dayjs-datetime-adapter.module';
3
- export * from './lib/dayjs-datetime-formats';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import dayjs, { Dayjs, ConfigType } from 'dayjs';
4
+ import { Nullable } from '@fundamental-ngx/cdk/utils';
5
+ import { DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';
6
+
7
+ interface DayjsDatetimeAdapterOptions {
8
+ strict?: boolean;
9
+ useUtc?: boolean;
10
+ }
11
+ declare const DAYJS_DATE_TIME_ADAPTER_OPTIONS: InjectionToken<DayjsDatetimeAdapterOptions>;
12
+ /** @hidden */
13
+ declare function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): DayjsDatetimeAdapterOptions;
14
+ /**
15
+ * DatetimeAdapter implementation based on dayjs.
16
+ *
17
+ * This uses dayjs as a date model instance.
18
+ * It relies on dayjs implementation for formatting and translation purposes.
19
+ */
20
+ declare class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {
21
+ private _options?;
22
+ /** @hidden */
23
+ private _dayjsLocaleData;
24
+ /** @hidden */
25
+ private _localeData;
26
+ /** @hidden */
27
+ constructor(localeId: string, _options?: DayjsDatetimeAdapterOptions | undefined);
28
+ /** @hiden */
29
+ fromNow?(date: dayjs.Dayjs): string;
30
+ /** Set locale */
31
+ setLocale(locale: string): void;
32
+ /** Get year */
33
+ getYear(date: Dayjs): number;
34
+ /** Get month */
35
+ getMonth(date: Dayjs): number;
36
+ /** Get date */
37
+ getDate(date: Dayjs): number;
38
+ /** Get day of the week */
39
+ getDayOfWeek(date: Dayjs): number;
40
+ /** Get hours */
41
+ getHours(date: Dayjs): number;
42
+ /** Get minutes */
43
+ getMinutes(date: Dayjs): number;
44
+ /** Get seconds */
45
+ getSeconds(date: Dayjs): number;
46
+ /** Set hours in date object */
47
+ setHours(date: Dayjs, hours: number): Dayjs;
48
+ /** Set minutes in date object */
49
+ setMinutes(date: Dayjs, minutes: number): Dayjs;
50
+ /** Set seconds in date object */
51
+ setSeconds(date: Dayjs, seconds: number): Dayjs;
52
+ /** Get week number */
53
+ getWeekNumber(date: Dayjs): number;
54
+ /** Get months names */
55
+ getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
56
+ /** Get date names */
57
+ getDateNames(): string[];
58
+ /** Get days of week names */
59
+ getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
60
+ /** Get year name */
61
+ getYearName(date: Dayjs): string;
62
+ /** Get week name */
63
+ getWeekName(date: Dayjs): string;
64
+ /** Get hour names */
65
+ getHourNames({ meridian, twoDigit }: {
66
+ twoDigit: boolean;
67
+ meridian: boolean;
68
+ }): string[];
69
+ /** Get minute names */
70
+ getMinuteNames({ twoDigit }: {
71
+ twoDigit: boolean;
72
+ }): string[];
73
+ /** Get second names */
74
+ getSecondNames({ twoDigit }: {
75
+ twoDigit: boolean;
76
+ }): string[];
77
+ /**
78
+ * Get day period names
79
+ * @param isLower responsible for the lower and upper cases of the result
80
+ */
81
+ getDayPeriodNames(isLower?: boolean): [string, string];
82
+ /** Get first day of the week */
83
+ getFirstDayOfWeek(): number;
84
+ /** Get number of days in the month */
85
+ getNumDaysInMonth(date: Dayjs): number;
86
+ /** Try to parse a string to a date object */
87
+ parse(value: any, parseFormat?: string): Dayjs | null;
88
+ /** Format a date as a string */
89
+ format(date: Dayjs, displayFormat: string): string;
90
+ /** Create date object from values */
91
+ createDate(year: number, month?: number, date?: number): Dayjs;
92
+ /** Get today */
93
+ today(): Dayjs;
94
+ /** Get now */
95
+ now(): Dayjs;
96
+ /** Add years to date */
97
+ addCalendarYears(date: Dayjs, years: number): Dayjs;
98
+ /** Add months to date */
99
+ addCalendarMonths(date: Dayjs, months: number): Dayjs;
100
+ /** Add days to date */
101
+ addCalendarDays(date: Dayjs, days: number): Dayjs;
102
+ /** Clone date */
103
+ clone(date: Dayjs): Dayjs;
104
+ /** Compare if dates are equal */
105
+ datesEqual(date1: Dayjs, date2: Dayjs): boolean;
106
+ /** Compare if dates and time are equal */
107
+ dateTimesEqual(date1: Dayjs, date2: Dayjs): boolean;
108
+ /** Check if date is in range */
109
+ isBetween(dateToCheck: Dayjs, startDate: Dayjs, endDate: Dayjs): boolean;
110
+ /** Check if date is valid date object */
111
+ isValid(date: Nullable<Dayjs>): date is Dayjs;
112
+ /** Convert date to ISO8601 string */
113
+ toIso8601(date: Dayjs): string;
114
+ /** Check if time format includes day period */
115
+ isTimeFormatIncludesDayPeriod(displayFormat: string): boolean;
116
+ /** Check if time format includes hours */
117
+ isTimeFormatIncludesHours(displayFormat: string): boolean;
118
+ /** Check if time format includes minutes */
119
+ isTimeFormatIncludesMinutes(displayFormat: string): boolean;
120
+ /** Check if time format includes seconds */
121
+ isTimeFormatIncludesSeconds(displayFormat: string): boolean;
122
+ /**
123
+ * @hidden
124
+ * will attempt to parse longDataFormat (e.g. "L", "LT") and convert it to simple one.
125
+ */
126
+ _prepareFormat(displayFormat: string): string;
127
+ /** @hidden */
128
+ _createDayjsDate(date?: ConfigType, format?: string, ignoreUtc?: boolean): Dayjs;
129
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapter, [{ optional: true; }, { optional: true; }]>;
130
+ static ɵprov: i0.ɵɵInjectableDeclaration<DayjsDatetimeAdapter>;
131
+ }
132
+
133
+ declare class DayjsDatetimeAdapterRawModule {
134
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapterRawModule, never>;
135
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DayjsDatetimeAdapterRawModule, never, never, never>;
136
+ static ɵinj: i0.ɵɵInjectorDeclaration<DayjsDatetimeAdapterRawModule>;
137
+ }
138
+ declare class DayjsDatetimeAdapterModule {
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapterModule, never>;
140
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DayjsDatetimeAdapterModule, never, [typeof DayjsDatetimeAdapterRawModule], never>;
141
+ static ɵinj: i0.ɵɵInjectorDeclaration<DayjsDatetimeAdapterModule>;
142
+ }
143
+
144
+ declare const DAYJS_DATETIME_FORMATS: DateTimeFormats;
145
+
146
+ export { DAYJS_DATETIME_FORMATS, DAYJS_DATE_TIME_ADAPTER_OPTIONS, DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY, DayjsDatetimeAdapter, DayjsDatetimeAdapterModule, DayjsDatetimeAdapterRawModule };
147
+ export type { DayjsDatetimeAdapterOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/datetime-adapter",
3
- "version": "0.56.4",
3
+ "version": "0.57.0-rc.0",
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/home",
@@ -9,7 +9,7 @@
9
9
  "url": "https://github.com/SAP/fundamental-ngx"
10
10
  },
11
11
  "peerDependencies": {
12
- "@fundamental-ngx/core": "0.56.4",
12
+ "@fundamental-ngx/core": "0.57.0-rc.0",
13
13
  "dayjs": "^1.11.0"
14
14
  },
15
15
  "dependencies": {
@@ -1,130 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import dayjs, { ConfigType, Dayjs } from 'dayjs';
3
- import { Nullable } from '@fundamental-ngx/cdk/utils';
4
- import { DatetimeAdapter } from '@fundamental-ngx/core/datetime';
5
- import * as i0 from "@angular/core";
6
- export interface DayjsDatetimeAdapterOptions {
7
- strict?: boolean;
8
- useUtc?: boolean;
9
- }
10
- export declare const DAYJS_DATE_TIME_ADAPTER_OPTIONS: InjectionToken<DayjsDatetimeAdapterOptions>;
11
- /** @hidden */
12
- export declare function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY(): DayjsDatetimeAdapterOptions;
13
- /**
14
- * DatetimeAdapter implementation based on dayjs.
15
- *
16
- * This uses dayjs as a date model instance.
17
- * It relies on dayjs implementation for formatting and translation purposes.
18
- */
19
- export declare class DayjsDatetimeAdapter extends DatetimeAdapter<Dayjs> {
20
- private _options?;
21
- /** @hidden */
22
- private _dayjsLocaleData;
23
- /** @hidden */
24
- private _localeData;
25
- /** @hidden */
26
- constructor(localeId: string, _options?: DayjsDatetimeAdapterOptions | undefined);
27
- /** @hiden */
28
- fromNow?(date: dayjs.Dayjs): string;
29
- /** Set locale */
30
- setLocale(locale: string): void;
31
- /** Get year */
32
- getYear(date: Dayjs): number;
33
- /** Get month */
34
- getMonth(date: Dayjs): number;
35
- /** Get date */
36
- getDate(date: Dayjs): number;
37
- /** Get day of the week */
38
- getDayOfWeek(date: Dayjs): number;
39
- /** Get hours */
40
- getHours(date: Dayjs): number;
41
- /** Get minutes */
42
- getMinutes(date: Dayjs): number;
43
- /** Get seconds */
44
- getSeconds(date: Dayjs): number;
45
- /** Set hours in date object */
46
- setHours(date: Dayjs, hours: number): Dayjs;
47
- /** Set minutes in date object */
48
- setMinutes(date: Dayjs, minutes: number): Dayjs;
49
- /** Set seconds in date object */
50
- setSeconds(date: Dayjs, seconds: number): Dayjs;
51
- /** Get week number */
52
- getWeekNumber(date: Dayjs): number;
53
- /** Get months names */
54
- getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
55
- /** Get date names */
56
- getDateNames(): string[];
57
- /** Get days of week names */
58
- getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
59
- /** Get year name */
60
- getYearName(date: Dayjs): string;
61
- /** Get week name */
62
- getWeekName(date: Dayjs): string;
63
- /** Get hour names */
64
- getHourNames({ meridian, twoDigit }: {
65
- twoDigit: boolean;
66
- meridian: boolean;
67
- }): string[];
68
- /** Get minute names */
69
- getMinuteNames({ twoDigit }: {
70
- twoDigit: boolean;
71
- }): string[];
72
- /** Get second names */
73
- getSecondNames({ twoDigit }: {
74
- twoDigit: boolean;
75
- }): string[];
76
- /**
77
- * Get day period names
78
- * @param isLower responsible for the lower and upper cases of the result
79
- */
80
- getDayPeriodNames(isLower?: boolean): [string, string];
81
- /** Get first day of the week */
82
- getFirstDayOfWeek(): number;
83
- /** Get number of days in the month */
84
- getNumDaysInMonth(date: Dayjs): number;
85
- /** Try to parse a string to a date object */
86
- parse(value: any, parseFormat?: string): Dayjs | null;
87
- /** Format a date as a string */
88
- format(date: Dayjs, displayFormat: string): string;
89
- /** Create date object from values */
90
- createDate(year: number, month?: number, date?: number): Dayjs;
91
- /** Get today */
92
- today(): Dayjs;
93
- /** Get now */
94
- now(): Dayjs;
95
- /** Add years to date */
96
- addCalendarYears(date: Dayjs, years: number): Dayjs;
97
- /** Add months to date */
98
- addCalendarMonths(date: Dayjs, months: number): Dayjs;
99
- /** Add days to date */
100
- addCalendarDays(date: Dayjs, days: number): Dayjs;
101
- /** Clone date */
102
- clone(date: Dayjs): Dayjs;
103
- /** Compare if dates are equal */
104
- datesEqual(date1: Dayjs, date2: Dayjs): boolean;
105
- /** Compare if dates and time are equal */
106
- dateTimesEqual(date1: Dayjs, date2: Dayjs): boolean;
107
- /** Check if date is in range */
108
- isBetween(dateToCheck: Dayjs, startDate: Dayjs, endDate: Dayjs): boolean;
109
- /** Check if date is valid date object */
110
- isValid(date: Nullable<Dayjs>): date is Dayjs;
111
- /** Convert date to ISO8601 string */
112
- toIso8601(date: Dayjs): string;
113
- /** Check if time format includes day period */
114
- isTimeFormatIncludesDayPeriod(displayFormat: string): boolean;
115
- /** Check if time format includes hours */
116
- isTimeFormatIncludesHours(displayFormat: string): boolean;
117
- /** Check if time format includes minutes */
118
- isTimeFormatIncludesMinutes(displayFormat: string): boolean;
119
- /** Check if time format includes seconds */
120
- isTimeFormatIncludesSeconds(displayFormat: string): boolean;
121
- /**
122
- * @hidden
123
- * will attempt to parse longDataFormat (e.g. "L", "LT") and convert it to simple one.
124
- */
125
- _prepareFormat(displayFormat: string): string;
126
- /** @hidden */
127
- _createDayjsDate(date?: ConfigType, format?: string, ignoreUtc?: boolean): Dayjs;
128
- static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapter, [{ optional: true; }, { optional: true; }]>;
129
- static ɵprov: i0.ɵɵInjectableDeclaration<DayjsDatetimeAdapter>;
130
- }
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class DayjsDatetimeAdapterRawModule {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapterRawModule, never>;
4
- static ɵmod: i0.ɵɵNgModuleDeclaration<DayjsDatetimeAdapterRawModule, never, never, never>;
5
- static ɵinj: i0.ɵɵInjectorDeclaration<DayjsDatetimeAdapterRawModule>;
6
- }
7
- export declare class DayjsDatetimeAdapterModule {
8
- static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDatetimeAdapterModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<DayjsDatetimeAdapterModule, never, [typeof DayjsDatetimeAdapterRawModule], never>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<DayjsDatetimeAdapterModule>;
11
- }
@@ -1,2 +0,0 @@
1
- import { DateTimeFormats } from '@fundamental-ngx/core/datetime';
2
- export declare const DAYJS_DATETIME_FORMATS: DateTimeFormats;