lib-portal-angular 0.0.52 → 0.0.53
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/basic-registration/basic-registration.component.mjs +3 -3
- package/esm2022/lib/components/components.module.mjs +8 -3
- package/esm2022/lib/components/custom-switch/custom-switch.component.mjs +49 -0
- package/esm2022/lib/components/multi-select/multi-select.component.mjs +132 -41
- package/esm2022/lib/components/select/select.component.mjs +14 -4
- package/esm2022/lib/components/tables/data-table.component.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/lib-portal-angular.mjs +237 -91
- package/fesm2022/lib-portal-angular.mjs.map +1 -1
- package/lib/components/components.module.d.ts +6 -5
- package/lib/components/custom-switch/custom-switch.component.d.ts +15 -0
- package/lib/components/multi-select/multi-select.component.d.ts +20 -5
- package/lib/components/select/select.component.d.ts +8 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
@@ -39,11 +39,11 @@ export class BasicRegistrationComponent {
|
|
39
39
|
this.saveClick.emit(event);
|
40
40
|
}
|
41
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasicRegistrationComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BasicRegistrationComponent, selector: "argenta-basic-registration", inputs: { cancelLabel: "cancelLabel", saveLabel: "saveLabel", cancelPermissions: "cancelPermissions", savePermissions: "savePermissions" }, outputs: { cancelClick: "cancelClick", saveClick: "saveClick" }, ngImport: i0, template: "<div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\">\n <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n </div>\n <div class=\"card-footer\">\n <div class=\"button-group\">\n <argenta-custom-button\n *ngIf=\"hasPermission(cancelPermissions)\"\n [type]=\"'button'\"\n [label]=\"cancelLabel\"\n [btnClass]=\"ButtonClasses.Light\"\n (onButtonClick)=\"handleCancel($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n <argenta-custom-button\n *ngIf=\"hasPermission(savePermissions)\"\n [type]=\"'submit'\"\n [label]=\"saveLabel\"\n [btnClass]=\"ButtonClasses.Primary\"\n (onButtonClick)=\"handleSave($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n </div>\n </div>\n </div> \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "argenta-custom-button", inputs: ["type", "label", "btnClass", "fontSize", "disabled", "autofocus", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "value", "permissions"], outputs: ["onButtonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BasicRegistrationComponent, selector: "argenta-basic-registration", inputs: { cancelLabel: "cancelLabel", saveLabel: "saveLabel", cancelPermissions: "cancelPermissions", savePermissions: "savePermissions" }, outputs: { cancelClick: "cancelClick", saveClick: "saveClick" }, ngImport: i0, template: "<div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\" style=\"margin-top: 2.5rem;\">\n <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n </div>\n <div class=\"card-footer\">\n <div class=\"button-group\">\n <argenta-custom-button\n *ngIf=\"hasPermission(cancelPermissions)\"\n [type]=\"'button'\"\n [label]=\"cancelLabel\"\n [btnClass]=\"ButtonClasses.Light\"\n (onButtonClick)=\"handleCancel($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n <argenta-custom-button\n *ngIf=\"hasPermission(savePermissions)\"\n [type]=\"'submit'\"\n [label]=\"saveLabel\"\n [btnClass]=\"ButtonClasses.Primary\"\n (onButtonClick)=\"handleSave($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n </div>\n </div>\n </div> \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "argenta-custom-button", inputs: ["type", "label", "btnClass", "fontSize", "disabled", "autofocus", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "value", "permissions"], outputs: ["onButtonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
43
43
|
}
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasicRegistrationComponent, decorators: [{
|
45
45
|
type: Component,
|
46
|
-
args: [{ selector: 'argenta-basic-registration', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\">\n <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n </div>\n <div class=\"card-footer\">\n <div class=\"button-group\">\n <argenta-custom-button\n *ngIf=\"hasPermission(cancelPermissions)\"\n [type]=\"'button'\"\n [label]=\"cancelLabel\"\n [btnClass]=\"ButtonClasses.Light\"\n (onButtonClick)=\"handleCancel($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n <argenta-custom-button\n *ngIf=\"hasPermission(savePermissions)\"\n [type]=\"'submit'\"\n [label]=\"saveLabel\"\n [btnClass]=\"ButtonClasses.Primary\"\n (onButtonClick)=\"handleSave($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n </div>\n </div>\n </div> \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"] }]
|
46
|
+
args: [{ selector: 'argenta-basic-registration', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row-car\">\n <div class=\"card\">\n <div class=\"card-content\" style=\"margin-top: 2.5rem;\">\n <ng-content></ng-content> <!-- Permite a inclus\u00E3o de conte\u00FAdo din\u00E2mico -->\n </div>\n <div class=\"card-footer\">\n <div class=\"button-group\">\n <argenta-custom-button\n *ngIf=\"hasPermission(cancelPermissions)\"\n [type]=\"'button'\"\n [label]=\"cancelLabel\"\n [btnClass]=\"ButtonClasses.Light\"\n (onButtonClick)=\"handleCancel($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n <argenta-custom-button\n *ngIf=\"hasPermission(savePermissions)\"\n [type]=\"'submit'\"\n [label]=\"saveLabel\"\n [btnClass]=\"ButtonClasses.Primary\"\n (onButtonClick)=\"handleSave($event)\"\n class=\"argenta-custom-button\">\n </argenta-custom-button>\n </div>\n </div>\n </div> \n</div>\n", styles: ["@charset \"UTF-8\";.card{border-radius:10px;padding:1rem;background-color:#fff;border:none}.card-footer{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-radius:.25rem}.button-group{display:flex;gap:1rem;height:3rem}.argenta-custom-button{height:100%}.row-car{margin-left:-.8rem;margin-right:-.8rem}\n"] }]
|
47
47
|
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { cancelLabel: [{
|
48
48
|
type: Input
|
49
49
|
}], saveLabel: [{
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
57
57
|
}], saveClick: [{
|
58
58
|
type: Output
|
59
59
|
}] } });
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYmFzaWMtcmVnaXN0cmF0aW9uL2Jhc2ljLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2ljLXJlZ2lzdHJhdGlvbi9iYXNpYy1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBUTdELE1BQU0sT0FBTywwQkFBMEI7SUFVckMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFUbkMsZ0JBQVcsR0FBVyxVQUFVLENBQUM7UUFDakMsY0FBUyxHQUFXLFFBQVEsQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFFOUIsZ0JBQVcsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM3RCxjQUFTLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDckUsa0JBQWEsR0FBRyxhQUFhLENBQUM7SUFFa0IsQ0FBQztJQUVqRCxhQUFhLENBQUMsV0FBcUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFBQyxPQUFPLEtBQWMsRUFBRTtZQUN2QixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQzthQUNqRTtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7K0dBbkNVLDBCQUEwQjttR0FBMUIsMEJBQTBCLCtRQ1Z2Qyx1K0JBMkJBOzs0RkRqQmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTTtrR0FHdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1dGgtc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1dHRvbkNsYXNzZXMgfSBmcm9tICcuLi8uLi9lbnVtL0J1dHRvbkNsYXNzZXNFbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJnZW50YS1iYXNpYy1yZWdpc3RyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFzaWMtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFzaWMtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljUmVnaXN0cmF0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2FuY2VsTGFiZWw6IHN0cmluZyA9ICdDYW5jZWxhcic7XG4gIEBJbnB1dCgpIHNhdmVMYWJlbDogc3RyaW5nID0gJ1NhbHZhcic7XG4gIEBJbnB1dCgpIGNhbmNlbFBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBzYXZlUGVybWlzc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgQE91dHB1dCgpIGNhbmNlbENsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIHNhdmVDbGljazogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEJ1dHRvbkNsYXNzZXMgPSBCdXR0b25DbGFzc2VzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cblxuICBoYXNQZXJtaXNzaW9uKHBlcm1pc3Npb25zOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcGVybWlzc2lvbnMgfHwgcGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Blcm1pc3Npb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdVbmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyBwZXJtaXNzaW9uIGNoZWNrJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDYW5jZWwoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5jYW5jZWxDbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZVNhdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5zYXZlQ2xpY2suZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3cgcm93LWNhclwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIuNXJlbTtcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gPCEtLSBQZXJtaXRlIGEgaW5jbHVzw6NvIGRlIGNvbnRlw7pkbyBkaW7Dom1pY28gLS0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgIDxhcmdlbnRhLWN1c3RvbS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImhhc1Blcm1pc3Npb24oY2FuY2VsUGVybWlzc2lvbnMpXCJcbiAgICAgICAgICBbdHlwZV09XCInYnV0dG9uJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cImNhbmNlbExhYmVsXCJcbiAgICAgICAgICBbYnRuQ2xhc3NdPVwiQnV0dG9uQ2xhc3Nlcy5MaWdodFwiXG4gICAgICAgICAgKG9uQnV0dG9uQ2xpY2spPVwiaGFuZGxlQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiYXJnZW50YS1jdXN0b20tYnV0dG9uXCI+XG4gICAgICAgIDwvYXJnZW50YS1jdXN0b20tYnV0dG9uPlxuICAgICAgICA8YXJnZW50YS1jdXN0b20tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKHNhdmVQZXJtaXNzaW9ucylcIlxuICAgICAgICAgIFt0eXBlXT1cIidzdWJtaXQnXCJcbiAgICAgICAgICBbbGFiZWxdPVwic2F2ZUxhYmVsXCJcbiAgICAgICAgICBbYnRuQ2xhc3NdPVwiQnV0dG9uQ2xhc3Nlcy5QcmltYXJ5XCJcbiAgICAgICAgICAob25CdXR0b25DbGljayk9XCJoYW5kbGVTYXZlKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiYXJnZW50YS1jdXN0b20tYnV0dG9uXCI+XG4gICAgICAgIDwvYXJnZW50YS1jdXN0b20tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PiAgICAgIFxuPC9kaXY+XG4iXX0=
|
@@ -22,6 +22,7 @@ import { SelectComponent } from './select/select.component';
|
|
22
22
|
import { DataTableComponent } from './tables/data-table.component';
|
23
23
|
import { TextareaComponent } from './textarea/textarea.component';
|
24
24
|
import { TreeNodeComponent } from './tree-node/tree-node.component';
|
25
|
+
import { CustomSwitchComponent } from './custom-switch/custom-switch.component';
|
25
26
|
import * as i0 from "@angular/core";
|
26
27
|
export class ComponentsModule {
|
27
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
@@ -43,7 +44,8 @@ export class ComponentsModule {
|
|
43
44
|
TreeNodeComponent,
|
44
45
|
SearchInputComponent,
|
45
46
|
AppBackgroundComponent,
|
46
|
-
BasicRegistrationComponent
|
47
|
+
BasicRegistrationComponent,
|
48
|
+
CustomSwitchComponent], imports: [CommonModule,
|
47
49
|
FormsModule,
|
48
50
|
ReactiveFormsModule,
|
49
51
|
NgSelectModule,
|
@@ -68,7 +70,8 @@ export class ComponentsModule {
|
|
68
70
|
SearchInputComponent,
|
69
71
|
LucideIconsModule,
|
70
72
|
AppBackgroundComponent,
|
71
|
-
BasicRegistrationComponent
|
73
|
+
BasicRegistrationComponent,
|
74
|
+
CustomSwitchComponent] }); }
|
72
75
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
|
73
76
|
FormsModule,
|
74
77
|
ReactiveFormsModule,
|
@@ -101,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
101
104
|
SearchInputComponent,
|
102
105
|
AppBackgroundComponent,
|
103
106
|
BasicRegistrationComponent,
|
107
|
+
CustomSwitchComponent,
|
104
108
|
],
|
105
109
|
imports: [
|
106
110
|
CommonModule,
|
@@ -132,7 +136,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
132
136
|
LucideIconsModule,
|
133
137
|
AppBackgroundComponent,
|
134
138
|
BasicRegistrationComponent,
|
139
|
+
CustomSwitchComponent,
|
135
140
|
],
|
136
141
|
}]
|
137
142
|
}] });
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9B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LHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlL2F1dG9mb2N1cy1kaXJlY3RpdmUvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMdWNpZGVJY29uc01vZHVsZSB9IGZyb20gJy4uL2ljb25zL2x1Y2lkZS1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBCYWNrZ3JvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAtYmFja2dyb3VuZC9hcHAtYmFja2dyb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNpY1JlZ2lzdHJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYmFzaWMtcmVnaXN0cmF0aW9uL2Jhc2ljLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kZUhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vY29kZS1oaWdobGlnaHQvY29kZS1oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXBhZ2luYXRpb24vY3VzdG9tLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbXB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZXMvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tc3dpdGNoL2N1c3RvbS1zd2l0Y2guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgVGV4dGFyZWFDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBDb2RlSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIENvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgQ3VzdG9tUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBUcmVlTm9kZUNvbXBvbmVudCxcbiAgICBTZWFyY2hJbnB1dENvbXBvbmVudCxcbiAgICBBcHBCYWNrZ3JvdW5kQ29tcG9uZW50LFxuICAgIEJhc2ljUmVnaXN0cmF0aW9uQ29tcG9uZW50LFxuICAgIEN1c3RvbVN3aXRjaENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIEx1Y2lkZUljb25zTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgVGV4dGFyZWFDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIENvZGVIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIEN1c3RvbVBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgVHJlZU5vZGVDb21wb25lbnQsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgTHVjaWRlSWNvbnNNb2R1bGUsXG4gICAgQXBwQmFja2dyb3VuZENvbXBvbmVudCxcbiAgICBCYXNpY1JlZ2lzdHJhdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Td2l0Y2hDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUgeyB9XG4iXX0=
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../../service/auth-service.service";
|
4
|
+
import * as i2 from "@angular/common";
|
5
|
+
export class CustomSwitchComponent {
|
6
|
+
constructor(authService) {
|
7
|
+
this.authService = authService;
|
8
|
+
this.checked = false;
|
9
|
+
this.label = '';
|
10
|
+
this.permissions = [];
|
11
|
+
this.switchChange = new EventEmitter();
|
12
|
+
}
|
13
|
+
toggleSwitch() {
|
14
|
+
this.checked = !this.checked;
|
15
|
+
this.switchChange.emit(this.checked);
|
16
|
+
}
|
17
|
+
hasPermission() {
|
18
|
+
if (!this.permissions || this.permissions.length === 0) {
|
19
|
+
return true;
|
20
|
+
}
|
21
|
+
try {
|
22
|
+
return this.authService.hasPermission(this.permissions);
|
23
|
+
}
|
24
|
+
catch (error) {
|
25
|
+
if (error instanceof Error) {
|
26
|
+
console.error('Permission error:', error.message);
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
console.error('Unknown error occurred during permission check');
|
30
|
+
}
|
31
|
+
return true;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
36
|
+
}
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, decorators: [{
|
38
|
+
type: Component,
|
39
|
+
args: [{ selector: 'argenta-custom-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"] }]
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { checked: [{
|
41
|
+
type: Input
|
42
|
+
}], label: [{
|
43
|
+
type: Input
|
44
|
+
}], permissions: [{
|
45
|
+
type: Input
|
46
|
+
}], switchChange: [{
|
47
|
+
type: Output
|
48
|
+
}] } });
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1zd2l0Y2gvY3VzdG9tLXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1zd2l0Y2gvY3VzdG9tLXN3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2hHLE1BQU0sT0FBTyxxQkFBcUI7SUFNOUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFMbkMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVMLENBQUM7SUFFakQsWUFBWTtRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNEO1FBQUMsT0FBTyxLQUFjLEVBQUU7WUFDckIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO2dCQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7YUFDbkU7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzsrR0E1QlEscUJBQXFCO21HQUFyQixxQkFBcUIsb0xDVGxDLG1aQWNBOzs0RkRMYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNO2tHQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1dGgtc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcmdlbnRhLWN1c3RvbS1zd2l0Y2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tc3dpdGNoLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b20tc3dpdGNoLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tU3dpdGNoQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBPdXRwdXQoKSBzd2l0Y2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XG5cbiAgICB0b2dnbGVTd2l0Y2goKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgICAgIHRoaXMuc3dpdGNoQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICB9XG5cbiAgICBoYXNQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMgfHwgdGhpcy5wZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Blcm1pc3Npb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBlcm1pc3Npb24gY2hlY2snKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1Blcm1pc3Npb24oKVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuICAgIDxpbnB1dCBcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIFxuICAgICAgdHlwZT1cImNoZWNrYm94XCIgXG4gICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCIgXG4gICAgICAoY2hhbmdlKT1cInRvZ2dsZVN3aXRjaCgpXCIgXG4gICAgICBpZD1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIiBcbiAgICAvPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
@@ -1,30 +1,46 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
-
import { of } from 'rxjs';
|
3
|
+
import { of, Subject } from 'rxjs';
|
4
|
+
import { debounceTime, switchMap, catchError, startWith, map } from 'rxjs/operators';
|
4
5
|
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "
|
6
|
-
import * as i2 from "@angular/
|
7
|
-
import * as i3 from "@
|
6
|
+
import * as i1 from "../../service/auth-service.service";
|
7
|
+
import * as i2 from "@angular/common/http";
|
8
|
+
import * as i3 from "@angular/common";
|
9
|
+
import * as i4 from "@angular/forms";
|
10
|
+
import * as i5 from "@ng-select/ng-select";
|
8
11
|
export class MultiSelectComponent {
|
9
|
-
constructor() {
|
12
|
+
constructor(authService, http) {
|
13
|
+
this.authService = authService;
|
14
|
+
this.http = http;
|
10
15
|
this.label = 'Multi Select';
|
11
|
-
this.data = []; //
|
16
|
+
this.data = []; // Accepts an array of generic objects
|
12
17
|
this.placeholder = 'Select items';
|
13
|
-
this.selected = []; //
|
18
|
+
this.selected = []; // The selected variable should be an array
|
14
19
|
this.id = 'multiSelectId';
|
15
|
-
this.bindLabel = ''; //
|
16
|
-
this.
|
17
|
-
this.
|
18
|
-
this.
|
19
|
-
this.marginRight = 0;
|
20
|
+
this.bindLabel = ''; // Generic dynamic label
|
21
|
+
this.bindValue = ''; // Generic dynamic value
|
22
|
+
this.closeOnSelect = false; // New property to control dropdown close behavior
|
23
|
+
this.searchUrl = ''; // URL for backend search
|
20
24
|
this.keyupEvent = new EventEmitter();
|
21
|
-
this.
|
25
|
+
this.originalData = []; // Store the original list
|
26
|
+
this.allItems = []; // Store the combined list
|
27
|
+
this.items = of([]); // Initialization of the property
|
28
|
+
this.filteredItems = of([]); // Filtered items
|
29
|
+
this.searchTerms = new Subject(); // For search debounce
|
30
|
+
this.backendItems = []; // Items found from backend
|
22
31
|
this.onChangeCallback = () => { };
|
23
32
|
this.onTouchedCallback = () => { };
|
24
33
|
this.isCourseEntered = false;
|
34
|
+
this.compareFn = (item1, item2) => {
|
35
|
+
return item1 && item2 ? item1[this.bindValue] === item2[this.bindValue] : item1 === item2;
|
36
|
+
};
|
25
37
|
}
|
26
38
|
ngOnInit() {
|
27
|
-
this.
|
39
|
+
this.originalData = [...this.data]; // Preserve the original data
|
40
|
+
this.allItems = [...this.data]; // Initialize allItems with the original data
|
41
|
+
this.items = of(this.allItems);
|
42
|
+
this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
|
43
|
+
switchMap(term => this.search(term)));
|
28
44
|
}
|
29
45
|
onFocus() {
|
30
46
|
this.isCourseEntered = true;
|
@@ -35,6 +51,66 @@ export class MultiSelectComponent {
|
|
35
51
|
onKeyUp(event) {
|
36
52
|
this.keyupEvent.emit(event);
|
37
53
|
}
|
54
|
+
onSelectedChange(event) {
|
55
|
+
const newlySelectedItems = event.filter((item) => !this.selected.includes(item));
|
56
|
+
this.selected = event;
|
57
|
+
// Check if any newly selected item is from backendItems
|
58
|
+
const addedFromBackend = this.backendItems.filter((item) => newlySelectedItems.includes(item));
|
59
|
+
if (addedFromBackend.length > 0) {
|
60
|
+
// Transform the backend items to match the format expected by the component
|
61
|
+
const transformedItems = addedFromBackend.map((item) => ({
|
62
|
+
[this.bindValue]: item[this.bindValue],
|
63
|
+
[this.bindLabel]: item[this.bindLabel]
|
64
|
+
}));
|
65
|
+
// Add backend items to the allItems list and update the observable
|
66
|
+
this.originalData = [...this.originalData, ...transformedItems];
|
67
|
+
this.allItems = [...this.originalData];
|
68
|
+
this.items = of(this.allItems); // Update the observable with new data
|
69
|
+
this.backendItems = []; // Clear backend items after processing
|
70
|
+
this.searchTerms.next(''); // Reset the search term to update the list
|
71
|
+
console.log('Added items from backend to the list and reset the dropdown.');
|
72
|
+
}
|
73
|
+
this.onChangeCallback(this.selected);
|
74
|
+
}
|
75
|
+
onInputChange(event) {
|
76
|
+
const input = event.target.value;
|
77
|
+
this.searchTerms.next(input);
|
78
|
+
}
|
79
|
+
search(term) {
|
80
|
+
if (!term.trim()) {
|
81
|
+
// If the search term is empty, show the complete list
|
82
|
+
return of(this.allItems);
|
83
|
+
}
|
84
|
+
const filtered = this.allItems.filter((item) => item[this.bindLabel].toLowerCase().includes(term.toLowerCase()));
|
85
|
+
if (filtered.length > 0) {
|
86
|
+
console.log('Items filtered locally.');
|
87
|
+
return of(filtered);
|
88
|
+
}
|
89
|
+
else if (this.searchUrl) {
|
90
|
+
return this.http.get(`${this.searchUrl}?term=${term}`).pipe(map((response) => {
|
91
|
+
if (response && response.length > 0) {
|
92
|
+
// Transform the backend items to match the format expected by the component
|
93
|
+
const transformedItems = response.map((item) => ({
|
94
|
+
[this.bindValue]: item[this.bindValue],
|
95
|
+
[this.bindLabel]: item[this.bindLabel]
|
96
|
+
}));
|
97
|
+
this.backendItems = transformedItems;
|
98
|
+
return [...filtered, ...transformedItems];
|
99
|
+
}
|
100
|
+
else {
|
101
|
+
console.log('No items found in the backend search.');
|
102
|
+
return filtered;
|
103
|
+
}
|
104
|
+
}), catchError((error) => {
|
105
|
+
console.error('Error fetching from backend:', error);
|
106
|
+
return of(filtered);
|
107
|
+
}));
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
console.log('No search URL provided and no items found locally.');
|
111
|
+
return of(filtered);
|
112
|
+
}
|
113
|
+
}
|
38
114
|
writeValue(value) {
|
39
115
|
this.selected = value || [];
|
40
116
|
}
|
@@ -47,31 +123,47 @@ export class MultiSelectComponent {
|
|
47
123
|
setDisabledState(isDisabled) {
|
48
124
|
// No implementation needed for this example
|
49
125
|
}
|
50
|
-
|
51
|
-
|
126
|
+
hasPermission() {
|
127
|
+
if (!this.permissions || this.permissions.length === 0) {
|
128
|
+
return true;
|
129
|
+
}
|
130
|
+
try {
|
131
|
+
return this.authService.hasPermission(this.permissions);
|
132
|
+
}
|
133
|
+
catch (error) {
|
134
|
+
if (error instanceof Error) {
|
135
|
+
console.error('Permission error:', error.message);
|
136
|
+
}
|
137
|
+
else {
|
138
|
+
console.error('Unknown error occurred during permission check');
|
139
|
+
}
|
140
|
+
return true;
|
141
|
+
}
|
142
|
+
}
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
|
52
145
|
{
|
53
146
|
provide: NG_VALUE_ACCESSOR,
|
54
147
|
useExisting: forwardRef(() => MultiSelectComponent),
|
55
148
|
multi: true
|
56
149
|
}
|
57
150
|
], ngImport: i0, template: `
|
58
|
-
<div class="form-group"
|
59
|
-
'margin-top': marginTop + 'rem',
|
60
|
-
'margin-bottom': marginBottom + 'rem',
|
61
|
-
'margin-left': marginLeft + 'rem',
|
62
|
-
'margin-right': marginRight + 'rem'
|
63
|
-
}">
|
151
|
+
<div *ngIf="hasPermission()" class="form-group">
|
64
152
|
<label [for]="id" class="form-label">{{ label }}</label>
|
65
153
|
<ng-select
|
66
154
|
[class.course-entry]="isCourseEntered"
|
67
155
|
class="ng-select"
|
68
|
-
[items]="
|
156
|
+
[items]="filteredItems | async"
|
69
157
|
[multiple]="true"
|
70
|
-
[closeOnSelect]="
|
158
|
+
[closeOnSelect]="closeOnSelect"
|
71
159
|
[hideSelected]="true"
|
72
160
|
[bindLabel]="bindLabel"
|
161
|
+
[bindValue]="bindValue"
|
73
162
|
[(ngModel)]="selected"
|
163
|
+
[compareWith]="compareFn"
|
164
|
+
(change)="onSelectedChange($event)"
|
74
165
|
(keyup)="onKeyUp($event)"
|
166
|
+
(input)="onInputChange($event)"
|
75
167
|
[id]="id"
|
76
168
|
[placeholder]="selected && selected.length === 0 ? placeholder : ''"
|
77
169
|
(focus)="onFocus()"
|
@@ -82,28 +174,27 @@ export class MultiSelectComponent {
|
|
82
174
|
</ng-template>
|
83
175
|
</ng-select>
|
84
176
|
</div>
|
85
|
-
`, isInline: true, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:
|
177
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.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: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
86
178
|
}
|
87
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
88
180
|
type: Component,
|
89
|
-
args: [{ selector: '
|
90
|
-
<div class="form-group"
|
91
|
-
'margin-top': marginTop + 'rem',
|
92
|
-
'margin-bottom': marginBottom + 'rem',
|
93
|
-
'margin-left': marginLeft + 'rem',
|
94
|
-
'margin-right': marginRight + 'rem'
|
95
|
-
}">
|
181
|
+
args: [{ selector: 'argenta-custom-multi-select', template: `
|
182
|
+
<div *ngIf="hasPermission()" class="form-group">
|
96
183
|
<label [for]="id" class="form-label">{{ label }}</label>
|
97
184
|
<ng-select
|
98
185
|
[class.course-entry]="isCourseEntered"
|
99
186
|
class="ng-select"
|
100
|
-
[items]="
|
187
|
+
[items]="filteredItems | async"
|
101
188
|
[multiple]="true"
|
102
|
-
[closeOnSelect]="
|
189
|
+
[closeOnSelect]="closeOnSelect"
|
103
190
|
[hideSelected]="true"
|
104
191
|
[bindLabel]="bindLabel"
|
192
|
+
[bindValue]="bindValue"
|
105
193
|
[(ngModel)]="selected"
|
194
|
+
[compareWith]="compareFn"
|
195
|
+
(change)="onSelectedChange($event)"
|
106
196
|
(keyup)="onKeyUp($event)"
|
197
|
+
(input)="onInputChange($event)"
|
107
198
|
[id]="id"
|
108
199
|
[placeholder]="selected && selected.length === 0 ? placeholder : ''"
|
109
200
|
(focus)="onFocus()"
|
@@ -120,8 +211,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
120
211
|
useExisting: forwardRef(() => MultiSelectComponent),
|
121
212
|
multi: true
|
122
213
|
}
|
123
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".form-group{font-family:Arial,sans-serif;font-size:1rem}.form-label{font-weight:
|
124
|
-
}], propDecorators: { label: [{
|
214
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"] }]
|
215
|
+
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }]; }, propDecorators: { label: [{
|
125
216
|
type: Input
|
126
217
|
}], data: [{
|
127
218
|
type: Input
|
@@ -133,15 +224,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
133
224
|
type: Input
|
134
225
|
}], bindLabel: [{
|
135
226
|
type: Input
|
136
|
-
}],
|
227
|
+
}], bindValue: [{
|
137
228
|
type: Input
|
138
|
-
}],
|
229
|
+
}], permissions: [{
|
139
230
|
type: Input
|
140
|
-
}],
|
231
|
+
}], closeOnSelect: [{
|
141
232
|
type: Input
|
142
|
-
}],
|
233
|
+
}], searchUrl: [{
|
143
234
|
type: Input
|
144
235
|
}], keyupEvent: [{
|
145
236
|
type: Output
|
146
237
|
}] } });
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBbUR0QyxNQUFNLE9BQU8sb0JBQW9CO0lBakRqQztRQWtEVyxVQUFLLEdBQVcsY0FBYyxDQUFDO1FBQy9CLFNBQUksR0FBVSxFQUFFLENBQUMsQ0FBQyx1Q0FBdUM7UUFDekQsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFDckMsYUFBUSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QztRQUM5RCxPQUFFLEdBQVcsZUFBZSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFbEQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsRSxVQUFLLEdBQXNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQU0xRCxxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVsRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztLQTZCekI7SUFwQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBT0QsT0FBTztRQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsNENBQTRDO0lBQzlDLENBQUM7K0dBcERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdVQVRwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkE1Q1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7OzRGQW1CVSxvQkFBb0I7a0JBakRoQyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCxhQVVVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbS1hcHAtbXVsdGktc2VsZWN0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wICsgJ3JlbScsXG4gICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSArICdyZW0nLFxuICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCArICdyZW0nLFxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0ICsgJ3JlbSdcbiAgICB9XCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxuZy1zZWxlY3RcbiAgICAgICAgW2NsYXNzLmNvdXJzZS1lbnRyeV09XCJpc0NvdXJzZUVudGVyZWRcIlxuICAgICAgICBjbGFzcz1cIm5nLXNlbGVjdFwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyB8IGFzeW5jXCJcbiAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgIFtoaWRlU2VsZWN0ZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiXG4gICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudClcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICAgIHt7IGl0ZW1bYmluZExhYmVsXSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgYF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnTXVsdGkgU2VsZWN0JztcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTsgLy8gQWNlaXRhIHVtIGFycmF5IGRlIG9iamV0b3MgZ2Vuw6lyaWNvc1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdOyAvLyBBIHZhcmnDoXZlbCBzZWxlY3RlZCBkZXZlIHNlciB1bSBhcnJheVxuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJ211bHRpU2VsZWN0SWQnO1xuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyA9ICcnOyAvLyBMYWJlbCBkaW7Dom1pY28gZ2Vuw6lyaWNvXG5cbiAgQElucHV0KCkgbWFyZ2luVG9wOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpblJpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBPdXRwdXQoKSBrZXl1cEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTsgLy8gSW5pY2lhbGl6YcOnw6NvIGRhIHByb3ByaWVkYWRlXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgaXNDb3Vyc2VFbnRlcmVkID0gZmFsc2U7XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmlzQ291cnNlRW50ZXJlZCA9IHRydWU7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5pc0NvdXJzZUVudGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmtleXVwRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdmFsdWUgfHwgW107XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gbmVlZGVkIGZvciB0aGlzIGV4YW1wbGVcbiAgfVxufVxuIl19
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUE0Q3JGLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQW9CLFdBQXdCLEVBQVUsSUFBZ0I7UUFBbEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEI3RCxVQUFLLEdBQVcsY0FBYyxDQUFDO1FBQy9CLFNBQUksR0FBVSxFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7UUFDeEQsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFDckMsYUFBUSxHQUFVLEVBQUUsQ0FBQyxDQUFDLDJDQUEyQztRQUNqRSxPQUFFLEdBQVcsZUFBZSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDaEQsY0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUVoRCxrQkFBYSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtRQUNsRixjQUFTLEdBQVcsRUFBRSxDQUFDLENBQUMseUJBQXlCO1FB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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkFsQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDs7NEZBVVUsb0JBQW9CO2tCQXhDaEMsU0FBUzsrQkFDRSw2QkFBNkIsWUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTsySEFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgY2F0Y2hFcnJvciwgc3RhcnRXaXRoLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXV0aC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJnZW50YS1jdXN0b20tbXVsdGktc2VsZWN0JyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImhhc1Blcm1pc3Npb24oKVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8bmctc2VsZWN0XG4gICAgICAgIFtjbGFzcy5jb3Vyc2UtZW50cnldPVwiaXNDb3Vyc2VFbnRlcmVkXCJcbiAgICAgICAgY2xhc3M9XCJuZy1zZWxlY3RcIlxuICAgICAgICBbaXRlbXNdPVwiZmlsdGVyZWRJdGVtcyB8IGFzeW5jXCJcbiAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcbiAgICAgICAgW2hpZGVTZWxlY3RlZF09XCJ0cnVlXCJcbiAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxuICAgICAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDAgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAge3sgaXRlbVtiaW5kTGFiZWxdIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdNdWx0aSBTZWxlY3QnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBBY2NlcHRzIGFuIGFycmF5IG9mIGdlbmVyaWMgb2JqZWN0c1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdOyAvLyBUaGUgc2VsZWN0ZWQgdmFyaWFibGUgc2hvdWxkIGJlIGFuIGFycmF5XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnbXVsdGlTZWxlY3RJZCc7XG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nID0gJyc7IC8vIEdlbmVyaWMgZHluYW1pYyBsYWJlbFxuICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyA9ICcnOyAvLyBHZW5lcmljIGR5bmFtaWMgdmFsdWVcbiAgQElucHV0KCkgcGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkOyAvLyBBZGRpbmcgcGVybWlzc2lvbnMgYXMgaW5wdXRcbiAgQElucHV0KCkgY2xvc2VPblNlbGVjdDogYm9vbGVhbiA9IGZhbHNlOyAvLyBOZXcgcHJvcGVydHkgdG8gY29udHJvbCBkcm9wZG93biBjbG9zZSBiZWhhdmlvclxuICBASW5wdXQoKSBzZWFyY2hVcmw6IHN0cmluZyA9ICcnOyAvLyBVUkwgZm9yIGJhY2tlbmQgc2VhcmNoXG5cbiAgQE91dHB1dCgpIGtleXVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbERhdGE6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBsaXN0XG4gIHByaXZhdGUgYWxsSXRlbXM6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBjb21iaW5lZCBsaXN0XG4gIGl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTsgLy8gSW5pdGlhbGl6YXRpb24gb2YgdGhlIHByb3BlcnR5XG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+ID0gb2YoW10pOyAvLyBGaWx0ZXJlZCBpdGVtc1xuICBwcml2YXRlIHNlYXJjaFRlcm1zID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpOyAvLyBGb3Igc2VhcmNoIGRlYm91bmNlXG4gIHByaXZhdGUgYmFja2VuZEl0ZW1zOiBhbnlbXSA9IFtdOyAvLyBJdGVtcyBmb3VuZCBmcm9tIGJhY2tlbmRcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsRGF0YSA9IFsuLi50aGlzLmRhdGFdOyAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YVxuICAgIHRoaXMuYWxsSXRlbXMgPSBbLi4udGhpcy5kYXRhXTsgLy8gSW5pdGlhbGl6ZSBhbGxJdGVtcyB3aXRoIHRoZSBvcmlnaW5hbCBkYXRhXG4gICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuYWxsSXRlbXMpO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuc2VhcmNoVGVybXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg3MDApLFxuICAgICAgc3RhcnRXaXRoKCcnKSwgLy8gU3RhcnQgd2l0aCBhbiBlbXB0eSBzZWFyY2ggdG8gbG9hZCB0aGUgb3JpZ2luYWwgbGlzdFxuICAgICAgc3dpdGNoTWFwKHRlcm0gPT4gdGhpcy5zZWFyY2godGVybSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuICBpc0NvdXJzZUVudGVyZWQgPSBmYWxzZTtcblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuaXNDb3Vyc2VFbnRlcmVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLmlzQ291cnNlRW50ZXJlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5dXBFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld2x5U2VsZWN0ZWRJdGVtcyA9IGV2ZW50LmZpbHRlcigoaXRlbTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhpdGVtKSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGV2ZW50O1xuXG4gICAgLy8gQ2hlY2sgaWYgYW55IG5ld2x5IHNlbGVjdGVkIGl0ZW0gaXMgZnJvbSBiYWNrZW5kSXRlbXNcbiAgICBjb25zdCBhZGRlZEZyb21CYWNrZW5kID0gdGhpcy5iYWNrZW5kSXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IG5ld2x5U2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtKSk7XG5cbiAgICBpZiAoYWRkZWRGcm9tQmFja2VuZC5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBUcmFuc2Zvcm0gdGhlIGJhY2tlbmQgaXRlbXMgdG8gbWF0Y2ggdGhlIGZvcm1hdCBleHBlY3RlZCBieSB0aGUgY29tcG9uZW50XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZEl0ZW1zID0gYWRkZWRGcm9tQmFja2VuZC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgW3RoaXMuYmluZFZhbHVlXTogaXRlbVt0aGlzLmJpbmRWYWx1ZV0sXG4gICAgICAgIFt0aGlzLmJpbmRMYWJlbF06IGl0ZW1bdGhpcy5iaW5kTGFiZWxdXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIEFkZCBiYWNrZW5kIGl0ZW1zIHRvIHRoZSBhbGxJdGVtcyBsaXN0IGFuZCB1cGRhdGUgdGhlIG9ic2VydmFibGVcbiAgICAgIHRoaXMub3JpZ2luYWxEYXRhID0gWy4uLnRoaXMub3JpZ2luYWxEYXRhLCAuLi50cmFuc2Zvcm1lZEl0ZW1zXTtcbiAgICAgIHRoaXMuYWxsSXRlbXMgPSBbLi4udGhpcy5vcmlnaW5hbERhdGFdO1xuICAgICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuYWxsSXRlbXMpOyAvLyBVcGRhdGUgdGhlIG9ic2VydmFibGUgd2l0aCBuZXcgZGF0YVxuICAgICAgdGhpcy5iYWNrZW5kSXRlbXMgPSBbXTsgLy8gQ2xlYXIgYmFja2VuZCBpdGVtcyBhZnRlciBwcm9jZXNzaW5nXG4gICAgICB0aGlzLnNlYXJjaFRlcm1zLm5leHQoJycpOyAvLyBSZXNldCB0aGUgc2VhcmNoIHRlcm0gdG8gdXBkYXRlIHRoZSBsaXN0XG4gICAgICBjb25zb2xlLmxvZygnQWRkZWQgaXRlbXMgZnJvbSBiYWNrZW5kIHRvIHRoZSBsaXN0IGFuZCByZXNldCB0aGUgZHJvcGRvd24uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWQpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hUZXJtcy5uZXh0KGlucHV0KTtcbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgaWYgKCF0ZXJtLnRyaW0oKSkge1xuICAgICAgLy8gSWYgdGhlIHNlYXJjaCB0ZXJtIGlzIGVtcHR5LCBzaG93IHRoZSBjb21wbGV0ZSBsaXN0XG4gICAgICByZXR1cm4gb2YodGhpcy5hbGxJdGVtcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmFsbEl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PlxuICAgICAgaXRlbVt0aGlzLmJpbmRMYWJlbF0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtLnRvTG93ZXJDYXNlKCkpXG4gICAgKTtcblxuICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnSXRlbXMgZmlsdGVyZWQgbG9jYWxseS4nKTtcbiAgICAgIHJldHVybiBvZihmaWx0ZXJlZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFVybCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnNlYXJjaFVybH0/dGVybT0ke3Rlcm19YCkucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgYmFja2VuZCBpdGVtcyB0byBtYXRjaCB0aGUgZm9ybWF0IGV4cGVjdGVkIGJ5IHRoZSBjb21wb25lbnRcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkSXRlbXMgPSByZXNwb25zZS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgW3RoaXMuYmluZFZhbHVlXTogaXRlbVt0aGlzLmJpbmRWYWx1ZV0sXG4gICAgICAgICAgICAgIFt0aGlzLmJpbmRMYWJlbF06IGl0ZW1bdGhpcy5iaW5kTGFiZWxdXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLmJhY2tlbmRJdGVtcyA9IHRyYW5zZm9ybWVkSXRlbXM7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmZpbHRlcmVkLCAuLi50cmFuc2Zvcm1lZEl0ZW1zXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ05vIGl0ZW1zIGZvdW5kIGluIHRoZSBiYWNrZW5kIHNlYXJjaC4nKTtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZnJvbSBiYWNrZW5kOicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyZWQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ05vIHNlYXJjaCBVUkwgcHJvdmlkZWQgYW5kIG5vIGl0ZW1zIGZvdW5kIGxvY2FsbHkuJyk7XG4gICAgICByZXR1cm4gb2YoZmlsdGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB2YWx1ZSB8fCBbXTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiBuZWVkZWQgZm9yIHRoaXMgZXhhbXBsZVxuICB9XG5cbiAgY29tcGFyZUZuID0gKGl0ZW0xOiBhbnksIGl0ZW0yOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gaXRlbTEgJiYgaXRlbTIgPyBpdGVtMVt0aGlzLmJpbmRWYWx1ZV0gPT09IGl0ZW0yW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW0xID09PSBpdGVtMjtcbiAgfTtcblxuICBoYXNQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5wZXJtaXNzaW9ucyB8fCB0aGlzLnBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Blcm1pc3Npb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdVbmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyBwZXJtaXNzaW9uIGNoZWNrJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import { Subject } from 'rxjs';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "../../service/auth-service.service";
|
5
6
|
import * as i2 from "@angular/common";
|
@@ -15,7 +16,7 @@ export class SelectComponent {
|
|
15
16
|
this.changeEvent = new EventEmitter();
|
16
17
|
this.onChangeCallback = () => { };
|
17
18
|
this.onTouchedCallback = () => { };
|
18
|
-
this.
|
19
|
+
this.destroy$ = new Subject();
|
19
20
|
}
|
20
21
|
onSelectChange(event) {
|
21
22
|
const selectElement = event.target;
|
@@ -35,6 +36,14 @@ export class SelectComponent {
|
|
35
36
|
setDisabledState(isDisabled) {
|
36
37
|
this.disabled = isDisabled;
|
37
38
|
}
|
39
|
+
ngOnChanges(changes) {
|
40
|
+
if (changes['options'] && changes['options'].currentValue !== changes['options'].previousValue) {
|
41
|
+
this.updateOptions(changes['options'].currentValue);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
updateOptions(newOptions) {
|
45
|
+
this.options = newOptions;
|
46
|
+
}
|
38
47
|
hasPermission() {
|
39
48
|
if (!this.permissions || this.permissions.length === 0) {
|
40
49
|
return true;
|
@@ -53,7 +62,8 @@ export class SelectComponent {
|
|
53
62
|
}
|
54
63
|
}
|
55
64
|
ngOnDestroy() {
|
56
|
-
this.
|
65
|
+
this.destroy$.next();
|
66
|
+
this.destroy$.complete();
|
57
67
|
}
|
58
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
59
69
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectComponent, selector: "argenta-custom-select", inputs: { label: "label", id: "id", disabled: "disabled", options: "options", permissions: "permissions" }, outputs: { changeEvent: "changeEvent" }, providers: [
|
@@ -62,7 +72,7 @@ export class SelectComponent {
|
|
62
72
|
useExisting: forwardRef(() => SelectComponent),
|
63
73
|
multi: true
|
64
74
|
}
|
65
|
-
], ngImport: i0, template: `
|
75
|
+
], usesOnChanges: true, ngImport: i0, template: `
|
66
76
|
<div *ngIf="hasPermission()" class="form-group">
|
67
77
|
<label [for]="id" [ngClass]="'label-styles'">{{ label }}</label>
|
68
78
|
<div class="select-container">
|
@@ -114,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
114
124
|
}], changeEvent: [{
|
115
125
|
type: Output
|
116
126
|
}] } });
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBdUMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUErQi9CLE1BQU0sT0FBTyxlQUFlO0lBZTFCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZG5DLFVBQUssR0FBVyxlQUFlLENBQUM7UUFDaEMsT0FBRSxHQUFXLFVBQVUsQ0FBQztRQUN4QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBb0MsRUFBRSxDQUFDO1FBRzdDLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0QscUJBQWdCLEdBQXFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFHMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFUyxDQUFDO0lBRWpELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUEyQixDQUFDO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtZQUM5RixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsVUFBMkM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUk7WUFDRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN6RDtRQUFDLE9BQU8sS0FBYyxFQUFFO1lBQ3ZCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBdEVVLGVBQWU7bUdBQWYsZUFBZSxxTUFUZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsK0NBckJTOzs7Ozs7Ozs7Ozs7OztHQWNUOzs0RkFVVSxlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSx1QkFBdUIsWUFFdkI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07a0dBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2F1dGgtc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJnZW50YS1jdXN0b20tc2VsZWN0JyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImhhc1Blcm1pc3Npb24oKVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBbbmdDbGFzc109XCInbGFiZWwtc3R5bGVzJ1wiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzdG9tLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tZG93blwiIFtzaXplXT1cIjE2XCIgY29sb3I9XCIjNUU2MzY2XCIgW3N0cm9rZVdpZHRoXT1cIjEuNzVcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ0RlZmF1bHQgTGFiZWwnO1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJ3NlbGVjdElkJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb3B0aW9uczogeyB2YWx1ZTogYW55LCBsYWJlbDogc3RyaW5nIH1bXSA9IFtdO1xuICBASW5wdXQoKSBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuICB2YWx1ZTogYW55O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XG5cbiAgb25TZWxlY3RDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICB0aGlzLnZhbHVlID0gc2VsZWN0RWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10gJiYgY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snb3B0aW9ucyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhjaGFuZ2VzWydvcHRpb25zJ10uY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVPcHRpb25zKG5ld09wdGlvbnM6IHsgdmFsdWU6IGFueSwgbGFiZWw6IHN0cmluZyB9W10pOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBuZXdPcHRpb25zO1xuICB9XG5cbiAgaGFzUGVybWlzc2lvbigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMgfHwgdGhpcy5wZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdQZXJtaXNzaW9uIGVycm9yOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignVW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGVybWlzc2lvbiBjaGVjaycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|