@skyux/datetime 8.6.0 → 9.0.0-alpha.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/documentation.json +8 -8
- package/esm2022/lib/modules/date-pipe/date-format-utility.mjs +45 -0
- package/{esm2020 → esm2022}/lib/modules/date-pipe/date-pipe.module.mjs +5 -5
- package/esm2022/lib/modules/date-pipe/date.pipe.mjs +67 -0
- package/esm2022/lib/modules/date-pipe/fuzzy-date.pipe.mjs +47 -0
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +4 -4
- package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +518 -0
- package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker.module.mjs +19 -19
- package/esm2022/lib/modules/date-range-picker/date-range.service.mjs +97 -0
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator.mjs +54 -0
- package/esm2022/lib/modules/datepicker/date-formatter.mjs +38 -0
- package/esm2022/lib/modules/datepicker/datepicker-adapter.service.mjs +23 -0
- package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +332 -0
- package/esm2022/lib/modules/datepicker/datepicker-calendar.component.mjs +95 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-config.service.mjs +4 -4
- package/esm2022/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +487 -0
- package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +534 -0
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +327 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.module.mjs +35 -35
- package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/datepicker/daypicker-button.component.mjs +4 -4
- package/esm2022/lib/modules/datepicker/daypicker-cell.component.mjs +128 -0
- package/esm2022/lib/modules/datepicker/daypicker.component.mjs +224 -0
- package/esm2022/lib/modules/datepicker/fuzzy-date.service.mjs +412 -0
- package/esm2022/lib/modules/datepicker/monthpicker.component.mjs +80 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/yearpicker.component.mjs +53 -54
- package/{esm2020 → esm2022}/lib/modules/shared/sky-datetime-resources.module.mjs +11 -11
- package/esm2022/lib/modules/timepicker/timepicker.component.mjs +396 -0
- package/esm2022/lib/modules/timepicker/timepicker.directive.mjs +237 -0
- package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker.module.mjs +17 -17
- package/esm2022/testing/datepicker-fixture.mjs +55 -0
- package/esm2022/testing/timepicker-fixture.mjs +52 -0
- package/fesm2022/skyux-datetime-testing.mjs +112 -0
- package/{fesm2020 → fesm2022}/skyux-datetime-testing.mjs.map +1 -1
- package/fesm2022/skyux-datetime.mjs +5030 -0
- package/fesm2022/skyux-datetime.mjs.map +1 -0
- package/lib/modules/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-calendar.component.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-input.directive.d.ts +1 -1
- package/lib/modules/datepicker/datepicker.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker-button.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker-cell.component.d.ts +1 -1
- package/lib/modules/datepicker/daypicker.component.d.ts +1 -1
- package/lib/modules/timepicker/timepicker.directive.d.ts +1 -1
- package/package.json +19 -27
- package/esm2020/lib/modules/date-pipe/date-format-utility.mjs +0 -45
- package/esm2020/lib/modules/date-pipe/date.pipe.mjs +0 -70
- package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +0 -50
- package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +0 -494
- package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +0 -100
- package/esm2020/lib/modules/date-range-picker/types/date-range-calculator.mjs +0 -53
- package/esm2020/lib/modules/datepicker/date-formatter.mjs +0 -38
- package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +0 -26
- package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +0 -333
- package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +0 -96
- package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +0 -462
- package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +0 -496
- package/esm2020/lib/modules/datepicker/datepicker.component.mjs +0 -319
- package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +0 -126
- package/esm2020/lib/modules/datepicker/daypicker.component.mjs +0 -216
- package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +0 -392
- package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +0 -81
- package/esm2020/lib/modules/timepicker/timepicker.component.mjs +0 -389
- package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +0 -236
- package/esm2020/testing/datepicker-fixture.mjs +0 -58
- package/esm2020/testing/timepicker-fixture.mjs +0 -55
- package/fesm2015/skyux-datetime-testing.mjs +0 -117
- package/fesm2015/skyux-datetime-testing.mjs.map +0 -1
- package/fesm2015/skyux-datetime.mjs +0 -4925
- package/fesm2015/skyux-datetime.mjs.map +0 -1
- package/fesm2020/skyux-datetime-testing.mjs +0 -117
- package/fesm2020/skyux-datetime.mjs +0 -4895
- package/fesm2020/skyux-datetime.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-relative-value.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-calendar-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-custom-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/datepicker/fuzzy-date.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-format-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-output.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-datetime.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-datetime-testing.mjs +0 -0
@@ -11,25 +11,25 @@ import { SkyDateRangePickerComponent } from './date-range-picker.component';
|
|
11
11
|
import { SkyDateRangeService } from './date-range.service';
|
12
12
|
import * as i0 from "@angular/core";
|
13
13
|
export class SkyDateRangePickerModule {
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent,
|
16
|
+
SkyDateRangePickerEndDateResourceKeyPipe,
|
17
|
+
SkyDateRangePickerStartDateResourceKeyPipe], imports: [CommonModule,
|
18
|
+
FormsModule,
|
19
|
+
ReactiveFormsModule,
|
20
|
+
SkyI18nModule,
|
21
|
+
SkyDatepickerModule,
|
22
|
+
SkyDatetimeResourcesModule,
|
23
|
+
SkyInputBoxModule], exports: [SkyDateRangePickerComponent] }); }
|
24
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [CommonModule,
|
25
|
+
FormsModule,
|
26
|
+
ReactiveFormsModule,
|
27
|
+
SkyI18nModule,
|
28
|
+
SkyDatepickerModule,
|
29
|
+
SkyDatetimeResourcesModule,
|
30
|
+
SkyInputBoxModule] }); }
|
14
31
|
}
|
15
|
-
|
16
|
-
SkyDateRangePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent,
|
17
|
-
SkyDateRangePickerEndDateResourceKeyPipe,
|
18
|
-
SkyDateRangePickerStartDateResourceKeyPipe], imports: [CommonModule,
|
19
|
-
FormsModule,
|
20
|
-
ReactiveFormsModule,
|
21
|
-
SkyI18nModule,
|
22
|
-
SkyDatepickerModule,
|
23
|
-
SkyDatetimeResourcesModule,
|
24
|
-
SkyInputBoxModule], exports: [SkyDateRangePickerComponent] });
|
25
|
-
SkyDateRangePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [CommonModule,
|
26
|
-
FormsModule,
|
27
|
-
ReactiveFormsModule,
|
28
|
-
SkyI18nModule,
|
29
|
-
SkyDatepickerModule,
|
30
|
-
SkyDatetimeResourcesModule,
|
31
|
-
SkyInputBoxModule] });
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
|
33
33
|
type: NgModule,
|
34
34
|
args: [{
|
35
35
|
declarations: [
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
50
50
|
providers: [SkyDateRangeService],
|
51
51
|
}]
|
52
52
|
}] });
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQW9CM0QsTUFBTSxPQUFPLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOytHQUF4Qix3QkFBd0IsaUJBaEJqQywyQkFBMkI7WUFDM0Isd0NBQXdDO1lBQ3hDLDBDQUEwQyxhQUcxQyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLDBCQUEwQjtZQUMxQixpQkFBaUIsYUFFVCwyQkFBMkI7K0dBRzFCLHdCQUF3QixhQUZ4QixDQUFDLG1CQUFtQixDQUFDLFlBVDlCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsMEJBQTBCO1lBQzFCLGlCQUFpQjs7MkZBS1Isd0JBQXdCO2tCQWxCcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMkJBQTJCO3dCQUMzQix3Q0FBd0M7d0JBQ3hDLDBDQUEwQztxQkFDM0M7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnLi4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZVBpY2tlckVuZERhdGVSZXNvdXJjZUtleVBpcGUgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyLWVuZC1kYXRlLXJlc291cmNlLWtleS5waXBlJztcbmltcG9ydCB7IFNreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5UGlwZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZSc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlLXJhbmdlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsXG4gICAgU2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5UGlwZSxcbiAgICBTa3lEYXRlUmFuZ2VQaWNrZXJTdGFydERhdGVSZXNvdXJjZUtleVBpcGUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreURhdGVwaWNrZXJNb2R1bGUsXG4gICAgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5SW5wdXRCb3hNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtTa3lEYXRlUmFuZ2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { BehaviorSubject, forkJoin } from 'rxjs';
|
3
|
+
import { first, map } from 'rxjs/operators';
|
4
|
+
import { SkyDateRangeCalculator } from './types/date-range-calculator';
|
5
|
+
import { SKY_DEFAULT_CALCULATOR_CONFIGS } from './types/date-range-default-calculator-configs';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@skyux/i18n";
|
8
|
+
/**
|
9
|
+
* Creates and manages `SkyDateRangeCalculator` instances.
|
10
|
+
*/
|
11
|
+
export class SkyDateRangeService {
|
12
|
+
// Start the count higher than the number of available values
|
13
|
+
// provided in the SkyDateRangeCalculatorId enum.
|
14
|
+
static { this.lastId = 1000; }
|
15
|
+
#calculatorReadyStream = new BehaviorSubject(false);
|
16
|
+
#calculatorConfigs = {};
|
17
|
+
#calculators = [];
|
18
|
+
#resourcesService;
|
19
|
+
constructor(resourcesService) {
|
20
|
+
this.#resourcesService = resourcesService;
|
21
|
+
this.#createDefaultCalculators();
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Creates a custom date range calculator.
|
25
|
+
* @param config The calculator config.
|
26
|
+
*/
|
27
|
+
createCalculator(config) {
|
28
|
+
const newId = SkyDateRangeService.lastId++;
|
29
|
+
const calculator = new SkyDateRangeCalculator(newId, config);
|
30
|
+
this.#calculators.push(calculator);
|
31
|
+
return calculator;
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Returns calculators from an array of calculator IDs.
|
35
|
+
* @param ids The array of calculator IDs.
|
36
|
+
*/
|
37
|
+
getCalculators(ids) {
|
38
|
+
const promises = ids.map((id) => {
|
39
|
+
return this.getCalculatorById(id);
|
40
|
+
});
|
41
|
+
return Promise.all(promises);
|
42
|
+
}
|
43
|
+
/**
|
44
|
+
* Returns a calculator from a calculator ID.
|
45
|
+
* @param id The calculator ID.
|
46
|
+
*/
|
47
|
+
getCalculatorById(id) {
|
48
|
+
const calculatorId = parseInt(id, 10);
|
49
|
+
const found = this.#calculators.find((calculator) => {
|
50
|
+
return calculator.calculatorId === calculatorId;
|
51
|
+
});
|
52
|
+
return new Promise((resolve, reject) => {
|
53
|
+
if (!found) {
|
54
|
+
reject(new Error(`A calculator with the ID ${id} was not found.`));
|
55
|
+
return;
|
56
|
+
}
|
57
|
+
this.#calculatorReadyStream.pipe(first()).subscribe(() => {
|
58
|
+
resolve(found);
|
59
|
+
});
|
60
|
+
});
|
61
|
+
}
|
62
|
+
#createDefaultCalculators() {
|
63
|
+
const tasks = [];
|
64
|
+
// Get resource strings for short descriptions.
|
65
|
+
SKY_DEFAULT_CALCULATOR_CONFIGS.forEach((defaultConfig) => {
|
66
|
+
const config = {
|
67
|
+
getValue: defaultConfig.getValue,
|
68
|
+
validate: defaultConfig.validate,
|
69
|
+
shortDescription: '',
|
70
|
+
type: defaultConfig.type,
|
71
|
+
};
|
72
|
+
tasks.push(this.#resourcesService
|
73
|
+
.getString(defaultConfig.shortDescriptionResourceKey)
|
74
|
+
.pipe(first(), map((value) => {
|
75
|
+
config.shortDescription = value;
|
76
|
+
})));
|
77
|
+
this.#calculatorConfigs[defaultConfig.calculatorId] = config;
|
78
|
+
});
|
79
|
+
forkJoin(tasks)
|
80
|
+
.pipe(first())
|
81
|
+
.subscribe(() => {
|
82
|
+
const calculatorIds = Object.keys(this.#calculatorConfigs);
|
83
|
+
const calculators = calculatorIds.map((calculatorId) => {
|
84
|
+
const id = parseInt(calculatorId, 10);
|
85
|
+
return new SkyDateRangeCalculator(id, this.#calculatorConfigs[id]);
|
86
|
+
});
|
87
|
+
this.#calculators = calculators;
|
88
|
+
this.#calculatorReadyStream.next(true);
|
89
|
+
});
|
90
|
+
}
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangeService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
92
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangeService }); }
|
93
|
+
}
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangeService, decorators: [{
|
95
|
+
type: Injectable
|
96
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }]; } });
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFjLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3ZFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7QUFFL0Y7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLDZEQUE2RDtJQUM3RCxpREFBaUQ7YUFDbEMsV0FBTSxHQUFHLElBQUksQUFBUCxDQUFRO0lBRTdCLHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTdELGtCQUFrQixHQUFtRCxFQUFFLENBQUM7SUFFeEUsWUFBWSxHQUE2QixFQUFFLENBQUM7SUFFNUMsaUJBQWlCLENBQXlCO0lBRTFDLFlBQVksZ0JBQXdDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQ3JCLE1BQW9DO1FBRXBDLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFD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Q0FBQztZQUNoQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3R1UsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3InO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvckNvbmZpZyB9IGZyb20gJy4vdHlwZXMvZGF0ZS1yYW5nZS1jYWxjdWxhdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci1pZCc7XG5pbXBvcnQgeyBTS1lfREVGQVVMVF9DQUxDVUxBVE9SX0NPTkZJR1MgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtZGVmYXVsdC1jYWxjdWxhdG9yLWNvbmZpZ3MnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIG1hbmFnZXMgYFNreURhdGVSYW5nZUNhbGN1bGF0b3JgIGluc3RhbmNlcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreURhdGVSYW5nZVNlcnZpY2Uge1xuICAvLyBTdGFydCB0aGUgY291bnQgaGlnaGVyIHRoYW4gdGhlIG51bWJlciBvZiBhdmFpbGFibGUgdmFsdWVzXG4gIC8vIHByb3ZpZGVkIGluIHRoZSBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQgZW51bS5cbiAgcHJpdmF0ZSBzdGF0aWMgbGFzdElkID0gMTAwMDtcblxuICAjY2FsY3VsYXRvclJlYWR5U3RyZWFtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgI2NhbGN1bGF0b3JDb25maWdzOiB7IFtpZDogbnVtYmVyXTogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvckNvbmZpZyB9ID0ge307XG5cbiAgI2NhbGN1bGF0b3JzOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yW10gPSBbXTtcblxuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gICAgdGhpcy4jY3JlYXRlRGVmYXVsdENhbGN1bGF0b3JzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGN1c3RvbSBkYXRlIHJhbmdlIGNhbGN1bGF0b3IuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGN1bGF0b3IgY29uZmlnLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUNhbGN1bGF0b3IoXG4gICAgY29uZmlnOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yQ29uZmlnXG4gICk6IFNreURhdGVSYW5nZUNhbGN1bGF0b3Ige1xuICAgIGNvbnN0IG5ld0lkID0gU2t5RGF0ZVJhbmdlU2VydmljZS5sYXN0SWQrKztcbiAgICBjb25zdCBjYWxjdWxhdG9yID0gbmV3IFNreURhdGVSYW5nZUNhbGN1bGF0b3IobmV3SWQsIGNvbmZpZyk7XG5cbiAgICB0aGlzLiNjYWxjdWxhdG9ycy5wdXNoKGNhbGN1bGF0b3IpO1xuXG4gICAgcmV0dXJuIGNhbGN1bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjYWxjdWxhdG9ycyBmcm9tIGFuIGFycmF5IG9mIGNhbGN1bGF0b3IgSURzLlxuICAgKiBAcGFyYW0gaWRzIFRoZSBhcnJheSBvZiBjYWxjdWxhdG9yIElEcy5cbiAgICovXG4gIHB1YmxpYyBnZXRDYWxjdWxhdG9ycyhcbiAgICBpZHM6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFtdXG4gICk6IFByb21pc2U8U2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcltdPiB7XG4gICAgY29uc3QgcHJvbWlzZXMgPSBpZHMubWFwKChpZCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2FsY3VsYXRvckJ5SWQoaWQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2FsY3VsYXRvciBmcm9tIGEgY2FsY3VsYXRvciBJRC5cbiAgICogQHBhcmFtIGlkIFRoZSBjYWxjdWxhdG9yIElELlxuICAgKi9cbiAgcHVibGljIGdldENhbGN1bGF0b3JCeUlkKFxuICAgIGlkOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWRcbiAgKTogUHJvbWlzZTxTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yPiB7XG4gICAgY29uc3QgY2FsY3VsYXRvcklkID0gcGFyc2VJbnQoaWQgYXMgYW55LCAxMCk7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLiNjYWxjdWxhdG9ycy5maW5kKChjYWxjdWxhdG9yKSA9PiB7XG4gICAgICByZXR1cm4gY2FsY3VsYXRvci5jYWxjdWxhdG9ySWQgPT09IGNhbGN1bGF0b3JJZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYEEgY2FsY3VsYXRvciB3aXRoIHRoZSBJRCAke2lkfSB3YXMgbm90IGZvdW5kLmApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNjYWxjdWxhdG9yUmVhZHlTdHJlYW0ucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZvdW5kKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgI2NyZWF0ZURlZmF1bHRDYWxjdWxhdG9ycygpOiB2b2lkIHtcbiAgICBjb25zdCB0YXNrczogT2JzZXJ2YWJsZTx2b2lkPltdID0gW107XG5cbiAgICAvLyBHZXQgcmVzb3VyY2Ugc3RyaW5ncyBmb3Igc2hvcnQgZGVzY3JpcHRpb25zLlxuICAgIFNLWV9ERUZBVUxUX0NBTENVTEFUT1JfQ09ORklHUy5mb3JFYWNoKChkZWZhdWx0Q29uZmlnKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgIGdldFZhbHVlOiBkZWZhdWx0Q29uZmlnLmdldFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZTogZGVmYXVsdENvbmZpZy52YWxpZGF0ZSxcbiAgICAgICAgc2hvcnREZXNjcmlwdGlvbjogJycsXG4gICAgICAgIHR5cGU6IGRlZmF1bHRDb25maWcudHlwZSxcbiAgICAgIH07XG5cbiAgICAgIHRhc2tzLnB1c2goXG4gICAgICAgIHRoaXMuI3Jlc291cmNlc1NlcnZpY2VcbiAgICAgICAgICAuZ2V0U3RyaW5nKGRlZmF1bHRDb25maWcuc2hvcnREZXNjcmlwdGlvblJlc291cmNlS2V5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uZmlnLnNob3J0RGVzY3JpcHRpb24gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgdGhpcy4jY2FsY3VsYXRvckNvbmZpZ3NbZGVmYXVsdENvbmZpZy5jYWxjdWxhdG9ySWRdID0gY29uZmlnO1xuICAgIH0pO1xuXG4gICAgZm9ya0pvaW4odGFza3MpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0b3JJZHMgPSBPYmplY3Qua2V5cyh0aGlzLiNjYWxjdWxhdG9yQ29uZmlncyk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0b3JzID0gY2FsY3VsYXRvcklkcy5tYXAoKGNhbGN1bGF0b3JJZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQoY2FsY3VsYXRvcklkLCAxMCk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yKGlkLCB0aGlzLiNjYWxjdWxhdG9yQ29uZmlnc1tpZF0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiNjYWxjdWxhdG9ycyA9IGNhbGN1bGF0b3JzO1xuICAgICAgICB0aGlzLiNjYWxjdWxhdG9yUmVhZHlTdHJlYW0ubmV4dCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/**
|
2
|
+
* Represents the calculator.
|
3
|
+
*/
|
4
|
+
export class SkyDateRangeCalculator {
|
5
|
+
#config;
|
6
|
+
constructor(
|
7
|
+
/**
|
8
|
+
* The calculator ID that specifies calculator objects that represent date ranges.
|
9
|
+
*/
|
10
|
+
calculatorId, config) {
|
11
|
+
this.calculatorId = calculatorId;
|
12
|
+
this.#config = config;
|
13
|
+
this.type = config.type;
|
14
|
+
this.shortDescription = config.shortDescription;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Gets the current value of the calculator.
|
18
|
+
* @param startDateInput The start date.
|
19
|
+
* @param endDateInput The end date.
|
20
|
+
*/
|
21
|
+
getValue(startDateInput, endDateInput) {
|
22
|
+
const result = this.#config.getValue(startDateInput, endDateInput);
|
23
|
+
let startDate = null;
|
24
|
+
if (result.startDate instanceof Date) {
|
25
|
+
startDate = this.#parseDateWithoutTime(result.startDate);
|
26
|
+
}
|
27
|
+
let endDate = null;
|
28
|
+
if (result.endDate instanceof Date) {
|
29
|
+
endDate = this.#parseDateWithoutTime(result.endDate);
|
30
|
+
}
|
31
|
+
return {
|
32
|
+
calculatorId: this.calculatorId,
|
33
|
+
startDate,
|
34
|
+
endDate,
|
35
|
+
};
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Performs synchronous validation against the control.
|
39
|
+
*/
|
40
|
+
validate(value) {
|
41
|
+
if (!this.#config.validate) {
|
42
|
+
return null;
|
43
|
+
}
|
44
|
+
return this.#config.validate(value);
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Get a date object without time information.
|
48
|
+
* See: https://stackoverflow.com/a/38050824/6178885
|
49
|
+
*/
|
50
|
+
#parseDateWithoutTime(date) {
|
51
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
52
|
+
}
|
53
|
+
}
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1jYWxjdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLE9BQU8sQ0FBK0I7SUFFdEM7SUFDRTs7T0FFRztJQUNhLFlBQXNDLEVBQ3RELE1BQW9DO1FBRHBCLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUd0RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FDYixjQUE0QixFQUM1QixZQUEwQjtRQUUxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFbkUsSUFBSSxTQUFTLEdBQWdCLElBQUksQ0FBQztRQUNsQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLFlBQVksSUFBSSxFQUFFO1lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsSUFBSSxPQUFPLEdBQWdCLElBQUksQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLFlBQVksSUFBSSxFQUFFO1lBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixTQUFTO1lBQ1QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxJQUFVO1FBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2UgfSBmcm9tICcuL2RhdGUtcmFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24gfSBmcm9tICcuL2RhdGUtcmFuZ2UtY2FsY3VsYXRpb24nO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvckNvbmZpZyB9IGZyb20gJy4vZGF0ZS1yYW5nZS1jYWxjdWxhdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQgfSBmcm9tICcuL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci1pZCc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS1jYWxjdWxhdG9yLXR5cGUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNhbGN1bGF0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGNhbGN1bGF0b3Igc2VsZWN0IG1lbnUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvcnREZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWxjdWxhdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgZGF0ZSByYW5nZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZTtcblxuICAjY29uZmlnOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBjYWxjdWxhdG9yIElEIHRoYXQgc3BlY2lmaWVzIGNhbGN1bGF0b3Igb2JqZWN0cyB0aGF0IHJlcHJlc2VudCBkYXRlIHJhbmdlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FsY3VsYXRvcklkOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQsXG4gICAgY29uZmlnOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yQ29uZmlnXG4gICkge1xuICAgIHRoaXMuI2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLnR5cGUgPSBjb25maWcudHlwZTtcbiAgICB0aGlzLnNob3J0RGVzY3JpcHRpb24gPSBjb25maWcuc2hvcnREZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjYWxjdWxhdG9yLlxuICAgKiBAcGFyYW0gc3RhcnREYXRlSW5wdXQgVGhlIHN0YXJ0IGRhdGUuXG4gICAqIEBwYXJhbSBlbmREYXRlSW5wdXQgVGhlIGVuZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKFxuICAgIHN0YXJ0RGF0ZUlucHV0PzogRGF0ZSB8IG51bGwsXG4gICAgZW5kRGF0ZUlucHV0PzogRGF0ZSB8IG51bGxcbiAgKTogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuI2NvbmZpZy5nZXRWYWx1ZShzdGFydERhdGVJbnB1dCwgZW5kRGF0ZUlucHV0KTtcblxuICAgIGxldCBzdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgICBpZiAocmVzdWx0LnN0YXJ0RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHN0YXJ0RGF0ZSA9IHRoaXMuI3BhcnNlRGF0ZVdpdGhvdXRUaW1lKHJlc3VsdC5zdGFydERhdGUpO1xuICAgIH1cblxuICAgIGxldCBlbmREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHJlc3VsdC5lbmREYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgZW5kRGF0ZSA9IHRoaXMuI3BhcnNlRGF0ZVdpdGhvdXRUaW1lKHJlc3VsdC5lbmREYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2FsY3VsYXRvcklkOiB0aGlzLmNhbGN1bGF0b3JJZCxcbiAgICAgIHN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBzeW5jaHJvbm91cyB2YWxpZGF0aW9uIGFnYWluc3QgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUodmFsdWU/OiBTa3lEYXRlUmFuZ2UpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLiNjb25maWcudmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNjb25maWcudmFsaWRhdGUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGRhdGUgb2JqZWN0IHdpdGhvdXQgdGltZSBpbmZvcm1hdGlvbi5cbiAgICogU2VlOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzgwNTA4MjQvNjE3ODg4NVxuICAgKi9cbiAgI3BhcnNlRGF0ZVdpdGhvdXRUaW1lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import moment from 'moment';
|
2
|
+
export class SkyDateFormatter {
|
3
|
+
static { this.defaultLocale = 'en-US'; }
|
4
|
+
static { this.defaultShortDateFormat = 'MM/DD/YYYY'; }
|
5
|
+
/**
|
6
|
+
* Sets moment's global locale.
|
7
|
+
*/
|
8
|
+
static setLocale(locale) {
|
9
|
+
moment.locale(locale || SkyDateFormatter.defaultLocale);
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* Returns the preferred short date format for the current locale.
|
13
|
+
*/
|
14
|
+
static getPreferredShortDateFormat() {
|
15
|
+
/* istanbul ignore next */
|
16
|
+
return (moment.localeData().longDateFormat('L') ||
|
17
|
+
SkyDateFormatter.defaultShortDateFormat);
|
18
|
+
}
|
19
|
+
format(date, format) {
|
20
|
+
return moment(date.getTime()).format(format);
|
21
|
+
}
|
22
|
+
getDateFromString(dateString, format,
|
23
|
+
/* istanbul ignore next */
|
24
|
+
strict = false) {
|
25
|
+
let momentValue = moment(dateString, format, strict);
|
26
|
+
if (!momentValue.isValid()) {
|
27
|
+
momentValue = moment(dateString, 'YYYY-MM-DDThh:mm:ss.SZ', strict);
|
28
|
+
}
|
29
|
+
return momentValue.toDate();
|
30
|
+
}
|
31
|
+
dateIsValid(date) {
|
32
|
+
return !!(date &&
|
33
|
+
date instanceof Date &&
|
34
|
+
!isNaN(date.valueOf()) &&
|
35
|
+
!isNaN(new Date(date).getDate()));
|
36
|
+
}
|
37
|
+
}
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZS1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBZ0I7YUFDWixrQkFBYSxHQUFHLE9BQU8sQ0FBQzthQUV4QiwyQkFBc0IsR0FBRyxZQUFZLENBQUM7SUFFckQ7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWM7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLDJCQUEyQjtRQUN2QywwQkFBMEI7UUFDMUIsT0FBTyxDQUNMLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLGdCQUFnQixDQUFDLHNCQUFzQixDQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFVLEVBQUUsTUFBZTtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGlCQUFpQixDQUN0QixVQUFrQixFQUNsQixNQUFlO0lBQ2YsMEJBQTBCO0lBQzFCLE1BQU0sR0FBRyxLQUFLO1FBRWQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBc0I7UUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FDUCxJQUFJO1lBQ0osSUFBSSxZQUFZLElBQUk7WUFDcEIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ2pDLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgY2xhc3MgU2t5RGF0ZUZvcm1hdHRlciB7XG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRMb2NhbGUgPSAnZW4tVVMnO1xuXG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRTaG9ydERhdGVGb3JtYXQgPSAnTU0vREQvWVlZWSc7XG5cbiAgLyoqXG4gICAqIFNldHMgbW9tZW50J3MgZ2xvYmFsIGxvY2FsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgbW9tZW50LmxvY2FsZShsb2NhbGUgfHwgU2t5RGF0ZUZvcm1hdHRlci5kZWZhdWx0TG9jYWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgc2hvcnQgZGF0ZSBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UHJlZmVycmVkU2hvcnREYXRlRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gKFxuICAgICAgbW9tZW50LmxvY2FsZURhdGEoKS5sb25nRGF0ZUZvcm1hdCgnTCcpIHx8XG4gICAgICBTa3lEYXRlRm9ybWF0dGVyLmRlZmF1bHRTaG9ydERhdGVGb3JtYXRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdChkYXRlOiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBtb21lbnQoZGF0ZS5nZXRUaW1lKCkpLmZvcm1hdChmb3JtYXQpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGVGcm9tU3RyaW5nKFxuICAgIGRhdGVTdHJpbmc6IHN0cmluZyxcbiAgICBmb3JtYXQ/OiBzdHJpbmcsXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBzdHJpY3QgPSBmYWxzZVxuICApOiBEYXRlIHtcbiAgICBsZXQgbW9tZW50VmFsdWUgPSBtb21lbnQoZGF0ZVN0cmluZywgZm9ybWF0LCBzdHJpY3QpO1xuXG4gICAgaWYgKCFtb21lbnRWYWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgIG1vbWVudFZhbHVlID0gbW9tZW50KGRhdGVTdHJpbmcsICdZWVlZLU1NLUREVGhoOm1tOnNzLlNaJywgc3RyaWN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50VmFsdWUudG9EYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGF0ZUlzVmFsaWQoZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIGRhdGUgJiZcbiAgICAgIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmXG4gICAgICAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpICYmXG4gICAgICAhaXNOYU4obmV3IERhdGUoZGF0ZSkuZ2V0RGF0ZSgpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export class SkyDatepickerAdapterService {
|
7
|
+
#renderer;
|
8
|
+
constructor(renderer) {
|
9
|
+
this.#renderer = renderer;
|
10
|
+
}
|
11
|
+
getPlaceholder(elementRef) {
|
12
|
+
return elementRef.nativeElement.getAttribute('placeholder');
|
13
|
+
}
|
14
|
+
setPlaceholder(elementRef, value) {
|
15
|
+
this.#renderer.setAttribute(elementRef.nativeElement, 'placeholder', value);
|
16
|
+
}
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerAdapterService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerAdapterService }); }
|
19
|
+
}
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatepickerAdapterService, decorators: [{
|
21
|
+
type: Injectable
|
22
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFFbEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFNBQVMsQ0FBWTtJQUVyQixZQUFZLFFBQW1CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxjQUFjLENBQUMsVUFBc0I7UUFDMUMsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQXNCLEVBQUUsS0FBYTtRQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDOzhHQWJVLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyQWRhcHRlclNlcnZpY2Uge1xuICAjcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQbGFjZWhvbGRlcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICB9XG59XG4iXX0=
|