ngx-techlify-core 18.46.1 → 18.48.0
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/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.mjs +29 -0
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +43 -0
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.mjs +36 -0
- package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.mjs +23 -0
- package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.mjs +28 -0
- package/esm2022/lib/form-configuration/form-configuration-form-field.service.mjs +18 -0
- package/esm2022/lib/form-configuration/form-configuration-form.service.mjs +18 -0
- package/esm2022/lib/form-configuration/form-configuration-utility.service.mjs +29 -0
- package/esm2022/lib/role/role-form-button.component.mjs +6 -4
- package/esm2022/lib/role/role.module.mjs +8 -4
- package/esm2022/lib/role/roles-view-all.component.mjs +10 -8
- package/esm2022/public-api.mjs +10 -1
- package/fesm2022/ngx-techlify-core.mjs +357 -178
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.d.ts +7 -0
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.d.ts +17 -0
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +12 -0
- package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.d.ts +10 -0
- package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.d.ts +10 -0
- package/lib/form-configuration/form-configuration-form-field.service.d.ts +8 -0
- package/lib/form-configuration/form-configuration-form.service.d.ts +8 -0
- package/lib/form-configuration/form-configuration-utility.service.d.ts +10 -0
- package/lib/role/role.module.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +8 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { AuthenticationGuard } from '../../core';
|
|
4
|
+
import { FormConfigurationFieldFormComponent } from './form-configuration-field-form.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
const routes = [
|
|
8
|
+
{
|
|
9
|
+
path: '',
|
|
10
|
+
component: FormConfigurationFieldFormComponent,
|
|
11
|
+
canActivate: [AuthenticationGuard],
|
|
12
|
+
data: {
|
|
13
|
+
breadcrumb: 'Form Configuration'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
];
|
|
17
|
+
export class FormConfigurationFieldFormRoutingModule {
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
20
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormRoutingModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
imports: [RouterModule.forChild(routes)],
|
|
26
|
+
exports: [RouterModule]
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0tcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Zvcm0tY29uZmlndXJhdGlvbi9mb3JtLWNvbmZpZ3VyYXRpb24tZmllbGQtZm9ybS9mb3JtLWNvbmZpZ3VyYXRpb24tZmllbGQtZm9ybS1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQUVoRyxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLG1DQUFtQztRQUM5QyxXQUFXLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztRQUNsQyxJQUFJLEVBQUU7WUFDSixVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDO0tBQ0Y7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLHVDQUF1QzsrR0FBdkMsdUNBQXVDO2dIQUF2Qyx1Q0FBdUMsd0NBRnhDLFlBQVk7Z0hBRVgsdUNBQXVDLFlBSHhDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLHVDQUF1QztrQkFKbkQsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uR3VhcmQgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEZvcm1Db25maWd1cmF0aW9uRmllbGRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNvbmZpZ3VyYXRpb24tZmllbGQtZm9ybS5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Db21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoZW50aWNhdGlvbkd1YXJkXSxcbiAgICBkYXRhOiB7XG4gICAgICBicmVhZGNydW1iOiAnRm9ybSBDb25maWd1cmF0aW9uJ1xuICAgIH1cbiAgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Sb3V0aW5nTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "../form-configuration-form.service";
|
|
5
|
+
import * as i3 from "../form-configuration-form-field.service";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@angular/forms";
|
|
8
|
+
import * as i6 from "@angular/material/button";
|
|
9
|
+
import * as i7 from "@angular/material/icon";
|
|
10
|
+
import * as i8 from "@angular/material/card";
|
|
11
|
+
import * as i9 from "@angular/material/progress-bar";
|
|
12
|
+
import * as i10 from "@angular/material/slide-toggle";
|
|
13
|
+
import * as i11 from "@angular/flex-layout/flex";
|
|
14
|
+
export class FormConfigurationFieldFormComponent {
|
|
15
|
+
constructor(activatedRoute, formConfigurationFormService, formConfigurationFormFieldService) {
|
|
16
|
+
this.activatedRoute = activatedRoute;
|
|
17
|
+
this.formConfigurationFormService = formConfigurationFormService;
|
|
18
|
+
this.formConfigurationFormFieldService = formConfigurationFormFieldService;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.activatedRoute.params.subscribe(params => {
|
|
22
|
+
this.formConfigurationFormService.show(params['formCode']).subscribe(res => {
|
|
23
|
+
this.formConfigForm = res.item;
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
onToggle(field) {
|
|
28
|
+
this.formConfigurationFormFieldService.update(field).subscribe(res => {
|
|
29
|
+
let index = this.formConfigForm.fields.indexOf(field);
|
|
30
|
+
this.formConfigForm.fields[index] = res.item;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
goBack() {
|
|
34
|
+
window.history.back();
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.FormConfigurationFormService }, { token: i3.FormConfigurationFormFieldService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationFieldFormComponent, selector: "techlify-form-configuration-field-form", ngImport: i0, template: "<div style=\"padding: 16px;\">\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <h2 *ngIf=\"formConfigForm\">{{ formConfigForm.form_name }} - Field Configuration</h2>\n\n <mat-progress-bar *ngIf=\"!formConfigForm\" mode=\"indeterminate\"></mat-progress-bar>\n\n <div *ngIf=\"formConfigForm\" fxLayout=\"row wrap\" fxLayoutGap=\"16px\">\n <mat-card *ngFor=\"let field of formConfigForm.fields\" fxFlex=\"30\" style=\"margin-bottom: 16px;\">\n <mat-card-header>\n <mat-card-title>{{ field.field_code }}</mat-card-title>\n <mat-card-subtitle>{{ field.description }}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n <mat-slide-toggle [(ngModel)]=\"field.is_required\" (change)=\"onToggle(field)\">\n Is Required\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"field.is_enabled\" (change)=\"onToggle(field)\">\n Is Enabled\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i8.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i9.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'techlify-form-configuration-field-form', template: "<div style=\"padding: 16px;\">\n <button mat-icon-button (click)=\"goBack()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <h2 *ngIf=\"formConfigForm\">{{ formConfigForm.form_name }} - Field Configuration</h2>\n\n <mat-progress-bar *ngIf=\"!formConfigForm\" mode=\"indeterminate\"></mat-progress-bar>\n\n <div *ngIf=\"formConfigForm\" fxLayout=\"row wrap\" fxLayoutGap=\"16px\">\n <mat-card *ngFor=\"let field of formConfigForm.fields\" fxFlex=\"30\" style=\"margin-bottom: 16px;\">\n <mat-card-header>\n <mat-card-title>{{ field.field_code }}</mat-card-title>\n <mat-card-subtitle>{{ field.description }}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n <mat-slide-toggle [(ngModel)]=\"field.is_required\" (change)=\"onToggle(field)\">\n Is Required\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"field.is_enabled\" (change)=\"onToggle(field)\">\n Is Enabled\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n" }]
|
|
42
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.FormConfigurationFormService }, { type: i3.FormConfigurationFormFieldService }] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9mb3JtLWNvbmZpZ3VyYXRpb24vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9mb3JtLWNvbmZpZ3VyYXRpb24vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNsRCxNQUFNLE9BQU8sbUNBQW1DO0lBSTlDLFlBQ1UsY0FBOEIsRUFDOUIsNEJBQTBELEVBQzFELGlDQUFvRTtRQUZwRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUMxRCxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO0lBRTlFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN6RSxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsaUNBQWlDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTVCVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyw4RUNUaEQsd25DQTJCQTs7NEZEbEJhLG1DQUFtQztrQkFKL0MsU0FBUzsrQkFDRSx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tY29uZmlndXJhdGlvbi1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb25Gb3JtRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1jb25maWd1cmF0aW9uLWZvcm0tZmllbGQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RlY2hsaWZ5LWZvcm0tY29uZmlndXJhdGlvbi1maWVsZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tY29uZmlndXJhdGlvbi1maWVsZC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZvcm1Db25maWdGb3JtOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmb3JtQ29uZmlndXJhdGlvbkZvcm1TZXJ2aWNlOiBGb3JtQ29uZmlndXJhdGlvbkZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUNvbmZpZ3VyYXRpb25Gb3JtRmllbGRTZXJ2aWNlOiBGb3JtQ29uZmlndXJhdGlvbkZvcm1GaWVsZFNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZS5zaG93KHBhcmFtc1snZm9ybUNvZGUnXSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUNvbmZpZ0Zvcm0gPSByZXMuaXRlbTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgb25Ub2dnbGUoZmllbGQ6IGFueSkge1xuICAgIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb25Gb3JtRmllbGRTZXJ2aWNlLnVwZGF0ZShmaWVsZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmZvcm1Db25maWdGb3JtLmZpZWxkcy5pbmRleE9mKGZpZWxkKTtcbiAgICAgIHRoaXMuZm9ybUNvbmZpZ0Zvcm0uZmllbGRzW2luZGV4XSA9IHJlcy5pdGVtO1xuICAgIH0pO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soKTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cInBhZGRpbmc6IDE2cHg7XCI+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxoMiAqbmdJZj1cImZvcm1Db25maWdGb3JtXCI+e3sgZm9ybUNvbmZpZ0Zvcm0uZm9ybV9uYW1lIH19IC0gRmllbGQgQ29uZmlndXJhdGlvbjwvaDI+XG5cbiAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhZm9ybUNvbmZpZ0Zvcm1cIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cblxuICA8ZGl2ICpuZ0lmPVwiZm9ybUNvbmZpZ0Zvcm1cIiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCI+XG4gICAgPG1hdC1jYXJkICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmb3JtQ29uZmlnRm9ybS5maWVsZHNcIiBmeEZsZXg9XCIzMFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTZweDtcIj5cbiAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT57eyBmaWVsZC5maWVsZF9jb2RlIH19PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPnt7IGZpZWxkLmRlc2NyaXB0aW9uIH19PC9tYXQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjhweFwiPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZmllbGQuaXNfcmVxdWlyZWRcIiAoY2hhbmdlKT1cIm9uVG9nZ2xlKGZpZWxkKVwiPlxuICAgICAgICAgICAgSXMgUmVxdWlyZWRcbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJmaWVsZC5pc19lbmFibGVkXCIgKGNoYW5nZSk9XCJvblRvZ2dsZShmaWVsZClcIj5cbiAgICAgICAgICAgIElzIEVuYWJsZWRcbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { MaterialModule } from '../../material.module';
|
|
6
|
+
import { FormConfigurationFieldFormComponent } from './form-configuration-field-form.component';
|
|
7
|
+
import { FormConfigurationFieldFormRoutingModule } from './form-configuration-field-form-routing.module';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class FormConfigurationFieldFormModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormModule, declarations: [FormConfigurationFieldFormComponent], imports: [CommonModule,
|
|
12
|
+
FormsModule,
|
|
13
|
+
MaterialModule,
|
|
14
|
+
FlexLayoutModule,
|
|
15
|
+
FormConfigurationFieldFormRoutingModule], exports: [FormConfigurationFieldFormComponent] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormModule, imports: [CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
MaterialModule,
|
|
19
|
+
FlexLayoutModule,
|
|
20
|
+
FormConfigurationFieldFormRoutingModule] }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFieldFormModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [FormConfigurationFieldFormComponent],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
FormsModule,
|
|
29
|
+
MaterialModule,
|
|
30
|
+
FlexLayoutModule,
|
|
31
|
+
FormConfigurationFieldFormRoutingModule
|
|
32
|
+
],
|
|
33
|
+
exports: [FormConfigurationFieldFormComponent]
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9mb3JtLWNvbmZpZ3VyYXRpb24vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0vZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEcsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBYXpHLE1BQU0sT0FBTyxnQ0FBZ0M7K0dBQWhDLGdDQUFnQztnSEFBaEMsZ0NBQWdDLGlCQVY1QixtQ0FBbUMsYUFFaEQsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLHVDQUF1QyxhQUUvQixtQ0FBbUM7Z0hBRWxDLGdDQUFnQyxZQVJ6QyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsdUNBQXVDOzs0RkFJOUIsZ0NBQWdDO2tCQVg1QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1DQUFtQyxDQUFDO29CQUNuRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix1Q0FBdUM7cUJBQ3hDO29CQUNELE9BQU8sRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY29uZmlndXJhdGlvbi1maWVsZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29uZmlndXJhdGlvbkZpZWxkRm9ybVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Zvcm0tY29uZmlndXJhdGlvbi1maWVsZC1mb3JtLXJvdXRpbmcubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Sb3V0aW5nTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtGb3JtQ29uZmlndXJhdGlvbkZpZWxkRm9ybUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbmZpZ3VyYXRpb25GaWVsZEZvcm1Nb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "@angular/material/button";
|
|
5
|
+
import * as i3 from "@angular/material/icon";
|
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
|
7
|
+
export class FormConfigurationForFormComponent {
|
|
8
|
+
constructor(router) {
|
|
9
|
+
this.router = router;
|
|
10
|
+
}
|
|
11
|
+
openForm() {
|
|
12
|
+
this.router.navigate(['/form-configuration-field-form', this.formCode]);
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FormConfigurationForFormComponent, selector: "techlify-form-configuration-for-form", inputs: { formCode: "formCode" }, ngImport: i0, template: "<button mat-icon-button matTooltip=\"Form Configuration\" (click)=\"openForm()\">\n <mat-icon>settings</mat-icon>\n</button>\n", dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'techlify-form-configuration-for-form', template: "<button mat-icon-button matTooltip=\"Form Configuration\" (click)=\"openForm()\">\n <mat-icon>settings</mat-icon>\n</button>\n" }]
|
|
20
|
+
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { formCode: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZvci1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZm9ybS1jb25maWd1cmF0aW9uL2Zvcm0tY29uZmlndXJhdGlvbi1mb3ItZm9ybS9mb3JtLWNvbmZpZ3VyYXRpb24tZm9yLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9mb3JtLWNvbmZpZ3VyYXRpb24vZm9ybS1jb25maWd1cmF0aW9uLWZvci1mb3JtL2Zvcm0tY29uZmlndXJhdGlvbi1mb3ItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT2pELE1BQU0sT0FBTyxpQ0FBaUM7SUFJNUMsWUFDVSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV4QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQzsrR0FYVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyw4R0NQOUMsaUlBR0E7OzRGRElhLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDRSxzQ0FBc0M7MkVBS3ZDLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZWNobGlmeS1mb3JtLWNvbmZpZ3VyYXRpb24tZm9yLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb25maWd1cmF0aW9uLWZvci1mb3JtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbmZpZ3VyYXRpb25Gb3JGb3JtQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBmb3JtQ29kZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgb3BlbkZvcm0oKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZm9ybS1jb25maWd1cmF0aW9uLWZpZWxkLWZvcm0nLCB0aGlzLmZvcm1Db2RlXSk7XG4gIH1cbn1cbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJGb3JtIENvbmZpZ3VyYXRpb25cIiAoY2xpY2spPVwib3BlbkZvcm0oKVwiPlxuICA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { MaterialModule } from '../../material.module';
|
|
5
|
+
import { FormConfigurationForFormComponent } from './form-configuration-for-form.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class FormConfigurationForFormModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormModule, declarations: [FormConfigurationForFormComponent], imports: [CommonModule,
|
|
10
|
+
RouterModule,
|
|
11
|
+
MaterialModule], exports: [FormConfigurationForFormComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormModule, imports: [CommonModule,
|
|
13
|
+
RouterModule,
|
|
14
|
+
MaterialModule] }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationForFormModule, decorators: [{
|
|
17
|
+
type: NgModule,
|
|
18
|
+
args: [{
|
|
19
|
+
declarations: [FormConfigurationForFormComponent],
|
|
20
|
+
imports: [
|
|
21
|
+
CommonModule,
|
|
22
|
+
RouterModule,
|
|
23
|
+
MaterialModule
|
|
24
|
+
],
|
|
25
|
+
exports: [FormConfigurationForFormComponent]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZvci1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZm9ybS1jb25maWd1cmF0aW9uL2Zvcm0tY29uZmlndXJhdGlvbi1mb3ItZm9ybS9mb3JtLWNvbmZpZ3VyYXRpb24tZm9yLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBVzVGLE1BQU0sT0FBTyw4QkFBOEI7K0dBQTlCLDhCQUE4QjtnSEFBOUIsOEJBQThCLGlCQVIxQixpQ0FBaUMsYUFFOUMsWUFBWTtZQUNaLFlBQVk7WUFDWixjQUFjLGFBRU4saUNBQWlDO2dIQUVoQyw4QkFBOEIsWUFOdkMsWUFBWTtZQUNaLFlBQVk7WUFDWixjQUFjOzs0RkFJTCw4QkFBOEI7a0JBVDFDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsaUNBQWlDLENBQUM7b0JBQ2pELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtQ29uZmlndXJhdGlvbkZvckZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0tY29uZmlndXJhdGlvbi1mb3ItZm9ybS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGb3JtQ29uZmlndXJhdGlvbkZvckZvcm1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbRm9ybUNvbmZpZ3VyYXRpb25Gb3JGb3JtQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29uZmlndXJhdGlvbkZvckZvcm1Nb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TechlifyServiceBaseClass } from '../base-model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../core/http.service";
|
|
5
|
+
export class FormConfigurationFormFieldService extends TechlifyServiceBaseClass {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
super(http, 'form-configuration-form-fields');
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormFieldService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormFieldService, providedIn: 'root' }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormFieldService, decorators: [{
|
|
13
|
+
type: Injectable,
|
|
14
|
+
args: [{
|
|
15
|
+
providedIn: 'root'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZvcm0tZmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZm9ybS1jb25maWd1cmF0aW9uL2Zvcm0tY29uZmlndXJhdGlvbi1mb3JtLWZpZWxkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUt6RCxNQUFNLE9BQU8saUNBQWtDLFNBQVEsd0JBQXdCO0lBRTdFLFlBQVksSUFBaUI7UUFDM0IsS0FBSyxDQUFDLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBSlUsaUNBQWlDO21IQUFqQyxpQ0FBaUMsY0FGaEMsTUFBTTs7NEZBRVAsaUNBQWlDO2tCQUg3QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIH0gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWd1cmF0aW9uRm9ybUZpZWxkU2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IoaHR0cDogSHR0cFNlcnZpY2UpIHtcbiAgICBzdXBlcihodHRwLCAnZm9ybS1jb25maWd1cmF0aW9uLWZvcm0tZmllbGRzJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TechlifyServiceBaseClass } from '../base-model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../core/http.service";
|
|
5
|
+
export class FormConfigurationFormService extends TechlifyServiceBaseClass {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
super(http, 'form-configuration-forms');
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormService, providedIn: 'root' }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormConfigurationFormService, decorators: [{
|
|
13
|
+
type: Injectable,
|
|
14
|
+
args: [{
|
|
15
|
+
providedIn: 'root'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZm9ybS1jb25maWd1cmF0aW9uL2Zvcm0tY29uZmlndXJhdGlvbi1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUt6RCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBRXhFLFlBQVksSUFBaUI7UUFDM0IsS0FBSyxDQUFDLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBSlUsNEJBQTRCO21IQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTs7NEZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIH0gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWd1cmF0aW9uRm9ybVNlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBTZXJ2aWNlKSB7XG4gICAgc3VwZXIoaHR0cCwgJ2Zvcm0tY29uZmlndXJhdGlvbi1mb3JtcycpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { map } from 'rxjs';
|
|
2
|
+
export class FormConfigurationUtilityService {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.fieldConfigCache = {};
|
|
5
|
+
}
|
|
6
|
+
initialize(formConfigurationFormService, formCode) {
|
|
7
|
+
return formConfigurationFormService
|
|
8
|
+
.show(formCode)
|
|
9
|
+
.pipe(map(res => {
|
|
10
|
+
this.formConfiguration = res.item;
|
|
11
|
+
return true;
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
getFieldRequired(fieldCode) {
|
|
15
|
+
return this.getFieldConfig(fieldCode)?.is_required ?? false;
|
|
16
|
+
}
|
|
17
|
+
getFieldEnabled(fieldCode) {
|
|
18
|
+
return this.getFieldConfig(fieldCode)?.is_enabled ?? false;
|
|
19
|
+
}
|
|
20
|
+
getFieldConfig(fieldCode) {
|
|
21
|
+
let fieldConfig = this.fieldConfigCache[fieldCode];
|
|
22
|
+
if (!fieldConfig) {
|
|
23
|
+
fieldConfig = this.formConfiguration.fields.find(x => x.field_code === fieldCode);
|
|
24
|
+
this.fieldConfigCache[fieldCode] = fieldConfig;
|
|
25
|
+
}
|
|
26
|
+
return fieldConfig;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb25maWd1cmF0aW9uLXV0aWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZm9ybS1jb25maWd1cmF0aW9uL2Zvcm0tY29uZmlndXJhdGlvbi11dGlsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUd2QyxNQUFNLE9BQU8sK0JBQStCO0lBQTVDO1FBR0UscUJBQWdCLEdBQWEsRUFBRSxDQUFDO0lBNEJsQyxDQUFDO0lBMUJDLFVBQVUsQ0FBQyw0QkFBMEQsRUFBRSxRQUFhO1FBQ2xGLE9BQU8sNEJBQTRCO2FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ1AsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRCxjQUFjLENBQUMsU0FBYztRQUMzQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLFdBQVcsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZSB9IGZyb20gJy4vZm9ybS1jb25maWd1cmF0aW9uLWZvcm0uc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtQ29uZmlndXJhdGlvblV0aWxpdHlTZXJ2aWNlIHtcblxuICBmb3JtQ29uZmlndXJhdGlvbjogYW55O1xuICBmaWVsZENvbmZpZ0NhY2hlOiBhbnkgPSA8YW55Pnt9O1xuXG4gIGluaXRpYWxpemUoZm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZTogRm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZSwgZm9ybUNvZGU6IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmb3JtQ29uZmlndXJhdGlvbkZvcm1TZXJ2aWNlXG4gICAgICAuc2hvdyhmb3JtQ29kZSlcbiAgICAgIC5waXBlKG1hcChyZXMgPT4ge1xuICAgICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uID0gcmVzLml0ZW07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSkpXG4gIH1cblxuICBnZXRGaWVsZFJlcXVpcmVkKGZpZWxkQ29kZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmllbGRDb25maWcoZmllbGRDb2RlKT8uaXNfcmVxdWlyZWQgPz8gZmFsc2U7XG4gIH1cblxuICBnZXRGaWVsZEVuYWJsZWQoZmllbGRDb2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGaWVsZENvbmZpZyhmaWVsZENvZGUpPy5pc19lbmFibGVkID8/IGZhbHNlO1xuICB9XG5cbiAgZ2V0RmllbGRDb25maWcoZmllbGRDb2RlOiBhbnkpIHtcbiAgICBsZXQgZmllbGRDb25maWcgPSB0aGlzLmZpZWxkQ29uZmlnQ2FjaGVbZmllbGRDb2RlXTtcbiAgICBpZiAoIWZpZWxkQ29uZmlnKSB7XG4gICAgICBmaWVsZENvbmZpZyA9ICh0aGlzLmZvcm1Db25maWd1cmF0aW9uLmZpZWxkcyBhcyBhbnlbXSkuZmluZCh4ID0+IHguZmllbGRfY29kZSA9PT0gZmllbGRDb2RlKTtcbiAgICAgIHRoaXMuZmllbGRDb25maWdDYWNoZVtmaWVsZENvZGVdID0gZmllbGRDb25maWc7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZENvbmZpZztcbiAgfVxuXG59XG4iXX0=
|
|
@@ -2,7 +2,9 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { RoleFormComponent } from './role-form.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/material/dialog";
|
|
5
|
-
import * as i2 from "@angular/
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/material/tooltip";
|
|
7
|
+
import * as i4 from "../techlify-icon/techlify-icon.component";
|
|
6
8
|
export class RoleFormButtonComponent {
|
|
7
9
|
constructor(dialog) {
|
|
8
10
|
this.dialog = dialog;
|
|
@@ -23,11 +25,11 @@ export class RoleFormButtonComponent {
|
|
|
23
25
|
});
|
|
24
26
|
}
|
|
25
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RoleFormButtonComponent, selector: "app-role-form-button", inputs: { config: "config", clientId: "clientId", isUpdate: "isUpdate", role: "role" }, outputs: { success: "success" }, ngImport: i0, template: "<
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RoleFormButtonComponent, selector: "app-role-form-button", inputs: { config: "config", clientId: "clientId", isUpdate: "isUpdate", role: "role" }, outputs: { success: "success" }, ngImport: i0, template: "<app-techlify-icon *ngIf=\"!isUpdate\" name=\"add\" (click)=\"openForm()\" class=\"clickable\"\n matTooltip=\"Add\"></app-techlify-icon>\n<app-techlify-icon *ngIf=\"isUpdate\" name=\"edit\" (click)=\"openForm()\" class=\"clickable\"\n matTooltip=\"Edit\"></app-techlify-icon>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
|
|
27
29
|
}
|
|
28
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormButtonComponent, decorators: [{
|
|
29
31
|
type: Component,
|
|
30
|
-
args: [{ selector: 'app-role-form-button', template: "<
|
|
32
|
+
args: [{ selector: 'app-role-form-button', template: "<app-techlify-icon *ngIf=\"!isUpdate\" name=\"add\" (click)=\"openForm()\" class=\"clickable\"\n matTooltip=\"Add\"></app-techlify-icon>\n<app-techlify-icon *ngIf=\"isUpdate\" name=\"edit\" (click)=\"openForm()\" class=\"clickable\"\n matTooltip=\"Edit\"></app-techlify-icon>" }]
|
|
31
33
|
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { config: [{
|
|
32
34
|
type: Input
|
|
33
35
|
}], clientId: [{
|
|
@@ -39,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
39
41
|
}], success: [{
|
|
40
42
|
type: Output
|
|
41
43
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFRMUQsTUFBTSxPQUFPLHVCQUF1QjtJQU9oQyxZQUNZLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFIbkIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFNdkMsQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNsRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDRixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzNCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBM0JRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHFMQ1ZwQyx1UkFHd0M7OzRGRE8zQix1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0ksc0JBQXNCOzhFQUl2QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSb2xlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vcm9sZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVVzZXJDb25maWcgfSBmcm9tICcuLi91c2VyLWNvbmZpZyc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcm9sZS1mb3JtLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JvbGUtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSb2xlRm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29uZmlnOiBNdWx0aVVzZXJDb25maWc7XG4gICAgQElucHV0KCkgY2xpZW50SWQ6IGFueTtcbiAgICBASW5wdXQoKSBpc1VwZGF0ZTogYW55O1xuICAgIEBJbnB1dCgpIHJvbGU6IGFueTtcbiAgICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBvcGVuRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihSb2xlRm9ybUNvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc1MDBweCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgcm9sZTogdGhpcy5yb2xlLFxuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFwcC10ZWNobGlmeS1pY29uICpuZ0lmPVwiIWlzVXBkYXRlXCIgbmFtZT1cImFkZFwiIChjbGljayk9XCJvcGVuRm9ybSgpXCIgY2xhc3M9XCJjbGlja2FibGVcIlxuICBtYXRUb29sdGlwPVwiQWRkXCI+PC9hcHAtdGVjaGxpZnktaWNvbj5cbjxhcHAtdGVjaGxpZnktaWNvbiAqbmdJZj1cImlzVXBkYXRlXCIgbmFtZT1cImVkaXRcIiAoY2xpY2spPVwib3BlbkZvcm0oKVwiIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgbWF0VG9vbHRpcD1cIkVkaXRcIj48L2FwcC10ZWNobGlmeS1pY29uPiJdfQ==
|
|
@@ -11,6 +11,7 @@ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
|
11
11
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
12
12
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
13
13
|
import { RoleFormButtonComponent } from './role-form-button.component';
|
|
14
|
+
import { TechlifyIconModule } from '../techlify-icon/techlify-icon.module';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
export class RoleModule {
|
|
16
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -23,7 +24,8 @@ export class RoleModule {
|
|
|
23
24
|
FormsModule,
|
|
24
25
|
ReactiveFormsModule,
|
|
25
26
|
InfiniteScrollModule,
|
|
26
|
-
MatProgressBarModule
|
|
27
|
+
MatProgressBarModule,
|
|
28
|
+
TechlifyIconModule], exports: [RolesViewAllComponent,
|
|
27
29
|
RoleFormButtonComponent,
|
|
28
30
|
RoleFormComponent] }); }
|
|
29
31
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, imports: [CommonModule,
|
|
@@ -33,7 +35,8 @@ export class RoleModule {
|
|
|
33
35
|
FormsModule,
|
|
34
36
|
ReactiveFormsModule,
|
|
35
37
|
InfiniteScrollModule,
|
|
36
|
-
MatProgressBarModule
|
|
38
|
+
MatProgressBarModule,
|
|
39
|
+
TechlifyIconModule] }); }
|
|
37
40
|
}
|
|
38
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, decorators: [{
|
|
39
42
|
type: NgModule,
|
|
@@ -46,7 +49,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46
49
|
FormsModule,
|
|
47
50
|
ReactiveFormsModule,
|
|
48
51
|
InfiniteScrollModule,
|
|
49
|
-
MatProgressBarModule
|
|
52
|
+
MatProgressBarModule,
|
|
53
|
+
TechlifyIconModule
|
|
50
54
|
],
|
|
51
55
|
declarations: [
|
|
52
56
|
RoleFormComponent,
|
|
@@ -60,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
60
64
|
]
|
|
61
65
|
}]
|
|
62
66
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLHNCQUFzQjtBQUN0QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUF5QjNFLE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFWZixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLHVCQUF1QixhQWJ2QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGtCQUFrQixhQVFsQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtnSEFHWixVQUFVLFlBckJmLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsa0JBQWtCOzs0RkFhYixVQUFVO2tCQXZCdEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQix1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiBDb21wb25lbnRzICovXG5pbXBvcnQgeyBSb2xlc1ZpZXdBbGxDb21wb25lbnQgfSBmcm9tICcuL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudCc7XG5cbi8qIFJvdXRpbmcgUHJvdmlkZXIgKi9cbmltcG9ydCB7IFJvbGVSb3V0aW5nUHJvdmlkZXIgfSBmcm9tICcuL3JvbGUucm91dGVzJztcbmltcG9ydCB7IFJvbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9yb2xlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBSb2xlRm9ybUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vcm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlJY29uTW9kdWxlIH0gZnJvbSAnLi4vdGVjaGxpZnktaWNvbi90ZWNobGlmeS1pY29uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvbGVSb3V0aW5nUHJvdmlkZXIsXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgICAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBUZWNobGlmeUljb25Nb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBSb2xlRm9ybUNvbXBvbmVudCxcbiAgICAgICAgUm9sZXNWaWV3QWxsQ29tcG9uZW50LFxuICAgICAgICBSb2xlRm9ybUJ1dHRvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBSb2xlc1ZpZXdBbGxDb21wb25lbnQsXG4gICAgICAgIFJvbGVGb3JtQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBSb2xlRm9ybUNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUm9sZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -12,11 +12,13 @@ import * as i7 from "@angular/material/button";
|
|
|
12
12
|
import * as i8 from "@angular/material/icon";
|
|
13
13
|
import * as i9 from "@angular/material/table";
|
|
14
14
|
import * as i10 from "@angular/material/card";
|
|
15
|
-
import * as i11 from "@angular/material/
|
|
16
|
-
import * as i12 from "@angular/
|
|
17
|
-
import * as i13 from "@angular/flex-layout/
|
|
18
|
-
import * as i14 from "
|
|
19
|
-
import * as i15 from "
|
|
15
|
+
import * as i11 from "@angular/material/tooltip";
|
|
16
|
+
import * as i12 from "@angular/material/progress-bar";
|
|
17
|
+
import * as i13 from "@angular/flex-layout/flex";
|
|
18
|
+
import * as i14 from "@angular/flex-layout/extended";
|
|
19
|
+
import * as i15 from "ngx-infinite-scroll";
|
|
20
|
+
import * as i16 from "../techlify-icon/techlify-icon.component";
|
|
21
|
+
import * as i17 from "./role-form-button.component";
|
|
20
22
|
/**
|
|
21
23
|
* Component used to view a set of roles
|
|
22
24
|
*
|
|
@@ -115,12 +117,12 @@ export class RolesViewAllComponent {
|
|
|
115
117
|
});
|
|
116
118
|
}
|
|
117
119
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RolesViewAllComponent, deps: [{ token: i1.HttpService }, { token: i2.ActivatedRoute }, { token: i1.CredentialsService }, { token: i3.UserConfigService }, { token: i4.MatDialog }, { token: i5.CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RolesViewAllComponent, selector: "roles-view-all", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\">\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0\">\n Manage Roles\n </h3>\n <app-role-form-button (success)=\"reload()\" class=\"
|
|
120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RolesViewAllComponent, selector: "roles-view-all", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\">\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0\">\n Manage Roles\n </h3>\n <app-role-form-button (success)=\"reload()\" class=\"mx-2\"\n *ngIf=\"(!config.roleConfig.disableAddRole) && currentUserService?.hasPermission('role_create')\"\n [clientId]=\"clientId\"></app-role-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../users']\" *ngIf=\"!config.roleConfig.disableUsers\"\n class=\"ml-1\">\n <mat-icon>people</mat-icon>\n Users\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"!config.roleConfig.disablePermissions\" class=\"ml-1\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"roles\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" aria-describedby=\"Roles\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Label Column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef> Label </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{element?.label}}</p>\n <span class=\"badge\"\n [ngClass]=\"{'badge-primary':element?.client_id == null, 'badge-secondary': element?.client_id != null}\">\n {{(element?.client_id == null) ? 'App role' : 'Custom role'}}\n </span>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.description }} </td>\n </ng-container>\n\n <!-- Module Column -->\n <ng-container matColumnDef=\"module\">\n <th mat-header-cell *matHeaderCellDef> Module </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.module?.name}} </td>\n </ng-container>\n\n <!-- Editable Column -->\n <ng-container matColumnDef=\"editable\">\n <th mat-header-cell *matHeaderCellDef> Editable </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_editable\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_editable\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- Users Column -->\n <ng-container matColumnDef=\"users\">\n <th mat-header-cell *matHeaderCellDef> # Users </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.role_users_count}} </td>\n </ng-container>\n\n <!-- Permissions Column -->\n <ng-container matColumnDef=\"permissions\">\n <th mat-header-cell *matHeaderCellDef> Permissions </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.permissions_count}} </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let role\" class=\"text-muted\">\n <div fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" matTooltip=\"view\" class=\"clickable\"\n [routerLink]=\"['../roles/', role?.id]\"></app-techlify-icon>\n <app-role-form-button class=\"ml-1\" (success)=\"reload()\" [role]=\"role\" [isUpdate]=\"true\"\n *ngIf=\"(isAdminUser || role.is_editable) && currentUserService.hasPermission('role_update')\"\n [clientId]=\"clientId\"></app-role-form-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n\n</div>", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i13.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i13.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i14.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i15.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i16.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: i17.RoleFormButtonComponent, selector: "app-role-form-button", inputs: ["config", "clientId", "isUpdate", "role"], outputs: ["success"] }] }); }
|
|
119
121
|
}
|
|
120
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RolesViewAllComponent, decorators: [{
|
|
121
123
|
type: Component,
|
|
122
|
-
args: [{ selector: 'roles-view-all', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\">\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0\">\n Manage Roles\n </h3>\n <app-role-form-button (success)=\"reload()\" class=\"
|
|
124
|
+
args: [{ selector: 'roles-view-all', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\">\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0\">\n Manage Roles\n </h3>\n <app-role-form-button (success)=\"reload()\" class=\"mx-2\"\n *ngIf=\"(!config.roleConfig.disableAddRole) && currentUserService?.hasPermission('role_create')\"\n [clientId]=\"clientId\"></app-role-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../users']\" *ngIf=\"!config.roleConfig.disableUsers\"\n class=\"ml-1\">\n <mat-icon>people</mat-icon>\n Users\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"!config.roleConfig.disablePermissions\" class=\"ml-1\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n </mat-card-content>\n </mat-card>\n\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"roles\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" aria-describedby=\"Roles\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Label Column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef> Label </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{element?.label}}</p>\n <span class=\"badge\"\n [ngClass]=\"{'badge-primary':element?.client_id == null, 'badge-secondary': element?.client_id != null}\">\n {{(element?.client_id == null) ? 'App role' : 'Custom role'}}\n </span>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.description }} </td>\n </ng-container>\n\n <!-- Module Column -->\n <ng-container matColumnDef=\"module\">\n <th mat-header-cell *matHeaderCellDef> Module </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.module?.name}} </td>\n </ng-container>\n\n <!-- Editable Column -->\n <ng-container matColumnDef=\"editable\">\n <th mat-header-cell *matHeaderCellDef> Editable </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_editable\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_editable\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- Users Column -->\n <ng-container matColumnDef=\"users\">\n <th mat-header-cell *matHeaderCellDef> # Users </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.role_users_count}} </td>\n </ng-container>\n\n <!-- Permissions Column -->\n <ng-container matColumnDef=\"permissions\">\n <th mat-header-cell *matHeaderCellDef> Permissions </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.permissions_count}} </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let role\" class=\"text-muted\">\n <div fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" matTooltip=\"view\" class=\"clickable\"\n [routerLink]=\"['../roles/', role?.id]\"></app-techlify-icon>\n <app-role-form-button class=\"ml-1\" (success)=\"reload()\" [role]=\"role\" [isUpdate]=\"true\"\n *ngIf=\"(isAdminUser || role.is_editable) && currentUserService.hasPermission('role_update')\"\n [clientId]=\"clientId\"></app-role-form-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n\n</div>" }]
|
|
123
125
|
}], ctorParameters: () => [{ type: i1.HttpService }, { type: i2.ActivatedRoute }, { type: i1.CredentialsService }, { type: i3.UserConfigService }, { type: i4.MatDialog }, { type: i5.CurrentUserService }], propDecorators: { clientId: [{
|
|
124
126
|
type: Input
|
|
125
127
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtdmlldy1hbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yb2xlL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9yb2xlcy12aWV3LWFsbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJMUQ7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBaUJoQyxZQUNVLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDbkMsTUFBaUIsRUFDbEIsa0JBQXNDO1FBTHJDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDbEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXRCL0MsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBYTtZQUMzQixPQUFPO1lBQ1AsT0FBTztZQUNQLGFBQWE7WUFDYixRQUFRO1lBQ1IsT0FBTztZQUNQLGFBQWE7WUFDYixTQUFTO1NBQ1YsQ0FBQztRQUNGLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBWWhCLElBQUksQ0FBQyxN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U0FDRixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBekdVLHFCQUFxQjttR0FBckIscUJBQXFCLHdGQ3RCbEMsbTdJQW1HTTs7NEZEN0VPLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxnQkFBZ0I7dU9BaUJqQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6Y29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgUm9sZSB9IGZyb20gJy4vcm9sZS5tb2RlbCc7XG5pbXBvcnQgeyBNdWx0aVVzZXJDb25maWcgfSBmcm9tICcuLi91c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBVc2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSb2xlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vcm9sZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVkZW50aWFsc1NlcnZpY2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBDdXJyZW50VXNlclNlcnZpY2UgfSBmcm9tICcuLi91c2VyJztcblxuLyoqXG4gKiBDb21wb25lbnQgdXNlZCB0byB2aWV3IGEgc2V0IG9mIHJvbGVzXG4gKlxuICogQGF1dGhvciBKb3NodWEgS2lzc29vblxuICogQHNpbmNlIDIwMTYwODE4XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGVzLXZpZXctYWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGVzLXZpZXctYWxsLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSb2xlc1ZpZXdBbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByb2xlczogUm9sZVtdID0gW107XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdpbmRleCcsXG4gICAgJ2xhYmVsJyxcbiAgICAnZGVzY3JpcHRpb24nLFxuICAgICdtb2R1bGUnLFxuICAgICd1c2VycycsXG4gICAgJ3Blcm1pc3Npb25zJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcbiAgdG90YWxJdGVtcyA9IDA7XG4gIGN1cnJlbnRQYWdlID0gMTtcbiAgaXNXb3JraW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsaWVudElkOiBudW1iZXI7XG4gIGNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjcmVkZW50aWFsc1NlcnZpY2U6IENyZWRlbnRpYWxzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlckNvbmZpZ1NlcnZpY2U6IFVzZXJDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHVibGljIGN1cnJlbnRVc2VyU2VydmljZTogQ3VycmVudFVzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy51c2VyQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgfVxuXG4gIGdldCBpc0FkbWluVXNlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuY3JlZGVudGlhbHNTZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VyPy51c2VyX3R5cGVfaWQgPT09IDEpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc0FkbWluVXNlcikge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICAgICAnaW5kZXgnLFxuICAgICAgICAnbGFiZWwnLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgJ2VkaXRhYmxlJyxcbiAgICAgICAgJ3VzZXJzJyxcbiAgICAgICAgJ2FjdGlvbnMnLFxuICAgICAgICAncGVybWlzc2lvbnMnXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICghKHRoaXMuY29uZmlnPy5yb2xlQ29uZmlnPy5zaG93TW9kdWxlU2VsZWN0b3JPbkZvcm0pKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ21vZHVsZScpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7XG4gICAgICB3aXRoQ291bnQ6ICdwZXJtaXNzaW9ucycsXG4gICAgICBzb3J0X2J5OiAnbGFiZWx8YXNjJyxcbiAgICAgIGlzX3N1YnNjcmliZWQ6IHRydWVcbiAgICB9O1xuICAgIGlmICh0aGlzLmNsaWVudElkKSB7XG4gICAgICBmaWx0ZXJzLmNsaWVudF9pZCA9IHRoaXMuY2xpZW50SWQ7XG4gICAgfVxuICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9yb2xlcycsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzLnRvdGFsO1xuICAgICAgICB0aGlzLnJvbGVzID0gdGhpcy5yb2xlcy5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZWxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlcyA9IFtdO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nICYmIHRoaXMudG90YWxJdGVtcyA+IHRoaXMucm9sZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlICs9IDE7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlT3JNb2RpZnlSb2xlKHJvbGU/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJvbGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzUwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cIm0tMlwiPlxuICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgPGgzIGNsYXNzPVwibS0wXCI+XG4gICAgICAgIE1hbmFnZSBSb2xlc1xuICAgICAgPC9oMz5cbiAgICAgIDxhcHAtcm9sZS1mb3JtLWJ1dHRvbiAoc3VjY2Vzcyk9XCJyZWxvYWQoKVwiIGNsYXNzPVwibXQtMlwiXG4gICAgICAgICpuZ0lmPVwiKCFjb25maWcucm9sZUNvbmZpZy5kaXNhYmxlQWRkUm9sZSkgJiYgY3VycmVudFVzZXJTZXJ2aWNlPy5oYXNQZXJtaXNzaW9uKCdyb2xlX2NyZWF0ZScpXCJcbiAgICAgICAgW2NsaWVudElkXT1cImNsaWVudElkXCI+PC9hcHAtcm9sZS1mb3JtLWJ1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vdXNlcnMnXVwiICpuZ0lmPVwiIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVVc2Vyc1wiXG4gICAgICAgIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICA8bWF0LWljb24+cGVvcGxlPC9tYXQtaWNvbj5cbiAgICAgICAgVXNlcnNcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi9yb2xlLXBlcm1pc3Npb25zJ11cIlxuICAgICAgICAqbmdJZj1cIiFjb25maWcucm9sZUNvbmZpZy5kaXNhYmxlUGVybWlzc2lvbnNcIiBjbGFzcz1cIm1sLTFcIj5cbiAgICAgICAgPG1hdC1pY29uPmxvY2s8L21hdC1pY29uPlxuICAgICAgICBSb2xlIFBlcm1pc3Npb25zXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG5cbiAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwibXQtMiBwLTBcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwicm9sZXNcIiBjbGFzcz1cInctMTAwXCIgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiXG4gICAgICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiUm9sZXNcIj5cblxuICAgICAgICA8IS0tIEluZGV4IENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiPiB7eyBpKzEgfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBMYWJlbCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGFiZWxcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMYWJlbCA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj57e2VsZW1lbnQ/LmxhYmVsfX08L3A+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydiYWRnZS1wcmltYXJ5JzplbGVtZW50Py5jbGllbnRfaWQgPT0gbnVsbCwgJ2JhZGdlLXNlY29uZGFyeSc6IGVsZW1lbnQ/LmNsaWVudF9pZCAhPSBudWxsfVwiPlxuICAgICAgICAgICAgICB7eyhlbGVtZW50Py5jbGllbnRfaWQgPT0gbnVsbCkgPyAnQXBwIHJvbGUnIDogJ0N1c3RvbSByb2xlJ319XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXNjcmlwdGlvbiA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8uZGVzY3JpcHRpb24gfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBNb2R1bGUgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm1vZHVsZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE1vZHVsZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ubW9kdWxlPy5uYW1lfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBFZGl0YWJsZSBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZWRpdGFibGVcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBFZGl0YWJsZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVsZW1lbnQ/LmlzX2VkaXRhYmxlXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXhzXCI+WWVzPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZWxlbWVudD8uaXNfZWRpdGFibGVcIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi14c1wiPk5vPC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gVXNlcnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXJzXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyBVc2VycyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ucm9sZV91c2Vyc19jb3VudH19IDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUGVybWlzc2lvbnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUGVybWlzc2lvbnMgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQ/LnBlcm1pc3Npb25zX2NvdW50fX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb2xlXCIgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi9yb2xlcy8nLCByb2xlPy5pZF1cIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9yZWRfZXllPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGFwcC1yb2xlLWZvcm0tYnV0dG9uIChzdWNjZXNzKT1cInJlbG9hZCgpXCIgW3JvbGVdPVwicm9sZVwiIFtpc1VwZGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoaXNBZG1pblVzZXIgfHwgcm9sZS5pc19lZGl0YWJsZSkgJiYgY3VycmVudFVzZXJTZXJ2aWNlLmhhc1Blcm1pc3Npb24oJ3JvbGVfdXBkYXRlJylcIlxuICAgICAgICAgICAgICBbY2xpZW50SWRdPVwiY2xpZW50SWRcIj48L2FwcC1yb2xlLWZvcm0tYnV0dG9uPlxuXG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuPC9kaXY+Il19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtdmlldy1hbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yb2xlL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9yb2xlcy12aWV3LWFsbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUkxRDs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFpQmhDLFlBQ1UsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsa0JBQXNDLEVBQ3ZDLGlCQUFvQyxFQUNuQyxNQUFpQixFQUNsQixrQkFBc0M7UUFMckMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdEIvQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFhO1lBQzNCLE9BQU87WUFDUCxPQUFPO1lBQ1AsYUFBYTtZQUNiLFFBQVE7WUFDUixPQUFPO1lBQ1AsYUFBYTtZQUNiLFNBQVM7U0FDVixDQUFDO1FBQ0YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFZaEIsSUFBSSxDQUFD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QjtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F6R1UscUJBQXFCO21HQUFyQixxQkFBcUIsd0ZDdEJsQywwZ0pBbUdNOzs0RkQ3RU8scUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGdCQUFnQjt1T0FpQmpCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpjb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi9yb2xlLm1vZGVsJztcbmltcG9ydCB7IE11bHRpVXNlckNvbmZpZyB9IGZyb20gJy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7IFVzZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1jb25maWcnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFJvbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9yb2xlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSwgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXInO1xuXG4vKipcbiAqIENvbXBvbmVudCB1c2VkIHRvIHZpZXcgYSBzZXQgb2Ygcm9sZXNcbiAqXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXG4gKiBAc2luY2UgMjAxNjA4MThcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sZXMtdmlldy1hbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm9sZXMtdmlldy1hbGwuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVzVmlld0FsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvbGVzOiBSb2xlW10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXG4gICAgJ2luZGV4JyxcbiAgICAnbGFiZWwnLFxuICAgICdkZXNjcmlwdGlvbicsXG4gICAgJ21vZHVsZScsXG4gICAgJ3VzZXJzJyxcbiAgICAncGVybWlzc2lvbnMnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuICB0b3RhbEl0ZW1zID0gMDtcbiAgY3VycmVudFBhZ2UgPSAxO1xuICBpc1dvcmtpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xpZW50SWQ6IG51bWJlcjtcbiAgY29uZmlnOiBNdWx0aVVzZXJDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxzU2VydmljZTogQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyQ29uZmlnU2VydmljZTogVXNlckNvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwdWJsaWMgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICB9XG5cbiAgZ2V0IGlzQWRtaW5Vc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5jcmVkZW50aWFsc1NlcnZpY2UuY3JlZGVudGlhbHM/LnVzZXI/LnVzZXJfdHlwZV9pZCA9PT0gMSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmlzQWRtaW5Vc2VyKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXG4gICAgICAgICdpbmRleCcsXG4gICAgICAgICdsYWJlbCcsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdtb2R1bGUnLFxuICAgICAgICAnZWRpdGFibGUnLFxuICAgICAgICAndXNlcnMnLFxuICAgICAgICAnYWN0aW9ucycsXG4gICAgICAgICdwZXJtaXNzaW9ucydcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKCEodGhpcy5jb25maWc/LnJvbGVDb25maWc/LnNob3dNb2R1bGVTZWxlY3Rvck9uRm9ybSkpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucy5maWx0ZXIoeCA9PiB4ICE9PSAnbW9kdWxlJyk7XG4gICAgfVxuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHtcbiAgICAgIHdpdGhDb3VudDogJ3Blcm1pc3Npb25zJyxcbiAgICAgIHNvcnRfYnk6ICdsYWJlbHxhc2MnLFxuICAgICAgaXNfc3Vic2NyaWJlZDogdHJ1ZVxuICAgIH07XG4gICAgaWYgKHRoaXMuY2xpZW50SWQpIHtcbiAgICAgIGZpbHRlcnMuY2xpZW50X2lkID0gdGhpcy5jbGllbnRJZDtcbiAgICB9XG4gICAgdGhpcy5odHRwLmdldCgnYXBpL3JvbGVzJywgeyBwYXJhbXM6IGZpbHRlcnMgfSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXMudG90YWw7XG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLnJvbGVzLmNvbmNhdChyZXMuZGF0YSk7XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvbGVzID0gW107XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZykge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcgJiYgdGhpcy50b3RhbEl0ZW1zID4gdGhpcy5yb2xlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVPck1vZGlmeVJvbGUocm9sZT86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUm9sZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICByb2xlLFxuICAgICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibS0yXCI+XG4gIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8aDMgY2xhc3M9XCJtLTBcIj5cbiAgICAgICAgTWFuYWdlIFJvbGVzXG4gICAgICA8L2gzPlxuICAgICAgPGFwcC1yb2xlLWZvcm0tYnV0dG9uIChzdWNjZXNzKT1cInJlbG9hZCgpXCIgY2xhc3M9XCJteC0yXCJcbiAgICAgICAgKm5nSWY9XCIoIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVBZGRSb2xlKSAmJiBjdXJyZW50VXNlclNlcnZpY2U/Lmhhc1Blcm1pc3Npb24oJ3JvbGVfY3JlYXRlJylcIlxuICAgICAgICBbY2xpZW50SWRdPVwiY2xpZW50SWRcIj48L2FwcC1yb2xlLWZvcm0tYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi91c2VycyddXCIgKm5nSWY9XCIhY29uZmlnLnJvbGVDb25maWcuZGlzYWJsZVVzZXJzXCJcbiAgICAgICAgY2xhc3M9XCJtbC0xXCI+XG4gICAgICAgIDxtYXQtaWNvbj5wZW9wbGU8L21hdC1pY29uPlxuICAgICAgICBVc2Vyc1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbJy4uL3JvbGUtcGVybWlzc2lvbnMnXVwiXG4gICAgICAgICpuZ0lmPVwiIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVQZXJtaXNzaW9uc1wiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICA8bWF0LWljb24+bG9jazwvbWF0LWljb24+XG4gICAgICAgIFJvbGUgUGVybWlzc2lvbnNcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJtdC0yIHAtMFwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJyb2xlc1wiIGNsYXNzPVwidy0xMDBcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJSb2xlc1wiPlxuXG4gICAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIExhYmVsIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYWJlbFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IExhYmVsIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7ZWxlbWVudD8ubGFiZWx9fTwvcD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2JhZGdlLXByaW1hcnknOmVsZW1lbnQ/LmNsaWVudF9pZCA9PSBudWxsLCAnYmFkZ2Utc2Vjb25kYXJ5JzogZWxlbWVudD8uY2xpZW50X2lkICE9IG51bGx9XCI+XG4gICAgICAgICAgICAgIHt7KGVsZW1lbnQ/LmNsaWVudF9pZCA9PSBudWxsKSA/ICdBcHAgcm9sZScgOiAnQ3VzdG9tIHJvbGUnfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERlc2NyaXB0aW9uIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5kZXNjcmlwdGlvbiB9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIE1vZHVsZSBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibW9kdWxlXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTW9kdWxlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5tb2R1bGU/Lm5hbWV9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEVkaXRhYmxlIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJlZGl0YWJsZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEVkaXRhYmxlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZWxlbWVudD8uaXNfZWRpdGFibGVcIiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4teHNcIj5ZZXM8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFlbGVtZW50Py5pc19lZGl0YWJsZVwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXhzXCI+Tm88L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBVc2VycyBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlcnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIFVzZXJzIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5yb2xlX3VzZXJzX2NvdW50fX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBQZXJtaXNzaW9ucyBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicGVybWlzc2lvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBQZXJtaXNzaW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ucGVybWlzc2lvbnNfY291bnR9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEFjdGlvbnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvbGVcIiBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWljb24gbmFtZT1cInZpZXdcIiBtYXRUb29sdGlwPVwidmlld1wiIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4uL3JvbGVzLycsIHJvbGU/LmlkXVwiPjwvYXBwLXRlY2hsaWZ5LWljb24+XG4gICAgICAgICAgICAgIDxhcHAtcm9sZS1mb3JtLWJ1dHRvbiBjbGFzcz1cIm1sLTFcIiAoc3VjY2Vzcyk9XCJyZWxvYWQoKVwiIFtyb2xlXT1cInJvbGVcIiBbaXNVcGRhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoaXNBZG1pblVzZXIgfHwgcm9sZS5pc19lZGl0YWJsZSkgJiYgY3VycmVudFVzZXJTZXJ2aWNlLmhhc1Blcm1pc3Npb24oJ3JvbGVfdXBkYXRlJylcIlxuICAgICAgICAgICAgICAgIFtjbGllbnRJZF09XCJjbGllbnRJZFwiPjwvYXBwLXJvbGUtZm9ybS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNXb3JraW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG48L2Rpdj4iXX0=
|