@unipin/angular-applet 18.0.3-beta.0 → 18.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/esm2022/graphql/generated.mjs +246 -1
- package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +3 -3
- package/esm2022/lib/components/approval/form/approval-form.component.mjs +6 -6
- package/esm2022/lib/components/approval/list/approval-list.component.mjs +3 -3
- package/esm2022/lib/components/approval/services/approval.service.mjs +3 -3
- package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +3 -3
- package/esm2022/lib/components/audit/list/audit-list.component.mjs +3 -3
- package/esm2022/lib/components/audit/service/audit.service.mjs +3 -3
- package/esm2022/lib/components/buttons/group/btn-group.component.mjs +3 -3
- package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +3 -3
- package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +3 -3
- package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +3 -3
- package/esm2022/lib/components/containers/column-container/column-container.component.mjs +3 -3
- package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +3 -3
- package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +3 -3
- package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +3 -3
- package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +3 -3
- package/esm2022/lib/components/filter/filter.component.mjs +4 -4
- package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +9 -6
- package/esm2022/lib/components/forms/date/form-date.component.mjs +3 -3
- package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +3 -3
- package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +3 -3
- package/esm2022/lib/components/forms/input/form-input.component.mjs +3 -3
- package/esm2022/lib/components/forms/number/form-number.component.mjs +3 -3
- package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +3 -3
- package/esm2022/lib/components/forms/password/form-password.component.mjs +13 -6
- package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +3 -3
- package/esm2022/lib/components/forms/select/form-select.component.mjs +3 -3
- package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +3 -3
- package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +3 -3
- package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +3 -3
- package/esm2022/lib/components/grids/services/grid.service.mjs +3 -3
- package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +3 -3
- package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +3 -3
- package/esm2022/lib/components/tabs/tabs.component.module.mjs +4 -4
- package/esm2022/lib/interceptors/header/header.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +3 -3
- package/esm2022/lib/modules/permission/directive/permission.directive.mjs +3 -3
- package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +3 -3
- package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +3 -3
- package/esm2022/lib/modules/permission/permission.module.mjs +4 -4
- package/esm2022/lib/modules/permission/services/permission.service.mjs +3 -3
- package/esm2022/lib/resolvers/auth/auth.resolver.mjs +3 -3
- package/esm2022/lib/services/auth/auth.service.mjs +3 -3
- package/esm2022/lib/services/country/country.service.mjs +3 -3
- package/esm2022/lib/services/currency/currency.service.mjs +3 -3
- package/esm2022/lib/services/profile/profile.service.mjs +3 -3
- package/fesm2022/unipin-angular-applet.mjs +401 -146
- package/fesm2022/unipin-angular-applet.mjs.map +1 -1
- package/graphql/generated.d.ts +3637 -200
- package/lib/components/forms/currency-input/form-currency-input.component.d.ts +2 -1
- package/lib/components/forms/password/form-password.component.d.ts +1 -0
- package/package.json +2 -2
- package/src/assets/scss/forms.scss +1 -1
|
@@ -89,10 +89,10 @@ export class FilterComponent {
|
|
|
89
89
|
this.activeFilter.push({ label: `${key}:${val}`, key, value: val });
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
93
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FilterComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FilterComponent, isStandalone: true, selector: "up-filter", inputs: { id: "id", config: "config" }, outputs: { onSearch: "onSearch" }, host: { classAttribute: "d-block position-relative" }, viewQueries: [{ propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }], ngImport: i0, template: "<ion-icon name=\"search\" class=\"fs-4 position-absolute\" />\n\n<div class=\"d-flex align-items-center form-control ps-5 py-0 pe-0 gap-3\">\n <div *ngIf=\"activeFilter.length > 0\" class=\"d-flex flex-grow-1 flex-shrink-0 tag-container gap-2 text-nowrap overflow-auto\">\n <div class=\"tag-item p-1 rounded d-flex align-items-center user-select-none\" *ngFor=\"let item of activeFilter; index as i\">\n <ion-icon name=\"close\" class=\"pe-1 me-1 cursor-pointer text-primary\" (click)=\"removeFilter(i);\" />\n {{ item.label }}\n </div>\n </div>\n\n <input #searchBox type=\"search\" placeholder=\"{{ placeholder }}\" class=\"flex-shrink-1 border-0 form-control ps-0 py-2\" [class.adv]=\"config.mode === 'advanced'\" (keyup.enter)=\"add();\" />\n</div>\n\n<ng-container *ngIf=\"config.mode === 'advanced'\">\n <ion-icon name=\"filter\" class=\"position-absolute fs-4 cursor-pointer\" id=\"filter-{{ id }}\" />\n <ion-icon name=\"close\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"clear();\" />\n\n <ion-popover trigger=\"filter-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n <div class=\"d-flex flex-column filter\">\n <div class=\"flex-shrink-0 border-bottom p-1 pe-4 d-flex align-items-center\">\n <ion-buttons>\n <ion-button size=\"small\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n \n <div class=\"fs-5 fw-medium\">Advanced Filter</div>\n </div>\n \n <form class=\"flex-grow-1 overflow-auto px-4\" [formGroup]=\"form\">\n <ng-container *ngFor=\"let c of config.fields\">\n <ng-container [ngSwitch]=\"c.type\">\n <up-input type=\"number\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" *ngSwitchCase=\"'number'\" />\n \n <div class=\"my-4\" *ngSwitchCase=\"'checkbox'\">\n <ion-checkbox labelPlacement=\"end\" formControlName=\"{{ c.key }}\">{{ c.label }}</ion-checkbox>\n </div>\n \n <div class=\"d-flex gap-3 my-4\" *ngSwitchCase=\"'date-range'\">\n <up-date class=\"flex-grow-1\" name=\"filter-from\" label=\"{{ c.label[0] }}\" formControlName=\"{{ c.key[0] }}\" />\n <up-date class=\"flex-grow-1\" name=\"filter-to\" label=\"{{ c.label[1] }}\" formControlName=\"{{ c.key[1] }}\" />\n </div>\n \n <up-select class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" [items]=\"c.options!\" *ngSwitchCase=\"'select'\" />\n <up-searchable-select class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" [queryFunc]=\"c.getOptions!\" [initialItems]=\"c.options!\" *ngSwitchCase=\"'searchable-select'\" />\n \n <up-input type=\"text\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" *ngSwitchDefault />\n </ng-container>\n </ng-container>\n </form>\n \n <div class=\"flex-shrink-0 py-3 px-4 border-top d-flex gap-3\">\n <ion-button class=\"flex-grow-1\" color=\"secondary\" (click)=\"form.reset();\">Reset</ion-button>\n <ion-button class=\"flex-grow-1\" color=\"primary\" (click)=\"search();\">Search</ion-button>\n </div>\n </div>\n </ng-template>\n </ion-popover> \n</ng-container>\n", styles: ["ion-icon{top:7px}ion-icon[name=close]{right:16px}ion-icon[name=search]{left:14px}ion-icon[name=filter]{right:48px}ion-popover{--width: 80%;--max-width: 450px}.adv{padding-right:60px}.fs-5,ion-icon{color:#616161}.tag-container{max-width:45%}@media (max-width: 576px){.tag-container{max-width:35%}}.tag-container::-webkit-scrollbar{height:0px}.tag-item{color:#ed6b26;background-color:#fef3ee}.tag-item ion-icon{border-right:1px solid #fbd1be}input::-webkit-search-decoration,input::-webkit-search-cancel-button,input::-webkit-search-results-button,input::-webkit-search-results-decoration{-webkit-appearance:none}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: FormDateComponent, selector: "up-date", inputs: ["label", "required", "disabled", "presentation"] }, { kind: "component", type: FormInputComponent, selector: "up-input", inputs: ["label", "value", "required", "disabled"], outputs: ["onInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormSelectComponent, selector: "up-select", inputs: ["items", "clearable", "label", "multiple", "required", "addTag", "disabled", "searchable", "bindLabel", "bindValue"] }, { kind: "component", type: FormSearchableSelectComponent, selector: "up-searchable-select", inputs: ["queryFunc", "clearable", "label", "initialItems", "required", "addTag", "disabled", "multiple", "bindLabel", "bindValue"], outputs: ["onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FilterComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
97
97
|
args: [{ standalone: true, selector: 'up-filter', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
98
98
|
class: 'd-block position-relative'
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
120
120
|
type: ViewChild,
|
|
121
121
|
args: ['searchBox']
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFJaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQXFCckgsTUFBTSxPQUFPLGVBQWU7SUF5QzFCLFlBQ21DLFdBQW1CLEVBQ2pDLEVBQXFCLEVBQ3JCLFdBQThCO1FBRmhCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQXZCekIsYUFBUSxHQUFvQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWXpFLFNBQUksR0FBbUIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFNbEQsaUJBQVksR0FBb0QsRUFBRSxDQUFDO0lBTXRFLENBQUM7SUFNRSxR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QUM7UUFDMUUsQ0FBQztJQUNILENBQUM7OEdBeEtVLGVBQWUsa0JBMENiLGFBQWE7a0dBMUNmLGVBQWUsK1NDNUI1Qix5eUhBNERBLDhwQkR6Q0ksV0FBVyxtNEJBQ1gsWUFBWSw0Z0JBQ1osaUJBQWlCLCtHQUNqQixrQkFBa0IsOEhBQ2xCLG1CQUFtQiw2ckJBQ25CLG1CQUFtQixxTEFDbkIsNkJBQTZCOzsyRkFHcEIsZUFBZTtrQkFuQjNCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsMkJBQTJCO3FCQUNuQyxXQUNRO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLDZCQUE2QjtxQkFDOUI7OzBCQTRDRSxTQUFTOzJCQUFDLGFBQWE7eUdBbkNRLEVBQUU7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9TLE1BQU07c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9DLFFBQVE7c0JBQWpDLE1BQU07Z0JBTW9DLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50LCBGb3JtU2VsZWN0Q29tcG9uZW50LCBGb3JtRGF0ZUNvbXBvbmVudCwgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBcbiAgICBjbGFzczogJ2QtYmxvY2sgcG9zaXRpb24tcmVsYXRpdmUnIFxuICB9LFxuICBpbXBvcnRzOiBbIFxuICAgIElvbmljTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSwgXG4gICAgRm9ybURhdGVDb21wb25lbnQsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybVNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtU2VhcmNoYWJsZVNlbGVjdENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZpbHRlci5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgaWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgc3BlY2lmeWluZyBmaWx0ZXIgZmllbGRzIGFuZCBtb2RlLlxuICAgKiBAdHlwZSB7RmlsdGVyQ29uZmlnfVxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBjb25maWchOiBGaWx0ZXJDb25maWc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBldmVudCBlbWl0dGVyIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHBlcmZvcm1zIGEgc2VhcmNoLlxuICAgKiBFbWl0cyBhIGBGaWx0ZXJTZWFyY2hFdmVudGAgb2JqZWN0IHdpdGggc2VhcmNoIG1vZGUgYW5kIGNyaXRlcmlhIGRhdGEuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8RmlsdGVyU2VhcmNoRXZlbnQ+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPEZpbHRlclNlYXJjaEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVmlld0NoaWxkIGRlY29yYXRvciB0byByZWZlcmVuY2UgdGhlIHNlYXJjaEJveCBlbGVtZW50IGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogQHR5cGUge0VsZW1lbnRSZWZ9XG4gICAqL1xuICBAVmlld0NoaWxkKCdzZWFyY2hCb3gnKSBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoQm94ITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogRm9ybSBncm91cCBmb3IgbWFuYWdpbmcgZm9ybSBjb250cm9scy5cbiAgICogQHR5cGUge0Zvcm1Hcm91cDxhbnk+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZvcm06IEZvcm1Hcm91cDxhbnk+ID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgLyoqXG4gICAqIEFycmF5IHRvIHN0b3JlIGFjdGl2ZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqIEB0eXBlIHt7IGxhYmVsOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXX1cbiAgICovXG4gIHB1YmxpYyBhY3RpdmVGaWx0ZXI6IHsgbGFiZWw6IHN0cmluZywga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwb3BvdmVyQ3RybDogUG9wb3ZlckNvbnRyb2xsZXJcbiAgKSB7IH0gXG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudC5cbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2xzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgdGhpcy5jb25maWcuZmllbGRzLmZvckVhY2goKHsga2V5LCBpbml0aWFsVmFsdWUgfTogRmlsdGVyRmllbGQpID0+IHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgdGhpcy5jcmVhdGVGb3JtQ29udHJvbChrZXksIGluaXRpYWxWYWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAga2V5LmZvckVhY2goKGs6IHN0cmluZywgaTogbnVtYmVyKSA9PiB0aGlzLmNyZWF0ZUZvcm1Db250cm9sKGssIGluaXRpYWxWYWx1ZT8uYXQoaSkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGZpbHRlciBwb3BvdmVyLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWR7IHRoaXMucG9wb3ZlckN0cmwuZGlzbWlzcygpOyB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgZmlsdGVyIGNyaXRlcmlhIGFuZCB0cmlnZ2VycyBhIHNlYXJjaCBldmVudCB3aXRoIG51bGwgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lke1xuICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh7IG1vZGU6IHRoaXMuY29uZmlnLm1vZGUsIGRhdGE6IG51bGwgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHNwZWNpZmljIGZpbHRlciBjcml0ZXJpYSBiYXNlZCBvbiBpdHMgaW5kZXguXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpIC0gSW5kZXggb2YgdGhlIGZpbHRlciBjcml0ZXJpYSB0byBiZSByZW1vdmVkLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZpbHRlcihpOiBudW1iZXIpOiB2b2lke1xuICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmFjdGl2ZUZpbHRlcltpXS5rZXldLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zcGxpY2UoaSwgMSk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBzZWFyY2ggYmFzZWQgb24gdGhlIGFjdGl2ZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoKCk6IHZvaWR7XG4gICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKGs6IHN0cmluZywgdjogc3RyaW5nKSA9PiB0aGlzLmFjdGl2ZUZpbHRlci5wdXNoKHsgIGtleTogaywgdmFsdWU6IHYsIGxhYmVsOiBgJHsgayB9OiR7IGsuaW5jbHVkZXMoJ2RhdGUnKT8gZm9ybWF0RGF0ZSh2LCAnZGQgTU1NIHl5eXknLCAnZW4tVVMnKSA6IHYgfWAgfSkpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IGZpbHRlciBjcml0ZXJpYSBiYXNlZCBvbiB0aGUgdXNlciBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhZGQoKTogdm9pZHtcbiAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHRoaXMuZ2V0VmFsdWUodGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZpZWxkcy5maW5kSW5kZXgoKHsga2V5OiBrIH0pID0+IGsgPT09IGtleSkgPT09IC0xKSB7XG4gICAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaSA9IHRoaXMuYWN0aXZlRmlsdGVyLmZpbmRJbmRleCgoeyBrZXk6IGsgfSkgPT4gayA9PT0ga2V5KTtcbiAgICBpZiAoaSA9PT0gLTEpIHRoaXMuYWN0aXZlRmlsdGVyLnB1c2goeyBsYWJlbDogYCR7IGtleSB9OiR7IHZhbHVlIH1gLCBrZXksIHZhbHVlIH0pO1xuICAgIGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJbaV0ua2V5ID0ga2V5O1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJbaV0udmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLmxhYmVsID0gYCR7IGtleSB9OiR7IHZhbHVlIH1gO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgW2tleV06IHZhbHVlIH0pO1xuICAgIHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYWN0aXZlIGZpbHRlciBhbmQgY2xlYXJzIHRoZSBzZWFyY2ggYm94LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0VmFsdWUoKTogdm9pZHtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIGlucHV0IHZhbHVlIGFuZCByZXR1cm5zIGEga2V5LXZhbHVlIHBhaXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIElucHV0IHZhbHVlIHRvIGJlIHBhcnNlZC5cbiAgICogQHJldHVybnMge3sga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfX0gLSBLZXktdmFsdWUgcGFpciBleHRyYWN0ZWQgZnJvbSB0aGUgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfXtcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoJzonKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxKSByZXR1cm4geyBrZXk6IDxzdHJpbmc+IHRoaXMuY29uZmlnLmZpZWxkc1swXS5rZXksIHZhbHVlOiB2YWx1ZXNbMF0gfTtcbiAgICByZXR1cm4geyBrZXk6IHZhbHVlc1swXSwgdmFsdWU6IHZhbHVlc1sxXSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWFyY2ggZXZlbnQgYmFzZWQgb24gdGhlIGZvcm0gdmFsdWVzLlxuICAgKiBJbnZva2VzIGFuIGV4dHJhIGFjdGlvbiBpZiBwcm92aWRlZC5cbiAgICogQHBhcmFtIHsoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWR9IFtleHRyYUFjdGlvbl0gLSBPcHRpb25hbCBleHRyYSBhY3Rpb24gdG8gYmUgaW52b2tlZC5cbiAgICovXG4gIHByb3RlY3RlZCBlbWl0VmFsdWUoZXh0cmFBY3Rpb24/OiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lke1xuICAgIGxldCBmbGFnOiBib29sZWFuID0gZmFsc2U7XG4gICAgY29uc3QgZiA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IGRhdGE6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgXG4gICAgT2JqZWN0LmtleXMoZikuZm9yRWFjaCgoazogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIWZba10pIHJldHVybjtcbiAgICAgIFxuICAgICAgZmxhZyA9IHRydWU7XG4gICAgICBkYXRhW2tdID0gZltrXTtcbiAgICAgIGV4dHJhQWN0aW9uPy4oaywgZltrXSk7XG4gICAgfSk7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHsgbW9kZTogdGhpcy5jb25maWcubW9kZSwgZGF0YTogZmxhZz8gZGF0YSA6IG51bGwgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvcm0gY29udHJvbCBmb3IgYSBnaXZlbiBrZXkgYW5kIHNldHMgaXRzIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBLZXkgZm9yIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqIEBwYXJhbSB7Kn0gW3ZhbF0gLSBJbml0aWFsIHZhbHVlIGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUZvcm1Db250cm9sKGtleTogc3RyaW5nLCB2YWw/OiBhbnkpOiB2b2lke1xuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGtleSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNba2V5XS5zZXRWYWx1ZSh2YWwpO1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIucHVzaCh7IGxhYmVsOiBgJHsga2V5IH06JHsgdmFsIH1gLCBrZXksIHZhbHVlOiB2YWwgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8aW9uLWljb24gbmFtZT1cInNlYXJjaFwiIGNsYXNzPVwiZnMtNCBwb3NpdGlvbi1hYnNvbHV0ZVwiIC8+XG5cbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZvcm0tY29udHJvbCBwcy01IHB5LTAgcGUtMCBnYXAtM1wiPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVGaWx0ZXIubGVuZ3RoID4gMFwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIGZsZXgtc2hyaW5rLTAgdGFnLWNvbnRhaW5lciBnYXAtMiB0ZXh0LW5vd3JhcCBvdmVyZmxvdy1hdXRvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctaXRlbSBwLTEgcm91bmRlZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHVzZXItc2VsZWN0LW5vbmVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3RpdmVGaWx0ZXI7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBjbGFzcz1cInBlLTEgbWUtMSBjdXJzb3ItcG9pbnRlciB0ZXh0LXByaW1hcnlcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGkpO1wiIC8+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGlucHV0ICNzZWFyY2hCb3ggdHlwZT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZsZXgtc2hyaW5rLTEgYm9yZGVyLTAgZm9ybS1jb250cm9sIHBzLTAgcHktMlwiIFtjbGFzcy5hZHZdPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKCk7XCIgLz5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIj5cbiAgICA8aW9uLWljb24gbmFtZT1cImZpbHRlclwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIGlkPVwiZmlsdGVyLXt7IGlkIH19XCIgLz5cbiAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBmcy00IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsZWFyKCk7XCIgLz5cblxuICAgIDxpb24tcG9wb3ZlciB0cmlnZ2VyPVwiZmlsdGVyLXt7IGlkIH19XCIgdHJpZ2dlckFjdGlvbj1cImNsaWNrXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgYm9yZGVyLWJvdHRvbSBwLTEgcGUtNCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9ucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNSBmdy1tZWRpdW1cIj5BZHZhbmNlZCBGaWx0ZXI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICBcbiAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZy5maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cC1pbnB1dCB0eXBlPVwibnVtYmVyXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveCBsYWJlbFBsYWNlbWVudD1cImVuZFwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5IH19XCI+e3sgYy5sYWJlbCB9fTwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgbXktNFwiICpuZ1N3aXRjaENhc2U9XCInZGF0ZS1yYW5nZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItZnJvbVwiIGxhYmVsPVwie3sgYy5sYWJlbFswXSB9fVwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5WzBdIH19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItdG9cIiBsYWJlbD1cInt7IGMubGFiZWxbMV0gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleVsxXSB9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLXNlbGVjdCBjbGFzcz1cIm15LTRcIiBsYWJlbD1cInt7IGMubGFiZWwgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIFtpdGVtc109XCJjLm9wdGlvbnMhXCIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtc2VhcmNoYWJsZS1zZWxlY3QgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiBbcXVlcnlGdW5jXT1cImMuZ2V0T3B0aW9ucyFcIiBbaW5pdGlhbEl0ZW1zXT1cImMub3B0aW9ucyFcIiAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaGFibGUtc2VsZWN0J1wiIC8+XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiAqbmdTd2l0Y2hEZWZhdWx0IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIHB5LTMgcHgtNCBib3JkZXItdG9wIGQtZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiZm9ybS5yZXNldCgpO1wiPlJlc2V0PC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlYXJjaCgpO1wiPlNlYXJjaDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLXBvcG92ZXI+ICAgIFxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFJaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQXFCckgsTUFBTSxPQUFPLGVBQWU7SUF5QzFCLFlBQ21DLFdBQW1CLEVBQ2pDLEVBQXFCLEVBQ3JCLFdBQThCO1FBRmhCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQXZCekIsYUFBUSxHQUFvQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWXpFLFNBQUksR0FBbUIsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFNbEQsaUJBQVksR0FBb0QsRUFBRSxDQUFDO0lBTXRFLENBQUM7SUFNRSxR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QUM7UUFDMUUsQ0FBQztJQUNILENBQUM7OEdBeEtVLGVBQWUsa0JBMENiLGFBQWE7a0dBMUNmLGVBQWUsK1NDNUI1Qix5eUhBNERBLDhwQkR6Q0ksV0FBVyw2NEJBQ1gsWUFBWSw0Z0JBQ1osaUJBQWlCLCtHQUNqQixrQkFBa0IsOEhBQ2xCLG1CQUFtQiw2ckJBQ25CLG1CQUFtQixxTEFDbkIsNkJBQTZCOzsyRkFHcEIsZUFBZTtrQkFuQjNCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsMkJBQTJCO3FCQUNuQyxXQUNRO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLDZCQUE2QjtxQkFDOUI7OzBCQTRDRSxTQUFTOzJCQUFDLGFBQWE7eUdBbkNRLEVBQUU7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9TLE1BQU07c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU9DLFFBQVE7c0JBQWpDLE1BQU07Z0JBTW9DLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50LCBGb3JtU2VsZWN0Q29tcG9uZW50LCBGb3JtRGF0ZUNvbXBvbmVudCwgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBcbiAgICBjbGFzczogJ2QtYmxvY2sgcG9zaXRpb24tcmVsYXRpdmUnIFxuICB9LFxuICBpbXBvcnRzOiBbIFxuICAgIElvbmljTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSwgXG4gICAgRm9ybURhdGVDb21wb25lbnQsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybVNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtU2VhcmNoYWJsZVNlbGVjdENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZpbHRlci5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgaWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgc3BlY2lmeWluZyBmaWx0ZXIgZmllbGRzIGFuZCBtb2RlLlxuICAgKiBAdHlwZSB7RmlsdGVyQ29uZmlnfVxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBjb25maWchOiBGaWx0ZXJDb25maWc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBldmVudCBlbWl0dGVyIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHBlcmZvcm1zIGEgc2VhcmNoLlxuICAgKiBFbWl0cyBhIGBGaWx0ZXJTZWFyY2hFdmVudGAgb2JqZWN0IHdpdGggc2VhcmNoIG1vZGUgYW5kIGNyaXRlcmlhIGRhdGEuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8RmlsdGVyU2VhcmNoRXZlbnQ+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPEZpbHRlclNlYXJjaEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVmlld0NoaWxkIGRlY29yYXRvciB0byByZWZlcmVuY2UgdGhlIHNlYXJjaEJveCBlbGVtZW50IGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogQHR5cGUge0VsZW1lbnRSZWZ9XG4gICAqL1xuICBAVmlld0NoaWxkKCdzZWFyY2hCb3gnKSBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoQm94ITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogRm9ybSBncm91cCBmb3IgbWFuYWdpbmcgZm9ybSBjb250cm9scy5cbiAgICogQHR5cGUge0Zvcm1Hcm91cDxhbnk+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZvcm06IEZvcm1Hcm91cDxhbnk+ID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgLyoqXG4gICAqIEFycmF5IHRvIHN0b3JlIGFjdGl2ZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqIEB0eXBlIHt7IGxhYmVsOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXX1cbiAgICovXG4gIHB1YmxpYyBhY3RpdmVGaWx0ZXI6IHsgbGFiZWw6IHN0cmluZywga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwb3BvdmVyQ3RybDogUG9wb3ZlckNvbnRyb2xsZXJcbiAgKSB7IH0gXG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudC5cbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2xzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgdGhpcy5jb25maWcuZmllbGRzLmZvckVhY2goKHsga2V5LCBpbml0aWFsVmFsdWUgfTogRmlsdGVyRmllbGQpID0+IHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgdGhpcy5jcmVhdGVGb3JtQ29udHJvbChrZXksIGluaXRpYWxWYWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAga2V5LmZvckVhY2goKGs6IHN0cmluZywgaTogbnVtYmVyKSA9PiB0aGlzLmNyZWF0ZUZvcm1Db250cm9sKGssIGluaXRpYWxWYWx1ZT8uYXQoaSkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGZpbHRlciBwb3BvdmVyLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWR7IHRoaXMucG9wb3ZlckN0cmwuZGlzbWlzcygpOyB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgZmlsdGVyIGNyaXRlcmlhIGFuZCB0cmlnZ2VycyBhIHNlYXJjaCBldmVudCB3aXRoIG51bGwgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lke1xuICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh7IG1vZGU6IHRoaXMuY29uZmlnLm1vZGUsIGRhdGE6IG51bGwgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHNwZWNpZmljIGZpbHRlciBjcml0ZXJpYSBiYXNlZCBvbiBpdHMgaW5kZXguXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpIC0gSW5kZXggb2YgdGhlIGZpbHRlciBjcml0ZXJpYSB0byBiZSByZW1vdmVkLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZpbHRlcihpOiBudW1iZXIpOiB2b2lke1xuICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmFjdGl2ZUZpbHRlcltpXS5rZXldLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zcGxpY2UoaSwgMSk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBzZWFyY2ggYmFzZWQgb24gdGhlIGFjdGl2ZSBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoKCk6IHZvaWR7XG4gICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKGs6IHN0cmluZywgdjogc3RyaW5nKSA9PiB0aGlzLmFjdGl2ZUZpbHRlci5wdXNoKHsgIGtleTogaywgdmFsdWU6IHYsIGxhYmVsOiBgJHsgayB9OiR7IGsuaW5jbHVkZXMoJ2RhdGUnKT8gZm9ybWF0RGF0ZSh2LCAnZGQgTU1NIHl5eXknLCAnZW4tVVMnKSA6IHYgfWAgfSkpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IGZpbHRlciBjcml0ZXJpYSBiYXNlZCBvbiB0aGUgdXNlciBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhZGQoKTogdm9pZHtcbiAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHRoaXMuZ2V0VmFsdWUodGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZpZWxkcy5maW5kSW5kZXgoKHsga2V5OiBrIH0pID0+IGsgPT09IGtleSkgPT09IC0xKSB7XG4gICAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaSA9IHRoaXMuYWN0aXZlRmlsdGVyLmZpbmRJbmRleCgoeyBrZXk6IGsgfSkgPT4gayA9PT0ga2V5KTtcbiAgICBpZiAoaSA9PT0gLTEpIHRoaXMuYWN0aXZlRmlsdGVyLnB1c2goeyBsYWJlbDogYCR7IGtleSB9OiR7IHZhbHVlIH1gLCBrZXksIHZhbHVlIH0pO1xuICAgIGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJbaV0ua2V5ID0ga2V5O1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJbaV0udmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLmxhYmVsID0gYCR7IGtleSB9OiR7IHZhbHVlIH1gO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgW2tleV06IHZhbHVlIH0pO1xuICAgIHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYWN0aXZlIGZpbHRlciBhbmQgY2xlYXJzIHRoZSBzZWFyY2ggYm94LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0VmFsdWUoKTogdm9pZHtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5sZW5ndGggPSAwO1xuICAgIHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIGlucHV0IHZhbHVlIGFuZCByZXR1cm5zIGEga2V5LXZhbHVlIHBhaXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIElucHV0IHZhbHVlIHRvIGJlIHBhcnNlZC5cbiAgICogQHJldHVybnMge3sga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfX0gLSBLZXktdmFsdWUgcGFpciBleHRyYWN0ZWQgZnJvbSB0aGUgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfXtcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoJzonKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxKSByZXR1cm4geyBrZXk6IDxzdHJpbmc+IHRoaXMuY29uZmlnLmZpZWxkc1swXS5rZXksIHZhbHVlOiB2YWx1ZXNbMF0gfTtcbiAgICByZXR1cm4geyBrZXk6IHZhbHVlc1swXSwgdmFsdWU6IHZhbHVlc1sxXSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWFyY2ggZXZlbnQgYmFzZWQgb24gdGhlIGZvcm0gdmFsdWVzLlxuICAgKiBJbnZva2VzIGFuIGV4dHJhIGFjdGlvbiBpZiBwcm92aWRlZC5cbiAgICogQHBhcmFtIHsoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWR9IFtleHRyYUFjdGlvbl0gLSBPcHRpb25hbCBleHRyYSBhY3Rpb24gdG8gYmUgaW52b2tlZC5cbiAgICovXG4gIHByb3RlY3RlZCBlbWl0VmFsdWUoZXh0cmFBY3Rpb24/OiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lke1xuICAgIGxldCBmbGFnOiBib29sZWFuID0gZmFsc2U7XG4gICAgY29uc3QgZiA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IGRhdGE6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgXG4gICAgT2JqZWN0LmtleXMoZikuZm9yRWFjaCgoazogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIWZba10pIHJldHVybjtcbiAgICAgIFxuICAgICAgZmxhZyA9IHRydWU7XG4gICAgICBkYXRhW2tdID0gZltrXTtcbiAgICAgIGV4dHJhQWN0aW9uPy4oaywgZltrXSk7XG4gICAgfSk7XG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KHsgbW9kZTogdGhpcy5jb25maWcubW9kZSwgZGF0YTogZmxhZz8gZGF0YSA6IG51bGwgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvcm0gY29udHJvbCBmb3IgYSBnaXZlbiBrZXkgYW5kIHNldHMgaXRzIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBLZXkgZm9yIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqIEBwYXJhbSB7Kn0gW3ZhbF0gLSBJbml0aWFsIHZhbHVlIGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUZvcm1Db250cm9sKGtleTogc3RyaW5nLCB2YWw/OiBhbnkpOiB2b2lke1xuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGtleSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNba2V5XS5zZXRWYWx1ZSh2YWwpO1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIucHVzaCh7IGxhYmVsOiBgJHsga2V5IH06JHsgdmFsIH1gLCBrZXksIHZhbHVlOiB2YWwgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8aW9uLWljb24gbmFtZT1cInNlYXJjaFwiIGNsYXNzPVwiZnMtNCBwb3NpdGlvbi1hYnNvbHV0ZVwiIC8+XG5cbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZvcm0tY29udHJvbCBwcy01IHB5LTAgcGUtMCBnYXAtM1wiPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVGaWx0ZXIubGVuZ3RoID4gMFwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIGZsZXgtc2hyaW5rLTAgdGFnLWNvbnRhaW5lciBnYXAtMiB0ZXh0LW5vd3JhcCBvdmVyZmxvdy1hdXRvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctaXRlbSBwLTEgcm91bmRlZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHVzZXItc2VsZWN0LW5vbmVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3RpdmVGaWx0ZXI7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBjbGFzcz1cInBlLTEgbWUtMSBjdXJzb3ItcG9pbnRlciB0ZXh0LXByaW1hcnlcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGkpO1wiIC8+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGlucHV0ICNzZWFyY2hCb3ggdHlwZT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZsZXgtc2hyaW5rLTEgYm9yZGVyLTAgZm9ybS1jb250cm9sIHBzLTAgcHktMlwiIFtjbGFzcy5hZHZdPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKCk7XCIgLz5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIj5cbiAgICA8aW9uLWljb24gbmFtZT1cImZpbHRlclwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIGlkPVwiZmlsdGVyLXt7IGlkIH19XCIgLz5cbiAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBmcy00IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsZWFyKCk7XCIgLz5cblxuICAgIDxpb24tcG9wb3ZlciB0cmlnZ2VyPVwiZmlsdGVyLXt7IGlkIH19XCIgdHJpZ2dlckFjdGlvbj1cImNsaWNrXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgYm9yZGVyLWJvdHRvbSBwLTEgcGUtNCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9ucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNSBmdy1tZWRpdW1cIj5BZHZhbmNlZCBGaWx0ZXI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICBcbiAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZy5maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cC1pbnB1dCB0eXBlPVwibnVtYmVyXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveCBsYWJlbFBsYWNlbWVudD1cImVuZFwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5IH19XCI+e3sgYy5sYWJlbCB9fTwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgbXktNFwiICpuZ1N3aXRjaENhc2U9XCInZGF0ZS1yYW5nZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItZnJvbVwiIGxhYmVsPVwie3sgYy5sYWJlbFswXSB9fVwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5WzBdIH19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItdG9cIiBsYWJlbD1cInt7IGMubGFiZWxbMV0gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleVsxXSB9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLXNlbGVjdCBjbGFzcz1cIm15LTRcIiBsYWJlbD1cInt7IGMubGFiZWwgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIFtpdGVtc109XCJjLm9wdGlvbnMhXCIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtc2VhcmNoYWJsZS1zZWxlY3QgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiBbcXVlcnlGdW5jXT1cImMuZ2V0T3B0aW9ucyFcIiBbaW5pdGlhbEl0ZW1zXT1cImMub3B0aW9ucyFcIiAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaGFibGUtc2VsZWN0J1wiIC8+XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJteS00XCIgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiAqbmdTd2l0Y2hEZWZhdWx0IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIHB5LTMgcHgtNCBib3JkZXItdG9wIGQtZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiZm9ybS5yZXNldCgpO1wiPlJlc2V0PC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlYXJjaCgpO1wiPlNlYXJjaDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLXBvcG92ZXI+ICAgIFxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -16,6 +16,7 @@ export class FormCurrencyInputComponent {
|
|
|
16
16
|
this.currencyService = currencyService;
|
|
17
17
|
this.clearable = true;
|
|
18
18
|
this.isInputNumber = false;
|
|
19
|
+
this.label = 'Currency';
|
|
19
20
|
this.initialItems = [];
|
|
20
21
|
this.numberValue = null;
|
|
21
22
|
this.isNumberDisabled = false;
|
|
@@ -92,8 +93,8 @@ export class FormCurrencyInputComponent {
|
|
|
92
93
|
return this.currencyService.query(keyword).pipe(map(({ data: { webConfigMsCurrency: { data } } }) => data.map(({ code, name, magnifyValue }) => ({ label: `[${code}] ${name}`, value: code, magnifyValue }))));
|
|
93
94
|
}
|
|
94
95
|
;
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, deps: [{ token: 'numberPlaceholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { clearable: "clearable", isInputNumber: "isInputNumber", label: "label", initialItems: "initialItems", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled", bindLabel: "bindLabel", bindValue: "bindValue" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
97
98
|
{
|
|
98
99
|
multi: true,
|
|
99
100
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -104,9 +105,9 @@ export class FormCurrencyInputComponent {
|
|
|
104
105
|
provide: NG_VALIDATORS,
|
|
105
106
|
useExisting: FormCurrencyInputComponent
|
|
106
107
|
}
|
|
107
|
-
], usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">
|
|
108
|
+
], usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n typeToSearchText=\"Please enter 3 or more characters\"\n placeholder=\"{{ label }}\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
108
109
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, decorators: [{
|
|
110
111
|
type: Component,
|
|
111
112
|
args: [{ standalone: true, selector: 'up-currency-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
112
113
|
class: 'd-block'
|
|
@@ -125,7 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
125
126
|
provide: NG_VALIDATORS,
|
|
126
127
|
useExisting: FormCurrencyInputComponent
|
|
127
128
|
}
|
|
128
|
-
], template: "<label class=\"form-label\" [class.required]=\"required\">
|
|
129
|
+
], template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n typeToSearchText=\"Please enter 3 or more characters\"\n placeholder=\"{{ label }}\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"] }]
|
|
129
130
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
130
131
|
type: Attribute,
|
|
131
132
|
args: ['numberPlaceholder']
|
|
@@ -133,6 +134,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
133
134
|
type: Input
|
|
134
135
|
}], isInputNumber: [{
|
|
135
136
|
type: Input
|
|
137
|
+
}], label: [{
|
|
138
|
+
type: Input
|
|
136
139
|
}], initialItems: [{
|
|
137
140
|
type: Input
|
|
138
141
|
}], numberValue: [{
|
|
@@ -150,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
150
153
|
}], onChange: [{
|
|
151
154
|
type: Output
|
|
152
155
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkosT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUE4QnJELE1BQU0sT0FBTywwQkFBMEI7SUF1SnJDLFlBQ3lDLGlCQUF5QixFQUM3QyxFQUFxQixFQUNyQixlQUFnQztRQUZaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFuSnJDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFPMUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFPL0IsaUJBQVksR0FBNkQsRUFBRSxDQUFDO1FBTzVFLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQU9sQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFPbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBTzFCLGNBQVMsR0FBVyxPQUFPLENBQUM7UUFPNUIsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQU0zQixhQUFRLEdBQStHLElBQUksWUFBWSxFQUFnRyxDQUFDO1FBTXpPLGNBQVMsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQU1oRCxXQUFNLEdBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNoRSxvQkFBb0IsRUFBRSxFQUN0QixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUNoQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxNQUFhLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDdkUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FDeEMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUNsQyxDQUFDO1FBTUssV0FBTSxHQUFzQixJQUFJLENBQUMsTUFBTSxDQUFDO1FBT3hDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFPM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU8zQixVQUFLLEdBQWUsSUFBSSxDQUFDO1FBb0J0QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQU0zQixZQUFPLEdBQXdCLENBQUMsSUFBUyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFNakQsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQU14QyxDQUFDO0lBU0csV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkksSUFBSSxDQUFDLFdBQVcsR0FBWSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDO1FBQ3BGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDbkQsQ0FBQztJQU1NLGdCQUFnQixDQUFDLEVBQU8sSUFBUyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFNckQsaUJBQWlCLENBQUMsRUFBTyxJQUFTLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQU14RCxVQUFVLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFNTSxnQkFBZ0IsQ0FBRSxDQUFVO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU9NLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTTSxNQUFNLENBQUMsQ0FBTztRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsQ0FBQztnQkFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxZQUFZLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDOztZQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBUU0sV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFPO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQVVNLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQU07UUFDckUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLGtCQUFtQixJQUFJLENBQUMsY0FBZSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQUUsY0FBYyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQVFTLFNBQVMsQ0FBQyxPQUFlO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUssSUFBSyxLQUFNLElBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3JLLENBQUM7SUFDSixDQUFDO0lBQUEsQ0FBQzs4R0F0UlMsMEJBQTBCLGtCQXdKeEIsbUJBQW1CO2tHQXhKckIsMEJBQTBCLHdZQWIxQjtZQUNUO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7WUFDRDtnQkFDRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLDBCQUEwQjthQUN4QztTQUNGLCtDQ2pDSCxvaERBeUNBLDRHRHZCSSxZQUFZLDhWQUNaLFdBQVcsOFZBQ1gsY0FBYzs7MkZBZUwsMEJBQTBCO2tCQTNCdEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFNBQVM7cUJBQ2pCLFdBQ1E7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7cUJBQ2YsYUFDVTt3QkFDVDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsNEJBQTRCO3lCQUN4QztxQkFDRjs7MEJBMEpFLFNBQVM7MkJBQUMsbUJBQW1CO3VHQWpKaEIsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBT1UsV0FBVztzQkFBMUIsS0FBSztnQkFPVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFNBQVM7c0JBQXhCLEtBQUs7Z0JBT1UsU0FBUztzQkFBeEIsS0FBSztnQkFNVyxRQUFRO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNhdGNoRXJyb3IsIGNvbmNhdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgZ2V0Rm9ybUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtY3VycmVuY3ktaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgXG4gICAgY2xhc3M6ICdkLWJsb2NrJyBcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xuICBcbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgY2xlYXJhYmxlLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge3RydWV9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIG51bWJlciBpbnB1dCBmb3JtIGlzIGhpZGUgb3Igc2hvdy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0lucHV0TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgaW5pdGlhbCBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge3sgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbWFnbmlmeVZhbHVlOiBudW1iZXIgfVtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxJdGVtczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBtYWduaWZ5VmFsdWU6IG51bWJlciB9W10gPSBbXTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gc2V0IHRoZSB2YWx1ZSBvZiBpbnB1dCBudW1iZXIgZmllbGQuXG4gICAqIEB0eXBlIHtudW1iZXIgfCBudWxsfVxuICAgKiBAZGVmYXVsdCB7bnVsbH1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBudW1iZXJWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBudW1iZXIgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaXNOdW1iZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIHJlcXVpcmVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgc3BlY2lmeWluZyB0aGUgcHJvcGVydHkgdG8gYmluZCBhcyB0aGUgbGFiZWwgZm9yIGl0ZW1zIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHsnbGFiZWwnfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGJpbmRMYWJlbDogc3RyaW5nID0gJ2xhYmVsJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgc3BlY2lmeWluZyB0aGUgcHJvcGVydHkgdG8gYmluZCBhcyB0aGUgdmFsdWUgZm9yIGl0ZW1zIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IHsndmFsdWUnfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGJpbmRWYWx1ZTogc3RyaW5nID0gJ3ZhbHVlJztcblxuICAvKipcbiAgICogT3V0cHV0IHZhcmlhYmxlIHRvIGVtaXQgY2hhbmdlcyB3aGVuIHRoZSBzZWxlY3QgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxhbnk+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHsgY2N5OiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG1hZ25pZnlWYWx1ZTogbnVtYmVyIH0gfCBhbnksIG51bWJlcjogbnVtYmVyIHwgbnVsbCB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjY3k6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbWFnbmlmeVZhbHVlOiBudW1iZXIgfSB8IGFueSwgbnVtYmVyOiBudW1iZXIgfCBudWxsIH0+KCk7XG4gIFxuICAvKipcbiAgICogU3ViamVjdCBmb3IgaGFuZGxpbmcgdHlwZWFoZWFkIGV2ZW50cyB0byB0cmlnZ2VyIGl0ZW0gcXVlcmllcyBiYXNlZCBvbiB0aGUgc2VhcmNoIGtleXdvcmQuXG4gICAqIEB0eXBlIHtTdWJqZWN0PHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZWFoZWFkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIGhhbmRsaW5nIGl0ZW0gcXVlcmllcyBiYXNlZCBvbiB0aGUgc2VhcmNoIGtleXdvcmQuXG4gICAqIEB0eXBlIHtPYnNlcnZhYmxlPGFueVtdPn1cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBxdWVyeSQ6IE9ic2VydmFibGU8YW55W10+ID0gdGhpcy50eXBlYWhlYWQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgIHRhcCgoKSA9PiB0aGlzLmlzTG9hZGluZyA9IHRydWUpLFxuICAgIHN3aXRjaE1hcCgoazogc3RyaW5nKSA9PiB0aGlzLnF1ZXJ5RnVuYyhrKS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IGFueVtdKSA9PiByZXN1bHQubGVuZ3RoID09PSAwPyB0aGlzLmluaXRpYWxJdGVtcyA6IHJlc3VsdCksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHRoaXMuaW5pdGlhbEl0ZW1zKSlcbiAgICApKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5pc0xvYWRpbmcgPSBmYWxzZSlcbiAgKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBmb3IgZGlzcGxheWluZyBpdGVtcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7T2JzZXJ2YWJsZTxhbnlbXT59XG4gICAqL1xuICBwdWJsaWMgaXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPiA9IHRoaXMucXVlcnkkO1xuXG4gIC8qKlxuICAgKiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgbG9hZGluZy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGhhcyBiZWVuIHRvdWNoZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7YW55IHwgbnVsbH1cbiAgICogQGRlZmF1bHQge251bGx9XG4gICAqL1xuICBwdWJsaWMgdmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7dW5kZWZpbmVkfVxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7QWJzdHJhY3RDb250cm9sfVxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1Db250cm9sITogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1heGltdW0gZGlnaXRzIGFsbG93ZWQgYmVoaW5kIHRoZSBjb21tYS5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgezB9XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVjaW1hbExpbWl0ZXI6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHsoX3ZhbDogYW55KSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIGNoYW5nZWQ6IChfdmFsOiBhbnkpID0+IHZvaWQgPSAoX3ZhbDogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7KCkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAQXR0cmlidXRlKCdudW1iZXJQbGFjZWhvbGRlcicpIHB1YmxpYyBudW1iZXJQbGFjZWhvbGRlcjogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjaDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgY2FsbGVkIHdoZW4gY2hhbmdlcyBvY2N1ciB0byBpbnB1dCBwcm9wZXJ0aWVzLlxuICAgKiBVcGRhdGVzIHRoZSBpdGVtcyQgb2JzZXJ2YWJsZSB3aGVuIHRoZSBpbml0aWFsSXRlbXMgaW5wdXQgY2hhbmdlcy5cbiAgICogVXBkYXRlcyB0aGUgZGVjaW1hbExpbWl0ZXIgdGhhdCBpcyB0aGUgbWF4aW11bSBkaWdpdHMgYmVoaW5kIGNvbW1hLlxuICAgKiBDYWxjdWxhdGUgdGhlIHZhbHVlIG9mIGlucHV0IG51bWJlciwgdGhpcyBpcyB0byBjYWxjdWxhdGUgdGhlIGFjdHVhbCB2YWx1ZSBkaXZpZGVkIGJ5IG1hZ25pZnlWYWx1ZS5cbiAgICogQHBhcmFtIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzIC0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYW5nZWQgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZHtcbiAgICBpZiAoY2hhbmdlc1snaW5pdGlhbEl0ZW1zJ10pIHtcbiAgICAgIHRoaXMuaXRlbXMkID0gY29uY2F0KG9mKHRoaXMuaW5pdGlhbEl0ZW1zKSwgdGhpcy5xdWVyeSQpO1xuICAgICAgdGhpcy5kZWNpbWFsTGltaXRlciA9IHRoaXMuaW5pdGlhbEl0ZW1zWzBdPy5tYWduaWZ5VmFsdWUgPT09IDE/IDAgOiBNYXRoLmZsb29yKE1hdGgubG9nMTAodGhpcy5pbml0aWFsSXRlbXNbMF0/Lm1hZ25pZnlWYWx1ZT8/IDEpKTtcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSA8bnVtYmVyPiB0aGlzLm51bWJlclZhbHVlIC8gdGhpcy5pbml0aWFsSXRlbXNbMF0/Lm1hZ25pZnlWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0lucHV0TnVtYmVyKSB0aGlzLmJpbmRMYWJlbCA9ICd2YWx1ZSc7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2VsZWN0IGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB7KF92YWw6IGFueSkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkeyB0aGlzLmNoYW5nZWQgPSBmbjsgfVxuICBcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzZWxlY3QgaW5wdXQgaXMgdG91Y2hlZC5cbiAgICogQHBhcmFtIHsoKSA9PiB2b2lkfSBmbiAtIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0b3VjaCBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7IHRoaXMub25Ub3VjaGVkID0gZm47IH0gXG4gIFxuICAvKipcbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEBwYXJhbSB7Kn0gdmFsIC0gVGhlIG5ldyB2YWx1ZSB0byBiZSBzZXQuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWR7XG4gICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIFxuICAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZCAtIFRoZSBuZXcgZGlzYWJsZWQgc3RhdGUuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oZDogYm9vbGVhbik6IHZvaWR7IFxuICAgIHRoaXMuZGlzYWJsZWQgPSBkOyBcbiAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBhYnN0cmFjdCBjb250cm9sIHJlcHJlc2VudGluZyB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcmV0dXJucyB7KFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKX0gLSBWYWxpZGF0aW9uIGVycm9ycyBpZiBhbnksIG90aGVyd2lzZSBudWxsLlxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxseyAgICBcbiAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNoYW5nZXMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogU2V0IHRoZSBudW1iZXIgYXMgbnVsbCBpZiBjdXJyZW5jeSBjaGFuZ2VkIHRvIHByZXZlbnQgbWlzbWF0Y2ggYmV0d2VlbiBzZWxlY3RlZCBjdXJyZW5jeSBhbmQgdGhlIG51bWJlciBjb21tYSBhbGxvd2VkIGxpbWl0LlxuICAgKiBFbWl0cyB0aGUgb25DaGFuZ2UgZXZlbnQsIHVwZGF0ZXMgdGhlIGluaXRpYWxJdGVtcywgYW5kIGhhbmRsZXMgdmFsaWRhdGlvbiBiYXNlZCBvbiBmb3JtIGNvbnRyb2wgZXJyb3JzIGFuZCBsYWJlbC5cbiAgICogU2V0IHRoZSBkZWNpbWFsTGltaXRlciBiYXNlZCBvbiBzZWxlY3RlZCBtYWduaWZ5VmFsdWVcbiAgICogQHBhcmFtIHthbnl9IGUgLSBUaGUgZXZlbnQgY29udGFpbmluZyB0aGUgbmV3IHNlbGVjdCBpbnB1dCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2UoZT86IGFueSk6IHZvaWR7XG4gICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcikgdGhpcy5udW1iZXJWYWx1ZSA9IG51bGw7XG4gICAgXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgY2N5OiBlLCBudW1iZXI6IHRoaXMubnVtYmVyVmFsdWUgfSk7XG4gICAgdGhpcy5pbml0aWFsSXRlbXMgPSBlO1xuXG4gICAgaWYgKCF0aGlzLmlzVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuaXNUb3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAoIWUpIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgZWxzZSB0aGlzLnZhbHVlID0gZVt0aGlzLmJpbmRWYWx1ZV07XG5cbiAgICAgIHRoaXMuY2hhbmdlZCh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuZXJyb3JNc2cgPSBnZXRGb3JtRXJyb3JNZXNzYWdlKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLCAnQ3VycmVuY3knKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKGU/Lm1hZ25pZnlWYWx1ZSA9PT0gMSkgdGhpcy5kZWNpbWFsTGltaXRlciA9IDA7XG4gICAgZWxzZSB0aGlzLmRlY2ltYWxMaW1pdGVyID0gTWF0aC5mbG9vcihNYXRoLmxvZzEwKGU/Lm1hZ25pZnlWYWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBvbiBmb3JtIG51bWJlciBpbnB1dC5cbiAgICogU2V0IHRoZSBudW1iZXJWYWx1ZSB3aXRoIGN1cnJlbnQgdmFsdWUuXG4gICAqIEVtaXQgdGhlIHNlbGVjdGVkIGN1cnJlbmN5IGFuZCB0aGUgbnVtYmVyIHZhbHVlIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0ge2FueX0gLSBDb250YWluIGB2YWx1ZWAgdGhlIHZhbHVlIG9mIGlucHV0ZWQgbnVtYmVyLlxuICAgKi9cbiAgcHVibGljIG51bWJlcklucHV0KHsgdmFsdWUgfTogYW55KTogdm9pZHtcbiAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgY2N5OiB0aGlzLmluaXRpYWxJdGVtcywgbnVtYmVyOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZm9ybSBudW1iZXIga2V5cHJlc3MuXG4gICAqIENvbnRyb2xsaW5nIGlucHV0IGluIGEgbnVtYmVyIGZpZWxkLCByZXN0cmljdGluZyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGFsbG93ZWQuXG4gICAqIEBwYXJhbSB7YW55fSAtIENvbnRhaW5cbiAgICogY2hhckNvZGUgLSB0aGUgY2hhcmFjdGVyIGNvZGUgb2YgdGhlIGtleSBwcmVzc2VkLlxuICAgKiBwcmV2ZW50RGVmYXVsdCAtIHRoZSBmdW5jdGlvbiB0byBwcmV2ZW50IHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUgZXZlbnQuXG4gICAqIHRhcmdldC52YWx1ZSAtIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBpbnB1dCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBsaW1pdERlY2ltYWwoeyBjaGFyQ29kZSwgcHJldmVudERlZmF1bHQsIHRhcmdldDogeyB2YWx1ZSB9fTogYW55KTogdm9pZHtcbiAgICBjb25zdCByZWcgPSB0aGlzLmRlY2ltYWxMaW1pdGVyID4gMD8gbmV3IFJlZ0V4cChgXlxcXFxkKihcXFxcLlxcXFxkezAsJHsgdGhpcy5kZWNpbWFsTGltaXRlciB9fSk/JGApIDogL15cXGQrJC87XG4gICAgaWYgKCFyZWcudGVzdCh2YWx1ZSArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpKSkgcHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIHF1ZXJ5IG9wZXJhdGlvbiB0byByZXRyaWV2ZSBjdXJyZW5jeSBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXl3b3JkLlxuICAgKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcXVlcmllZCBjdXJyZW5jeSBkYXRhLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5d29yZCAtIFRoZSBrZXl3b3JkIHVzZWQgZm9yIHF1ZXJ5aW5nIGN1cnJlbmN5IGRhdGEuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGFueT59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcXVlcmllZCBjdXJyZW5jeSBkYXRhLlxuICAgKi9cbiAgcHJvdGVjdGVkIHF1ZXJ5RnVuYyhrZXl3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3lTZXJ2aWNlLnF1ZXJ5KGtleXdvcmQpLnBpcGUoXG4gICAgICBtYXAoKHsgZGF0YTogeyB3ZWJDb25maWdNc0N1cnJlbmN5OiB7IGRhdGEgfX19KSA9PiBkYXRhLm1hcCgoeyBjb2RlLCBuYW1lLCBtYWduaWZ5VmFsdWUgfTogYW55KSA9PiAoeyBsYWJlbDogYFskeyBjb2RlIH1dICR7IG5hbWUgfWAsIHZhbHVlOiBjb2RlLCBtYWduaWZ5VmFsdWUgfSkpKVxuICAgICk7XG4gIH07XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkXCI+Q3VycmVuY3k8L2xhYmVsPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdEZvcm0+XG4gICAgPG5nLXNlbGVjdCBcbiAgICAgICAgY2xhc3M9XCJmbGV4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLm51bWJlcl09XCJpc0lucHV0TnVtYmVyXCJcbiAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgdHlwZVRvU2VhcmNoVGV4dD1cIlBsZWFzZSBlbnRlciAzIG9yIG1vcmUgY2hhcmFjdGVyc1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiQ3VycmVuY3lcIlxuICAgICAgICBbYmluZExhYmVsXT1cImJpbmRMYWJlbFwiXG4gICAgICAgIFtiaW5kVmFsdWVdPVwiYmluZFZhbHVlXCJcbiAgICAgICAgW21pblRlcm1MZW5ndGhdPVwiM1wiXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICBbZWRpdGFibGVTZWFyY2hUZXJtXT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIFtyZWFkb25seV09XCJkaXNhYmxlZFwiIFxuICAgICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXG4gICAgICAgIFt0eXBlYWhlYWRdPVwidHlwZWFoZWFkXCJcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KTtcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWk9XCJpdGVtXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBpc0lucHV0TnVtYmVyPyBpLnZhbHVlIDogaS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXNlbGVjdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXROdW1iZXI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtMSBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEZvcm1cIiAvPlxuXG4gICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgW3BsYWNlaG9sZGVyXT1cIm51bWJlclBsYWNlaG9sZGVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1ncm93LTFcIiBbZGlzYWJsZWRdPVwiaXNOdW1iZXJEaXNhYmxlZFwiIFt2YWx1ZV09XCJudW1iZXJWYWx1ZVwiIChrZXlwcmVzcyk9XCJsaW1pdERlY2ltYWwoJGV2ZW50KVwiIChpbnB1dCk9XCJudW1iZXJJbnB1dCgkZXZlbnQudGFyZ2V0KVwiPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0lucHV0TnVtYmVyIGVsc2UgaW5wdXROdW1iZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0Rm9ybVwiIC8+XG48L25nLWNvbnRhaW5lcj5cblxuPGxhYmVsICpuZ0lmPVwiZXJyb3JNc2dcIiBjbGFzcz1cImlzLWludmFsaWRcIj57eyBlcnJvck1zZyB9fTwvbGFiZWw+XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkosT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUE4QnJELE1BQU0sT0FBTywwQkFBMEI7SUE4SnJDLFlBQ3lDLGlCQUF5QixFQUM3QyxFQUFxQixFQUNyQixlQUFnQztRQUZaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixv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O2dCQU9VLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBT1UsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1XLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY2F0Y2hFcnJvciwgY29uY2F0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1jdXJyZW5jeS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBcbiAgICBjbGFzczogJ2QtYmxvY2snIFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtQ3VycmVuY3lJbnB1dENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ3VycmVuY3lJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XG4gIFxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBpcyBjbGVhcmFibGUuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7dHJ1ZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbnVtYmVyIGlucHV0IGZvcm0gaXMgaGlkZSBvciBzaG93LlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlzSW5wdXROdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGxhYmVsIGlzIHNob3dlZCBhcyBgQ3VycmVuY3lgIG9yIGBDb3VudHJ5YFxuICAgKiBAdHlwZSB7J0NvdW50cnknIHwgJ0N1cnJlbmN5J31cbiAgICogQGRlZmF1bHQgeydDdXJyZW5jeSd9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6ICdDdXJyZW5jeScgfCAnQ291bnRyeScgPSAnQ3VycmVuY3knO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGluaXRpYWwgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHt7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG1hZ25pZnlWYWx1ZTogbnVtYmVyIH1bXX1cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsSXRlbXM6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbWFnbmlmeVZhbHVlOiBudW1iZXIgfVtdID0gW107XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIHNldCB0aGUgdmFsdWUgb2YgaW5wdXQgbnVtYmVyIGZpZWxkLlxuICAgKiBAdHlwZSB7bnVtYmVyIHwgbnVsbH1cbiAgICogQGRlZmF1bHQge251bGx9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbnVtYmVyVmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbnVtYmVyIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlzTnVtYmVyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBpcyByZXF1aXJlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJpbmQgYXMgdGhlIGxhYmVsIGZvciBpdGVtcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7J2xhYmVsJ31cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBiaW5kTGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJpbmQgYXMgdGhlIHZhbHVlIGZvciBpdGVtcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7J3ZhbHVlJ31cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBiaW5kVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCB2YXJpYWJsZSB0byBlbWl0IGNoYW5nZXMgd2hlbiB0aGUgc2VsZWN0IGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8YW55Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGNjeTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBtYWduaWZ5VmFsdWU6IG51bWJlciB9IHwgYW55LCBudW1iZXI6IG51bWJlciB8IG51bGwgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgY2N5OiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG1hZ25pZnlWYWx1ZTogbnVtYmVyIH0gfCBhbnksIG51bWJlcjogbnVtYmVyIHwgbnVsbCB9PigpO1xuICBcbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGhhbmRsaW5nIHR5cGVhaGVhZCBldmVudHMgdG8gdHJpZ2dlciBpdGVtIHF1ZXJpZXMgYmFzZWQgb24gdGhlIHNlYXJjaCBrZXl3b3JkLlxuICAgKiBAdHlwZSB7U3ViamVjdDxzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGVhaGVhZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGZvciBoYW5kbGluZyBpdGVtIHF1ZXJpZXMgYmFzZWQgb24gdGhlIHNlYXJjaCBrZXl3b3JkLlxuICAgKiBAdHlwZSB7T2JzZXJ2YWJsZTxhbnlbXT59XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcXVlcnkkOiBPYnNlcnZhYmxlPGFueVtdPiA9IHRoaXMudHlwZWFoZWFkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5pc0xvYWRpbmcgPSB0cnVlKSxcbiAgICBzd2l0Y2hNYXAoKGs6IHN0cmluZykgPT4gdGhpcy5xdWVyeUZ1bmMoaykucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBhbnlbXSkgPT4gcmVzdWx0Lmxlbmd0aCA9PT0gMD8gdGhpcy5pbml0aWFsSXRlbXMgOiByZXN1bHQpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih0aGlzLmluaXRpYWxJdGVtcykpXG4gICAgKSksXG4gICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpXG4gICk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIGRpc3BsYXlpbmcgaXRlbXMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge09ic2VydmFibGU8YW55W10+fVxuICAgKi9cbiAgcHVibGljIGl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLnF1ZXJ5JDtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGxvYWRpbmcuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgcHVibGljIGlzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge2FueSB8IG51bGx9XG4gICAqIEBkZWZhdWx0IHtudWxsfVxuICAgKi9cbiAgcHVibGljIHZhbHVlOiBhbnkgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQge3VuZGVmaW5lZH1cbiAgICovXG4gIHB1YmxpYyBlcnJvck1zZyE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm0gY29udHJvbCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cbiAgICovXG4gIHByb3RlY3RlZCBmb3JtQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtYXhpbXVtIGRpZ2l0cyBhbGxvd2VkIGJlaGluZCB0aGUgY29tbWEuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IHswfVxuICAgKi9cbiAgcHJvdGVjdGVkIGRlY2ltYWxMaW1pdGVyOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgdmFsdWUgY2hhbmdlcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7KF92YWw6IGFueSkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBjaGFuZ2VkOiAoX3ZhbDogYW55KSA9PiB2b2lkID0gKF92YWw6IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaCBldmVudHMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUgeygpID0+IHZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgnbnVtYmVyUGxhY2Vob2xkZXInKSBwdWJsaWMgbnVtYmVyUGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIGNhbGxlZCB3aGVuIGNoYW5nZXMgb2NjdXIgdG8gaW5wdXQgcHJvcGVydGllcy5cbiAgICogVXBkYXRlcyB0aGUgaXRlbXMkIG9ic2VydmFibGUgd2hlbiB0aGUgaW5pdGlhbEl0ZW1zIGlucHV0IGNoYW5nZXMuXG4gICAqIFVwZGF0ZXMgdGhlIGRlY2ltYWxMaW1pdGVyIHRoYXQgaXMgdGhlIG1heGltdW0gZGlnaXRzIGJlaGluZCBjb21tYS5cbiAgICogQ2FsY3VsYXRlIHRoZSB2YWx1ZSBvZiBpbnB1dCBudW1iZXIsIHRoaXMgaXMgdG8gY2FsY3VsYXRlIHRoZSBhY3R1YWwgdmFsdWUgZGl2aWRlZCBieSBtYWduaWZ5VmFsdWUuXG4gICAqIEBwYXJhbSB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlcyAtIE9iamVjdCBjb250YWluaW5nIHRoZSBjaGFuZ2VkIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWR7XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxJdGVtcyddKSB7XG4gICAgICB0aGlzLml0ZW1zJCA9IGNvbmNhdChvZih0aGlzLmluaXRpYWxJdGVtcyksIHRoaXMucXVlcnkkKTtcbiAgICAgIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSB0aGlzLmluaXRpYWxJdGVtc1swXT8ubWFnbmlmeVZhbHVlID09PSAxPyAwIDogTWF0aC5mbG9vcihNYXRoLmxvZzEwKHRoaXMuaW5pdGlhbEl0ZW1zWzBdPy5tYWduaWZ5VmFsdWU/PyAxKSk7XG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gPG51bWJlcj4gdGhpcy5udW1iZXJWYWx1ZSAvIHRoaXMuaW5pdGlhbEl0ZW1zWzBdPy5tYWduaWZ5VmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcikgdGhpcy5iaW5kTGFiZWwgPSAndmFsdWUnO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHNlbGVjdCBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5jaGFuZ2VkID0gZm47IH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2VsZWN0IGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9IFxuICBcbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0geyp9IHZhbCAtIFRoZSBuZXcgdmFsdWUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lke1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBcbiAgIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGQgLSBUaGUgbmV3IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHBhcmFtIHtBYnN0cmFjdENvbnRyb2x9IGNvbnRyb2wgLSBUaGUgYWJzdHJhY3QgY29udHJvbCByZXByZXNlbnRpbmcgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHsgICAgXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyIGFzIG51bGwgaWYgY3VycmVuY3kgY2hhbmdlZCB0byBwcmV2ZW50IG1pc21hdGNoIGJldHdlZW4gc2VsZWN0ZWQgY3VycmVuY3kgYW5kIHRoZSBudW1iZXIgY29tbWEgYWxsb3dlZCBsaW1pdC5cbiAgICogRW1pdHMgdGhlIG9uQ2hhbmdlIGV2ZW50LCB1cGRhdGVzIHRoZSBpbml0aWFsSXRlbXMsIGFuZCBoYW5kbGVzIHZhbGlkYXRpb24gYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIFNldCB0aGUgZGVjaW1hbExpbWl0ZXIgYmFzZWQgb24gc2VsZWN0ZWQgbWFnbmlmeVZhbHVlXG4gICAqIEBwYXJhbSB7YW55fSBlIC0gVGhlIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG5ldyBzZWxlY3QgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlKGU/OiBhbnkpOiB2b2lke1xuICAgIGlmICh0aGlzLmlzSW5wdXROdW1iZXIpIHRoaXMubnVtYmVyVmFsdWUgPSBudWxsO1xuICAgIFxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGNjeTogZSwgbnVtYmVyOiB0aGlzLm51bWJlclZhbHVlIH0pO1xuICAgIHRoaXMuaW5pdGlhbEl0ZW1zID0gZTtcblxuICAgIGlmICghdGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKCFlKSB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIGVsc2UgdGhpcy52YWx1ZSA9IGVbdGhpcy5iaW5kVmFsdWVdO1xuXG4gICAgICB0aGlzLmNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLmVycm9yTXNnID0gZ2V0Rm9ybUVycm9yTWVzc2FnZSh0aGlzLmZvcm1Db250cm9sLmVycm9ycywgJ0N1cnJlbmN5Jyk7XG4gICAgfVxuICAgIFxuICAgIGlmIChlPy5tYWduaWZ5VmFsdWUgPT09IDEpIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSAwO1xuICAgIGVsc2UgdGhpcy5kZWNpbWFsTGltaXRlciA9IE1hdGguZmxvb3IoTWF0aC5sb2cxMChlPy5tYWduaWZ5VmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZm9ybSBudW1iZXIgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyVmFsdWUgd2l0aCBjdXJyZW50IHZhbHVlLlxuICAgKiBFbWl0IHRoZSBzZWxlY3RlZCBjdXJyZW5jeSBhbmQgdGhlIG51bWJlciB2YWx1ZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHthbnl9IC0gQ29udGFpbiBgdmFsdWVgIHRoZSB2YWx1ZSBvZiBpbnB1dGVkIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBudW1iZXJJbnB1dCh7IHZhbHVlIH06IGFueSk6IHZvaWR7XG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGNjeTogdGhpcy5pbml0aWFsSXRlbXMsIG51bWJlcjogdmFsdWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZvcm0gbnVtYmVyIGtleXByZXNzLlxuICAgKiBDb250cm9sbGluZyBpbnB1dCBpbiBhIG51bWJlciBmaWVsZCwgcmVzdHJpY3RpbmcgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkLlxuICAgKiBAcGFyYW0ge2FueX0gLSBDb250YWluXG4gICAqIGNoYXJDb2RlIC0gdGhlIGNoYXJhY3RlciBjb2RlIG9mIHRoZSBrZXkgcHJlc3NlZC5cbiAgICogcHJldmVudERlZmF1bHQgLSB0aGUgZnVuY3Rpb24gdG8gcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIGV2ZW50LlxuICAgKiB0YXJnZXQudmFsdWUgLSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgbGltaXREZWNpbWFsKHsgY2hhckNvZGUsIHByZXZlbnREZWZhdWx0LCB0YXJnZXQ6IHsgdmFsdWUgfX06IGFueSk6IHZvaWR7XG4gICAgY29uc3QgcmVnID0gdGhpcy5kZWNpbWFsTGltaXRlciA+IDA/IG5ldyBSZWdFeHAoYF5cXFxcZCooXFxcXC5cXFxcZHswLCR7IHRoaXMuZGVjaW1hbExpbWl0ZXIgfX0pPyRgKSA6IC9eXFxkKyQvO1xuICAgIGlmICghcmVnLnRlc3QodmFsdWUgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKSkpIHByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBxdWVyeSBvcGVyYXRpb24gdG8gcmV0cmlldmUgY3VycmVuY3kgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5d29yZC5cbiAgICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHF1ZXJpZWQgY3VycmVuY3kgZGF0YS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleXdvcmQgLSBUaGUga2V5d29yZCB1c2VkIGZvciBxdWVyeWluZyBjdXJyZW5jeSBkYXRhLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHF1ZXJpZWQgY3VycmVuY3kgZGF0YS5cbiAgICovXG4gIHByb3RlY3RlZCBxdWVyeUZ1bmMoa2V5d29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5U2VydmljZS5xdWVyeShrZXl3b3JkKS5waXBlKFxuICAgICAgbWFwKCh7IGRhdGE6IHsgd2ViQ29uZmlnTXNDdXJyZW5jeTogeyBkYXRhIH19fSkgPT4gZGF0YS5tYXAoKHsgY29kZSwgbmFtZSwgbWFnbmlmeVZhbHVlIH06IGFueSkgPT4gKHsgbGFiZWw6IGBbJHsgY29kZSB9XSAkeyBuYW1lIH1gLCB2YWx1ZTogY29kZSwgbWFnbmlmeVZhbHVlIH0pKSlcbiAgICApO1xuICB9O1xufVxuIiwiPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RGb3JtPlxuICAgIDxuZy1zZWxlY3QgXG4gICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMFwiXG4gICAgICAgIFtjbGFzcy5udW1iZXJdPVwiaXNJbnB1dE51bWJlclwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIHR5cGVUb1NlYXJjaFRleHQ9XCJQbGVhc2UgZW50ZXIgMyBvciBtb3JlIGNoYXJhY3RlcnNcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGxhYmVsIH19XCJcbiAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxuICAgICAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gICAgICAgIFttaW5UZXJtTGVuZ3RoXT1cIjNcIlxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCJcbiAgICAgICAgW2VkaXRhYmxlU2VhcmNoVGVybV09XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIiBcbiAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgICAgICBbdHlwZWFoZWFkXT1cInR5cGVhaGVhZFwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudCk7XCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXNJbnB1dE51bWJlcj8gaS52YWx1ZSA6IGkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0TnVtYmVyPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTEgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RGb3JtXCIgLz5cblxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFtwbGFjZWhvbGRlcl09XCJudW1iZXJQbGFjZWhvbGRlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZsZXgtZ3Jvdy0xXCIgW2Rpc2FibGVkXT1cImlzTnVtYmVyRGlzYWJsZWRcIiBbdmFsdWVdPVwibnVtYmVyVmFsdWVcIiAoa2V5cHJlc3MpPVwibGltaXREZWNpbWFsKCRldmVudClcIiAoaW5wdXQpPVwibnVtYmVySW5wdXQoJGV2ZW50LnRhcmdldClcIj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJbnB1dE51bWJlciBlbHNlIGlucHV0TnVtYmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEZvcm1cIiAvPlxuPC9uZy1jb250YWluZXI+XG5cbjxsYWJlbCAqbmdJZj1cImVycm9yTXNnXCIgY2xhc3M9XCJpcy1pbnZhbGlkXCI+e3sgZXJyb3JNc2cgfX08L2xhYmVsPlxuIl19
|
|
@@ -54,8 +54,8 @@ export class FormDateComponent {
|
|
|
54
54
|
this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormDateComponent, deps: [{ token: 'name', attribute: true }, { token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormDateComponent, isStandalone: true, selector: "up-date", inputs: { label: "label", required: "required", disabled: "disabled", presentation: "presentation" }, host: { classAttribute: "d-block position-relative" }, providers: [
|
|
59
59
|
{
|
|
60
60
|
multi: true,
|
|
61
61
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -68,7 +68,7 @@ export class FormDateComponent {
|
|
|
68
68
|
}
|
|
69
69
|
], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime mode=\"md\" hourCycle=\"h23\" [presentation]=\"presentation\" value=\"{{ localValue }}\" [showDefaultButtons]=\"true\" (ionChange)=\"changeDate($event)\" />\n </ng-template>\n</ion-modal>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
70
|
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormDateComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{ standalone: true, selector: 'up-date', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
74
74
|
class: 'd-block position-relative'
|
|
@@ -25,10 +25,10 @@ export class DragNDropDirective {
|
|
|
25
25
|
if (files.length > 0)
|
|
26
26
|
this.fileDropped.emit(files);
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
29
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DragNDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: DragNDropDirective, isStandalone: true, selector: "[upDragNDrop]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DragNDropDirective, decorators: [{
|
|
32
32
|
type: Directive,
|
|
33
33
|
args: [{
|
|
34
34
|
standalone: true,
|
|
@@ -33,8 +33,8 @@ export class FormImagePickerComponent {
|
|
|
33
33
|
this.onChange.emit(files[0]);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormImagePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormImagePickerComponent, isStandalone: true, selector: "up-image-picker", inputs: { ratio: "ratio", label: "label", required: "required" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
38
38
|
{
|
|
39
39
|
multi: true,
|
|
40
40
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -42,7 +42,7 @@ export class FormImagePickerComponent {
|
|
|
42
42
|
},
|
|
43
43
|
], ngImport: i0, template: "<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n <span class=\"text-danger me-2\" *ngIf=\"required\">*</span>\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n <img *ngIf=\"imgSrc\" alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" *ngIf=\"!imgSrc; else deleteIcon\" />\n \n <ng-template #deleteIcon>\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n </ng-template>\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n", styles: ["ion-icon{font-size:24px}.img-container{width:250px;border-style:dashed!important}.img-container:hover .upload-icon{display:flex}.img-container:not(:has(img)):before{content:\"Choose file or Drag here.\";top:50%;left:50%;font-size:12px;position:absolute;color:gray;text-align:center;transform:translate(-50%,-50%)}.upload-icon:not(ion-icon){background:#00000050}.upload-icon{top:0;left:0;display:none;cursor:pointer}.d-btn{right:10px;bottom:10px;width:32px;height:32px;background-color:#fee2e2}.d-btn ion-icon{color:#dc2626}.dragging{border:2px dashed #ED6B26!important}.dragging:not(:has(img)):before{content:\"Drop\";font-size:32px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: DragNDropDirective, selector: "[upDragNDrop]", outputs: ["fileDropped"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormImagePickerComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ standalone: true, selector: 'up-image-picker', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
48
48
|
class: 'd-block'
|
|
@@ -43,8 +43,8 @@ export class FormInputComponent {
|
|
|
43
43
|
this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: 'type', attribute: true }, { token: 'autocomplete', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormInputComponent, isStandalone: true, selector: "up-input", inputs: { label: "label", value: "value", required: "required", disabled: "disabled" }, outputs: { onInput: "onInput" }, host: { classAttribute: "d-block" }, providers: [
|
|
48
48
|
{
|
|
49
49
|
multi: true,
|
|
50
50
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -57,7 +57,7 @@ export class FormInputComponent {
|
|
|
57
57
|
}
|
|
58
58
|
], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input type=\"{{ type }}\" autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\" (input)=\"input($event)\" />\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ standalone: true, selector: 'up-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
63
63
|
class: 'd-block'
|
|
@@ -49,8 +49,8 @@ export class FormNumberComponent {
|
|
|
49
49
|
if (!/^\d$/.test(key))
|
|
50
50
|
ev.preventDefault();
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormNumberComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormNumberComponent, isStandalone: true, selector: "up-number", inputs: { label: "label", value: "value", required: "required", disabled: "disabled", locale: "locale" }, host: { classAttribute: "d-block" }, providers: [
|
|
54
54
|
{
|
|
55
55
|
multi: true,
|
|
56
56
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -63,7 +63,7 @@ export class FormNumberComponent {
|
|
|
63
63
|
}
|
|
64
64
|
], ngImport: i0, template: "<label class=\"form-label\">{{ label }}</label>\n<input type=\"text\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value | localeNumber:locale\" (keydown)=\"onKeyDown($event)\" (change)=\"change($event.target)\" />\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: LocaleNumberPipe, name: "localeNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormNumberComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ standalone: true, selector: 'up-number', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
69
69
|
class: 'd-block'
|
|
@@ -24,10 +24,10 @@ export class LocaleNumberPipe {
|
|
|
24
24
|
}
|
|
25
25
|
return seperators;
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
28
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LocaleNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
28
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LocaleNumberPipe, decorators: [{
|
|
31
31
|
type: Pipe,
|
|
32
32
|
args: [{
|
|
33
33
|
standalone: true,
|