ect-date-formatter 1.17.1 → 1.19.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.
- package/README.md +1 -1
- package/fesm2022/ect-date-formatter.mjs +7 -7
- package/fesm2022/ect-date-formatter.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/ect-date-formatter.mjs +0 -5
- package/esm2022/lib/ect-date-formatter.module.mjs +0 -27
- package/esm2022/lib/ect-date-formatter.service.mjs +0 -311
- package/esm2022/public-api.mjs +0 -24
package/README.md
CHANGED
|
@@ -301,10 +301,10 @@ class EctDateFormatterService {
|
|
|
301
301
|
return new Date(input);
|
|
302
302
|
return input;
|
|
303
303
|
}
|
|
304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
305
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
304
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
305
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterService, providedIn: 'root' }); }
|
|
306
306
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterService, decorators: [{
|
|
308
308
|
type: Injectable,
|
|
309
309
|
args: [{
|
|
310
310
|
providedIn: 'root'
|
|
@@ -312,14 +312,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
312
312
|
}] });
|
|
313
313
|
|
|
314
314
|
class EctDateFormatterModule {
|
|
315
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
316
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
317
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
316
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterModule, imports: [HttpClientModule] }); }
|
|
317
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterModule, providers: [
|
|
318
318
|
EctDateFormatterService,
|
|
319
319
|
{ provide: LOCALE_ID, useValue: 'en-GB' }
|
|
320
320
|
], imports: [HttpClientModule] }); }
|
|
321
321
|
}
|
|
322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
322
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: EctDateFormatterModule, decorators: [{
|
|
323
323
|
type: NgModule,
|
|
324
324
|
args: [{
|
|
325
325
|
declarations: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ect-date-formatter.mjs","sources":["../../../projects/ect-date-formatter/src/lib/ect-date-formatter.service.ts","../../../projects/ect-date-formatter/src/lib/ect-date-formatter.module.ts","../../../projects/ect-date-formatter/src/public-api.ts","../../../projects/ect-date-formatter/src/ect-date-formatter.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nexport interface IDateTimeFormatSections {\r\n parts: string[];\r\n divider: string;\r\n}\r\n\r\nexport interface IEctDateFormatterService {\r\n getISO8601DateFormat(date: Date): string;\r\n getISO8601TimeFormat(date: Date): string;\r\n getISO8601DateAndTimeFormat(date: Date): string;\r\n formatDate(date: Date, format: string): string;\r\n formatTime(date: Date, format: string): string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EctDateFormatterService implements IEctDateFormatterService {\r\n\r\n getISO8601DateFormat(date: Date): string {\r\n return this.get4DigitYear(date) + '-' + this.get2DigitMonth(date) + '-' + this.get2DigitDay(date);\r\n }\r\n\r\n getISO8601TimeFormat(date: Date): string {\r\n return this.get2Digit24Hours(date) + ':' + this.get2DigitMinutes(date) + ':' + this.get2DigitSeconds(date);\r\n }\r\n\r\n getISO8601DateAndTimeFormat(date: Date): string {\r\n return this.getISO8601DateFormat(date) + 'T' + this.getISO8601TimeFormat(date);\r\n }\r\n\r\n private getFormatPartsByDivider(input: string): IDateTimeFormatSections {\r\n if (input.indexOf(' ') > 0) {\r\n return {\r\n parts: input.split(' '),\r\n divider: ' '\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('/') > 0) {\r\n return {\r\n parts: input.split('/'),\r\n divider: '/'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(':') > 0) {\r\n return {\r\n parts: input.split(':'),\r\n divider: ':'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(';') > 0) {\r\n return {\r\n parts: input.split(';'),\r\n divider: ';'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('.') > 0) {\r\n return {\r\n parts: input.split('.'),\r\n divider: '.'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(',') > 0) {\r\n return {\r\n parts: input.split(','),\r\n divider: ','\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('-') > 0) {\r\n return {\r\n parts: input.split('-'),\r\n divider: '-'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('_') > 0) {\r\n return {\r\n parts: input.split('_'),\r\n divider: '_'\r\n } as IDateTimeFormatSections;\r\n }\r\n\r\n return { parts: [], divider: ''} as IDateTimeFormatSections;\r\n }\r\n\r\n\r\n /*\r\n Date Formatting Rules\r\n\r\n yy/YY – two-digit year, e.g. 21\r\n yyyy/YYYY – four-digit year, e.g. 2021\r\n m/M – one-digit month for months below 10, e.g. 3\r\n mm/MM – two-digit month, e.g. 03\r\n mmm/MMM – three-letter abbreviation for month, e.g. Mar\r\n mmmm/MMMM – month spelled out in full, e.g. March\r\n d/D – one-digit day of the month for days below 10, e.g. 2\r\n dd/DD – two-digit day of the month, e.g. 02\r\n ddd/DDD – three-letter abbreviation for day of the week, e.g. Fri\r\n dddd/DDDD – day of the week spelled out in full, e.g. Friday\r\n\r\n */\r\n formatDate(date: Date, format: string): string {\r\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\r\n let dateValue = '';\r\n formatPartsAndDivider.parts.forEach(part => {\r\n if (dateValue !== '')\r\n dateValue += formatPartsAndDivider.divider;\r\n switch(part) {\r\n case 'yy':\r\n case 'YY':\r\n dateValue += this.get2DigitYear(date);\r\n break;\r\n case 'yyyy':\r\n case 'YYYY':\r\n dateValue += this.get4DigitYear(date);\r\n break;\r\n case 'm':\r\n case 'M':\r\n dateValue += this.get1DigitMonth(date);\r\n break;\r\n case 'mm':\r\n case 'MM':\r\n dateValue += this.get2DigitMonth(date);\r\n break;\r\n case 'mmm':\r\n case 'MMM':\r\n dateValue += this.get3DigitMonth(date);\r\n break;\r\n case 'mmmm':\r\n case 'MMMM':\r\n dateValue += this.get4DigitMonth(date);\r\n break;\r\n case 'd':\r\n case 'D':\r\n dateValue += this.get1DigitDay(date);\r\n break;\r\n case 'dd':\r\n case 'DD':\r\n dateValue += this.get2DigitDay(date);\r\n break;\r\n case 'ddd':\r\n case 'DDD':\r\n dateValue += this.get3DigitDay(date);\r\n break;\r\n case 'dddd':\r\n case 'DDDD':\r\n dateValue += this.get4DigitDay(date);\r\n break;\r\n }\r\n });\r\n return dateValue;\r\n }\r\n\r\n /*\r\n Time Formatting Rules\r\n\r\n h - hour to 1 digit on 12 hour clock - without leading 0\r\n hh - hour to 2 digits on 12 hour clock - with leading 0\r\n H - hour to 1 digit on 24 hour clock - without leading 0\r\n HH - hour to 2 digits on 24 hour clock - with leading 0\r\n m - minute to 1 digit - without leading 0\r\n mm/mi/MI - minute to 2 digits - with leading 0\r\n s/S - second to 1 digit - without leading 0\r\n ss/SS - second to 2 digits - with leading 0\r\n f/F - tenth of a second e.g. 2009-06-15T13:45:30.6170000 -> 6\r\n ff/FF - hundredths of a second e.g. 2009-06-15T13:45:30.6170000 -> 61\r\n fff/FFF - milliseconds e.g. 6/15/2009 13:45:30.617 -> 617\r\n ffff/FFFF - ten thousandths of a second e.g. 2009-06-15T13:45:30.6175000 -> 6175\r\n fffff/FFFFF - hundred thousandths of a second e.g. 2009-06-15T13:45:30.6175400 -> 61754\r\n ffffff/FFFFFF - millionths of a second e.g. 2009-06-15T13:45:30.6175420 -> 617542\r\n t/T - first character of AM/PM\r\n tt/TT - both characters of AM/PM\r\n\r\n */\r\n formatTime(date: Date, format: string): string {\r\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\r\n let timeValue = '';\r\n formatPartsAndDivider.parts.forEach(part => {\r\n if (timeValue !== '')\r\n timeValue += formatPartsAndDivider.divider;\r\n switch(part) {\r\n case 'h':\r\n timeValue += this.get1Digit12Hours(date);\r\n break;\r\n case 'hh':\r\n timeValue += this.get2Digit12Hours(date);\r\n break;\r\n case 'H':\r\n timeValue += this.get1Digit24Hours(date);\r\n break;\r\n case 'HH':\r\n timeValue += this.get2Digit24Hours(date);\r\n break;\r\n case 'm':\r\n timeValue += this.get1DigitMinutes(date);\r\n break;\r\n case 'mi':\r\n case 'mm':\r\n case 'MI':\r\n timeValue += this.get2DigitMinutes(date);\r\n break;\r\n case 's':\r\n case 'S':\r\n timeValue += this.get1DigitSeconds(date);\r\n break;\r\n case 'ss':\r\n case 'SS':\r\n timeValue += this.get2DigitSeconds(date);\r\n break;\r\n case 't':\r\n case 'T':\r\n timeValue += this.get1DigitAmPm(date);\r\n break;\r\n case 'tt':\r\n case 'TT':\r\n timeValue += this.get2DigitAmPm(date);\r\n break;\r\n case 'f':\r\n case 'F':\r\n timeValue += this.getXDigitMillisecond(date, 'f');\r\n break;\r\n case 'ff':\r\n case 'FF':\r\n timeValue += this.getXDigitMillisecond(date, 'fff');\r\n break;\r\n case 'fff':\r\n case 'FFF':\r\n timeValue += this.getXDigitMillisecond(date, 'fff');\r\n break;\r\n case 'ffff':\r\n case 'FFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'ffff');\r\n break;\r\n case 'fffff':\r\n case 'FFFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'fffff');\r\n break;\r\n case 'ffffff':\r\n case 'FFFFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'ffffff');\r\n break;\r\n }\r\n });\r\n return timeValue;\r\n }\r\n\r\n private get1DigitDay(date: Date): string {\r\n const day = this.convertToDateIfRequired(date).getDate();\r\n return '' + day;\r\n }\r\n\r\n private get2DigitDay(date: Date): string {\r\n const day = this.convertToDateIfRequired(date).getDate();\r\n return this.padDateElement(day);\r\n }\r\n\r\n private get3DigitDay(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'short' });\r\n }\r\n\r\n private get4DigitDay(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'long' });\r\n }\r\n\r\n private get1DigitMonth(date: Date): string {\r\n const month = this.convertToDateIfRequired(date).getMonth() + 1;\r\n return '' + month;\r\n }\r\n\r\n private get2DigitMonth(date: Date): string {\r\n const month = this.convertToDateIfRequired(date).getMonth() + 1;\r\n return this.padDateElement(month);\r\n }\r\n\r\n private get3DigitMonth(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' }).substring(0,3);\r\n }\r\n\r\n private get4DigitMonth(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' });\r\n }\r\n\r\n private get2DigitYear(date: Date): string {\r\n const fullYear = '' + this.convertToDateIfRequired(date).getFullYear();\r\n return fullYear[2];\r\n }\r\n\r\n private get4DigitYear(date: Date): string {\r\n return this.convertToDateIfRequired(date).getFullYear().toString();\r\n }\r\n\r\n private get1Digit12Hours(date: Date): string {\r\n return this.convertToDateIfRequired(date).getHours().toString();\r\n }\r\n\r\n private get2Digit12Hours(date: Date): string {\r\n const hours = this.convertToDateIfRequired(date).getHours();\r\n return this.padDateElement(hours);\r\n }\r\n\r\n private get1Digit24Hours(date: Date): string {\r\n return this.convertToDateIfRequired(date).getHours().toString();\r\n }\r\n\r\n private get2Digit24Hours(date: Date): string {\r\n const hours = this.convertToDateIfRequired(date).getHours();\r\n return this.padDateElement(hours);\r\n }\r\n\r\n private get1DigitMinutes(date: Date): string {\r\n return this.convertToDateIfRequired(date).getMinutes().toString();\r\n }\r\n\r\n private get2DigitMinutes(date: Date): string {\r\n const minutes = this.convertToDateIfRequired(date).getMinutes();\r\n return this.padDateElement(minutes);\r\n }\r\n\r\n private get1DigitSeconds(date: Date): string {\r\n return this.convertToDateIfRequired(date).getSeconds().toString();\r\n }\r\n\r\n private get2DigitSeconds(date: Date): string {\r\n const seconds = this.convertToDateIfRequired(date).getSeconds();\r\n return this.padDateElement(seconds);\r\n }\r\n\r\n private get1DigitAmPm(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString('t');\r\n }\r\n\r\n private get2DigitAmPm(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString('tt');\r\n }\r\n\r\n private getXDigitMillisecond(date: Date, format): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString(format);\r\n }\r\n\r\n private padDateElement(value: number): string {\r\n return (value < 10) ? '0' + value : '' + value;\r\n }\r\n\r\n private convertToDateIfRequired(input: Date | string): Date {\r\n if (typeof(input) === 'string')\r\n return new Date(input);\r\n return input;\r\n }\r\n\r\n}\r\n","import { EctDateFormatterService } from './ect-date-formatter.service';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [ ],\r\n imports: [\r\n HttpClientModule\r\n ],\r\n exports: [ ],\r\n providers: [\r\n EctDateFormatterService,\r\n { provide: LOCALE_ID, useValue: 'en-GB' }\r\n ]\r\n})\r\nexport class EctDateFormatterModule { }\r\n","/*\r\n Copyright (c) 2023 Exodus Cloud Technology Solutions Ltd\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE.\r\n*/\r\n\r\nexport * from './lib/ect-date-formatter.service';\r\nexport * from './lib/ect-date-formatter.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ect-date-formatter.mjs","sources":["../../../projects/ect-date-formatter/src/lib/ect-date-formatter.service.ts","../../../projects/ect-date-formatter/src/lib/ect-date-formatter.module.ts","../../../projects/ect-date-formatter/src/public-api.ts","../../../projects/ect-date-formatter/src/ect-date-formatter.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nexport interface IDateTimeFormatSections {\r\n parts: string[];\r\n divider: string;\r\n}\r\n\r\nexport interface IEctDateFormatterService {\r\n getISO8601DateFormat(date: Date): string;\r\n getISO8601TimeFormat(date: Date): string;\r\n getISO8601DateAndTimeFormat(date: Date): string;\r\n formatDate(date: Date, format: string): string;\r\n formatTime(date: Date, format: string): string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EctDateFormatterService implements IEctDateFormatterService {\r\n\r\n getISO8601DateFormat(date: Date): string {\r\n return this.get4DigitYear(date) + '-' + this.get2DigitMonth(date) + '-' + this.get2DigitDay(date);\r\n }\r\n\r\n getISO8601TimeFormat(date: Date): string {\r\n return this.get2Digit24Hours(date) + ':' + this.get2DigitMinutes(date) + ':' + this.get2DigitSeconds(date);\r\n }\r\n\r\n getISO8601DateAndTimeFormat(date: Date): string {\r\n return this.getISO8601DateFormat(date) + 'T' + this.getISO8601TimeFormat(date);\r\n }\r\n\r\n private getFormatPartsByDivider(input: string): IDateTimeFormatSections {\r\n if (input.indexOf(' ') > 0) {\r\n return {\r\n parts: input.split(' '),\r\n divider: ' '\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('/') > 0) {\r\n return {\r\n parts: input.split('/'),\r\n divider: '/'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(':') > 0) {\r\n return {\r\n parts: input.split(':'),\r\n divider: ':'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(';') > 0) {\r\n return {\r\n parts: input.split(';'),\r\n divider: ';'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('.') > 0) {\r\n return {\r\n parts: input.split('.'),\r\n divider: '.'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf(',') > 0) {\r\n return {\r\n parts: input.split(','),\r\n divider: ','\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('-') > 0) {\r\n return {\r\n parts: input.split('-'),\r\n divider: '-'\r\n } as IDateTimeFormatSections;\r\n }\r\n if (input.indexOf('_') > 0) {\r\n return {\r\n parts: input.split('_'),\r\n divider: '_'\r\n } as IDateTimeFormatSections;\r\n }\r\n\r\n return { parts: [], divider: ''} as IDateTimeFormatSections;\r\n }\r\n\r\n\r\n /*\r\n Date Formatting Rules\r\n\r\n yy/YY – two-digit year, e.g. 21\r\n yyyy/YYYY – four-digit year, e.g. 2021\r\n m/M – one-digit month for months below 10, e.g. 3\r\n mm/MM – two-digit month, e.g. 03\r\n mmm/MMM – three-letter abbreviation for month, e.g. Mar\r\n mmmm/MMMM – month spelled out in full, e.g. March\r\n d/D – one-digit day of the month for days below 10, e.g. 2\r\n dd/DD – two-digit day of the month, e.g. 02\r\n ddd/DDD – three-letter abbreviation for day of the week, e.g. Fri\r\n dddd/DDDD – day of the week spelled out in full, e.g. Friday\r\n\r\n */\r\n formatDate(date: Date, format: string): string {\r\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\r\n let dateValue = '';\r\n formatPartsAndDivider.parts.forEach(part => {\r\n if (dateValue !== '')\r\n dateValue += formatPartsAndDivider.divider;\r\n switch(part) {\r\n case 'yy':\r\n case 'YY':\r\n dateValue += this.get2DigitYear(date);\r\n break;\r\n case 'yyyy':\r\n case 'YYYY':\r\n dateValue += this.get4DigitYear(date);\r\n break;\r\n case 'm':\r\n case 'M':\r\n dateValue += this.get1DigitMonth(date);\r\n break;\r\n case 'mm':\r\n case 'MM':\r\n dateValue += this.get2DigitMonth(date);\r\n break;\r\n case 'mmm':\r\n case 'MMM':\r\n dateValue += this.get3DigitMonth(date);\r\n break;\r\n case 'mmmm':\r\n case 'MMMM':\r\n dateValue += this.get4DigitMonth(date);\r\n break;\r\n case 'd':\r\n case 'D':\r\n dateValue += this.get1DigitDay(date);\r\n break;\r\n case 'dd':\r\n case 'DD':\r\n dateValue += this.get2DigitDay(date);\r\n break;\r\n case 'ddd':\r\n case 'DDD':\r\n dateValue += this.get3DigitDay(date);\r\n break;\r\n case 'dddd':\r\n case 'DDDD':\r\n dateValue += this.get4DigitDay(date);\r\n break;\r\n }\r\n });\r\n return dateValue;\r\n }\r\n\r\n /*\r\n Time Formatting Rules\r\n\r\n h - hour to 1 digit on 12 hour clock - without leading 0\r\n hh - hour to 2 digits on 12 hour clock - with leading 0\r\n H - hour to 1 digit on 24 hour clock - without leading 0\r\n HH - hour to 2 digits on 24 hour clock - with leading 0\r\n m - minute to 1 digit - without leading 0\r\n mm/mi/MI - minute to 2 digits - with leading 0\r\n s/S - second to 1 digit - without leading 0\r\n ss/SS - second to 2 digits - with leading 0\r\n f/F - tenth of a second e.g. 2009-06-15T13:45:30.6170000 -> 6\r\n ff/FF - hundredths of a second e.g. 2009-06-15T13:45:30.6170000 -> 61\r\n fff/FFF - milliseconds e.g. 6/15/2009 13:45:30.617 -> 617\r\n ffff/FFFF - ten thousandths of a second e.g. 2009-06-15T13:45:30.6175000 -> 6175\r\n fffff/FFFFF - hundred thousandths of a second e.g. 2009-06-15T13:45:30.6175400 -> 61754\r\n ffffff/FFFFFF - millionths of a second e.g. 2009-06-15T13:45:30.6175420 -> 617542\r\n t/T - first character of AM/PM\r\n tt/TT - both characters of AM/PM\r\n\r\n */\r\n formatTime(date: Date, format: string): string {\r\n const formatPartsAndDivider = this.getFormatPartsByDivider(format);\r\n let timeValue = '';\r\n formatPartsAndDivider.parts.forEach(part => {\r\n if (timeValue !== '')\r\n timeValue += formatPartsAndDivider.divider;\r\n switch(part) {\r\n case 'h':\r\n timeValue += this.get1Digit12Hours(date);\r\n break;\r\n case 'hh':\r\n timeValue += this.get2Digit12Hours(date);\r\n break;\r\n case 'H':\r\n timeValue += this.get1Digit24Hours(date);\r\n break;\r\n case 'HH':\r\n timeValue += this.get2Digit24Hours(date);\r\n break;\r\n case 'm':\r\n timeValue += this.get1DigitMinutes(date);\r\n break;\r\n case 'mi':\r\n case 'mm':\r\n case 'MI':\r\n timeValue += this.get2DigitMinutes(date);\r\n break;\r\n case 's':\r\n case 'S':\r\n timeValue += this.get1DigitSeconds(date);\r\n break;\r\n case 'ss':\r\n case 'SS':\r\n timeValue += this.get2DigitSeconds(date);\r\n break;\r\n case 't':\r\n case 'T':\r\n timeValue += this.get1DigitAmPm(date);\r\n break;\r\n case 'tt':\r\n case 'TT':\r\n timeValue += this.get2DigitAmPm(date);\r\n break;\r\n case 'f':\r\n case 'F':\r\n timeValue += this.getXDigitMillisecond(date, 'f');\r\n break;\r\n case 'ff':\r\n case 'FF':\r\n timeValue += this.getXDigitMillisecond(date, 'fff');\r\n break;\r\n case 'fff':\r\n case 'FFF':\r\n timeValue += this.getXDigitMillisecond(date, 'fff');\r\n break;\r\n case 'ffff':\r\n case 'FFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'ffff');\r\n break;\r\n case 'fffff':\r\n case 'FFFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'fffff');\r\n break;\r\n case 'ffffff':\r\n case 'FFFFFF':\r\n timeValue += this.getXDigitMillisecond(date, 'ffffff');\r\n break;\r\n }\r\n });\r\n return timeValue;\r\n }\r\n\r\n private get1DigitDay(date: Date): string {\r\n const day = this.convertToDateIfRequired(date).getDate();\r\n return '' + day;\r\n }\r\n\r\n private get2DigitDay(date: Date): string {\r\n const day = this.convertToDateIfRequired(date).getDate();\r\n return this.padDateElement(day);\r\n }\r\n\r\n private get3DigitDay(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'short' });\r\n }\r\n\r\n private get4DigitDay(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'long' });\r\n }\r\n\r\n private get1DigitMonth(date: Date): string {\r\n const month = this.convertToDateIfRequired(date).getMonth() + 1;\r\n return '' + month;\r\n }\r\n\r\n private get2DigitMonth(date: Date): string {\r\n const month = this.convertToDateIfRequired(date).getMonth() + 1;\r\n return this.padDateElement(month);\r\n }\r\n\r\n private get3DigitMonth(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' }).substring(0,3);\r\n }\r\n\r\n private get4DigitMonth(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' });\r\n }\r\n\r\n private get2DigitYear(date: Date): string {\r\n const fullYear = '' + this.convertToDateIfRequired(date).getFullYear();\r\n return fullYear[2];\r\n }\r\n\r\n private get4DigitYear(date: Date): string {\r\n return this.convertToDateIfRequired(date).getFullYear().toString();\r\n }\r\n\r\n private get1Digit12Hours(date: Date): string {\r\n return this.convertToDateIfRequired(date).getHours().toString();\r\n }\r\n\r\n private get2Digit12Hours(date: Date): string {\r\n const hours = this.convertToDateIfRequired(date).getHours();\r\n return this.padDateElement(hours);\r\n }\r\n\r\n private get1Digit24Hours(date: Date): string {\r\n return this.convertToDateIfRequired(date).getHours().toString();\r\n }\r\n\r\n private get2Digit24Hours(date: Date): string {\r\n const hours = this.convertToDateIfRequired(date).getHours();\r\n return this.padDateElement(hours);\r\n }\r\n\r\n private get1DigitMinutes(date: Date): string {\r\n return this.convertToDateIfRequired(date).getMinutes().toString();\r\n }\r\n\r\n private get2DigitMinutes(date: Date): string {\r\n const minutes = this.convertToDateIfRequired(date).getMinutes();\r\n return this.padDateElement(minutes);\r\n }\r\n\r\n private get1DigitSeconds(date: Date): string {\r\n return this.convertToDateIfRequired(date).getSeconds().toString();\r\n }\r\n\r\n private get2DigitSeconds(date: Date): string {\r\n const seconds = this.convertToDateIfRequired(date).getSeconds();\r\n return this.padDateElement(seconds);\r\n }\r\n\r\n private get1DigitAmPm(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString('t');\r\n }\r\n\r\n private get2DigitAmPm(date: Date): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString('tt');\r\n }\r\n\r\n private getXDigitMillisecond(date: Date, format): string {\r\n return this.convertToDateIfRequired(date).toLocaleDateString(format);\r\n }\r\n\r\n private padDateElement(value: number): string {\r\n return (value < 10) ? '0' + value : '' + value;\r\n }\r\n\r\n private convertToDateIfRequired(input: Date | string): Date {\r\n if (typeof(input) === 'string')\r\n return new Date(input);\r\n return input;\r\n }\r\n\r\n}\r\n","import { EctDateFormatterService } from './ect-date-formatter.service';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [ ],\r\n imports: [\r\n HttpClientModule\r\n ],\r\n exports: [ ],\r\n providers: [\r\n EctDateFormatterService,\r\n { provide: LOCALE_ID, useValue: 'en-GB' }\r\n ]\r\n})\r\nexport class EctDateFormatterModule { }\r\n","/*\r\n Copyright (c) 2023 Exodus Cloud Technology Solutions Ltd\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n SOFTWARE.\r\n*/\r\n\r\nexport * from './lib/ect-date-formatter.service';\r\nexport * from './lib/ect-date-formatter.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ect-date-formatter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "An Ivy compiled package for formatting dates",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"type": "git"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@angular/common": "^
|
|
21
|
-
"@angular/core": "^
|
|
20
|
+
"@angular/common": "^19.0.0",
|
|
21
|
+
"@angular/core": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"tslib": "^2.5.0"
|
|
@@ -31,8 +31,6 @@
|
|
|
31
31
|
},
|
|
32
32
|
".": {
|
|
33
33
|
"types": "./index.d.ts",
|
|
34
|
-
"esm2022": "./esm2022/ect-date-formatter.mjs",
|
|
35
|
-
"esm": "./esm2022/ect-date-formatter.mjs",
|
|
36
34
|
"default": "./fesm2022/ect-date-formatter.mjs"
|
|
37
35
|
}
|
|
38
36
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWN0LWRhdGUtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvZWN0LWRhdGUtZm9ybWF0dGVyL3NyYy9lY3QtZGF0ZS1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { EctDateFormatterService } from './ect-date-formatter.service';
|
|
2
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
-
import { NgModule, LOCALE_ID } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class EctDateFormatterModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterModule, imports: [HttpClientModule] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterModule, providers: [
|
|
9
|
-
EctDateFormatterService,
|
|
10
|
-
{ provide: LOCALE_ID, useValue: 'en-GB' }
|
|
11
|
-
], imports: [HttpClientModule] }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
declarations: [],
|
|
17
|
-
imports: [
|
|
18
|
-
HttpClientModule
|
|
19
|
-
],
|
|
20
|
-
exports: [],
|
|
21
|
-
providers: [
|
|
22
|
-
EctDateFormatterService,
|
|
23
|
-
{ provide: LOCALE_ID, useValue: 'en-GB' }
|
|
24
|
-
]
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWN0LWRhdGUtZm9ybWF0dGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VjdC1kYXRlLWZvcm1hdHRlci9zcmMvbGliL2VjdC1kYXRlLWZvcm1hdHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYXBELE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCLFlBUi9CLGdCQUFnQjsrR0FRUCxzQkFBc0IsYUFMdEI7WUFDVCx1QkFBdUI7WUFDdkIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7U0FDMUMsWUFOQyxnQkFBZ0I7OzJGQVFQLHNCQUFzQjtrQkFYbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRztvQkFDakIsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLEVBQUc7b0JBQ1osU0FBUyxFQUFFO3dCQUNULHVCQUF1Qjt3QkFDdkIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7cUJBQzFDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWN0RGF0ZUZvcm1hdHRlclNlcnZpY2UgfSBmcm9tICcuL2VjdC1kYXRlLWZvcm1hdHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIExPQ0FMRV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBFY3REYXRlRm9ybWF0dGVyU2VydmljZSxcclxuICAgIHsgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VWYWx1ZTogJ2VuLUdCJyB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWN0RGF0ZUZvcm1hdHRlck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class EctDateFormatterService {
|
|
4
|
-
getISO8601DateFormat(date) {
|
|
5
|
-
return this.get4DigitYear(date) + '-' + this.get2DigitMonth(date) + '-' + this.get2DigitDay(date);
|
|
6
|
-
}
|
|
7
|
-
getISO8601TimeFormat(date) {
|
|
8
|
-
return this.get2Digit24Hours(date) + ':' + this.get2DigitMinutes(date) + ':' + this.get2DigitSeconds(date);
|
|
9
|
-
}
|
|
10
|
-
getISO8601DateAndTimeFormat(date) {
|
|
11
|
-
return this.getISO8601DateFormat(date) + 'T' + this.getISO8601TimeFormat(date);
|
|
12
|
-
}
|
|
13
|
-
getFormatPartsByDivider(input) {
|
|
14
|
-
if (input.indexOf(' ') > 0) {
|
|
15
|
-
return {
|
|
16
|
-
parts: input.split(' '),
|
|
17
|
-
divider: ' '
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (input.indexOf('/') > 0) {
|
|
21
|
-
return {
|
|
22
|
-
parts: input.split('/'),
|
|
23
|
-
divider: '/'
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (input.indexOf(':') > 0) {
|
|
27
|
-
return {
|
|
28
|
-
parts: input.split(':'),
|
|
29
|
-
divider: ':'
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (input.indexOf(';') > 0) {
|
|
33
|
-
return {
|
|
34
|
-
parts: input.split(';'),
|
|
35
|
-
divider: ';'
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (input.indexOf('.') > 0) {
|
|
39
|
-
return {
|
|
40
|
-
parts: input.split('.'),
|
|
41
|
-
divider: '.'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
if (input.indexOf(',') > 0) {
|
|
45
|
-
return {
|
|
46
|
-
parts: input.split(','),
|
|
47
|
-
divider: ','
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (input.indexOf('-') > 0) {
|
|
51
|
-
return {
|
|
52
|
-
parts: input.split('-'),
|
|
53
|
-
divider: '-'
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
if (input.indexOf('_') > 0) {
|
|
57
|
-
return {
|
|
58
|
-
parts: input.split('_'),
|
|
59
|
-
divider: '_'
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return { parts: [], divider: '' };
|
|
63
|
-
}
|
|
64
|
-
/*
|
|
65
|
-
Date Formatting Rules
|
|
66
|
-
|
|
67
|
-
yy/YY – two-digit year, e.g. 21
|
|
68
|
-
yyyy/YYYY – four-digit year, e.g. 2021
|
|
69
|
-
m/M – one-digit month for months below 10, e.g. 3
|
|
70
|
-
mm/MM – two-digit month, e.g. 03
|
|
71
|
-
mmm/MMM – three-letter abbreviation for month, e.g. Mar
|
|
72
|
-
mmmm/MMMM – month spelled out in full, e.g. March
|
|
73
|
-
d/D – one-digit day of the month for days below 10, e.g. 2
|
|
74
|
-
dd/DD – two-digit day of the month, e.g. 02
|
|
75
|
-
ddd/DDD – three-letter abbreviation for day of the week, e.g. Fri
|
|
76
|
-
dddd/DDDD – day of the week spelled out in full, e.g. Friday
|
|
77
|
-
|
|
78
|
-
*/
|
|
79
|
-
formatDate(date, format) {
|
|
80
|
-
const formatPartsAndDivider = this.getFormatPartsByDivider(format);
|
|
81
|
-
let dateValue = '';
|
|
82
|
-
formatPartsAndDivider.parts.forEach(part => {
|
|
83
|
-
if (dateValue !== '')
|
|
84
|
-
dateValue += formatPartsAndDivider.divider;
|
|
85
|
-
switch (part) {
|
|
86
|
-
case 'yy':
|
|
87
|
-
case 'YY':
|
|
88
|
-
dateValue += this.get2DigitYear(date);
|
|
89
|
-
break;
|
|
90
|
-
case 'yyyy':
|
|
91
|
-
case 'YYYY':
|
|
92
|
-
dateValue += this.get4DigitYear(date);
|
|
93
|
-
break;
|
|
94
|
-
case 'm':
|
|
95
|
-
case 'M':
|
|
96
|
-
dateValue += this.get1DigitMonth(date);
|
|
97
|
-
break;
|
|
98
|
-
case 'mm':
|
|
99
|
-
case 'MM':
|
|
100
|
-
dateValue += this.get2DigitMonth(date);
|
|
101
|
-
break;
|
|
102
|
-
case 'mmm':
|
|
103
|
-
case 'MMM':
|
|
104
|
-
dateValue += this.get3DigitMonth(date);
|
|
105
|
-
break;
|
|
106
|
-
case 'mmmm':
|
|
107
|
-
case 'MMMM':
|
|
108
|
-
dateValue += this.get4DigitMonth(date);
|
|
109
|
-
break;
|
|
110
|
-
case 'd':
|
|
111
|
-
case 'D':
|
|
112
|
-
dateValue += this.get1DigitDay(date);
|
|
113
|
-
break;
|
|
114
|
-
case 'dd':
|
|
115
|
-
case 'DD':
|
|
116
|
-
dateValue += this.get2DigitDay(date);
|
|
117
|
-
break;
|
|
118
|
-
case 'ddd':
|
|
119
|
-
case 'DDD':
|
|
120
|
-
dateValue += this.get3DigitDay(date);
|
|
121
|
-
break;
|
|
122
|
-
case 'dddd':
|
|
123
|
-
case 'DDDD':
|
|
124
|
-
dateValue += this.get4DigitDay(date);
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
return dateValue;
|
|
129
|
-
}
|
|
130
|
-
/*
|
|
131
|
-
Time Formatting Rules
|
|
132
|
-
|
|
133
|
-
h - hour to 1 digit on 12 hour clock - without leading 0
|
|
134
|
-
hh - hour to 2 digits on 12 hour clock - with leading 0
|
|
135
|
-
H - hour to 1 digit on 24 hour clock - without leading 0
|
|
136
|
-
HH - hour to 2 digits on 24 hour clock - with leading 0
|
|
137
|
-
m - minute to 1 digit - without leading 0
|
|
138
|
-
mm/mi/MI - minute to 2 digits - with leading 0
|
|
139
|
-
s/S - second to 1 digit - without leading 0
|
|
140
|
-
ss/SS - second to 2 digits - with leading 0
|
|
141
|
-
f/F - tenth of a second e.g. 2009-06-15T13:45:30.6170000 -> 6
|
|
142
|
-
ff/FF - hundredths of a second e.g. 2009-06-15T13:45:30.6170000 -> 61
|
|
143
|
-
fff/FFF - milliseconds e.g. 6/15/2009 13:45:30.617 -> 617
|
|
144
|
-
ffff/FFFF - ten thousandths of a second e.g. 2009-06-15T13:45:30.6175000 -> 6175
|
|
145
|
-
fffff/FFFFF - hundred thousandths of a second e.g. 2009-06-15T13:45:30.6175400 -> 61754
|
|
146
|
-
ffffff/FFFFFF - millionths of a second e.g. 2009-06-15T13:45:30.6175420 -> 617542
|
|
147
|
-
t/T - first character of AM/PM
|
|
148
|
-
tt/TT - both characters of AM/PM
|
|
149
|
-
|
|
150
|
-
*/
|
|
151
|
-
formatTime(date, format) {
|
|
152
|
-
const formatPartsAndDivider = this.getFormatPartsByDivider(format);
|
|
153
|
-
let timeValue = '';
|
|
154
|
-
formatPartsAndDivider.parts.forEach(part => {
|
|
155
|
-
if (timeValue !== '')
|
|
156
|
-
timeValue += formatPartsAndDivider.divider;
|
|
157
|
-
switch (part) {
|
|
158
|
-
case 'h':
|
|
159
|
-
timeValue += this.get1Digit12Hours(date);
|
|
160
|
-
break;
|
|
161
|
-
case 'hh':
|
|
162
|
-
timeValue += this.get2Digit12Hours(date);
|
|
163
|
-
break;
|
|
164
|
-
case 'H':
|
|
165
|
-
timeValue += this.get1Digit24Hours(date);
|
|
166
|
-
break;
|
|
167
|
-
case 'HH':
|
|
168
|
-
timeValue += this.get2Digit24Hours(date);
|
|
169
|
-
break;
|
|
170
|
-
case 'm':
|
|
171
|
-
timeValue += this.get1DigitMinutes(date);
|
|
172
|
-
break;
|
|
173
|
-
case 'mi':
|
|
174
|
-
case 'mm':
|
|
175
|
-
case 'MI':
|
|
176
|
-
timeValue += this.get2DigitMinutes(date);
|
|
177
|
-
break;
|
|
178
|
-
case 's':
|
|
179
|
-
case 'S':
|
|
180
|
-
timeValue += this.get1DigitSeconds(date);
|
|
181
|
-
break;
|
|
182
|
-
case 'ss':
|
|
183
|
-
case 'SS':
|
|
184
|
-
timeValue += this.get2DigitSeconds(date);
|
|
185
|
-
break;
|
|
186
|
-
case 't':
|
|
187
|
-
case 'T':
|
|
188
|
-
timeValue += this.get1DigitAmPm(date);
|
|
189
|
-
break;
|
|
190
|
-
case 'tt':
|
|
191
|
-
case 'TT':
|
|
192
|
-
timeValue += this.get2DigitAmPm(date);
|
|
193
|
-
break;
|
|
194
|
-
case 'f':
|
|
195
|
-
case 'F':
|
|
196
|
-
timeValue += this.getXDigitMillisecond(date, 'f');
|
|
197
|
-
break;
|
|
198
|
-
case 'ff':
|
|
199
|
-
case 'FF':
|
|
200
|
-
timeValue += this.getXDigitMillisecond(date, 'fff');
|
|
201
|
-
break;
|
|
202
|
-
case 'fff':
|
|
203
|
-
case 'FFF':
|
|
204
|
-
timeValue += this.getXDigitMillisecond(date, 'fff');
|
|
205
|
-
break;
|
|
206
|
-
case 'ffff':
|
|
207
|
-
case 'FFFF':
|
|
208
|
-
timeValue += this.getXDigitMillisecond(date, 'ffff');
|
|
209
|
-
break;
|
|
210
|
-
case 'fffff':
|
|
211
|
-
case 'FFFFF':
|
|
212
|
-
timeValue += this.getXDigitMillisecond(date, 'fffff');
|
|
213
|
-
break;
|
|
214
|
-
case 'ffffff':
|
|
215
|
-
case 'FFFFFF':
|
|
216
|
-
timeValue += this.getXDigitMillisecond(date, 'ffffff');
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
return timeValue;
|
|
221
|
-
}
|
|
222
|
-
get1DigitDay(date) {
|
|
223
|
-
const day = this.convertToDateIfRequired(date).getDate();
|
|
224
|
-
return '' + day;
|
|
225
|
-
}
|
|
226
|
-
get2DigitDay(date) {
|
|
227
|
-
const day = this.convertToDateIfRequired(date).getDate();
|
|
228
|
-
return this.padDateElement(day);
|
|
229
|
-
}
|
|
230
|
-
get3DigitDay(date) {
|
|
231
|
-
return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'short' });
|
|
232
|
-
}
|
|
233
|
-
get4DigitDay(date) {
|
|
234
|
-
return this.convertToDateIfRequired(date).toLocaleString('default', { weekday: 'long' });
|
|
235
|
-
}
|
|
236
|
-
get1DigitMonth(date) {
|
|
237
|
-
const month = this.convertToDateIfRequired(date).getMonth() + 1;
|
|
238
|
-
return '' + month;
|
|
239
|
-
}
|
|
240
|
-
get2DigitMonth(date) {
|
|
241
|
-
const month = this.convertToDateIfRequired(date).getMonth() + 1;
|
|
242
|
-
return this.padDateElement(month);
|
|
243
|
-
}
|
|
244
|
-
get3DigitMonth(date) {
|
|
245
|
-
return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' }).substring(0, 3);
|
|
246
|
-
}
|
|
247
|
-
get4DigitMonth(date) {
|
|
248
|
-
return this.convertToDateIfRequired(date).toLocaleString('default', { month: 'long' });
|
|
249
|
-
}
|
|
250
|
-
get2DigitYear(date) {
|
|
251
|
-
const fullYear = '' + this.convertToDateIfRequired(date).getFullYear();
|
|
252
|
-
return fullYear[2];
|
|
253
|
-
}
|
|
254
|
-
get4DigitYear(date) {
|
|
255
|
-
return this.convertToDateIfRequired(date).getFullYear().toString();
|
|
256
|
-
}
|
|
257
|
-
get1Digit12Hours(date) {
|
|
258
|
-
return this.convertToDateIfRequired(date).getHours().toString();
|
|
259
|
-
}
|
|
260
|
-
get2Digit12Hours(date) {
|
|
261
|
-
const hours = this.convertToDateIfRequired(date).getHours();
|
|
262
|
-
return this.padDateElement(hours);
|
|
263
|
-
}
|
|
264
|
-
get1Digit24Hours(date) {
|
|
265
|
-
return this.convertToDateIfRequired(date).getHours().toString();
|
|
266
|
-
}
|
|
267
|
-
get2Digit24Hours(date) {
|
|
268
|
-
const hours = this.convertToDateIfRequired(date).getHours();
|
|
269
|
-
return this.padDateElement(hours);
|
|
270
|
-
}
|
|
271
|
-
get1DigitMinutes(date) {
|
|
272
|
-
return this.convertToDateIfRequired(date).getMinutes().toString();
|
|
273
|
-
}
|
|
274
|
-
get2DigitMinutes(date) {
|
|
275
|
-
const minutes = this.convertToDateIfRequired(date).getMinutes();
|
|
276
|
-
return this.padDateElement(minutes);
|
|
277
|
-
}
|
|
278
|
-
get1DigitSeconds(date) {
|
|
279
|
-
return this.convertToDateIfRequired(date).getSeconds().toString();
|
|
280
|
-
}
|
|
281
|
-
get2DigitSeconds(date) {
|
|
282
|
-
const seconds = this.convertToDateIfRequired(date).getSeconds();
|
|
283
|
-
return this.padDateElement(seconds);
|
|
284
|
-
}
|
|
285
|
-
get1DigitAmPm(date) {
|
|
286
|
-
return this.convertToDateIfRequired(date).toLocaleDateString('t');
|
|
287
|
-
}
|
|
288
|
-
get2DigitAmPm(date) {
|
|
289
|
-
return this.convertToDateIfRequired(date).toLocaleDateString('tt');
|
|
290
|
-
}
|
|
291
|
-
getXDigitMillisecond(date, format) {
|
|
292
|
-
return this.convertToDateIfRequired(date).toLocaleDateString(format);
|
|
293
|
-
}
|
|
294
|
-
padDateElement(value) {
|
|
295
|
-
return (value < 10) ? '0' + value : '' + value;
|
|
296
|
-
}
|
|
297
|
-
convertToDateIfRequired(input) {
|
|
298
|
-
if (typeof (input) === 'string')
|
|
299
|
-
return new Date(input);
|
|
300
|
-
return input;
|
|
301
|
-
}
|
|
302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
303
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterService, providedIn: 'root' }); }
|
|
304
|
-
}
|
|
305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: EctDateFormatterService, decorators: [{
|
|
306
|
-
type: Injectable,
|
|
307
|
-
args: [{
|
|
308
|
-
providedIn: 'root'
|
|
309
|
-
}]
|
|
310
|
-
}] });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWN0LWRhdGUtZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9lY3QtZGF0ZS1mb3JtYXR0ZXIvc3JjL2xpYi9lY3QtZGF0ZS1mb3JtYXR0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtCM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxvQkFBb0IsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVTtRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELDJCQUEyQixDQUFDLElBQVU7UUFDcEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBYTtRQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsR0FBRzthQUNjLENBQUM7U0FDOUI7UUFDRCxJ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SSxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7WUFDN0MsUUFBTyxJQUFJLEVBQUU7Z0JBQ1gsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHLENBQUM7Z0JBQ1QsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxJQUFJLENBQUM7Z0JBQ1YsS0FBSyxJQUFJO29CQUNQLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsS0FBSyxHQUFHLENBQUM7Z0JBQ1QsS0FBSyxHQUFHO29CQUNOLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssSUFBSSxDQUFDO2dC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RSxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBb0I7UUFDbEQsSUFBSSxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUTtZQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F6VVUsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnMge1xyXG4gIHBhcnRzOiBzdHJpbmdbXTtcclxuICBkaXZpZGVyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUVjdERhdGVGb3JtYXR0ZXJTZXJ2aWNlIHtcclxuICBnZXRJU084NjAxRGF0ZUZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nO1xyXG4gIGdldElTTzg2MDFUaW1lRm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmc7XHJcbiAgZ2V0SVNPODYwMURhdGVBbmRUaW1lRm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmc7XHJcbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZztcclxuICBmb3JtYXRUaW1lKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY3REYXRlRm9ybWF0dGVyU2VydmljZSBpbXBsZW1lbnRzIElFY3REYXRlRm9ybWF0dGVyU2VydmljZSB7XHJcblxyXG4gIGdldElTTzg2MDFEYXRlRm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0NERpZ2l0WWVhcihkYXRlKSArICctJyArIHRoaXMuZ2V0MkRpZ2l0TW9udGgoZGF0ZSkgKyAnLScgKyB0aGlzLmdldDJEaWdpdERheShkYXRlKTtcclxuICB9XHJcblxyXG4gIGdldElTTzg2MDFUaW1lRm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0MkRpZ2l0MjRIb3VycyhkYXRlKSArICc6JyArIHRoaXMuZ2V0MkRpZ2l0TWludXRlcyhkYXRlKSArICc6JyArIHRoaXMuZ2V0MkRpZ2l0U2Vjb25kcyhkYXRlKTtcclxuICB9XHJcblxyXG4gIGdldElTTzg2MDFEYXRlQW5kVGltZUZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldElTTzg2MDFEYXRlRm9ybWF0KGRhdGUpICsgJ1QnICsgdGhpcy5nZXRJU084NjAxVGltZUZvcm1hdChkYXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9ybWF0UGFydHNCeURpdmlkZXIoaW5wdXQ6IHN0cmluZyk6IElEYXRlVGltZUZvcm1hdFNlY3Rpb25zIHtcclxuICAgIGlmIChpbnB1dC5pbmRleE9mKCcgJykgPiAwKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFydHM6IGlucHV0LnNwbGl0KCcgJyksXHJcbiAgICAgICAgZGl2aWRlcjogJyAnXHJcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQuaW5kZXhPZignLycpID4gMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnLycpLFxyXG4gICAgICAgIGRpdmlkZXI6ICcvJ1xyXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0LmluZGV4T2YoJzonKSA+IDApIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBwYXJ0czogaW5wdXQuc3BsaXQoJzonKSxcclxuICAgICAgICBkaXZpZGVyOiAnOidcclxuICAgICAgfSBhcyBJRGF0ZVRpbWVGb3JtYXRTZWN0aW9ucztcclxuICAgIH1cclxuICAgIGlmIChpbnB1dC5pbmRleE9mKCc7JykgPiAwKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFydHM6IGlucHV0LnNwbGl0KCc7JyksXHJcbiAgICAgICAgZGl2aWRlcjogJzsnXHJcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQuaW5kZXhPZignLicpID4gMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnLicpLFxyXG4gICAgICAgIGRpdmlkZXI6ICcuJ1xyXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0LmluZGV4T2YoJywnKSA+IDApIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBwYXJ0czogaW5wdXQuc3BsaXQoJywnKSxcclxuICAgICAgICBkaXZpZGVyOiAnLCdcclxuICAgICAgfSBhcyBJRGF0ZVRpbWVGb3JtYXRTZWN0aW9ucztcclxuICAgIH1cclxuICAgIGlmIChpbnB1dC5pbmRleE9mKCctJykgPiAwKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFydHM6IGlucHV0LnNwbGl0KCctJyksXHJcbiAgICAgICAgZGl2aWRlcjogJy0nXHJcbiAgICAgIH0gYXMgSURhdGVUaW1lRm9ybWF0U2VjdGlvbnM7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQuaW5kZXhPZignXycpID4gMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhcnRzOiBpbnB1dC5zcGxpdCgnXycpLFxyXG4gICAgICAgIGRpdmlkZXI6ICdfJ1xyXG4gICAgICB9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IHBhcnRzOiBbXSwgZGl2aWRlcjogJyd9IGFzIElEYXRlVGltZUZvcm1hdFNlY3Rpb25zO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgRGF0ZSBGb3JtYXR0aW5nIFJ1bGVzXHJcblxyXG4gIHl5L1lZIOKAkyB0d28tZGlnaXQgeWVhciwgZS5nLiAyMVxyXG4gIHl5eXkvWVlZWSDigJMgZm91ci1kaWdpdCB5ZWFyLCBlLmcuIDIwMjFcclxuICBtL00g4oCTIG9uZS1kaWdpdCBtb250aCBmb3IgbW9udGhzIGJlbG93IDEwLCBlLmcuIDNcclxuICBtbS9NTSDigJMgdHdvLWRpZ2l0IG1vbnRoLCBlLmcuIDAzXHJcbiAgbW1tL01NTSDigJMgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgbW9udGgsIGUuZy4gTWFyXHJcbiAgbW1tbS9NTU1NIOKAkyBtb250aCBzcGVsbGVkIG91dCBpbiBmdWxsLCBlLmcuIE1hcmNoXHJcbiAgZC9EIOKAkyBvbmUtZGlnaXQgZGF5IG9mIHRoZSBtb250aCBmb3IgZGF5cyBiZWxvdyAxMCwgZS5nLiAyXHJcbiAgZGQvREQg4oCTIHR3by1kaWdpdCBkYXkgb2YgdGhlIG1vbnRoLCBlLmcuIDAyXHJcbiAgZGRkL0RERCDigJMgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgZGF5IG9mIHRoZSB3ZWVrLCBlLmcuIEZyaVxyXG4gIGRkZGQvRERERCDigJMgZGF5IG9mIHRoZSB3ZWVrIHNwZWxsZWQgb3V0IGluIGZ1bGwsIGUuZy4gRnJpZGF5XHJcblxyXG4gICovXHJcbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmb3JtYXRQYXJ0c0FuZERpdmlkZXIgPSB0aGlzLmdldEZvcm1hdFBhcnRzQnlEaXZpZGVyKGZvcm1hdCk7XHJcbiAgICBsZXQgZGF0ZVZhbHVlID0gJyc7XHJcbiAgICBmb3JtYXRQYXJ0c0FuZERpdmlkZXIucGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcclxuICAgICAgaWYgKGRhdGVWYWx1ZSAhPT0gJycpXHJcbiAgICAgICAgZGF0ZVZhbHVlICs9IGZvcm1hdFBhcnRzQW5kRGl2aWRlci5kaXZpZGVyO1xyXG4gICAgICBzd2l0Y2gocGFydCkge1xyXG4gICAgICAgIGNhc2UgJ3l5JzpcclxuICAgICAgICBjYXNlICdZWSc6XHJcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQyRGlnaXRZZWFyKGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAneXl5eSc6XHJcbiAgICAgICAgY2FzZSAnWVlZWSc6XHJcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQ0RGlnaXRZZWFyKGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbSc6XHJcbiAgICAgICAgY2FzZSAnTSc6XHJcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQxRGlnaXRNb250aChkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICBjYXNlICdNTSc6XHJcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQyRGlnaXRNb250aChkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ21tbSc6XHJcbiAgICAgICAgY2FzZSAnTU1NJzpcclxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDNEaWdpdE1vbnRoKGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbW1tbSc6XHJcbiAgICAgICAgY2FzZSAnTU1NTSc6XHJcbiAgICAgICAgICBkYXRlVmFsdWUgKz0gdGhpcy5nZXQ0RGlnaXRNb250aChkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2QnOlxyXG4gICAgICAgIGNhc2UgJ0QnOlxyXG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0MURpZ2l0RGF5KGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZGQnOlxyXG4gICAgICAgIGNhc2UgJ0REJzpcclxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDJEaWdpdERheShkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RkZCc6XHJcbiAgICAgICAgY2FzZSAnREREJzpcclxuICAgICAgICAgIGRhdGVWYWx1ZSArPSB0aGlzLmdldDNEaWdpdERheShkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RkZGQnOlxyXG4gICAgICAgIGNhc2UgJ0REREQnOlxyXG4gICAgICAgICAgZGF0ZVZhbHVlICs9IHRoaXMuZ2V0NERpZ2l0RGF5KGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGVWYWx1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGltZSBGb3JtYXR0aW5nIFJ1bGVzXHJcblxyXG4gIGggLSBob3VyIHRvIDEgZGlnaXQgb24gMTIgaG91ciBjbG9jayAtIHdpdGhvdXQgbGVhZGluZyAwXHJcbiAgaGggLSBob3VyIHRvIDIgZGlnaXRzIG9uIDEyIGhvdXIgY2xvY2sgLSB3aXRoIGxlYWRpbmcgMFxyXG4gIEggLSBob3VyIHRvIDEgZGlnaXQgb24gMjQgaG91ciBjbG9jayAtIHdpdGhvdXQgbGVhZGluZyAwXHJcbiAgSEggLSBob3VyIHRvIDIgZGlnaXRzIG9uIDI0IGhvdXIgY2xvY2sgLSB3aXRoIGxlYWRpbmcgMFxyXG4gIG0gLSBtaW51dGUgdG8gMSBkaWdpdCAtIHdpdGhvdXQgbGVhZGluZyAwXHJcbiAgbW0vbWkvTUkgLSBtaW51dGUgdG8gMiBkaWdpdHMgLSB3aXRoIGxlYWRpbmcgMFxyXG4gIHMvUyAtIHNlY29uZCB0byAxIGRpZ2l0IC0gd2l0aG91dCBsZWFkaW5nIDBcclxuICBzcy9TUyAtIHNlY29uZCB0byAyIGRpZ2l0cyAtIHdpdGggbGVhZGluZyAwXHJcbiAgZi9GIC0gdGVudGggb2YgYSBzZWNvbmQgZS5nLiAyMDA5LTA2LTE1VDEzOjQ1OjMwLjYxNzAwMDAgLT4gNlxyXG4gIGZmL0ZGIC0gaHVuZHJlZHRocyBvZiBhIHNlY29uZCBlLmcuIDIwMDktMDYtMTVUMTM6NDU6MzAuNjE3MDAwMCAtPiA2MVxyXG4gIGZmZi9GRkYgLSBtaWxsaXNlY29uZHMgZS5nLiA2LzE1LzIwMDkgMTM6NDU6MzAuNjE3IC0+IDYxN1xyXG4gIGZmZmYvRkZGRiAtIHRlbiB0aG91c2FuZHRocyBvZiBhIHNlY29uZCBlLmcuIDIwMDktMDYtMTVUMTM6NDU6MzAuNjE3NTAwMCAtPiA2MTc1XHJcbiAgZmZmZmYvRkZGRkYgLSBodW5kcmVkIHRob3VzYW5kdGhzIG9mIGEgc2Vjb25kIGUuZy4gMjAwOS0wNi0xNVQxMzo0NTozMC42MTc1NDAwIC0+IDYxNzU0XHJcbiAgZmZmZmZmL0ZGRkZGRiAtIG1pbGxpb250aHMgb2YgYSBzZWNvbmQgZS5nLiAyMDA5LTA2LTE1VDEzOjQ1OjMwLjYxNzU0MjAgLT4gNjE3NTQyXHJcbiAgdC9UIC0gZmlyc3QgY2hhcmFjdGVyIG9mIEFNL1BNXHJcbiAgdHQvVFQgLSBib3RoIGNoYXJhY3RlcnMgb2YgQU0vUE1cclxuXHJcbiAgKi9cclxuICBmb3JtYXRUaW1lKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZvcm1hdFBhcnRzQW5kRGl2aWRlciA9IHRoaXMuZ2V0Rm9ybWF0UGFydHNCeURpdmlkZXIoZm9ybWF0KTtcclxuICAgIGxldCB0aW1lVmFsdWUgPSAnJztcclxuICAgIGZvcm1hdFBhcnRzQW5kRGl2aWRlci5wYXJ0cy5mb3JFYWNoKHBhcnQgPT4ge1xyXG4gICAgICBpZiAodGltZVZhbHVlICE9PSAnJylcclxuICAgICAgICB0aW1lVmFsdWUgKz0gZm9ybWF0UGFydHNBbmREaXZpZGVyLmRpdmlkZXI7XHJcbiAgICAgIHN3aXRjaChwYXJ0KSB7XHJcbiAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQxRGlnaXQxMkhvdXJzKGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGgnOlxyXG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0MTJIb3VycyhkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0gnOlxyXG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MURpZ2l0MjRIb3VycyhkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDJEaWdpdDI0SG91cnMoZGF0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDFEaWdpdE1pbnV0ZXMoZGF0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtaSc6XHJcbiAgICAgICAgY2FzZSAnbW0nOlxyXG4gICAgICAgIGNhc2UgJ01JJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDJEaWdpdE1pbnV0ZXMoZGF0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzJzpcclxuICAgICAgICBjYXNlICdTJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldDFEaWdpdFNlY29uZHMoZGF0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzcyc6XHJcbiAgICAgICAgY2FzZSAnU1MnOlxyXG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MkRpZ2l0U2Vjb25kcyhkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3QnOlxyXG4gICAgICAgIGNhc2UgJ1QnOlxyXG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0MURpZ2l0QW1QbShkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3R0JzpcclxuICAgICAgICBjYXNlICdUVCc6XHJcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXQyRGlnaXRBbVBtKGRhdGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZic6XHJcbiAgICAgICAgY2FzZSAnRic6XHJcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZmYnOlxyXG4gICAgICAgIGNhc2UgJ0ZGJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGUsICdmZmYnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2ZmZic6XHJcbiAgICAgICAgY2FzZSAnRkZGJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGUsICdmZmYnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2ZmZmYnOlxyXG4gICAgICAgIGNhc2UgJ0ZGRkYnOlxyXG4gICAgICAgICAgdGltZVZhbHVlICs9IHRoaXMuZ2V0WERpZ2l0TWlsbGlzZWNvbmQoZGF0ZSwgJ2ZmZmYnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2ZmZmZmJzpcclxuICAgICAgICBjYXNlICdGRkZGRic6XHJcbiAgICAgICAgICB0aW1lVmFsdWUgKz0gdGhpcy5nZXRYRGlnaXRNaWxsaXNlY29uZChkYXRlLCAnZmZmZmYnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2ZmZmZmZic6XHJcbiAgICAgICAgY2FzZSAnRkZGRkZGJzpcclxuICAgICAgICAgIHRpbWVWYWx1ZSArPSB0aGlzLmdldFhEaWdpdE1pbGxpc2Vjb25kKGRhdGUsICdmZmZmZmYnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aW1lVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDFEaWdpdERheShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRheSA9IHRoaXMuY29udmVydFRvRGF0ZUlmUmVxdWlyZWQoZGF0ZSkuZ2V0RGF0ZSgpO1xyXG4gICAgcmV0dXJuICcnICsgZGF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQyRGlnaXREYXkoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkYXkgPSB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLmdldERhdGUoKTtcclxuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KGRheSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDNEaWdpdERheShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLnRvTG9jYWxlU3RyaW5nKCdkZWZhdWx0JywgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQ0RGlnaXREYXkoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS50b0xvY2FsZVN0cmluZygnZGVmYXVsdCcsIHsgd2Vla2RheTogJ2xvbmcnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQxRGlnaXRNb250aChkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRNb250aCgpICsgMTtcclxuICAgIHJldHVybiAnJyArIG1vbnRoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQyRGlnaXRNb250aChkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRNb250aCgpICsgMTtcclxuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KG1vbnRoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0M0RpZ2l0TW9udGgoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS50b0xvY2FsZVN0cmluZygnZGVmYXVsdCcsIHsgbW9udGg6ICdsb25nJyB9KS5zdWJzdHJpbmcoMCwzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0NERpZ2l0TW9udGgoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS50b0xvY2FsZVN0cmluZygnZGVmYXVsdCcsIHsgbW9udGg6ICdsb25nJyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0MkRpZ2l0WWVhcihkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZ1bGxZZWFyID0gJycgKyB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICByZXR1cm4gZnVsbFllYXJbMl07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDREaWdpdFllYXIoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDFEaWdpdDEySG91cnMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRIb3VycygpLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDJEaWdpdDEySG91cnMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3VycyA9IHRoaXMuY29udmVydFRvRGF0ZUlmUmVxdWlyZWQoZGF0ZSkuZ2V0SG91cnMoKTtcclxuICAgIHJldHVybiB0aGlzLnBhZERhdGVFbGVtZW50KGhvdXJzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0MURpZ2l0MjRIb3VycyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLmdldEhvdXJzKCkudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0MkRpZ2l0MjRIb3VycyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRIb3VycygpO1xyXG4gICAgcmV0dXJuIHRoaXMucGFkRGF0ZUVsZW1lbnQoaG91cnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQxRGlnaXRNaW51dGVzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udmVydFRvRGF0ZUlmUmVxdWlyZWQoZGF0ZSkuZ2V0TWludXRlcygpLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDJEaWdpdE1pbnV0ZXMoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS5nZXRNaW51dGVzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wYWREYXRlRWxlbWVudChtaW51dGVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0MURpZ2l0U2Vjb25kcyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLmdldFNlY29uZHMoKS50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQyRGlnaXRTZWNvbmRzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuY29udmVydFRvRGF0ZUlmUmVxdWlyZWQoZGF0ZSkuZ2V0U2Vjb25kcygpO1xyXG4gICAgcmV0dXJuIHRoaXMucGFkRGF0ZUVsZW1lbnQoc2Vjb25kcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldDFEaWdpdEFtUG0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9EYXRlSWZSZXF1aXJlZChkYXRlKS50b0xvY2FsZURhdGVTdHJpbmcoJ3QnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0MkRpZ2l0QW1QbShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygndHQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0WERpZ2l0TWlsbGlzZWNvbmQoZGF0ZTogRGF0ZSwgZm9ybWF0KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGRhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZyhmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYWREYXRlRWxlbWVudCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAodmFsdWUgPCAxMCkgPyAnMCcgKyB2YWx1ZSA6ICcnICsgdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRUb0RhdGVJZlJlcXVpcmVkKGlucHV0OiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICBpZiAodHlwZW9mKGlucHV0KSA9PT0gJ3N0cmluZycpXHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShpbnB1dCk7XHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (c) 2023 Exodus Cloud Technology Solutions Ltd
|
|
3
|
-
|
|
4
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
-
in the Software without restriction, including without limitation the rights
|
|
7
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
-
furnished to do so, subject to the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be included in all
|
|
12
|
-
copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
-
SOFTWARE.
|
|
21
|
-
*/
|
|
22
|
-
export * from './lib/ect-date-formatter.service';
|
|
23
|
-
export * from './lib/ect-date-formatter.module';
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VjdC1kYXRlLWZvcm1hdHRlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFvQkU7QUFFRixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gIENvcHlyaWdodCAoYykgMjAyMyBFeG9kdXMgQ2xvdWQgVGVjaG5vbG9neSBTb2x1dGlvbnMgTHRkXHJcblxyXG4gIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbiAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4gIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuICBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG5cclxuICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcclxuICBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG5cclxuICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbiAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbiAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbiAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbiAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcclxuICBTT0ZUV0FSRS5cclxuKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjdC1kYXRlLWZvcm1hdHRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWN0LWRhdGUtZm9ybWF0dGVyLm1vZHVsZSc7XHJcbiJdfQ==
|