ecabs-components 0.0.3 → 0.0.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/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +85 -0
- package/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +36 -0
- package/esm2020/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +17 -0
- package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +85 -0
- package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +59 -0
- package/esm2020/lib/ecabs-increment/ecabs-increment.component.mjs +78 -0
- package/esm2020/lib/ecabs-increment/ecabs-increment.module.mjs +23 -0
- package/esm2020/lib/ecabs-loading/ecabs-loading.component.mjs +3 -3
- package/esm2020/lib/ecabs-phone/ecabs-phone.component.mjs +104 -0
- package/esm2020/lib/ecabs-phone/ecabs-phone.module.mjs +22 -0
- package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +50 -0
- package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +22 -0
- package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +65 -0
- package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +32 -0
- package/esm2020/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +137 -0
- package/esm2020/lib/ecabs-timepicker/config.model.mjs +2 -0
- package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +312 -0
- package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +20 -0
- package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +31 -0
- package/esm2020/lib/models/timepicker.models.mjs +2 -0
- package/esm2020/public-api.mjs +21 -3
- package/fesm2015/ecabs-components.mjs +1108 -40
- package/fesm2015/ecabs-components.mjs.map +1 -1
- package/fesm2020/ecabs-components.mjs +1103 -40
- package/fesm2020/ecabs-components.mjs.map +1 -1
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +28 -0
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +12 -0
- package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +6 -0
- package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +29 -0
- package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +26 -0
- package/lib/ecabs-increment/ecabs-increment.component.d.ts +26 -0
- package/lib/ecabs-increment/ecabs-increment.module.d.ts +13 -0
- package/lib/ecabs-loading/ecabs-loading.component.d.ts +1 -1
- package/lib/ecabs-phone/ecabs-phone.component.d.ts +32 -0
- package/lib/ecabs-phone/ecabs-phone.module.d.ts +12 -0
- package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +19 -0
- package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +12 -0
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +24 -0
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +11 -0
- package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +40 -0
- package/lib/ecabs-timepicker/config.model.d.ts +5 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +53 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.module.d.ts +10 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.service.d.ts +12 -0
- package/lib/models/timepicker.models.d.ts +6 -0
- package/package.json +1 -1
- package/public-api.d.ts +20 -2
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
7
|
+
import { EcabsPickerHeaderComponent } from './ecabs-picker-header.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class EcabsPickerHeaderModule {
|
|
10
|
+
}
|
|
11
|
+
EcabsPickerHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsPickerHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
EcabsPickerHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: EcabsPickerHeaderModule, declarations: [EcabsPickerHeaderComponent], imports: [CommonModule, ElementWrapperModule, MatIconModule, MatButtonModule, MatDatepickerModule], exports: [EcabsPickerHeaderComponent] });
|
|
13
|
+
EcabsPickerHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsPickerHeaderModule, imports: [CommonModule, ElementWrapperModule, MatIconModule, MatButtonModule, MatDatepickerModule] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsPickerHeaderModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [EcabsPickerHeaderComponent],
|
|
18
|
+
imports: [CommonModule, ElementWrapperModule, MatIconModule, MatButtonModule, MatDatepickerModule],
|
|
19
|
+
exports: [EcabsPickerHeaderComponent],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGlja2VyLWhlYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtcGlja2VyLWhlYWRlci9lY2Ficy1waWNrZXItaGVhZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBSmxCLDBCQUEwQixhQUMvQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsYUFDdkYsMEJBQTBCO3NIQUUxQix1QkFBdUIsWUFIdkIsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsbUJBQW1COzRGQUd2Rix1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUU7b0JBQ1QsWUFBWSxFQUFFLENBQUUsMEJBQTBCLENBQUU7b0JBQzVDLE9BQU8sRUFBRSxDQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixDQUFFO29CQUNwRyxPQUFPLEVBQUUsQ0FBRSwwQkFBMEIsQ0FBRTtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbmltcG9ydCB7IEVsZW1lbnRXcmFwcGVyTW9kdWxlIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LXdyYXBwZXIvZWxlbWVudC13cmFwcGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IEVjYWJzUGlja2VySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoIHtcclxuICBkZWNsYXJhdGlvbnM6IFsgRWNhYnNQaWNrZXJIZWFkZXJDb21wb25lbnQgXSxcclxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSwgRWxlbWVudFdyYXBwZXJNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZSBdLFxyXG4gIGV4cG9ydHM6IFsgRWNhYnNQaWNrZXJIZWFkZXJDb21wb25lbnQgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1BpY2tlckhlYWRlck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import ElementBaseComponent from '../base/element-base';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "../base/element-wrapper/element-wrapper.component";
|
|
7
|
+
import * as i3 from "@angular/material/radio";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
export class EcabsRadioButtonListComponent extends ElementBaseComponent {
|
|
10
|
+
constructor(injector) {
|
|
11
|
+
super();
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
this.direction = 'horizontal';
|
|
14
|
+
this.onChange = () => { };
|
|
15
|
+
this.onTouch = () => { };
|
|
16
|
+
}
|
|
17
|
+
get value() {
|
|
18
|
+
return this.val;
|
|
19
|
+
}
|
|
20
|
+
set value(val) {
|
|
21
|
+
if (val !== undefined && this.val !== val) {
|
|
22
|
+
this.val = val;
|
|
23
|
+
this.onChange(val);
|
|
24
|
+
this.onTouch(val);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ngAfterViewInit() {
|
|
28
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
29
|
+
if (ngControl) {
|
|
30
|
+
this.control = ngControl.control;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
writeValue(value) {
|
|
34
|
+
this.value = value;
|
|
35
|
+
}
|
|
36
|
+
registerOnChange(fn) {
|
|
37
|
+
this.onChange = fn;
|
|
38
|
+
}
|
|
39
|
+
registerOnTouched(fn) {
|
|
40
|
+
this.onTouch = fn;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
EcabsRadioButtonListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
EcabsRadioButtonListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EcabsRadioButtonListComponent, selector: "ecabs-radio-button-list", inputs: { items: "items", direction: "direction" }, providers: [
|
|
45
|
+
{
|
|
46
|
+
provide: NG_VALUE_ACCESSOR,
|
|
47
|
+
useExisting: EcabsRadioButtonListComponent,
|
|
48
|
+
multi: true,
|
|
49
|
+
},
|
|
50
|
+
], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-radio-button\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\">{{ item.label }}</mat-radio-button>\r\n </mat-radio-group>\r\n</app-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'ecabs-radio-button-list', providers: [
|
|
54
|
+
{
|
|
55
|
+
provide: NG_VALUE_ACCESSOR,
|
|
56
|
+
useExisting: EcabsRadioButtonListComponent,
|
|
57
|
+
multi: true,
|
|
58
|
+
},
|
|
59
|
+
], template: "<app-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-radio-button\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\">{{ item.label }}</mat-radio-button>\r\n </mat-radio-group>\r\n</app-element-wrapper>\r\n", styles: [".mr-4{margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.flex{display:flex}.flex-col{flex-direction:column}\n"] }]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { items: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], direction: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}] } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0L2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBWSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUE0QyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLG9CQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFjeEQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG9CQUFvQjtJQWtCckUsWUFBcUIsUUFBa0I7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEI5QixjQUFTLEdBQThCLFlBQVksQ0FBQztRQW9CN0QsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBSHpCLENBQUM7SUFkRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFFLEdBQUc7UUFDWixJQUFLLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUc7WUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUUsR0FBRyxDQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBU0QsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLFNBQVMsRUFBRSxJQUFJLENBQWUsQ0FBQztRQUMvRSxJQUFLLFNBQVMsRUFBRztZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQTZCLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFFLEtBQVU7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFFLEVBQU87UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFFLEVBQU87UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7MkhBMUNVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHNHQVI3QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixpRENkSCw0ZEFhQTs0RkRHYSw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBQ0UseUJBQXlCLGFBR3hCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsK0JBQStCOzRCQUMxQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjsrRkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCBFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KCB7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1yYWRpby1idXR0b24tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJ2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0LmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUmFkaW9CdXR0b25MaXN0Q29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1JhZGlvQnV0dG9uTGlzdENvbXBvbmVudCBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGl0ZW1zITogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXTtcclxuICBASW5wdXQoKSBkaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XHJcblxyXG4gIHZhbCE6IHN0cmluZztcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUoIHZhbCApIHtcclxuICAgIGlmICggdmFsICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWwgIT09IHZhbCApIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoIHZhbCApO1xyXG4gICAgICB0aGlzLm9uVG91Y2goIHZhbCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCBOZ0NvbnRyb2wsIG51bGwgKSBhcyBOZ0NvbnRyb2w7XHJcbiAgICBpZiAoIG5nQ29udHJvbCApIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoIGZuOiBhbnkgKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICBbbmdDbGFzc109XCJ7ICdmbGV4IGZsZXgtY29sIG15LTEnOiBkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcgfVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdteS0xJzogZGlyZWN0aW9uID09PSAndmVydGljYWwnIH1cIlxyXG4gICAgICBjbGFzcz1cIm1yLTRcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5sYWJlbCB9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICA8L21hdC1yYWRpby1ncm91cD5cclxuPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
5
|
+
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
6
|
+
import { EcabsRadioButtonListComponent } from './ecabs-radio-button-list.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class EcabsRadioButtonListModule {
|
|
9
|
+
}
|
|
10
|
+
EcabsRadioButtonListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
EcabsRadioButtonListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListModule, declarations: [EcabsRadioButtonListComponent], imports: [CommonModule,
|
|
12
|
+
ElementWrapperModule,
|
|
13
|
+
MatRadioModule,
|
|
14
|
+
FormsModule], exports: [EcabsRadioButtonListComponent] });
|
|
15
|
+
EcabsRadioButtonListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListModule, imports: [CommonModule,
|
|
16
|
+
ElementWrapperModule,
|
|
17
|
+
MatRadioModule,
|
|
18
|
+
FormsModule] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsRadioButtonListModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
declarations: [EcabsRadioButtonListComponent],
|
|
23
|
+
imports: [
|
|
24
|
+
CommonModule,
|
|
25
|
+
ElementWrapperModule,
|
|
26
|
+
MatRadioModule,
|
|
27
|
+
FormsModule
|
|
28
|
+
],
|
|
29
|
+
exports: [EcabsRadioButtonListComponent],
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0L2VjYWJzLXJhZGlvLWJ1dHRvbi1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXRGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVlwRixNQUFNLE9BQU8sMEJBQTBCOzt3SEFBMUIsMEJBQTBCO3lIQUExQiwwQkFBMEIsaUJBVHJCLDZCQUE2QixhQUUzQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxXQUFXLGFBRUYsNkJBQTZCO3lIQUU3QiwwQkFBMEIsWUFQbkMsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsV0FBVzs0RkFJRiwwQkFBMEI7a0JBVnRDLFFBQVE7bUJBQUU7b0JBQ1QsWUFBWSxFQUFFLENBQUUsNkJBQTZCLENBQUU7b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRSxDQUFFLDZCQUE2QixDQUFFO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuXHJcbmltcG9ydCB7IEVsZW1lbnRXcmFwcGVyTW9kdWxlIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LXdyYXBwZXIvZWxlbWVudC13cmFwcGVyLm1vZHVsZSc7XHJcblxyXG5pbXBvcnQgeyBFY2Fic1JhZGlvQnV0dG9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZWNhYnMtcmFkaW8tYnV0dG9uLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGRlY2xhcmF0aW9uczogWyBFY2Fic1JhZGlvQnV0dG9uTGlzdENvbXBvbmVudCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEVsZW1lbnRXcmFwcGVyTW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogWyBFY2Fic1JhZGlvQnV0dG9uTGlzdENvbXBvbmVudCBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVjYWJzUmFkaW9CdXR0b25MaXN0TW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../ecabs-timepicker.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class EcabsTimeListPanelComponent {
|
|
6
|
+
constructor(elementRef, timepickerService) {
|
|
7
|
+
this.elementRef = elementRef;
|
|
8
|
+
this.timepickerService = timepickerService;
|
|
9
|
+
this.listPlacement = 'auto';
|
|
10
|
+
this.listPosition = {};
|
|
11
|
+
this.showDayStart = true;
|
|
12
|
+
this.showDayEnd = false;
|
|
13
|
+
this.position = {};
|
|
14
|
+
this.onscroll = new EventEmitter();
|
|
15
|
+
this.closeMe = new EventEmitter();
|
|
16
|
+
this.hoveredItemIndex = 0;
|
|
17
|
+
this.timeList = [];
|
|
18
|
+
}
|
|
19
|
+
handleKeydown($event) {
|
|
20
|
+
if ($event.key === 'ArrowUp') {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
22
|
+
this.hoveredItemIndex ? this.hoveredItemIndex-- : null;
|
|
23
|
+
this.scrollTo(this.hoveredItemIndex);
|
|
24
|
+
}
|
|
25
|
+
if ($event.key === 'ArrowDown') {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
27
|
+
this.hoveredItemIndex + 1 < this.timeList.length ? this.hoveredItemIndex++ : null;
|
|
28
|
+
this.scrollTo(this.hoveredItemIndex);
|
|
29
|
+
}
|
|
30
|
+
if ($event.key === 'Enter') {
|
|
31
|
+
this.setTime(this.timeList[this.hoveredItemIndex].value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.calcListItems();
|
|
36
|
+
if (this.appendTo) {
|
|
37
|
+
this.appendListTo();
|
|
38
|
+
}
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
this.listItemHeight = this.elementRef.nativeElement.querySelector('li').getBoundingClientRect().height;
|
|
41
|
+
this.selectTypedValue(this.typedValue);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
appendListTo() {
|
|
45
|
+
const parent = document.querySelector(this.appendTo);
|
|
46
|
+
if (!parent) {
|
|
47
|
+
throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);
|
|
48
|
+
}
|
|
49
|
+
parent.appendChild(this.elementRef.nativeElement);
|
|
50
|
+
}
|
|
51
|
+
calcListItems() {
|
|
52
|
+
if (this.showDayStart) {
|
|
53
|
+
this.timeList.push({
|
|
54
|
+
value: '00:00',
|
|
55
|
+
title: this.timepickerService.getConfig().dayStart,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
for (let index = 0; index < 24; index++) {
|
|
59
|
+
for (const minute of ['00', '30']) {
|
|
60
|
+
if (index === 0 && minute === '00') {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
this.timeList.push({
|
|
64
|
+
value: (index > 9 ? index + '' : '0' + index) + ':' + minute,
|
|
65
|
+
title: (index > 9 ? index + '' : '0' + index) + ':' + minute,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (this.showDayEnd) {
|
|
70
|
+
this.timeList.push({
|
|
71
|
+
value: '23:59',
|
|
72
|
+
title: this.timepickerService.getConfig().dayEnd,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
ngOnChanges() {
|
|
77
|
+
this.selectTypedValue(this.typedValue);
|
|
78
|
+
if (this.elementRef.nativeElement) {
|
|
79
|
+
this.elementRef.nativeElement.style.top = this.listPosition.top + 'px';
|
|
80
|
+
this.elementRef.nativeElement.style.left = this.listPosition.left + 'px';
|
|
81
|
+
this.elementRef.nativeElement.style.width = this.listPosition.width + 'px';
|
|
82
|
+
if (this.appendTo) {
|
|
83
|
+
this.elementRef.nativeElement.style.position = 'fixed';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
selectTypedValue(value) {
|
|
88
|
+
if (value) {
|
|
89
|
+
const hour = parseInt(value.split(':')[0], 10);
|
|
90
|
+
if (hour || hour === 0) {
|
|
91
|
+
this.hoveredItemIndex = hour * 2;
|
|
92
|
+
this.scrollTo(this.hoveredItemIndex);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
scrollTo(index) {
|
|
97
|
+
this.elementRef.nativeElement.querySelector('.inner-scroll').scrollTop = index * this.listItemHeight;
|
|
98
|
+
}
|
|
99
|
+
close() {
|
|
100
|
+
this.closeMe.emit(null);
|
|
101
|
+
}
|
|
102
|
+
setTime(value) {
|
|
103
|
+
this.closeMe.emit(value);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
EcabsTimeListPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTimeListPanelComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormTimePickerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
EcabsTimeListPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: EcabsTimeListPanelComponent, selector: "ecabs-time-list-panel", inputs: { typedValue: "typedValue", listPlacement: "listPlacement", listPosition: "listPosition", appendTo: "appendTo", min: "min", max: "max", showDayStart: "showDayStart", showDayEnd: "showDayEnd", position: "position" }, outputs: { onscroll: "onscroll", closeMe: "closeMe" }, host: { listeners: { "document:keydown": "handleKeydown($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\"\r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EcabsTimeListPanelComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ selector: 'ecabs-time-list-panel', template: "<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\"\r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormTimePickerService }]; }, propDecorators: { typedValue: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], listPlacement: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], listPosition: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], appendTo: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], min: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], max: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], showDayStart: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], showDayEnd: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], position: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], onscroll: [{
|
|
130
|
+
type: Output
|
|
131
|
+
}], closeMe: [{
|
|
132
|
+
type: Output
|
|
133
|
+
}], handleKeydown: [{
|
|
134
|
+
type: HostListener,
|
|
135
|
+
args: ['document:keydown', ['$event']]
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2NvbXBvbmV0cy9lY2Ficy10aW1lLWxpc3QtcGFuZWwvZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2NvbXBvbmV0cy9lY2Ficy10aW1lLWxpc3QtcGFuZWwvZWNhYnMtdGltZS1saXN0LXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQzs7OztBQU9wSCxNQUFNLE9BQU8sMkJBQTJCO0lBb0J0QyxZQUFxQixVQUFzQixFQUFVLGlCQUF3QztRQUF4RSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQWxCcEYsa0JBQWEsR0FBa0IsTUFBTSxDQUFDO1FBQ3RDLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUtoQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBRTNCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBa0MsQ0FBQztRQUM5RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFvQyxFQUFFLENBQUM7SUFJbUQsQ0FBQztJQUduRyxhQUFhLENBQUUsTUFBcUI7UUFDbEMsSUFBSyxNQUFN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R0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFFLEtBQWE7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFFLGVBQWUsQ0FBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUUsS0FBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztJQUM3QixDQUFDOzt5SEFySFUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsK2FDUHhDLHllQWdCQTs0RkRUYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsdUJBQXVCO3FJQUl4QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQVVQLGFBQWE7c0JBRFosWUFBWTt1QkFBRSxrQkFBa0IsRUFBRSxDQUFFLFFBQVEsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpc3RQbGFjZW1lbnQsIExpc3RQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90aW1lcGlja2VyLm1vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1UaW1lUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2VjYWJzLXRpbWVwaWNrZXIuc2VydmljZSc7XHJcbkBDb21wb25lbnQoIHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLXRpbWUtbGlzdC1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXRpbWUtbGlzdC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUaW1lTGlzdFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHR5cGVkVmFsdWU6IGFueTtcclxuICBASW5wdXQoKSBsaXN0UGxhY2VtZW50OiBMaXN0UGxhY2VtZW50ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGxpc3RQb3NpdGlvbjogTGlzdFBvc2l0aW9uID0ge307XHJcblxyXG4gIEBJbnB1dCgpIGFwcGVuZFRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXghOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0RheVN0YXJ0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RGF5RW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcG9zaXRpb246IExpc3RQb3NpdGlvbiA9IHt9O1xyXG5cclxuICBAT3V0cHV0KCkgb25zY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VNZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBob3ZlcmVkSXRlbUluZGV4ID0gMDtcclxuICB0aW1lTGlzdDogeyB2YWx1ZTogYW55OyB0aXRsZTogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGxpc3RJdGVtSGVpZ2h0ITogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHRpbWVwaWNrZXJTZXJ2aWNlOiBGb3JtVGltZVBpY2tlclNlcnZpY2UgKSB7IH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lciggJ2RvY3VtZW50OmtleWRvd24nLCBbICckZXZlbnQnIF0gKVxyXG4gIGhhbmRsZUtleWRvd24oICRldmVudDogS2V5Ym9hcmRFdmVudCApOiB2b2lkIHtcclxuICAgIGlmICggJGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnICkge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgICB0aGlzLmhvdmVyZWRJdGVtSW5kZXggPyB0aGlzLmhvdmVyZWRJdGVtSW5kZXgtLSA6IG51bGw7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG8oIHRoaXMuaG92ZXJlZEl0ZW1JbmRleCApO1xyXG4gICAgfVxyXG4gICAgaWYgKCAkZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyApIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgICAgdGhpcy5ob3ZlcmVkSXRlbUluZGV4ICsgMSA8IHRoaXMudGltZUxpc3QubGVuZ3RoID8gdGhpcy5ob3ZlcmVkSXRlbUluZGV4KysgOiBudWxsO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvKCB0aGlzLmhvdmVyZWRJdGVtSW5kZXggKTtcclxuICAgIH1cclxuICAgIGlmICggJGV2ZW50LmtleSA9PT0gJ0VudGVyJyApIHtcclxuICAgICAgdGhpcy5zZXRUaW1lKCB0aGlzLnRpbWVMaXN0WyB0aGlzLmhvdmVyZWRJdGVtSW5kZXggXS52YWx1ZSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGNMaXN0SXRlbXMoKTtcclxuICAgIGlmICggdGhpcy5hcHBlbmRUbyApIHtcclxuICAgICAgdGhpcy5hcHBlbmRMaXN0VG8oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdEl0ZW1IZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCAnbGknICkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICB0aGlzLnNlbGVjdFR5cGVkVmFsdWUoIHRoaXMudHlwZWRWYWx1ZSApO1xyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgYXBwZW5kTGlzdFRvKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFyZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggdGhpcy5hcHBlbmRUbyApO1xyXG4gICAgaWYgKCAhcGFyZW50ICkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoIGBhcHBlbmRUbyBzZWxlY3RvciAkeyB0aGlzLmFwcGVuZFRvIH0gZGlkIG5vdCBmb3VuZCBhbnkgcGFyZW50IGVsZW1lbnRgICk7XHJcbiAgICB9XHJcbiAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICk7XHJcbiAgfVxyXG5cclxuICBjYWxjTGlzdEl0ZW1zKCk6IHZvaWQge1xyXG4gICAgaWYgKCB0aGlzLnNob3dEYXlTdGFydCApIHtcclxuICAgICAgdGhpcy50aW1lTGlzdC5wdXNoKCB7XHJcbiAgICAgICAgdmFsdWU6ICcwMDowMCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuZGF5U3RhcnQsXHJcbiAgICAgIH0gKTtcclxuICAgIH1cclxuICAgIGZvciAoIGxldCBpbmRleCA9IDA7IGluZGV4IDwgMjQ7IGluZGV4KysgKSB7XHJcbiAgICAgIGZvciAoIGNvbnN0IG1pbnV0ZSBvZiBbICcwMCcsICczMCcgXSApIHtcclxuICAgICAgICBpZiAoIGluZGV4ID09PSAwICYmIG1pbnV0ZSA9PT0gJzAwJyApIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRpbWVMaXN0LnB1c2goIHtcclxuICAgICAgICAgIHZhbHVlOiAoIGluZGV4ID4gOSA/IGluZGV4ICsgJycgOiAnMCcgKyBpbmRleCApICsgJzonICsgbWludXRlLFxyXG4gICAgICAgICAgdGl0bGU6ICggaW5kZXggPiA5ID8gaW5kZXggKyAnJyA6ICcwJyArIGluZGV4ICkgKyAnOicgKyBtaW51dGUsXHJcbiAgICAgICAgfSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIHRoaXMuc2hvd0RheUVuZCApIHtcclxuICAgICAgdGhpcy50aW1lTGlzdC5wdXNoKCB7XHJcbiAgICAgICAgdmFsdWU6ICcyMzo1OScsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuZGF5RW5kLFxyXG4gICAgICB9ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0VHlwZWRWYWx1ZSggdGhpcy50eXBlZFZhbHVlICk7XHJcbiAgICBpZiAoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICkge1xyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLmxpc3RQb3NpdGlvbi50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy5saXN0UG9zaXRpb24ubGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5saXN0UG9zaXRpb24ud2lkdGggKyAncHgnO1xyXG4gICAgICBpZiAoIHRoaXMuYXBwZW5kVG8gKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUeXBlZFZhbHVlKCB2YWx1ZTogYW55ICk6IHZvaWQge1xyXG4gICAgaWYgKCB2YWx1ZSApIHtcclxuICAgICAgY29uc3QgaG91ciA9IHBhcnNlSW50KCB2YWx1ZS5zcGxpdCggJzonIClbIDAgXSwgMTAgKTtcclxuICAgICAgaWYgKCBob3VyIHx8IGhvdXIgPT09IDAgKSB7XHJcbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbUluZGV4ID0gaG91ciAqIDI7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUbyggdGhpcy5ob3ZlcmVkSXRlbUluZGV4ICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvKCBpbmRleDogbnVtYmVyICk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvciggJy5pbm5lci1zY3JvbGwnICkuc2Nyb2xsVG9wID0gaW5kZXggKiB0aGlzLmxpc3RJdGVtSGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlTWUuZW1pdCggbnVsbCApO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VNZS5lbWl0KCB2YWx1ZSApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGlzdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICA8dWw+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaSBvZiB0aW1lTGlzdDsgbGV0IGNvdW50ZXIgPSBpbmRleFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0VGltZShpLnZhbHVlKVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkSXRlbUluZGV4ID0gY291bnRlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdHlwZWRWYWx1ZSA9PT0gaS52YWx1ZSwgaG92ZXJlZDogY291bnRlciA9PT0gaG92ZXJlZEl0ZW1JbmRleCB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpLnRpdGxlIH19XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXRpbWVwaWNrZXIvY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZvcm1UaW1lUGlja2VyQ29uZmlnIHtcclxuICBkYXlTdGFydDogc3RyaW5nO1xyXG4gIGRheUVuZDogc3RyaW5nO1xyXG4gIGljb25DbGFzczogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|