@festo-ui/angular 6.0.0-dev.215 → 6.0.0-dev.221

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.
@@ -64,6 +64,19 @@ export class FngTimePickerDropdownComponent {
64
64
  this.date?.setSeconds(seconds > max ? max : seconds < min ? min : seconds);
65
65
  this.onDateChange(false, false);
66
66
  }
67
+ onToggleTimeFormat() {
68
+ // Get the current hour in 24-hour format
69
+ let hours = this.date.getHours();
70
+ if (hours >= 0 && hours < 12) {
71
+ // Switching from AM to PM
72
+ this.date.setHours(hours + 12);
73
+ }
74
+ else {
75
+ // Switching from PM to AM
76
+ this.date.setHours(hours - 12);
77
+ }
78
+ this.onDateChange(false, false);
79
+ }
67
80
  onDateChange(close, reset) {
68
81
  if (this.date != null) {
69
82
  this.date = new Date(this.date);
@@ -71,11 +84,11 @@ export class FngTimePickerDropdownComponent {
71
84
  }
72
85
  }
73
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FngTimePickerDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FngTimePickerDropdownComponent, isStandalone: true, selector: "fng-time-picker-dropdown", inputs: { date: "date", showSeconds: "showSeconds", timeFormat: "timeFormat" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "document:keydown": "hide($event)" } }, viewQueries: [{ propertyName: "hoursInput", first: true, predicate: ["hoursInput"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date : 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FngTimePickerDropdownComponent, isStandalone: true, selector: "fng-time-picker-dropdown", inputs: { date: "date", showSeconds: "showSeconds", timeFormat: "timeFormat" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "document:keydown": "hide($event)" } }, viewQueries: [{ propertyName: "hoursInput", first: true, predicate: ["hoursInput"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-timepicker\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
75
88
  }
76
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FngTimePickerDropdownComponent, decorators: [{
77
90
  type: Component,
78
- args: [{ standalone: true, imports: [CommonModule], selector: 'fng-time-picker-dropdown', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date : 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"] }]
91
+ args: [{ standalone: true, imports: [CommonModule], selector: 'fng-time-picker-dropdown', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-timepicker\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"] }]
79
92
  }], propDecorators: { date: [{
80
93
  type: Input
81
94
  }], showSeconds: [{
@@ -91,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
91
104
  type: HostListener,
92
105
  args: ['document:keydown', ['$event']]
93
106
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLWRyb3Bkb3duL3RpbWUtcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1kcm9wZG93bi90aW1lLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBVXZCLE1BQU0sT0FBTyw4QkFBOEI7SUFSM0M7UUFTVyxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtELENBQUM7S0E2RTNGO0lBeEVDLElBQUksQ0FBQyxLQUFvQjtRQUN2QixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNkIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVk7UUFDVixJ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QkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUd2QixJQUFJO3NCQURILFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2ZuZy10aW1lLXBpY2tlci1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICBASW5wdXQoKSBzaG93U2Vjb25kcyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aW1lRm9ybWF0OiAnMTInIHwgJzI0JyA9ICcyNCc7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlc2V0OiBib29sZWFuOyBkYXRlOiBEYXRlOyBjbG9zZTogYm9vbGVhbiB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJzSW5wdXQnKSBob3Vyc0lucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoaWRlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uRGF0ZUNoYW5nZSh0cnVlLCBldmVudC5rZXkgPT09ICdFc2NhcGUnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaG91cnNJbnB1dCAhPSBudWxsICYmIHRoaXMuaG91cnNJbnB1dC5uYXRpdmVFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgICh0aGlzLmhvdXJzSW5wdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbkhvdXJVcCgpIHtcbiAgICB0aGlzLmRhdGU/LnNldEhvdXJzKHRoaXMuZGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uSG91ckRvd24oKSB7XG4gICAgdGhpcy5kYXRlPy5zZXRIb3Vycyh0aGlzLmRhdGUuZ2V0SG91cnMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbk1pbnV0ZVVwKCkge1xuICAgIHRoaXMuZGF0ZT8uc2V0TWludXRlcyh0aGlzLmRhdGUuZ2V0TWludXRlcygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uTWludXRlRG93bigpIHtcbiAgICB0aGlzLmRhdGU/LnNldE1pbnV0ZXModGhpcy5kYXRlLmdldE1pbnV0ZXMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvblNlY29uZFVwKCkge1xuICAgIHRoaXMuZGF0ZT8uc2V0U2Vjb25kcyh0aGlzLmRhdGUuZ2V0U2Vjb25kcygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uU2Vjb25kRG93bigpIHtcbiAgICB0aGlzLmRhdGU/LnNldFNlY29uZHModGhpcy5kYXRlLmdldFNlY29uZHMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbkhvdXJDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgbWF4ID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWF4O1xuICAgIGNvbnN0IG1pbiA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLm1pbjtcbiAgICBjb25zdCBob3VyID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5kYXRlPy5zZXRIb3Vycyhob3VyID4gbWF4ID8gbWF4IDogaG91ciA8IG1pbiA/IG1pbiA6IGhvdXIpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbk1pbnV0ZUNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBtYXggPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5tYXg7XG4gICAgY29uc3QgbWluID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWluO1xuICAgIGNvbnN0IG1pbnV0ZSA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuZGF0ZT8uc2V0TWludXRlcyhtaW51dGUgPiBtYXggPyBtYXggOiBtaW51dGUgPCBtaW4gPyBtaW4gOiBtaW51dGUpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvblNlY29uZENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBtYXggPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5tYXg7XG4gICAgY29uc3QgbWluID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWluO1xuICAgIGNvbnN0IHNlY29uZHMgPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmRhdGU/LnNldFNlY29uZHMoc2Vjb25kcyA+IG1heCA/IG1heCA6IHNlY29uZHMgPCBtaW4gPyBtaW4gOiBzZWNvbmRzKTtcbiAgICB0aGlzLm9uRGF0ZUNoYW5nZShmYWxzZSwgZmFsc2UpO1xuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGNsb3NlOiBib29sZWFuLCByZXNldDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRhdGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5kYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHsgcmVzZXQsIGRhdGU6IG5ldyBEYXRlKHRoaXMuZGF0ZSksIGNsb3NlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS10aW1lcGlja2VyXCIgW2NsYXNzLmZ3ZS10aW1lcGlja2VyLWFtLXBtXT1cInRpbWVGb3JtYXQgPT09ICcxMidcIj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLXNwaW5uZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLXNwaW5uZXJzLWhvdXJzXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiaG91ciB1cFwiIGNsYXNzPVwiZndlLWJ0biBmd2UtYnRuLWxpbmsgZndlLWRhcmtcIiAoY2xpY2spPVwib25Ib3VyVXAoKVwiPlxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLWFycm93cy1leHBhbmRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaG91cnNJbnB1dFxuICAgICAgICBhcmlhLWxhYmVsPVwiaG91cnMgdmFsdWVcIlxuICAgICAgICBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLWhpZGUtc3Bpbm5lcnNcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgbWluPVwiMFwiXG4gICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgIHN0ZXA9XCIxXCJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGUgfCBkYXRlIDogKHRpbWVGb3JtYXQgPT09ICcxMicgPyAnaGgnIDogJ0hIJylcIlxuICAgICAgICBbYXR0ci5tYXhdPVwidGltZUZvcm1hdCA9PT0gJzEyJyA/IDEyIDogMjNcIlxuICAgICAgICAoaW5wdXQpPVwib25Ib3VyQ2hhbmdlKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJob3VyIGRvd25cIiBjbGFzcz1cImZ3ZS1idG4gZndlLWJ0bi1saW5rIGZ3ZS1kYXJrXCIgKGNsaWNrKT1cIm9uSG91ckRvd24oKVwiPlxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLWFycm93cy1jb2xsYXBzZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1zcGlubmVycy1taW51dGVzXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwibWludXRlIHVwXCIgY2xhc3M9XCJmd2UtYnRuIGZ3ZS1idG4tbGluayBmd2UtZGFya1wiIChjbGljayk9XCJvbk1pbnV0ZVVwKClcIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtZXhwYW5kXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgYXJpYS1sYWJlbD1cIm1pbnV0ZXMgdmFsdWVcIlxuICAgICAgICBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLWhpZGUtc3Bpbm5lcnNcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgbWluPVwiMFwiXG4gICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgc3RlcD1cIjFcIlxuICAgICAgICB0YWJpbmRleD1cIjJcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0ZSB8IGRhdGUgOiAnbW0nXCJcbiAgICAgICAgKGlucHV0KT1cIm9uTWludXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJtaW51dGUgZG93blwiIGNsYXNzPVwiZndlLWJ0biBmd2UtYnRuLWxpbmsgZndlLWRhcmtcIiAoY2xpY2spPVwib25NaW51dGVEb3duKClcIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtY29sbGFwc2VcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1NlY29uZHNcIiBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLXNwaW5uZXJzLXNlY29uZHNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJzZWNvbmRzIHVwXCIgY2xhc3M9XCJmd2UtYnRuIGZ3ZS1idG4tbGluayBmd2UtZGFya1wiIChjbGljayk9XCJvblNlY29uZFVwKClcIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtZXhwYW5kXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgYXJpYS1sYWJlbD1cInNlY29uZHMgdmFsdWVcIlxuICAgICAgICBjbGFzcz1cImZ3ZS10aW1lcGlja2VyLWhpZGUtc3Bpbm5lcnNcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgbWluPVwiMFwiXG4gICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgc3RlcD1cIjFcIlxuICAgICAgICB0YWJpbmRleD1cIjNcIlxuICAgICAgICBbdmFsdWVdPVwiZGF0ZSB8IGRhdGUgOiAnc3MnXCJcbiAgICAgICAgKGlucHV0KT1cIm9uU2Vjb25kQ2hhbmdlKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJzZWNvbmRzIGRvd25cIiBjbGFzcz1cImZ3ZS1idG4gZndlLWJ0bi1saW5rIGZ3ZS1kYXJrXCIgKGNsaWNrKT1cIm9uU2Vjb25kRG93bigpXCI+XG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWNvbGxhcHNlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cInRpbWVGb3JtYXQgPT09ICcxMidcIiBjbGFzcz1cImZ3ZS1iYWRnZSBmd2UtYmFkZ2UtY29udHJvbFwiPlxuICAgIHt7IGRhdGUgfCBkYXRlIDogJ2EnIH19XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLWRyb3Bkb3duL3RpbWUtcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1kcm9wZG93bi90aW1lLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBVXZCLE1BQU0sT0FBTyw4QkFBOEI7SUFSM0M7UUFTVyxTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtELENBQUM7S0EyRjNGO0lBdEZDLElBQUksQ0FBQyxLQUFvQjtRQUN2QixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNkIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVk7UUFDVixJ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SSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDOzhHQTlGVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixrWENyQjNDLGd0RkFpRUEseUpEbERZLFlBQVk7OzJGQU1YLDhCQUE4QjtrQkFSMUMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYiwwQkFBMEIsaUJBR3JCLGlCQUFpQixDQUFDLElBQUk7OEJBRzVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUd2QixJQUFJO3NCQURILFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2ZuZy10aW1lLXBpY2tlci1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICBASW5wdXQoKSBzaG93U2Vjb25kcyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aW1lRm9ybWF0OiAnMTInIHwgJzI0JyA9ICcyNCc7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlc2V0OiBib29sZWFuOyBkYXRlOiBEYXRlOyBjbG9zZTogYm9vbGVhbiB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJzSW5wdXQnKSBob3Vyc0lucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoaWRlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uRGF0ZUNoYW5nZSh0cnVlLCBldmVudC5rZXkgPT09ICdFc2NhcGUnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaG91cnNJbnB1dCAhPSBudWxsICYmIHRoaXMuaG91cnNJbnB1dC5uYXRpdmVFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgICh0aGlzLmhvdXJzSW5wdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbkhvdXJVcCgpIHtcbiAgICB0aGlzLmRhdGU/LnNldEhvdXJzKHRoaXMuZGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uSG91ckRvd24oKSB7XG4gICAgdGhpcy5kYXRlPy5zZXRIb3Vycyh0aGlzLmRhdGUuZ2V0SG91cnMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbk1pbnV0ZVVwKCkge1xuICAgIHRoaXMuZGF0ZT8uc2V0TWludXRlcyh0aGlzLmRhdGUuZ2V0TWludXRlcygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uTWludXRlRG93bigpIHtcbiAgICB0aGlzLmRhdGU/LnNldE1pbnV0ZXModGhpcy5kYXRlLmdldE1pbnV0ZXMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvblNlY29uZFVwKCkge1xuICAgIHRoaXMuZGF0ZT8uc2V0U2Vjb25kcyh0aGlzLmRhdGUuZ2V0U2Vjb25kcygpICsgMSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG9uU2Vjb25kRG93bigpIHtcbiAgICB0aGlzLmRhdGU/LnNldFNlY29uZHModGhpcy5kYXRlLmdldFNlY29uZHMoKSAtIDEpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbkhvdXJDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgbWF4ID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWF4O1xuICAgIGNvbnN0IG1pbiA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLm1pbjtcbiAgICBjb25zdCBob3VyID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5kYXRlPy5zZXRIb3Vycyhob3VyID4gbWF4ID8gbWF4IDogaG91ciA8IG1pbiA/IG1pbiA6IGhvdXIpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvbk1pbnV0ZUNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBtYXggPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5tYXg7XG4gICAgY29uc3QgbWluID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWluO1xuICAgIGNvbnN0IG1pbnV0ZSA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuZGF0ZT8uc2V0TWludXRlcyhtaW51dGUgPiBtYXggPyBtYXggOiBtaW51dGUgPCBtaW4gPyBtaW4gOiBtaW51dGUpO1xuICAgIHRoaXMub25EYXRlQ2hhbmdlKGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBvblNlY29uZENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBtYXggPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5tYXg7XG4gICAgY29uc3QgbWluID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkubWluO1xuICAgIGNvbnN0IHNlY29uZHMgPSArKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmRhdGU/LnNldFNlY29uZHMoc2Vjb25kcyA+IG1heCA/IG1heCA6IHNlY29uZHMgPCBtaW4gPyBtaW4gOiBzZWNvbmRzKTtcbiAgICB0aGlzLm9uRGF0ZUNoYW5nZShmYWxzZSwgZmFsc2UpO1xuICB9XG5cbiAgb25Ub2dnbGVUaW1lRm9ybWF0KCkge1xuICAgIC8vIEdldCB0aGUgY3VycmVudCBob3VyIGluIDI0LWhvdXIgZm9ybWF0XG4gICAgbGV0IGhvdXJzID0gdGhpcy5kYXRlLmdldEhvdXJzKCk7XG5cbiAgICBpZiAoaG91cnMgPj0gMCAmJiBob3VycyA8IDEyKSB7XG4gICAgICAvLyBTd2l0Y2hpbmcgZnJvbSBBTSB0byBQTVxuICAgICAgdGhpcy5kYXRlLnNldEhvdXJzKGhvdXJzICsgMTIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTd2l0Y2hpbmcgZnJvbSBQTSB0byBBTVxuICAgICAgdGhpcy5kYXRlLnNldEhvdXJzKGhvdXJzIC0gMTIpO1xuICAgIH1cbiAgICB0aGlzLm9uRGF0ZUNoYW5nZShmYWxzZSwgZmFsc2UpO1xuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGNsb3NlOiBib29sZWFuLCByZXNldDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRhdGUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5kYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHsgcmVzZXQsIGRhdGU6IG5ldyBEYXRlKHRoaXMuZGF0ZSksIGNsb3NlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS10aW1lcGlja2VyXCI+XG4gIDxkaXYgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1zcGlubmVyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1zcGlubmVycy1ob3Vyc1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cImhvdXIgdXBcIiBjbGFzcz1cImZ3ZS1idG4gZndlLWJ0bi1saW5rIGZ3ZS1kYXJrXCIgKGNsaWNrKT1cIm9uSG91clVwKClcIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtZXhwYW5kXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2hvdXJzSW5wdXRcbiAgICAgICAgYXJpYS1sYWJlbD1cImhvdXJzIHZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1oaWRlLXNwaW5uZXJzXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIG1pbj1cIjBcIlxuICAgICAgICB0YWJpbmRleD1cIjFcIlxuICAgICAgICBzdGVwPVwiMVwiXG4gICAgICAgIFt2YWx1ZV09XCJkYXRlIHwgZGF0ZSA6ICh0aW1lRm9ybWF0ID09PSAnMTInID8gJ2hoJyA6ICdISCcpXCJcbiAgICAgICAgW2F0dHIubWF4XT1cInRpbWVGb3JtYXQgPT09ICcxMicgPyAxMiA6IDIzXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSG91ckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiaG91ciBkb3duXCIgY2xhc3M9XCJmd2UtYnRuIGZ3ZS1idG4tbGluayBmd2UtZGFya1wiIChjbGljayk9XCJvbkhvdXJEb3duKClcIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtY29sbGFwc2VcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLXRpbWVwaWNrZXItc3Bpbm5lcnMtbWludXRlc1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIm1pbnV0ZSB1cFwiIGNsYXNzPVwiZndlLWJ0biBmd2UtYnRuLWxpbmsgZndlLWRhcmtcIiAoY2xpY2spPVwib25NaW51dGVVcCgpXCI+XG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWV4cGFuZFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGlucHV0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJtaW51dGVzIHZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1oaWRlLXNwaW5uZXJzXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIG1pbj1cIjBcIlxuICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgIHN0ZXA9XCIxXCJcbiAgICAgICAgdGFiaW5kZXg9XCIyXCJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGUgfCBkYXRlIDogJ21tJ1wiXG4gICAgICAgIChpbnB1dCk9XCJvbk1pbnV0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwibWludXRlIGRvd25cIiBjbGFzcz1cImZ3ZS1idG4gZndlLWJ0bi1saW5rIGZ3ZS1kYXJrXCIgKGNsaWNrKT1cIm9uTWludXRlRG93bigpXCI+XG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWNvbGxhcHNlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dTZWNvbmRzXCIgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1zcGlubmVycy1zZWNvbmRzXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwic2Vjb25kcyB1cFwiIGNsYXNzPVwiZndlLWJ0biBmd2UtYnRuLWxpbmsgZndlLWRhcmtcIiAoY2xpY2spPVwib25TZWNvbmRVcCgpXCI+XG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWV4cGFuZFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGlucHV0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJzZWNvbmRzIHZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJmd2UtdGltZXBpY2tlci1oaWRlLXNwaW5uZXJzXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIG1pbj1cIjBcIlxuICAgICAgICBtYXg9XCI1OVwiXG4gICAgICAgIHN0ZXA9XCIxXCJcbiAgICAgICAgdGFiaW5kZXg9XCIzXCJcbiAgICAgICAgW3ZhbHVlXT1cImRhdGUgfCBkYXRlIDogJ3NzJ1wiXG4gICAgICAgIChpbnB1dCk9XCJvblNlY29uZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwic2Vjb25kcyBkb3duXCIgY2xhc3M9XCJmd2UtYnRuIGZ3ZS1idG4tbGluayBmd2UtZGFya1wiIChjbGljayk9XCJvblNlY29uZERvd24oKVwiPlxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLWFycm93cy1jb2xsYXBzZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiAqbmdJZj1cInRpbWVGb3JtYXQgPT09ICcxMidcIiBjbGFzcz1cImZ3ZS1idG4gZndlLW1sLW1cIiAoY2xpY2spPVwib25Ub2dnbGVUaW1lRm9ybWF0KClcIj5cbiAgICB7eyBkYXRlIHwgZGF0ZSA6ICdhJyB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -78,7 +78,7 @@ export class FngTimePickerComponent {
78
78
  if (this.timePickerRef == null && this.connector != null && this.connector.nativeElement != null) {
79
79
  const labelWidth = this.connector.nativeElement.clientWidth;
80
80
  this.timePickerRef = this.overlay.create({
81
- width: `${labelWidth}px`,
81
+ minWidth: `${labelWidth}px`,
82
82
  panelClass: 'fng-first-child-fullwidth',
83
83
  hasBackdrop: true,
84
84
  backdropClass: 'fng-date-picker-backdrop',
@@ -100,6 +100,20 @@ export class FngTimePickerComponent {
100
100
  overlayX: 'center',
101
101
  overlayY: 'bottom',
102
102
  offsetY: 4
103
+ },
104
+ {
105
+ originX: 'start',
106
+ originY: 'bottom',
107
+ overlayX: 'start',
108
+ overlayY: 'top',
109
+ offsetY: -12
110
+ },
111
+ {
112
+ originX: 'start',
113
+ originY: 'top',
114
+ overlayX: 'start',
115
+ overlayY: 'bottom',
116
+ offsetY: 4
103
117
  }
104
118
  ])
105
119
  .withFlexibleDimensions(false)
@@ -184,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
184
198
  type: ViewChild,
185
199
  args: ['connector', { static: true }]
186
200
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBNEIsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFzQi9DLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUNJLEtBQUssQ0FBQyxJQUFVO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JB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QUksRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs4R0E3SlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsZ1NBVHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGdKQzNCSCxxdUJBZUEsMEhERVksWUFBWTs7MkZBYVgsc0JBQXNCO2tCQWZsQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLGlCQUFpQixhQUdoQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTs0RUFPakMsS0FBSztzQkFEUixLQUFLO2dCQWNGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSU4sS0FBSztzQkFGSixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGFBQWE7Z0JBRUksT0FBTztzQkFBcEMsV0FBVzt1QkFBQyxlQUFlO2dCQUVjLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBGbmdUaW1lUGlja2VyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLWRyb3Bkb3duL3RpbWUtcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZuZ1RpbWVQaWNrZXJPcHRpb25zIHtcbiAgdGltZUZvcm1hdD86ICcxMicgfCAnMjQnO1xuICBzaG93U2Vjb25kcz86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdmbmctdGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZuZ1RpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgZ2V0IHZhbHVlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKGRhdGU6IERhdGUpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGU7XG4gICAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vblRvdWNoZWQgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckRpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJSZXF1aXJlZDtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlubmVyUmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBpbm5lclJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaGludDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBvcHRpb25zOiBGbmdUaW1lUGlja2VyT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgd2lkdGg6IHN0cmluZyA9ICdub25lJztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgZGlzcGxheTogc3RyaW5nID0gJ2Jsb2NrJztcblxuICBAVmlld0NoaWxkKCdjb25uZWN0b3InLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb25uZWN0b3I6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0IHRpbWVGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBsZXQgdGltZUZvcm1hdCA9ICdIOm1tJztcbiAgICBpZiAodGhpcy5vcHRpb25zICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2hvd1NlY29uZHMpIHtcbiAgICAgICAgdGltZUZvcm1hdCArPSAnOnNzJztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudGltZUZvcm1hdCA9PT0gJzEyJykge1xuICAgICAgICB0aW1lRm9ybWF0ID0gdGltZUZvcm1hdC50b0xvd2VyQ2FzZSgpICsgJyBhJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRpbWVGb3JtYXQ7XG4gIH1cblxuICB0aW1lUGlja2VyUmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGlubmVyVmFsdWU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICBwcm90ZWN0ZWQgaW5uZXJEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY29tcGxldGUgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIHRpbWVQaWNrZXI6IENvbXBvbmVudFJlZjxGbmdUaW1lUGlja2VyRHJvcGRvd25Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSkge31cblxuICBvblRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgb25DaGFuZ2U6ICgoZGF0ZTogRGF0ZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZShkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgdG9nZ2xlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHJlc2V0VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAodGhpcy50aW1lUGlja2VyUmVmID09IG51bGwgJiYgdGhpcy5jb25uZWN0b3IgIT0gbnVsbCAmJiB0aGlzLmNvbm5lY3Rvci5uYXRpdmVFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgbGFiZWxXaWR0aCA9ICh0aGlzLmNvbm5lY3Rvci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRXaWR0aDtcbiAgICAgICAgdGhpcy50aW1lUGlja2VyUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgd2lkdGg6IGAke2xhYmVsV2lkdGh9cHhgLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdmbmctZmlyc3QtY2hpbGQtZnVsbHdpZHRoJyxcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnZm5nLWRhdGUtcGlja2VyLWJhY2tkcm9wJyxcbiAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmNvbm5lY3Rvci5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiAtMTJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogNFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aFB1c2goZmFsc2UpXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0aW1lUGlja2VyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChGbmdUaW1lUGlja2VyRHJvcGRvd25Db21wb25lbnQpO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXIgPSB0aGlzLnRpbWVQaWNrZXJSZWYuYXR0YWNoKHRpbWVQaWNrZXJQb3J0YWwpO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXIuaW5zdGFuY2UudGltZUZvcm1hdCA9IHRoaXMub3B0aW9ucyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy50aW1lRm9ybWF0ICE9IG51bGwgPyB0aGlzLm9wdGlvbnMudGltZUZvcm1hdCA6ICcyNCc7XG4gICAgICAgIHRoaXMudGltZVBpY2tlci5pbnN0YW5jZS5zaG93U2Vjb25kcyA9IHRoaXMub3B0aW9ucyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5zaG93U2Vjb25kcyAhPSBudWxsID8gdGhpcy5vcHRpb25zLnNob3dTZWNvbmRzIDogZmFsc2U7XG4gICAgICAgIHRoaXMudGltZVBpY2tlci5pbnN0YW5jZS5kYXRlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudGltZVBpY2tlci5pbnN0YW5jZS5kYXRlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcGxldGUpKS5zdWJzY3JpYmUoZXYgPT4ge1xuICAgICAgICAgIGlmIChldi5yZXNldCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHJlc2V0VmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldi5kYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXYuY2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aW1lUGlja2VyUmVmXG4gICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGlzcG9zZURyb3Bkb3duKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZURyb3Bkb3duKCkge1xuICAgIGlmICh0aGlzLnRpbWVQaWNrZXJSZWYgIT0gbnVsbCkge1xuICAgICAgdGhpcy50aW1lUGlja2VyUmVmLmRldGFjaCgpO1xuICAgICAgdGhpcy50aW1lUGlja2VyUmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMudGltZVBpY2tlclJlZiA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbXBsZXRlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuY29tcGxldGUubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMuY29tcGxldGUuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCAjY29ubmVjdG9yIGNsYXNzPVwiZm5nLXRpbWUtcGlja2VyIGZ3ZS1pbnB1dC10ZXh0IGZ3ZS1pbnB1dC10ZXh0LWljb25cIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIj5cbiAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi10aW1lLXRpbWVcIiBbY2xhc3MuZndlLWNvbG9yLWhlcm9dPVwidGltZVBpY2tlclJlZiAhPSBudWxsXCIgW2NsYXNzLmZ3ZS1jb2xvci1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9pPlxuICA8aW5wdXRcbiAgICBhcmlhLWxhYmVsPVwicGlja2VkIHRpbWVcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICByZWFkb25seVxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZCA9PT0gdHJ1ZSB8fCBudWxsXCJcbiAgICBbY2xhc3MuZndlLWJvcmRlci1oZXJvXT1cInRpbWVQaWNrZXJSZWYgIT0gbnVsbFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlIHwgZGF0ZTogdGltZUZvcm1hdFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJmd2UtaW5wdXQtdGV4dC1sYWJlbFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiaGludFwiIGNsYXNzPVwiZndlLWlucHV0LXRleHQtaW5mb1wiPnt7IGhpbnQgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWludmFsaWRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBNEIsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFzQi9DLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUNJLEtBQUssQ0FBQyxJQUFVO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JB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O3NCQUNMLFdBQVc7dUJBQUMsYUFBYTtnQkFFSSxPQUFPO3NCQUFwQyxXQUFXO3VCQUFDLGVBQWU7Z0JBRWMsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZuZ1RpbWVQaWNrZXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXItZHJvcGRvd24vdGltZS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm5nVGltZVBpY2tlck9wdGlvbnMge1xuICB0aW1lRm9ybWF0PzogJzEyJyB8ICcyNCc7XG4gIHNob3dTZWNvbmRzPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2ZuZy10aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm5nVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGbmdUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBnZXQgdmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUoZGF0ZTogRGF0ZSkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlubmVyRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pbm5lckRpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclJlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5uZXJSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGlubmVyUmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEZuZ1RpbWVQaWNrZXJPcHRpb25zIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICB3aWR0aDogc3RyaW5nID0gJ25vbmUnO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBkaXNwbGF5OiBzdHJpbmcgPSAnYmxvY2snO1xuXG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3RvcicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbm5lY3RvcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBnZXQgdGltZUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGxldCB0aW1lRm9ybWF0ID0gJ0g6bW0nO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaG93U2Vjb25kcykge1xuICAgICAgICB0aW1lRm9ybWF0ICs9ICc6c3MnO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy50aW1lRm9ybWF0ID09PSAnMTInKSB7XG4gICAgICAgIHRpbWVGb3JtYXQgPSB0aW1lRm9ybWF0LnRvTG93ZXJDYXNlKCkgKyAnIGEnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGltZUZvcm1hdDtcbiAgfVxuXG4gIHRpbWVQaWNrZXJSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgaW5uZXJWYWx1ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHByb3RlY3RlZCBpbm5lckRpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgdGltZVBpY2tlcjogQ29tcG9uZW50UmVmPEZuZ1RpbWVQaWNrZXJEcm9wZG93bkNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5KSB7fVxuXG4gIG9uVG91Y2hlZDogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBvbkNoYW5nZTogKChkYXRlOiBEYXRlKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICB3cml0ZVZhbHVlKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB0b2dnbGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgcmVzZXRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXJSZWYgPT0gbnVsbCAmJiB0aGlzLmNvbm5lY3RvciAhPSBudWxsICYmIHRoaXMuY29ubmVjdG9yLm5hdGl2ZUVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBsYWJlbFdpZHRoID0gKHRoaXMuY29ubmVjdG9yLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudFdpZHRoO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXJSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICBtaW5XaWR0aDogYCR7bGFiZWxXaWR0aH1weGAsXG4gICAgICAgICAgcGFuZWxDbGFzczogJ2ZuZy1maXJzdC1jaGlsZC1mdWxsd2lkdGgnLFxuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdmbmctZGF0ZS1waWNrZXItYmFja2Ryb3AnLFxuICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuY29ubmVjdG9yLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgIG9mZnNldFk6IC0xMlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiA0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvZmZzZXRZOiAtMTJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG9mZnNldFk6IDRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdGltZVBpY2tlclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoRm5nVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy50aW1lUGlja2VyID0gdGhpcy50aW1lUGlja2VyUmVmLmF0dGFjaCh0aW1lUGlja2VyUG9ydGFsKTtcbiAgICAgICAgdGhpcy50aW1lUGlja2VyLmluc3RhbmNlLnRpbWVGb3JtYXQgPSB0aGlzLm9wdGlvbnMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMudGltZUZvcm1hdCAhPSBudWxsID8gdGhpcy5vcHRpb25zLnRpbWVGb3JtYXQgOiAnMjQnO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXIuaW5zdGFuY2Uuc2hvd1NlY29uZHMgPSB0aGlzLm9wdGlvbnMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuc2hvd1NlY29uZHMgIT0gbnVsbCA/IHRoaXMub3B0aW9ucy5zaG93U2Vjb25kcyA6IGZhbHNlO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXIuaW5zdGFuY2UuZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnRpbWVQaWNrZXIuaW5zdGFuY2UuZGF0ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSkuc3Vic2NyaWJlKGV2ID0+IHtcbiAgICAgICAgICBpZiAoZXYucmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSByZXNldFZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZXYuZGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2LmNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3Bvc2VEcm9wZG93bigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGltZVBpY2tlclJlZlxuICAgICAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wbGV0ZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRpc3Bvc2VEcm9wZG93bigpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcG9zZURyb3Bkb3duKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc3Bvc2VEcm9wZG93bigpIHtcbiAgICBpZiAodGhpcy50aW1lUGlja2VyUmVmICE9IG51bGwpIHtcbiAgICAgIHRoaXMudGltZVBpY2tlclJlZi5kZXRhY2goKTtcbiAgICAgIHRoaXMudGltZVBpY2tlclJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnRpbWVQaWNrZXJSZWYgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wbGV0ZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmNvbXBsZXRlLm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLmNvbXBsZXRlLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWwgI2Nvbm5lY3RvciBjbGFzcz1cImZuZy10aW1lLXBpY2tlciBmd2UtaW5wdXQtdGV4dCBmd2UtaW5wdXQtdGV4dC1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCI+XG4gIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tdGltZS10aW1lXCIgW2NsYXNzLmZ3ZS1jb2xvci1oZXJvXT1cInRpbWVQaWNrZXJSZWYgIT0gbnVsbFwiIFtjbGFzcy5md2UtY29sb3ItY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvaT5cbiAgPGlucHV0XG4gICAgYXJpYS1sYWJlbD1cInBpY2tlZCB0aW1lXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgcmVhZG9ubHlcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWQgPT09IHRydWUgfHwgbnVsbFwiXG4gICAgW2NsYXNzLmZ3ZS1ib3JkZXItaGVyb109XCJ0aW1lUGlja2VyUmVmICE9IG51bGxcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGRhdGU6IHRpbWVGb3JtYXRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIC8+XG4gIDxzcGFuIGNsYXNzPVwiZndlLWlucHV0LXRleHQtbGFiZWxcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImhpbnRcIiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWluZm9cIj57eyBoaW50IH19PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dC1pbnZhbGlkXCI+e3sgZXJyb3IgfX08L3NwYW4+XG48L2xhYmVsPlxuIl19
@@ -4003,6 +4003,19 @@ class FngTimePickerDropdownComponent {
4003
4003
  this.date?.setSeconds(seconds > max ? max : seconds < min ? min : seconds);
4004
4004
  this.onDateChange(false, false);
4005
4005
  }
4006
+ onToggleTimeFormat() {
4007
+ // Get the current hour in 24-hour format
4008
+ let hours = this.date.getHours();
4009
+ if (hours >= 0 && hours < 12) {
4010
+ // Switching from AM to PM
4011
+ this.date.setHours(hours + 12);
4012
+ }
4013
+ else {
4014
+ // Switching from PM to AM
4015
+ this.date.setHours(hours - 12);
4016
+ }
4017
+ this.onDateChange(false, false);
4018
+ }
4006
4019
  onDateChange(close, reset) {
4007
4020
  if (this.date != null) {
4008
4021
  this.date = new Date(this.date);
@@ -4010,11 +4023,11 @@ class FngTimePickerDropdownComponent {
4010
4023
  }
4011
4024
  }
4012
4025
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FngTimePickerDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4013
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FngTimePickerDropdownComponent, isStandalone: true, selector: "fng-time-picker-dropdown", inputs: { date: "date", showSeconds: "showSeconds", timeFormat: "timeFormat" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "document:keydown": "hide($event)" } }, viewQueries: [{ propertyName: "hoursInput", first: true, predicate: ["hoursInput"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date : 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
4026
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FngTimePickerDropdownComponent, isStandalone: true, selector: "fng-time-picker-dropdown", inputs: { date: "date", showSeconds: "showSeconds", timeFormat: "timeFormat" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "document:keydown": "hide($event)" } }, viewQueries: [{ propertyName: "hoursInput", first: true, predicate: ["hoursInput"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-timepicker\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
4014
4027
  }
4015
4028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FngTimePickerDropdownComponent, decorators: [{
4016
4029
  type: Component,
4017
- args: [{ standalone: true, imports: [CommonModule], selector: 'fng-time-picker-dropdown', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date : 'a' }}\n </span>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"] }]
4030
+ args: [{ standalone: true, imports: [CommonModule], selector: 'fng-time-picker-dropdown', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-timepicker\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date : (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date : 'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date : 'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n", styles: [".border-hero{border-color:var(--fwe-hero)!important}.fwe-timepicker{width:100%;max-width:100%}\n"] }]
4018
4031
  }], propDecorators: { date: [{
4019
4032
  type: Input
4020
4033
  }], showSeconds: [{
@@ -4100,7 +4113,7 @@ class FngTimePickerComponent {
4100
4113
  if (this.timePickerRef == null && this.connector != null && this.connector.nativeElement != null) {
4101
4114
  const labelWidth = this.connector.nativeElement.clientWidth;
4102
4115
  this.timePickerRef = this.overlay.create({
4103
- width: `${labelWidth}px`,
4116
+ minWidth: `${labelWidth}px`,
4104
4117
  panelClass: 'fng-first-child-fullwidth',
4105
4118
  hasBackdrop: true,
4106
4119
  backdropClass: 'fng-date-picker-backdrop',
@@ -4122,6 +4135,20 @@ class FngTimePickerComponent {
4122
4135
  overlayX: 'center',
4123
4136
  overlayY: 'bottom',
4124
4137
  offsetY: 4
4138
+ },
4139
+ {
4140
+ originX: 'start',
4141
+ originY: 'bottom',
4142
+ overlayX: 'start',
4143
+ overlayY: 'top',
4144
+ offsetY: -12
4145
+ },
4146
+ {
4147
+ originX: 'start',
4148
+ originY: 'top',
4149
+ overlayX: 'start',
4150
+ overlayY: 'bottom',
4151
+ offsetY: 4
4125
4152
  }
4126
4153
  ])
4127
4154
  .withFlexibleDimensions(false)