@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.
Files changed (96) hide show
  1. package/documentation.json +51 -51
  2. package/esm2022/lib/modules/date-pipe/date-format-utility.mjs +45 -0
  3. package/{esm2020 → esm2022}/lib/modules/date-pipe/date-pipe.module.mjs +5 -5
  4. package/esm2022/lib/modules/date-pipe/date.pipe.mjs +67 -0
  5. package/esm2022/lib/modules/date-pipe/fuzzy-date.pipe.mjs +47 -0
  6. package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +4 -4
  8. package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +518 -0
  9. package/{esm2020 → esm2022}/lib/modules/date-range-picker/date-range-picker.module.mjs +19 -19
  10. package/esm2022/lib/modules/date-range-picker/date-range.service.mjs +97 -0
  11. package/esm2022/lib/modules/date-range-picker/types/date-range-calculator.mjs +54 -0
  12. package/esm2022/lib/modules/datepicker/date-formatter.mjs +38 -0
  13. package/esm2022/lib/modules/datepicker/datepicker-adapter.service.mjs +23 -0
  14. package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +332 -0
  15. package/esm2022/lib/modules/datepicker/datepicker-calendar.component.mjs +95 -0
  16. package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-config.service.mjs +4 -4
  17. package/esm2022/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +487 -0
  18. package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +534 -0
  19. package/esm2022/lib/modules/datepicker/datepicker.component.mjs +327 -0
  20. package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.module.mjs +35 -35
  21. package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker.service.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/modules/datepicker/daypicker-button.component.mjs +4 -4
  23. package/esm2022/lib/modules/datepicker/daypicker-cell.component.mjs +128 -0
  24. package/esm2022/lib/modules/datepicker/daypicker.component.mjs +224 -0
  25. package/esm2022/lib/modules/datepicker/fuzzy-date.service.mjs +412 -0
  26. package/esm2022/lib/modules/datepicker/monthpicker.component.mjs +80 -0
  27. package/{esm2020 → esm2022}/lib/modules/datepicker/yearpicker.component.mjs +53 -54
  28. package/{esm2020 → esm2022}/lib/modules/shared/sky-datetime-resources.module.mjs +11 -11
  29. package/esm2022/lib/modules/timepicker/timepicker.component.mjs +396 -0
  30. package/esm2022/lib/modules/timepicker/timepicker.directive.mjs +237 -0
  31. package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker.module.mjs +17 -17
  32. package/esm2022/testing/datepicker-fixture.mjs +55 -0
  33. package/esm2022/testing/timepicker-fixture.mjs +52 -0
  34. package/fesm2022/skyux-datetime-testing.mjs +112 -0
  35. package/{fesm2020 → fesm2022}/skyux-datetime-testing.mjs.map +1 -1
  36. package/fesm2022/skyux-datetime.mjs +5030 -0
  37. package/fesm2022/skyux-datetime.mjs.map +1 -0
  38. package/lib/modules/date-range-picker/date-range-picker.component.d.ts +1 -1
  39. package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +1 -1
  40. package/lib/modules/datepicker/datepicker-calendar.component.d.ts +1 -1
  41. package/lib/modules/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -1
  42. package/lib/modules/datepicker/datepicker-input.directive.d.ts +1 -1
  43. package/lib/modules/datepicker/datepicker.component.d.ts +1 -1
  44. package/lib/modules/datepicker/daypicker-button.component.d.ts +1 -1
  45. package/lib/modules/datepicker/daypicker-cell.component.d.ts +1 -1
  46. package/lib/modules/datepicker/daypicker.component.d.ts +1 -1
  47. package/lib/modules/timepicker/timepicker.directive.d.ts +1 -1
  48. package/package.json +19 -27
  49. package/esm2020/lib/modules/date-pipe/date-format-utility.mjs +0 -45
  50. package/esm2020/lib/modules/date-pipe/date.pipe.mjs +0 -70
  51. package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +0 -50
  52. package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +0 -494
  53. package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +0 -100
  54. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator.mjs +0 -53
  55. package/esm2020/lib/modules/datepicker/date-formatter.mjs +0 -38
  56. package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +0 -26
  57. package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +0 -333
  58. package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +0 -96
  59. package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +0 -462
  60. package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +0 -496
  61. package/esm2020/lib/modules/datepicker/datepicker.component.mjs +0 -319
  62. package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +0 -126
  63. package/esm2020/lib/modules/datepicker/daypicker.component.mjs +0 -216
  64. package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +0 -392
  65. package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +0 -81
  66. package/esm2020/lib/modules/timepicker/timepicker.component.mjs +0 -389
  67. package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +0 -236
  68. package/esm2020/testing/datepicker-fixture.mjs +0 -58
  69. package/esm2020/testing/timepicker-fixture.mjs +0 -55
  70. package/fesm2015/skyux-datetime-testing.mjs +0 -117
  71. package/fesm2015/skyux-datetime-testing.mjs.map +0 -1
  72. package/fesm2015/skyux-datetime.mjs +0 -4925
  73. package/fesm2015/skyux-datetime.mjs.map +0 -1
  74. package/fesm2020/skyux-datetime-testing.mjs +0 -117
  75. package/fesm2020/skyux-datetime.mjs +0 -4895
  76. package/fesm2020/skyux-datetime.mjs.map +0 -1
  77. /package/{esm2020 → esm2022}/index.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculation.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +0 -0
  81. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +0 -0
  82. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +0 -0
  83. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +0 -0
  84. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +0 -0
  85. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +0 -0
  86. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range-relative-value.mjs +0 -0
  87. /package/{esm2020 → esm2022}/lib/modules/date-range-picker/types/date-range.mjs +0 -0
  88. /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-calendar-change.mjs +0 -0
  89. /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-custom-date.mjs +0 -0
  90. /package/{esm2020 → esm2022}/lib/modules/datepicker/datepicker-date.mjs +0 -0
  91. /package/{esm2020 → esm2022}/lib/modules/datepicker/fuzzy-date.mjs +0 -0
  92. /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-format-type.mjs +0 -0
  93. /package/{esm2020 → esm2022}/lib/modules/timepicker/timepicker-time-output.mjs +0 -0
  94. /package/{esm2020 → esm2022}/skyux-datetime.mjs +0 -0
  95. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  96. /package/{esm2020 → esm2022}/testing/skyux-datetime-testing.mjs +0 -0
@@ -10989,94 +10989,94 @@
10989
10989
  },
10990
10990
  "codeExamples": [
10991
10991
  {
10992
- "fileName": "date-pipe-demo.component.html",
10993
- "filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.component.html",
10994
- "rawContents": "<div>{{ myDate | skyDate }}</div>\n<div>{{ myDate | skyDate : 'medium' }}</div>\n<div>{{ myDate | skyDate : 'medium' : 'es-MX' }}</div>\n"
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": "date-pipe-demo.module.ts",
11003
- "filePath": "/projects/datetime/documentation/code-examples/date-pipe/basic/date-pipe-demo.module.ts",
11004
- "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"
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": "date-range-picker-demo.component.html",
11008
- "filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.component.html",
11009
- "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"
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": "date-range-picker-demo.component.ts",
11013
- "filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.component.ts",
11014
- "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"
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": "date-range-picker-demo.module.ts",
11018
- "filePath": "/projects/datetime/documentation/code-examples/date-range-picker/basic/date-range-picker-demo.module.ts",
11019
- "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"
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/basic/datepicker-demo.component.html",
11024
- "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"
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/basic/datepicker-demo.module.ts",
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/custom-dates/datepicker-demo.module.ts",
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/fuzzy/datepicker-demo.component.html",
11054
- "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"
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": "datepicker-demo.component.ts",
11058
- "filePath": "/projects/datetime/documentation/code-examples/datepicker/fuzzy/datepicker-demo.component.ts",
11059
- "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"
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": "datepicker-demo.module.ts",
11063
- "filePath": "/projects/datetime/documentation/code-examples/datepicker/fuzzy/datepicker-demo.module.ts",
11064
- "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"
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": "timepicker-demo.component.html",
11068
- "filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.component.html",
11069
- "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"
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": "timepicker-demo.component.ts",
11073
- "filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.component.ts",
11074
- "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"
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": "timepicker-demo.module.ts",
11078
- "filePath": "/projects/datetime/documentation/code-examples/timepicker/basic/timepicker-demo.module.ts",
11079
- "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"
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
- SkyDatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1waXBlL2RhdGUtcGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUxiLFdBQVcsRUFBRSxnQkFBZ0IsYUFFbEMsWUFBWSxFQUFFLDBCQUEwQixhQUN4QyxXQUFXLEVBQUUsZ0JBQWdCOytHQUU1QixpQkFBaUIsYUFKakIsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsWUFDaEMsWUFBWSxFQUFFLDBCQUEwQjsyRkFHdkMsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO29CQUMxQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUM7b0JBQ25ELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lEYXRlUGlwZSB9IGZyb20gJy4vZGF0ZS5waXBlJztcbmltcG9ydCB7IFNreUZ1enp5RGF0ZVBpcGUgfSBmcm9tICcuL2Z1enp5LWRhdGUucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreURhdGVQaXBlLCBTa3lGdXp6eURhdGVQaXBlXSxcbiAgcHJvdmlkZXJzOiBbU2t5RGF0ZVBpcGUsIFNreUZ1enp5RGF0ZVBpcGVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lEYXRlUGlwZSwgU2t5RnV6enlEYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGVQaXBlTW9kdWxlIHt9XG4iXX0=
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
- SkyDateRangePickerEndDateResourceKeyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerEndDateResourceKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItZW5kLWRhdGUtcmVzb3VyY2Uta2V5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWVuZC1kYXRlLXJlc291cmNlLWtleS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtoRixNQUFNLE9BQU8sd0NBQXdDO0lBQzVDLFNBQVMsQ0FDZCxjQUFzRDtRQUV0RCxJQUFJLGNBQWMsS0FBSywwQkFBMEIsQ0FBQyxLQUFLLEVBQUU7WUFDdkQsT0FBTyx3Q0FBd0MsQ0FBQztTQUNqRDtRQUVELE9BQU8sMkNBQTJDLENBQUM7SUFDckQsQ0FBQzs7cUlBVFUsd0NBQXdDO21JQUF4Qyx3Q0FBd0M7MkZBQXhDLHdDQUF3QztrQkFIcEQsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsc0NBQXNDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci10eXBlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnc2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNhbGN1bGF0b3JUeXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcge1xuICAgIGlmIChjYWxjdWxhdG9yVHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfbGFiZWwnO1xuICAgIH1cblxuICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYmVmb3JlX2RhdGVfbGFiZWwnO1xuICB9XG59XG4iXX0=
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
- SkyDateRangePickerStartDateResourceKeyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDateRangePickerStartDateResourceKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLDBDQUEwQztJQUc5QyxTQUFTLENBQ2QsY0FBc0Q7UUFFdEQsSUFBSSxjQUFjLEtBQUssMEJBQTBCLENBQUMsS0FBSyxFQUFFO1lBQ3ZELE9BQU8sMENBQTBDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLDBDQUEwQyxDQUFDO0lBQ3BELENBQUM7O3VJQVhVLDBDQUEwQztxSUFBMUMsMENBQTBDOzJGQUExQywwQ0FBMEM7a0JBSHRELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHdDQUF3QztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3ItdHlwZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyU3RhcnREYXRlUmVzb3VyY2VLZXlQaXBlXG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybVxue1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNhbGN1bGF0b3JUeXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcge1xuICAgIGlmIChjYWxjdWxhdG9yVHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfc3RhcnRfZGF0ZV9sYWJlbCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9hZnRlcl9kYXRlX2xhYmVsJztcbiAgfVxufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZS1yZXNvdXJjZS1rZXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLDBDQUEwQztJQUc5QyxTQUFTLENBQ2QsY0FBc0Q7UUFFdEQsSUFBSSxjQUFjLEtBQUssMEJBQTBCLENBQUMsS0FBSyxFQUFFO1lBQ3ZELE9BQU8sMENBQTBDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLDBDQUEwQyxDQUFDO0lBQ3BELENBQUM7OEdBWFUsMENBQTBDOzRHQUExQywwQ0FBMEM7OzJGQUExQywwQ0FBMEM7a0JBSHRELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHdDQUF3QztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3ItdHlwZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZVJhbmdlUGlja2VyU3RhcnREYXRlUmVzb3VyY2VLZXlQaXBlXG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybVxue1xuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGNhbGN1bGF0b3JUeXBlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZSB8IHVuZGVmaW5lZFxuICApOiBzdHJpbmcge1xuICAgIGlmIChjYWxjdWxhdG9yVHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfc3RhcnRfZGF0ZV9sYWJlbCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9hZnRlcl9kYXRlX2xhYmVsJztcbiAgfVxufVxuIl19