@skyux/datetime 8.7.2 → 9.0.0-alpha.1
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 +51 -51
- 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
package/documentation.json
CHANGED
@@ -10989,94 +10989,94 @@
|
|
10989
10989
|
},
|
10990
10990
|
"codeExamples": [
|
10991
10991
|
{
|
10992
|
-
"fileName": "
|
10993
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
10994
|
-
"rawContents": "
|
10995
|
-
},
|
10996
|
-
{
|
10997
|
-
"fileName": "date-pipe-demo.component.ts",
|
10998
|
-
"filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.component.ts",
|
10999
|
-
"rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-date-pipe-demo',\n templateUrl: './date-pipe-demo.component.html',\n})\nexport class DatePipeDemoComponent {\n public myDate = new Date('11/05/1955');\n}\n"
|
10992
|
+
"fileName": "timepicker-demo.module.ts",
|
10993
|
+
"filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.module.ts",
|
10994
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyTimepickerModule } from '@skyux/datetime';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\n\nimport { TimepickerDemoComponent } from './timepicker-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyInputBoxModule,\n SkyStatusIndicatorModule,\n SkyTimepickerModule,\n ],\n exports: [TimepickerDemoComponent],\n declarations: [TimepickerDemoComponent],\n})\nexport class TimepickerDemoModule {}\n"
|
11000
10995
|
},
|
11001
10996
|
{
|
11002
|
-
"fileName": "
|
11003
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11004
|
-
"rawContents": "import {
|
10997
|
+
"fileName": "timepicker-demo.component.ts",
|
10998
|
+
"filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.component.ts",
|
10999
|
+
"rawContents": "import { Component } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\n\n@Component({\n selector: 'app-timepicker-demo',\n templateUrl: './timepicker-demo.component.html',\n})\nexport class TimepickerDemoComponent {\n public get timeControl(): FormControl {\n return this.formGroup.get('time') as FormControl;\n }\n\n public formGroup: FormGroup;\n\n constructor(formBuilder: FormBuilder) {\n this.formGroup = formBuilder.group({\n time: new FormControl('2:45', Validators.required),\n });\n }\n\n public clearSelectedTime(): void {\n this.timeControl.setValue(undefined);\n }\n}\n"
|
11005
11000
|
},
|
11006
11001
|
{
|
11007
|
-
"fileName": "
|
11008
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11009
|
-
"rawContents": "<form novalidate [formGroup]=\"
|
11002
|
+
"fileName": "timepicker-demo.component.html",
|
11003
|
+
"filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.component.html",
|
11004
|
+
"rawContents": "<form novalidate [formGroup]=\"formGroup\">\n <sky-input-box labelText=\"Start time\">\n <sky-timepicker #timepicker>\n <input\n formControlName=\"time\"\n type=\"text\"\n [skyTimepickerInput]=\"timepicker\"\n />\n </sky-timepicker>\n </sky-input-box>\n</form>\n\n<button\n class=\"sky-btn sky-btn-secondary\"\n type=\"button\"\n (click)=\"clearSelectedTime()\"\n>\n Clear selection\n</button>\n"
|
11010
11005
|
},
|
11011
11006
|
{
|
11012
|
-
"fileName": "
|
11013
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11014
|
-
"rawContents": "import {
|
11007
|
+
"fileName": "datepicker-demo.module.ts",
|
11008
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/fuzzy/datepicker-demo.module.ts",
|
11009
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\nimport { SkyInputBoxModule } from '@skyux/forms';\n\nimport { DatepickerDemoComponent } from './datepicker-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyDatepickerModule,\n SkyInputBoxModule,\n ],\n exports: [DatepickerDemoComponent],\n declarations: [DatepickerDemoComponent],\n})\nexport class DatepickerDemoModule {}\n"
|
11015
11010
|
},
|
11016
11011
|
{
|
11017
|
-
"fileName": "
|
11018
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11019
|
-
"rawContents": "import {
|
11012
|
+
"fileName": "datepicker-demo.component.ts",
|
11013
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/fuzzy/datepicker-demo.component.ts",
|
11014
|
+
"rawContents": "import { Component } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-datepicker-demo',\n templateUrl: './datepicker-demo.component.html',\n})\nexport class DatepickerDemoComponent {\n public myForm: FormGroup;\n\n constructor(formBuilder: FormBuilder) {\n this.myForm = formBuilder.group({\n myDate: new FormControl(new Date(1955, 10, 5)),\n });\n }\n\n public get getFuzzyDateForDisplay(): string {\n return JSON.stringify(this.myForm.get('myDate')?.value);\n }\n}\n"
|
11020
11015
|
},
|
11021
11016
|
{
|
11022
11017
|
"fileName": "datepicker-demo.component.html",
|
11023
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/
|
11024
|
-
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker>\n <input formControlName=\"myDate\"
|
11025
|
-
},
|
11026
|
-
{
|
11027
|
-
"fileName": "datepicker-demo.component.ts",
|
11028
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/basic/datepicker-demo.component.ts",
|
11029
|
-
"rawContents": "import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\n\n@Component({\n selector: 'app-datepicker-demo',\n templateUrl: './datepicker-demo.component.html',\n})\nexport class DatepickerDemoComponent {\n public myForm: UntypedFormGroup;\n\n constructor(formBuilder: UntypedFormBuilder) {\n this.myForm = formBuilder.group({\n myDate: new UntypedFormControl(new Date(1999, 10, 5)),\n });\n }\n}\n"
|
11018
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/fuzzy/datepicker-demo.component.html",
|
11019
|
+
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker>\n <input formControlName=\"myDate\" skyFuzzyDatepickerInput type=\"text\" />\n </sky-datepicker>\n </sky-input-box>\n</form>\n\n<p>\n Selected date: <code>{{ getFuzzyDateForDisplay }}</code>\n</p>\n"
|
11030
11020
|
},
|
11031
11021
|
{
|
11032
11022
|
"fileName": "datepicker-demo.module.ts",
|
11033
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/
|
11023
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/custom-dates/datepicker-demo.module.ts",
|
11034
11024
|
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\nimport { SkyInputBoxModule } from '@skyux/forms';\n\nimport { DatepickerDemoComponent } from './datepicker-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyDatepickerModule,\n SkyInputBoxModule,\n ],\n exports: [DatepickerDemoComponent],\n declarations: [DatepickerDemoComponent],\n})\nexport class DatepickerDemoModule {}\n"
|
11035
11025
|
},
|
11036
|
-
{
|
11037
|
-
"fileName": "datepicker-demo.component.html",
|
11038
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/custom-dates/datepicker-demo.component.html",
|
11039
|
-
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n >\n <input formControlName=\"myDate\" skyDatepickerInput type=\"text\" />\n </sky-datepicker>\n </sky-input-box>\n</form>\n\n<p>\n Selected date: <code>{{ myForm.value.myDate }}</code>\n</p>\n"
|
11040
|
-
},
|
11041
11026
|
{
|
11042
11027
|
"fileName": "datepicker-demo.component.ts",
|
11043
11028
|
"filePath": "/projects/datetime/documentation/code-examples/datepicker/custom-dates/datepicker-demo.component.ts",
|
11044
11029
|
"rawContents": "import { Component } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport {\n SkyDatepickerCalendarChange,\n SkyDatepickerCustomDate,\n} from '@skyux/datetime';\n\nimport { Observable, of } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\n@Component({\n selector: 'app-datepicker-demo',\n templateUrl: './datepicker-demo.component.html',\n})\nexport class DatepickerDemoComponent {\n public myForm: FormGroup;\n\n constructor(formBuilder: FormBuilder) {\n this.myForm = formBuilder.group({\n myDate: new FormControl(new Date(1999, 10, 5)),\n });\n }\n\n public onCalendarDateRangeChange(event: SkyDatepickerCalendarChange): void {\n if (event) {\n // Bind observable to `customDates` argument and simulate delay for async process to finish.\n // Normally, `getCustomDates()` would be replaced by an async call to fetch data.\n event.customDates = this.#getCustomDates(event).pipe(delay(2000));\n }\n }\n\n /**\n * Generate fake custom dates based on the date range returned from the event.\n * This is for demonstration purposes only.\n */\n #getCustomDates(\n event: SkyDatepickerCalendarChange\n ): Observable<SkyDatepickerCustomDate[]> {\n const getNextDate = function (startDate: Date, daysToAdd: number): Date {\n const newDate = new Date(startDate);\n newDate.setDate(newDate.getDate() + daysToAdd);\n return newDate;\n };\n\n const customDates: SkyDatepickerCustomDate[] = [];\n customDates.push({\n date: event.startDate,\n disabled: false,\n keyDate: true,\n keyDateText: ['First date'],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 8),\n disabled: false,\n keyDate: true,\n keyDateText: ['Important'],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 9),\n disabled: false,\n keyDate: true,\n keyDateText: ['Also Important'],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 10),\n disabled: true,\n keyDate: true,\n keyDateText: ['Disabled'],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 11),\n disabled: true,\n keyDate: false,\n keyDateText: [],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 12),\n disabled: false,\n keyDate: true,\n keyDateText: [],\n });\n\n customDates.push({\n date: getNextDate(event.startDate, 13),\n disabled: false,\n keyDate: true,\n keyDateText: ['Multiple', 'Messages'],\n });\n\n customDates.push({\n date: event.endDate,\n disabled: false,\n keyDate: true,\n keyDateText: ['Last date'],\n });\n\n return of(customDates);\n }\n}\n"
|
11045
11030
|
},
|
11031
|
+
{
|
11032
|
+
"fileName": "datepicker-demo.component.html",
|
11033
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/custom-dates/datepicker-demo.component.html",
|
11034
|
+
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n >\n <input formControlName=\"myDate\" skyDatepickerInput type=\"text\" />\n </sky-datepicker>\n </sky-input-box>\n</form>\n\n<p>\n Selected date: <code>{{ myForm.value.myDate }}</code>\n</p>\n"
|
11035
|
+
},
|
11046
11036
|
{
|
11047
11037
|
"fileName": "datepicker-demo.module.ts",
|
11048
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/
|
11038
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/basic/datepicker-demo.module.ts",
|
11049
11039
|
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDatepickerModule } from '@skyux/datetime';\nimport { SkyInputBoxModule } from '@skyux/forms';\n\nimport { DatepickerDemoComponent } from './datepicker-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyDatepickerModule,\n SkyInputBoxModule,\n ],\n exports: [DatepickerDemoComponent],\n declarations: [DatepickerDemoComponent],\n})\nexport class DatepickerDemoModule {}\n"
|
11050
11040
|
},
|
11041
|
+
{
|
11042
|
+
"fileName": "datepicker-demo.component.ts",
|
11043
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/basic/datepicker-demo.component.ts",
|
11044
|
+
"rawContents": "import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\n\n@Component({\n selector: 'app-datepicker-demo',\n templateUrl: './datepicker-demo.component.html',\n})\nexport class DatepickerDemoComponent {\n public myForm: UntypedFormGroup;\n\n constructor(formBuilder: UntypedFormBuilder) {\n this.myForm = formBuilder.group({\n myDate: new UntypedFormControl(new Date(1999, 10, 5)),\n });\n }\n}\n"
|
11045
|
+
},
|
11051
11046
|
{
|
11052
11047
|
"fileName": "datepicker-demo.component.html",
|
11053
|
-
"filePath": "/projects/datetime/documentation/code-examples/datepicker/
|
11054
|
-
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker>\n <input formControlName=\"myDate\"
|
11048
|
+
"filePath": "/projects/datetime/documentation/code-examples/datepicker/basic/datepicker-demo.component.html",
|
11049
|
+
"rawContents": "<form novalidate [formGroup]=\"myForm\">\n <sky-input-box labelText=\"Date\">\n <sky-datepicker>\n <input formControlName=\"myDate\" skyDatepickerInput type=\"text\" />\n </sky-datepicker>\n </sky-input-box>\n</form>\n\n<p>\n Selected date: <code>{{ myForm.value.myDate }}</code>\n</p>\n"
|
11055
11050
|
},
|
11056
11051
|
{
|
11057
|
-
"fileName": "
|
11058
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11059
|
-
"rawContents": "import {
|
11052
|
+
"fileName": "date-range-picker-demo.module.ts",
|
11053
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.module.ts",
|
11054
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkyDateRangePickerModule } from '@skyux/datetime';\n\nimport { DateRangePickerDemoComponent } from './date-range-picker-demo.component';\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, SkyDateRangePickerModule],\n exports: [DateRangePickerDemoComponent],\n declarations: [DateRangePickerDemoComponent],\n})\nexport class DateRangePickerDemoModule {}\n"
|
11060
11055
|
},
|
11061
11056
|
{
|
11062
|
-
"fileName": "
|
11063
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11064
|
-
"rawContents": "import {
|
11057
|
+
"fileName": "date-range-picker-demo.component.ts",
|
11058
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.component.ts",
|
11059
|
+
"rawContents": "import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport {\n SkyDateRangeCalculation,\n SkyDateRangeCalculatorId,\n SkyDateRangeCalculatorType,\n SkyDateRangeService,\n} from '@skyux/datetime';\n\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-date-range-picker-demo',\n templateUrl: './date-range-picker-demo.component.html',\n})\nexport class DateRangePickerDemoComponent implements OnInit, OnDestroy {\n public calculatorIds: SkyDateRangeCalculatorId[] | undefined;\n\n public dateFormat: string | undefined;\n\n public reactiveForm: UntypedFormGroup;\n\n public get reactiveRange(): AbstractControl | null {\n return this.reactiveForm.get('lastDonation');\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #dateRangeService: SkyDateRangeService;\n\n constructor(dateRangeService: SkyDateRangeService, formBuilder: FormBuilder) {\n this.#dateRangeService = dateRangeService;\n this.reactiveForm = formBuilder.group({\n lastDonation: new UntypedFormControl(),\n });\n }\n\n public ngOnInit(): void {\n // Watch for status changes.\n this.reactiveRange?.statusChanges\n .pipe(distinctUntilChanged(), takeUntil(this.#ngUnsubscribe))\n .subscribe((status) => {\n console.log(\n 'Date range status change:',\n status,\n this.reactiveRange?.errors\n );\n });\n\n // Watch for value changes.\n this.reactiveRange?.valueChanges\n .pipe(distinctUntilChanged(), takeUntil(this.#ngUnsubscribe))\n .subscribe((value: SkyDateRangeCalculation) => {\n console.log('Date range value change:', value);\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public toggleDisabled(): void {\n if (this.reactiveForm.disabled) {\n this.reactiveForm.enable();\n } else {\n this.reactiveForm.disable();\n }\n }\n\n public resetForm(): void {\n this.dateFormat = undefined;\n this.calculatorIds = undefined;\n this.reactiveForm.reset();\n this.reactiveForm.markAsPristine();\n this.reactiveForm.markAsUntouched();\n }\n\n public setRange(): void {\n const range: SkyDateRangeCalculation = {\n calculatorId: SkyDateRangeCalculatorId.SpecificRange,\n startDate: new Date('1/1/2012'),\n endDate: new Date('1/1/2013'),\n };\n\n this.reactiveRange?.setValue(range);\n }\n\n public setInvalidRange(): void {\n const range: SkyDateRangeCalculation = {\n calculatorId: SkyDateRangeCalculatorId.SpecificRange,\n startDate: new Date('1/1/2013'),\n endDate: new Date('1/1/2012'),\n };\n\n this.reactiveRange?.setValue(range);\n }\n\n public setInvalidDates(): void {\n const range: SkyDateRangeCalculation = {\n calculatorId: SkyDateRangeCalculatorId.SpecificRange,\n startDate: 'invalid' as never as Date,\n endDate: 'invalid' as never as Date,\n };\n\n this.reactiveRange?.setValue(range);\n }\n\n public setCalculatorIds(): void {\n const calculator = this.#dateRangeService.createCalculator({\n shortDescription: 'Since 1999',\n type: SkyDateRangeCalculatorType.Relative,\n getValue: () => {\n return {\n startDate: new Date('1/1/1999'),\n endDate: new Date(),\n };\n },\n });\n\n this.calculatorIds = [\n calculator.calculatorId,\n SkyDateRangeCalculatorId.SpecificRange,\n SkyDateRangeCalculatorId.LastFiscalYear,\n ];\n }\n\n public setDateFormat(): void {\n this.dateFormat = 'YYYY-MM-DD';\n }\n}\n"
|
11065
11060
|
},
|
11066
11061
|
{
|
11067
|
-
"fileName": "
|
11068
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11069
|
-
"rawContents": "<form novalidate [formGroup]=\"
|
11062
|
+
"fileName": "date-range-picker-demo.component.html",
|
11063
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.component.html",
|
11064
|
+
"rawContents": "<form novalidate [formGroup]=\"reactiveForm\">\n <div class=\"sky-form-group\">\n <sky-date-range-picker\n formControlName=\"lastDonation\"\n label=\"Last donation\"\n [calculatorIds]=\"calculatorIds\"\n [dateFormat]=\"dateFormat\"\n >\n </sky-date-range-picker>\n\n <ng-container *ngIf=\"reactiveRange?.errors && reactiveRange?.touched\">\n <div\n *ngIf=\"\n reactiveRange?.errors?.['skyDateRange']?.errors.endDateBeforeStartDate\n \"\n class=\"sky-error-label\"\n >\n Change the date range so that the from date is on or before the to date.\n </div>\n <div *ngIf=\"reactiveRange?.errors?.['skyDate']\" class=\"sky-error-label\">\n Enter valid dates.\n </div>\n </ng-container>\n </div>\n</form>\n\n<h3>Form control statuses</h3>\n\n<table>\n <tr>\n <th>Touched</th>\n <td>{{ reactiveRange?.touched }}</td>\n </tr>\n <tr>\n <th>Pristine</th>\n <td>{{ reactiveRange?.pristine }}</td>\n </tr>\n <tr>\n <th>Valid</th>\n <td>{{ reactiveRange?.valid }}</td>\n </tr>\n</table>\n\n<h3>Form control value</h3>\n\n<pre><code style=\"display:block;\">calculatorId: {{ reactiveForm.value.lastDonation?.calculatorId }}\nstartDate: {{ reactiveForm.value.lastDonation?.startDate | date }}\nendDate: {{ reactiveForm.value.lastDonation?.endDate | date }}</code></pre>\n\n<h3>Manipulate value and state</h3>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"toggleDisabled()\"\n>\n {{ reactiveForm.disabled ? 'Enable' : 'Disable' }} picker\n</button>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"resetForm()\"\n>\n Reset form\n</button>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"setRange()\"\n>\n Set specific range\n</button>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"setInvalidRange()\"\n>\n Set invalid range\n</button>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"setInvalidDates()\"\n>\n Set invalid dates\n</button>\n\n<button\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n type=\"button\"\n (click)=\"setCalculatorIds()\"\n>\n Set custom calculators\n</button>\n\n<button class=\"sky-btn sky-btn-default\" type=\"button\" (click)=\"setDateFormat()\">\n Set date format (YYYY-MM-DD)\n</button>\n"
|
11070
11065
|
},
|
11071
11066
|
{
|
11072
|
-
"fileName": "
|
11073
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11074
|
-
"rawContents": "import {
|
11067
|
+
"fileName": "date-pipe-demo.module.ts",
|
11068
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.module.ts",
|
11069
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyDatePipeModule } from '@skyux/datetime';\n\nimport { DatePipeDemoComponent } from './date-pipe-demo.component';\n\n@NgModule({\n imports: [CommonModule, SkyDatePipeModule],\n exports: [DatePipeDemoComponent],\n declarations: [DatePipeDemoComponent],\n})\nexport class DatePipeDemoModule {}\n"
|
11075
11070
|
},
|
11076
11071
|
{
|
11077
|
-
"fileName": "
|
11078
|
-
"filePath": "/projects/datetime/documentation/code-examples/
|
11079
|
-
"rawContents": "import {
|
11072
|
+
"fileName": "date-pipe-demo.component.ts",
|
11073
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.component.ts",
|
11074
|
+
"rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-date-pipe-demo',\n templateUrl: './date-pipe-demo.component.html',\n})\nexport class DatePipeDemoComponent {\n public myDate = new Date('11/05/1955');\n}\n"
|
11075
|
+
},
|
11076
|
+
{
|
11077
|
+
"fileName": "date-pipe-demo.component.html",
|
11078
|
+
"filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.component.html",
|
11079
|
+
"rawContents": "<div>{{ myDate | skyDate }}</div>\n<div>{{ myDate | skyDate : 'medium' }}</div>\n<div>{{ myDate | skyDate : 'medium' : 'es-MX' }}</div>\n"
|
11080
11080
|
}
|
11081
11081
|
]
|
11082
11082
|
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// This class is mostly ported from the Angular 4.x DatePipe in order to maintain the old
|
2
|
+
// behavior of using the `Intl` API for formatting dates rather than having to register every
|
3
|
+
// supported locale.
|
4
|
+
// https://github.com/angular/angular/blob/4.4.x/packages/common/src/pipes/date_pipe.ts
|
5
|
+
import { SkyIntlDateFormatter } from '@skyux/i18n';
|
6
|
+
import moment from 'moment';
|
7
|
+
export class SkyDateFormatUtility {
|
8
|
+
/* spell-checker:disable */
|
9
|
+
static { this._ALIASES = {
|
10
|
+
medium: 'yMMMdjms',
|
11
|
+
short: 'yMdjm',
|
12
|
+
fullDate: 'yMMMMEEEEd',
|
13
|
+
longDate: 'yMMMMd',
|
14
|
+
mediumDate: 'yMMMd',
|
15
|
+
shortDate: 'yMd',
|
16
|
+
mediumTime: 'jms',
|
17
|
+
shortTime: 'jm',
|
18
|
+
}; }
|
19
|
+
/* spell-checker:enable */
|
20
|
+
static format(locale, value, pattern) {
|
21
|
+
let date;
|
22
|
+
if (isBlank(value) || value !== value) {
|
23
|
+
return undefined;
|
24
|
+
}
|
25
|
+
// Moment will interpret any non-date object as today's date. That would
|
26
|
+
// introduce a breaking change, so we check for it here. This could probably be removed
|
27
|
+
// in a future major version.
|
28
|
+
if (value instanceof Object && !(value instanceof Date)) {
|
29
|
+
throw new Error('Invalid value: ' + value);
|
30
|
+
}
|
31
|
+
// Use moment to avoid inconsistencies between browsers interpreting the value differently.
|
32
|
+
const momentDate = moment(value);
|
33
|
+
if (momentDate.isValid()) {
|
34
|
+
date = momentDate.toDate();
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
throw new Error('Invalid value: ' + value);
|
38
|
+
}
|
39
|
+
return SkyIntlDateFormatter.format(date, locale, SkyDateFormatUtility._ALIASES[pattern] || pattern);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
function isBlank(obj) {
|
43
|
+
return !obj;
|
44
|
+
}
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mb3JtYXQtdXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1waXBlL2RhdGUtZm9ybWF0LXV0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUZBQXlGO0FBQ3pGLDZGQUE2RjtBQUM3RixvQkFBb0I7QUFDcEIsdUZBQXVGO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQiwyQkFBMkI7YUFDWixhQUFRLEdBQThCO1FBQ25ELE1BQU0sRUFBRSxVQUFVO1FBQ2xCLEtBQUssRUFBRSxPQUFPO1FBQ2QsUUFBUSxFQUFFLFlBQVk7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLElBQUk7S0FDaEIsQ0FBQztJQUNGLDBCQUEwQjtJQUVuQixNQUFNLENBQUMsTUFBTSxDQUNsQixNQUFjLEVBQ2QsS0FBVSxFQUNWLE9BQWU7UUFFZixJQUFJLElBQVUsQ0FBQztRQUVmLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDckMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCx3RUFBd0U7UUFDeEUsdUZBQXVGO1FBQ3ZGLDZCQUE2QjtRQUM3QixJQUFJLEtBQUssWUFBWSxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsRUFBRTtZQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBRUQsMkZBQTJGO1FBQzNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QixJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQ2hDLElBQUksRUFDSixNQUFNLEVBQ04sb0JBQW9CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FDbEQsQ0FBQztJQUNKLENBQUM7O0FBR0gsU0FBUyxPQUFPLENBQUMsR0FBUTtJQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY2xhc3MgaXMgbW9zdGx5IHBvcnRlZCBmcm9tIHRoZSBBbmd1bGFyIDQueCBEYXRlUGlwZSBpbiBvcmRlciB0byBtYWludGFpbiB0aGUgb2xkXG4vLyBiZWhhdmlvciBvZiB1c2luZyB0aGUgYEludGxgIEFQSSBmb3IgZm9ybWF0dGluZyBkYXRlcyByYXRoZXIgdGhhbiBoYXZpbmcgdG8gcmVnaXN0ZXIgZXZlcnlcbi8vIHN1cHBvcnRlZCBsb2NhbGUuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNC40LngvcGFja2FnZXMvY29tbW9uL3NyYy9waXBlcy9kYXRlX3BpcGUudHNcbmltcG9ydCB7IFNreUludGxEYXRlRm9ybWF0dGVyIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBTa3lEYXRlRm9ybWF0VXRpbGl0eSB7XG4gIC8qIHNwZWxsLWNoZWNrZXI6ZGlzYWJsZSAqL1xuICBwcml2YXRlIHN0YXRpYyBfQUxJQVNFUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBtZWRpdW06ICd5TU1NZGptcycsXG4gICAgc2hvcnQ6ICd5TWRqbScsXG4gICAgZnVsbERhdGU6ICd5TU1NTUVFRUVkJyxcbiAgICBsb25nRGF0ZTogJ3lNTU1NZCcsXG4gICAgbWVkaXVtRGF0ZTogJ3lNTU1kJyxcbiAgICBzaG9ydERhdGU6ICd5TWQnLFxuICAgIG1lZGl1bVRpbWU6ICdqbXMnLFxuICAgIHNob3J0VGltZTogJ2ptJyxcbiAgfTtcbiAgLyogc3BlbGwtY2hlY2tlcjplbmFibGUgKi9cblxuICBwdWJsaWMgc3RhdGljIGZvcm1hdChcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICAgIHBhdHRlcm46IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBkYXRlOiBEYXRlO1xuXG4gICAgaWYgKGlzQmxhbmsodmFsdWUpIHx8IHZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBNb21lbnQgd2lsbCBpbnRlcnByZXQgYW55IG5vbi1kYXRlIG9iamVjdCBhcyB0b2RheSdzIGRhdGUuIFRoYXQgd291bGRcbiAgICAvLyBpbnRyb2R1Y2UgYSBicmVha2luZyBjaGFuZ2UsIHNvIHdlIGNoZWNrIGZvciBpdCBoZXJlLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWRcbiAgICAvLyBpbiBhIGZ1dHVyZSBtYWpvciB2ZXJzaW9uLlxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZTogJyArIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBVc2UgbW9tZW50IHRvIGF2b2lkIGluY29uc2lzdGVuY2llcyBiZXR3ZWVuIGJyb3dzZXJzIGludGVycHJldGluZyB0aGUgdmFsdWUgZGlmZmVyZW50bHkuXG4gICAgY29uc3QgbW9tZW50RGF0ZSA9IG1vbWVudCh2YWx1ZSk7XG4gICAgaWYgKG1vbWVudERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICBkYXRlID0gbW9tZW50RGF0ZS50b0RhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlOiAnICsgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBTa3lJbnRsRGF0ZUZvcm1hdHRlci5mb3JtYXQoXG4gICAgICBkYXRlLFxuICAgICAgbG9jYWxlLFxuICAgICAgU2t5RGF0ZUZvcm1hdFV0aWxpdHkuX0FMSUFTRVNbcGF0dGVybl0gfHwgcGF0dGVyblxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNCbGFuayhvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gIW9iajtcbn1cbiJdfQ==
|
@@ -5,11 +5,11 @@ import { SkyDatePipe } from './date.pipe';
|
|
5
5
|
import { SkyFuzzyDatePipe } from './fuzzy-date.pipe';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export class SkyDatePipeModule {
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipeModule, declarations: [SkyDatePipe, SkyFuzzyDatePipe], imports: [CommonModule, SkyDatetimeResourcesModule], exports: [SkyDatePipe, SkyFuzzyDatePipe] }); }
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipeModule, providers: [SkyDatePipe, SkyFuzzyDatePipe], imports: [CommonModule, SkyDatetimeResourcesModule] }); }
|
8
11
|
}
|
9
|
-
|
10
|
-
SkyDatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDatePipeModule, declarations: [SkyDatePipe, SkyFuzzyDatePipe], imports: [CommonModule, SkyDatetimeResourcesModule], exports: [SkyDatePipe, SkyFuzzyDatePipe] });
|
11
|
-
SkyDatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDatePipeModule, providers: [SkyDatePipe, SkyFuzzyDatePipe], imports: [CommonModule, SkyDatetimeResourcesModule] });
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDatePipeModule, decorators: [{
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipeModule, decorators: [{
|
13
13
|
type: NgModule,
|
14
14
|
args: [{
|
15
15
|
declarations: [SkyDatePipe, SkyFuzzyDatePipe],
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
18
18
|
exports: [SkyDatePipe, SkyFuzzyDatePipe],
|
19
19
|
}]
|
20
20
|
}] });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1waXBlL2RhdGUtcGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBTGIsV0FBVyxFQUFFLGdCQUFnQixhQUVsQyxZQUFZLEVBQUUsMEJBQTBCLGFBQ3hDLFdBQVcsRUFBRSxnQkFBZ0I7K0dBRTVCLGlCQUFpQixhQUpqQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNoQyxZQUFZLEVBQUUsMEJBQTBCOzsyRkFHdkMsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO29CQUMxQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUM7b0JBQ25ELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lEYXRlUGlwZSB9IGZyb20gJy4vZGF0ZS5waXBlJztcbmltcG9ydCB7IFNreUZ1enp5RGF0ZVBpcGUgfSBmcm9tICcuL2Z1enp5LWRhdGUucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreURhdGVQaXBlLCBTa3lGdXp6eURhdGVQaXBlXSxcbiAgcHJvdmlkZXJzOiBbU2t5RGF0ZVBpcGUsIFNreUZ1enp5RGF0ZVBpcGVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lEYXRlUGlwZSwgU2t5RnV6enlEYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGVQaXBlTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
4
|
+
import { SkyDateFormatUtility } from './date-format-utility';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@skyux/i18n";
|
7
|
+
/**
|
8
|
+
* Formats date values according to locale rules.
|
9
|
+
* @example
|
10
|
+
* ```markup
|
11
|
+
* {{ myDate | skyDate }}
|
12
|
+
* {{ myDate | skyDate:'medium' }}
|
13
|
+
* {{ myDate | skyDate:'medium':'en-CA' }}
|
14
|
+
* ```
|
15
|
+
*/
|
16
|
+
export class SkyDatePipe {
|
17
|
+
#defaultFormat = 'short';
|
18
|
+
#format;
|
19
|
+
#defaultLocale = 'en-US';
|
20
|
+
#locale;
|
21
|
+
#value;
|
22
|
+
#formattedValue;
|
23
|
+
#ngUnsubscribe = new Subject();
|
24
|
+
constructor(localeProvider) {
|
25
|
+
localeProvider
|
26
|
+
.getLocaleInfo()
|
27
|
+
.pipe(takeUntil(this.#ngUnsubscribe))
|
28
|
+
.subscribe((localeInfo) => {
|
29
|
+
this.#defaultLocale = localeInfo.locale;
|
30
|
+
this.#updateFormattedValue();
|
31
|
+
});
|
32
|
+
}
|
33
|
+
ngOnDestroy() {
|
34
|
+
this.#ngUnsubscribe.next();
|
35
|
+
this.#ngUnsubscribe.complete();
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Transforms a date value using locale and format rules.
|
39
|
+
* @param value Specifies the date value to transform.
|
40
|
+
* @param format Specifies the format to apply to the transform. The format string is
|
41
|
+
* constructed by a series of symbols that represent date-time values. The symbols are
|
42
|
+
* identical to [Angular's `DatePipe`](https://angular.io/api/common/DatePipe#pre-defined-format-options) format options.
|
43
|
+
* @param locale Specifies the locale code to use in the transform.
|
44
|
+
*/
|
45
|
+
transform(value, format, locale) {
|
46
|
+
this.#value = value;
|
47
|
+
this.#format = format;
|
48
|
+
this.#locale = locale;
|
49
|
+
this.#updateFormattedValue();
|
50
|
+
return this.#formattedValue ?? '';
|
51
|
+
}
|
52
|
+
#updateFormattedValue() {
|
53
|
+
const locale = this.#locale || this.#defaultLocale;
|
54
|
+
const format = this.#format || this.#defaultFormat;
|
55
|
+
this.#formattedValue = SkyDateFormatUtility.format(locale, this.#value, format);
|
56
|
+
}
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipe, deps: [{ token: i1.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
58
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipe, name: "skyDate", pure: false }); }
|
59
|
+
}
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDatePipe, decorators: [{
|
61
|
+
type: Pipe,
|
62
|
+
args: [{
|
63
|
+
name: 'skyDate',
|
64
|
+
pure: false,
|
65
|
+
}]
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.SkyAppLocaleProvider }]; } });
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXBpcGUvZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFN0Q7Ozs7Ozs7O0dBUUc7QUFLSCxNQUFNLE9BQU8sV0FBVztJQUN0QixjQUFjLEdBQUcsT0FBTyxDQUFDO0lBRXpCLE9BQU8sQ0FBcUI7SUFFNUIsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUV6QixPQUFPLENBQXFCO0lBRTVCLE1BQU0sQ0FBTTtJQUVaLGVBQWUsQ0FBcUI7SUFFcEMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFckMsWUFBWSxjQUFvQztRQUM5QyxjQUFjO2FBQ1gsYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsVUFBNEIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBZSxFQUFFLE1BQWU7UUFDM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFFdEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQ2hELE1BQU0sRUFDTixJQUFJLENBQUMsTUFBTSxFQUNYLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQzs4R0F6RFUsV0FBVzs0R0FBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUp2QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBMb2NhbGVJbmZvLCBTa3lBcHBMb2NhbGVQcm92aWRlciB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlRm9ybWF0VXRpbGl0eSB9IGZyb20gJy4vZGF0ZS1mb3JtYXQtdXRpbGl0eSc7XG5cbi8qKlxuICogRm9ybWF0cyBkYXRlIHZhbHVlcyBhY2NvcmRpbmcgdG8gbG9jYWxlIHJ1bGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYG1hcmt1cFxuICoge3sgbXlEYXRlIHwgc2t5RGF0ZSB9fVxuICoge3sgbXlEYXRlIHwgc2t5RGF0ZTonbWVkaXVtJyB9fVxuICoge3sgbXlEYXRlIHwgc2t5RGF0ZTonbWVkaXVtJzonZW4tQ0EnIH19XG4gKiBgYGBcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnc2t5RGF0ZScsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlUGlwZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUGlwZVRyYW5zZm9ybSB7XG4gICNkZWZhdWx0Rm9ybWF0ID0gJ3Nob3J0JztcblxuICAjZm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI2RlZmF1bHRMb2NhbGUgPSAnZW4tVVMnO1xuXG4gICNsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjdmFsdWU6IGFueTtcblxuICAjZm9ybWF0dGVkVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IobG9jYWxlUHJvdmlkZXI6IFNreUFwcExvY2FsZVByb3ZpZGVyKSB7XG4gICAgbG9jYWxlUHJvdmlkZXJcbiAgICAgIC5nZXRMb2NhbGVJbmZvKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8pID0+IHtcbiAgICAgICAgdGhpcy4jZGVmYXVsdExvY2FsZSA9IGxvY2FsZUluZm8ubG9jYWxlO1xuICAgICAgICB0aGlzLiN1cGRhdGVGb3JtYXR0ZWRWYWx1ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgYSBkYXRlIHZhbHVlIHVzaW5nIGxvY2FsZSBhbmQgZm9ybWF0IHJ1bGVzLlxuICAgKiBAcGFyYW0gdmFsdWUgU3BlY2lmaWVzIHRoZSBkYXRlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHBhcmFtIGZvcm1hdCBTcGVjaWZpZXMgdGhlIGZvcm1hdCB0byBhcHBseSB0byB0aGUgdHJhbnNmb3JtLiBUaGUgZm9ybWF0IHN0cmluZyBpc1xuICAgKiBjb25zdHJ1Y3RlZCBieSBhIHNlcmllcyBvZiBzeW1ib2xzIHRoYXQgcmVwcmVzZW50IGRhdGUtdGltZSB2YWx1ZXMuIFRoZSBzeW1ib2xzIGFyZVxuICAgKiBpZGVudGljYWwgdG8gW0FuZ3VsYXIncyBgRGF0ZVBpcGVgXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9EYXRlUGlwZSNwcmUtZGVmaW5lZC1mb3JtYXQtb3B0aW9ucykgZm9ybWF0IG9wdGlvbnMuXG4gICAqIEBwYXJhbSBsb2NhbGUgU3BlY2lmaWVzIHRoZSBsb2NhbGUgY29kZSB0byB1c2UgaW4gdGhlIHRyYW5zZm9ybS5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZm9ybWF0Pzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuI3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy4jZm9ybWF0ID0gZm9ybWF0O1xuICAgIHRoaXMuI2xvY2FsZSA9IGxvY2FsZTtcblxuICAgIHRoaXMuI3VwZGF0ZUZvcm1hdHRlZFZhbHVlKCk7XG5cbiAgICByZXR1cm4gdGhpcy4jZm9ybWF0dGVkVmFsdWUgPz8gJyc7XG4gIH1cblxuICAjdXBkYXRlRm9ybWF0dGVkVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy4jbG9jYWxlIHx8IHRoaXMuI2RlZmF1bHRMb2NhbGU7XG4gICAgY29uc3QgZm9ybWF0ID0gdGhpcy4jZm9ybWF0IHx8IHRoaXMuI2RlZmF1bHRGb3JtYXQ7XG5cbiAgICB0aGlzLiNmb3JtYXR0ZWRWYWx1ZSA9IFNreURhdGVGb3JtYXRVdGlsaXR5LmZvcm1hdChcbiAgICAgIGxvY2FsZSxcbiAgICAgIHRoaXMuI3ZhbHVlLFxuICAgICAgZm9ybWF0XG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../datepicker/fuzzy-date.service";
|
4
|
+
/**
|
5
|
+
* Formats date values using two or more date tokens that represent the day, month,
|
6
|
+
* and year. The tokens are described in the [moment.js values](https://momentjs.com/docs/#/displaying/).
|
7
|
+
* @example
|
8
|
+
* ```markup
|
9
|
+
* {{ myFuzzyDate | skyFuzzyDate:'MMM Y' }}
|
10
|
+
* {{ myFuzzyDate | skyFuzzyDate:'MMM Y':'en-CA' }}
|
11
|
+
* ```
|
12
|
+
*/
|
13
|
+
export class SkyFuzzyDatePipe {
|
14
|
+
#fuzzyDateService;
|
15
|
+
constructor(fuzzyDateService) {
|
16
|
+
this.#fuzzyDateService = fuzzyDateService;
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Transforms fuzzy date values using two or more date tokens that represent the day, month,
|
20
|
+
* and year.
|
21
|
+
* @param value Specifies the date value to transform.
|
22
|
+
* @param format Specifies the format to apply to the transform. You construct the format
|
23
|
+
* string with a two or more tokens that specify the components of date-time value. The
|
24
|
+
* tokens are described in the [moment.js values](https://momentjs.com/docs/#/displaying/).
|
25
|
+
* If you don't provide a format, `SkyFuzzyDatePipe` attempts to format fuzzy dates based
|
26
|
+
* on the browser's default locale.
|
27
|
+
* @param locale Specifies the locale code to use in the transform.
|
28
|
+
*/
|
29
|
+
transform(value, format, locale) {
|
30
|
+
if (!value) {
|
31
|
+
return '';
|
32
|
+
}
|
33
|
+
const fuzzyDateFormat = format || this.#fuzzyDateService.getLocaleShortFormat(locale);
|
34
|
+
const fuzzyDateLocale = locale || this.#fuzzyDateService.getCurrentLocale();
|
35
|
+
return this.#fuzzyDateService.format(value, fuzzyDateFormat, fuzzyDateLocale);
|
36
|
+
}
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFuzzyDatePipe, deps: [{ token: i1.SkyFuzzyDateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
38
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyFuzzyDatePipe, name: "skyFuzzyDate", pure: false }); }
|
39
|
+
}
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFuzzyDatePipe, decorators: [{
|
41
|
+
type: Pipe,
|
42
|
+
args: [{
|
43
|
+
name: 'skyFuzzyDate',
|
44
|
+
pure: false,
|
45
|
+
}]
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.SkyFuzzyDateService }]; } });
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnV6enktZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXBpcGUvZnV6enktZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFLcEQ7Ozs7Ozs7O0dBUUc7QUFLSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGlCQUFpQixDQUFzQjtJQUV2QyxZQUFZLGdCQUFxQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxTQUFTLENBQ2QsS0FBbUIsRUFDbkIsTUFBZSxFQUNmLE1BQWU7UUFFZixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sZUFBZSxHQUNuQixNQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQ2xDLEtBQUssRUFDTCxlQUFlLEVBQ2YsZUFBZSxDQUNoQixDQUFDO0lBQ0osQ0FBQzs4R0FsQ1UsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lGdXp6eURhdGUgfSBmcm9tICcuLi9kYXRlcGlja2VyL2Z1enp5LWRhdGUnO1xuaW1wb3J0IHsgU2t5RnV6enlEYXRlU2VydmljZSB9IGZyb20gJy4uL2RhdGVwaWNrZXIvZnV6enktZGF0ZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBGb3JtYXRzIGRhdGUgdmFsdWVzIHVzaW5nIHR3byBvciBtb3JlIGRhdGUgdG9rZW5zIHRoYXQgcmVwcmVzZW50IHRoZSBkYXksIG1vbnRoLFxuICogYW5kIHllYXIuIFRoZSB0b2tlbnMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgW21vbWVudC5qcyB2YWx1ZXNdKGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9kaXNwbGF5aW5nLykuXG4gKiBAZXhhbXBsZVxuICogYGBgbWFya3VwXG4gKiB7eyBteUZ1enp5RGF0ZSB8IHNreUZ1enp5RGF0ZTonTU1NIFknIH19XG4gKiB7eyBteUZ1enp5RGF0ZSB8IHNreUZ1enp5RGF0ZTonTU1NIFknOidlbi1DQScgfX1cbiAqIGBgYFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lGdXp6eURhdGUnLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RnV6enlEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAjZnV6enlEYXRlU2VydmljZTogU2t5RnV6enlEYXRlU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihmdXp6eURhdGVTZXJ2aWNlOiBTa3lGdXp6eURhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy4jZnV6enlEYXRlU2VydmljZSA9IGZ1enp5RGF0ZVNlcnZpY2U7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyBmdXp6eSBkYXRlIHZhbHVlcyB1c2luZyB0d28gb3IgbW9yZSBkYXRlIHRva2VucyB0aGF0IHJlcHJlc2VudCB0aGUgZGF5LCBtb250aCxcbiAgICogYW5kIHllYXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBTcGVjaWZpZXMgdGhlIGRhdGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcGFyYW0gZm9ybWF0IFNwZWNpZmllcyB0aGUgZm9ybWF0IHRvIGFwcGx5IHRvIHRoZSB0cmFuc2Zvcm0uIFlvdSBjb25zdHJ1Y3QgdGhlIGZvcm1hdFxuICAgKiBzdHJpbmcgd2l0aCBhIHR3byBvciBtb3JlIHRva2VucyB0aGF0IHNwZWNpZnkgdGhlIGNvbXBvbmVudHMgb2YgZGF0ZS10aW1lIHZhbHVlLiBUaGVcbiAgICogdG9rZW5zIGFyZSBkZXNjcmliZWQgaW4gdGhlIFttb21lbnQuanMgdmFsdWVzXShodHRwczovL21vbWVudGpzLmNvbS9kb2NzLyMvZGlzcGxheWluZy8pLlxuICAgKiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIGZvcm1hdCwgYFNreUZ1enp5RGF0ZVBpcGVgIGF0dGVtcHRzIHRvIGZvcm1hdCBmdXp6eSBkYXRlcyBiYXNlZFxuICAgKiBvbiB0aGUgYnJvd3NlcidzIGRlZmF1bHQgbG9jYWxlLlxuICAgKiBAcGFyYW0gbG9jYWxlIFNwZWNpZmllcyB0aGUgbG9jYWxlIGNvZGUgdG8gdXNlIGluIHRoZSB0cmFuc2Zvcm0uXG4gICAqL1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBTa3lGdXp6eURhdGUsXG4gICAgZm9ybWF0Pzogc3RyaW5nLFxuICAgIGxvY2FsZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgZnV6enlEYXRlRm9ybWF0ID1cbiAgICAgIGZvcm1hdCB8fCB0aGlzLiNmdXp6eURhdGVTZXJ2aWNlLmdldExvY2FsZVNob3J0Rm9ybWF0KGxvY2FsZSk7XG4gICAgY29uc3QgZnV6enlEYXRlTG9jYWxlID0gbG9jYWxlIHx8IHRoaXMuI2Z1enp5RGF0ZVNlcnZpY2UuZ2V0Q3VycmVudExvY2FsZSgpO1xuICAgIHJldHVybiB0aGlzLiNmdXp6eURhdGVTZXJ2aWNlLmZvcm1hdChcbiAgICAgIHZhbHVlLFxuICAgICAgZnV6enlEYXRlRm9ybWF0LFxuICAgICAgZnV6enlEYXRlTG9jYWxlXG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -8,13 +8,13 @@ export class SkyDateRangePickerEndDateResourceKeyPipe {
|
|
8
8
|
}
|
9
9
|
return 'skyux_date_range_picker_before_date_label';
|
10
10
|
}
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, name: "skyDateRangePickerEndDateResourceKey" }); }
|
11
13
|
}
|
12
|
-
|
13
|
-
SkyDateRangePickerEndDateResourceKeyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, name: "skyDateRangePickerEndDateResourceKey" });
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, decorators: [{
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, decorators: [{
|
15
15
|
type: Pipe,
|
16
16
|
args: [{
|
17
17
|
name: 'skyDateRangePickerEndDateResourceKey',
|
18
18
|
}]
|
19
19
|
}] });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItZW5kLWRhdGUtcmVzb3VyY2Uta2V5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWVuZC1kYXRlLXJlc291cmNlLWtleS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtoRixNQUFNLE9BQU8sd0NBQXdDO0lBQzVDLFNBQVMsQ0FDZCxjQUFzRDtRQUV0RCxJQUFJLGNBQWMsS0FBSywwQkFBMEIsQ0FBQyxLQUFLLEVBQUU7WUFDdkQsT0FBTyx3Q0FBd0MsQ0FBQztTQUNqRDtRQUVELE9BQU8sMkNBQTJDLENBQUM7SUFDckQsQ0FBQzs4R0FUVSx3Q0FBd0M7NEdBQXhDLHdDQUF3Qzs7MkZBQXhDLHdDQUF3QztrQkFIcEQsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsc0NBQXNDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci10eXBlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnc2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNhbGN1bGF0b3JUeXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcge1xuICAgIGlmIChjYWxjdWxhdG9yVHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfbGFiZWwnO1xuICAgIH1cblxuICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYmVmb3JlX2RhdGVfbGFiZWwnO1xuICB9XG59XG4iXX0=
|
@@ -8,13 +8,13 @@ export class SkyDateRangePickerStartDateResourceKeyPipe {
|
|
8
8
|
}
|
9
9
|
return 'skyux_date_range_picker_after_date_label';
|
10
10
|
}
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, name: "skyDateRangePickerStartDateResourceKey" }); }
|
11
13
|
}
|
12
|
-
|
13
|
-
SkyDateRangePickerStartDateResourceKeyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, name: "skyDateRangePickerStartDateResourceKey" });
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, decorators: [{
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, decorators: [{
|
15
15
|
type: Pipe,
|
16
16
|
args: [{
|
17
17
|
name: 'skyDateRangePickerStartDateResourceKey',
|
18
18
|
}]
|
19
19
|
}] });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLDBDQUEwQztJQUc5QyxTQUFTLENBQ2QsY0FBc0Q7UUFFdEQsSUFBSSxjQUFjLEtBQUssMEJBQTBCLENBQUMsS0FBSyxFQUFFO1lBQ3ZELE9BQU8sMENBQTBDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLDBDQUEwQyxDQUFDO0lBQ3BELENBQUM7OEdBWFUsMENBQTBDOzRHQUExQywwQ0FBMEM7OzJGQUExQywwQ0FBMEM7a0JBSHRELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHdDQUF3QztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3ItdHlwZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyU3RhcnREYXRlUmVzb3VyY2VLZXlQaXBlXG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybVxue1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNhbGN1bGF0b3JUeXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcge1xuICAgIGlmIChjYWxjdWxhdG9yVHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfc3RhcnRfZGF0ZV9sYWJlbCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9hZnRlcl9kYXRlX2xhYmVsJztcbiAgfVxufVxuIl19
|