@odx/angular 5.7.2 → 5.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 5.7.4
4
+
5
+ ### Patch Changes
6
+
7
+ - f7e1aa3: Fix connected overlay stacking issues to prevent badges from overlaying modals
8
+
9
+ ## 5.7.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 6539631: Subtitle for checkbox component
14
+
3
15
  ## 5.7.2
4
16
 
5
17
  ### Patch Changes
@@ -1,12 +1,11 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
- import { ElementRef, Injector, OnChanges, OnDestroy, OnInit } from '@angular/core';
2
+ import { ElementRef, Injector, OnChanges, OnDestroy } from '@angular/core';
3
3
  import { VirtualElement } from '@floating-ui/dom';
4
4
  import { NgChanges, Side } from '@odx/angular/utils';
5
5
  import { Subject } from 'rxjs';
6
6
  import { ConnectedOverlayOptions } from './models';
7
7
  import * as i0 from "@angular/core";
8
- export declare class ConnectedOverlayComponent implements OnInit, OnChanges, OnDestroy {
9
- private static Z_LAYER;
8
+ export declare class ConnectedOverlayComponent implements OnChanges, OnDestroy {
10
9
  private readonly renderer;
11
10
  private readonly zone;
12
11
  private positionUpdater;
@@ -18,7 +17,6 @@ export declare class ConnectedOverlayComponent implements OnInit, OnChanges, OnD
18
17
  referenceElement: VirtualElement;
19
18
  options: ConnectedOverlayOptions;
20
19
  closed: Subject<void>;
21
- ngOnInit(): void;
22
20
  ngOnChanges(changes: NgChanges<ConnectedOverlayComponent>): void;
23
21
  ngOnDestroy(): void;
24
22
  protected onAnimationStart({ fromState, toState }: AnimationEvent): void;
@@ -11,6 +11,6 @@ export declare class CheckboxComponent extends CheckBoxControl {
11
11
  get modifierIcon(): string;
12
12
  onChanged(event: Event): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "odx-checkbox", never, { "indeterminate": { "alias": "indeterminate"; "required": false; }; }, { "indeterminateChange": "indeterminateChange"; }, never, ["*"], true, [{ directive: typeof i1.WithDisabledState; inputs: {}; outputs: {}; }]>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "odx-checkbox", never, { "indeterminate": { "alias": "indeterminate"; "required": false; }; }, { "indeterminateChange": "indeterminateChange"; }, never, ["*", ".odx-checkbox__subtitle"], true, [{ directive: typeof i1.WithDisabledState; inputs: {}; outputs: {}; }]>;
15
15
  static ngAcceptInputType_indeterminate: unknown;
16
16
  }
@@ -40,5 +40,5 @@ export declare class TimepickerInputControlDirective extends InputControlDirecti
40
40
  */
41
41
  private applyMask;
42
42
  static ɵfac: i0.ɵɵFactoryDeclaration<TimepickerInputControlDirective, never>;
43
- static ɵdir: i0.ɵɵDirectiveDeclaration<TimepickerInputControlDirective, "input[odxTimepickerControl]", never, {}, {}, never, never, true, [{ directive: typeof i1.WithTabIndex; inputs: {}; outputs: {}; }]>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TimepickerInputControlDirective, "input[odxTimepickerControl]", never, {}, {}, never, never, true, [{ directive: typeof i1.WithTabIndex; inputs: {}; outputs: {}; }, { directive: typeof i1.WithDisabledState; inputs: {}; outputs: {}; }]>;
44
44
  }
@@ -1,4 +1,3 @@
1
- var ConnectedOverlayComponent_1;
2
1
  import { __decorate } from "tslib";
3
2
  import { group, transition, trigger, useAnimation } from '@angular/animations';
4
3
  import { ChangeDetectionStrategy, Component, ElementRef, Injector, Input, NgZone, Output, Renderer2, RendererStyleFlags2, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
@@ -22,12 +21,6 @@ export let ConnectedOverlayComponent = class ConnectedOverlayComponent {
22
21
  this.options = DefaultConnectedOverlayOptions;
23
22
  this.closed = new Subject();
24
23
  }
25
- static { ConnectedOverlayComponent_1 = this; }
26
- static { this.Z_LAYER = 0; }
27
- ngOnInit() {
28
- ConnectedOverlayComponent_1.Z_LAYER++;
29
- this.element.nativeElement.style.setProperty('--odx-cdk-connected-overlay-current-z-layer', ConnectedOverlayComponent_1.Z_LAYER.toFixed(0));
30
- }
31
24
  ngOnChanges(changes) {
32
25
  if (hasChanged(changes, ['options'], false)) {
33
26
  this.overlaySide = getSide(this.options.position);
@@ -39,7 +32,6 @@ export let ConnectedOverlayComponent = class ConnectedOverlayComponent {
39
32
  }
40
33
  ngOnDestroy() {
41
34
  this.stopPositionUpdater();
42
- ConnectedOverlayComponent_1.Z_LAYER--;
43
35
  }
44
36
  onAnimationStart({ fromState, toState }) {
45
37
  if (!fromState)
@@ -92,7 +84,7 @@ export let ConnectedOverlayComponent = class ConnectedOverlayComponent {
92
84
  ]),
93
85
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
94
86
  };
95
- ConnectedOverlayComponent = ConnectedOverlayComponent_1 = __decorate([
87
+ ConnectedOverlayComponent = __decorate([
96
88
  CSSComponent('cdk-connected-overlay')
97
89
  ], ConnectedOverlayComponent);
98
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectedOverlayComponent, decorators: [{
@@ -125,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
125
117
  }], closed: [{
126
118
  type: Output
127
119
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXkvc3JjL2xpYi9jb25uZWN0ZWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBa0IsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1Ysc0JBQXNCLEdBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBbUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFF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QUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDckgsQ0FBQztxQkFDSDs4QkFZUyxjQUFjO3NCQUR2QixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVCLFlBQVk7c0JBRHJCLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNN0IsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxNQUFNO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25FdmVudCwgZ3JvdXAsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlydHVhbEVsZW1lbnQsIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHtcbiAgZmFkZUluLFxuICBmYWRlT3V0LFxuICBzbGlkZUluTGVmdCxcbiAgc2xpZGVJblJpZ2h0LFxuICBzbGlkZUluVXAsXG4gIHNsaWRlT3V0RG93bixcbiAgc2xpZGVPdXRMZWZ0LFxuICBzbGlkZU91dFJpZ2h0LFxuICBzbGlkZU91dFVwLFxuICB3YWl0Rm9yQ2hpbGRBbmltYXRpb25zLFxufSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBOZ0NoYW5nZXMsIFNpZGUsIGdldFNpZGUsIGhhc0NoYW5nZWQsIGluamVjdEVsZW1lbnQsIGlzUHJlc2VudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb21wdXRlT3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLCBEZWZhdWx0Q29ubmVjdGVkT3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cbkBDU1NDb21wb25lbnQoJ2Nkay1jb25uZWN0ZWQtb3ZlcmxheScpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtY29ubmVjdGVkLW92ZXJsYXknLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgRHluYW1pY1ZpZXdEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJ2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW0Bob3N0QW5pbWF0aW9uXSc6ICd0cnVlJyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2hvc3RBbmltYXRpb24nLCBbd2FpdEZvckNoaWxkQW5pbWF0aW9uc10pLFxuICAgIHRyaWdnZXIoJ2NvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHRvcCcsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJblVwLCB7IHBhcmFtczogeyBmcm9tOiAnLThweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVJbigpKV0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RvcCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dFVwLCB7IHBhcmFtczogeyB0bzogJy04cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlT3V0KCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiByaWdodCcsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJbkxlZnQsIHsgcGFyYW1zOiB7IGZyb206ICc4cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlSW4oKSldKSksXG4gICAgICB0cmFuc2l0aW9uKCdyaWdodCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dFJpZ2h0LCB7IHBhcmFtczogeyB0bzogJzhweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSldKSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGJvdHRvbScsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJblVwLCB7IHBhcmFtczogeyBmcm9tOiAnOHB4JyB9IH0pLCB1c2VBbmltYXRpb24oZmFkZUluKCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbignYm90dG9tID0+IHZvaWQnLCBncm91cChbdXNlQW5pbWF0aW9uKHNsaWRlT3V0RG93biwgeyBwYXJhbXM6IHsgdG86ICc4cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlT3V0KCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBsZWZ0JywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZUluUmlnaHQsIHsgcGFyYW1zOiB7IGZyb206ICctOHB4JyB9IH0pLCB1c2VBbmltYXRpb24oZmFkZUluKCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbignbGVmdCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dExlZnQsIHsgcGFyYW1zOiB7IHRvOiAnLThweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSldKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgWl9MQVlFUiA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcG9zaXRpb25VcGRhdGVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgb3ZlcmxheVNpZGU/OiBTaWRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgY29udGVudEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdhcnJvdycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBhcnJvd0VsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVmZXJlbmNlRWxlbWVudCE6IFZpcnR1YWxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyA9IERlZmF1bHRDb25uZWN0ZWRPdmVybGF5T3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQuWl9MQVlFUisrO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLW9keC1jZGstY29ubmVjdGVkLW92ZXJsYXktY3VycmVudC16LWxheWVyJywgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudC5aX0xBWUVSLnRvRml4ZWQoMCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxDb25uZWN0ZWRPdmVybGF5Q29tcG9uZW50Pik6IHZvaWQge1xuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnb3B0aW9ucyddLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMub3ZlcmxheVNpZGUgPSBnZXRTaWRlKHRoaXMub3B0aW9ucy5wb3NpdGlvbik7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsncmVmZXJlbmNlRWxlbWVudCcsICdvcHRpb25zJ10sIGZhbHNlKSkge1xuICAgICAgdGhpcy5zdG9wUG9zaXRpb25VcGRhdGVyKCk7XG4gICAgICB0aGlzLnN0YXJ0UG9zaXRpb25VcGRhdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcFBvc2l0aW9uVXBkYXRlcigpO1xuICAgIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQuWl9MQVlFUi0tO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQW5pbWF0aW9uU3RhcnQoeyBmcm9tU3RhdGUsIHRvU3RhdGUgfTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWZyb21TdGF0ZSkgcmV0dXJuO1xuICAgIGlmIChmcm9tU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnLCBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudCk7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmJlZm9yZU9wZW4/LigpO1xuICAgIH0gZWxzZSBpZiAodG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmJlZm9yZUNsb3NlPy4oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BbmltYXRpb25Eb25lKHsgZnJvbVN0YXRlLCB0b1N0YXRlIH06IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFmcm9tU3RhdGUpIHJldHVybjtcbiAgICBpZiAoZnJvbVN0YXRlID09PSAndm9pZCcpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ob29rcz8uYWZ0ZXJPcGVuPy4oKTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdwb2ludGVyLWV2ZW50cycpO1xuICAgIH0gZWxzZSBpZiAodG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmFmdGVyQ2xvc2U/LigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQb3NpdGlvblVwZGF0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvblVwZGF0ZXIgPSB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIGF1dG9VcGRhdGUodGhpcy5yZWZlcmVuY2VFbGVtZW50LCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgKCkgPT4gdGhpcy51cGRhdGVQb3NpdGlvbigpLCB7XG4gICAgICAgIGVsZW1lbnRSZXNpemU6IGlzUHJlc2VudCh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFBvc2l0aW9uVXBkYXRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uVXBkYXRlcj8uKCk7XG4gICAgdGhpcy5wb3NpdGlvblVwZGF0ZXIgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVQb3NpdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gY29tcHV0ZU92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMucmVmZXJlbmNlRWxlbWVudCxcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5hcnJvd0VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICApLnRoZW4oKHsgcGxhY2VtZW50IH0pID0+IHtcbiAgICAgIHRoaXMub3ZlcmxheVNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW0Bjb250ZW50QW5pbWF0aW9uXT1cIm92ZXJsYXlTaWRlXCJcbiAgKEBjb250ZW50QW5pbWF0aW9uLnN0YXJ0KT1cIm9uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KVwiXG4gIChAY29udGVudEFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJvZHgtY2RrLWNvbm5lY3RlZC1vdmVybGF5X19jb250ZW50IHt7IG9wdGlvbnMuY29udGFpbmVyQ2xhc3MgfX1cIlxuICAjY29udGVudFxuPlxuICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cIm9wdGlvbnMuY29udGVudFwiIFtvZHhEeW5hbWljVmlld0NvbnRleHRdPVwib3B0aW9ucy5jb250ZXh0XCIgW29keER5bmFtaWNWaWV3SW5qZWN0b3JdPVwiaW5qZWN0b3JcIj48L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwib2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheS1hcnJvd1wiICNhcnJvdz48L2Rpdj5cbjwvZGl2PlxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXkvc3JjL2xpYi9jb25uZWN0ZWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFrQixLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFDTCxNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixzQkFBc0IsR0FDdkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFtQixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUs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TztzQkFEYixLQUFLO2dCQUlDLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50LCBncm91cCwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlydHVhbEVsZW1lbnQsIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHtcbiAgZmFkZUluLFxuICBmYWRlT3V0LFxuICBzbGlkZUluTGVmdCxcbiAgc2xpZGVJblJpZ2h0LFxuICBzbGlkZUluVXAsXG4gIHNsaWRlT3V0RG93bixcbiAgc2xpZGVPdXRMZWZ0LFxuICBzbGlkZU91dFJpZ2h0LFxuICBzbGlkZU91dFVwLFxuICB3YWl0Rm9yQ2hpbGRBbmltYXRpb25zLFxufSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBOZ0NoYW5nZXMsIFNpZGUsIGdldFNpZGUsIGhhc0NoYW5nZWQsIGluamVjdEVsZW1lbnQsIGlzUHJlc2VudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb21wdXRlT3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLCBEZWZhdWx0Q29ubmVjdGVkT3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cbkBDU1NDb21wb25lbnQoJ2Nkay1jb25uZWN0ZWQtb3ZlcmxheScpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtY29ubmVjdGVkLW92ZXJsYXknLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgRHluYW1pY1ZpZXdEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJ2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW0Bob3N0QW5pbWF0aW9uXSc6ICd0cnVlJyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2hvc3RBbmltYXRpb24nLCBbd2FpdEZvckNoaWxkQW5pbWF0aW9uc10pLFxuICAgIHRyaWdnZXIoJ2NvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHRvcCcsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJblVwLCB7IHBhcmFtczogeyBmcm9tOiAnLThweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVJbigpKV0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RvcCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dFVwLCB7IHBhcmFtczogeyB0bzogJy04cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlT3V0KCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiByaWdodCcsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJbkxlZnQsIHsgcGFyYW1zOiB7IGZyb206ICc4cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlSW4oKSldKSksXG4gICAgICB0cmFuc2l0aW9uKCdyaWdodCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dFJpZ2h0LCB7IHBhcmFtczogeyB0bzogJzhweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSldKSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGJvdHRvbScsIGdyb3VwKFt1c2VBbmltYXRpb24oc2xpZGVJblVwLCB7IHBhcmFtczogeyBmcm9tOiAnOHB4JyB9IH0pLCB1c2VBbmltYXRpb24oZmFkZUluKCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbignYm90dG9tID0+IHZvaWQnLCBncm91cChbdXNlQW5pbWF0aW9uKHNsaWRlT3V0RG93biwgeyBwYXJhbXM6IHsgdG86ICc4cHgnIH0gfSksIHVzZUFuaW1hdGlvbihmYWRlT3V0KCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBsZWZ0JywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZUluUmlnaHQsIHsgcGFyYW1zOiB7IGZyb206ICctOHB4JyB9IH0pLCB1c2VBbmltYXRpb24oZmFkZUluKCkpXSkpLFxuICAgICAgdHJhbnNpdGlvbignbGVmdCA9PiB2b2lkJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihzbGlkZU91dExlZnQsIHsgcGFyYW1zOiB7IHRvOiAnLThweCcgfSB9KSwgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSldKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcG9zaXRpb25VcGRhdGVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgb3ZlcmxheVNpZGU/OiBTaWRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgY29udGVudEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdhcnJvdycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBhcnJvd0VsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVmZXJlbmNlRWxlbWVudCE6IFZpcnR1YWxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyA9IERlZmF1bHRDb25uZWN0ZWRPdmVybGF5T3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxDb25uZWN0ZWRPdmVybGF5Q29tcG9uZW50Pik6IHZvaWQge1xuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnb3B0aW9ucyddLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMub3ZlcmxheVNpZGUgPSBnZXRTaWRlKHRoaXMub3B0aW9ucy5wb3NpdGlvbik7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsncmVmZXJlbmNlRWxlbWVudCcsICdvcHRpb25zJ10sIGZhbHNlKSkge1xuICAgICAgdGhpcy5zdG9wUG9zaXRpb25VcGRhdGVyKCk7XG4gICAgICB0aGlzLnN0YXJ0UG9zaXRpb25VcGRhdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcFBvc2l0aW9uVXBkYXRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQW5pbWF0aW9uU3RhcnQoeyBmcm9tU3RhdGUsIHRvU3RhdGUgfTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWZyb21TdGF0ZSkgcmV0dXJuO1xuICAgIGlmIChmcm9tU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnLCBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudCk7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmJlZm9yZU9wZW4/LigpO1xuICAgIH0gZWxzZSBpZiAodG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmJlZm9yZUNsb3NlPy4oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BbmltYXRpb25Eb25lKHsgZnJvbVN0YXRlLCB0b1N0YXRlIH06IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFmcm9tU3RhdGUpIHJldHVybjtcbiAgICBpZiAoZnJvbVN0YXRlID09PSAndm9pZCcpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ob29rcz8uYWZ0ZXJPcGVuPy4oKTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdwb2ludGVyLWV2ZW50cycpO1xuICAgIH0gZWxzZSBpZiAodG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuaG9va3M/LmFmdGVyQ2xvc2U/LigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQb3NpdGlvblVwZGF0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvblVwZGF0ZXIgPSB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIGF1dG9VcGRhdGUodGhpcy5yZWZlcmVuY2VFbGVtZW50LCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgKCkgPT4gdGhpcy51cGRhdGVQb3NpdGlvbigpLCB7XG4gICAgICAgIGVsZW1lbnRSZXNpemU6IGlzUHJlc2VudCh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFBvc2l0aW9uVXBkYXRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uVXBkYXRlcj8uKCk7XG4gICAgdGhpcy5wb3NpdGlvblVwZGF0ZXIgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVQb3NpdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gY29tcHV0ZU92ZXJsYXlQb3NpdGlvbihcbiAgICAgIHRoaXMucmVmZXJlbmNlRWxlbWVudCxcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5hcnJvd0VsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICApLnRoZW4oKHsgcGxhY2VtZW50IH0pID0+IHtcbiAgICAgIHRoaXMub3ZlcmxheVNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW0Bjb250ZW50QW5pbWF0aW9uXT1cIm92ZXJsYXlTaWRlXCJcbiAgKEBjb250ZW50QW5pbWF0aW9uLnN0YXJ0KT1cIm9uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KVwiXG4gIChAY29udGVudEFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJvZHgtY2RrLWNvbm5lY3RlZC1vdmVybGF5X19jb250ZW50IHt7IG9wdGlvbnMuY29udGFpbmVyQ2xhc3MgfX1cIlxuICAjY29udGVudFxuPlxuICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cIm9wdGlvbnMuY29udGVudFwiIFtvZHhEeW5hbWljVmlld0NvbnRleHRdPVwib3B0aW9ucy5jb250ZXh0XCIgW29keER5bmFtaWNWaWV3SW5qZWN0b3JdPVwiaW5qZWN0b3JcIj48L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwib2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheS1hcnJvd1wiICNhcnJvdz48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -35,7 +35,7 @@ export let CheckboxComponent = class CheckboxComponent extends CheckBoxControl {
35
35
  this.checkedChange.next(this.checked);
36
36
  }
37
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: CheckboxComponent, isStandalone: true, selector: "odx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute] }, outputs: { indeterminateChange: "indeterminateChange" }, host: { properties: { "class.is-active": "checked || indeterminate" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\"></odx-icon>\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content></ng-content>\n </div>\n</label>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: CheckboxComponent, isStandalone: true, selector: "odx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute] }, outputs: { indeterminateChange: "indeterminateChange" }, host: { properties: { "class.is-active": "checked || indeterminate" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\" />\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content />\n <ng-content select=\".odx-checkbox__subtitle\" />\n </div>\n</label>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
39
39
  };
40
40
  __decorate([
41
41
  CSSModifier(),
@@ -49,11 +49,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
49
49
  type: Component,
50
50
  args: [{ standalone: true, selector: 'odx-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [IconComponent, ControlDirective], providers: [ReadonlyController.connect()], hostDirectives: [WithDisabledState], host: {
51
51
  '[class.is-active]': 'checked || indeterminate',
52
- }, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\"></odx-icon>\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content></ng-content>\n </div>\n</label>\n" }]
52
+ }, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\" />\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content />\n <ng-content select=\".odx-checkbox__subtitle\" />\n </div>\n</label>\n" }]
53
53
  }], propDecorators: { indeterminate: [{
54
54
  type: Input,
55
55
  args: [{ transform: booleanAttribute }]
56
56
  }], indeterminateChange: [{
57
57
  type: Output
58
58
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2hlY2tib3gvc3JjL2xpYi9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jaGVja2JveC9zcmMvbGliL2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQWdCM0QsV0FBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxlQUFlO0lBQS9DOztRQUNHLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBZ0JoQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBZ0JuRTtJQTlCQyxJQUVXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxLQUFLLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBS0QsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFFZSxTQUFTLENBQUMsS0FBWTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FoQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNEdBSVIsZ0JBQWdCLGtKQVZ6QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLHdHQ2YzQyxxekJBMEJBLDRDRFpZLGFBQWEsa0hBQUUsZ0JBQWdCOztBQVV6QztJQUFDLFdBQVcsRUFBRTs7O3NEQU9iO0FBVlUsaUJBQWlCO0lBZDdCLFlBQVksQ0FBQyxVQUFVLENBQUM7R0FjWixpQkFBaUIsQ0FpQzdCOzRGQWpDWSxpQkFBaUI7a0JBYjdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUMvQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLGtCQUN6QixDQUFDLGlCQUFpQixDQUFDLFFBQzdCO3dCQUNKLG1CQUFtQixFQUFFLDBCQUEwQjtxQkFDaEQ7OEJBT1UsYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFhdEIsbUJBQW1CO3NCQURsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhZG9ubHlDb250cm9sbGVyLCBXaXRoRGlzYWJsZWRTdGF0ZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDaGVja0JveENvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2NoZWNrYm94LWNvbnRyb2wnO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcblxuQENTU0NvbXBvbmVudCgnY2hlY2tib3gnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICdjaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudCwgQ29udHJvbERpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1JlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCldLFxuICBob3N0RGlyZWN0aXZlczogW1dpdGhEaXNhYmxlZFN0YXRlXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaXMtYWN0aXZlXSc6ICdjaGVja2VkIHx8IGluZGV0ZXJtaW5hdGUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIENoZWNrQm94Q29udHJvbCB7XG4gIHByaXZhdGUgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzSW5kZXRlcm1pbmF0ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdmFsdWU7XG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLmlzSW5kZXRlcm1pbmF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5kZXRlcm1pbmF0ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGFyaWFDaGVja2VkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tlZCA/ICd0cnVlJyA6IHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RpZmllckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlID8gJ21pbnVzJyA6ICdjaGVjayc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLm5leHQodGhpcy5jaGVja2VkKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwib2R4LWNoZWNrYm94X19sYWJlbFwiPlxuICA8aW5wdXRcbiAgICBvZHhDb250cm9sXG4gICAgY2xhc3M9XCJvZHgtY2hlY2tib3hfX2lucHV0XCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiYXJpYUNoZWNrZWRcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvciB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cImlzUmVhZG9ubHkgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJpc1JlcXVpcmVkIHx8IG51bGxcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4IHx8IG51bGxcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIlxuICAvPlxuICA8ZGl2IGNsYXNzPVwib2R4LWNoZWNrYm94X19pbmRpY2F0b3JcIj5cbiAgICA8b2R4LWljb24gW25hbWVdPVwibW9kaWZpZXJJY29uXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm9keC1jaGVja2JveF9fY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2hlY2tib3gvc3JjL2xpYi9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jaGVja2JveC9zcmMvbGliL2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQWdCM0QsV0FBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxlQUFlO0lBQS9DOztRQUNHLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBZ0JoQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBZ0JuRTtJQTlCQyxJQUVXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxLQUFLLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBS0QsSUFBb0IsV0FBVztRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFFZSxTQUFTLENBQUMsS0FBWTtRQUNwQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FoQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNEdBSVIsZ0JBQWdCLGtKQVZ6QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLHdHQ2YzQyx3MUJBMkJBLDRDRGJZLGFBQWEsa0hBQUUsZ0JBQWdCOztBQVV6QztJQUFDLFdBQVcsRUFBRTs7O3NEQU9iO0FBVlUsaUJBQWlCO0lBZDdCLFlBQVksQ0FBQyxVQUFVLENBQUM7R0FjWixpQkFBaUIsQ0FpQzdCOzRGQWpDWSxpQkFBaUI7a0JBYjdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUMvQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLGtCQUN6QixDQUFDLGlCQUFpQixDQUFDLFFBQzdCO3dCQUNKLG1CQUFtQixFQUFFLDBCQUEwQjtxQkFDaEQ7OEJBT1UsYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFhdEIsbUJBQW1CO3NCQURsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhZG9ubHlDb250cm9sbGVyLCBXaXRoRGlzYWJsZWRTdGF0ZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDaGVja0JveENvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2NoZWNrYm94LWNvbnRyb2wnO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcblxuQENTU0NvbXBvbmVudCgnY2hlY2tib3gnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICdjaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudCwgQ29udHJvbERpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1JlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCldLFxuICBob3N0RGlyZWN0aXZlczogW1dpdGhEaXNhYmxlZFN0YXRlXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaXMtYWN0aXZlXSc6ICdjaGVja2VkIHx8IGluZGV0ZXJtaW5hdGUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIENoZWNrQm94Q29udHJvbCB7XG4gIHByaXZhdGUgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzSW5kZXRlcm1pbmF0ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdmFsdWU7XG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLmlzSW5kZXRlcm1pbmF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5kZXRlcm1pbmF0ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGFyaWFDaGVja2VkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tlZCA/ICd0cnVlJyA6IHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RpZmllckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlID8gJ21pbnVzJyA6ICdjaGVjayc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLm5leHQodGhpcy5jaGVja2VkKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwib2R4LWNoZWNrYm94X19sYWJlbFwiPlxuICA8aW5wdXRcbiAgICBvZHhDb250cm9sXG4gICAgY2xhc3M9XCJvZHgtY2hlY2tib3hfX2lucHV0XCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiYXJpYUNoZWNrZWRcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvciB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cImlzUmVhZG9ubHkgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJpc1JlcXVpcmVkIHx8IG51bGxcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4IHx8IG51bGxcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIlxuICAvPlxuICA8ZGl2IGNsYXNzPVwib2R4LWNoZWNrYm94X19pbmRpY2F0b3JcIj5cbiAgICA8b2R4LWljb24gW25hbWVdPVwibW9kaWZpZXJJY29uXCIgaWNvblNldD1cImNvcmVcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm9keC1jaGVja2JveF9fY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLm9keC1jaGVja2JveF9fc3VidGl0bGVcIiAvPlxuICA8L2Rpdj5cbjwvbGFiZWw+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Directive, inject } from '@angular/core';
3
- import { WithTabIndex } from '@odx/angular';
3
+ import { WithDisabledState, WithTabIndex } from '@odx/angular';
4
4
  import { InputControlDirective } from '@odx/angular/cdk/custom-form-control';
5
5
  import { CSSComponent } from '@odx/angular/internal';
6
6
  import { NgxMaskPipe, provideNgxMask } from 'ngx-mask';
@@ -73,7 +73,7 @@ export let TimepickerInputControlDirective = class TimepickerInputControlDirecti
73
73
  return value;
74
74
  }
75
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimepickerInputControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
76
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimepickerInputControlDirective, isStandalone: true, selector: "input[odxTimepickerControl]", host: { properties: { "attr.readonly": "isReadonly || null", "attr.placeholder": "placeholder" } }, providers: [provideNgxMask(), NgxMaskPipe], usesInheritance: true, hostDirectives: [{ directive: i1.WithTabIndex }], ngImport: i0 }); }
76
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimepickerInputControlDirective, isStandalone: true, selector: "input[odxTimepickerControl]", host: { properties: { "attr.readonly": "isReadonly || null", "attr.placeholder": "placeholder" } }, providers: [provideNgxMask(), NgxMaskPipe], usesInheritance: true, hostDirectives: [{ directive: i1.WithTabIndex }, { directive: i1.WithDisabledState }], ngImport: i0 }); }
77
77
  };
78
78
  TimepickerInputControlDirective = __decorate([
79
79
  CSSComponent('timepicker__control')
@@ -88,7 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
88
88
  '[attr.placeholder]': 'placeholder',
89
89
  },
90
90
  providers: [provideNgxMask(), NgxMaskPipe],
91
- hostDirectives: [WithTabIndex],
91
+ hostDirectives: [WithTabIndex, WithDisabledState],
92
92
  }]
93
93
  }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RpbWVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL3RpbWVwaWNrZXItaW5wdXQtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBVyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFN0Q7Ozs7O0dBS0c7QUFZSSxXQUFNLCtCQUErQixHQUFyQyxNQUFNLCtCQUFnQyxTQUFRLHFCQUFxQjtJQUFuRTs7UUFDWSxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFrQnJEOztXQUVHO1FBQ2EsaUJBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNoRixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdEMsQ0FBQztLQW1DSDtJQXpEQzs7T0FFRztJQUNILElBQWMsVUFBVTtRQUN0QixPQUFPO1lBQ0wsVUFBVSxFQUFFLEtBQUs7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUM5QixnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUU1QyxRQUFRLEVBQUU7Z0JBQ1IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7YUFDaEM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQVVEOzs7O09BSUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFjLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxTQUFTLENBQUMsS0FBWTtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDOUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQW1CLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQTdEVSwrQkFBK0I7bUdBQS9CLCtCQUErQiw4S0FIL0IsQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7O0FBRy9CLCtCQUErQjtJQVgzQyxZQUFZLENBQUMscUJBQXFCLENBQUM7R0FXdkIsK0JBQStCLENBOEQzQzs0RkE5RFksK0JBQStCO2tCQVYzQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsb0JBQW9CO3dCQUN2QyxvQkFBb0IsRUFBRSxhQUFhO3FCQUNwQztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7b0JBQzFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2l0aFRhYkluZGV4IH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IElucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgSUNvbmZpZywgTmd4TWFza1BpcGUsIHByb3ZpZGVOZ3hNYXNrIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaW1lcGlja2VyU2VydmljZSB9IGZyb20gJy4uL3RpbWVwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUSU1FUElDS0VSX0NPTlRST0wgfSBmcm9tICcuLi90aW1lcGlja2VyLnRva2VuJztcbmltcG9ydCB7IHByb2Nlc3NJbnB1dFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvbmd4LW1hc2staGVscGVyJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gZW5oYW5jZSBhIHN0YW5kYXJkIGlucHV0IGVsZW1lbnQgZm9yIHRpbWUgcGlja2luZywgaW50ZWdyYXRpbmcgbWFzayBmdW5jdGlvbmFsaXR5IGZvciB0aW1lIGZvcm1hdC5cbiAqIEl0IGF1dG9tYXRpY2FsbHkgYWRhcHRzIHRvIGxvY2FsZSBzZXR0aW5ncyBwcm92aWRlZCBieSB0aGUgZW5jbG9zaW5nIGBUaW1lcGlja2VyQ29tcG9uZW50YCB0byBkaXNwbGF5IHRpbWUgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC5cbiAqXG4gKiBAZXh0ZW5kcyB7SW5wdXRDb250cm9sRGlyZWN0aXZlfVxuICovXG5AQ1NTQ29tcG9uZW50KCd0aW1lcGlja2VyX19jb250cm9sJylcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2lucHV0W29keFRpbWVwaWNrZXJDb250cm9sXScsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucmVhZG9ubHldJzogJ2lzUmVhZG9ubHkgfHwgbnVsbCcsXG4gICAgJ1thdHRyLnBsYWNlaG9sZGVyXSc6ICdwbGFjZWhvbGRlcicsXG4gIH0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVOZ3hNYXNrKCksIE5neE1hc2tQaXBlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtXaXRoVGFiSW5kZXhdLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlIGV4dGVuZHMgSW5wdXRDb250cm9sRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyID0gaW5qZWN0KFRJTUVQSUNLRVJfQ09OVFJPTCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGltZXBpY2tlclNlcnZpY2UgPSBpbmplY3QoVGltZXBpY2tlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmd4TWFza1BpcGUgPSBpbmplY3QoTmd4TWFza1BpcGUpO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciB0aGUgbWFzayBhcHBsaWVkIHRvIHRoZSB0aW1lcGlja2VyIGlucHV0LiBBZGp1c3RzIGJhc2VkIG9uIGxvY2FsZSBzZXR0aW5ncy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgbWFza0NvbmZpZygpOiBQYXJ0aWFsPElDb25maWc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICBhcG06IHRoaXMudGltZXBpY2tlci51c2VMb2NhbGUsXG4gICAgICBsZWFkWmVyb0RhdGVUaW1lOiAhdGhpcy50aW1lcGlja2VyLnVzZUxvY2FsZSxcblxuICAgICAgcGF0dGVybnM6IHtcbiAgICAgICAgQTogeyBwYXR0ZXJuOiBuZXcgUmVnRXhwKCdbQWFQcF0nKSB9LFxuICAgICAgICBNOiB7IHBhdHRlcm46IG5ldyBSZWdFeHAoJ00nKSB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbSBvZiB2YWx1ZSBjaGFuZ2VzIGZvciB0aGUgaW5wdXQgZWxlbWVudCwgYXBwbHlpbmcgdGhlIG1hc2sgYW5kIHByb2Nlc3NpbmcgdGhlIGlucHV0IGJhc2VkIG9uIGxvY2FsZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZUNoYW5nZSQgPSBmcm9tRXZlbnQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLmFwcGx5TWFzayhldmVudCkpLFxuICApO1xuXG4gIC8qKlxuICAgKiBDb21wdXRlcyBhbmQgcmV0dXJucyB0aGUgcGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIGlucHV0IGJhc2VkIG9uIGxvY2FsZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aW1lcGlja2VyU2VydmljZS5nZXRQbGFjZWhvbGRlcih0aGlzLnRpbWVwaWNrZXIudXNlTG9jYWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHRpbWVwaWNrZXIgaW5wdXQgaXMgcmVhZG9ubHksIGJhc2VkIG9uIHRoZSBzdGF0ZSBvZiB0aGUgcGFyZW50IHRpbWVwaWNrZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBpbnB1dCBzaG91bGQgYmUgcmVhZG9ubHk7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aW1lcGlja2VyLmlzUmVhZG9ubHk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgdGltZSBmb3JtYXQgbWFzayB0byB0aGUgaW5wdXQgdmFsdWUsIHRyYW5zZm9ybWluZyBhbmQgcmV0dXJuaW5nIHRoZSBtYXNrZWQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGlucHV0IGV2ZW50IHRyaWdnZXJpbmcgdGhlIG1hc2sgYXBwbGljYXRpb24uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBtYXNrZWQgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5TWFzayhldmVudDogRXZlbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hc2sgPSB0aGlzLnRpbWVwaWNrZXIudXNlTG9jYWxlID8gJ0hoOm0wIEFNJyA6ICdIaDptMCc7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5uZ3hNYXNrUGlwZS50cmFuc2Zvcm0odGhpcy5uYXRpdmVFbGVtZW50VmFsdWUsIG1hc2ssIHRoaXMubWFza0NvbmZpZyk7XG4gICAgaWYgKHRoaXMudGltZXBpY2tlci51c2VMb2NhbGUpIHtcbiAgICAgIHZhbHVlID0gcHJvY2Vzc0lucHV0VmFsdWUodmFsdWUsIGV2ZW50IGFzIElucHV0RXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RpbWVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL3RpbWVwaWNrZXItaW5wdXQtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBVyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFN0Q7Ozs7O0dBS0c7QUFZSSxXQUFNLCtCQUErQixHQUFyQyxNQUFNLCtCQUFnQyxTQUFRLHFCQUFxQjtJQUFuRTs7UUFDWSxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFrQnJEOztXQUVHO1FBQ2EsaUJBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNoRixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdEMsQ0FBQztLQW1DSDtJQXpEQzs7T0FFRztJQUNILElBQWMsVUFBVTtRQUN0QixPQUFPO1lBQ0wsVUFBVSxFQUFFLEtBQUs7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUM5QixnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUU1QyxRQUFRLEVBQUU7Z0JBQ1IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7YUFDaEM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQVVEOzs7O09BSUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFjLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxTQUFTLENBQUMsS0FBWTtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDOUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQW1CLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQTdEVSwrQkFBK0I7bUdBQS9CLCtCQUErQiw4S0FIL0IsQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7O0FBRy9CLCtCQUErQjtJQVgzQyxZQUFZLENBQUMscUJBQXFCLENBQUM7R0FXdkIsK0JBQStCLENBOEQzQzs0RkE5RFksK0JBQStCO2tCQVYzQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsb0JBQW9CO3dCQUN2QyxvQkFBb0IsRUFBRSxhQUFhO3FCQUNwQztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7b0JBQzFDLGNBQWMsRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2l0aERpc2FibGVkU3RhdGUsIFdpdGhUYWJJbmRleCB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IElDb25maWcsIE5neE1hc2tQaXBlLCBwcm92aWRlTmd4TWFzayB9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmcm9tRXZlbnQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGltZXBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi90aW1lcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVElNRVBJQ0tFUl9DT05UUk9MIH0gZnJvbSAnLi4vdGltZXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBwcm9jZXNzSW5wdXRWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL25neC1tYXNrLWhlbHBlcic7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIGVuaGFuY2UgYSBzdGFuZGFyZCBpbnB1dCBlbGVtZW50IGZvciB0aW1lIHBpY2tpbmcsIGludGVncmF0aW5nIG1hc2sgZnVuY3Rpb25hbGl0eSBmb3IgdGltZSBmb3JtYXQuXG4gKiBJdCBhdXRvbWF0aWNhbGx5IGFkYXB0cyB0byBsb2NhbGUgc2V0dGluZ3MgcHJvdmlkZWQgYnkgdGhlIGVuY2xvc2luZyBgVGltZXBpY2tlckNvbXBvbmVudGAgdG8gZGlzcGxheSB0aW1lIGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtYXQuXG4gKlxuICogQGV4dGVuZHMge0lucHV0Q29udHJvbERpcmVjdGl2ZX1cbiAqL1xuQENTU0NvbXBvbmVudCgndGltZXBpY2tlcl9fY29udHJvbCcpXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpbnB1dFtvZHhUaW1lcGlja2VyQ29udHJvbF0nLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJlYWRvbmx5XSc6ICdpc1JlYWRvbmx5IHx8IG51bGwnLFxuICAgICdbYXR0ci5wbGFjZWhvbGRlcl0nOiAncGxhY2Vob2xkZXInLFxuICB9LFxuICBwcm92aWRlcnM6IFtwcm92aWRlTmd4TWFzaygpLCBOZ3hNYXNrUGlwZV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aFRhYkluZGV4LCBXaXRoRGlzYWJsZWRTdGF0ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgZXh0ZW5kcyBJbnB1dENvbnRyb2xEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVwaWNrZXIgPSBpbmplY3QoVElNRVBJQ0tFUl9DT05UUk9MKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyU2VydmljZSA9IGluamVjdChUaW1lcGlja2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBuZ3hNYXNrUGlwZSA9IGluamVjdChOZ3hNYXNrUGlwZSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBtYXNrIGFwcGxpZWQgdG8gdGhlIHRpbWVwaWNrZXIgaW5wdXQuIEFkanVzdHMgYmFzZWQgb24gbG9jYWxlIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBtYXNrQ29uZmlnKCk6IFBhcnRpYWw8SUNvbmZpZz4ge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcbiAgICAgIGFwbTogdGhpcy50aW1lcGlja2VyLnVzZUxvY2FsZSxcbiAgICAgIGxlYWRaZXJvRGF0ZVRpbWU6ICF0aGlzLnRpbWVwaWNrZXIudXNlTG9jYWxlLFxuXG4gICAgICBwYXR0ZXJuczoge1xuICAgICAgICBBOiB7IHBhdHRlcm46IG5ldyBSZWdFeHAoJ1tBYVBwXScpIH0sXG4gICAgICAgIE06IHsgcGF0dGVybjogbmV3IFJlZ0V4cCgnTScpIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtIG9mIHZhbHVlIGNoYW5nZXMgZm9yIHRoZSBpbnB1dCBlbGVtZW50LCBhcHBseWluZyB0aGUgbWFzayBhbmQgcHJvY2Vzc2luZyB0aGUgaW5wdXQgYmFzZWQgb24gbG9jYWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlQ2hhbmdlJCA9IGZyb21FdmVudCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoZXZlbnQpID0+IHRoaXMuYXBwbHlNYXNrKGV2ZW50KSksXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgYmFzZWQgb24gbG9jYWxlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpbWVwaWNrZXJTZXJ2aWNlLmdldFBsYWNlaG9sZGVyKHRoaXMudGltZXBpY2tlci51c2VMb2NhbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgdGltZXBpY2tlciBpbnB1dCBpcyByZWFkb25seSwgYmFzZWQgb24gdGhlIHN0YXRlIG9mIHRoZSBwYXJlbnQgdGltZXBpY2tlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGlucHV0IHNob3VsZCBiZSByZWFkb25seTsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRpbWVwaWNrZXIuaXNSZWFkb25seTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSB0aW1lIGZvcm1hdCBtYXNrIHRvIHRoZSBpbnB1dCB2YWx1ZSwgdHJhbnNmb3JtaW5nIGFuZCByZXR1cm5pbmcgdGhlIG1hc2tlZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgaW5wdXQgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbWFzayBhcHBsaWNhdGlvbi5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIG1hc2tlZCBpbnB1dCB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlNYXNrKGV2ZW50OiBFdmVudCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFzayA9IHRoaXMudGltZXBpY2tlci51c2VMb2NhbGUgPyAnSGg6bTAgQU0nIDogJ0hoOm0wJztcbiAgICBsZXQgdmFsdWUgPSB0aGlzLm5neE1hc2tQaXBlLnRyYW5zZm9ybSh0aGlzLm5hdGl2ZUVsZW1lbnRWYWx1ZSwgbWFzaywgdGhpcy5tYXNrQ29uZmlnKTtcbiAgICBpZiAodGhpcy50aW1lcGlja2VyLnVzZUxvY2FsZSkge1xuICAgICAgdmFsdWUgPSBwcm9jZXNzSW5wdXRWYWx1ZSh2YWx1ZSwgZXZlbnQgYXMgSW5wdXRFdmVudCk7XG4gICAgfVxuICAgIHRoaXMubmF0aXZlRWxlbWVudFZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
@@ -166,7 +166,7 @@ export let TimepickerComponent = class TimepickerComponent extends CustomFormCon
166
166
  provide: TIMEPICKER_CONTROL,
167
167
  useExisting: forwardRef(() => TimepickerComponent_1),
168
168
  },
169
- ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
169
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
170
  };
171
171
  TimepickerComponent = TimepickerComponent_1 = __decorate([
172
172
  CSSComponent('timepicker'),
@@ -183,7 +183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
183
183
  },
184
184
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [A11yModule, ActionGroupComponent, ButtonComponent, DropdownModule, TimepickerOptionComponent, IconComponent, TimepickerInputControlDirective], host: {
185
185
  '[attr.readonly]': 'readonlyController?.readonly || null',
186
- }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n" }]
186
+ }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n" }]
187
187
  }], ctorParameters: function () { return []; }, propDecorators: { dropdown: [{
188
188
  type: ViewChild,
189
189
  args: [DropdownDirective]
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
210
210
  type: HostListener,
211
211
  args: ['keydown', ['$event']]
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FB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Q0FBQzs7R0FvQmQsbUJBQW1CLENBK0svQjs0RkEvS1ksbUJBQW1CO2tCQW5CL0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLGFBRWY7d0JBQ1Qsa0JBQWtCLENBQUMsT0FBTyxFQUFFO3dCQUM1QixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLCtCQUErQixDQUFDLFFBQ2pKO3dCQUNKLGlCQUFpQixFQUFFLHNDQUFzQztxQkFDMUQ7MEVBV2tCLFFBQVE7c0JBRDFCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUlsQixPQUFPO3NCQURoQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQVUvRCxTQUFTO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQW1CL0IsSUFBSTtzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFROUIsR0FBRztzQkFEVCxLQUFLO2dCQVFDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxTQUFTO3NCQURmLFNBQVM7dUJBQUMsK0JBQStCO2dCQXVEaEMscUJBQXFCO3NCQUY5QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBpc0Z1bmN0aW9uLCB0cmFja0J5SW5kZXgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lcGlja2VyU2VydmljZSB9IGZyb20gJy4vdGltZXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRJTUVQSUNLRVJfQ09OVFJPTCB9IGZyb20gJy4vdGltZXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBnZW5lcmF0ZVRpbWVTdGFtcHMgfSBmcm9tICcuL3V0aWxzL2dlbmVyYXRlLXRpbWUtc3RhbXBzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGltZSBwaWNrZXIgY29tcG9uZW50IGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBhIHRpbWUgZnJvbSBhIGRyb3Bkb3duIGxpc3QuXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhciBmb3JtcyBhbmQgc3VwcG9ydHMgY3VzdG9taXphdGlvbiBmb3IgbG9jYWxlLCB0aW1lIHJhbmdlLCBhbmQgc3RlcCBpbnRlcnZhbHMuXG4gKlxuICogQGV4dGVuZHMge0N1c3RvbUZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+fVxuICovXG5AQ1NTQ29tcG9uZW50KCd0aW1lcGlja2VyJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC10aW1lcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICd0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKSxcbiAgICBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRJTUVQSUNLRVJfQ09OVFJPTCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVwaWNrZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUsIFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQsIEljb25Db21wb25lbnQsIFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmVdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJlYWRvbmx5XSc6ICdyZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5IHx8IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyU2VydmljZSA9IGluamVjdChUaW1lcGlja2VyU2VydmljZSk7XG4gIHByaXZhdGUgX3VzZUxvY2FsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQga2V5TWFuYWdlcj86IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPE9wdGlvbkNvbnRyb2w8c3RyaW5nPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFja0J5SW5kZXggPSB0cmFja0J5SW5kZXg7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZHJlbihUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCB7IGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zITogUXVlcnlMaXN0PFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQ+O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSB0aW1lcGlja2VyIHNob3VsZCB1c2UgbG9jYWxlLXNwZWNpZmljIHRpbWUgZm9ybWF0cyBBTS9QTS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHVzZUxvY2FsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB2YWwpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHRpbWU7XG4gICAgfVxuICAgIHRoaXMuX3VzZUxvY2FsZSA9IHZhbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXNlTG9jYWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl91c2VMb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHN0ZXAgaW50ZXJ2YWwgYmV0d2VlbiB0aW1lIG9wdGlvbnMgaW4gbWludXRlcy5cbiAgICogQGRlZmF1bHQgMzBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzdGVwID0gMzA7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSB0aW1lIHZhbHVlIHRoYXQgY2FuIGJlIHNlbGVjdGVkICgnMDU6MDAnIG9yICcwNTowMCBBTScpLlxuICAgKiBAZGVmYXVsdCAnMDA6MDAnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWluID0gJzAwOjAwJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHRpbWUgdmFsdWUgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgKCcyMjowMCcgb3IgJzEwOjAwIFBNJykuXG4gICAqIEBkZWZhdWx0ICcyMzo1OSdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXggPSAnMjM6NTknO1xuXG4gIEBWaWV3Q2hpbGQoVGltZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIGRhdGVGaWVsZD86IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpO1xuICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+Pih0aGlzLm9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNUaW1lT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG9wdGlvbi52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Rpb24gb2YgYSB0aW1lIG9wdGlvbiBmcm9tIHRoZSBkcm9wZG93biwgdXBkYXRpbmcgdGhlIGlucHV0IGZpZWxkIGFuZCBjbG9zaW5nIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHtUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50fSBvcHRpb24gLSBUaGUgc2VsZWN0ZWQgdGltZSBvcHRpb24gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHRpbWVTZWxlY3RlZChvcHRpb24/OiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdChvcHRpb24uZ2V0TGFiZWwoKSwgdGhpcy51c2VMb2NhbGUpO1xuICAgIHRoaXMuZGF0ZUZpZWxkICYmICh0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUpO1xuICAgIHRoaXMuZHJvcGRvd24/LmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdGltZSBpcyB3aXRoaW4gdGhlIGFsbG93ZWQgdGltZSByYW5nZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZSB0byBjaGVjaywgaW4gJ0hIOm1tJyBvciAnSEg6bW0gQU0vUE0nIGZvcm1hdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHRpbWUgaXMgd2l0aGluIHRoZSByYW5nZTsgb3RoZXJ3aXNlLCBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBpblRpbWVSYW5nZSh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aW1lcGlja2VyU2VydmljZS5tYXhWYWxpZGF0aW9uKHRpbWUsIHRoaXMubWF4KSAmJiB0aGlzLnRpbWVwaWNrZXJTZXJ2aWNlLm1pblZhbGlkYXRpb24odGltZSwgdGhpcy5taW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgbGlzdCBvZiB0aW1lIG9wdGlvbnMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgc3RlcCBpbnRlcnZhbCBhbmQgbG9jYWxlIHNldHRpbmdzIEFNL1BNLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IEFuIGFycmF5IG9mIHRpbWUgc3RyaW5ncyBpbiAnSEg6bW0nIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZVN0YW1wc0xpc3QoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBnZW5lcmF0ZVRpbWVTdGFtcHModGhpcy5zdGVwLCB0aGlzLnVzZUxvY2FsZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuXG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50O1xuICAgIGFjdGl2ZU9wdGlvbiAmJiB0aGlzLnNjcm9sbFRvQWN0aXZlT3B0aW9uKGFjdGl2ZU9wdGlvbiwgeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50aW1lU2VsZWN0ZWQoYWN0aXZlT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh0aW1lKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUgPz8gbnVsbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCk7XG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVPcHRpb24oaXNTZWxlY3RlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmF0ZU5lYXJlc3RUaW1lT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlT3B0aW9uKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciAmJiB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVOZWFyZXN0VGltZU9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IGlzTmVhcmVzdCA9IHRoaXMuZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlKTtcbiAgICAgIGlmIChpc05lYXJlc3QpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZU9wdGlvbihpc05lYXJlc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlOiBEYXRlKTogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXZhaWxhYmxlVGltZVNsb3RzID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBjb25zdCBuZWFyZXN0VGltZVZhbHVlID0gdGhpcy50aW1lcGlja2VyU2VydmljZS5maW5kQ2xvc2VzdERhdGUoXG4gICAgICBhdmFpbGFibGVUaW1lU2xvdHMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkgYXMgc3RyaW5nW10sXG4gICAgICBgJHtjdXJyZW50RGF0ZS5nZXRIb3VycygpfToke2N1cnJlbnREYXRlLmdldE1pbnV0ZXMoKX1gLFxuICAgICk7XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlVGltZVNsb3RzLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBuZWFyZXN0VGltZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB0aGlzLnVzZUxvY2FsZSk7XG4gICAgICB0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCBfb3B0czogU2Nyb2xsSW50b1ZpZXdPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvcHRpb24uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgb3B0aW9uLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgLi4uX29wdHMgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX3dyYXBwZXJcIj5cbiAgPGlucHV0IFt2YWx1ZV09XCJ2YWx1ZVwiIG9keFRpbWVwaWNrZXJDb250cm9sIHR5cGU9XCJ0ZXh0XCIgLz5cbjwvZGl2PlxuXG48b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC1uby1tYXJnaW5cIj5cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBjbGFzcz1cIm9keC10aW1lcGlja2VyX190cmlnZ2VyXCJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgYXJpYS1sYWJlbD1cIlNlbGVjdCB0aW1lXCJcbiAgICBbb2R4RHJvcGRvd25dPVwidGltZUxpc3RcIlxuICAgIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcsIGVuYWJsZUZhbGxiYWNrOiBmYWxzZSB9XCJcbiAgICBbb2R4RHJvcGRvd25UcmlnZ2VyRWxlbWVudF09XCJkcm9wZG93blRyaWdnZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgKG9keERyb3Bkb3duQmVmb3JlQ2xvc2UpPVwib25Ub3VjaGVkKClcIlxuICAgIChvZHhEcm9wZG93bkFmdGVyT3Blbik9XCJvbk9wZW4oKVwiXG4gID5cbiAgICA8b2R4LWljb24gbmFtZT1cImNoZXZyb24tZG93blwiPjwvb2R4LWljb24+XG4gIDwvYnV0dG9uPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI3RpbWVMaXN0PlxuICA8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX29wdGlvbi1saXN0XCIgcm9sZT1cImxpc3Rib3hcIj5cbiAgICA8b2R4LXRpbWVwaWNrZXItb3B0aW9uXG4gICAgICBbdmFsdWVdPVwidGltZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWluVGltZVJhbmdlKHRpbWUpXCJcbiAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHRpbWVTdGFtcHNMaXN0OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgKHNlbGVjdGVkKT1cInRpbWVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID57eyB0aW1lIH19PC9vZHgtdGltZXBpY2tlci1vcHRpb25cbiAgICA+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUVsRTs7Ozs7R0FLRztBQXFCSSxXQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLGlCQUFnQzs7SUFnQnZFOzs7T0FHRztJQUNILElBQ1csU0FBUyxDQUFDLEdBQVk7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUEwQkQ7UUFDRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUExREcsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUdSLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBUS9CLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQW9CMUM7OztXQUdHO1FBRUksU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVqQjs7O1dBR0c7UUFFSSxRQUFHLEdBQUcsT0FBTyxDQUFDO1FBRXJCOzs7V0FHRztRQUVJLFFBQUcsR0FBRyxPQUFPLENBQUM7SUFPckIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQXdCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2RyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBaUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsTUFBa0M7UUFDcEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFdBQVcsQ0FBQyxJQUFZO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFJUyxxQkFBcUIsQ0FBQyxLQUFvQjtRQUNsRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRO1lBQUUsT0FBTztRQUU5QyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQXVDLENBQUM7UUFDOUUsWUFBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVoRixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQzFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVTLHNCQUFzQjtRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVPLGtDQUFrQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWlDO1FBQ3RELElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRCxJQUFJLFNBQVMsRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsV0FBaUI7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUM3RCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQWEsRUFDNUQsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ3hELENBQUM7UUFFRixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWlDLEVBQUUsUUFBK0IsRUFBRTtRQUMvRixJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMzRCxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7K0dBOUtVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtHQW9CVixnQkFBZ0IsMEJBa0JoQixlQUFlLGdPQXJEeEI7WUFDVCxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUIsa0JBQWtCLENBQUMsT0FBTyxFQUFFO1lBQzVCO2dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQW1CLENBQUM7YUFDbkQ7U0FDRixvRUFnQlUsaUJBQWlCLDRFQStDakIsK0JBQStCLDZEQTVDNUIseUJBQXlCLHVFQ3BFekMsa25DQWtDQSwyQ0RrQlksVUFBVSwrQkFBRSxvQkFBb0Isa0ZBQUUsZUFBZSx3R0FBRSxjQUFjLDB0QkFBRSx5QkFBeUIseUZBQUUsYUFBYSxrSEFBRSwrQkFBK0I7O0FBSzNJLG1CQUFtQjtJQXBCL0IsWUFBWSxDQUFDLFlBQVksQ0FBQzs7R0FvQmQsbUJBQW1CLENBK0svQjs0RkEvS1ksbUJBQW1CO2tCQW5CL0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLGFBRWY7d0JBQ1Qsa0JBQWtCLENBQUMsT0FBTyxFQUFFO3dCQUM1QixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLCtCQUErQixDQUFDLFFBQ2pKO3dCQUNKLGlCQUFpQixFQUFFLHNDQUFzQztxQkFDMUQ7MEVBV2tCLFFBQVE7c0JBRDFCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUlsQixPQUFPO3NCQURoQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQVUvRCxTQUFTO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQW1CL0IsSUFBSTtzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFROUIsR0FBRztzQkFEVCxLQUFLO2dCQVFDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxTQUFTO3NCQURmLFNBQVM7dUJBQUMsK0JBQStCO2dCQXVEaEMscUJBQXFCO3NCQUY5QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBpc0Z1bmN0aW9uLCB0cmFja0J5SW5kZXgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lcGlja2VyU2VydmljZSB9IGZyb20gJy4vdGltZXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRJTUVQSUNLRVJfQ09OVFJPTCB9IGZyb20gJy4vdGltZXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBnZW5lcmF0ZVRpbWVTdGFtcHMgfSBmcm9tICcuL3V0aWxzL2dlbmVyYXRlLXRpbWUtc3RhbXBzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGltZSBwaWNrZXIgY29tcG9uZW50IGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBhIHRpbWUgZnJvbSBhIGRyb3Bkb3duIGxpc3QuXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhciBmb3JtcyBhbmQgc3VwcG9ydHMgY3VzdG9taXphdGlvbiBmb3IgbG9jYWxlLCB0aW1lIHJhbmdlLCBhbmQgc3RlcCBpbnRlcnZhbHMuXG4gKlxuICogQGV4dGVuZHMge0N1c3RvbUZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+fVxuICovXG5AQ1NTQ29tcG9uZW50KCd0aW1lcGlja2VyJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC10aW1lcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICd0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKSxcbiAgICBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRJTUVQSUNLRVJfQ09OVFJPTCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVwaWNrZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUsIFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQsIEljb25Db21wb25lbnQsIFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmVdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJlYWRvbmx5XSc6ICdyZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5IHx8IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyU2VydmljZSA9IGluamVjdChUaW1lcGlja2VyU2VydmljZSk7XG4gIHByaXZhdGUgX3VzZUxvY2FsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQga2V5TWFuYWdlcj86IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPE9wdGlvbkNvbnRyb2w8c3RyaW5nPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFja0J5SW5kZXggPSB0cmFja0J5SW5kZXg7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZHJlbihUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCB7IGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zITogUXVlcnlMaXN0PFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQ+O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSB0aW1lcGlja2VyIHNob3VsZCB1c2UgbG9jYWxlLXNwZWNpZmljIHRpbWUgZm9ybWF0cyBBTS9QTS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHVzZUxvY2FsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB2YWwpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHRpbWU7XG4gICAgfVxuICAgIHRoaXMuX3VzZUxvY2FsZSA9IHZhbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXNlTG9jYWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl91c2VMb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHN0ZXAgaW50ZXJ2YWwgYmV0d2VlbiB0aW1lIG9wdGlvbnMgaW4gbWludXRlcy5cbiAgICogQGRlZmF1bHQgMzBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzdGVwID0gMzA7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSB0aW1lIHZhbHVlIHRoYXQgY2FuIGJlIHNlbGVjdGVkICgnMDU6MDAnIG9yICcwNTowMCBBTScpLlxuICAgKiBAZGVmYXVsdCAnMDA6MDAnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWluID0gJzAwOjAwJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHRpbWUgdmFsdWUgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgKCcyMjowMCcgb3IgJzEwOjAwIFBNJykuXG4gICAqIEBkZWZhdWx0ICcyMzo1OSdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXggPSAnMjM6NTknO1xuXG4gIEBWaWV3Q2hpbGQoVGltZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIGRhdGVGaWVsZD86IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpO1xuICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+Pih0aGlzLm9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNUaW1lT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG9wdGlvbi52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Rpb24gb2YgYSB0aW1lIG9wdGlvbiBmcm9tIHRoZSBkcm9wZG93biwgdXBkYXRpbmcgdGhlIGlucHV0IGZpZWxkIGFuZCBjbG9zaW5nIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHtUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50fSBvcHRpb24gLSBUaGUgc2VsZWN0ZWQgdGltZSBvcHRpb24gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHRpbWVTZWxlY3RlZChvcHRpb24/OiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdChvcHRpb24uZ2V0TGFiZWwoKSwgdGhpcy51c2VMb2NhbGUpO1xuICAgIHRoaXMuZGF0ZUZpZWxkICYmICh0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUpO1xuICAgIHRoaXMuZHJvcGRvd24/LmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdGltZSBpcyB3aXRoaW4gdGhlIGFsbG93ZWQgdGltZSByYW5nZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZSB0byBjaGVjaywgaW4gJ0hIOm1tJyBvciAnSEg6bW0gQU0vUE0nIGZvcm1hdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHRpbWUgaXMgd2l0aGluIHRoZSByYW5nZTsgb3RoZXJ3aXNlLCBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBpblRpbWVSYW5nZSh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aW1lcGlja2VyU2VydmljZS5tYXhWYWxpZGF0aW9uKHRpbWUsIHRoaXMubWF4KSAmJiB0aGlzLnRpbWVwaWNrZXJTZXJ2aWNlLm1pblZhbGlkYXRpb24odGltZSwgdGhpcy5taW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgbGlzdCBvZiB0aW1lIG9wdGlvbnMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgc3RlcCBpbnRlcnZhbCBhbmQgbG9jYWxlIHNldHRpbmdzIEFNL1BNLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IEFuIGFycmF5IG9mIHRpbWUgc3RyaW5ncyBpbiAnSEg6bW0nIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZVN0YW1wc0xpc3QoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBnZW5lcmF0ZVRpbWVTdGFtcHModGhpcy5zdGVwLCB0aGlzLnVzZUxvY2FsZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuXG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50O1xuICAgIGFjdGl2ZU9wdGlvbiAmJiB0aGlzLnNjcm9sbFRvQWN0aXZlT3B0aW9uKGFjdGl2ZU9wdGlvbiwgeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50aW1lU2VsZWN0ZWQoYWN0aXZlT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh0aW1lKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUgPz8gbnVsbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCk7XG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVPcHRpb24oaXNTZWxlY3RlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmF0ZU5lYXJlc3RUaW1lT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlT3B0aW9uKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciAmJiB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVOZWFyZXN0VGltZU9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IGlzTmVhcmVzdCA9IHRoaXMuZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlKTtcbiAgICAgIGlmIChpc05lYXJlc3QpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZU9wdGlvbihpc05lYXJlc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlOiBEYXRlKTogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXZhaWxhYmxlVGltZVNsb3RzID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBjb25zdCBuZWFyZXN0VGltZVZhbHVlID0gdGhpcy50aW1lcGlja2VyU2VydmljZS5maW5kQ2xvc2VzdERhdGUoXG4gICAgICBhdmFpbGFibGVUaW1lU2xvdHMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkgYXMgc3RyaW5nW10sXG4gICAgICBgJHtjdXJyZW50RGF0ZS5nZXRIb3VycygpfToke2N1cnJlbnREYXRlLmdldE1pbnV0ZXMoKX1gLFxuICAgICk7XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlVGltZVNsb3RzLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBuZWFyZXN0VGltZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB0aGlzLnVzZUxvY2FsZSk7XG4gICAgICB0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCBfb3B0czogU2Nyb2xsSW50b1ZpZXdPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvcHRpb24uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgb3B0aW9uLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgLi4uX29wdHMgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX3dyYXBwZXJcIj5cbiAgPGlucHV0IFt2YWx1ZV09XCJ2YWx1ZVwiIG9keFRpbWVwaWNrZXJDb250cm9sIHR5cGU9XCJ0ZXh0XCIgLz5cbjwvZGl2PlxuXG48b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC1uby1tYXJnaW5cIj5cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBjbGFzcz1cIm9keC10aW1lcGlja2VyX190cmlnZ2VyXCJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgYXJpYS1sYWJlbD1cIlNlbGVjdCB0aW1lXCJcbiAgICBbb2R4RHJvcGRvd25dPVwidGltZUxpc3RcIlxuICAgIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcsIGVuYWJsZUZhbGxiYWNrOiBmYWxzZSB9XCJcbiAgICBbb2R4RHJvcGRvd25UcmlnZ2VyRWxlbWVudF09XCJkcm9wZG93blRyaWdnZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgKG9keERyb3Bkb3duQmVmb3JlQ2xvc2UpPVwib25Ub3VjaGVkKClcIlxuICAgIChvZHhEcm9wZG93bkFmdGVyT3Blbik9XCJvbk9wZW4oKVwiXG4gID5cbiAgICA8b2R4LWljb24gbmFtZT1cImNoZXZyb24tZG93blwiIC8+XG4gIDwvYnV0dG9uPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI3RpbWVMaXN0PlxuICA8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX29wdGlvbi1saXN0XCIgcm9sZT1cImxpc3Rib3hcIj5cbiAgICA8b2R4LXRpbWVwaWNrZXItb3B0aW9uXG4gICAgICBbdmFsdWVdPVwidGltZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWluVGltZVJhbmdlKHRpbWUpXCJcbiAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHRpbWVTdGFtcHNMaXN0OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgKHNlbGVjdGVkKT1cInRpbWVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID57eyB0aW1lIH19PC9vZHgtdGltZXBpY2tlci1vcHRpb25cbiAgICA+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -87,7 +87,6 @@ class ConnectedOverlayRef {
87
87
  }
88
88
  }
89
89
 
90
- var ConnectedOverlayComponent_1;
91
90
  let ConnectedOverlayComponent = class ConnectedOverlayComponent {
92
91
  constructor() {
93
92
  this.renderer = inject(Renderer2);
@@ -98,12 +97,6 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
98
97
  this.options = DefaultConnectedOverlayOptions;
99
98
  this.closed = new Subject();
100
99
  }
101
- static { ConnectedOverlayComponent_1 = this; }
102
- static { this.Z_LAYER = 0; }
103
- ngOnInit() {
104
- ConnectedOverlayComponent_1.Z_LAYER++;
105
- this.element.nativeElement.style.setProperty('--odx-cdk-connected-overlay-current-z-layer', ConnectedOverlayComponent_1.Z_LAYER.toFixed(0));
106
- }
107
100
  ngOnChanges(changes) {
108
101
  if (hasChanged(changes, ['options'], false)) {
109
102
  this.overlaySide = getSide(this.options.position);
@@ -115,7 +108,6 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
115
108
  }
116
109
  ngOnDestroy() {
117
110
  this.stopPositionUpdater();
118
- ConnectedOverlayComponent_1.Z_LAYER--;
119
111
  }
120
112
  onAnimationStart({ fromState, toState }) {
121
113
  if (!fromState)
@@ -168,7 +160,7 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
168
160
  ]),
169
161
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
162
  };
171
- ConnectedOverlayComponent = ConnectedOverlayComponent_1 = __decorate([
163
+ ConnectedOverlayComponent = __decorate([
172
164
  CSSComponent('cdk-connected-overlay')
173
165
  ], ConnectedOverlayComponent);
174
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectedOverlayComponent, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-connected-overlay.mjs","sources":["../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/compute-overlay-position.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-options.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-ref.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.html","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.service.ts","../../../../libs/angular/cdk/connected-overlay/src/odx-angular-cdk-connected-overlay.ts"],"sourcesContent":["import { ComputePositionReturn, VirtualElement, arrow, computePosition, flip, hide, shift, size, offset as withOffset } from '@floating-ui/dom';\nimport { applyStyles, cssTranslate, getOppositeSide, getSide, px } from '@odx/angular/utils';\nimport { ConnectedOverlayOptions } from '../models';\n\nexport async function computeOverlayPosition(\n referenceElement: VirtualElement,\n overlayElement: HTMLElement,\n contentElement: HTMLElement,\n arrowElement: HTMLElement,\n options: ConnectedOverlayOptions,\n): Promise<ComputePositionReturn> {\n const { position, offset, outerPadding, matchReferenceWidth, enableFallback, fallbackAxisSideDirection, strategy, minHeight } = options;\n const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;\n const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];\n const flipMiddleWare = enableFallback ? [flip({ fallbackAxisSideDirection })] : [];\n\n return computePosition(referenceElement, overlayElement, {\n strategy,\n placement: position,\n middleware: [\n withOffset(Math.max(offset, arrowSize + offset)),\n shift({ padding: outerPadding }),\n ...flipMiddleWare,\n size({\n padding: outerPadding,\n apply: ({ availableHeight, availableWidth, rects }) => {\n const variablePrefix = '--odx-cdk-connected-overlay';\n contentElement.style.setProperty(`${variablePrefix}-max-height`, px(availableHeight));\n contentElement.style.setProperty(`${variablePrefix}-max-width`, px(availableWidth));\n contentElement.style.setProperty(`${variablePrefix}-min-height`, minHeight ? px(Math.min(availableHeight, minHeight)) : null);\n contentElement.style.setProperty(`${variablePrefix}-min-width`, matchReferenceWidth ? px(rects.reference.width) : null);\n },\n }),\n ...arrowMiddleware,\n hide(),\n ],\n }).then((result) => {\n applyStyles(overlayElement, {\n top: '0',\n left: '0',\n transform: cssTranslate(px(result.x), px(result.y)),\n });\n if (options.hiddenClass) {\n overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);\n }\n if (options.showArrow) {\n const overlaySide = getSide(result.placement);\n const arrowSide = getOppositeSide(result.placement);\n applyStyles(arrowElement, {\n display: null,\n top: px(result.middlewareData.arrow?.y),\n left: px(result.middlewareData.arrow?.x),\n [arrowSide]: px(-arrowSize / 2),\n [overlaySide]: null,\n });\n } else {\n applyStyles(arrowElement, { display: 'none' });\n }\n\n return result;\n });\n}\n","import { Strategy } from '@floating-ui/dom';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { Position } from '@odx/angular/utils';\n\nexport interface ConnectedOverlayOptions {\n content?: DynamicContent | null;\n context?: Record<string, unknown>;\n containerClass?: string | null;\n hiddenClass: string | null;\n enableFallback: boolean;\n fallbackAxisSideDirection: 'start' | 'end';\n matchReferenceWidth: boolean;\n minHeight?: number | null;\n offset: number;\n outerPadding: number;\n position: Position;\n strategy: Strategy;\n showArrow?: boolean;\n hooks?: {\n beforeOpen?: () => void;\n afterOpen?: () => void;\n beforeClose?: () => void;\n afterClose?: () => void;\n };\n}\n\nexport const DefaultConnectedOverlayOptions: ConnectedOverlayOptions = {\n hiddenClass: 'is-hidden',\n enableFallback: false,\n fallbackAxisSideDirection: 'start',\n matchReferenceWidth: false,\n offset: 8,\n outerPadding: 12,\n position: Position.BOTTOM,\n strategy: 'fixed',\n};\n","import { DynamicViewRef } from '@odx/angular/cdk/dynamic-view';\nimport { EMPTY, Observable } from 'rxjs';\nimport { ConnectedOverlayComponent } from '../connected-overlay.component';\nimport { ConnectedOverlayOptions } from './connected-overlay-options';\n\nexport class ConnectedOverlayRef {\n public readonly element = this.dynamicViewRef.getElement();\n public readonly onClose$: Observable<void> = this.dynamicViewRef.getContext().closed ?? EMPTY;\n\n constructor(private readonly dynamicViewRef: DynamicViewRef<typeof ConnectedOverlayComponent>) {}\n\n public update(options: Partial<ConnectedOverlayOptions>) {\n this.dynamicViewRef.update({ options: options as ConnectedOverlayOptions });\n }\n\n public close(): void {\n this.dynamicViewRef.destroy();\n }\n}\n","import { AnimationEvent, group, transition, trigger, useAnimation } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { VirtualElement, autoUpdate } from '@floating-ui/dom';\nimport { CoreModule } from '@odx/angular';\nimport {\n fadeIn,\n fadeOut,\n slideInLeft,\n slideInRight,\n slideInUp,\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n waitForChildAnimations,\n} from '@odx/angular/animations';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { NgChanges, Side, getSide, hasChanged, injectElement, isPresent } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\nimport { computeOverlayPosition } from './helpers';\nimport { ConnectedOverlayOptions, DefaultConnectedOverlayOptions } from './models';\n\n@CSSComponent('cdk-connected-overlay')\n@Component({\n standalone: true,\n selector: 'odx-connected-overlay',\n imports: [CoreModule, DynamicViewDirective],\n templateUrl: 'connected-overlay.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'true',\n },\n animations: [\n trigger('hostAnimation', [waitForChildAnimations]),\n trigger('contentAnimation', [\n transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n ]),\n ],\n})\nexport class ConnectedOverlayComponent implements OnInit, OnChanges, OnDestroy {\n private static Z_LAYER = 0;\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private positionUpdater: (() => void) | null = null;\n\n protected readonly injector = inject(Injector);\n protected overlaySide?: Side;\n\n @ViewChild('content', { static: true })\n protected contentElement!: ElementRef<HTMLElement>;\n\n @ViewChild('arrow', { static: true })\n protected arrowElement!: ElementRef<HTMLElement>;\n\n public readonly element = injectElement();\n\n @Input()\n public referenceElement!: VirtualElement;\n\n @Input()\n public options: ConnectedOverlayOptions = DefaultConnectedOverlayOptions;\n\n @Output()\n public closed = new Subject<void>();\n\n public ngOnInit(): void {\n ConnectedOverlayComponent.Z_LAYER++;\n this.element.nativeElement.style.setProperty('--odx-cdk-connected-overlay-current-z-layer', ConnectedOverlayComponent.Z_LAYER.toFixed(0));\n }\n\n public ngOnChanges(changes: NgChanges<ConnectedOverlayComponent>): void {\n if (hasChanged(changes, ['options'], false)) {\n this.overlaySide = getSide(this.options.position);\n }\n if (hasChanged(changes, ['referenceElement', 'options'], false)) {\n this.stopPositionUpdater();\n this.startPositionUpdater();\n }\n }\n\n public ngOnDestroy(): void {\n this.stopPositionUpdater();\n ConnectedOverlayComponent.Z_LAYER--;\n }\n\n protected onAnimationStart({ fromState, toState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.options.hooks?.beforeOpen?.();\n } else if (toState === 'void') {\n this.options.hooks?.beforeClose?.();\n }\n }\n\n protected onAnimationDone({ fromState, toState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.options.hooks?.afterOpen?.();\n this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');\n } else if (toState === 'void') {\n this.options.hooks?.afterClose?.();\n }\n }\n\n private startPositionUpdater(): void {\n this.positionUpdater = this.zone.runOutsideAngular(() =>\n autoUpdate(this.referenceElement, this.element.nativeElement, () => this.updatePosition(), {\n elementResize: isPresent(window.ResizeObserver),\n }),\n );\n }\n\n private stopPositionUpdater(): void {\n this.positionUpdater?.();\n this.positionUpdater = null;\n }\n\n private async updatePosition(): Promise<void> {\n return computeOverlayPosition(\n this.referenceElement,\n this.element.nativeElement,\n this.contentElement.nativeElement,\n this.arrowElement.nativeElement,\n this.options,\n ).then(({ placement }) => {\n this.overlaySide = getSide(placement);\n });\n }\n}\n","<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n","import { inject, Injectable } from '@angular/core';\nimport { VirtualElement } from '@floating-ui/dom';\nimport { DynamicViewRenderingOptions, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from '@odx/angular/internal';\nimport { ConnectedOverlayComponent } from './connected-overlay.component';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, DefaultConnectedOverlayOptions } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectedOverlayService {\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public createOverlay(\n referenceElement: VirtualElement,\n options?: Partial<ConnectedOverlayOptions>,\n renderingOptions?: Partial<DynamicViewRenderingOptions>\n ): ConnectedOverlayRef {\n const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {\n ...renderingOptions,\n context: { options: deepmerge(DefaultConnectedOverlayOptions, options) as ConnectedOverlayOptions, referenceElement },\n });\n\n return new ConnectedOverlayRef(dynamicViewRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["offset","withOffset"],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-connected-overlay.mjs","sources":["../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/compute-overlay-position.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-options.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-ref.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.html","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.service.ts","../../../../libs/angular/cdk/connected-overlay/src/odx-angular-cdk-connected-overlay.ts"],"sourcesContent":["import { ComputePositionReturn, VirtualElement, arrow, computePosition, flip, hide, shift, size, offset as withOffset } from '@floating-ui/dom';\nimport { applyStyles, cssTranslate, getOppositeSide, getSide, px } from '@odx/angular/utils';\nimport { ConnectedOverlayOptions } from '../models';\n\nexport async function computeOverlayPosition(\n referenceElement: VirtualElement,\n overlayElement: HTMLElement,\n contentElement: HTMLElement,\n arrowElement: HTMLElement,\n options: ConnectedOverlayOptions,\n): Promise<ComputePositionReturn> {\n const { position, offset, outerPadding, matchReferenceWidth, enableFallback, fallbackAxisSideDirection, strategy, minHeight } = options;\n const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;\n const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];\n const flipMiddleWare = enableFallback ? [flip({ fallbackAxisSideDirection })] : [];\n\n return computePosition(referenceElement, overlayElement, {\n strategy,\n placement: position,\n middleware: [\n withOffset(Math.max(offset, arrowSize + offset)),\n shift({ padding: outerPadding }),\n ...flipMiddleWare,\n size({\n padding: outerPadding,\n apply: ({ availableHeight, availableWidth, rects }) => {\n const variablePrefix = '--odx-cdk-connected-overlay';\n contentElement.style.setProperty(`${variablePrefix}-max-height`, px(availableHeight));\n contentElement.style.setProperty(`${variablePrefix}-max-width`, px(availableWidth));\n contentElement.style.setProperty(`${variablePrefix}-min-height`, minHeight ? px(Math.min(availableHeight, minHeight)) : null);\n contentElement.style.setProperty(`${variablePrefix}-min-width`, matchReferenceWidth ? px(rects.reference.width) : null);\n },\n }),\n ...arrowMiddleware,\n hide(),\n ],\n }).then((result) => {\n applyStyles(overlayElement, {\n top: '0',\n left: '0',\n transform: cssTranslate(px(result.x), px(result.y)),\n });\n if (options.hiddenClass) {\n overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);\n }\n if (options.showArrow) {\n const overlaySide = getSide(result.placement);\n const arrowSide = getOppositeSide(result.placement);\n applyStyles(arrowElement, {\n display: null,\n top: px(result.middlewareData.arrow?.y),\n left: px(result.middlewareData.arrow?.x),\n [arrowSide]: px(-arrowSize / 2),\n [overlaySide]: null,\n });\n } else {\n applyStyles(arrowElement, { display: 'none' });\n }\n\n return result;\n });\n}\n","import { Strategy } from '@floating-ui/dom';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { Position } from '@odx/angular/utils';\n\nexport interface ConnectedOverlayOptions {\n content?: DynamicContent | null;\n context?: Record<string, unknown>;\n containerClass?: string | null;\n hiddenClass: string | null;\n enableFallback: boolean;\n fallbackAxisSideDirection: 'start' | 'end';\n matchReferenceWidth: boolean;\n minHeight?: number | null;\n offset: number;\n outerPadding: number;\n position: Position;\n strategy: Strategy;\n showArrow?: boolean;\n hooks?: {\n beforeOpen?: () => void;\n afterOpen?: () => void;\n beforeClose?: () => void;\n afterClose?: () => void;\n };\n}\n\nexport const DefaultConnectedOverlayOptions: ConnectedOverlayOptions = {\n hiddenClass: 'is-hidden',\n enableFallback: false,\n fallbackAxisSideDirection: 'start',\n matchReferenceWidth: false,\n offset: 8,\n outerPadding: 12,\n position: Position.BOTTOM,\n strategy: 'fixed',\n};\n","import { DynamicViewRef } from '@odx/angular/cdk/dynamic-view';\nimport { EMPTY, Observable } from 'rxjs';\nimport { ConnectedOverlayComponent } from '../connected-overlay.component';\nimport { ConnectedOverlayOptions } from './connected-overlay-options';\n\nexport class ConnectedOverlayRef {\n public readonly element = this.dynamicViewRef.getElement();\n public readonly onClose$: Observable<void> = this.dynamicViewRef.getContext().closed ?? EMPTY;\n\n constructor(private readonly dynamicViewRef: DynamicViewRef<typeof ConnectedOverlayComponent>) {}\n\n public update(options: Partial<ConnectedOverlayOptions>) {\n this.dynamicViewRef.update({ options: options as ConnectedOverlayOptions });\n }\n\n public close(): void {\n this.dynamicViewRef.destroy();\n }\n}\n","import { AnimationEvent, group, transition, trigger, useAnimation } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { VirtualElement, autoUpdate } from '@floating-ui/dom';\nimport { CoreModule } from '@odx/angular';\nimport {\n fadeIn,\n fadeOut,\n slideInLeft,\n slideInRight,\n slideInUp,\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n waitForChildAnimations,\n} from '@odx/angular/animations';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { NgChanges, Side, getSide, hasChanged, injectElement, isPresent } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\nimport { computeOverlayPosition } from './helpers';\nimport { ConnectedOverlayOptions, DefaultConnectedOverlayOptions } from './models';\n\n@CSSComponent('cdk-connected-overlay')\n@Component({\n standalone: true,\n selector: 'odx-connected-overlay',\n imports: [CoreModule, DynamicViewDirective],\n templateUrl: 'connected-overlay.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'true',\n },\n animations: [\n trigger('hostAnimation', [waitForChildAnimations]),\n trigger('contentAnimation', [\n transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n ]),\n ],\n})\nexport class ConnectedOverlayComponent implements OnChanges, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private positionUpdater: (() => void) | null = null;\n\n protected readonly injector = inject(Injector);\n protected overlaySide?: Side;\n\n @ViewChild('content', { static: true })\n protected contentElement!: ElementRef<HTMLElement>;\n\n @ViewChild('arrow', { static: true })\n protected arrowElement!: ElementRef<HTMLElement>;\n\n public readonly element = injectElement();\n\n @Input()\n public referenceElement!: VirtualElement;\n\n @Input()\n public options: ConnectedOverlayOptions = DefaultConnectedOverlayOptions;\n\n @Output()\n public closed = new Subject<void>();\n\n public ngOnChanges(changes: NgChanges<ConnectedOverlayComponent>): void {\n if (hasChanged(changes, ['options'], false)) {\n this.overlaySide = getSide(this.options.position);\n }\n if (hasChanged(changes, ['referenceElement', 'options'], false)) {\n this.stopPositionUpdater();\n this.startPositionUpdater();\n }\n }\n\n public ngOnDestroy(): void {\n this.stopPositionUpdater();\n }\n\n protected onAnimationStart({ fromState, toState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.options.hooks?.beforeOpen?.();\n } else if (toState === 'void') {\n this.options.hooks?.beforeClose?.();\n }\n }\n\n protected onAnimationDone({ fromState, toState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.options.hooks?.afterOpen?.();\n this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');\n } else if (toState === 'void') {\n this.options.hooks?.afterClose?.();\n }\n }\n\n private startPositionUpdater(): void {\n this.positionUpdater = this.zone.runOutsideAngular(() =>\n autoUpdate(this.referenceElement, this.element.nativeElement, () => this.updatePosition(), {\n elementResize: isPresent(window.ResizeObserver),\n }),\n );\n }\n\n private stopPositionUpdater(): void {\n this.positionUpdater?.();\n this.positionUpdater = null;\n }\n\n private async updatePosition(): Promise<void> {\n return computeOverlayPosition(\n this.referenceElement,\n this.element.nativeElement,\n this.contentElement.nativeElement,\n this.arrowElement.nativeElement,\n this.options,\n ).then(({ placement }) => {\n this.overlaySide = getSide(placement);\n });\n }\n}\n","<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n","import { inject, Injectable } from '@angular/core';\nimport { VirtualElement } from '@floating-ui/dom';\nimport { DynamicViewRenderingOptions, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from '@odx/angular/internal';\nimport { ConnectedOverlayComponent } from './connected-overlay.component';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, DefaultConnectedOverlayOptions } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectedOverlayService {\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public createOverlay(\n referenceElement: VirtualElement,\n options?: Partial<ConnectedOverlayOptions>,\n renderingOptions?: Partial<DynamicViewRenderingOptions>\n ): ConnectedOverlayRef {\n const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {\n ...renderingOptions,\n context: { options: deepmerge(DefaultConnectedOverlayOptions, options) as ConnectedOverlayOptions, referenceElement },\n });\n\n return new ConnectedOverlayRef(dynamicViewRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["offset","withOffset"],"mappings":"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"}
@@ -37,7 +37,7 @@ let CheckboxComponent = class CheckboxComponent extends CheckBoxControl {
37
37
  this.checkedChange.next(this.checked);
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: CheckboxComponent, isStandalone: true, selector: "odx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute] }, outputs: { indeterminateChange: "indeterminateChange" }, host: { properties: { "class.is-active": "checked || indeterminate" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\"></odx-icon>\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content></ng-content>\n </div>\n</label>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: CheckboxComponent, isStandalone: true, selector: "odx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute] }, outputs: { indeterminateChange: "indeterminateChange" }, host: { properties: { "class.is-active": "checked || indeterminate" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\" />\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content />\n <ng-content select=\".odx-checkbox__subtitle\" />\n </div>\n</label>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
41
41
  };
42
42
  __decorate([
43
43
  CSSModifier(),
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
51
51
  type: Component,
52
52
  args: [{ standalone: true, selector: 'odx-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [IconComponent, ControlDirective], providers: [ReadonlyController.connect()], hostDirectives: [WithDisabledState], host: {
53
53
  '[class.is-active]': 'checked || indeterminate',
54
- }, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\"></odx-icon>\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content></ng-content>\n </div>\n</label>\n" }]
54
+ }, template: "<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\" />\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content />\n <ng-content select=\".odx-checkbox__subtitle\" />\n </div>\n</label>\n" }]
55
55
  }], propDecorators: { indeterminate: [{
56
56
  type: Input,
57
57
  args: [{ transform: booleanAttribute }]
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-checkbox.mjs","sources":["../../../../libs/angular/components/checkbox/src/lib/checkbox.component.ts","../../../../libs/angular/components/checkbox/src/lib/checkbox.component.html","../../../../libs/angular/components/checkbox/src/lib/checkbox.validator.ts","../../../../libs/angular/components/checkbox/src/lib/checkbox.module.ts","../../../../libs/angular/components/checkbox/src/odx-angular-components-checkbox.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ReadonlyController, WithDisabledState } from '@odx/angular';\nimport { CheckBoxControl } from '@odx/angular/cdk/checkbox-control';\nimport { ControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\n\n@CSSComponent('checkbox')\n@Component({\n standalone: true,\n selector: 'odx-checkbox',\n templateUrl: 'checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent, ControlDirective],\n providers: [ReadonlyController.connect()],\n hostDirectives: [WithDisabledState],\n host: {\n '[class.is-active]': 'checked || indeterminate',\n },\n})\nexport class CheckboxComponent extends CheckBoxControl {\n private isIndeterminate = false;\n\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public set indeterminate(value: boolean) {\n if (this.isIndeterminate !== value) {\n this.isIndeterminate = value;\n this.indeterminateChange.emit(this.isIndeterminate);\n }\n }\n\n public get indeterminate(): boolean {\n return this.isIndeterminate;\n }\n\n @Output()\n public readonly indeterminateChange = new EventEmitter<boolean>();\n\n public override get ariaChecked(): string {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n public get modifierIcon(): string {\n return this.indeterminate ? 'minus' : 'check';\n }\n\n public override onChanged(event: Event): void {\n event.stopPropagation();\n this.indeterminate = false;\n super.updateValue((event.target as HTMLInputElement).checked);\n this.checkedChange.next(this.checked);\n }\n}\n","<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\"></odx-icon>\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content></ng-content>\n </div>\n</label>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n standalone: true,\n selector: 'odx-checkbox[required][formControlName], odx-checkbox[required][formControl], odx-checkbox[required][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CheckboxValidator),\n multi: true,\n },\n ],\n})\nexport class CheckboxValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CheckboxComponent } from './checkbox.component';\nimport { CheckboxValidator } from './checkbox.validator';\n\nconst modules = [CheckboxComponent, CheckboxValidator];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-checkbox.mjs","sources":["../../../../libs/angular/components/checkbox/src/lib/checkbox.component.ts","../../../../libs/angular/components/checkbox/src/lib/checkbox.component.html","../../../../libs/angular/components/checkbox/src/lib/checkbox.validator.ts","../../../../libs/angular/components/checkbox/src/lib/checkbox.module.ts","../../../../libs/angular/components/checkbox/src/odx-angular-components-checkbox.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ReadonlyController, WithDisabledState } from '@odx/angular';\nimport { CheckBoxControl } from '@odx/angular/cdk/checkbox-control';\nimport { ControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\n\n@CSSComponent('checkbox')\n@Component({\n standalone: true,\n selector: 'odx-checkbox',\n templateUrl: 'checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent, ControlDirective],\n providers: [ReadonlyController.connect()],\n hostDirectives: [WithDisabledState],\n host: {\n '[class.is-active]': 'checked || indeterminate',\n },\n})\nexport class CheckboxComponent extends CheckBoxControl {\n private isIndeterminate = false;\n\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public set indeterminate(value: boolean) {\n if (this.isIndeterminate !== value) {\n this.isIndeterminate = value;\n this.indeterminateChange.emit(this.isIndeterminate);\n }\n }\n\n public get indeterminate(): boolean {\n return this.isIndeterminate;\n }\n\n @Output()\n public readonly indeterminateChange = new EventEmitter<boolean>();\n\n public override get ariaChecked(): string {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n public get modifierIcon(): string {\n return this.indeterminate ? 'minus' : 'check';\n }\n\n public override onChanged(event: Event): void {\n event.stopPropagation();\n this.indeterminate = false;\n super.updateValue((event.target as HTMLInputElement).checked);\n this.checkedChange.next(this.checked);\n }\n}\n","<label class=\"odx-checkbox__label\">\n <input\n odxControl\n class=\"odx-checkbox__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [attr.tabindex]=\"tabindex || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [indeterminate]=\"indeterminate\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-checkbox__indicator\">\n <odx-icon [name]=\"modifierIcon\" iconSet=\"core\" />\n </div>\n <div class=\"odx-checkbox__content\">\n <ng-content />\n <ng-content select=\".odx-checkbox__subtitle\" />\n </div>\n</label>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n standalone: true,\n selector: 'odx-checkbox[required][formControlName], odx-checkbox[required][formControl], odx-checkbox[required][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CheckboxValidator),\n multi: true,\n },\n ],\n})\nexport class CheckboxValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CheckboxComponent } from './checkbox.component';\nimport { CheckboxValidator } from './checkbox.validator';\n\nconst modules = [CheckboxComponent, CheckboxValidator];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class CheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -262,7 +262,7 @@ let TimepickerInputControlDirective = class TimepickerInputControlDirective exte
262
262
  return value;
263
263
  }
264
264
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimepickerInputControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
265
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimepickerInputControlDirective, isStandalone: true, selector: "input[odxTimepickerControl]", host: { properties: { "attr.readonly": "isReadonly || null", "attr.placeholder": "placeholder" } }, providers: [provideNgxMask(), NgxMaskPipe], usesInheritance: true, hostDirectives: [{ directive: i1.WithTabIndex }], ngImport: i0 }); }
265
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TimepickerInputControlDirective, isStandalone: true, selector: "input[odxTimepickerControl]", host: { properties: { "attr.readonly": "isReadonly || null", "attr.placeholder": "placeholder" } }, providers: [provideNgxMask(), NgxMaskPipe], usesInheritance: true, hostDirectives: [{ directive: i1.WithTabIndex }, { directive: i1.WithDisabledState }], ngImport: i0 }); }
266
266
  };
267
267
  TimepickerInputControlDirective = __decorate([
268
268
  CSSComponent('timepicker__control')
@@ -277,7 +277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
277
277
  '[attr.placeholder]': 'placeholder',
278
278
  },
279
279
  providers: [provideNgxMask(), NgxMaskPipe],
280
- hostDirectives: [WithTabIndex],
280
+ hostDirectives: [WithTabIndex, WithDisabledState],
281
281
  }]
282
282
  }] });
283
283
 
@@ -481,7 +481,7 @@ let TimepickerComponent = class TimepickerComponent extends CustomFormControl {
481
481
  provide: TIMEPICKER_CONTROL,
482
482
  useExisting: forwardRef(() => TimepickerComponent_1),
483
483
  },
484
- ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
484
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
485
485
  };
486
486
  TimepickerComponent = TimepickerComponent_1 = __decorate([
487
487
  CSSComponent('timepicker'),
@@ -498,7 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
498
498
  },
499
499
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [A11yModule, ActionGroupComponent, ButtonComponent, DropdownModule, TimepickerOptionComponent, IconComponent, TimepickerInputControlDirective], host: {
500
500
  '[attr.readonly]': 'readonlyController?.readonly || null',
501
- }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n" }]
501
+ }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n" }]
502
502
  }], ctorParameters: function () { return []; }, propDecorators: { dropdown: [{
503
503
  type: ViewChild,
504
504
  args: [DropdownDirective]
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-timepicker.mjs","sources":["../../../../libs/angular/components/timepicker/src/lib/timepicker.token.ts","../../../../libs/angular/components/timepicker/src/lib/components/timepicker-option.component.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.service.ts","../../../../libs/angular/components/timepicker/src/lib/utils/ngx-mask-helper.ts","../../../../libs/angular/components/timepicker/src/lib/directives/timepicker-input-control.directive.ts","../../../../libs/angular/components/timepicker/src/lib/utils/generate-time-stamps.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.component.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.component.html","../../../../libs/angular/components/timepicker/src/lib/timepicker.module.ts","../../../../libs/angular/components/timepicker/src/odx-angular-components-timepicker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TimepickerComponent } from './timepicker.component';\n\n/**\n * An InjectionToken used for injecting an instance of TimepickerComponent.\n * This token facilitates the decoupling of the TimepickerComponent's implementation from its consumption,\n * allowing for more flexible and maintainable code, especially in scenarios requiring custom time picker\n * behavior or appearance.\n */\nexport const TIMEPICKER_CONTROL = new InjectionToken<TimepickerComponent>('@odx/angular/components/timepicker::TimepickerComponent');\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { DisabledController, WithDisabledState, detectControllerChanges } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { TIMEPICKER_CONTROL } from '../timepicker.token';\n\n/**\n * Represents a selectable option within a timepicker component. This component allows for\n * individual time values to be selected from a dropdown menu as part of the timepicker interface.\n * It integrates with the timepicker's control to manage selection state and accessibility.\n *\n * @extends {OptionControl<string>}\n */\n@CSSComponent('timepicker-option')\n@Component({\n selector: 'odx-timepicker-option',\n template: `<ng-content></ng-content>`,\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DisabledController.connect()],\n hostDirectives: [WithDisabledState],\n})\nexport class TimepickerOptionComponent extends OptionControl<string> implements OnInit {\n private readonly timepicker = inject(TIMEPICKER_CONTROL);\n protected readonly disabledController = DisabledController.inject();\n\n public isSelected = false;\n public override isActive = false;\n\n public get disabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n /**\n * Emits an event when the option is selected, allowing the timepicker component to update its value and close the dropdown.\n */\n @Output()\n public selected = new EventEmitter<TimepickerOptionComponent>();\n\n constructor() {\n super();\n detectControllerChanges(this.timepicker).pipe(this.takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.isSelected = this.timepicker.isTimeOptionSelected(this);\n }\n\n protected selectOption(): void {\n this.selected.emit(this);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { isAfter, isBefore, isEqual } from 'date-fns';\n\n/**\n * Service to provide utility functions for timepicker components, including validation, placeholder generation, and finding the closest time.\n * It also handles locale-based time formatting.\n */\n@Injectable({ providedIn: 'root' })\nexport class TimepickerService {\n private readonly windowRef = inject(WindowRef);\n\n /**\n * Generates a placeholder string for time input fields.\n *\n * @param {boolean} apm - Specifies if the placeholder should include AM/PM notation.\n * @returns {string} The placeholder string.\n */\n public getPlaceholder(apm = false): string {\n return apm ? '--:-- --' : '--:--';\n }\n\n /**\n * Validates if the given time is less than or equal to a maximum time constraint.\n *\n * @param {string} time - The time to validate.\n * @param {string} max - The maximum allowable time.\n * @returns {boolean} True if the time is valid, false otherwise.\n */\n public maxValidation(time: string, max: string): boolean {\n const [targetValue, maxValue] = this.convertToDates([time, max]);\n return isBefore(targetValue, maxValue) || isEqual(targetValue, maxValue);\n }\n\n /**\n * Validates if the given time is greater than or equal to a minimum time constraint.\n *\n * @param {string} time - The time to validate.\n * @param {string} min - The minimum allowable time.\n * @returns {boolean} True if the time is valid, false otherwise.\n */\n public minValidation(time: string, min: string): boolean {\n const [targetValue, minValue] = this.convertToDates([time, min]);\n return isAfter(targetValue, minValue) || isEqual(targetValue, minValue);\n }\n\n /**\n * Finds the closest time to a target time from a list of times.\n *\n * @param {string[]} timeStamps - The list of times to search through.\n * @param {string} targetTime - The target time to find the closest match for.\n * @returns {string} The closest time to the target.\n */\n public findClosestDate(timeStamps: string[], targetTime: string): string {\n const [target] = this.convertToDates([targetTime]);\n const datesArray = this.convertToDates(timeStamps);\n\n const closestDate = datesArray.reduce((prev, curr) => {\n return Math.abs(curr.getTime() - target.getTime()) < Math.abs(prev.getTime() - target.getTime()) ? curr : prev;\n });\n\n return this.getLocalizedTimeFormat(`${closestDate.getHours()}:${closestDate.getMinutes()}`);\n }\n\n /**\n * Formats a time string to a localized time format.\n *\n * @param {string} time - The time string to format.\n * @param {boolean} hour12 - Specifies if the output should use 12-hour format with AM/PM notation.\n * @returns {string} The formatted time string.\n */\n public getLocalizedTimeFormat(time: string, hour12 = false): string {\n const locale = hour12 ? 'en-US' : 'en-GB';\n const [date] = this.convertToDates([time]);\n return new this.windowRef.nativeWindow.Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12,\n }).format(date);\n }\n\n /**\n * Converts an array of time strings to an array of Date objects.\n *\n * @param {string[]} times - The time strings to convert.\n * @returns {Date[]} An array of Date objects corresponding to the input times.\n * @private\n */\n private convertToDates(times: string[]): Date[] {\n return times.map((time) => new Date(`${time} 2022-12-19`));\n }\n}\n","/**\n * Processes and formats a time input value based on specific rules. It adjusts the input for valid time format,\n * especially focusing on single-digit hour inputs, ensuring minute values start with 0 if the last digit is greater\n * than 5, and appending 'M' to AM/PM indicators.\n *\n * @param {string} value - The current input value of the time field.\n * @param {InputEvent} event - The input event triggered by the user's interaction with the field.\n * @returns {string} The processed and potentially reformatted value.\n *\n * @example\n * // Prepend 0 to single-digit hours greater than 1\n * processInputValue(\"2\", { inputType: \"insertText\" }); // Returns \"02\"\n *\n * @example\n * // Ensure minute values are within valid ranges\n * processInputValue(\"11:8\", { inputType: \"insertText\" }); // Returns \"11:08\"\n *\n * @example\n * // Append 'M' to AM/PM indicators\n * processInputValue(\"2 p\", { inputType: \"insertText\" }); // Returns \"2 PM\"\n */\nexport function processInputValue(value: string, event: InputEvent): string {\n if (value.length === 1 && Number(value) > 1) {\n value = `0${value}`;\n } else if (value.length === 4 && Number(value.at(-1)) > 5) {\n value = `${value.slice(0, -1)}0${value.slice(-1)}`;\n }\n\n if (/[AaPp]/.test(value) && event.inputType === 'insertText') {\n value = `${value.toUpperCase()}M`;\n }\n\n return value;\n}\n","import { Directive, inject } from '@angular/core';\nimport { WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { IConfig, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\nimport { TimepickerService } from '../timepicker.service';\nimport { TIMEPICKER_CONTROL } from '../timepicker.token';\nimport { processInputValue } from '../utils/ngx-mask-helper';\n\n/**\n * Directive to enhance a standard input element for time picking, integrating mask functionality for time format.\n * It automatically adapts to locale settings provided by the enclosing `TimepickerComponent` to display time in the appropriate format.\n *\n * @extends {InputControlDirective}\n */\n@CSSComponent('timepicker__control')\n@Directive({\n standalone: true,\n selector: 'input[odxTimepickerControl]',\n host: {\n '[attr.readonly]': 'isReadonly || null',\n '[attr.placeholder]': 'placeholder',\n },\n providers: [provideNgxMask(), NgxMaskPipe],\n hostDirectives: [WithTabIndex],\n})\nexport class TimepickerInputControlDirective extends InputControlDirective {\n private readonly timepicker = inject(TIMEPICKER_CONTROL);\n private readonly timepickerService = inject(TimepickerService);\n protected readonly ngxMaskPipe = inject(NgxMaskPipe);\n\n /**\n * Configuration for the mask applied to the timepicker input. Adjusts based on locale settings.\n */\n protected get maskConfig(): Partial<IConfig> {\n return {\n validation: false,\n apm: this.timepicker.useLocale,\n leadZeroDateTime: !this.timepicker.useLocale,\n\n patterns: {\n A: { pattern: new RegExp('[AaPp]') },\n M: { pattern: new RegExp('M') },\n },\n };\n }\n\n /**\n * Stream of value changes for the input element, applying the mask and processing the input based on locale.\n */\n public override valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map((event) => this.applyMask(event)),\n );\n\n /**\n * Computes and returns the placeholder text for the input based on locale settings.\n *\n * @returns {string} The placeholder text for the input.\n */\n public get placeholder(): string {\n return this.timepickerService.getPlaceholder(this.timepicker.useLocale);\n }\n\n /**\n * Determines whether the timepicker input is readonly, based on the state of the parent timepicker component.\n *\n * @returns {boolean} `true` if the input should be readonly; otherwise, `false`.\n */\n protected get isReadonly(): boolean {\n return this.timepicker.isReadonly;\n }\n\n /**\n * Applies the time format mask to the input value, transforming and returning the masked value.\n *\n * @param {Event} event - The input event triggering the mask application.\n * @returns {string} The masked input value.\n */\n private applyMask(event: Event): string {\n const mask = this.timepicker.useLocale ? 'Hh:m0 AM' : 'Hh:m0';\n let value = this.ngxMaskPipe.transform(this.nativeElementValue, mask, this.maskConfig);\n if (this.timepicker.useLocale) {\n value = processInputValue(value, event as InputEvent);\n }\n this.nativeElementValue = value;\n return value;\n }\n}\n","/**\n * Generates an array of time stamps within a 24-hour period based on the specified step interval.\n * The time stamps can be formatted in 24-hour format or 12-hour format with AM/PM based on locale preference.\n *\n * @param {number} step - The interval, in minutes, between each time stamp.\n * @param {boolean} useLocale - Determines if the time stamps should use the 12-hour format with AM/PM (`true`) or the 24-hour format (`false`).\n * @returns {string[]} An array of formatted time stamps as strings.\n * @example\n * // Generate time stamps every 30 minutes using 24-hour format\n * generateTimeStamps(30, false);\n * // Returns [\"00:00\", \"00:30\", \"01:00\", ..., \"23:30\"]\n *\n * @example\n * // Generate time stamps every 60 minutes using 12-hour format with AM/PM\n * generateTimeStamps(60, true);\n * // Returns [\"12:00 AM\", \"01:00 AM\", ..., \"11:00 PM\"]\n */\nexport function generateTimeStamps(step: number, useLocale: boolean): string[] {\n const roundedStep = Math.round(step);\n\n return Array.from({ length: Math.ceil(24 * (60 / roundedStep)) }, (_, i) => {\n const hours = Math.floor((i * roundedStep) / 60);\n const minutes = (i * roundedStep) % 60;\n return formatTime(hours, minutes, useLocale);\n });\n}\n\n/**\n * Formats a given time as a string based on the specified hour, minute, and locale preference.\n * Can format time in either 24-hour format or 12-hour format with AM/PM.\n *\n * @param {number} hours - The hour component of the time.\n * @param {number} minutes - The minute component of the time.\n * @param {boolean} useLocale - Determines if the time should be formatted using the 12-hour format with AM/PM (`true`) or the 24-hour format (`false`).\n * @returns {string} The formatted time as a string.\n * @example\n * // Format time using 24-hour format\n * formatTime(14, 30, false); // \"14:30\"\n *\n * @example\n * // Format time using 12-hour format with AM/PM\n * formatTime(14, 30, true); // \"2:30 PM\"\n */\nfunction formatTime(hours: number, minutes: number, useLocale: boolean): string {\n if (useLocale) {\n const period = hours >= 12 ? 'PM' : 'AM';\n const displayHours = hours % 12 === 0 ? 12 : hours % 12;\n return `${displayHours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} ${period}`;\n } else {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n }\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n booleanAttribute,\n forwardRef,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { DisabledController, ReadonlyController } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, isFunction, trackByIndex, untilDestroyed } from '@odx/angular/utils';\nimport { TimepickerOptionComponent } from './components/timepicker-option.component';\nimport { TimepickerInputControlDirective } from './directives/timepicker-input-control.directive';\nimport { TimepickerService } from './timepicker.service';\nimport { TIMEPICKER_CONTROL } from './timepicker.token';\nimport { generateTimeStamps } from './utils/generate-time-stamps';\n\n/**\n * Represents a time picker component allowing users to select a time from a dropdown list.\n * This component integrates with Angular forms and supports customization for locale, time range, and step intervals.\n *\n * @extends {CustomFormControl<string | null>}\n */\n@CSSComponent('timepicker')\n@Component({\n standalone: true,\n selector: 'odx-timepicker',\n templateUrl: 'timepicker.component.html',\n providers: [\n DisabledController.connect(),\n ReadonlyController.connect(),\n {\n provide: TIMEPICKER_CONTROL,\n useExisting: forwardRef(() => TimepickerComponent),\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, DropdownModule, TimepickerOptionComponent, IconComponent, TimepickerInputControlDirective],\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n },\n})\nexport class TimepickerComponent extends CustomFormControl<string | null> implements AfterViewInit {\n private readonly timepickerService = inject(TimepickerService);\n private _useLocale = false;\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<string>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n protected readonly trackByIndex = trackByIndex;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n @ViewChildren(TimepickerOptionComponent, { emitDistinctChangesOnly: true })\n protected options!: QueryList<TimepickerOptionComponent>;\n\n public readonly element = injectElement();\n\n /**\n * Controls whether the timepicker should use locale-specific time formats AM/PM.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set useLocale(val: boolean) {\n if (this.value && this.dateField) {\n const time = this.timepickerService.getLocalizedTimeFormat(this.value, val);\n this.updateValue(time);\n this.dateField.nativeElementValue = time;\n }\n this._useLocale = val;\n }\n\n public get useLocale(): boolean {\n return this._useLocale;\n }\n\n /**\n * Controls the step interval between time options in minutes.\n * @default 30\n */\n @Input({ transform: numberAttribute })\n public step = 30;\n\n /**\n * Specifies the minimum time value that can be selected ('05:00' or '05:00 AM').\n * @default '00:00'\n */\n @Input()\n public min = '00:00';\n\n /**\n * Specifies the maximum time value that can be selected ('22:00' or '10:00 PM').\n * @default '23:59'\n */\n @Input()\n public max = '23:59';\n\n @ViewChild(TimepickerInputControlDirective)\n public dateField?: TimepickerInputControlDirective;\n\n constructor() {\n super(null);\n }\n\n public ngAfterViewInit(): void {\n this.handleDateFieldChanges();\n this.updateInputValue();\n }\n\n public onOpen(): void {\n this.keyManager = new ActiveDescendantKeyManager<OptionControl<string>>(this.options).withHomeAndEnd();\n this.setActiveOptionBasedOnCurrentValue();\n }\n\n public isTimeOptionSelected(option: TimepickerOptionComponent): boolean {\n return this.value === option.value;\n }\n\n /**\n * Handles the selection of a time option from the dropdown, updating the input field and closing the dropdown.\n *\n * @param {TimepickerOptionComponent} option - The selected time option component.\n */\n public timeSelected(option?: TimepickerOptionComponent): void {\n if (!option || option.disabled) return;\n const time = this.timepickerService.getLocalizedTimeFormat(option.getLabel(), this.useLocale);\n this.dateField && (this.dateField.nativeElementValue = time);\n this.updateValue(time);\n this.dropdown?.close();\n }\n\n /**\n * Determines whether the specified time is within the allowed time range.\n *\n * @param {string} time - The time to check, in 'HH:mm' or 'HH:mm AM/PM' format.\n * @returns {boolean} True if the time is within the range; otherwise, false.\n */\n public inTimeRange(time: string): boolean {\n return this.timepickerService.maxValidation(time, this.max) && this.timepickerService.minValidation(time, this.min);\n }\n\n /**\n * Generates the list of time options based on the configured step interval and locale settings AM/PM.\n *\n * @returns {string[]} An array of time strings in 'HH:mm' format.\n */\n public get timeStampsList(): string[] {\n return generateTimeStamps(this.step, this.useLocale);\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.readonlyController?.readonly) return;\n\n this.keyManager?.onKeydown(event);\n const activeOption = this.keyManager?.activeItem as TimepickerOptionComponent;\n activeOption && this.scrollToActiveOption(activeOption, { behavior: 'smooth' });\n\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.timeSelected(activeOption);\n }\n }\n\n protected handleDateFieldChanges(): void {\n this.dateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe((time) => this.updateValue(time ?? null));\n }\n\n private setActiveOptionBasedOnCurrentValue(): void {\n const isSelected = this.options.find((option) => option.isSelected);\n if (isSelected) {\n this.activateOption(isSelected);\n return;\n }\n\n this.activateNearestTimeOption();\n }\n\n private activateOption(option: TimepickerOptionComponent): void {\n this.keyManager && this.keyManager.setActiveItem(option);\n this.scrollToActiveOption(option);\n }\n\n private activateNearestTimeOption(): void {\n if (!this.value) {\n const currentDate = new Date();\n const isNearest = this.findNearestTimeOption(currentDate);\n if (isNearest) {\n this.activateOption(isNearest);\n }\n }\n }\n\n private findNearestTimeOption(currentDate: Date): TimepickerOptionComponent | undefined {\n const availableTimeSlots = this.options.filter((option) => !option.disabled);\n const nearestTimeValue = this.timepickerService.findClosestDate(\n availableTimeSlots.map((option) => option.value) as string[],\n `${currentDate.getHours()}:${currentDate.getMinutes()}`,\n );\n\n return availableTimeSlots.find((option) => option.value === nearestTimeValue);\n }\n\n private updateInputValue(): void {\n if (this.value && this.dateField) {\n const time = this.timepickerService.getLocalizedTimeFormat(this.value, this.useLocale);\n this.dateField.nativeElementValue = time;\n }\n }\n\n private scrollToActiveOption(option: TimepickerOptionComponent, _opts: ScrollIntoViewOptions = {}): void {\n if (isFunction(option.element.nativeElement.scrollIntoView)) {\n option.element.nativeElement.scrollIntoView({ block: 'center', ..._opts });\n }\n }\n}\n","<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { TimepickerOptionComponent } from './components/timepicker-option.component';\nimport { TimepickerInputControlDirective } from './directives/timepicker-input-control.directive';\nimport { TimepickerComponent } from './timepicker.component';\n\nconst modules = [TimepickerComponent, TimepickerInputControlDirective, TimepickerOptionComponent];\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class TimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA;;;;;AAKG;MACU,kBAAkB,GAAG,IAAI,cAAc,CAAsB,yDAAyD;;ACHnI;;;;;;AAMG;AAWI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,aAAqB,CAAA;AAOlE,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;KAC5C;AAQD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AAjBO,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAE7D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACV,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAMjC;;AAEG;AAEI,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAA6B,CAAC;AAI9D,QAAA,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KACtF;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KAC9D;IAES,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;+GA5BU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAHzB,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,wGAJ/B,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAO1B,yBAAyB,GAAA,UAAA,CAAA;IAVrC,YAAY,CAAC,mBAAmB,CAAC;;AAUrB,CAAA,EAAA,yBAAyB,CA6BrC,CAAA;4FA7BY,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACrC,oBAAA,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;oBACzC,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACpC,iBAAA,CAAA;0EAgBQ,QAAQ,EAAA,CAAA;sBADd,MAAM;;;ACjCT;;;AAGG;MAEU,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAiFhD,KAAA;AA/EC;;;;;AAKG;IACI,cAAc,CAAC,GAAG,GAAG,KAAK,EAAA;QAC/B,OAAO,GAAG,GAAG,UAAU,GAAG,OAAO,CAAC;KACnC;AAED;;;;;;AAMG;IACI,aAAa,CAAC,IAAY,EAAE,GAAW,EAAA;AAC5C,QAAA,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,QAAA,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;KAC1E;AAED;;;;;;AAMG;IACI,aAAa,CAAC,IAAY,EAAE,GAAW,EAAA;AAC5C,QAAA,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,QAAA,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;KACzE;AAED;;;;;;AAMG;IACI,eAAe,CAAC,UAAoB,EAAE,UAAkB,EAAA;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAI;AACnD,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACjH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAA,EAAG,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAA,EAAI,WAAW,CAAC,UAAU,EAAE,CAAA,CAAE,CAAC,CAAC;KAC7F;AAED;;;;;;AAMG;AACI,IAAA,sBAAsB,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK,EAAA;QACxD,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1C,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,QAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACjE,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;YACjB,MAAM;AACP,SAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACjB;AAED;;;;;;AAMG;AACK,IAAA,cAAc,CAAC,KAAe,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAA,EAAG,IAAI,CAAa,WAAA,CAAA,CAAC,CAAC,CAAC;KAC5D;+GAjFU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACRlC;;;;;;;;;;;;;;;;;;;;AAoBG;AACa,SAAA,iBAAiB,CAAC,KAAa,EAAE,KAAiB,EAAA;AAChE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3C,QAAA,KAAK,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC;AACrB,KAAA;AAAM,SAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACzD,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,KAAA;AAED,IAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE;AAC5D,QAAA,KAAK,GAAG,CAAG,EAAA,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;AACnC,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf;;ACvBA;;;;;AAKG;AAYI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,qBAAqB,CAAA;AAAnE,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAkBrD;;AAEG;AACa,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAChF,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACtC,CAAC;AAmCH,KAAA;AAzDC;;AAEG;AACH,IAAA,IAAc,UAAU,GAAA;QACtB,OAAO;AACL,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;AAC9B,YAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;AAE5C,YAAA,QAAQ,EAAE;gBACR,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACpC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;AAChC,aAAA;SACF,CAAC;KACH;AAUD;;;;AAIG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KACzE;AAED;;;;AAIG;AACH,IAAA,IAAc,UAAU,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;KACnC;AAED;;;;;AAKG;AACK,IAAA,SAAS,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAC9D,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvF,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC7B,YAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAmB,CAAC,CAAC;AACvD,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,OAAO,KAAK,CAAC;KACd;+GA7DU,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,8KAH/B,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAG/B,+BAA+B,GAAA,UAAA,CAAA;IAX3C,YAAY,CAAC,qBAAqB,CAAC;AAWvB,CAAA,EAAA,+BAA+B,CA8D3C,CAAA;4FA9DY,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,oBAAoB,EAAE,aAAa;AACpC,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC;oBAC1C,cAAc,EAAE,CAAC,YAAY,CAAC;AAC/B,iBAAA,CAAA;;;AC1BD;;;;;;;;;;;;;;;;AAgBG;AACa,SAAA,kBAAkB,CAAC,IAAY,EAAE,SAAkB,EAAA;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACzE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC/C,KAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;AAeG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,SAAkB,EAAA;AACpE,IAAA,IAAI,SAAS,EAAE;AACb,QAAA,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,QAAA,MAAM,YAAY,GAAG,KAAK,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;QACxD,OAAO,CAAA,EAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAC;AACvG,KAAA;AAAM,SAAA;QACL,OAAO,CAAA,EAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE,CAAC;AACtF,KAAA;AACH;;;ACpBA;;;;;AAKG;AAqBI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,iBAAgC,CAAA;;AAgBvE;;;AAGG;IACH,IACW,SAAS,CAAC,GAAY,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;KACvB;AAED,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AA0BD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,IAAI,CAAC,CAAC;AA1DG,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAGR,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;QACtC,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QAQ/B,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;AAoB1C;;;AAGG;QAEI,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEjB;;;AAGG;QAEI,IAAG,CAAA,GAAA,GAAG,OAAO,CAAC;AAErB;;;AAGG;QAEI,IAAG,CAAA,GAAA,GAAG,OAAO,CAAC;KAOpB;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,0BAA0B,CAAwB,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;QACvG,IAAI,CAAC,kCAAkC,EAAE,CAAC;KAC3C;AAEM,IAAA,oBAAoB,CAAC,MAAiC,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;KACpC;AAED;;;;AAIG;AACI,IAAA,YAAY,CAAC,MAAkC,EAAA;AACpD,QAAA,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9F,QAAA,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;KACxB;AAED;;;;;AAKG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrH;AAED;;;;AAIG;AACH,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACtD;AAIS,IAAA,qBAAqB,CAAC,KAAoB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,QAAQ;YAAE,OAAO;AAE9C,QAAA,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,UAAuC,CAAC;AAC9E,QAAA,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEhF,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;YAC1E,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACjC,SAAA;KACF;IAES,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;KAClH;IAEO,kCAAkC,GAAA;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;AACpE,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO;AACR,SAAA;QAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;AAEO,IAAA,cAAc,CAAC,MAAiC,EAAA;QACtD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACnC;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC1D,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;KACF;AAEO,IAAA,qBAAqB,CAAC,WAAiB,EAAA;AAC7C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7E,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAC7D,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAa,EAC5D,CAAA,EAAG,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAA,EAAI,WAAW,CAAC,UAAU,EAAE,CAAA,CAAE,CACxD,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC;KAC/E;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC1C,SAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,MAAiC,EAAE,KAAA,GAA+B,EAAE,EAAA;QAC/F,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AAC3D,YAAA,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5E,SAAA;KACF;+GA9KU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAoBV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,CAkBhB,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,eAAe,CArDxB,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,+BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,kBAAkB,CAAC,OAAO,EAAE;YAC5B,kBAAkB,CAAC,OAAO,EAAE;AAC5B,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAmB,CAAC;AACnD,aAAA;SACF,EAgBU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,4EA+CjB,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EA5C5B,yBAAyB,ECpEzC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2nCAkCA,2CDkBY,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,wGAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAE,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,kHAAE,+BAA+B,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAK3I,mBAAmB,GAAA,qBAAA,GAAA,UAAA,CAAA;IApB/B,YAAY,CAAC,YAAY,CAAC;;AAoBd,CAAA,EAAA,mBAAmB,CA+K/B,CAAA;4FA/KY,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAnB/B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,gBAAgB,EAEf,SAAA,EAAA;wBACT,kBAAkB,CAAC,OAAO,EAAE;wBAC5B,kBAAkB,CAAC,OAAO,EAAE;AAC5B,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AACnD,yBAAA;qBACF,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,+BAA+B,CAAC,EACjJ,IAAA,EAAA;AACJ,wBAAA,iBAAiB,EAAE,sCAAsC;AAC1D,qBAAA,EAAA,QAAA,EAAA,2nCAAA,EAAA,CAAA;0EAWkB,QAAQ,EAAA,CAAA;sBAD1B,SAAS;uBAAC,iBAAiB,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADhB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAA;gBAU/D,SAAS,EAAA,CAAA;sBADnB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAmB/B,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAQ9B,GAAG,EAAA,CAAA;sBADT,KAAK;gBAQC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,SAAS;uBAAC,+BAA+B,CAAA;gBAuDhC,qBAAqB,EAAA,CAAA;sBAF9B,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEhKrC,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,+BAA+B,EAAE,yBAAyB,CAAC,CAAC;MAKrF,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EALZ,OAAA,EAAA,CAAA,mBAAmB,EAAE,+BAA+B,EAAE,yBAAyB,CAGpF,EAAA,OAAA,EAAA,CAAA,UAAU,EAHL,mBAAmB,EAAE,+BAA+B,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAKnF,gBAAgB,EAAA,OAAA,EAAA,CALZ,mBAAmB,EAGxB,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-components-timepicker.mjs","sources":["../../../../libs/angular/components/timepicker/src/lib/timepicker.token.ts","../../../../libs/angular/components/timepicker/src/lib/components/timepicker-option.component.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.service.ts","../../../../libs/angular/components/timepicker/src/lib/utils/ngx-mask-helper.ts","../../../../libs/angular/components/timepicker/src/lib/directives/timepicker-input-control.directive.ts","../../../../libs/angular/components/timepicker/src/lib/utils/generate-time-stamps.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.component.ts","../../../../libs/angular/components/timepicker/src/lib/timepicker.component.html","../../../../libs/angular/components/timepicker/src/lib/timepicker.module.ts","../../../../libs/angular/components/timepicker/src/odx-angular-components-timepicker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TimepickerComponent } from './timepicker.component';\n\n/**\n * An InjectionToken used for injecting an instance of TimepickerComponent.\n * This token facilitates the decoupling of the TimepickerComponent's implementation from its consumption,\n * allowing for more flexible and maintainable code, especially in scenarios requiring custom time picker\n * behavior or appearance.\n */\nexport const TIMEPICKER_CONTROL = new InjectionToken<TimepickerComponent>('@odx/angular/components/timepicker::TimepickerComponent');\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { DisabledController, WithDisabledState, detectControllerChanges } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { TIMEPICKER_CONTROL } from '../timepicker.token';\n\n/**\n * Represents a selectable option within a timepicker component. This component allows for\n * individual time values to be selected from a dropdown menu as part of the timepicker interface.\n * It integrates with the timepicker's control to manage selection state and accessibility.\n *\n * @extends {OptionControl<string>}\n */\n@CSSComponent('timepicker-option')\n@Component({\n selector: 'odx-timepicker-option',\n template: `<ng-content></ng-content>`,\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DisabledController.connect()],\n hostDirectives: [WithDisabledState],\n})\nexport class TimepickerOptionComponent extends OptionControl<string> implements OnInit {\n private readonly timepicker = inject(TIMEPICKER_CONTROL);\n protected readonly disabledController = DisabledController.inject();\n\n public isSelected = false;\n public override isActive = false;\n\n public get disabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n /**\n * Emits an event when the option is selected, allowing the timepicker component to update its value and close the dropdown.\n */\n @Output()\n public selected = new EventEmitter<TimepickerOptionComponent>();\n\n constructor() {\n super();\n detectControllerChanges(this.timepicker).pipe(this.takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.isSelected = this.timepicker.isTimeOptionSelected(this);\n }\n\n protected selectOption(): void {\n this.selected.emit(this);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { isAfter, isBefore, isEqual } from 'date-fns';\n\n/**\n * Service to provide utility functions for timepicker components, including validation, placeholder generation, and finding the closest time.\n * It also handles locale-based time formatting.\n */\n@Injectable({ providedIn: 'root' })\nexport class TimepickerService {\n private readonly windowRef = inject(WindowRef);\n\n /**\n * Generates a placeholder string for time input fields.\n *\n * @param {boolean} apm - Specifies if the placeholder should include AM/PM notation.\n * @returns {string} The placeholder string.\n */\n public getPlaceholder(apm = false): string {\n return apm ? '--:-- --' : '--:--';\n }\n\n /**\n * Validates if the given time is less than or equal to a maximum time constraint.\n *\n * @param {string} time - The time to validate.\n * @param {string} max - The maximum allowable time.\n * @returns {boolean} True if the time is valid, false otherwise.\n */\n public maxValidation(time: string, max: string): boolean {\n const [targetValue, maxValue] = this.convertToDates([time, max]);\n return isBefore(targetValue, maxValue) || isEqual(targetValue, maxValue);\n }\n\n /**\n * Validates if the given time is greater than or equal to a minimum time constraint.\n *\n * @param {string} time - The time to validate.\n * @param {string} min - The minimum allowable time.\n * @returns {boolean} True if the time is valid, false otherwise.\n */\n public minValidation(time: string, min: string): boolean {\n const [targetValue, minValue] = this.convertToDates([time, min]);\n return isAfter(targetValue, minValue) || isEqual(targetValue, minValue);\n }\n\n /**\n * Finds the closest time to a target time from a list of times.\n *\n * @param {string[]} timeStamps - The list of times to search through.\n * @param {string} targetTime - The target time to find the closest match for.\n * @returns {string} The closest time to the target.\n */\n public findClosestDate(timeStamps: string[], targetTime: string): string {\n const [target] = this.convertToDates([targetTime]);\n const datesArray = this.convertToDates(timeStamps);\n\n const closestDate = datesArray.reduce((prev, curr) => {\n return Math.abs(curr.getTime() - target.getTime()) < Math.abs(prev.getTime() - target.getTime()) ? curr : prev;\n });\n\n return this.getLocalizedTimeFormat(`${closestDate.getHours()}:${closestDate.getMinutes()}`);\n }\n\n /**\n * Formats a time string to a localized time format.\n *\n * @param {string} time - The time string to format.\n * @param {boolean} hour12 - Specifies if the output should use 12-hour format with AM/PM notation.\n * @returns {string} The formatted time string.\n */\n public getLocalizedTimeFormat(time: string, hour12 = false): string {\n const locale = hour12 ? 'en-US' : 'en-GB';\n const [date] = this.convertToDates([time]);\n return new this.windowRef.nativeWindow.Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12,\n }).format(date);\n }\n\n /**\n * Converts an array of time strings to an array of Date objects.\n *\n * @param {string[]} times - The time strings to convert.\n * @returns {Date[]} An array of Date objects corresponding to the input times.\n * @private\n */\n private convertToDates(times: string[]): Date[] {\n return times.map((time) => new Date(`${time} 2022-12-19`));\n }\n}\n","/**\n * Processes and formats a time input value based on specific rules. It adjusts the input for valid time format,\n * especially focusing on single-digit hour inputs, ensuring minute values start with 0 if the last digit is greater\n * than 5, and appending 'M' to AM/PM indicators.\n *\n * @param {string} value - The current input value of the time field.\n * @param {InputEvent} event - The input event triggered by the user's interaction with the field.\n * @returns {string} The processed and potentially reformatted value.\n *\n * @example\n * // Prepend 0 to single-digit hours greater than 1\n * processInputValue(\"2\", { inputType: \"insertText\" }); // Returns \"02\"\n *\n * @example\n * // Ensure minute values are within valid ranges\n * processInputValue(\"11:8\", { inputType: \"insertText\" }); // Returns \"11:08\"\n *\n * @example\n * // Append 'M' to AM/PM indicators\n * processInputValue(\"2 p\", { inputType: \"insertText\" }); // Returns \"2 PM\"\n */\nexport function processInputValue(value: string, event: InputEvent): string {\n if (value.length === 1 && Number(value) > 1) {\n value = `0${value}`;\n } else if (value.length === 4 && Number(value.at(-1)) > 5) {\n value = `${value.slice(0, -1)}0${value.slice(-1)}`;\n }\n\n if (/[AaPp]/.test(value) && event.inputType === 'insertText') {\n value = `${value.toUpperCase()}M`;\n }\n\n return value;\n}\n","import { Directive, inject } from '@angular/core';\nimport { WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { IConfig, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\nimport { TimepickerService } from '../timepicker.service';\nimport { TIMEPICKER_CONTROL } from '../timepicker.token';\nimport { processInputValue } from '../utils/ngx-mask-helper';\n\n/**\n * Directive to enhance a standard input element for time picking, integrating mask functionality for time format.\n * It automatically adapts to locale settings provided by the enclosing `TimepickerComponent` to display time in the appropriate format.\n *\n * @extends {InputControlDirective}\n */\n@CSSComponent('timepicker__control')\n@Directive({\n standalone: true,\n selector: 'input[odxTimepickerControl]',\n host: {\n '[attr.readonly]': 'isReadonly || null',\n '[attr.placeholder]': 'placeholder',\n },\n providers: [provideNgxMask(), NgxMaskPipe],\n hostDirectives: [WithTabIndex, WithDisabledState],\n})\nexport class TimepickerInputControlDirective extends InputControlDirective {\n private readonly timepicker = inject(TIMEPICKER_CONTROL);\n private readonly timepickerService = inject(TimepickerService);\n protected readonly ngxMaskPipe = inject(NgxMaskPipe);\n\n /**\n * Configuration for the mask applied to the timepicker input. Adjusts based on locale settings.\n */\n protected get maskConfig(): Partial<IConfig> {\n return {\n validation: false,\n apm: this.timepicker.useLocale,\n leadZeroDateTime: !this.timepicker.useLocale,\n\n patterns: {\n A: { pattern: new RegExp('[AaPp]') },\n M: { pattern: new RegExp('M') },\n },\n };\n }\n\n /**\n * Stream of value changes for the input element, applying the mask and processing the input based on locale.\n */\n public override valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map((event) => this.applyMask(event)),\n );\n\n /**\n * Computes and returns the placeholder text for the input based on locale settings.\n *\n * @returns {string} The placeholder text for the input.\n */\n public get placeholder(): string {\n return this.timepickerService.getPlaceholder(this.timepicker.useLocale);\n }\n\n /**\n * Determines whether the timepicker input is readonly, based on the state of the parent timepicker component.\n *\n * @returns {boolean} `true` if the input should be readonly; otherwise, `false`.\n */\n protected get isReadonly(): boolean {\n return this.timepicker.isReadonly;\n }\n\n /**\n * Applies the time format mask to the input value, transforming and returning the masked value.\n *\n * @param {Event} event - The input event triggering the mask application.\n * @returns {string} The masked input value.\n */\n private applyMask(event: Event): string {\n const mask = this.timepicker.useLocale ? 'Hh:m0 AM' : 'Hh:m0';\n let value = this.ngxMaskPipe.transform(this.nativeElementValue, mask, this.maskConfig);\n if (this.timepicker.useLocale) {\n value = processInputValue(value, event as InputEvent);\n }\n this.nativeElementValue = value;\n return value;\n }\n}\n","/**\n * Generates an array of time stamps within a 24-hour period based on the specified step interval.\n * The time stamps can be formatted in 24-hour format or 12-hour format with AM/PM based on locale preference.\n *\n * @param {number} step - The interval, in minutes, between each time stamp.\n * @param {boolean} useLocale - Determines if the time stamps should use the 12-hour format with AM/PM (`true`) or the 24-hour format (`false`).\n * @returns {string[]} An array of formatted time stamps as strings.\n * @example\n * // Generate time stamps every 30 minutes using 24-hour format\n * generateTimeStamps(30, false);\n * // Returns [\"00:00\", \"00:30\", \"01:00\", ..., \"23:30\"]\n *\n * @example\n * // Generate time stamps every 60 minutes using 12-hour format with AM/PM\n * generateTimeStamps(60, true);\n * // Returns [\"12:00 AM\", \"01:00 AM\", ..., \"11:00 PM\"]\n */\nexport function generateTimeStamps(step: number, useLocale: boolean): string[] {\n const roundedStep = Math.round(step);\n\n return Array.from({ length: Math.ceil(24 * (60 / roundedStep)) }, (_, i) => {\n const hours = Math.floor((i * roundedStep) / 60);\n const minutes = (i * roundedStep) % 60;\n return formatTime(hours, minutes, useLocale);\n });\n}\n\n/**\n * Formats a given time as a string based on the specified hour, minute, and locale preference.\n * Can format time in either 24-hour format or 12-hour format with AM/PM.\n *\n * @param {number} hours - The hour component of the time.\n * @param {number} minutes - The minute component of the time.\n * @param {boolean} useLocale - Determines if the time should be formatted using the 12-hour format with AM/PM (`true`) or the 24-hour format (`false`).\n * @returns {string} The formatted time as a string.\n * @example\n * // Format time using 24-hour format\n * formatTime(14, 30, false); // \"14:30\"\n *\n * @example\n * // Format time using 12-hour format with AM/PM\n * formatTime(14, 30, true); // \"2:30 PM\"\n */\nfunction formatTime(hours: number, minutes: number, useLocale: boolean): string {\n if (useLocale) {\n const period = hours >= 12 ? 'PM' : 'AM';\n const displayHours = hours % 12 === 0 ? 12 : hours % 12;\n return `${displayHours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} ${period}`;\n } else {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n }\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n booleanAttribute,\n forwardRef,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { DisabledController, ReadonlyController } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, isFunction, trackByIndex, untilDestroyed } from '@odx/angular/utils';\nimport { TimepickerOptionComponent } from './components/timepicker-option.component';\nimport { TimepickerInputControlDirective } from './directives/timepicker-input-control.directive';\nimport { TimepickerService } from './timepicker.service';\nimport { TIMEPICKER_CONTROL } from './timepicker.token';\nimport { generateTimeStamps } from './utils/generate-time-stamps';\n\n/**\n * Represents a time picker component allowing users to select a time from a dropdown list.\n * This component integrates with Angular forms and supports customization for locale, time range, and step intervals.\n *\n * @extends {CustomFormControl<string | null>}\n */\n@CSSComponent('timepicker')\n@Component({\n standalone: true,\n selector: 'odx-timepicker',\n templateUrl: 'timepicker.component.html',\n providers: [\n DisabledController.connect(),\n ReadonlyController.connect(),\n {\n provide: TIMEPICKER_CONTROL,\n useExisting: forwardRef(() => TimepickerComponent),\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, DropdownModule, TimepickerOptionComponent, IconComponent, TimepickerInputControlDirective],\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n },\n})\nexport class TimepickerComponent extends CustomFormControl<string | null> implements AfterViewInit {\n private readonly timepickerService = inject(TimepickerService);\n private _useLocale = false;\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<string>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n protected readonly trackByIndex = trackByIndex;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n @ViewChildren(TimepickerOptionComponent, { emitDistinctChangesOnly: true })\n protected options!: QueryList<TimepickerOptionComponent>;\n\n public readonly element = injectElement();\n\n /**\n * Controls whether the timepicker should use locale-specific time formats AM/PM.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set useLocale(val: boolean) {\n if (this.value && this.dateField) {\n const time = this.timepickerService.getLocalizedTimeFormat(this.value, val);\n this.updateValue(time);\n this.dateField.nativeElementValue = time;\n }\n this._useLocale = val;\n }\n\n public get useLocale(): boolean {\n return this._useLocale;\n }\n\n /**\n * Controls the step interval between time options in minutes.\n * @default 30\n */\n @Input({ transform: numberAttribute })\n public step = 30;\n\n /**\n * Specifies the minimum time value that can be selected ('05:00' or '05:00 AM').\n * @default '00:00'\n */\n @Input()\n public min = '00:00';\n\n /**\n * Specifies the maximum time value that can be selected ('22:00' or '10:00 PM').\n * @default '23:59'\n */\n @Input()\n public max = '23:59';\n\n @ViewChild(TimepickerInputControlDirective)\n public dateField?: TimepickerInputControlDirective;\n\n constructor() {\n super(null);\n }\n\n public ngAfterViewInit(): void {\n this.handleDateFieldChanges();\n this.updateInputValue();\n }\n\n public onOpen(): void {\n this.keyManager = new ActiveDescendantKeyManager<OptionControl<string>>(this.options).withHomeAndEnd();\n this.setActiveOptionBasedOnCurrentValue();\n }\n\n public isTimeOptionSelected(option: TimepickerOptionComponent): boolean {\n return this.value === option.value;\n }\n\n /**\n * Handles the selection of a time option from the dropdown, updating the input field and closing the dropdown.\n *\n * @param {TimepickerOptionComponent} option - The selected time option component.\n */\n public timeSelected(option?: TimepickerOptionComponent): void {\n if (!option || option.disabled) return;\n const time = this.timepickerService.getLocalizedTimeFormat(option.getLabel(), this.useLocale);\n this.dateField && (this.dateField.nativeElementValue = time);\n this.updateValue(time);\n this.dropdown?.close();\n }\n\n /**\n * Determines whether the specified time is within the allowed time range.\n *\n * @param {string} time - The time to check, in 'HH:mm' or 'HH:mm AM/PM' format.\n * @returns {boolean} True if the time is within the range; otherwise, false.\n */\n public inTimeRange(time: string): boolean {\n return this.timepickerService.maxValidation(time, this.max) && this.timepickerService.minValidation(time, this.min);\n }\n\n /**\n * Generates the list of time options based on the configured step interval and locale settings AM/PM.\n *\n * @returns {string[]} An array of time strings in 'HH:mm' format.\n */\n public get timeStampsList(): string[] {\n return generateTimeStamps(this.step, this.useLocale);\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.readonlyController?.readonly) return;\n\n this.keyManager?.onKeydown(event);\n const activeOption = this.keyManager?.activeItem as TimepickerOptionComponent;\n activeOption && this.scrollToActiveOption(activeOption, { behavior: 'smooth' });\n\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.timeSelected(activeOption);\n }\n }\n\n protected handleDateFieldChanges(): void {\n this.dateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe((time) => this.updateValue(time ?? null));\n }\n\n private setActiveOptionBasedOnCurrentValue(): void {\n const isSelected = this.options.find((option) => option.isSelected);\n if (isSelected) {\n this.activateOption(isSelected);\n return;\n }\n\n this.activateNearestTimeOption();\n }\n\n private activateOption(option: TimepickerOptionComponent): void {\n this.keyManager && this.keyManager.setActiveItem(option);\n this.scrollToActiveOption(option);\n }\n\n private activateNearestTimeOption(): void {\n if (!this.value) {\n const currentDate = new Date();\n const isNearest = this.findNearestTimeOption(currentDate);\n if (isNearest) {\n this.activateOption(isNearest);\n }\n }\n }\n\n private findNearestTimeOption(currentDate: Date): TimepickerOptionComponent | undefined {\n const availableTimeSlots = this.options.filter((option) => !option.disabled);\n const nearestTimeValue = this.timepickerService.findClosestDate(\n availableTimeSlots.map((option) => option.value) as string[],\n `${currentDate.getHours()}:${currentDate.getMinutes()}`,\n );\n\n return availableTimeSlots.find((option) => option.value === nearestTimeValue);\n }\n\n private updateInputValue(): void {\n if (this.value && this.dateField) {\n const time = this.timepickerService.getLocalizedTimeFormat(this.value, this.useLocale);\n this.dateField.nativeElementValue = time;\n }\n }\n\n private scrollToActiveOption(option: TimepickerOptionComponent, _opts: ScrollIntoViewOptions = {}): void {\n if (isFunction(option.element.nativeElement.scrollIntoView)) {\n option.element.nativeElement.scrollIntoView({ block: 'center', ..._opts });\n }\n }\n}\n","<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start', enableFallback: false }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { TimepickerOptionComponent } from './components/timepicker-option.component';\nimport { TimepickerInputControlDirective } from './directives/timepicker-input-control.directive';\nimport { TimepickerComponent } from './timepicker.component';\n\nconst modules = [TimepickerComponent, TimepickerInputControlDirective, TimepickerOptionComponent];\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class TimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "5.7.2",
3
+ "version": "5.7.4",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {