@fundamental-ngx/datetime-adapter 0.36.3-rc.8 → 0.36.3

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.
@@ -17,7 +17,7 @@ const DAYJS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('DAYJS_DATE_TIME_ADAP
17
17
  providedIn: 'root',
18
18
  factory: DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY
19
19
  });
20
- /** @hidden */
20
+ // eslint-disable-next-line @typescript-eslint/naming-convention
21
21
  function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {
22
22
  return {
23
23
  useUtc: false,
@@ -31,7 +31,6 @@ function DAYJS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {
31
31
  * It relies on dayjs implementation for formatting and translation purposes.
32
32
  */
33
33
  class DayjsDatetimeAdapter extends DatetimeAdapter {
34
- /** @hidden */
35
34
  constructor(localeId, _options) {
36
35
  super();
37
36
  this._options = _options;
@@ -44,7 +43,6 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
44
43
  dayjs.extend(customParseFormat);
45
44
  this.setLocale(localeId || dayjs.locale());
46
45
  }
47
- /** Set locale */
48
46
  setLocale(locale) {
49
47
  if (locale.toLowerCase() === 'en-us') {
50
48
  // Handle English locale name as it's a default one and it is different
@@ -68,51 +66,39 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
68
66
  };
69
67
  super.setLocale(locale);
70
68
  }
71
- /** Get year */
72
69
  getYear(date) {
73
70
  return date.year();
74
71
  }
75
- /** Get month */
76
72
  getMonth(date) {
77
73
  return date.month() + 1;
78
74
  }
79
- /** Get date */
80
75
  getDate(date) {
81
76
  return date.date();
82
77
  }
83
- /** Get day of the week */
84
78
  getDayOfWeek(date) {
85
79
  return date.day() + 1;
86
80
  }
87
- /** Get hours */
88
81
  getHours(date) {
89
82
  return date.hour();
90
83
  }
91
- /** Get minutes */
92
84
  getMinutes(date) {
93
85
  return date.minute();
94
86
  }
95
- /** Get seconds */
96
87
  getSeconds(date) {
97
88
  return date.second();
98
89
  }
99
- /** Set hours in date object */
100
90
  setHours(date, hours) {
101
91
  return date.hour(hours);
102
92
  }
103
- /** Set minutes in date object */
104
93
  setMinutes(date, minutes) {
105
94
  return date.minute(minutes);
106
95
  }
107
- /** Set seconds in date object */
108
96
  setSeconds(date, seconds) {
109
97
  return date.second(seconds);
110
98
  }
111
- /** Get week number */
112
99
  getWeekNumber(date) {
113
100
  return date.week();
114
101
  }
115
- /** Get months names */
116
102
  getMonthNames(style) {
117
103
  switch (style) {
118
104
  case 'narrow':
@@ -124,11 +110,9 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
124
110
  return this._localeData.longMonths;
125
111
  }
126
112
  }
127
- /** Get date names */
128
113
  getDateNames() {
129
114
  return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));
130
115
  }
131
- /** Get days of week names */
132
116
  getDayOfWeekNames(style) {
133
117
  switch (style) {
134
118
  case 'narrow':
@@ -140,51 +124,40 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
140
124
  return this._localeData.longDaysOfWeek;
141
125
  }
142
126
  }
143
- /** Get year name */
144
127
  getYearName(date) {
145
128
  return date.format('YYYY');
146
129
  }
147
- /** Get week name */
148
130
  getWeekName(date) {
149
131
  return date.week().toLocaleString(this.locale);
150
132
  }
151
- /** Get hour names */
152
133
  getHourNames({ meridian, twoDigit }) {
153
134
  const format = meridian ? (twoDigit ? 'hh' : 'h') : twoDigit ? 'HH' : 'H';
154
135
  const dayjsDate = this._createDayjsDate();
155
136
  return range(24, (i) => this.clone(dayjsDate).hour(i).format(format));
156
137
  }
157
- /** Get minute names */
158
138
  getMinuteNames({ twoDigit }) {
159
139
  const format = twoDigit ? 'mm' : 'm';
160
140
  const dayjsDate = this._createDayjsDate();
161
141
  return range(60, (i) => this.clone(dayjsDate).minute(i).format(format));
162
142
  }
163
- /** Get second names */
164
143
  getSecondNames({ twoDigit }) {
165
144
  const format = twoDigit ? 'ss' : 's';
166
145
  const dayjsDate = this._createDayjsDate();
167
146
  return range(60, (i) => this.clone(dayjsDate).second(i).format(format));
168
147
  }
169
- /**
170
- * Get day period names
171
- * @param isLower responsible for the lower and upper cases of the result
172
- */
148
+ // isLower property is responsible for the lower and upper cases of the result
173
149
  getDayPeriodNames(isLower = false) {
174
150
  var _a, _b, _c, _d, _e, _f;
175
151
  const AM = (_c = (_b = (_a = this._dayjsLocaleData).meridiem) === null || _b === void 0 ? void 0 : _b.call(_a, 6, 0, isLower)) !== null && _c !== void 0 ? _c : (isLower ? 'am' : 'AM');
176
152
  const PM = (_f = (_e = (_d = this._dayjsLocaleData).meridiem) === null || _e === void 0 ? void 0 : _e.call(_d, 16, 0, isLower)) !== null && _f !== void 0 ? _f : (isLower ? 'pm' : 'PM');
177
153
  return [AM, PM];
178
154
  }
179
- /** Get first day of the week */
180
155
  getFirstDayOfWeek() {
181
156
  return this._localeData.firstDayOfWeek;
182
157
  }
183
- /** Get number of days in the month */
184
158
  getNumDaysInMonth(date) {
185
159
  return date.daysInMonth();
186
160
  }
187
- /** Try to parse a string to a date object */
188
161
  parse(value, parseFormat = '') {
189
162
  if (value && typeof value === 'string') {
190
163
  return this._createDayjsDate(value, parseFormat);
@@ -195,7 +168,6 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
195
168
  }
196
169
  return value ? this._createDayjsDate(value).locale(this.locale) : null;
197
170
  }
198
- /** Format a date as a string */
199
171
  format(date, displayFormat) {
200
172
  if (!date) {
201
173
  return '';
@@ -205,7 +177,6 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
205
177
  }
206
178
  return date.locale(dayjs.locale()).format(displayFormat);
207
179
  }
208
- /** Create date object from values */
209
180
  createDate(year, month, date) {
210
181
  const result = this._createDayjsDate(new Date(year, month - 1, date));
211
182
  if (!result.isValid()) {
@@ -213,27 +184,21 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
213
184
  }
214
185
  return result;
215
186
  }
216
- /** Get today */
217
187
  today() {
218
188
  return this._createDayjsDate().locale(this.locale).startOf('day');
219
189
  }
220
- /** Get now */
221
190
  now() {
222
191
  return this._createDayjsDate().locale(this.locale);
223
192
  }
224
- /** Add years to date */
225
193
  addCalendarYears(date, years) {
226
194
  return date.add(years, 'year');
227
195
  }
228
- /** Add months to date */
229
196
  addCalendarMonths(date, months) {
230
197
  return date.add(months, 'month');
231
198
  }
232
- /** Add days to date */
233
199
  addCalendarDays(date, days) {
234
200
  return date.add(days, 'day');
235
201
  }
236
- /** Clone date */
237
202
  clone(date) {
238
203
  if (!date) {
239
204
  return date;
@@ -243,51 +208,42 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
243
208
  }
244
209
  return date.clone();
245
210
  }
246
- /** Compare if dates are equal */
247
211
  datesEqual(date1, date2) {
248
212
  if (!date1 || !date2) {
249
213
  return false;
250
214
  }
251
215
  return date1.isSame(date2, 'day');
252
216
  }
253
- /** Compare if dates and time are equal */
254
217
  dateTimesEqual(date1, date2) {
255
218
  if (!date1 || !date2) {
256
219
  return false;
257
220
  }
258
221
  return date1.isSame(date2);
259
222
  }
260
- /** Check if date is in range */
261
223
  isBetween(dateToCheck, startDate, endDate) {
262
224
  if (!dateToCheck || !startDate || !endDate) {
263
225
  return false;
264
226
  }
265
227
  return dateToCheck.isBetween(startDate, endDate);
266
228
  }
267
- /** Check if date is valid date object */
268
229
  isValid(date) {
269
230
  return !!(date === null || date === void 0 ? void 0 : date.isValid());
270
231
  }
271
- /** Convert date to ISO8601 string */
272
232
  toIso8601(date) {
273
233
  return date.toISOString();
274
234
  }
275
- /** Check if time format includes day period */
276
235
  isTimeFormatIncludesDayPeriod(displayFormat) {
277
236
  const format = this._prepareFormat(displayFormat);
278
237
  return !!format.match(/[aA]/);
279
238
  }
280
- /** Check if time format includes hours */
281
239
  isTimeFormatIncludesHours(displayFormat) {
282
240
  const format = this._prepareFormat(displayFormat);
283
241
  return !!format.match(/[hH]/);
284
242
  }
285
- /** Check if time format includes minutes */
286
243
  isTimeFormatIncludesMinutes(displayFormat) {
287
244
  const format = this._prepareFormat(displayFormat);
288
245
  return !!format.match(/[m]/);
289
246
  }
290
- /** Check if time format includes seconds */
291
247
  isTimeFormatIncludesSeconds(displayFormat) {
292
248
  const format = this._prepareFormat(displayFormat);
293
249
  return !!format.match(/[s]/);
@@ -321,9 +277,9 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
321
277
  return parsed;
322
278
  }
323
279
  }
324
- DayjsDatetimeAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
325
- DayjsDatetimeAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapter });
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
280
+ DayjsDatetimeAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: LOCALE_ID, optional: true }, { token: DAYJS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
281
+ DayjsDatetimeAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapter });
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
327
283
  type: Injectable
328
284
  }], ctorParameters: function () {
329
285
  return [{ type: undefined, decorators: [{
@@ -358,10 +314,10 @@ const DAYJS_DATETIME_FORMATS = {
358
314
 
359
315
  class DayjsDatetimeAdapterRawModule {
360
316
  }
361
- DayjsDatetimeAdapterRawModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
362
- DayjsDatetimeAdapterRawModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule });
363
- DayjsDatetimeAdapterRawModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] });
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
317
+ DayjsDatetimeAdapterRawModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
318
+ DayjsDatetimeAdapterRawModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule });
319
+ DayjsDatetimeAdapterRawModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }] });
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterRawModule, decorators: [{
365
321
  type: NgModule,
366
322
  args: [{
367
323
  providers: [{ provide: DatetimeAdapter, useClass: DayjsDatetimeAdapter }]
@@ -369,10 +325,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
369
325
  }] });
370
326
  class DayjsDatetimeAdapterModule {
371
327
  }
372
- DayjsDatetimeAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
373
- DayjsDatetimeAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] });
374
- DayjsDatetimeAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] });
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
328
+ DayjsDatetimeAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
329
+ DayjsDatetimeAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, imports: [DayjsDatetimeAdapterRawModule] });
330
+ DayjsDatetimeAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, providers: [{ provide: DATE_TIME_FORMATS, useValue: DAYJS_DATETIME_FORMATS }], imports: [DayjsDatetimeAdapterRawModule] });
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayjsDatetimeAdapterModule, decorators: [{
376
332
  type: NgModule,
377
333
  args: [{
378
334
  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 localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport utc from 'dayjs/plugin/utc';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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 fromNow: undefined;\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 /** 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. You may use \"loadLocale\" function from this package to load the locale you need. ' +\n 'List of supported locales can be found here: https://day.js.org/docs/en/i18n/i18n.'\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(new Date(year, month - 1, date));\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 return date1.isSame(date2, '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): Dayjs {\n const { strict, useUtc }: DayjsDatetimeAdapterOptions = this._options || {};\n\n const method = useUtc ? 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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"}
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 localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport utc from 'dayjs/plugin/utc';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { DatetimeAdapter, FdDate } from '@fundamental-ngx/core/datetime';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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// eslint-disable-next-line @typescript-eslint/naming-convention\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 fromNow: undefined;\n\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 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. You may use \"loadLocale\" function from this package to load the locale you need. ' +\n 'List of supported locales can be found here: https://day.js.org/docs/en/i18n/i18n.'\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 getYear(date: Dayjs): number {\n return date.year();\n }\n\n getMonth(date: Dayjs): number {\n return date.month() + 1;\n }\n\n getDate(date: Dayjs): number {\n return date.date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return date.day() + 1;\n }\n\n getHours(date: Dayjs): number {\n return date.hour();\n }\n\n getMinutes(date: Dayjs): number {\n return date.minute();\n }\n\n getSeconds(date: Dayjs): number {\n return date.second();\n }\n\n setHours(date: Dayjs, hours: number): Dayjs {\n return date.hour(hours);\n }\n\n setMinutes(date: Dayjs, minutes: number): Dayjs {\n return date.minute(minutes);\n }\n\n setSeconds(date: Dayjs, seconds: number): Dayjs {\n return date.second(seconds);\n }\n\n getWeekNumber(date: Dayjs): number {\n return date.week();\n }\n\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 getDateNames(): string[] {\n return range(31, (i) => this.createDate(2017, 0, i + 1).format('D'));\n }\n\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 getYearName(date: Dayjs): string {\n return date.format('YYYY');\n }\n\n getWeekName(date: Dayjs): string {\n return date.week().toLocaleString(this.locale);\n }\n\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 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 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 // isLower property is responsible for the lower and upper cases of the result\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 getFirstDayOfWeek(): number {\n return this._localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return date.daysInMonth();\n }\n\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(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 createDate(year: number, month: number, date: number): Dayjs {\n const result = this._createDayjsDate(new Date(year, month - 1, date));\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 today(): Dayjs {\n return this._createDayjsDate().locale(this.locale).startOf('day');\n }\n\n now(): Dayjs {\n return this._createDayjsDate().locale(this.locale);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\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 datesEqual(date1: Dayjs, date2: Dayjs): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return date1.isSame(date2, 'day');\n }\n\n dateTimesEqual(date1: Dayjs, date2: Dayjs): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return date1.isSame(date2);\n }\n\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 isValid(date: Nullable<Dayjs>): date is Dayjs {\n return !!date?.isValid();\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n isTimeFormatIncludesDayPeriod(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[aA]/);\n }\n\n isTimeFormatIncludesHours(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[hH]/);\n }\n\n isTimeFormatIncludesMinutes(displayFormat: string): boolean {\n const format = this._prepareFormat(displayFormat);\n\n return !!format.match(/[m]/);\n }\n\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): Dayjs {\n const { strict, useUtc }: DayjsDatetimeAdapterOptions = this._options || {};\n\n const method = useUtc ? 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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"}