@dhutaryan/ngx-mat-timepicker 18.0.4 → 19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +3 -0
  2. package/_timepicker-theme.scss +0 -6
  3. package/fesm2022/dhutaryan-ngx-mat-timepicker.mjs +119 -123
  4. package/fesm2022/dhutaryan-ngx-mat-timepicker.mjs.map +1 -1
  5. package/lib/hours-clock-dial.d.ts +1 -1
  6. package/lib/time-face-base.d.ts +1 -1
  7. package/lib/time-input-base.d.ts +1 -1
  8. package/lib/timepicker-actions.d.ts +5 -9
  9. package/lib/timepicker-base.d.ts +1 -1
  10. package/lib/timepicker-content.d.ts +9 -9
  11. package/lib/timepicker-input-base.d.ts +1 -1
  12. package/package.json +5 -6
  13. package/themes/_utils.scss +39 -0
  14. package/themes/m2/_tokens.scss +2 -0
  15. package/themes/m3/_base.scss +0 -8
  16. package/themes/m3/_color.scss +0 -11
  17. package/themes/m3/_tokens.scss +1 -1
  18. package/esm2022/dhutaryan-ngx-mat-timepicker.mjs +0 -5
  19. package/esm2022/lib/adapter/index.mjs +0 -34
  20. package/esm2022/lib/adapter/native-date-time-adapter.mjs +0 -137
  21. package/esm2022/lib/adapter/time-adapter.mjs +0 -90
  22. package/esm2022/lib/clock-dial-adnimation.mjs +0 -11
  23. package/esm2022/lib/clock-dials.mjs +0 -95
  24. package/esm2022/lib/clock-size.mjs +0 -25
  25. package/esm2022/lib/hours-clock-dial.mjs +0 -192
  26. package/esm2022/lib/minutes-clock-dial.mjs +0 -165
  27. package/esm2022/lib/orientation.mjs +0 -2
  28. package/esm2022/lib/time-face-base.mjs +0 -318
  29. package/esm2022/lib/time-input-base.mjs +0 -85
  30. package/esm2022/lib/time-inputs.mjs +0 -179
  31. package/esm2022/lib/time-period.mjs +0 -67
  32. package/esm2022/lib/time-selection-model.mjs +0 -76
  33. package/esm2022/lib/timepicker-actions-default.mjs +0 -3
  34. package/esm2022/lib/timepicker-actions.mjs +0 -135
  35. package/esm2022/lib/timepicker-animations.mjs +0 -22
  36. package/esm2022/lib/timepicker-base.mjs +0 -458
  37. package/esm2022/lib/timepicker-content-layout.mjs +0 -23
  38. package/esm2022/lib/timepicker-content.mjs +0 -127
  39. package/esm2022/lib/timepicker-input-base.mjs +0 -254
  40. package/esm2022/lib/timepicker-input.mjs +0 -136
  41. package/esm2022/lib/timepicker-intl.mjs +0 -39
  42. package/esm2022/lib/timepicker-scroll-strategy.mjs +0 -15
  43. package/esm2022/lib/timepicker-toggle.mjs +0 -96
  44. package/esm2022/lib/timepicker.mjs +0 -33
  45. package/esm2022/lib/timepicker.module.mjs +0 -138
  46. package/esm2022/public-api.mjs +0 -23
  47. package/themes/_base.scss +0 -119
@@ -33,7 +33,7 @@ export declare class MatHoursClockDial implements OnInit {
33
33
  /** Emits selected hour. */
34
34
  selectedChange: EventEmitter<{
35
35
  hour: number;
36
- changeView?: boolean | undefined;
36
+ changeView?: boolean;
37
37
  }>;
38
38
  hours: ClockDialViewCell[];
39
39
  get disabledHand(): boolean;
@@ -89,5 +89,5 @@ export declare abstract class MatTimeFaceBase<T> implements AfterContentInit, Af
89
89
  /** Sets disabled period. */
90
90
  private _setDisabledPeriod;
91
91
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimeFaceBase<any>, [{ optional: true; }]>;
92
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimeFaceBase<any>, never, never, { "selected": { "alias": "selected"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "isMeridiem": { "alias": "isMeridiem"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, { "_userSelection": "_userSelection"; "selectedChange": "selectedChange"; }, never, never, false, never>;
92
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimeFaceBase<any>, never, never, { "selected": { "alias": "selected"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "isMeridiem": { "alias": "isMeridiem"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, { "_userSelection": "_userSelection"; "selectedChange": "selectedChange"; }, never, never, true, never>;
93
93
  }
@@ -21,5 +21,5 @@ export declare abstract class MatTimeInputBase {
21
21
  abstract _withZeroPrefix(value: number): string;
22
22
  abstract _formatValue(value: number): number;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimeInputBase, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimeInputBase, never, never, { "value": { "alias": "value"; "required": false; }; }, { "timeChanged": "timeChanged"; }, never, never, false, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimeInputBase, never, never, { "value": { "alias": "value"; "required": false; }; }, { "timeChanged": "timeChanged"; }, never, never, true, never>;
25
25
  }
@@ -1,4 +1,5 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
1
+ import { AfterViewInit, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { ThemePalette } from '@angular/material/core';
2
3
  import { MatTimepickerBase, MatTimepickerControl } from './timepicker-base';
3
4
  import { MatTimepickerIntl } from './timepicker-intl';
4
5
  import * as i0 from "@angular/core";
@@ -33,20 +34,15 @@ export declare class MatTimepickerActions implements AfterViewInit, OnDestroy {
33
34
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerActions, never>;
34
35
  static ɵcmp: i0.ɵɵComponentDeclaration<MatTimepickerActions, "mat-timepicker-actions", never, {}, {}, never, ["*"], true, never>;
35
36
  }
36
- declare const _MatTimepickerDefaultActions: import("@angular/material/core")._Constructor<import("@angular/material/core").CanColor> & import("@angular/material/core")._AbstractConstructor<import("@angular/material/core").CanColor> & {
37
- new (_elementRef: ElementRef): {
38
- _elementRef: ElementRef;
39
- };
40
- };
41
37
  /**
42
38
  * Default action buttons to the bottom of a timepicker.
43
39
  */
44
- export declare class MatTimepickerDefaultActions extends _MatTimepickerDefaultActions implements OnInit {
40
+ export declare class MatTimepickerDefaultActions implements OnInit {
45
41
  private _timepicker;
46
42
  _intl: MatTimepickerIntl;
47
- constructor(elementRef: ElementRef, _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>, _intl: MatTimepickerIntl);
43
+ color: import("@angular/core").WritableSignal<ThemePalette>;
44
+ constructor(_timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>, _intl: MatTimepickerIntl);
48
45
  ngOnInit(): void;
49
46
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerDefaultActions, never>;
50
47
  static ɵcmp: i0.ɵɵComponentDeclaration<MatTimepickerDefaultActions, "mat-timepicker-default-actions", never, {}, {}, never, ["*"], true, never>;
51
48
  }
52
- export {};
@@ -190,7 +190,7 @@ export declare abstract class MatTimepickerBase<C extends MatTimepickerControl<T
190
190
  /** Gets an observable that will emit when the overlay is supposed to be closed. */
191
191
  private _getCloseStream;
192
192
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerBase<any, any, any>, [null, null, null, null, null, null, { optional: true; }]>;
193
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimepickerBase<any, any, any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "opened": { "alias": "opened"; "required": false; }; "openAs": { "alias": "openAs"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "format": { "alias": "format"; "required": false; }; "showToggleModeButton": { "alias": "showToggleModeButton"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "touchUi": { "alias": "touchUi"; "required": false; }; "xPosition": { "alias": "xPosition"; "required": false; }; "yPosition": { "alias": "yPosition"; "required": false; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; }; }, { "openedStream": "opened"; "closedStream": "closed"; }, never, never, false, never>;
193
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimepickerBase<any, any, any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "opened": { "alias": "opened"; "required": false; }; "openAs": { "alias": "openAs"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "format": { "alias": "format"; "required": false; }; "showToggleModeButton": { "alias": "showToggleModeButton"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "touchUi": { "alias": "touchUi"; "required": false; }; "xPosition": { "alias": "xPosition"; "required": false; }; "yPosition": { "alias": "yPosition"; "required": false; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; }; }, { "openedStream": "opened"; "closedStream": "closed"; }, never, never, true, never>;
194
194
  static ngAcceptInputType_touchUi: unknown;
195
195
  static ngAcceptInputType_restoreFocus: unknown;
196
196
  }
@@ -1,6 +1,7 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
2
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
3
- import { ChangeDetectorRef, ElementRef, OnInit, AfterViewInit } from '@angular/core';
3
+ import { ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core';
4
+ import { ThemePalette } from '@angular/material/core';
4
5
  import { Subject } from 'rxjs';
5
6
  import { ExtractTimeTypeFromSelection, MatTimeSelectionModel } from './time-selection-model';
6
7
  import { MatTimepickerBase, TimepickerMode } from './timepicker-base';
@@ -9,12 +10,7 @@ import { MatClockDials } from './clock-dials';
9
10
  import { MatTimeInputs } from './time-inputs';
10
11
  import { TimepickerOrientation } from './orientation';
11
12
  import * as i0 from "@angular/core";
12
- declare const _MatTimepickerContentBase: import("@angular/material/core")._Constructor<import("@angular/material/core").CanColor> & import("@angular/material/core")._AbstractConstructor<import("@angular/material/core").CanColor> & {
13
- new (_elementRef: ElementRef): {
14
- _elementRef: ElementRef;
15
- };
16
- };
17
- export declare class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>> extends _MatTimepickerContentBase implements OnInit, AfterViewInit {
13
+ export declare class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>> implements OnInit, AfterViewInit {
18
14
  private _globalModel;
19
15
  private _changeDetectorRef;
20
16
  /** Reference to the internal clock dials component. */
@@ -45,11 +41,16 @@ export declare class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>
45
41
  _closeButtonFocused: boolean;
46
42
  /** Whether there is an in-progress animation. */
47
43
  _isAnimating: boolean;
44
+ /**
45
+ * Theme color of the internal timepicker. This API is supported in M2 themes
46
+ * only, it has no effect in M3 themes.
47
+ */
48
+ color: ThemePalette;
48
49
  /** Emits when an animation has finished. */
49
50
  readonly _animationDone: Subject<void>;
50
51
  private _model;
51
52
  private _subscriptions;
52
- constructor(elementRef: ElementRef, intl: MatTimepickerIntl, _globalModel: MatTimeSelectionModel<S, T>, _changeDetectorRef: ChangeDetectorRef);
53
+ constructor(intl: MatTimepickerIntl, _globalModel: MatTimeSelectionModel<S, T>, _changeDetectorRef: ChangeDetectorRef);
53
54
  ngOnInit(): void;
54
55
  ngAfterViewInit(): void;
55
56
  ngOnDestroy(): void;
@@ -72,4 +73,3 @@ export declare class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>
72
73
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerContent<any, any>, never>;
73
74
  static ɵcmp: i0.ɵɵComponentDeclaration<MatTimepickerContent<any, any>, "mat-timepicker-content", ["matTimepickerContent"], {}, {}, never, never, true, never>;
74
75
  }
75
- export {};
@@ -103,7 +103,7 @@ export declare abstract class MatTimepickerInputBase<S, T = ExtractTimeTypeFromS
103
103
  /** The form control validator for the max time. */
104
104
  private _maxValidator;
105
105
  static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerInputBase<any, any>, [null, { optional: true; }]>;
106
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimepickerInputBase<any, any>, never, never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "timeChange": "timeChange"; "timeInput": "timeInput"; }, never, never, false, never>;
106
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatTimepickerInputBase<any, any>, never, never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "timeChange": "timeChange"; "timeInput": "timeInput"; }, never, never, true, never>;
107
107
  }
108
108
  /**
109
109
  * Checks whether the `SimpleChanges` object from an `ngOnChanges`
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@dhutaryan/ngx-mat-timepicker",
3
3
  "description": "Angular timepicker to add time which is based on material design and Angular material.",
4
- "version": "18.0.4",
4
+ "homepage": "https://dhutaryan.github.io/ngx-mat-timepicker/",
5
+ "version": "19.1.0",
5
6
  "license": "MIT",
6
7
  "author": {
7
8
  "name": "Dzmitry Hutaryan"
@@ -26,9 +27,9 @@
26
27
  "timepicker input"
27
28
  ],
28
29
  "peerDependencies": {
29
- "@angular/common": ">=18.0.0",
30
- "@angular/core": ">=18.0.0",
31
- "@angular/material": ">=18.0.0"
30
+ "@angular/common": ">=19.0.0",
31
+ "@angular/core": ">=19.0.0",
32
+ "@angular/material": ">=19.0.0"
32
33
  },
33
34
  "dependencies": {
34
35
  "tslib": ">=2.0.0"
@@ -37,8 +38,6 @@
37
38
  ".": {
38
39
  "sass": "./_index.scss",
39
40
  "types": "./index.d.ts",
40
- "esm2022": "./esm2022/dhutaryan-ngx-mat-timepicker.mjs",
41
- "esm": "./esm2022/dhutaryan-ngx-mat-timepicker.mjs",
42
41
  "default": "./fesm2022/dhutaryan-ngx-mat-timepicker.mjs"
43
42
  },
44
43
  "./package.json": {
@@ -1,4 +1,7 @@
1
1
  @use 'sass:map';
2
+ @use 'sass:string';
3
+
4
+ $prefix: (mat, timepicker);
2
5
 
3
6
  @mixin declaration($property, $value) {
4
7
  --mat-timepicker-#{$property}: #{$value};
@@ -33,3 +36,39 @@
33
36
  }
34
37
  @return $result;
35
38
  }
39
+
40
+ @mixin create-token-slot($property, $token, $fallback: null) {
41
+ $token: _create-var-name($prefix, $token);
42
+
43
+ #{$property}: #{_create-var($token, $fallback)};
44
+ }
45
+
46
+ @function create-system-var($sys-token) {
47
+ $token: _create-var-name('mat-sys', $sys-token);
48
+
49
+ @return _create-var($token);
50
+ }
51
+
52
+ // Combines a prefix and a string to generate a CSS variable name for a token.
53
+ @function _create-var-name($prefix, $token) {
54
+ @if $prefix == null or $token == null {
55
+ @error 'Must specify both prefix and name when generating token';
56
+ }
57
+
58
+ $string-prefix: '';
59
+
60
+ // Prefixes are lists so we need to combine them.
61
+ @each $part in $prefix {
62
+ $string-prefix: if($string-prefix == '', $part, '#{$string-prefix}-#{$part}');
63
+ }
64
+
65
+ @return string.unquote('--#{$string-prefix}-#{$token}');
66
+ }
67
+
68
+ @function _create-var($name, $fallback: null) {
69
+ @if ($fallback) {
70
+ @return var($name, $fallback);
71
+ } @else {
72
+ @return var($name);
73
+ }
74
+ }
@@ -23,6 +23,7 @@
23
23
  $toggle-color,
24
24
  $content-color,
25
25
  (
26
+ clock-dial-cell-active-text-color: #fff,
26
27
  clock-dial-cell-disabled-text-color:
27
28
  mat.m2-get-color-from-palette($foreground, disabled-button),
28
29
  clock-dial-cell-disabled-background-color: transparent,
@@ -59,6 +60,7 @@
59
60
  clock-dial-hand-value-point-color: $color,
60
61
  clock-dial-hand-value-point-disabled-color: color.change($color, $alpha: 0.4),
61
62
  clock-dial-cell-unthemable-color: transparent,
63
+ clock-dial-cell-active-background-color: $color,
62
64
  clock-dial-cell-active-disabled-color: color.change($color, $alpha: 0.4)
63
65
  );
64
66
  }
@@ -9,12 +9,4 @@
9
9
  .mat-timepicker-content {
10
10
  @include mat.elevation(0);
11
11
  }
12
-
13
- .mat-clock-dial-cell.mat-mdc-mini-fab {
14
- border-radius: var(--mat-timepicker-clock-dial-cell-border-radius);
15
-
16
- .mdc-fab__ripple {
17
- border-radius: inherit;
18
- }
19
- }
20
12
  }
@@ -27,15 +27,4 @@
27
27
  @include utils.create-token-values($error-tokens);
28
28
  }
29
29
  }
30
-
31
- .mat-clock-dial-cell.mat-clock-dial-cell-active {
32
- background-color: var(--mat-timepicker-clock-dial-cell-active-background-color);
33
- color: var(--mat-timepicker-clock-dial-cell-active-text-color);
34
- }
35
-
36
- .mat-time-period {
37
- .mat-divider {
38
- border-top-color: var(--mat-timepicker-time-period-border-color);
39
- }
40
- }
41
30
  }
@@ -6,7 +6,7 @@
6
6
  @use '../variables';
7
7
 
8
8
  @function get-unthemable-tokens() {
9
- @return (content-border-radius: 1rem, clock-dial-cell-border-radius: 50%);
9
+ @return (content-border-radius: 1rem);
10
10
  }
11
11
 
12
12
  @function get-color-tokens($theme, $palette-name: primary) {
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGh1dGFyeWFuLW5neC1tYXQtdGltZXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdC10aW1lcGlja2VyL3NyYy9kaHV0YXJ5YW4tbmd4LW1hdC10aW1lcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { PlatformModule } from '@angular/cdk/platform';
2
- import { NgModule } from '@angular/core';
3
- import { TimeAdapter } from './time-adapter';
4
- import { NativeDateTimeAdapter } from './native-date-time-adapter';
5
- import * as i0 from "@angular/core";
6
- export * from './time-adapter';
7
- export * from './native-date-time-adapter';
8
- export class NativeDateTimeModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeModule, imports: [PlatformModule] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeModule, providers: [{ provide: TimeAdapter, useClass: NativeDateTimeAdapter }], imports: [PlatformModule] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- imports: [PlatformModule],
17
- providers: [{ provide: TimeAdapter, useClass: NativeDateTimeAdapter }],
18
- }]
19
- }] });
20
- export class MatNativeDateTimeModule {
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatNativeDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: MatNativeDateTimeModule }); }
23
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatNativeDateTimeModule, providers: [provideNativeDateTimeAdapter()] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatNativeDateTimeModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- providers: [provideNativeDateTimeAdapter()],
29
- }]
30
- }] });
31
- export function provideNativeDateTimeAdapter() {
32
- return { provide: TimeAdapter, useClass: NativeDateTimeAdapter };
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL2FkYXB0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBNEIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRW5FLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw0QkFBNEIsQ0FBQztBQU0zQyxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUhyQixjQUFjOytHQUdiLG9CQUFvQixhQUZwQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxZQUQ1RCxjQUFjOzsyRkFHYixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7aUJBQ3ZFOztBQU1ELE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsYUFGdkIsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDOzsyRkFFaEMsdUJBQXVCO2tCQUhuQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLENBQUM7aUJBQzVDOztBQUdELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNQVRfVElNRV9MT0NBTEVfUFJPVklERVIsIFRpbWVBZGFwdGVyIH0gZnJvbSAnLi90aW1lLWFkYXB0ZXInO1xuaW1wb3J0IHsgTmF0aXZlRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnLi9uYXRpdmUtZGF0ZS10aW1lLWFkYXB0ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3RpbWUtYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL25hdGl2ZS1kYXRlLXRpbWUtYWRhcHRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtQbGF0Zm9ybU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBOYXRpdmVEYXRlVGltZUFkYXB0ZXIgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVUaW1lTW9kdWxlIHt9XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW3Byb3ZpZGVOYXRpdmVEYXRlVGltZUFkYXB0ZXIoKV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdE5hdGl2ZURhdGVUaW1lTW9kdWxlIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTmF0aXZlRGF0ZVRpbWVBZGFwdGVyKCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHsgcHJvdmlkZTogVGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBOYXRpdmVEYXRlVGltZUFkYXB0ZXIgfTtcbn1cbiJdfQ==
@@ -1,137 +0,0 @@
1
- import { Inject, Injectable, Optional, inject } from '@angular/core';
2
- import { MAT_TIME_LOCALE, TimeAdapter } from './time-adapter';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Matches strings that have the form of a valid RFC 3339 string
6
- * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date
7
- * because the regex will match strings an with out of bounds month, date, etc.
8
- */
9
- const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
10
- /** Adapts the native JS Date for components that work with time. */
11
- export class NativeDateTimeAdapter extends TimeAdapter {
12
- constructor(matTimeLocale) {
13
- super();
14
- this._matTimeLocale = inject(MAT_TIME_LOCALE, { optional: true });
15
- if (matTimeLocale !== undefined) {
16
- this._matTimeLocale = matTimeLocale;
17
- }
18
- super.setLocale(this._matTimeLocale);
19
- }
20
- now() {
21
- return new Date();
22
- }
23
- parse(value, parseFormat) {
24
- // We have no way using the native JS Date to set the parse format or locale, so we ignore these
25
- // parameters.
26
- if (typeof value == 'number') {
27
- return new Date(value);
28
- }
29
- const { hour, minute, meridiem } = this.parseTime(value);
30
- // hour should be in 24h format
31
- // so, if meridiem is 'pm' and hour is less than 12, add 12 to hour
32
- const correctedHour = meridiem === 'pm' && hour < 12 ? hour + 12 : hour;
33
- const date = new Date();
34
- date.setHours(correctedHour);
35
- date.setMinutes(minute);
36
- return value ? new Date(date) : null;
37
- }
38
- parseTime(value) {
39
- const time = value.replace(/(\sam|\spm|\sAM|\sPM|am|pm|AM|PM)/g, '');
40
- const meridiem = value.replace(time, '').trim().toLowerCase();
41
- const [hour, minute] = time.split(':');
42
- return { hour: Number(hour), minute: Number(minute), meridiem };
43
- }
44
- getHour(date) {
45
- return date.getHours();
46
- }
47
- getMinute(date) {
48
- return date.getMinutes();
49
- }
50
- updateHour(date, hour) {
51
- const copy = new Date(date.getTime());
52
- copy.setHours(hour);
53
- return copy;
54
- }
55
- updateMinute(date, minute) {
56
- const copy = new Date(date.getTime());
57
- copy.setMinutes(minute);
58
- return copy;
59
- }
60
- getPeriod(date) {
61
- return date.getHours() < 12 ? 'am' : 'pm';
62
- }
63
- format(date, displayFormat) {
64
- if (!this.isValid(date)) {
65
- throw Error('NativeDateTimeAdapter: Cannot format invalid date.');
66
- }
67
- const dtf = new Intl.DateTimeFormat(this.locale, {
68
- ...displayFormat,
69
- timeZone: 'utc',
70
- });
71
- return this._format(dtf, date);
72
- }
73
- /**
74
- * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
75
- * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
76
- * invalid date for all other values.
77
- */
78
- deserialize(value) {
79
- if (typeof value === 'string') {
80
- if (!value) {
81
- return null;
82
- }
83
- // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the
84
- // string is the right format first.
85
- if (ISO_8601_REGEX.test(value)) {
86
- const date = new Date(value);
87
- if (this.isValid(date)) {
88
- return date;
89
- }
90
- }
91
- }
92
- return super.deserialize(value);
93
- }
94
- isTimeInstance(obj) {
95
- return obj instanceof Date;
96
- }
97
- isValid(date) {
98
- return !isNaN(date.getTime());
99
- }
100
- invalid() {
101
- return new Date(NaN);
102
- }
103
- compareTime(first, second) {
104
- return (first.getHours() - second.getHours() ||
105
- first.getMinutes() - second.getMinutes());
106
- }
107
- /**
108
- * When converting Date object to string, javascript built-in functions may return wrong
109
- * results because it applies its internal DST rules. The DST rules around the world change
110
- * very frequently, and the current valid rule is not always valid in previous years though.
111
- * We work around this problem building a new Date object which has its internal UTC
112
- * representation with the local date and time.
113
- * @param dtf Intl.DateTimeFormat object, containing the desired string format. It must have
114
- * timeZone set to 'utc' to work fine.
115
- * @param date Date from which we want to get the string representation according to dtf
116
- * @returns A Date object with its UTC representation based on the passed in date info
117
- */
118
- _format(dtf, date) {
119
- // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.
120
- // To work around this we use `setUTCFullYear` and `setUTCHours` instead.
121
- const d = new Date();
122
- d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());
123
- d.setUTCHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
124
- return dtf.format(d);
125
- }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeAdapter, deps: [{ token: MAT_TIME_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
127
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeAdapter }); }
128
- }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NativeDateTimeAdapter, decorators: [{
130
- type: Injectable
131
- }], ctorParameters: () => [{ type: undefined, decorators: [{
132
- type: Optional
133
- }, {
134
- type: Inject,
135
- args: [MAT_TIME_LOCALE]
136
- }] }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtdGltZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi9hZGFwdGVyL25hdGl2ZS1kYXRlLXRpbWUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzlEOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FDbEIsb0ZBQW9GLENBQUM7QUFFdkYsb0VBQW9FO0FBRXBFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUFpQjtJQUcxRCxZQUFpRCxhQUFxQjtRQUNwRSxLQUFLLEVBQUUsQ0FBQztRQUhPLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBSTVFLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVUsRUFBRSxXQUFpQjtRQUNqQyxnR0FBZ0c7UUFDaEcsY0FBYztRQUNkLElBQUksT0FBTyxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFF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QUFDLENBQUMsV0FBVyxDQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUN2QixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7OEdBdEpVLHFCQUFxQixrQkFHQSxlQUFlO2tIQUhwQyxxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQUlJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNQVRfVElNRV9MT0NBTEUsIFRpbWVBZGFwdGVyIH0gZnJvbSAnLi90aW1lLWFkYXB0ZXInO1xuaW1wb3J0IHsgTWF0VGltZVBlcmlvZFR5cGUgfSBmcm9tICcuLi90aW1lLXBlcmlvZCc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbiB3aXRoIG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuLyoqIEFkYXB0cyB0aGUgbmF0aXZlIEpTIERhdGUgZm9yIGNvbXBvbmVudHMgdGhhdCB3b3JrIHdpdGggdGltZS4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYXRpdmVEYXRlVGltZUFkYXB0ZXIgZXh0ZW5kcyBUaW1lQWRhcHRlcjxEYXRlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21hdFRpbWVMb2NhbGUgPSBpbmplY3QoTUFUX1RJTUVfTE9DQUxFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX1RJTUVfTE9DQUxFKSBtYXRUaW1lTG9jYWxlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChtYXRUaW1lTG9jYWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX21hdFRpbWVMb2NhbGUgPSBtYXRUaW1lTG9jYWxlO1xuICAgIH1cbiAgICBzdXBlci5zZXRMb2NhbGUodGhpcy5fbWF0VGltZUxvY2FsZSk7XG4gIH1cblxuICBub3coKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gIH1cblxuICBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdD86IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICAvLyBXZSBoYXZlIG5vIHdheSB1c2luZyB0aGUgbmF0aXZlIEpTIERhdGUgdG8gc2V0IHRoZSBwYXJzZSBmb3JtYXQgb3IgbG9jYWxlLCBzbyB3ZSBpZ25vcmUgdGhlc2VcbiAgICAvLyBwYXJhbWV0ZXJzLlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBob3VyLCBtaW51dGUsIG1lcmlkaWVtIH0gPSB0aGlzLnBhcnNlVGltZSh2YWx1ZSk7XG4gICAgLy8gaG91ciBzaG91bGQgYmUgaW4gMjRoIGZvcm1hdFxuICAgIC8vIHNvLCBpZiBtZXJpZGllbSBpcyAncG0nIGFuZCBob3VyIGlzIGxlc3MgdGhhbiAxMiwgYWRkIDEyIHRvIGhvdXJcbiAgICBjb25zdCBjb3JyZWN0ZWRIb3VyID0gbWVyaWRpZW0gPT09ICdwbScgJiYgaG91ciA8IDEyID8gaG91ciArIDEyIDogaG91cjtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBkYXRlLnNldEhvdXJzKGNvcnJlY3RlZEhvdXIpO1xuICAgIGRhdGUuc2V0TWludXRlcyhtaW51dGUpO1xuXG4gICAgcmV0dXJuIHZhbHVlID8gbmV3IERhdGUoZGF0ZSkgOiBudWxsO1xuICB9XG5cbiAgcGFyc2VUaW1lKHZhbHVlOiBzdHJpbmcpOiB7XG4gICAgaG91cjogbnVtYmVyO1xuICAgIG1pbnV0ZTogbnVtYmVyO1xuICAgIG1lcmlkaWVtPzogJ2FtJyB8ICdwbSc7XG4gIH0ge1xuICAgIGNvbnN0IHRpbWUgPSB2YWx1ZS5yZXBsYWNlKC8oXFxzYW18XFxzcG18XFxzQU18XFxzUE18YW18cG18QU18UE0pL2csICcnKTtcbiAgICBjb25zdCBtZXJpZGllbSA9IHZhbHVlLnJlcGxhY2UodGltZSwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpIGFzXG4gICAgICB8ICdhbSdcbiAgICAgIHwgJ3BtJztcbiAgICBjb25zdCBbaG91ciwgbWludXRlXSA9IHRpbWUuc3BsaXQoJzonKTtcblxuICAgIHJldHVybiB7IGhvdXI6IE51bWJlcihob3VyKSwgbWludXRlOiBOdW1iZXIobWludXRlKSwgbWVyaWRpZW0gfTtcbiAgfVxuXG4gIGdldEhvdXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKTtcbiAgfVxuXG4gIGdldE1pbnV0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7XG4gIH1cblxuICB1cGRhdGVIb3VyKGRhdGU6IERhdGUsIGhvdXI6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IGNvcHkgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gICAgY29weS5zZXRIb3Vycyhob3VyKTtcblxuICAgIHJldHVybiBjb3B5O1xuICB9XG5cbiAgdXBkYXRlTWludXRlKGRhdGU6IERhdGUsIG1pbnV0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgY29weSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgICBjb3B5LnNldE1pbnV0ZXMobWludXRlKTtcblxuICAgIHJldHVybiBjb3B5O1xuICB9XG5cbiAgZ2V0UGVyaW9kKGRhdGU6IERhdGUpOiBNYXRUaW1lUGVyaW9kVHlwZSB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKSA8IDEyID8gJ2FtJyA6ICdwbSc7XG4gIH1cblxuICBmb3JtYXQoZGF0ZTogRGF0ZSwgZGlzcGxheUZvcm1hdDogT2JqZWN0KTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ05hdGl2ZURhdGVUaW1lQWRhcHRlcjogQ2Fubm90IGZvcm1hdCBpbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZHRmID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsIHtcbiAgICAgIC4uLmRpc3BsYXlGb3JtYXQsXG4gICAgICB0aW1lWm9uZTogJ3V0YycsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0KGR0ZiwgZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgaWYgZ2l2ZW4gYSB2YWxpZCBEYXRlIG9yIG51bGwuIERlc2VyaWFsaXplcyB2YWxpZCBJU08gODYwMSBzdHJpbmdzXG4gICAqIChodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGludG8gdmFsaWQgRGF0ZXMgYW5kIGVtcHR5IHN0cmluZyBpbnRvIG51bGwuIFJldHVybnMgYW5cbiAgICogaW52YWxpZCBkYXRlIGZvciBhbGwgb3RoZXIgdmFsdWVzLlxuICAgKi9cbiAgb3ZlcnJpZGUgZGVzZXJpYWxpemUodmFsdWU6IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFRoZSBgRGF0ZWAgY29uc3RydWN0b3IgYWNjZXB0cyBmb3JtYXRzIG90aGVyIHRoYW4gSVNPIDg2MDEsIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZVxuICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICBpZiAoSVNPXzg2MDFfUkVHRVgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gIH1cblxuICBpc1RpbWVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgaXNWYWxpZChkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gIH1cblxuICBpbnZhbGlkKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgY29tcGFyZVRpbWUoZmlyc3Q6IERhdGUsIHNlY29uZDogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpcnN0LmdldEhvdXJzKCkgLSBzZWNvbmQuZ2V0SG91cnMoKSB8fFxuICAgICAgZmlyc3QuZ2V0TWludXRlcygpIC0gc2Vjb25kLmdldE1pbnV0ZXMoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBjb252ZXJ0aW5nIERhdGUgb2JqZWN0IHRvIHN0cmluZywgamF2YXNjcmlwdCBidWlsdC1pbiBmdW5jdGlvbnMgbWF5IHJldHVybiB3cm9uZ1xuICAgKiByZXN1bHRzIGJlY2F1c2UgaXQgYXBwbGllcyBpdHMgaW50ZXJuYWwgRFNUIHJ1bGVzLiBUaGUgRFNUIHJ1bGVzIGFyb3VuZCB0aGUgd29ybGQgY2hhbmdlXG4gICAqIHZlcnkgZnJlcXVlbnRseSwgYW5kIHRoZSBjdXJyZW50IHZhbGlkIHJ1bGUgaXMgbm90IGFsd2F5cyB2YWxpZCBpbiBwcmV2aW91cyB5ZWFycyB0aG91Z2guXG4gICAqIFdlIHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSBidWlsZGluZyBhIG5ldyBEYXRlIG9iamVjdCB3aGljaCBoYXMgaXRzIGludGVybmFsIFVUQ1xuICAgKiByZXByZXNlbnRhdGlvbiB3aXRoIHRoZSBsb2NhbCBkYXRlIGFuZCB0aW1lLlxuICAgKiBAcGFyYW0gZHRmIEludGwuRGF0ZVRpbWVGb3JtYXQgb2JqZWN0LCBjb250YWluaW5nIHRoZSBkZXNpcmVkIHN0cmluZyBmb3JtYXQuIEl0IG11c3QgaGF2ZVxuICAgKiAgICB0aW1lWm9uZSBzZXQgdG8gJ3V0YycgdG8gd29yayBmaW5lLlxuICAgKiBAcGFyYW0gZGF0ZSBEYXRlIGZyb20gd2hpY2ggd2Ugd2FudCB0byBnZXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBhY2NvcmRpbmcgdG8gZHRmXG4gICAqIEByZXR1cm5zIEEgRGF0ZSBvYmplY3Qgd2l0aCBpdHMgVVRDIHJlcHJlc2VudGF0aW9uIGJhc2VkIG9uIHRoZSBwYXNzZWQgaW4gZGF0ZSBpbmZvXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXQoZHRmOiBJbnRsLkRhdGVUaW1lRm9ybWF0LCBkYXRlOiBEYXRlKSB7XG4gICAgLy8gUGFzc2luZyB0aGUgeWVhciB0byB0aGUgY29uc3RydWN0b3IgY2F1c2VzIHllYXIgbnVtYmVycyA8MTAwIHRvIGJlIGNvbnZlcnRlZCB0byAxOXh4LlxuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMgd2UgdXNlIGBzZXRVVENGdWxsWWVhcmAgYW5kIGBzZXRVVENIb3Vyc2AgaW5zdGVhZC5cbiAgICBjb25zdCBkID0gbmV3IERhdGUoKTtcbiAgICBkLnNldFVUQ0Z1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gICAgZC5zZXRVVENIb3VycyhcbiAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICBkYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICAgICk7XG4gICAgcmV0dXJuIGR0Zi5mb3JtYXQoZCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,90 +0,0 @@
1
- import { InjectionToken, LOCALE_ID, inject } from '@angular/core';
2
- /** InjectionToken for timepicker that can be used to override default locale code. */
3
- export const MAT_TIME_LOCALE = new InjectionToken('MAT_TIME_LOCALE', {
4
- providedIn: 'root',
5
- factory: MAT_DATE_TIME_LOCALE_FACTORY,
6
- });
7
- export function MAT_DATE_TIME_LOCALE_FACTORY() {
8
- return inject(LOCALE_ID);
9
- }
10
- /**
11
- * No longer needed since MAT_TIME_LOCALE has been changed to a scoped injectable.
12
- * If you are importing and providing this in your code you can simply remove it.
13
- * @deprecated
14
- * @breaking-change 18.0.0
15
- */
16
- export const MAT_TIME_LOCALE_PROVIDER = {
17
- provide: MAT_TIME_LOCALE,
18
- useExisting: LOCALE_ID,
19
- };
20
- export class TimeAdapter {
21
- /**
22
- * Given a potential time object, returns that same time object if it is
23
- * a valid time, or `null` if it's not a valid time.
24
- * @param obj The object to check.
25
- * @returns A time or `null`.
26
- */
27
- getValidTimeOrNull(obj) {
28
- return this.isTimeInstance(obj) && this.isValid(obj)
29
- ? obj
30
- : null;
31
- }
32
- /**
33
- * Attempts to deserialize a value to a valid time object. The `<mat-timepicker>` will call this
34
- * method on all of its `@Input()` properties that accept time. It is therefore possible to
35
- * support passing values from your backend directly to these properties by overriding this method
36
- * to also deserialize the format used by your backend.
37
- * @param value The value to be deserialized into a time object.
38
- * @returns The deserialized time object, either a valid time, null if the value can be
39
- * deserialized into a null time (e.g. the empty string), or an invalid date.
40
- */
41
- deserialize(value) {
42
- if (value == null || (this.isTimeInstance(value) && this.isValid(value))) {
43
- return value;
44
- }
45
- return this.invalid();
46
- }
47
- /**
48
- * Sets the locale used for all time.
49
- * @param locale The new locale.
50
- */
51
- setLocale(locale) {
52
- this.locale = locale;
53
- }
54
- /**
55
- * Checks if two time are equal.
56
- * @param first The first time to check.
57
- * @param second The second time to check.
58
- * @returns Whether the two time are equal.
59
- * Null time are considered equal to other null time.
60
- */
61
- sameTime(first, second) {
62
- if (first && second) {
63
- let firstValid = this.isValid(first);
64
- let secondValid = this.isValid(second);
65
- if (firstValid && secondValid) {
66
- return !this.compareTime(first, second);
67
- }
68
- return firstValid == secondValid;
69
- }
70
- return first == second;
71
- }
72
- /**
73
- * Clamp the given time between min and max time.
74
- * @param time The time to clamp.
75
- * @param min The minimum value to allow. If null or omitted no min is enforced.
76
- * @param max The maximum value to allow. If null or omitted no max is enforced.
77
- * @returns `min` if `time` is less than `min`, `max` if time is greater than `max`,
78
- * otherwise `time`.
79
- */
80
- clampTime(time, min, max) {
81
- if (min && this.compareTime(time, min) < 0) {
82
- return min;
83
- }
84
- if (max && this.compareTime(time, max) > 0) {
85
- return max;
86
- }
87
- return time;
88
- }
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi9hZGFwdGVyL3RpbWUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEUsc0ZBQXNGO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxpQkFBaUIsRUFBRTtJQUMzRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsNEJBQTRCO0NBQ3RDLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsT0FBTyxFQUFFLGVBQWU7SUFDeEIsV0FBVyxFQUFFLFNBQVM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sT0FBZ0IsV0FBVztJQW9GL0I7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxHQUFZO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQVEsQ0FBQztZQUN2RCxDQUFDLENBQUUsR0FBUztZQUNaLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBUztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBV0Q7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUFDLEtBQWUsRUFBRSxNQUFnQjtRQUN4QyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsSUFBSSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsSUFBTyxFQUFFLEdBQWMsRUFBRSxHQUFjO1FBQy9DLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIExPQ0FMRV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUaW1lUGVyaW9kVHlwZSB9IGZyb20gJy4uL3RpbWUtcGVyaW9kJztcblxuLyoqIEluamVjdGlvblRva2VuIGZvciB0aW1lcGlja2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBsb2NhbGUgY29kZS4gKi9cbmV4cG9ydCBjb25zdCBNQVRfVElNRV9MT0NBTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTUFUX1RJTUVfTE9DQUxFJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6IE1BVF9EQVRFX1RJTUVfTE9DQUxFX0ZBQ1RPUlksXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIE1BVF9EQVRFX1RJTUVfTE9DQUxFX0ZBQ1RPUlkoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGluamVjdChMT0NBTEVfSUQpO1xufVxuXG4vKipcbiAqIE5vIGxvbmdlciBuZWVkZWQgc2luY2UgTUFUX1RJTUVfTE9DQUxFIGhhcyBiZWVuIGNoYW5nZWQgdG8gYSBzY29wZWQgaW5qZWN0YWJsZS5cbiAqIElmIHlvdSBhcmUgaW1wb3J0aW5nIGFuZCBwcm92aWRpbmcgdGhpcyBpbiB5b3VyIGNvZGUgeW91IGNhbiBzaW1wbHkgcmVtb3ZlIGl0LlxuICogQGRlcHJlY2F0ZWRcbiAqIEBicmVha2luZy1jaGFuZ2UgMTguMC4wXG4gKi9cbmV4cG9ydCBjb25zdCBNQVRfVElNRV9MT0NBTEVfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IE1BVF9USU1FX0xPQ0FMRSxcbiAgdXNlRXhpc3Rpbmc6IExPQ0FMRV9JRCxcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUaW1lQWRhcHRlcjxULCBMID0gYW55PiB7XG4gIC8qKiBUaGUgbG9jYWxlIHRvIHVzZSBmb3IgdGltZS4gKi9cbiAgcHJvdGVjdGVkIGxvY2FsZTogTDtcblxuICAvKipcbiAgICogR2V0cyBub3cncyB0aW1lLlxuICAgKiBAcmV0dXJucyBOb3cncyB0aW1lLlxuICAgKi9cbiAgYWJzdHJhY3Qgbm93KCk6IFQ7XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBhIHRpbWUgZnJvbSBhIHVzZXItcHJvdmlkZWQgdmFsdWUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gcGFyc2UuXG4gICAqIEBwYXJhbSBwYXJzZUZvcm1hdCBUaGUgZXhwZWN0ZWQgZm9ybWF0IG9mIHRoZSB2YWx1ZSBiZWluZyBwYXJzZWRcbiAgICogICAgICh0eXBlIGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCkuXG4gICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdGltZS5cbiAgICovXG4gIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBhbnkpOiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgaG91ciBjb21wb25lbnQgb2YgdGhlIGdpdmVuIHRpbWUuXG4gICAqIEBwYXJhbSB0aW1lIFRoZSB0aW1lIHRvIGV4dHJhY3QgdGhlIGhvdXIgZnJvbS5cbiAgICogQHJldHVybnMgVGhlIGhvdXIgY29tcG9uZW50LlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0SG91cih0aW1lOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtaW51dGUgY29tcG9uZW50IG9mIHRoZSBnaXZlbiB0aW1lLlxuICAgKiBAcGFyYW0gdGltZSBUaGUgdGltZSB0byBleHRyYWN0IHRoZSBtaW51dGUgZnJvbS5cbiAgICogQHJldHVybnMgVGhlIG1pbnV0ZSBjb21wb25lbnQuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRNaW51dGUodGltZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBob3VyIGNvbXBvbmVudCBvZiB0aGUgZ2l2ZW4gdGltZS5cbiAgICogQHBhcmFtIHRpbWUgVGhlIHRpbWUgdG8gdXBkYXRlIHRoZSBob3VyLlxuICAgKiBAcGFyYW0gaG91ciBUaGUgbmV3IGhvdXIgdG8gdXBkYXRlIGdpdmVuIHRpbWUuXG4gICAqIEByZXR1cm5zIFRoZSBuZXcgdGltZSB3aXRoIHVwZGF0ZWQgaG91ciBjb21wb25lbnQuXG4gICAqL1xuICBhYnN0cmFjdCB1cGRhdGVIb3VyKHRpbWU6IFQsIGhvdXI6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbWludXRlIGNvbXBvbmVudCBvZiB0aGUgZ2l2ZW4gdGltZS5cbiAgICogQHBhcmFtIHRpbWUgVGhlIHRpbWUgdG8gdXBkYXRlIHRoZSBtaW51dGUuXG4gICAqIEBwYXJhbSBtaW51dGUgVGhlIG5ldyBtaW51dGUgdG8gdXBkYXRlIGdpdmVuIHRpbWUuXG4gICAqIEByZXR1cm5zIFRoZSBuZXcgdGltZSB3aXRoIHVwZGF0ZWQgbWludXRlIGNvbXBvbmVudC5cbiAgICovXG4gIGFic3RyYWN0IHVwZGF0ZU1pbnV0ZSh0aW1lOiBULCBtaW51dGU6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBlcmlvZCBjb21wb25lbnQgb2YgdGhlIGdpdmVuIHRpbWUuXG4gICAqIEBwYXJhbSB0aW1lIFRoZSB0aW1lIHRvIGV4dHJhY3QgdGhlIHBlcmlvZCBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcGVyaW9kIGNvbXBvbmVudC5cbiAgICovXG4gIGFic3RyYWN0IGdldFBlcmlvZCh0aW1lOiBUKTogTWF0VGltZVBlcmlvZFR5cGU7XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSB0aW1lIGFzIGEgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9ybWF0LlxuICAgKiBAcGFyYW0gdGltZSBUaGUgdmFsdWUgdG8gZm9ybWF0LlxuICAgKiBAcGFyYW0gZGlzcGxheUZvcm1hdCBUaGUgZm9ybWF0IHRvIHVzZSB0byBkaXNwbGF5IHRoZSB0aW1lIGFzIGEgc3RyaW5nLlxuICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHRpbWUgc3RyaW5nLlxuICAgKi9cbiAgYWJzdHJhY3QgZm9ybWF0KHRpbWU6IFQsIGRpc3BsYXlGb3JtYXQ6IGFueSk6IHN0cmluZztcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBjb25zaWRlcmVkIGEgdGltZSBpbnN0YW5jZSBieSB0aGlzIHRpbWVBZGFwdGVyLlxuICAgKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgb2JqZWN0IGlzIGEgdGltZSBpbnN0YW5jZS5cbiAgICovXG4gIGFic3RyYWN0IGlzVGltZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHRpbWUgaXMgdmFsaWQuXG4gICAqIEBwYXJhbSB0aW1lIFRoZSB0aW1lIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB0aW1lIGlzIHZhbGlkLlxuICAgKi9cbiAgYWJzdHJhY3QgaXNWYWxpZCh0aW1lOiBUKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyB0aW1lIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIHRpbWUuXG4gICAqL1xuICBhYnN0cmFjdCBpbnZhbGlkKCk6IFQ7XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgcG90ZW50aWFsIHRpbWUgb2JqZWN0LCByZXR1cm5zIHRoYXQgc2FtZSB0aW1lIG9iamVjdCBpZiBpdCBpc1xuICAgKiBhIHZhbGlkIHRpbWUsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBhIHZhbGlkIHRpbWUuXG4gICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBjaGVjay5cbiAgICogQHJldHVybnMgQSB0aW1lIG9yIGBudWxsYC5cbiAgICovXG4gIGdldFZhbGlkVGltZU9yTnVsbChvYmo6IHVua25vd24pOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaXNUaW1lSW5zdGFuY2Uob2JqKSAmJiB0aGlzLmlzVmFsaWQob2JqIGFzIFQpXG4gICAgICA/IChvYmogYXMgVClcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBkZXNlcmlhbGl6ZSBhIHZhbHVlIHRvIGEgdmFsaWQgdGltZSBvYmplY3QuIFRoZSBgPG1hdC10aW1lcGlja2VyPmAgd2lsbCBjYWxsIHRoaXNcbiAgICogbWV0aG9kIG9uIGFsbCBvZiBpdHMgYEBJbnB1dCgpYCBwcm9wZXJ0aWVzIHRoYXQgYWNjZXB0IHRpbWUuIEl0IGlzIHRoZXJlZm9yZSBwb3NzaWJsZSB0b1xuICAgKiBzdXBwb3J0IHBhc3NpbmcgdmFsdWVzIGZyb20geW91ciBiYWNrZW5kIGRpcmVjdGx5IHRvIHRoZXNlIHByb3BlcnRpZXMgYnkgb3ZlcnJpZGluZyB0aGlzIG1ldGhvZFxuICAgKiB0byBhbHNvIGRlc2VyaWFsaXplIHRoZSBmb3JtYXQgdXNlZCBieSB5b3VyIGJhY2tlbmQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgZGVzZXJpYWxpemVkIGludG8gYSB0aW1lIG9iamVjdC5cbiAgICogQHJldHVybnMgVGhlIGRlc2VyaWFsaXplZCB0aW1lIG9iamVjdCwgZWl0aGVyIGEgdmFsaWQgdGltZSwgbnVsbCBpZiB0aGUgdmFsdWUgY2FuIGJlXG4gICAqICAgICBkZXNlcmlhbGl6ZWQgaW50byBhIG51bGwgdGltZSAoZS5nLiB0aGUgZW1wdHkgc3RyaW5nKSwgb3IgYW4gaW52YWxpZCBkYXRlLlxuICAgKi9cbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSk6IFQgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCAodGhpcy5pc1RpbWVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxvY2FsZSB1c2VkIGZvciBhbGwgdGltZS5cbiAgICogQHBhcmFtIGxvY2FsZSBUaGUgbmV3IGxvY2FsZS5cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGU6IEwpIHtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gdGltZS5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCB0aW1lIHRvIGNvbXBhcmUuXG4gICAqIEBwYXJhbSBzZWNvbmQgVGhlIHNlY29uZCB0aW1lIHRvIGNvbXBhcmUuXG4gICAqIEByZXR1cm5zIDAgaWYgdGhlIHRpbWUgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgdGltZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IHRpbWUgaXMgbGF0ZXIuXG4gICAqL1xuICBhYnN0cmFjdCBjb21wYXJlVGltZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIHRpbWUgYXJlIGVxdWFsLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IHRpbWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBzZWNvbmQgVGhlIHNlY29uZCB0aW1lIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB0d28gdGltZSBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIHRpbWUgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCB0aW1lLlxuICAgKi9cbiAgc2FtZVRpbWUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgbGV0IGZpcnN0VmFsaWQgPSB0aGlzLmlzVmFsaWQoZmlyc3QpO1xuICAgICAgbGV0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZVRpbWUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gdGltZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IHRpbWUuXG4gICAqIEBwYXJhbSB0aW1lIFRoZSB0aW1lIHRvIGNsYW1wLlxuICAgKiBAcGFyYW0gbWluIFRoZSBtaW5pbXVtIHZhbHVlIHRvIGFsbG93LiBJZiBudWxsIG9yIG9taXR0ZWQgbm8gbWluIGlzIGVuZm9yY2VkLlxuICAgKiBAcGFyYW0gbWF4IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGFsbG93LiBJZiBudWxsIG9yIG9taXR0ZWQgbm8gbWF4IGlzIGVuZm9yY2VkLlxuICAgKiBAcmV0dXJucyBgbWluYCBpZiBgdGltZWAgaXMgbGVzcyB0aGFuIGBtaW5gLCBgbWF4YCBpZiB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBgbWF4YCxcbiAgICogICAgIG90aGVyd2lzZSBgdGltZWAuXG4gICAqL1xuICBjbGFtcFRpbWUodGltZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVUaW1lKHRpbWUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZVRpbWUodGltZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiB0aW1lO1xuICB9XG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- const visible = { transform: 'scale(1)', opacity: 1, visibility: 'visible' };
3
- const hidden = { transform: 'scale(1.05)', opacity: 0, visibility: 'hidden' };
4
- export const enterLeaveAnimation = trigger('enterLeaveAnimation', [
5
- transition(':enter', [
6
- style(hidden),
7
- animate('0.1s ease-out', style(visible)),
8
- ]),
9
- transition(':leave', [style(visible), animate('0s ease-in', style(hidden))]),
10
- ]);
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stZGlhbC1hZG5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi9jbG9jay1kaWFsLWFkbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFFLE1BQU0sT0FBTyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM3RSxNQUFNLE1BQU0sR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFO0lBQ2hFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNiLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3pDLENBQUM7SUFDRixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUM3RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5jb25zdCB2aXNpYmxlID0geyB0cmFuc2Zvcm06ICdzY2FsZSgxKScsIG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9O1xuY29uc3QgaGlkZGVuID0geyB0cmFuc2Zvcm06ICdzY2FsZSgxLjA1KScsIG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH07XG5cbmV4cG9ydCBjb25zdCBlbnRlckxlYXZlQW5pbWF0aW9uID0gdHJpZ2dlcignZW50ZXJMZWF2ZUFuaW1hdGlvbicsIFtcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgIHN0eWxlKGhpZGRlbiksXG4gICAgYW5pbWF0ZSgnMC4xcyBlYXNlLW91dCcsIHN0eWxlKHZpc2libGUpKSxcbiAgXSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtzdHlsZSh2aXNpYmxlKSwgYW5pbWF0ZSgnMHMgZWFzZS1pbicsIHN0eWxlKGhpZGRlbikpXSksXG5dKTtcbiJdfQ==