@fundamental-ngx/datetime-adapter 0.54.2 → 0.55.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.
@@ -305,7 +305,7 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
305
305
  // https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/utils.js
306
306
  return displayFormat.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => a || formats[b] || displayFormat);
307
307
  }
308
- catch (e) {
308
+ catch {
309
309
  return displayFormat;
310
310
  }
311
311
  }
@@ -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: "18.0.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: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapter }); }
324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.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.0.3", ngImport: i0, type: DayjsDatetimeAdapter }); }
326
326
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", 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: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }
361
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }
359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
360
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }
361
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", 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: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }
372
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.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: "19.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
371
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }
372
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", 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: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", 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 (e) {\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 A',\n dateTimeInput: 'l h:mm A'\n },\n display: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A',\n\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":";;;;;;;;;;;;AAaA,SAAS,KAAK,CAAI,MAAc,EAAE,KAA2B,EAAA;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AACxE;MAOa,+BAA+B,GAAG,IAAI,cAAc,CAC7D,iCAAiC,EACjC;AACI,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE;AACZ,CAAA;AAGL;SACgB,uCAAuC,GAAA;IACnD,OAAO;AACH,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,MAAM,EAAE;KACX;AACL;AAEA;;;;;AAKG;AAEG,MAAO,oBAAqB,SAAQ,eAAsB,CAAA;;IAQ5D,WACmC,CAAA,QAAgB,EACc,QAAsC,EAAA;AAEnG,QAAA,KAAK,EAAE;QAFsD,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAIrE,QAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACjB,QAAA,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AACvB,QAAA,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;AAC3B,QAAA,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;AAC7B,QAAA,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;;;AAO9C,IAAA,SAAS,CAAC,MAAc,EAAA;AACpB,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;;YAElC,MAAM,GAAG,IAAI;;AAEjB,QAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAEpB,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,sBAAA,EAAyB,MAAM,CAAI,EAAA,CAAA;gBAC/B,0FAA0F;gBAC1F,qEAAqE;AACrE,gBAAA,mGAAmG,CAC1G;;AAGL,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,EAAE;QAE1C,IAAI,CAAC,WAAW,GAAG;AACf,YAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE;AACtD,YAAA,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAC1C,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAChD,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClF,YAAA,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AAChD,YAAA,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;AACtD,YAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW;SACtD;AAED,QAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;;;AAI3B,IAAA,OAAO,CAAC,IAAW,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;;;AAItB,IAAA,QAAQ,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;;;AAI3B,IAAA,OAAO,CAAC,IAAW,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;;;AAItB,IAAA,YAAY,CAAC,IAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;;;AAIzB,IAAA,QAAQ,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;;;AAItB,IAAA,UAAU,CAAC,IAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;;;AAIxB,IAAA,UAAU,CAAC,IAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;;;IAIxB,QAAQ,CAAC,IAAW,EAAE,KAAa,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAI3B,UAAU,CAAC,IAAW,EAAE,OAAe,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;;;IAI/B,UAAU,CAAC,IAAW,EAAE,OAAe,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;;;AAI/B,IAAA,aAAa,CAAC,IAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;;;AAItB,IAAA,aAAa,CAAC,KAAkC,EAAA;QAC5C,QAAQ,KAAK;AACT,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;AACxC,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW;AACvC,YAAA,KAAK,MAAM;AACX,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;;;;IAK9C,YAAY,GAAA;QACR,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;;AAIxE,IAAA,iBAAiB,CAAC,KAAkC,EAAA;QAChD,QAAQ,KAAK;AACT,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB;AAC5C,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe;AAC3C,YAAA,KAAK,MAAM;AACX,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;;;;AAKlD,IAAA,WAAW,CAAC,IAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;;AAI9B,IAAA,WAAW,CAAC,IAAW,EAAA;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;;;AAIlD,IAAA,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAA4C,EAAA;AACzE,QAAA,MAAM,MAAM,GAAW,QAAQ,IAAI,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,QAAQ,GAAG,IAAI,GAAG,GAAG;AACjF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAEzC,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;IAIzE,cAAc,CAAC,EAAE,QAAQ,EAAyB,EAAA;QAC9C,MAAM,MAAM,GAAW,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC5C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAEzC,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;IAI3E,cAAc,CAAC,EAAE,QAAQ,EAAyB,EAAA;QAC9C,MAAM,MAAM,GAAW,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC5C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAEzC,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;AAG3E;;;AAGG;IACH,iBAAiB,CAAC,OAAO,GAAG,KAAK,EAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QACrF,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtF,QAAA,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;;;IAInB,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;;;AAI1C,IAAA,iBAAiB,CAAC,IAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;;AAI7B,IAAA,KAAK,CAAC,KAAU,EAAE,WAAA,GAAsB,EAAE,EAAA;AACtC,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC;;AAC7C,aAAA,IAAI,KAAK,YAAY,MAAM,EAAE;;AAEhC,YAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;;QAG5B,OAAO,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;;;IAI1E,MAAM,CAAC,IAAW,EAAE,aAAqB,EAAA;QACrC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,EAAE;;QAGb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,MAAM,KAAK,CAAC,mDAAmD,CAAC;;AAGpE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;;;AAI5D,IAAA,UAAU,CAAC,IAAY,EAAE,KAAc,EAAE,IAAa,EAAA;AAClD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAChC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAA,EAAG,IAAI,CAAE,CAAA,EACnG,SAAS,EACT,IAAI,CACP;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YACnB,MAAM,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAA,wBAAA,EAA2B,KAAK,CAAe,YAAA,EAAA,IAAI,CAAI,EAAA,CAAA,CAAC;;AAG7F,QAAA,OAAO,MAAM;;;IAIjB,KAAK,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;;;IAIrE,GAAG,GAAA;QACC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;;IAItD,gBAAgB,CAAC,IAAW,EAAE,KAAa,EAAA;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;;;IAIlC,iBAAiB,CAAC,IAAW,EAAE,MAAc,EAAA;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;;;IAIpC,eAAe,CAAC,IAAW,EAAE,IAAY,EAAA;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;;;AAIhC,IAAA,KAAK,CAAC,IAAW,EAAA;QACb,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,IAAI;;AAGf,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG3C,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;;;IAIvB,UAAU,CAAC,KAAY,EAAE,KAAY,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,KAAK;;;AAIhB,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC;;;IAIrD,cAAc,CAAC,KAAY,EAAE,KAAY,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,KAAK;;AAGhB,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;;AAI9B,IAAA,SAAS,CAAC,WAAkB,EAAE,SAAgB,EAAE,OAAc,EAAA;QAC1D,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AACxC,YAAA,OAAO,KAAK;;QAGhB,OAAO,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC;;;AAIpD,IAAA,OAAO,CAAC,IAAqB,EAAA;AACzB,QAAA,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;;;AAI5B,IAAA,SAAS,CAAC,IAAW,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;;AAI7B,IAAA,6BAA6B,CAAC,aAAqB,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QAEjD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;;;AAIjC,IAAA,yBAAyB,CAAC,aAAqB,EAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QAEjD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;;;AAIjC,IAAA,2BAA2B,CAAC,aAAqB,EAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QAEjD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;;AAIhC,IAAA,2BAA2B,CAAC,aAAqB,EAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QAEjD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;;AAGhC;;;AAGG;AACH,IAAA,cAAc,CAAC,aAAqB,EAAA;AAChC,QAAA,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE;AACpC,QAAA,IAAI;AACA,YAAA,MAAM,OAAO,GAAW,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO;;;YAGxD,OAAO,aAAa,CAAC,OAAO,CACxB,mCAAmC,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,aAAa,CAChD;;QACH,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,aAAa;;;;AAK5B,IAAA,gBAAgB,CAAC,IAAiB,EAAE,MAAe,EAAE,SAAS,GAAG,KAAK,EAAA;QAClE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAgC,IAAI,CAAC,QAAQ,IAAI,EAAE;AAE3E,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK;QACvD,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;;;QAGzC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE;YACzC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;;AAE5C,QAAA,OAAO,MAAM;;8GAvXR,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EASL,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACT,+BAA+B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAV9C,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;0BAUQ;;0BAAY,MAAM;2BAAC,SAAS;;0BAC5B;;0BAAY,MAAM;2BAAC,+BAA+B;;;ACrD9C,MAAA,sBAAsB,GAAoB;AACnD,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,GAAG;AACd,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,aAAa,EAAE;AAClB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,SAAS,EAAE,GAAG;AACd,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,aAAa,EAAE,UAAU;AAEzB,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,aAAa,EAAE;AAClB,KAAA;AACD,IAAA,cAAc,EAAE;;;MCRP,6BAA6B,CAAA;8GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAA7B,6BAA6B,EAAA,CAAA,CAAA;+GAA7B,6BAA6B,EAAA,SAAA,EAF3B,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,EAAA,CAAA,CAAA;;2FAEhE,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AAC3E,iBAAA;;MAOY,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAN1B,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAM7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAFxB,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,YADnE,6BAA6B,CAAA,EAAA,CAAA,CAAA;;2FAG9B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,6BAA6B,CAAC;oBACxC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,sBAAsB,EAAE;AAC/E,iBAAA;;;ACdD;;AAEG;;;;"}
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 A',\n dateTimeInput: 'l h:mm A'\n },\n display: {\n dateInput: 'l',\n timeInput: 'h:mm A',\n dateTimeInput: 'l h:mm A',\n\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/datetime-adapter",
3
- "version": "0.54.2",
3
+ "version": "0.55.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.54.2",
12
+ "@fundamental-ngx/core": "0.55.0-rc.0",
13
13
  "dayjs": "^1.11.0"
14
14
  },
15
15
  "dependencies": {
@@ -26,8 +26,6 @@
26
26
  },
27
27
  ".": {
28
28
  "types": "./index.d.ts",
29
- "esm2022": "./esm2022/fundamental-ngx-datetime-adapter.mjs",
30
- "esm": "./esm2022/fundamental-ngx-datetime-adapter.mjs",
31
29
  "default": "./fesm2022/fundamental-ngx-datetime-adapter.mjs"
32
30
  }
33
31
  },
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWRhdGV0aW1lLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2Z1bmRhbWVudGFsLW5neC1kYXRldGltZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
package/esm2022/index.mjs DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/dayjs-datetime-adapter';
2
- export * from './lib/dayjs-datetime-adapter.module';
3
- export * from './lib/dayjs-datetime-formats';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGF5anMtZGF0ZXRpbWUtYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXlqcy1kYXRldGltZS1hZGFwdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXlqcy1kYXRldGltZS1mb3JtYXRzJztcbiJdfQ==
@@ -1,339 +0,0 @@
1
- import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';
2
- import dayjs from 'dayjs';
3
- import customParseFormat from 'dayjs/plugin/customParseFormat';
4
- import isBetween from 'dayjs/plugin/isBetween';
5
- import localeData from 'dayjs/plugin/localeData';
6
- import localizedFormat from 'dayjs/plugin/localizedFormat';
7
- import objectSupport from 'dayjs/plugin/objectSupport';
8
- import utc from 'dayjs/plugin/utc';
9
- import weekOfYear from 'dayjs/plugin/weekOfYear';
10
- import { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';
11
- import * as i0 from "@angular/core";
12
- function range(length, mapFn) {
13
- return Array.from(new Array(length)).map((_, index) => mapFn(index));
14
- }
15
- export const DAYJS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('DAYJS_DATE_TIME_ADAPTER_OPTIONS', {
16
- providedIn: 'root',
17
- factory: DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY
18
- });
19
- /** @hidden */
20
- export function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {
21
- return {
22
- useUtc: false,
23
- strict: false
24
- };
25
- }
26
- /**
27
- * DatetimeAdapter implementation based on dayjs.
28
- *
29
- * This uses dayjs as a date model instance.
30
- * It relies on dayjs implementation for formatting and translation purposes.
31
- */
32
- export class DayjsDatetimeAdapter extends DatetimeAdapter {
33
- /** @hidden */
34
- constructor(localeId, _options) {
35
- super();
36
- this._options = _options;
37
- dayjs.extend(localeData);
38
- dayjs.extend(weekOfYear);
39
- dayjs.extend(utc);
40
- dayjs.extend(isBetween);
41
- dayjs.extend(objectSupport);
42
- dayjs.extend(localizedFormat);
43
- dayjs.extend(customParseFormat);
44
- this.setLocale(localeId || dayjs.locale());
45
- }
46
- /** Set locale */
47
- setLocale(locale) {
48
- if (locale.toLowerCase() === 'en-us') {
49
- // Handle English locale name as it's a default one and it is different
50
- locale = 'en';
51
- }
52
- dayjs.locale(locale);
53
- if (dayjs.locale() !== locale) {
54
- throw new Error(`Failed to load locale ${locale}. ` +
55
- 'Make sure it exists and is preloaded. See the imports at the top of the example file at ' +
56
- 'https://sap.github.io/fundamental-ngx/#/core/dayjs-datetime-adapter' +
57
- 'List of supported locales can be found here: https://github.com/iamkun/dayjs/tree/dev/src/locale.');
58
- }
59
- this._dayjsLocaleData = dayjs.localeData();
60
- this._localeData = {
61
- firstDayOfWeek: this._dayjsLocaleData.firstDayOfWeek(),
62
- longMonths: this._dayjsLocaleData.months(),
63
- shortMonths: this._dayjsLocaleData.monthsShort(),
64
- narrowMonths: this._dayjsLocaleData.months().map((name) => name.charAt(0)),
65
- longDaysOfWeek: this._dayjsLocaleData.weekdays(),
66
- shortDaysOfWeek: this._dayjsLocaleData.weekdaysShort(),
67
- narrowDaysOfWeek: this._dayjsLocaleData.weekdaysMin()
68
- };
69
- super.setLocale(locale);
70
- }
71
- /** Get year */
72
- getYear(date) {
73
- return date.year();
74
- }
75
- /** Get month */
76
- getMonth(date) {
77
- return date.month() + 1;
78
- }
79
- /** Get date */
80
- getDate(date) {
81
- return date.date();
82
- }
83
- /** Get day of the week */
84
- getDayOfWeek(date) {
85
- return date.day() + 1;
86
- }
87
- /** Get hours */
88
- getHours(date) {
89
- return date.hour();
90
- }
91
- /** Get minutes */
92
- getMinutes(date) {
93
- return date.minute();
94
- }
95
- /** Get seconds */
96
- getSeconds(date) {
97
- return date.second();
98
- }
99
- /** Set hours in date object */
100
- setHours(date, hours) {
101
- return date.hour(hours);
102
- }
103
- /** Set minutes in date object */
104
- setMinutes(date, minutes) {
105
- return date.minute(minutes);
106
- }
107
- /** Set seconds in date object */
108
- setSeconds(date, seconds) {
109
- return date.second(seconds);
110
- }
111
- /** Get week number */
112
- getWeekNumber(date) {
113
- return date.week();
114
- }
115
- /** Get months names */
116
- getMonthNames(style) {
117
- switch (style) {
118
- case 'narrow':
119
- return this._localeData.narrowMonths;
120
- case 'short':
121
- return this._localeData.shortMonths;
122
- case 'long':
123
- default:
124
- return this._localeData.longMonths;
125
- }
126
- }
127
- /** Get date names */
128
- getDateNames() {
129
- return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));
130
- }
131
- /** Get days of week names */
132
- getDayOfWeekNames(style) {
133
- switch (style) {
134
- case 'narrow':
135
- return this._localeData.narrowDaysOfWeek;
136
- case 'short':
137
- return this._localeData.shortDaysOfWeek;
138
- case 'long':
139
- default:
140
- return this._localeData.longDaysOfWeek;
141
- }
142
- }
143
- /** Get year name */
144
- getYearName(date) {
145
- return date.format('YYYY');
146
- }
147
- /** Get week name */
148
- getWeekName(date) {
149
- return date.week().toLocaleString(this.locale);
150
- }
151
- /** Get hour names */
152
- getHourNames({ meridian, twoDigit }) {
153
- const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';
154
- const dayjsDate = this._createDayjsDate();
155
- return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));
156
- }
157
- /** Get minute names */
158
- getMinuteNames({ twoDigit }) {
159
- const format = twoDigit ? 'mm' : 'm';
160
- const dayjsDate = this._createDayjsDate();
161
- return range(60, (i) => this.clone(dayjsDate).minute(i).format(format));
162
- }
163
- /** Get second names */
164
- getSecondNames({ twoDigit }) {
165
- const format = twoDigit ? 'ss' : 's';
166
- const dayjsDate = this._createDayjsDate();
167
- return range(60, (i) => this.clone(dayjsDate).second(i).format(format));
168
- }
169
- /**
170
- * Get day period names
171
- * @param isLower responsible for the lower and upper cases of the result
172
- */
173
- getDayPeriodNames(isLower = false) {
174
- const AM = this._dayjsLocaleData.meridiem?.(6, 0, isLower) ?? (isLower ? 'am' : 'AM');
175
- const PM = this._dayjsLocaleData.meridiem?.(16, 0, isLower) ?? (isLower ? 'pm' : 'PM');
176
- return [AM, PM];
177
- }
178
- /** Get first day of the week */
179
- getFirstDayOfWeek() {
180
- return this._localeData.firstDayOfWeek;
181
- }
182
- /** Get number of days in the month */
183
- getNumDaysInMonth(date) {
184
- return date.daysInMonth();
185
- }
186
- /** Try to parse a string to a date object */
187
- parse(value, parseFormat = '') {
188
- if (value && typeof value === 'string') {
189
- return this._createDayjsDate(value, parseFormat);
190
- }
191
- else if (value instanceof FdDate) {
192
- // FdDate instance may be incorrectly parsed by DayJS
193
- value = value.toString();
194
- }
195
- return value ? this._createDayjsDate(value).locale(this.locale) : null;
196
- }
197
- /** Format a date as a string */
198
- format(date, displayFormat) {
199
- if (!date) {
200
- return '';
201
- }
202
- if (!this.isValid(date)) {
203
- throw Error('DayjsDateTimeAdapter: Cannot format invalid date.');
204
- }
205
- return date.locale(dayjs.locale()).format(displayFormat);
206
- }
207
- /** Create date object from values */
208
- createDate(year, month, date) {
209
- const result = this._createDayjsDate(typeof month === 'number' && typeof date === 'number' ? new Date(year, month - 1, date) : `${year}`, undefined, true);
210
- if (!result.isValid()) {
211
- throw Error(`Invalid date "${date}" for month with index "${month}" and year "${year}".`);
212
- }
213
- return result;
214
- }
215
- /** Get today */
216
- today() {
217
- return this._createDayjsDate().locale(this.locale).startOf('day');
218
- }
219
- /** Get now */
220
- now() {
221
- return this._createDayjsDate().locale(this.locale);
222
- }
223
- /** Add years to date */
224
- addCalendarYears(date, years) {
225
- return date.add(years, 'year');
226
- }
227
- /** Add months to date */
228
- addCalendarMonths(date, months) {
229
- return date.add(months, 'month');
230
- }
231
- /** Add days to date */
232
- addCalendarDays(date, days) {
233
- return date.add(days, 'day');
234
- }
235
- /** Clone date */
236
- clone(date) {
237
- if (!date) {
238
- return date;
239
- }
240
- if (this.locale) {
241
- return date.clone().locale(this.locale);
242
- }
243
- return date.clone();
244
- }
245
- /** Compare if dates are equal */
246
- datesEqual(date1, date2) {
247
- if (!date1 || !date2) {
248
- return false;
249
- }
250
- // Since date may come from `createDate` method which uses `local` time, we need to convert both dates to the same timezone.
251
- return date1.local().isSame(date2.local(), 'day');
252
- }
253
- /** Compare if dates and time are equal */
254
- dateTimesEqual(date1, date2) {
255
- if (!date1 || !date2) {
256
- return false;
257
- }
258
- return date1.isSame(date2);
259
- }
260
- /** Check if date is in range */
261
- isBetween(dateToCheck, startDate, endDate) {
262
- if (!dateToCheck || !startDate || !endDate) {
263
- return false;
264
- }
265
- return dateToCheck.isBetween(startDate, endDate);
266
- }
267
- /** Check if date is valid date object */
268
- isValid(date) {
269
- return !!date?.isValid();
270
- }
271
- /** Convert date to ISO8601 string */
272
- toIso8601(date) {
273
- return date.toISOString();
274
- }
275
- /** Check if time format includes day period */
276
- isTimeFormatIncludesDayPeriod(displayFormat) {
277
- const format = this._prepareFormat(displayFormat);
278
- return !!format.match(/[aA]/);
279
- }
280
- /** Check if time format includes hours */
281
- isTimeFormatIncludesHours(displayFormat) {
282
- const format = this._prepareFormat(displayFormat);
283
- return !!format.match(/[hH]/);
284
- }
285
- /** Check if time format includes minutes */
286
- isTimeFormatIncludesMinutes(displayFormat) {
287
- const format = this._prepareFormat(displayFormat);
288
- return !!format.match(/[m]/);
289
- }
290
- /** Check if time format includes seconds */
291
- isTimeFormatIncludesSeconds(displayFormat) {
292
- const format = this._prepareFormat(displayFormat);
293
- return !!format.match(/[s]/);
294
- }
295
- /**
296
- * @hidden
297
- * will attempt to parse longDataFormat (e.g. "L", "LT") and convert it to simple one.
298
- */
299
- _prepareFormat(displayFormat) {
300
- displayFormat = displayFormat.trim();
301
- try {
302
- const formats = dayjs.Ls[dayjs.locale()].formats;
303
- // this is the regular expression to parse format taken from dayjs repo
304
- // https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/utils.js
305
- return displayFormat.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => a || formats[b] || displayFormat);
306
- }
307
- catch (e) {
308
- return displayFormat;
309
- }
310
- }
311
- /** @hidden */
312
- _createDayjsDate(date, format, ignoreUtc = false) {
313
- const { strict, useUtc } = this._options || {};
314
- const method = useUtc && !ignoreUtc ? dayjs.utc : dayjs;
315
- let parsed = method(date, format, strict);
316
- // dayjs strictly follows the provided format
317
- // so partial strings will not be resolved. in this case attempt to resolve without formatting
318
- if (!parsed?.isValid() && !strict && format) {
319
- parsed = method(date, undefined, strict);
320
- }
321
- return parsed;
322
- }
323
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
324
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapter }); }
325
- }
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
327
- type: Injectable
328
- }], ctorParameters: () => [{ type: undefined, decorators: [{
329
- type: Optional
330
- }, {
331
- type: Inject,
332
- args: [LOCALE_ID]
333
- }] }, { type: undefined, decorators: [{
334
- type: Optional
335
- }, {
336
- type: Inject,
337
- args: [DAYJS_DATE_TIME_ADAPTER_OPTIONS]
338
- }] }] });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxLQUE0QixNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sZUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBR2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLFNBQVMsS0FBSyxDQUFJLE1BQWMsRUFBRSxLQUEyQjtJQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBT0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQzdELGlDQUFpQyxFQUNqQztJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7Q0FDbkQsQ0FDSixDQUFDO0FBRUYsY0FBYztBQUNkLE1BQU0s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QU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyw2Q0FBNkM7UUFDN0MsOEZBQThGO1FBQzlGLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQXhYUSxvQkFBb0Isa0JBU0wsU0FBUyw2QkFDVCwrQkFBK0I7a0hBVjlDLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBVUYsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxTQUFTOzswQkFDNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBMT0NBTEVfSUQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMsIHsgQ29uZmlnVHlwZSwgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcbmltcG9ydCBpc0JldHdlZW4gZnJvbSAnZGF5anMvcGx1Z2luL2lzQmV0d2Vlbic7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQgbG9jYWxpemVkRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQnO1xuaW1wb3J0IG9iamVjdFN1cHBvcnQgZnJvbSAnZGF5anMvcGx1Z2luL29iamVjdFN1cHBvcnQnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcbmltcG9ydCB3ZWVrT2ZZZWFyIGZyb20gJ2RheWpzL3BsdWdpbi93ZWVrT2ZZZWFyJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEYXRldGltZUFkYXB0ZXIsIEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmZ1bmN0aW9uIHJhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCBtYXBGbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBBcnJheShsZW5ndGgpKS5tYXAoKF8sIGluZGV4KSA9PiBtYXBGbihpbmRleCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyB7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICB1c2VVdGM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXlqc0RhdGV0aW1lQWRhcHRlck9wdGlvbnM+KFxuICAgICdEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZXG4gICAgfVxuKTtcblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEQVlKU19EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TX0ZBQ1RPUlkoKTogRGF5anNEYXRldGltZUFkYXB0ZXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VVdGM6IGZhbHNlLFxuICAgICAgICBzdHJpY3Q6IGZhbHNlXG4gICAgfTtcbn1cblxuLyoqXG4gKiBEYXRldGltZUFkYXB0ZXIgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gZGF5anMuXG4gKlxuICogVGhpcyB1c2VzIGRheWpzIGFzIGEgZGF0ZSBtb2RlbCBpbnN0YW5jZS5cbiAqIEl0IHJlbGllcyBvbiBkYXlqcyBpbXBsZW1lbnRhdGlvbiBmb3IgZm9ybWF0dGluZyBhbmQgdHJhbnNsYXRpb24gcHVycG9zZXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXlqc0RhdGV0aW1lQWRhcHRlciBleHRlbmRzIERhdGV0aW1lQWRhcHRlcjxEYXlqcz4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGF5anNMb2NhbGVEYXRhOiBkYXlqcy5HbG9iYWxMb2NhbGVEYXRhUmV0dXJuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sb2NhbGVEYXRhOiBEYXRlTG9jYWxlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFZSlNfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9ucz86IERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9uc1xuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKHdlZWtPZlllYXIpO1xuICAgICAgICBkYXlqcy5leHRlbmQodXRjKTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG4gICAgICAgIGRheWpzLmV4dGVuZChvYmplY3RTdXBwb3J0KTtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsaXplZEZvcm1hdCk7XG4gICAgICAgIGRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XG5cbiAgICAgICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlSWQgfHwgZGF5anMubG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZW4gKi9cbiAgICBmcm9tTm93PyhkYXRlOiBkYXlqcy5EYXlqcyk6IHN0cmluZztcblxuICAgIC8qKiBTZXQgbG9jYWxlICovXG4gICAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChsb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gJ2VuLXVzJykge1xuICAgICAgICAgICAgLy8gSGFuZGxlIEVuZ2xpc2ggbG9jYWxlIG5hbWUgYXMgaXQncyBhIGRlZmF1bHQgb25lIGFuZCBpdCBpcyBkaWZmZXJlbnRcbiAgICAgICAgICAgIGxvY2FsZSA9ICdlbic7XG4gICAgICAgIH1cbiAgICAgICAgZGF5anMubG9jYWxlKGxvY2FsZSk7XG5cbiAgICAgICAgaWYgKGRheWpzLmxvY2FsZSgpICE9PSBsb2NhbGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGxvYWQgbG9jYWxlICR7bG9jYWxlfS4gYCArXG4gICAgICAgICAgICAgICAgICAgICdNYWtlIHN1cmUgaXQgZXhpc3RzIGFuZCBpcyBwcmVsb2FkZWQuIFNlZSB0aGUgaW1wb3J0cyBhdCB0aGUgdG9wIG9mIHRoZSBleGFtcGxlIGZpbGUgYXQgJyArXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtbmd4LyMvY29yZS9kYXlqcy1kYXRldGltZS1hZGFwdGVyJyArXG4gICAgICAgICAgICAgICAgICAgICdMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vaWFta3VuL2RheWpzL3RyZWUvZGV2L3NyYy9sb2NhbGUuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RheWpzTG9jYWxlRGF0YSA9IGRheWpzLmxvY2FsZURhdGEoKTtcblxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5maXJzdERheU9mV2VlaygpLFxuICAgICAgICAgICAgbG9uZ01vbnRoczogdGhpcy5fZGF5anNMb2NhbGVEYXRhLm1vbnRocygpLFxuICAgICAgICAgICAgc2hvcnRNb250aHM6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxuICAgICAgICAgICAgbmFycm93TW9udGhzOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEubW9udGhzKCkubWFwKChuYW1lOiBzdHJpbmcpID0+IG5hbWUuY2hhckF0KDApKSxcbiAgICAgICAgICAgIGxvbmdEYXlzT2ZXZWVrOiB0aGlzLl9kYXlqc0xvY2FsZURhdGEud2Vla2RheXMoKSxcbiAgICAgICAgICAgIHNob3J0RGF5c09mV2VlazogdGhpcy5fZGF5anNMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcbiAgICAgICAgICAgIG5hcnJvd0RheXNPZldlZWs6IHRoaXMuX2RheWpzTG9jYWxlRGF0YS53ZWVrZGF5c01pbigpXG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIuc2V0TG9jYWxlKGxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB5ZWFyICovXG4gICAgZ2V0WWVhcihkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLnllYXIoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1vbnRoICovXG4gICAgZ2V0TW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5tb250aCgpICsgMTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGRhdGUgKi9cbiAgICBnZXREYXRlKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgZGF5IG9mIHRoZSB3ZWVrICovXG4gICAgZ2V0RGF5T2ZXZWVrKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF5KCkgKyAxO1xuICAgIH1cblxuICAgIC8qKiBHZXQgaG91cnMgKi9cbiAgICBnZXRIb3VycyhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLmhvdXIoKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG1pbnV0ZXMgKi9cbiAgICBnZXRNaW51dGVzKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUubWludXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBzZWNvbmRzICovXG4gICAgZ2V0U2Vjb25kcyhkYXRlOiBEYXlqcyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXRlLnNlY29uZCgpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaG91cnMgaW4gZGF0ZSBvYmplY3QgKi9cbiAgICBzZXRIb3VycyhkYXRlOiBEYXlqcywgaG91cnM6IG51bWJlcik6IERheWpzIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuaG91cihob3Vycyk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBtaW51dGVzIGluIGRhdGUgb2JqZWN0ICovXG4gICAgc2V0TWludXRlcyhkYXRlOiBEYXlqcywgbWludXRlczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5taW51dGUobWludXRlcyk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBzZWNvbmRzIGluIGRhdGUgb2JqZWN0ICovXG4gICAgc2V0U2Vjb25kcyhkYXRlOiBEYXlqcywgc2Vjb25kczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5zZWNvbmQoc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB3ZWVrIG51bWJlciAqL1xuICAgIGdldFdlZWtOdW1iZXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS53ZWVrKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBtb250aHMgbmFtZXMgKi9cbiAgICBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ25hcnJvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93TW9udGhzO1xuICAgICAgICAgICAgY2FzZSAnc2hvcnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0TW9udGhzO1xuICAgICAgICAgICAgY2FzZSAnbG9uZyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdNb250aHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0IGRhdGUgbmFtZXMgKi9cbiAgICBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gcmFuZ2UoMzEsIChpKSA9PiB0aGlzLmNyZWF0ZURhdGUoMjAxNywgMCwgaSArIDEpLmZvcm1hdCgnRCcpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGRheXMgb2Ygd2VlayBuYW1lcyAqL1xuICAgIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ25hcnJvdyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubmFycm93RGF5c09mV2VlaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydERheXNPZldlZWs7XG4gICAgICAgICAgICBjYXNlICdsb25nJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEubG9uZ0RheXNPZldlZWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0IHllYXIgbmFtZSAqL1xuICAgIGdldFllYXJOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KCdZWVlZJyk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB3ZWVrIG5hbWUgKi9cbiAgICBnZXRXZWVrTmFtZShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlLndlZWsoKS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBob3VyIG5hbWVzICovXG4gICAgZ2V0SG91ck5hbWVzKHsgbWVyaWRpYW4sIHR3b0RpZ2l0IH06IHsgdHdvRGlnaXQ6IGJvb2xlYW47IG1lcmlkaWFuOiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gbWVyaWRpYW4gPyAodHdvRGlnaXQgPyAnaGgnIDogJ2gnKSA6IHR3b0RpZ2l0ID8gJ0hIJyA6ICdIJztcbiAgICAgICAgY29uc3QgZGF5anNEYXRlID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlKDI0LCAoaSkgPT4gdGhpcy5jbG9uZShkYXlqc0RhdGUpLmhvdXIoaSkuZm9ybWF0KGZvcm1hdCkpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgbWludXRlIG5hbWVzICovXG4gICAgZ2V0TWludXRlTmFtZXMoeyB0d29EaWdpdCB9OiB7IHR3b0RpZ2l0OiBib29sZWFuIH0pOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdDogc3RyaW5nID0gdHdvRGlnaXQgPyAnbW0nIDogJ20nO1xuICAgICAgICBjb25zdCBkYXlqc0RhdGUgPSB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UoNjAsIChpKSA9PiB0aGlzLmNsb25lKGRheWpzRGF0ZSkubWludXRlKGkpLmZvcm1hdChmb3JtYXQpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IHNlY29uZCBuYW1lcyAqL1xuICAgIGdldFNlY29uZE5hbWVzKHsgdHdvRGlnaXQgfTogeyB0d29EaWdpdDogYm9vbGVhbiB9KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBmb3JtYXQ6IHN0cmluZyA9IHR3b0RpZ2l0ID8gJ3NzJyA6ICdzJztcbiAgICAgICAgY29uc3QgZGF5anNEYXRlID0gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIHJhbmdlKDYwLCAoaSkgPT4gdGhpcy5jbG9uZShkYXlqc0RhdGUpLnNlY29uZChpKS5mb3JtYXQoZm9ybWF0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEdldCBkYXkgcGVyaW9kIG5hbWVzXG4gICAgICogQHBhcmFtIGlzTG93ZXIgcmVzcG9uc2libGUgZm9yIHRoZSBsb3dlciBhbmQgdXBwZXIgY2FzZXMgb2YgdGhlIHJlc3VsdFxuICAgICAqL1xuICAgIGdldERheVBlcmlvZE5hbWVzKGlzTG93ZXIgPSBmYWxzZSk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICAgICAgICBjb25zdCBBTSA9IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tZXJpZGllbT8uKDYsIDAsIGlzTG93ZXIpID8/IChpc0xvd2VyID8gJ2FtJyA6ICdBTScpO1xuICAgICAgICBjb25zdCBQTSA9IHRoaXMuX2RheWpzTG9jYWxlRGF0YS5tZXJpZGllbT8uKDE2LCAwLCBpc0xvd2VyKSA/PyAoaXNMb3dlciA/ICdwbScgOiAnUE0nKTtcblxuICAgICAgICByZXR1cm4gW0FNLCBQTV07XG4gICAgfVxuXG4gICAgLyoqIEdldCBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKi9cbiAgICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcbiAgICB9XG5cbiAgICAvKiogR2V0IG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCAqL1xuICAgIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICAvKiogVHJ5IHRvIHBhcnNlIGEgc3RyaW5nIHRvIGEgZGF0ZSBvYmplY3QgKi9cbiAgICBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nID0gJycpOiBEYXlqcyB8IG51bGwge1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZURheWpzRGF0ZSh2YWx1ZSwgcGFyc2VGb3JtYXQpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmREYXRlKSB7XG4gICAgICAgICAgICAvLyBGZERhdGUgaW5zdGFuY2UgbWF5IGJlIGluY29ycmVjdGx5IHBhcnNlZCBieSBEYXlKU1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5fY3JlYXRlRGF5anNEYXRlKHZhbHVlKS5sb2NhbGUodGhpcy5sb2NhbGUpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKiogRm9ybWF0IGEgZGF0ZSBhcyBhIHN0cmluZyAqL1xuICAgIGZvcm1hdChkYXRlOiBEYXlqcywgZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0RheWpzRGF0ZVRpbWVBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmxvY2FsZShkYXlqcy5sb2NhbGUoKSkuZm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIC8qKiBDcmVhdGUgZGF0ZSBvYmplY3QgZnJvbSB2YWx1ZXMgKi9cbiAgICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIGRhdGU/OiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURheWpzRGF0ZShcbiAgICAgICAgICAgIHR5cGVvZiBtb250aCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInID8gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXRlKSA6IGAke3llYXJ9YCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiIGFuZCB5ZWFyIFwiJHt5ZWFyfVwiLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKiogR2V0IHRvZGF5ICovXG4gICAgdG9kYXkoKTogRGF5anMge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGF5anNEYXRlKCkubG9jYWxlKHRoaXMubG9jYWxlKS5zdGFydE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IG5vdyAqL1xuICAgIG5vdygpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVEYXlqc0RhdGUoKS5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgIH1cblxuICAgIC8qKiBBZGQgeWVhcnMgdG8gZGF0ZSAqL1xuICAgIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF5anMsIHllYXJzOiBudW1iZXIpOiBEYXlqcyB7XG4gICAgICAgIHJldHVybiBkYXRlLmFkZCh5ZWFycywgJ3llYXInKTtcbiAgICB9XG5cbiAgICAvKiogQWRkIG1vbnRocyB0byBkYXRlICovXG4gICAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF5anMsIG1vbnRoczogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5hZGQobW9udGhzLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICAvKiogQWRkIGRheXMgdG8gZGF0ZSAqL1xuICAgIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xuICAgICAgICByZXR1cm4gZGF0ZS5hZGQoZGF5cywgJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBDbG9uZSBkYXRlICovXG4gICAgY2xvbmUoZGF0ZTogRGF5anMpOiBEYXlqcyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmNsb25lKCkubG9jYWxlKHRoaXMubG9jYWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlLmNsb25lKCk7XG4gICAgfVxuXG4gICAgLyoqIENvbXBhcmUgaWYgZGF0ZXMgYXJlIGVxdWFsICovXG4gICAgZGF0ZXNFcXVhbChkYXRlMTogRGF5anMsIGRhdGUyOiBEYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luY2UgZGF0ZSBtYXkgY29tZSBmcm9tIGBjcmVhdGVEYXRlYCBtZXRob2Qgd2hpY2ggdXNlcyBgbG9jYWxgIHRpbWUsIHdlIG5lZWQgdG8gY29udmVydCBib3RoIGRhdGVzIHRvIHRoZSBzYW1lIHRpbWV6b25lLlxuICAgICAgICByZXR1cm4gZGF0ZTEubG9jYWwoKS5pc1NhbWUoZGF0ZTIubG9jYWwoKSwgJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBDb21wYXJlIGlmIGRhdGVzIGFuZCB0aW1lIGFyZSBlcXVhbCAqL1xuICAgIGRhdGVUaW1lc0VxdWFsKGRhdGUxOiBEYXlqcywgZGF0ZTI6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZTEuaXNTYW1lKGRhdGUyKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgZGF0ZSBpcyBpbiByYW5nZSAqL1xuICAgIGlzQmV0d2VlbihkYXRlVG9DaGVjazogRGF5anMsIHN0YXJ0RGF0ZTogRGF5anMsIGVuZERhdGU6IERheWpzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZGF0ZVRvQ2hlY2sgfHwgIXN0YXJ0RGF0ZSB8fCAhZW5kRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVUb0NoZWNrLmlzQmV0d2VlbihzdGFydERhdGUsIGVuZERhdGUpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiBkYXRlIGlzIHZhbGlkIGRhdGUgb2JqZWN0ICovXG4gICAgaXNWYWxpZChkYXRlOiBOdWxsYWJsZTxEYXlqcz4pOiBkYXRlIGlzIERheWpzIHtcbiAgICAgICAgcmV0dXJuICEhZGF0ZT8uaXNWYWxpZCgpO1xuICAgIH1cblxuICAgIC8qKiBDb252ZXJ0IGRhdGUgdG8gSVNPODYwMSBzdHJpbmcgKi9cbiAgICB0b0lzbzg2MDEoZGF0ZTogRGF5anMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBkYXkgcGVyaW9kICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNEYXlQZXJpb2QoZGlzcGxheUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3ByZXBhcmVGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuICEhZm9ybWF0Lm1hdGNoKC9bYUFdLyk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRpbWUgZm9ybWF0IGluY2x1ZGVzIGhvdXJzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNIb3VycyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1toSF0vKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2sgaWYgdGltZSBmb3JtYXQgaW5jbHVkZXMgbWludXRlcyAqL1xuICAgIGlzVGltZUZvcm1hdEluY2x1ZGVzTWludXRlcyhkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fcHJlcGFyZUZvcm1hdChkaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gISFmb3JtYXQubWF0Y2goL1ttXS8pO1xuICAgIH1cblxuICAgIC8qKiBDaGVjayBpZiB0aW1lIGZvcm1hdCBpbmNsdWRlcyBzZWNvbmRzICovXG4gICAgaXNUaW1lRm9ybWF0SW5jbHVkZXNTZWNvbmRzKGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB0aGlzLl9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiAhIWZvcm1hdC5tYXRjaCgvW3NdLyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIHdpbGwgYXR0ZW1wdCB0byBwYXJzZSBsb25nRGF0YUZvcm1hdCAoZS5nLiBcIkxcIiwgXCJMVFwiKSBhbmQgY29udmVydCBpdCB0byBzaW1wbGUgb25lLlxuICAgICAqL1xuICAgIF9wcmVwYXJlRm9ybWF0KGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGRpc3BsYXlGb3JtYXQgPSBkaXNwbGF5Rm9ybWF0LnRyaW0oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHM6IG9iamVjdCA9IGRheWpzLkxzW2RheWpzLmxvY2FsZSgpXS5mb3JtYXRzO1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIHBhcnNlIGZvcm1hdCB0YWtlbiBmcm9tIGRheWpzIHJlcG9cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvYmxvYi9kZXYvc3JjL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQvdXRpbHMuanNcbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5Rm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgLyhcXFtbXlxcXV0rXSl8KExUUz98bHsxLDR9fEx7MSw0fSkvZyxcbiAgICAgICAgICAgICAgICAoXywgYSwgYikgPT4gYSB8fCBmb3JtYXRzW2JdIHx8IGRpc3BsYXlGb3JtYXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5Rm9ybWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3JlYXRlRGF5anNEYXRlKGRhdGU/OiBDb25maWdUeXBlLCBmb3JtYXQ/OiBzdHJpbmcsIGlnbm9yZVV0YyA9IGZhbHNlKTogRGF5anMge1xuICAgICAgICBjb25zdCB7IHN0cmljdCwgdXNlVXRjIH06IERheWpzRGF0ZXRpbWVBZGFwdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgfHwge307XG5cbiAgICAgICAgY29uc3QgbWV0aG9kID0gdXNlVXRjICYmICFpZ25vcmVVdGMgPyBkYXlqcy51dGMgOiBkYXlqcztcbiAgICAgICAgbGV0IHBhcnNlZCA9IG1ldGhvZChkYXRlLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIC8vIGRheWpzIHN0cmljdGx5IGZvbGxvd3MgdGhlIHByb3ZpZGVkIGZvcm1hdFxuICAgICAgICAvLyBzbyBwYXJ0aWFsIHN0cmluZ3Mgd2lsbCBub3QgYmUgcmVzb2x2ZWQuIGluIHRoaXMgY2FzZSBhdHRlbXB0IHRvIHJlc29sdmUgd2l0aG91dCBmb3JtYXR0aW5nXG4gICAgICAgIGlmICghcGFyc2VkPy5pc1ZhbGlkKCkgJiYgIXN0cmljdCAmJiBmb3JtYXQpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IG1ldGhvZChkYXRlLCB1bmRlZmluZWQsIHN0cmljdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG59XG5cbmludGVyZmFjZSBEYXRlTG9jYWxlIHtcbiAgICBmaXJzdERheU9mV2VlazogbnVtYmVyO1xuICAgIGxvbmdNb250aHM6IHN0cmluZ1tdO1xuICAgIHNob3J0TW9udGhzOiBzdHJpbmdbXTtcbiAgICBuYXJyb3dNb250aHM6IHN0cmluZ1tdO1xuICAgIGxvbmdEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcbiAgICBzaG9ydERheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgIG5hcnJvd0RheXNPZldlZWs6IHN0cmluZ1tdO1xufVxuIl19
@@ -1,29 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';
3
- import { DayjsDatetimeAdapter } from './dayjs-datetime-adapter';
4
- import { DAYJS_DATETIME_FORMATS } from './dayjs-datetime-formats';
5
- import * as i0 from "@angular/core";
6
- export class DayjsDatetimeAdapterRawModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]
15
- }]
16
- }] });
17
- export class DayjsDatetimeAdapterModule {
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] }); }
20
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- imports: [DayjsDatetimeAdapterRawModule],
26
- providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }]
27
- }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtYWRhcHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2RhdGV0aW1lLWFkYXB0ZXIvc3JjL2xpYi9kYXlqcy1kYXRldGltZS1hZGFwdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLbEUsTUFBTSxPQUFPLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7K0dBQTdCLDZCQUE2QixhQUYzQixDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzs7MkZBRWhFLDZCQUE2QjtrQkFIekMsUUFBUTttQkFBQztvQkFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7aUJBQzVFOztBQU9ELE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLFlBTjFCLDZCQUE2QjsrR0FNN0IsMEJBQTBCLGFBRnhCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsWUFEbkUsNkJBQTZCOzsyRkFHOUIsMEJBQTBCO2tCQUp0QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUN4QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztpQkFDaEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX0ZPUk1BVFMsIERhdGV0aW1lQWRhcHRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmltcG9ydCB7IERheWpzRGF0ZXRpbWVBZGFwdGVyIH0gZnJvbSAnLi9kYXlqcy1kYXRldGltZS1hZGFwdGVyJztcbmltcG9ydCB7IERBWUpTX0RBVEVUSU1FX0ZPUk1BVFMgfSBmcm9tICcuL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLCB1c2VDbGFzczogRGF5anNEYXRldGltZUFkYXB0ZXIgfV1cbn0pXG5leHBvcnQgY2xhc3MgRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRGF5anNEYXRldGltZUFkYXB0ZXJSYXdNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogREFURV9USU1FX0ZPUk1BVFMsIHVzZVZhbHVlOiBEQVlKU19EQVRFVElNRV9GT1JNQVRTIH1dXG59KVxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZXRpbWVBZGFwdGVyTW9kdWxlIHt9XG4iXX0=
@@ -1,17 +0,0 @@
1
- export const DAYJS_DATETIME_FORMATS = {
2
- parse: {
3
- dateInput: 'l',
4
- timeInput: 'h:mm A',
5
- dateTimeInput: 'l h:mm A'
6
- },
7
- display: {
8
- dateInput: 'l',
9
- timeInput: 'h:mm A',
10
- dateTimeInput: 'l h:mm A',
11
- dateA11yLabel: 'YYYY MMMM DD',
12
- monthA11yLabel: 'MMMM',
13
- yearA11yLabel: 'YYYY'
14
- },
15
- rangeDelimiter: ' - '
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZXRpbWUtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0ZXRpbWUtYWRhcHRlci9zcmMvbGliL2RheWpzLWRhdGV0aW1lLWZvcm1hdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CO0lBQ25ELEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxHQUFHO1FBQ2QsU0FBUyxFQUFFLFFBQVE7UUFDbkIsYUFBYSxFQUFFLFVBQVU7S0FDNUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsR0FBRztRQUNkLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxVQUFVO1FBRXpCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsY0FBYyxFQUFFLEtBQUs7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmV4cG9ydCBjb25zdCBEQVlKU19EQVRFVElNRV9GT1JNQVRTOiBEYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnbCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ2g6bW0gQScsXG4gICAgICAgIGRhdGVUaW1lSW5wdXQ6ICdsIGg6bW0gQSdcbiAgICB9LFxuICAgIGRpc3BsYXk6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnbCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ2g6bW0gQScsXG4gICAgICAgIGRhdGVUaW1lSW5wdXQ6ICdsIGg6bW0gQScsXG5cbiAgICAgICAgZGF0ZUExMXlMYWJlbDogJ1lZWVkgTU1NTSBERCcsXG4gICAgICAgIG1vbnRoQTExeUxhYmVsOiAnTU1NTScsXG4gICAgICAgIHllYXJBMTF5TGFiZWw6ICdZWVlZJ1xuICAgIH0sXG4gICAgcmFuZ2VEZWxpbWl0ZXI6ICcgLSAnXG59O1xuIl19