@softpak/components 0.1.3-beta.9 → 0.1.4-beta.2
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/esm2022/spx-app-update/spx-app-update.component.mjs +5 -7
- package/esm2022/spx-change-details/spx-change-details.component.mjs +13 -9
- package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +37 -33
- package/esm2022/spx-inputs/spx-input-time.component.mjs +36 -37
- package/esm2022/spx-spinner/spx-spinner.component.mjs +3 -3
- package/fesm2022/softpak-components-spx-app-update.mjs +4 -6
- package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +13 -9
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +66 -66
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-spinner.mjs +2 -2
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/package.json +24 -24
- package/spx-change-details/spx-change-details.component.d.ts +3 -2
- package/spx-inputs/spx-input-time-modal.component.d.ts +4 -2
- package/spx-inputs/spx-input-time.component.d.ts +4 -2
- package/tailwind.css +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { NgClass, NgIf } from '@angular/common';
|
|
2
2
|
import { Component, Input } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
|
|
5
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
6
5
|
import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
|
|
7
6
|
import { SpxInputComponent } from '@softpak/components/spx-inputs';
|
|
@@ -9,11 +8,13 @@ import { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';
|
|
|
9
8
|
import { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';
|
|
10
9
|
import { Device } from '@capacitor/device';
|
|
11
10
|
import { getCurrentScope } from '@sentry/angular';
|
|
11
|
+
import { IonicModule } from '@ionic/angular';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "cordova-plugin-ionic/dist/ngx";
|
|
14
14
|
import * as i2 from "@angular/router";
|
|
15
15
|
import * as i3 from "@ngx-translate/core";
|
|
16
16
|
import * as i4 from "@angular/forms";
|
|
17
|
+
import * as i5 from "@ionic/angular";
|
|
17
18
|
const ctrlNextVersionNumber = 'ctrlNextVersionNumber';
|
|
18
19
|
const ctrlVersionNumber = 'ctrlVersionNumber';
|
|
19
20
|
const ctrlConfiguredChannel = 'ctrlConfiguredChannel';
|
|
@@ -238,7 +239,7 @@ export class SpxAppUpdateComponent {
|
|
|
238
239
|
</div>
|
|
239
240
|
</form>
|
|
240
241
|
</div>
|
|
241
|
-
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
242
|
+
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i5.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i5.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i5.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i5.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
242
243
|
}
|
|
243
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxAppUpdateComponent, decorators: [{
|
|
244
245
|
type: Component,
|
|
@@ -247,10 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
247
248
|
standalone: true,
|
|
248
249
|
imports: [
|
|
249
250
|
FormsModule,
|
|
250
|
-
|
|
251
|
-
IonHeader,
|
|
252
|
-
IonTitle,
|
|
253
|
-
IonToolbar,
|
|
251
|
+
IonicModule,
|
|
254
252
|
NgClass,
|
|
255
253
|
NgIf,
|
|
256
254
|
ReactiveFormsModule,
|
|
@@ -315,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
315
313
|
}], spxAppId: [{
|
|
316
314
|
type: Input
|
|
317
315
|
}] } });
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBcUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBRWxELE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztBQUM5QyxNQUFNLHFCQUFxQixHQUFHLHVCQUF1QixDQUFDO0FBQ3RELE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUE4Q2xELE1BQU0s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c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25UaXRsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuaW1wb3J0IHsgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgU3B4U3RvcmFnZSwgU3B4U3RvcmFnZUtleUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1zdG9yYWdlJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0BjYXBhY2l0b3IvZGV2aWNlJztcbmltcG9ydCB7IERlcGxveSB9IGZyb20gJ2NvcmRvdmEtcGx1Z2luLWlvbmljL2Rpc3Qvbmd4JztcbmltcG9ydCB7IGdldEN1cnJlbnRTY29wZSB9IGZyb20gJ0BzZW50cnkvYW5ndWxhcic7XG5cbmNvbnN0IGN0cmxOZXh0VmVyc2lvbk51bWJlciA9ICdjdHJsTmV4dFZlcnNpb25OdW1iZXInO1xuY29uc3QgY3RybFZlcnNpb25OdW1iZXIgPSAnY3RybFZlcnNpb25OdW1iZXInO1xuY29uc3QgY3RybENvbmZpZ3VyZWRDaGFubmVsID0gJ2N0cmxDb25maWd1cmVkQ2hhbm5lbCc7XG5jb25zdCBjdHJsQXBwU3RvcmVWZXJzaW9uID0gJ2N0cmxBcHBTdG9yZVZlcnNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtYXBwLXVwZGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkhlYWRlcixcbiAgICBJb25UaXRsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNweENhcGl0YWxpemVQaXBlLFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICAgIFNweFByb2dyZXNzQmFyQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGA8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eyB0eHRVcGRhdGUgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplIH19XG4gICAgPC9pb24tdGl0bGU+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1jb250ZW50LS11cGRcIiBbZnVsbHNjcmVlbl09XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgIDxzcHgtcHJvZ3Jlc3MtYmFyIFtzcHhQZXJjZW50YWdlXT1cImRlbGF5ZWRQZXJjZW50YWdlXCIgW3NweFRpdGxlXT1cInVwZGF0ZVN0YXR1cyB8IGNhcGl0YWxpemVcIj5cbiAgICA8L3NweC1wcm9ncmVzcy1iYXI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJtdC0zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY3RybEFwcFN0b3JlVmVyc2lvbi52YWx1ZSAmJiBjdHJsQXBwU3RvcmVWZXJzaW9uLnZhbHVlLnZhbHVlXCIgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIHhsOmdyaWQtY29scy0zIGdhcC0zXCI+XG4gICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxBcHBTdG9yZVZlcnNpb25cIiBbc3B4TGFiZWxdPVwidHh0QXBwU3RvcmVWZXJzaW9uIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybENvbmZpZ3VyZWRDaGFubmVsXCIgW3NweExhYmVsXT1cInR4dENoYW5uZWwgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsVmVyc2lvbk51bWJlclwiIFtzcHhMYWJlbF09XCJ0eHRWZXJzaW9uIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgPHNweC1pbnB1dCAqbmdJZj1cImN0cmxOZXh0VmVyc2lvbk51bWJlci52YWx1ZSAmJiBjdHJsTmV4dFZlcnNpb25OdW1iZXIudmFsdWUudmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwiY3RybE5leHRWZXJzaW9uTnVtYmVyXCIgW3NweExhYmVsXT1cInR4dE5leHRWZXJzaW9uIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEFwcFVwZGF0ZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNweEhvbWVVcmwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweElzU2lnbmVkSW4hOiBib29sZWFuO1xuICBASW5wdXQoKSB0ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RG93bmxvYWRpbmdVcGRhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRFcnJvcldoaWxlVXBkYXRpbmdBcHAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRGaW5pc2hlZFVwZGF0aW5nITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Tm9VcGRhdGVzQXZhaWxhYmxlITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0VW5leHBlY3RlZEVycm9yITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRBcHBTdG9yZVZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENoYW5uZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dE5leHRWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRVcGRhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweEFwcElkITogc3RyaW5nO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBkZWxheWVkUGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgcGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgc3luY1RydWNrSW50ZXJ2YWw6IGFueSB8IG51bGwgPSBudWxsO1xuICB1cGRhdGVTdGF0dXM6IHN0cmluZyA9IHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveTogRGVwbG95LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIFtjdHJsTmV4dFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxWZXJzaW9uTnVtYmVyXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsQ29uZmlndXJlZENoYW5uZWxdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxBcHBTdG9yZVZlcnNpb25dOiBbbnVsbCwgW11dLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGN0cmxWZXJzaW9uTnVtYmVyKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsTmV4dFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsTmV4dFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQ29uZmlndXJlZENoYW5uZWwoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQ29uZmlndXJlZENoYW5uZWwpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQXBwU3RvcmVWZXJzaW9uKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybEFwcFN0b3JlVmVyc2lvbikgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBpbml0KCkge1xuICAgIHRoaXMuZGVsYXllZFBlcmNlbnRhZ2UgPSAwO1xuICAgIHRoaXMucGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJmb3JtQXV0b21hdGljVXBkYXRlKCkudGhlbigoKSA9PiB7IH0pO1xuICAgIHRoaXMuc3RhcnRMb2FkZXJTeW5jKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgcGVyY2VudGFnZTogMCxcbiAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcyksXG4gICAgfSk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcExvYWRlclN5bmMoKTtcbiAgfVxuXG4gIGFzeW5jIHBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKSB7XG4gICAgY29uc3QgZGV2aWNlSW5mbyA9IGF3YWl0IERldmljZS5nZXRJbmZvKCk7XG5cbiAgICBpZiAoZGV2aWNlSW5mbz8ucGxhdGZvcm0gPT09ICd3ZWInKSB7XG4gICAgICAvLyBMb2NhbD8gU2tpcCB0aGUgdXBkYXRlIHBhZ2UuXG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgLy8gU3RhcnQgdXBncmFkZVxuICAgICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgICAgaWYgKGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSkge1xuICAgICAgICBjb25zdCBiaW5hcnlHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmJpbmFyeVZlcnNpb25OYW1lLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVsxXS5zdWJzdHJpbmcoMCwgMyk7IC8vIGUuZy4gXCIxLjRcIlxuICAgICAgICBjb25zdCBjaGFubmVsVHlwZSA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVswXTtcblxuICAgICAgICBpZiAoYmluYXJ5R3JvdXAgIT0gY2hhbm5lbEdyb3VwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuY29uZmlndXJlKHtcbiAgICAgICAgICAgIGFwcElkOiB0aGlzLnNweEFwcElkLFxuICAgICAgICAgICAgY2hhbm5lbDogYCR7Y2hhbm5lbFR5cGV9LSR7YmluYXJ5R3JvdXB9LnhgXG4gICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zeW5jKCkudGhlbigoKSA9PiB7IH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICB9XG4gICAgICAvLyBFbmQgdXBncmFkZVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3luYygpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVJbmZvKCk7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZUF2YWlsYWJsZUluZm8gPSBhd2FpdCB0aGlzLmRlcGxveS5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgaWYgKCF1cGRhdGVBdmFpbGFibGVJbmZvLmF2YWlsYWJsZSkge1xuICAgICAgICAvLyBObyB1cGRhdGUgYXZhaWxhYmxlXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dE5vVXBkYXRlc0F2YWlsYWJsZSksXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRG93bmxvYWQgdXBkYXRlXG4gICAgICAgIGF3YWl0IHRoaXMuZGVwbG95LnN5bmMoeyB1cGRhdGVNZXRob2Q6ICdhdXRvJyB9LCAocGVyY2VudGFnZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UgPz8gMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dERvd25sb2FkaW5nVXBkYXRlLCB7IHBlcmNlbnRhZ2UsIHZlcnNpb246IHVwZGF0ZUF2YWlsYWJsZUluZm8uYnVpbGQgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRFcnJvcldoaWxlVXBkYXRpbmdBcHApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEZpbmlzaGVkVXBkYXRpbmcsIHsgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBDYXRjaCB1bmV4cGVjdGVkIHBsdWctaW4gZXJyb3JzXG4gICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRVbmV4cGVjdGVkRXJyb3IpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUluZm8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDb25maWd1cmF0aW9uKCk7XG4gICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG5cbiAgICBpZiAoY3VycmVudFZlcnNpb24pIHtcbiAgICAgIHRoaXMuY3RybFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbj8uY3VycmVudEJ1aWxkSWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybE5leHRWZXJzaW9uTnVtYmVyLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IHVwZGF0ZUF2YWlsYWJsZUluZm8/LmJ1aWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybENvbmZpZ3VyZWRDaGFubmVsLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmNoYW5uZWwgOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybEFwcFN0b3JlVmVyc2lvbi5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uID8gY29uZmlndXJhdGlvbi5iaW5hcnlWZXJzaW9uTmFtZSA6IG51bGxcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gZ2V0Q3VycmVudFNjb3BlKCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfY29kZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uQ29kZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfbmFtZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9idWlsZF9pZCcsIGN1cnJlbnRWZXJzaW9uPy5idWlsZElkKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdjaGFubmVsX3R5cGUnLCBjdXJyZW50VmVyc2lvbj8uY2hhbm5lbCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9zbmFwc2hvdF9pZCcsIGN1cnJlbnRWZXJzaW9uPy52ZXJzaW9uSWQpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYudGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RhdHVzKHN0YXR1czoge1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBjbG9zZVNjcmVlbj86IGJvb2xlYW47XG4gICAgcGVyY2VudGFnZTogbnVtYmVyO1xuICB9KSB7XG4gICAgdGhpcy51cGRhdGVTdGF0dXMgPSBzdGF0dXMudGV4dDtcbiAgICB0aGlzLnBlcmNlbnRhZ2UgPSBzdGF0dXMucGVyY2VudGFnZTtcbiAgICBpZiAoc3RhdHVzLmNsb3NlU2NyZWVuKSB7XG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMuZXJyb3IpIHtcbiAgICAgIC8vIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2goXG4gICAgICAvLyAgIHNoYXJlZFRvYXN0ZXJBY3Rpb25zLkNSRUFURV9FUlJPUih7XG4gICAgICAvLyAgICAgbWVzc2FnZVRleHQ6IHN0YXR1cy5lcnJvcixcbiAgICAgIC8vICAgfSlcbiAgICAgIC8vICk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVXBkYXRlU2NyZWVuKCkge1xuICAgIC8vIEFsbG93aW5nIHNvbWUgdGltZSB0byBtYWtlIGEgc2NyZWVuc2hvdCBvZiB2ZXJzaW9uIGluZm9cbiAgICBTcHhTdG9yYWdlLmNsZWFyU2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLnVwZGF0ZUluUHJvZ3Jlc3MpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBTcHhTdG9yYWdlLmdldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS5hZnRlclNpZ25JbikgJiZcbiAgICAgICAgdGhpcy5zcHhJc1NpZ25lZEluXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1NweFN0b3JhZ2UuZ2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKV0pO1xuICAgICAgICBTcHhTdG9yYWdlLmNsZWFyU2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuc3B4SG9tZVVybF0pO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydExvYWRlclN5bmMoKSB7XG4gICAgU3B4U3RvcmFnZS5zZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcywgJzEnKTtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IHRoaXMucGVyY2VudGFnZTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wTG9hZGVyU3luYygpIHtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnN5bmNUcnVja0ludGVydmFsKTtcbiAgICAgIHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBcUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUU3QyxNQUFNLHFCQUFxQixHQUFHLHVCQUF1QixDQUFDO0FBQ3RELE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDOUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBMkNsRCxNQUFNLE9BQU8scUJBQXFCO0lBdUJoQyxZQUNtQixNQUFj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QUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNweENhcGl0YWxpemVQaXBlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtY2FwaXRhbGl6ZSc7XG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXByb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBTcHhTdG9yYWdlLCBTcHhTdG9yYWdlS2V5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN0b3JhZ2UnO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnQGNhcGFjaXRvci9kZXZpY2UnO1xuaW1wb3J0IHsgRGVwbG95IH0gZnJvbSAnY29yZG92YS1wbHVnaW4taW9uaWMvZGlzdC9uZ3gnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFNjb3BlIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5jb25zdCBjdHJsTmV4dFZlcnNpb25OdW1iZXIgPSAnY3RybE5leHRWZXJzaW9uTnVtYmVyJztcbmNvbnN0IGN0cmxWZXJzaW9uTnVtYmVyID0gJ2N0cmxWZXJzaW9uTnVtYmVyJztcbmNvbnN0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCA9ICdjdHJsQ29uZmlndXJlZENoYW5uZWwnO1xuY29uc3QgY3RybEFwcFN0b3JlVmVyc2lvbiA9ICdjdHJsQXBwU3RvcmVWZXJzaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWFwcC11cGRhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBOZ0lmLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4Q2FwaXRhbGl6ZVBpcGUsXG4gICAgU3B4SW5wdXRDb21wb25lbnQsXG4gICAgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYDxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXI+XG4gICAgPGlvbi10aXRsZT5cbiAgICAgIHt7IHR4dFVwZGF0ZSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemUgfX1cbiAgICA8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLWNvbnRlbnQtLXVwZFwiIFtmdWxsc2NyZWVuXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgPHNweC1wcm9ncmVzcy1iYXIgW3NweFBlcmNlbnRhZ2VdPVwiZGVsYXllZFBlcmNlbnRhZ2VcIiBbc3B4VGl0bGVdPVwidXBkYXRlU3RhdHVzIHwgY2FwaXRhbGl6ZVwiPlxuICAgIDwvc3B4LXByb2dyZXNzLWJhcj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cIm10LTNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjdHJsQXBwU3RvcmVWZXJzaW9uLnZhbHVlICYmIGN0cmxBcHBTdG9yZVZlcnNpb24udmFsdWUudmFsdWVcIiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgeGw6Z3JpZC1jb2xzLTMgZ2FwLTNcIj5cbiAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybEFwcFN0b3JlVmVyc2lvblwiIFtzcHhMYWJlbF09XCJ0eHRBcHBTdG9yZVZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQ29uZmlndXJlZENoYW5uZWxcIiBbc3B4TGFiZWxdPVwidHh0Q2hhbm5lbCB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxWZXJzaW9uTnVtYmVyXCIgW3NweExhYmVsXT1cInR4dFZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICA8c3B4LWlucHV0ICpuZ0lmPVwiY3RybE5leHRWZXJzaW9uTnVtYmVyLnZhbHVlICYmIGN0cmxOZXh0VmVyc2lvbk51bWJlci52YWx1ZS52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJjdHJsTmV4dFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0TmV4dFZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvaW9uLWNvbnRlbnQ+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4QXBwVXBkYXRlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4SG9tZVVybCE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4SXNTaWduZWRJbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRleHRDaGVja2luZ0ZvclVwZGF0ZXMhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHREb3dubG9hZGluZ1VwZGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEVycm9yV2hpbGVVcGRhdGluZ0FwcCE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEZpbmlzaGVkVXBkYXRpbmchOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHROb1VwZGF0ZXNBdmFpbGFibGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRVbmV4cGVjdGVkRXJyb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dEFwcFN0b3JlVmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q2hhbm5lbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0TmV4dFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFVwZGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4QXBwSWQhOiBzdHJpbmc7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlbGF5ZWRQZXJjZW50YWdlOiBudW1iZXIgPSAwO1xuICBwZXJjZW50YWdlOiBudW1iZXIgPSAwO1xuICBzeW5jVHJ1Y2tJbnRlcnZhbDogYW55IHwgbnVsbCA9IG51bGw7XG4gIHVwZGF0ZVN0YXR1czogc3RyaW5nID0gdGhpcy50ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95OiBEZXBsb3ksXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgW2N0cmxOZXh0VmVyc2lvbk51bWJlcl06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxDb25maWd1cmVkQ2hhbm5lbF06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybEFwcFN0b3JlVmVyc2lvbl06IFtudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY3RybFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsVmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxOZXh0VmVyc2lvbk51bWJlcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxOZXh0VmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxDb25maWd1cmVkQ2hhbm5lbCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxBcHBTdG9yZVZlcnNpb24oKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQXBwU3RvcmVWZXJzaW9uKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIGluaXQoKSB7XG4gICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJjZW50YWdlID0gMDtcbiAgICB0aGlzLnBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgdGhpcy5zdGFydExvYWRlclN5bmMoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzKSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9wTG9hZGVyU3luYygpO1xuICB9XG5cbiAgYXN5bmMgcGVyZm9ybUF1dG9tYXRpY1VwZGF0ZSgpIHtcbiAgICBjb25zdCBkZXZpY2VJbmZvID0gYXdhaXQgRGV2aWNlLmdldEluZm8oKTtcblxuICAgIGlmIChkZXZpY2VJbmZvPy5wbGF0Zm9ybSA9PT0gJ3dlYicpIHtcbiAgICAgIC8vIExvY2FsPyBTa2lwIHRoZSB1cGRhdGUgcGFnZS5cbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlSW5mbygpO1xuXG4gICAgICAvLyBTdGFydCB1cGdyYWRlXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBpZiAoY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKSB7XG4gICAgICAgIGNvbnN0IGJpbmFyeUdyb3VwID0gY3VycmVudFZlcnNpb24uYmluYXJ5VmVyc2lvbk5hbWUuc3Vic3RyaW5nKDAsIDMpOyAvLyBlLmcuIFwiMS40XCJcbiAgICAgICAgY29uc3QgY2hhbm5lbEdyb3VwID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzFdLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxUeXBlID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzBdO1xuXG4gICAgICAgIGlmIChiaW5hcnlHcm91cCAhPSBjaGFubmVsR3JvdXApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRlcGxveS5jb25maWd1cmUoe1xuICAgICAgICAgICAgYXBwSWQ6IHRoaXMuc3B4QXBwSWQsXG4gICAgICAgICAgICBjaGFubmVsOiBgJHtjaGFubmVsVHlwZX0tJHtiaW5hcnlHcm91cH0ueGBcbiAgICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgIH1cbiAgICAgIC8vIEVuZCB1cGdyYWRlXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0VW5leHBlY3RlZEVycm9yKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzeW5jKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICBpZiAoIXVwZGF0ZUF2YWlsYWJsZUluZm8uYXZhaWxhYmxlKSB7XG4gICAgICAgIC8vIE5vIHVwZGF0ZSBhdmFpbGFibGVcbiAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Tm9VcGRhdGVzQXZhaWxhYmxlKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEb3dubG9hZCB1cGRhdGVcbiAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuc3luYyh7IHVwZGF0ZU1ldGhvZDogJ2F1dG8nIH0sIChwZXJjZW50YWdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgcGVyY2VudGFnZTogcGVyY2VudGFnZSA/PyAwLFxuICAgICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RG93bmxvYWRpbmdVcGRhdGUsIHsgcGVyY2VudGFnZSwgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEVycm9yV2hpbGVVcGRhdGluZ0FwcCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RmluaXNoZWRVcGRhdGluZywgeyB2ZXJzaW9uOiB1cGRhdGVBdmFpbGFibGVJbmZvLmJ1aWxkIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIENhdGNoIHVuZXhwZWN0ZWQgcGx1Zy1pbiBlcnJvcnNcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlSW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldENvbmZpZ3VyYXRpb24oKTtcbiAgICBjb25zdCB1cGRhdGVBdmFpbGFibGVJbmZvID0gYXdhaXQgdGhpcy5kZXBsb3kuY2hlY2tGb3JVcGRhdGUoKTtcblxuICAgIGlmIChjdXJyZW50VmVyc2lvbikge1xuICAgICAgdGhpcy5jdHJsVmVyc2lvbk51bWJlci5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uPy5jdXJyZW50QnVpbGRJZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsTmV4dFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogdXBkYXRlQXZhaWxhYmxlSW5mbz8uYnVpbGRcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQ29uZmlndXJlZENoYW5uZWwuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbiA/IGNvbmZpZ3VyYXRpb24uY2hhbm5lbCA6IG51bGxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQXBwU3RvcmVWZXJzaW9uLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmJpbmFyeVZlcnNpb25OYW1lIDogbnVsbFxuICAgICAgfSk7XG5cbiAgICAgIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBnZXRDdXJyZW50U2NvcGUoKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9jb2RlJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25Db2RlKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9uYW1lJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2J1aWxkX2lkJywgY3VycmVudFZlcnNpb24/LmJ1aWxkSWQpO1xuICAgICAgICBzY29wZS5zZXRUYWcoJ2NoYW5uZWxfdHlwZScsIGN1cnJlbnRWZXJzaW9uPy5jaGFubmVsKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX3NuYXBzaG90X2lkJywgY3VycmVudFZlcnNpb24/LnZlcnNpb25JZCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VTdGF0dXMoc3RhdHVzOiB7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNsb3NlU2NyZWVuPzogYm9vbGVhbjtcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gIH0pIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXR1cyA9IHN0YXR1cy50ZXh0O1xuICAgIHRoaXMucGVyY2VudGFnZSA9IHN0YXR1cy5wZXJjZW50YWdlO1xuICAgIGlmIChzdGF0dXMuY2xvc2VTY3JlZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cy5lcnJvcikge1xuICAgICAgLy8gdGhpcy5hcHBTdG9yZS5kaXNwYXRjaChcbiAgICAgIC8vICAgc2hhcmVkVG9hc3RlckFjdGlvbnMuQ1JFQVRFX0VSUk9SKHtcbiAgICAgIC8vICAgICBtZXNzYWdlVGV4dDogc3RhdHVzLmVycm9yLFxuICAgICAgLy8gICB9KVxuICAgICAgLy8gKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VVcGRhdGVTY3JlZW4oKSB7XG4gICAgLy8gQWxsb3dpbmcgc29tZSB0aW1lIHRvIG1ha2UgYSBzY3JlZW5zaG90IG9mIHZlcnNpb24gaW5mb1xuICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIFNweFN0b3JhZ2UuZ2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKSAmJlxuICAgICAgICB0aGlzLnNweElzU2lnbmVkSW5cbiAgICAgICkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbU3B4U3RvcmFnZS5nZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXSk7XG4gICAgICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5zcHhIb21lVXJsXSk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0TG9hZGVyU3luYygpIHtcbiAgICBTcHhTdG9yYWdlLnNldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS51cGRhdGVJblByb2dyZXNzLCAnMScpO1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsID09PSBudWxsKSB7XG4gICAgICB0aGlzLnN5bmNUcnVja0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICB0aGlzLmRlbGF5ZWRQZXJjZW50YWdlID0gdGhpcy5wZXJjZW50YWdlO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BMb2FkZXJTeW5jKCkge1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsICE9PSBudWxsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc3luY1RydWNrSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
|
|
6
6
|
import { SpxFormViewComponent } from '@softpak/components/spx-form-view';
|
|
7
7
|
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
8
|
-
import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
8
|
+
import { SpxSeverityEnum, valuePairToValue } from '@softpak/components/spx-helpers';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/forms";
|
|
11
11
|
export const sectionChangeDetails = 'changeDetails';
|
|
@@ -17,15 +17,16 @@ export const ctrlCustomer = 'customer';
|
|
|
17
17
|
export const ctrlTonsTested = 'tonsTested';
|
|
18
18
|
export const ctrlLicensePlate = 'licensePlate';
|
|
19
19
|
export const ctrlCategory = 'category';
|
|
20
|
+
export const ctrlUseCategories = 'useCategories';
|
|
20
21
|
export class SpxChangeDetailsComponent {
|
|
21
22
|
get ctrlCategory() { return this.formGroup.get(ctrlCategory); }
|
|
22
23
|
get ctrlCustomer() { return this.formGroup.get(ctrlCustomer); }
|
|
23
24
|
get ctrlContainerType() { return this.formGroup.get(ctrlContainerType); }
|
|
24
25
|
get ctrlLicensePlate() { return this.formGroup.get(ctrlLicensePlate); }
|
|
25
26
|
get ctrlTonsTested() { return this.formGroup.get(ctrlTonsTested); }
|
|
27
|
+
get ctrlUseCategories() { return this.formGroup.get(ctrlUseCategories); }
|
|
26
28
|
constructor(formBuilder) {
|
|
27
29
|
this.formBuilder = formBuilder;
|
|
28
|
-
this.showCategory = false;
|
|
29
30
|
this.suggestions = {};
|
|
30
31
|
this.spxBlurCategory = new EventEmitter();
|
|
31
32
|
this.spxBlurContainerType = new EventEmitter();
|
|
@@ -90,13 +91,18 @@ export class SpxChangeDetailsComponent {
|
|
|
90
91
|
label: () => this.txtLicensePlate,
|
|
91
92
|
capitalize: () => true,
|
|
92
93
|
},
|
|
94
|
+
{
|
|
95
|
+
key: ctrlUseCategories,
|
|
96
|
+
type: () => SpxInputTypeEnum.hidden,
|
|
97
|
+
capitalize: () => true,
|
|
98
|
+
},
|
|
93
99
|
{
|
|
94
100
|
key: ctrlCategory,
|
|
95
101
|
type: () => SpxInputTypeEnum.autocomplete,
|
|
96
102
|
label: () => this.txtCategory,
|
|
97
103
|
capitalize: () => true,
|
|
98
|
-
show: () => this.
|
|
99
|
-
validators: () => this.
|
|
104
|
+
show: () => valuePairToValue(this.ctrlUseCategories.value),
|
|
105
|
+
validators: () => valuePairToValue(this.ctrlUseCategories.value) ? [spxValidatorRequired()] : [],
|
|
100
106
|
}
|
|
101
107
|
]
|
|
102
108
|
}
|
|
@@ -137,7 +143,7 @@ export class SpxChangeDetailsComponent {
|
|
|
137
143
|
}
|
|
138
144
|
onSubmit() {
|
|
139
145
|
this.submit.emit({
|
|
140
|
-
category: this.ctrlCategory.value,
|
|
146
|
+
category: valuePairToValue(this.ctrlUseCategories.value) ? this.ctrlCategory.value : null,
|
|
141
147
|
containerType: this.ctrlContainerType.value,
|
|
142
148
|
licensePlate: this.ctrlLicensePlate.value,
|
|
143
149
|
tonsTested: this.ctrlTonsTested.value,
|
|
@@ -150,7 +156,7 @@ export class SpxChangeDetailsComponent {
|
|
|
150
156
|
});
|
|
151
157
|
}
|
|
152
158
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxChangeDetailsComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxChangeDetailsComponent, isStandalone: true, selector: "spx-change-details", inputs: { formGroup: "formGroup",
|
|
159
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxChangeDetailsComponent, isStandalone: true, selector: "spx-change-details", inputs: { formGroup: "formGroup", suggestions: "suggestions", txtCategory: "txtCategory", txtContainerNumber: "txtContainerNumber", txtContainerPrefix: "txtContainerPrefix", txtContainerType: "txtContainerType", txtCustomer: "txtCustomer", txtLicensePlate: "txtLicensePlate", txtTonsTested: "txtTonsTested" }, outputs: { spxBlurCategory: "spxBlurCategory", spxBlurContainerType: "spxBlurContainerType", spxSearchCategory: "spxSearchCategory", spxSearchContainerType: "spxSearchContainerType", spxSearchTonsTested: "spxSearchTonsTested", submit: "submit" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup\"\n [spxSections]=\"sections\"\n [spxSuggestions]=\"suggestions\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n</form>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "component", type: SpxFormViewComponent, selector: "spx-form-view", inputs: ["spxFormGroup", "spxSections", "spxSuggestions"], outputs: ["spxBlur", "spxClick", "spxSearch"] }] }); }
|
|
154
160
|
}
|
|
155
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxChangeDetailsComponent, decorators: [{
|
|
156
162
|
type: Component,
|
|
@@ -165,8 +171,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
165
171
|
], template: "<form [formGroup]=\"formGroup\" class=\"max-w-lg mx-auto flex flex-col gap-3\" (ngSubmit)=\"onSubmit()\">\n <spx-form-view\n [spxFormGroup]=\"formGroup\"\n [spxSections]=\"sections\"\n [spxSuggestions]=\"suggestions\"\n (spxBlur)=\"onBlur($event)\"\n (spxSearch)=\"onSearch($event)\">\n </spx-form-view>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n</form>" }]
|
|
166
172
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { formGroup: [{
|
|
167
173
|
type: Input
|
|
168
|
-
}], showCategory: [{
|
|
169
|
-
type: Input
|
|
170
174
|
}], suggestions: [{
|
|
171
175
|
type: Input
|
|
172
176
|
}], txtCategory: [{
|
|
@@ -196,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
196
200
|
}], submit: [{
|
|
197
201
|
type: Output
|
|
198
202
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBa0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUdsRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFD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QWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCwgU3B4VmFsaWRhdGVDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhGb3JtRmllbGRJLCBTcHhGb3JtU2VjdGlvbkksIFNweEZvcm1WaWV3Q29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3JztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IFNweENoYW5nZURldGFpbHNWYWx1ZUkgfSBmcm9tICcuL3NweC1jaGFuZ2UtZGV0YWlscy12YWx1ZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3Qgc2VjdGlvbkNoYW5nZURldGFpbHMgPSAnY2hhbmdlRGV0YWlscyc7XG5leHBvcnQgY29uc3QgY3RybENvbnRhaW5lck51bWJlciA9ICdjb250YWluZXJOdW1iZXInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJQcmVmaXggPSAnY29udGFpbmVyUHJlZml4JztcbmV4cG9ydCBjb25zdCBjdHJsQ29udGFpbmVyU2VxTnIgPSAnY29udGFpbmVyU2VxTnInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJUeXBlID0gJ2NvbnRhaW5lclR5cGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDdXN0b21lciA9ICdjdXN0b21lcic7XG5leHBvcnQgY29uc3QgY3RybFRvbnNUZXN0ZWQgPSAndG9uc1Rlc3RlZCc7XG5leHBvcnQgY29uc3QgY3RybExpY2Vuc2VQbGF0ZSA9ICdsaWNlbnNlUGxhdGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDYXRlZ29yeSA9ICdjYXRlZ29yeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jaGFuZ2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcHgtY2hhbmdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIFNweEZvcm1WaWV3Q29tcG9uZW50LFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICAgIFNweFZhbGlkYXRlQ29udHJvbENvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhDaGFuZ2VEZXRhaWxzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzaG93Q2F0ZWdvcnkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3VnZ2VzdGlvbnM6IGFueSA9IHt9O1xuICBASW5wdXQoKSB0eHRDYXRlZ29yeSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q29udGFpbmVyTnVtYmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDb250YWluZXJQcmVmaXghOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbnRhaW5lclR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dEN1c3RvbWVyITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRMaWNlbnNlUGxhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFRvbnNUZXN0ZWQhOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzcHhCbHVyQ2F0ZWdvcnk6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4Qmx1ckNvbnRhaW5lclR5cGU6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoQ2F0ZWdvcnk6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoQ29udGFpbmVyVHlwZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBzcHhTZWFyY2hUb25zVGVzdGVkOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4oKTtcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPFNweENoYW5nZURldGFpbHNWYWx1ZUk+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhDaGFuZ2VEZXRhaWxzVmFsdWVJPigpO1xuXG4gIGlucHV0VHlwZUF1dG9jb21wbGV0ZSA9IFNweElucHV0VHlwZUVudW0uYXV0b2NvbXBsZXRlO1xuICBpbnB1dFR5cGVSYWRpbyA9IFNweElucHV0VHlwZUVudW0ucmFkaW87XG4gIGlucHV0VHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHNldmVyaXR5U3VjY2VzcyA9IFNweFNldmVyaXR5RW51bS5zdWNjZXNzO1xuICBcbiAgc2VjdGlvbnM6IFNweEZvcm1TZWN0aW9uSVtdID0gW1xuICAgIHtcbiAgICAgIGtleTogc2VjdGlvbkNoYW5nZURldGFpbHMsXG4gICAgICBzaG93VGl0bGU6ICgpID0+IGZhbHNlLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxDb250YWluZXJOdW1iZXIsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dENvbnRhaW5lck51bWJlcixcbiAgICAgICAgICByZWFkb25seTogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiAoKSA9PiBbc3B4VmFsaWRhdG9yUmVxdWlyZWQoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxDb250YWluZXJQcmVmaXgsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dENvbnRhaW5lclByZWZpeCxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHJlYWRvbmx5OiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lclNlcU5yLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0uaGlkZGVuLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybEN1c3RvbWVyLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0udGV4dCxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHJlYWRvbmx5OiAoKSA9PiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dEN1c3RvbWVyLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lclR5cGUsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5hdXRvY29tcGxldGUsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q29udGFpbmVyVHlwZSxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybFRvbnNUZXN0ZWQsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5yYWRpbyxcbiAgICAgICAgICBsYWJlbDogKCkgPT4gdGhpcy50eHRUb25zVGVzdGVkLFxuICAgICAgICAgIHNob3c6ICgpID0+IHRoaXMuc3VnZ2VzdGlvbnM/LltjdHJsVG9uc1Rlc3RlZF0gJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggPiAwLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IHRoaXMuc3VnZ2VzdGlvbnM/LltjdHJsVG9uc1Rlc3RlZF0gJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggJiYgdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXS5sZW5ndGggPiAwID8gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldIDogW10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxMaWNlbnNlUGxhdGUsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dExpY2Vuc2VQbGF0ZSxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsQ2F0ZWdvcnksXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5hdXRvY29tcGxldGUsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q2F0ZWdvcnksXG4gICAgICAgICAgY2FwaXRhbGl6ZTogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICBzaG93OiAoKSA9PiB0aGlzLnNob3dDYXRlZ29yeSxcbiAgICAgICAgICB2YWxpZGF0b3JzOiAoKSA9PiB0aGlzLnNob3dDYXRlZ29yeSA/IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSA6IFtdLFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuXG4gIGdldCBjdHJsQ2F0ZWdvcnkoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDYXRlZ29yeSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDdXN0b21lcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybEN1c3RvbWVyKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybENvbnRhaW5lclR5cGUoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDb250YWluZXJUeXBlKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybExpY2Vuc2VQbGF0ZSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybExpY2Vuc2VQbGF0ZSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxUb25zVGVzdGVkKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsVG9uc1Rlc3RlZCkgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBwcml2YXRlIHN1YkNvbnRhaW5lclR5cGU/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBjcmVhdGVGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIFNweEZvcm1WaWV3Q29tcG9uZW50LmNyZWF0ZUZvcm0odGhpcy5mb3JtQnVpbGRlciwgdGhpcy5zZWN0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQ29udGFpbmVyVHlwZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3ViQ29udGFpbmVyVHlwZSkge1xuICAgICAgdGhpcy5zdWJDb250YWluZXJUeXBlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmF3VmFsaWRhdG9ycyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkJsdXIoZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4Qmx1ckNhdGVnb3J5LmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgICBpZiAoZGF0YS5maWVsZC5rZXkgPT09IGN0cmxDb250YWluZXJUeXBlKSB7XG4gICAgICB0aGlzLnNweEJsdXJDb250YWluZXJUeXBlLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgb25TZWFyY2goZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ2F0ZWdvcnkuZW1pdChkYXRhLnZhbHVlUGFpcik7XG4gICAgfVxuICAgIGlmIChkYXRhLmZpZWxkLmtleSA9PT0gY3RybENvbnRhaW5lclR5cGUpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ29udGFpbmVyVHlwZS5lbWl0KGRhdGEudmFsdWVQYWlyKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsVG9uc1Rlc3RlZCkge1xuICAgICAgdGhpcy5zcHhTZWFyY2hUb25zVGVzdGVkLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0LmVtaXQoe1xuICAgICAgY2F0ZWdvcnk6IHRoaXMuY3RybENhdGVnb3J5LnZhbHVlLFxuICAgICAgY29udGFpbmVyVHlwZTogdGhpcy5jdHJsQ29udGFpbmVyVHlwZS52YWx1ZSxcbiAgICAgIGxpY2Vuc2VQbGF0ZTogdGhpcy5jdHJsTGljZW5zZVBsYXRlLnZhbHVlLFxuICAgICAgdG9uc1Rlc3RlZDogdGhpcy5jdHJsVG9uc1Rlc3RlZC52YWx1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0NvbnRhaW5lclR5cGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJDb250YWluZXJUeXBlID0gdGhpcy5jdHJsQ29udGFpbmVyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlUGFpciA9PiB7XG4gICAgICB0aGlzLmN0cmxUb25zVGVzdGVkLnNldFZhbHVlKHsgdmFsdWU6IG51bGwgfSk7XG4gICAgICB0aGlzLnNweFNlYXJjaFRvbnNUZXN0ZWQuZW1pdCh2YWx1ZVBhaXIpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwibWF4LXctbGcgbXgtYXV0byBmbGV4IGZsZXgtY29sIGdhcC0zXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cbiAgPHNweC1mb3JtLXZpZXdcbiAgICBbc3B4Rm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgW3NweFNlY3Rpb25zXT1cInNlY3Rpb25zXCJcbiAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3VnZ2VzdGlvbnNcIlxuICAgIChzcHhCbHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAoc3B4U2VhcmNoKT1cIm9uU2VhcmNoKCRldmVudClcIj5cbiAgPC9zcHgtZm9ybS12aWV3PlxuICA8c3B4LWJ1dHRvblxuICAgIFtzcHhGdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgW3NweFNldmVyaXR5XT1cInNldmVyaXR5U3VjY2Vzc1wiPlxuICAgIFNhdmVcbiAgPC9zcHgtYnV0dG9uPlxuPC9mb3JtPiJdfQ==
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtY2hhbmdlLWRldGFpbHMvc3B4LWNoYW5nZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBa0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUdwRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JB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QixrQkFBa0IscU9BQ2xCLG9CQUFvQjs7MkZBS1gseUJBQXlCO2tCQWRyQyxTQUFTOytCQUNFLG9CQUFvQixjQUVsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsMkJBQTJCO3FCQUM1QjtnRkFHUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCwgU3B4VmFsaWRhdGVDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhGb3JtRmllbGRJLCBTcHhGb3JtU2VjdGlvbkksIFNweEZvcm1WaWV3Q29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3JztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0sIHZhbHVlUGFpclRvVmFsdWUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IFNweENoYW5nZURldGFpbHNWYWx1ZUkgfSBmcm9tICcuL3NweC1jaGFuZ2UtZGV0YWlscy12YWx1ZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3Qgc2VjdGlvbkNoYW5nZURldGFpbHMgPSAnY2hhbmdlRGV0YWlscyc7XG5leHBvcnQgY29uc3QgY3RybENvbnRhaW5lck51bWJlciA9ICdjb250YWluZXJOdW1iZXInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJQcmVmaXggPSAnY29udGFpbmVyUHJlZml4JztcbmV4cG9ydCBjb25zdCBjdHJsQ29udGFpbmVyU2VxTnIgPSAnY29udGFpbmVyU2VxTnInO1xuZXhwb3J0IGNvbnN0IGN0cmxDb250YWluZXJUeXBlID0gJ2NvbnRhaW5lclR5cGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDdXN0b21lciA9ICdjdXN0b21lcic7XG5leHBvcnQgY29uc3QgY3RybFRvbnNUZXN0ZWQgPSAndG9uc1Rlc3RlZCc7XG5leHBvcnQgY29uc3QgY3RybExpY2Vuc2VQbGF0ZSA9ICdsaWNlbnNlUGxhdGUnO1xuZXhwb3J0IGNvbnN0IGN0cmxDYXRlZ29yeSA9ICdjYXRlZ29yeSc7XG5leHBvcnQgY29uc3QgY3RybFVzZUNhdGVnb3JpZXMgPSAndXNlQ2F0ZWdvcmllcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jaGFuZ2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcHgtY2hhbmdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIFNweEZvcm1WaWV3Q29tcG9uZW50LFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICAgIFNweFZhbGlkYXRlQ29udHJvbENvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhDaGFuZ2VEZXRhaWxzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzdWdnZXN0aW9uczogYW55ID0ge307XG4gIEBJbnB1dCgpIHR4dENhdGVnb3J5ITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDb250YWluZXJOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbnRhaW5lclByZWZpeCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q29udGFpbmVyVHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q3VzdG9tZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dExpY2Vuc2VQbGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VG9uc1Rlc3RlZCE6IHN0cmluZztcbiAgQE91dHB1dCgpIHNweEJsdXJDYXRlZ29yeTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBzcHhCbHVyQ29udGFpbmVyVHlwZTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBzcHhTZWFyY2hDYXRlZ29yeTogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+KCk7XG4gIEBPdXRwdXQoKSBzcHhTZWFyY2hDb250YWluZXJUeXBlOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPHN0cmluZz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4oKTtcbiAgQE91dHB1dCgpIHNweFNlYXJjaFRvbnNUZXN0ZWQ6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8c3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxzdHJpbmc+PigpO1xuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8U3B4Q2hhbmdlRGV0YWlsc1ZhbHVlST4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweENoYW5nZURldGFpbHNWYWx1ZUk+KCk7XG5cbiAgaW5wdXRUeXBlQXV0b2NvbXBsZXRlID0gU3B4SW5wdXRUeXBlRW51bS5hdXRvY29tcGxldGU7XG4gIGlucHV0VHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcbiAgaW5wdXRUeXBlVGV4dCA9IFNweElucHV0VHlwZUVudW0udGV4dDtcbiAgc2V2ZXJpdHlTdWNjZXNzID0gU3B4U2V2ZXJpdHlFbnVtLnN1Y2Nlc3M7XG4gIFxuICBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10gPSBbXG4gICAge1xuICAgICAga2V5OiBzZWN0aW9uQ2hhbmdlRGV0YWlscyxcbiAgICAgIHNob3dUaXRsZTogKCkgPT4gZmFsc2UsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lck51bWJlcixcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLnRleHQsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q29udGFpbmVyTnVtYmVyLFxuICAgICAgICAgIHJlYWRvbmx5OiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6ICgpID0+IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybENvbnRhaW5lclByZWZpeCxcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLnRleHQsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q29udGFpbmVyUHJlZml4LFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgICAgcmVhZG9ubHk6ICgpID0+IHRydWUsXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsQ29udGFpbmVyU2VxTnIsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS5oaWRkZW4sXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsQ3VzdG9tZXIsXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgICAgcmVhZG9ubHk6ICgpID0+IHRydWUsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0Q3VzdG9tZXIsXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsQ29udGFpbmVyVHlwZSxcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZSxcbiAgICAgICAgICBsYWJlbDogKCkgPT4gdGhpcy50eHRDb250YWluZXJUeXBlLFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gW3NweFZhbGlkYXRvclJlcXVpcmVkKCldLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsVG9uc1Rlc3RlZCxcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLnJhZGlvLFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dFRvbnNUZXN0ZWQsXG4gICAgICAgICAgc2hvdzogKCkgPT4gdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXSAmJiB0aGlzLnN1Z2dlc3Rpb25zPy5bY3RybFRvbnNUZXN0ZWRdLmxlbmd0aCAmJiB0aGlzLnN1Z2dlc3Rpb25zPy5bY3RybFRvbnNUZXN0ZWRdLmxlbmd0aCA+IDAsXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gdGhpcy5zdWdnZXN0aW9ucz8uW2N0cmxUb25zVGVzdGVkXSAmJiB0aGlzLnN1Z2dlc3Rpb25zPy5bY3RybFRvbnNUZXN0ZWRdLmxlbmd0aCAmJiB0aGlzLnN1Z2dlc3Rpb25zPy5bY3RybFRvbnNUZXN0ZWRdLmxlbmd0aCA+IDAgPyBbc3B4VmFsaWRhdG9yUmVxdWlyZWQoKV0gOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY3RybExpY2Vuc2VQbGF0ZSxcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLnRleHQsXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0TGljZW5zZVBsYXRlLFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxVc2VDYXRlZ29yaWVzLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0uaGlkZGVuLFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxDYXRlZ29yeSxcbiAgICAgICAgICB0eXBlOiAoKSA9PiBTcHhJbnB1dFR5cGVFbnVtLmF1dG9jb21wbGV0ZSxcbiAgICAgICAgICBsYWJlbDogKCkgPT4gdGhpcy50eHRDYXRlZ29yeSxcbiAgICAgICAgICBjYXBpdGFsaXplOiAoKSA9PiB0cnVlLFxuICAgICAgICAgIHNob3c6ICgpID0+IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsVXNlQ2F0ZWdvcmllcy52YWx1ZSksXG4gICAgICAgICAgdmFsaWRhdG9yczogKCkgPT4gdmFsdWVQYWlyVG9WYWx1ZSh0aGlzLmN0cmxVc2VDYXRlZ29yaWVzLnZhbHVlKSA/IFtzcHhWYWxpZGF0b3JSZXF1aXJlZCgpXSA6IFtdLFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuXG4gIGdldCBjdHJsQ2F0ZWdvcnkoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDYXRlZ29yeSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDdXN0b21lcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybEN1c3RvbWVyKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybENvbnRhaW5lclR5cGUoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxDb250YWluZXJUeXBlKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybExpY2Vuc2VQbGF0ZSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybExpY2Vuc2VQbGF0ZSkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxUb25zVGVzdGVkKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsVG9uc1Rlc3RlZCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxVc2VDYXRlZ29yaWVzKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjdHJsVXNlQ2F0ZWdvcmllcykgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBwcml2YXRlIHN1YkNvbnRhaW5lclR5cGU/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBjcmVhdGVGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIFNweEZvcm1WaWV3Q29tcG9uZW50LmNyZWF0ZUZvcm0odGhpcy5mb3JtQnVpbGRlciwgdGhpcy5zZWN0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQ29udGFpbmVyVHlwZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3ViQ29udGFpbmVyVHlwZSkge1xuICAgICAgdGhpcy5zdWJDb250YWluZXJUeXBlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmF3VmFsaWRhdG9ycyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkJsdXIoZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4Qmx1ckNhdGVnb3J5LmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgICBpZiAoZGF0YS5maWVsZC5rZXkgPT09IGN0cmxDb250YWluZXJUeXBlKSB7XG4gICAgICB0aGlzLnNweEJsdXJDb250YWluZXJUeXBlLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgb25TZWFyY2goZGF0YTogeyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9KSB7XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsQ2F0ZWdvcnkpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ2F0ZWdvcnkuZW1pdChkYXRhLnZhbHVlUGFpcik7XG4gICAgfVxuICAgIGlmIChkYXRhLmZpZWxkLmtleSA9PT0gY3RybENvbnRhaW5lclR5cGUpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoQ29udGFpbmVyVHlwZS5lbWl0KGRhdGEudmFsdWVQYWlyKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuZmllbGQua2V5ID09PSBjdHJsVG9uc1Rlc3RlZCkge1xuICAgICAgdGhpcy5zcHhTZWFyY2hUb25zVGVzdGVkLmVtaXQoZGF0YS52YWx1ZVBhaXIpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0LmVtaXQoe1xuICAgICAgY2F0ZWdvcnk6IHZhbHVlUGFpclRvVmFsdWUodGhpcy5jdHJsVXNlQ2F0ZWdvcmllcy52YWx1ZSkgPyB0aGlzLmN0cmxDYXRlZ29yeS52YWx1ZSA6IG51bGwsXG4gICAgICBjb250YWluZXJUeXBlOiB0aGlzLmN0cmxDb250YWluZXJUeXBlLnZhbHVlLFxuICAgICAgbGljZW5zZVBsYXRlOiB0aGlzLmN0cmxMaWNlbnNlUGxhdGUudmFsdWUsXG4gICAgICB0b25zVGVzdGVkOiB0aGlzLmN0cmxUb25zVGVzdGVkLnZhbHVlLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRvQ29udGFpbmVyVHlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YkNvbnRhaW5lclR5cGUgPSB0aGlzLmN0cmxDb250YWluZXJUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWVQYWlyID0+IHtcbiAgICAgIHRoaXMuY3RybFRvbnNUZXN0ZWQuc2V0VmFsdWUoeyB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHRoaXMuc3B4U2VhcmNoVG9uc1Rlc3RlZC5lbWl0KHZhbHVlUGFpcik7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJtYXgtdy1sZyBteC1hdXRvIGZsZXggZmxleC1jb2wgZ2FwLTNcIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICA8c3B4LWZvcm0tdmlld1xuICAgIFtzcHhGb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbc3B4U2VjdGlvbnNdPVwic2VjdGlvbnNcIlxuICAgIFtzcHhTdWdnZXN0aW9uc109XCJzdWdnZXN0aW9uc1wiXG4gICAgKHNweEJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgIChzcHhTZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiPlxuICA8L3NweC1mb3JtLXZpZXc+XG4gIDxzcHgtYnV0dG9uXG4gICAgW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICBbc3B4U2V2ZXJpdHldPVwic2V2ZXJpdHlTdWNjZXNzXCI+XG4gICAgU2F2ZVxuICA8L3NweC1idXR0b24+XG48L2Zvcm0+Il19
|
|
@@ -1,58 +1,65 @@
|
|
|
1
1
|
import { NgFor, NgIf } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
3
|
import { SpxButtonComponent } from '@softpak/components/spx-button';
|
|
4
4
|
import { SpxDropdownComponent } from './spx-dropdown.component';
|
|
5
|
-
import { IonButtons, IonContent, IonHeader, IonTitle, IonToolbar, ModalController } from '@ionic/angular/standalone';
|
|
6
5
|
import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
6
|
+
import { faXmark } from '@fortawesome/free-solid-svg-icons';
|
|
7
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
8
|
+
import { IonicModule } from '@ionic/angular';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ionic/angular";
|
|
11
|
+
import * as i2 from "@fortawesome/angular-fontawesome";
|
|
8
12
|
export class SpxInputTimeModalComponent {
|
|
9
|
-
constructor() {
|
|
13
|
+
constructor(modalController) {
|
|
14
|
+
this.modalController = modalController;
|
|
10
15
|
this.change = new EventEmitter();
|
|
16
|
+
this.faXmark = faXmark;
|
|
11
17
|
this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
|
|
12
18
|
this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
|
|
13
|
-
this.modalController = inject(ModalController);
|
|
14
19
|
this.typeError = SpxSeverityEnum.error;
|
|
15
20
|
this.hourOptions.push(this.hourOptions.shift());
|
|
21
|
+
this.minuteOptions.push(this.minuteOptions.shift());
|
|
16
22
|
}
|
|
17
23
|
closeDialog() {
|
|
18
24
|
this.modalController.dismiss();
|
|
19
25
|
}
|
|
20
26
|
onChange(value) {
|
|
21
27
|
this.change.emit(value);
|
|
28
|
+
console.log(value);
|
|
22
29
|
this.modalController.dismiss(value);
|
|
23
30
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
32
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
|
|
26
33
|
<ion-toolbar>
|
|
27
|
-
<ion-title>
|
|
34
|
+
<ion-title>Select {{view}}</ion-title>
|
|
28
35
|
<ion-buttons slot="end">
|
|
29
|
-
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
36
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
37
|
+
<fa-icon [icon]="faXmark"></fa-icon>
|
|
38
|
+
</spx-button>
|
|
30
39
|
</ion-buttons>
|
|
31
40
|
</ion-toolbar>
|
|
32
41
|
</ion-header>
|
|
33
|
-
<ion-content class="ion-padding">
|
|
42
|
+
<ion-content class="ion-padding bg-white">
|
|
34
43
|
<!-- Uren -->
|
|
35
|
-
<div class="grid grid-cols-1 gap-3">
|
|
44
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
36
45
|
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
<div *ngFor="let hour of hourOptions" class="custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
46
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
47
|
+
<div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
40
48
|
{{ hour }}
|
|
41
49
|
</div>
|
|
42
50
|
</div>
|
|
43
51
|
</div>
|
|
44
52
|
<!-- Minuten -->
|
|
45
53
|
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
<div *ngFor="let minute of minuteOptions" class="custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
54
|
+
<div class="grid grid-cols-4 md:grid-cols-5 gap-3">
|
|
55
|
+
<div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
49
56
|
{{ minute }}
|
|
50
57
|
</div>
|
|
51
58
|
</div>
|
|
52
59
|
</div>
|
|
53
60
|
</div>
|
|
54
61
|
</ion-content>
|
|
55
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type:
|
|
62
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
|
|
56
63
|
}
|
|
57
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
|
|
58
65
|
type: Component,
|
|
@@ -62,38 +69,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
62
69
|
imports: [
|
|
63
70
|
NgIf,
|
|
64
71
|
NgFor,
|
|
65
|
-
|
|
66
|
-
IonContent,
|
|
67
|
-
IonHeader,
|
|
68
|
-
IonToolbar,
|
|
69
|
-
IonTitle,
|
|
72
|
+
IonicModule,
|
|
70
73
|
SpxButtonComponent,
|
|
71
74
|
SpxDropdownComponent,
|
|
75
|
+
FontAwesomeModule,
|
|
72
76
|
],
|
|
73
77
|
template: `<ion-header>
|
|
74
78
|
<ion-toolbar>
|
|
75
|
-
<ion-title>
|
|
79
|
+
<ion-title>Select {{view}}</ion-title>
|
|
76
80
|
<ion-buttons slot="end">
|
|
77
|
-
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
81
|
+
<spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
|
|
82
|
+
<fa-icon [icon]="faXmark"></fa-icon>
|
|
83
|
+
</spx-button>
|
|
78
84
|
</ion-buttons>
|
|
79
85
|
</ion-toolbar>
|
|
80
86
|
</ion-header>
|
|
81
|
-
<ion-content class="ion-padding">
|
|
87
|
+
<ion-content class="ion-padding bg-white">
|
|
82
88
|
<!-- Uren -->
|
|
83
|
-
<div class="grid grid-cols-1 gap-3">
|
|
89
|
+
<div class="custom-bg grid grid-cols-1 gap-3">
|
|
84
90
|
<div *ngIf="view === 'hours'" class="flex-wrap gap-2">
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
<div *ngFor="let hour of hourOptions" class="custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
91
|
+
<div class="grid grid-cols-3 md:grid-cols-4 gap-3">
|
|
92
|
+
<div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
|
|
88
93
|
{{ hour }}
|
|
89
94
|
</div>
|
|
90
95
|
</div>
|
|
91
96
|
</div>
|
|
92
97
|
<!-- Minuten -->
|
|
93
98
|
<div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
|
|
94
|
-
<
|
|
95
|
-
|
|
96
|
-
<div *ngFor="let minute of minuteOptions" class="custom-square rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
99
|
+
<div class="grid grid-cols-4 md:grid-cols-5 gap-3">
|
|
100
|
+
<div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
|
|
97
101
|
{{ minute }}
|
|
98
102
|
</div>
|
|
99
103
|
</div>
|
|
@@ -102,11 +106,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
102
106
|
</ion-content>
|
|
103
107
|
`,
|
|
104
108
|
}]
|
|
105
|
-
}], ctorParameters: () => [], propDecorators: { view: [{
|
|
109
|
+
}], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { view: [{
|
|
106
110
|
type: Input
|
|
107
111
|
}], value: [{
|
|
108
112
|
type: Input
|
|
109
113
|
}], change: [{
|
|
110
114
|
type: Output
|
|
111
115
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUE2QzlELE1BQU0sT0FBTywwQkFBMEI7SUFVckMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUDFDLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxZQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ2pCLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNqRSxrQkFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDNUYsY0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFHaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs4R0F2QlUsMEJBQTBCO2tHQUExQiwwQkFBMEIseUpBaEMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBOEJQLDREQXJDRCxJQUFJLDZGQUNKLEtBQUssa0hBQ0wsV0FBVywybEJBQ1gsa0JBQWtCLG9PQUVsQixpQkFBaUI7OzJGQWtDUiwwQkFBMEI7a0JBM0N0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4QlA7aUJBQ0o7b0ZBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NweC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5pbXBvcnQgeyBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRpbWUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBJb25pY01vZHVsZSxcbiAgICBTcHhCdXR0b25Db21wb25lbnQsXG4gICAgU3B4RHJvcGRvd25Db21wb25lbnQsXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXRpdGxlPlNlbGVjdCB7e3ZpZXd9fTwvaW9uLXRpdGxlPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8c3B4LWJ1dHRvbiBbc3B4U2V2ZXJpdHldPVwidHlwZUVycm9yXCIgKHNweENsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFYbWFya1wiPjwvZmEtaWNvbj5cbiAgICAgIDwvc3B4LWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmcgYmctd2hpdGVcIj5cbiAgPCEtLSBVcmVuIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJnIGdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwidmlldyA9PT0gJ2hvdXJzJ1wiIGNsYXNzPVwiZmxleC13cmFwIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBnYXAtM1wiPlxuICAgICAgICA8ZGl2ICAqbmdGb3I9XCJsZXQgaG91ciBvZiBob3VyT3B0aW9uc1wiIGNsYXNzPVwidGV4dC1jZW50ZXIgZm9udC1ib2xkIGN1c3RvbS1zcXVhcmUgcm91bmRlZCB0ZXh0LWdyYXktOTAwIHRleHQtbGcgcC0zIHctZnVsbCB0cnVuY2F0ZSBvdXRsaW5lLW5vbmUgYmctc2t5LTEwMCBmb2N1czpyaW5nLXNreS0zMDAgaG92ZXI6Ymctc2t5LTMwMCBhY3RpdmU6Ymctc2t5LTMwMFwiIFtjbGFzcy5zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gaG91clwiIChjbGljayk9XCJvbkNoYW5nZShob3VyKVwiPlxuICAgICAgICAgIHt7IGhvdXIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIE1pbnV0ZW4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInZpZXcgPT09ICdtaW51dGVzJ1wiIGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTQgbWQ6Z3JpZC1jb2xzLTUgZ2FwLTNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWludXRlIG9mIG1pbnV0ZU9wdGlvbnNcIiBjbGFzcz1cInRleHQtY2VudGVyIGZvbnQtYm9sZCBjdXN0b20tc3F1YXJlIHJvdW5kZWQgdGV4dC1ncmF5LTkwMCB0ZXh0LWxnIHAtMyB3LWZ1bCB0cnVuY2F0ZSBvdXRsaW5lLW5vbmUgYmctc2t5LTEwMCBmb2N1czpyaW5nLXNreS0zMDAgaG92ZXI6Ymctc2t5LTMwMCBhY3RpdmU6Ymctc2t5LTMwMFwiIFtjbGFzcy5zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gbWludXRlXCIgKGNsaWNrKT1cIm9uQ2hhbmdlKG1pbnV0ZSlcIj5cbiAgICAgICAgICB7eyBtaW51dGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0VGltZU1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlldyE6ICdob3VycycgfCAnbWludXRlcyc7XG4gIEBJbnB1dCgpIHZhbHVlITogbnVtYmVyO1xuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGZhWG1hcmsgPSBmYVhtYXJrXG4gIGhvdXJPcHRpb25zID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMjQgfSwgKF8sIGkpID0+IGkpOyAvLyAwIHRvIDIzXG4gIG1pbnV0ZU9wdGlvbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMiB9LCAoXywgaSkgPT4gaSAqIDUpOyAvLyBNaW51dGVzIGluIGluY3JlbWVudGVuIHZhbiA1XG4gIHR5cGVFcnJvciA9IFNweFNldmVyaXR5RW51bS5lcnJvcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyKXtcbiAgICB0aGlzLmhvdXJPcHRpb25zLnB1c2godGhpcy5ob3VyT3B0aW9ucy5zaGlmdCgpISk7XG4gICAgdGhpcy5taW51dGVPcHRpb25zLnB1c2godGhpcy5taW51dGVPcHRpb25zLnNoaWZ0KCkhKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcyh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|