ngx-techlify-core 18.18.1 → 18.20.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.
Files changed (33) hide show
  1. package/esm2022/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.mjs +6 -4
  2. package/esm2022/lib/company-information/company-info-display/company-info-display.component.mjs +18 -4
  3. package/esm2022/lib/company-information/company-information/company-information.component.mjs +42 -15
  4. package/esm2022/lib/company-information/tenant-form-button/tenant-form-button.component.mjs +36 -0
  5. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +11 -12
  6. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.component.mjs +1 -1
  7. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +9 -5
  8. package/esm2022/lib/user/current-user.service.mjs +5 -4
  9. package/esm2022/lib/user/index.mjs +4 -1
  10. package/esm2022/lib/user/user-form.component.mjs +2 -2
  11. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +28 -0
  12. package/esm2022/lib/user/user.module.mjs +21 -24
  13. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +28 -0
  14. package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +32 -0
  15. package/esm2022/lib/user-config/user-config.service.mjs +3 -3
  16. package/esm2022/public-api.mjs +2 -1
  17. package/fesm2022/ngx-techlify-core.mjs +556 -415
  18. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  19. package/lib/company-information/company-info-display/company-info-display.component.d.ts +5 -1
  20. package/lib/company-information/company-information/company-information.component.d.ts +6 -2
  21. package/lib/company-information/tenant-form-button/tenant-form-button.component.d.ts +14 -0
  22. package/lib/entity-files/entity-files-view-all.component.d.ts +2 -1
  23. package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +3 -2
  24. package/lib/user/current-user.service.d.ts +2 -1
  25. package/lib/user/index.d.ts +3 -0
  26. package/lib/user/user-form.component.d.ts +2 -2
  27. package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +10 -0
  28. package/lib/user/user.module.d.ts +20 -21
  29. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +10 -0
  30. package/lib/user-clients-list/user-clients-list.module.d.ts +11 -0
  31. package/lib/user-config/user-config.service.d.ts +2 -2
  32. package/package.json +1 -1
  33. package/public-api.d.ts +1 -0
@@ -3,6 +3,7 @@ import { NgIf } from '@angular/common';
3
3
  import { MaterialModule } from '../../../material.module';
4
4
  import { TechlifyListingControllerInterface } from '../../../base-model';
5
5
  import { RouterLink } from '@angular/router';
6
+ import { TenantFormButtonComponent } from '../../../company-information/tenant-form-button/tenant-form-button.component';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../../company-information/client.service";
8
9
  import * as i2 from "@angular/material/icon";
@@ -43,14 +44,15 @@ export class TenantListWidgetComponent extends TechlifyListingControllerInterfac
43
44
  });
44
45
  }
45
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantListWidgetComponent, deps: [{ token: i1.ClientService }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TenantListWidgetComponent, isStandalone: true, selector: "app-tenant-list-widget", usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content>\n <mat-card-title>Tenants</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.name }}</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?.users_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 element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['/app-admin/tenants', element?.id, 'view']\">\n visibility\n </mat-icon>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TenantListWidgetComponent, isStandalone: true, selector: "app-tenant-list-widget", usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content>\n <mat-card-title class=\"d-flex justify-content-start align-items-center gap-2\">\n <h4 class=\"mb-0\">Tenants</h4>\n <app-tenant-form-button [isAppAdmin]=\"true\" class=\"mt-2\" (saved)=\"reload()\">\n </app-tenant-form-button>\n </mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.name }}</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?.users_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 element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['/app-admin/tenants', element?.id, 'view']\">\n visibility\n </mat-icon>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TenantFormButtonComponent, selector: "app-tenant-form-button", inputs: ["client", "isAppAdmin"], outputs: ["saved"] }] }); }
47
48
  }
48
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantListWidgetComponent, decorators: [{
49
50
  type: Component,
50
51
  args: [{ selector: 'app-tenant-list-widget', standalone: true, imports: [
51
52
  MaterialModule,
52
53
  NgIf,
53
- RouterLink
54
- ], template: "<mat-card>\n <mat-card-content>\n <mat-card-title>Tenants</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.name }}</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?.users_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 element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['/app-admin/tenants', element?.id, 'view']\">\n visibility\n </mat-icon>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n" }]
54
+ RouterLink,
55
+ TenantFormButtonComponent
56
+ ], template: "<mat-card>\n <mat-card-content>\n <mat-card-title class=\"d-flex justify-content-start align-items-center gap-2\">\n <h4 class=\"mb-0\">Tenants</h4>\n <app-tenant-form-button [isAppAdmin]=\"true\" class=\"mt-2\" (saved)=\"reload()\">\n </app-tenant-form-button>\n </mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\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 <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.name }}</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?.users_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 element\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['/app-admin/tenants', element?.id, 'view']\">\n visibility\n </mat-icon>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n" }]
55
57
  }], ctorParameters: () => [{ type: i1.ClientService }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXBwLWFkbWluL3RlbmFudC90ZW5hbnQtbGlzdC13aWRnZXQvdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXBwLWFkbWluL3RlbmFudC90ZW5hbnQtbGlzdC13aWRnZXQvdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFhM0MsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtDQUFrQztJQVEvRSxZQUFvQixPQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFQMUMscUJBQWdCLEdBQWE7WUFDM0IsR0FBRztZQUNILE1BQU07WUFDTixPQUFPO1lBQ1AsU0FBUztTQUNWLENBQUM7SUFJRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFRO1lBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUk7WUFDekMsU0FBUyxFQUFFLE9BQU87U0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxFQUFFLFNBQVMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbENVLHlCQUF5QjttR0FBekIseUJBQXlCLHlHQ2xCdEMseWlEQXdDQSx5REQ3QkksY0FBYyw4bkRBQ2QsSUFBSSw2RkFDSixVQUFVOzs0RkFLRCx5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLElBQUk7d0JBQ0osVUFBVTtxQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi4vLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7VGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZX0gZnJvbSAnLi4vLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQge0NsaWVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBhbnktaW5mb3JtYXRpb24vY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVuYW50LWxpc3Qtd2lkZ2V0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgUm91dGVyTGlua1xuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlbmFudC1saXN0LXdpZGdldC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TGlzdFdpZGdldENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnIycsXG4gICAgJ05hbWUnLFxuICAgICdVc2VycycsXG4gICAgJ0FjdGlvbnMnXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBDbGllbnRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxuICAgICAgbnVtX2l0ZW1zOiB0aGlzLnBlclBhZ2UgKyAnfCcgKyB0aGlzLnBhZ2UsXG4gICAgICB3aXRoQ291bnQ6ICd1c2VycycsXG4gICAgfTtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHM/LmNvbmNhdChyZXNwb25zZT8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXNwb25zZT8ubGFzdF9wYWdlO1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZD5cbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1jYXJkLXRpdGxlPlRlbmFudHM8L21hdC1jYXJkLXRpdGxlPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicC0wXCI+XG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBjbGFzcz1cInctMTAwXCI+XG4gICAgICA8IS0tICMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCIjXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXg7XCI+IHt7IGkgKyAxIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBOYW1lIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiTmFtZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBOYW1lIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7IGVsZW1lbnQ/Lm5hbWUgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVXNlcnMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJVc2Vyc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBVc2VycyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LnVzZXJzX2NvdW50IH19PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEFjdGlvbnMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJBY3Rpb25zXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbnMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtyb3V0ZXJMaW5rXT1cIlsnL2FwcC1hZG1pbi90ZW5hbnRzJywgZWxlbWVudD8uaWQsICd2aWV3J11cIj5cbiAgICAgICAgICAgIHZpc2liaWxpdHlcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgIDwvdGFibGU+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXBwLWFkbWluL3RlbmFudC90ZW5hbnQtbGlzdC13aWRnZXQvdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXBwLWFkbWluL3RlbmFudC90ZW5hbnQtbGlzdC13aWRnZXQvdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHlCQUF5QixFQUMxQixNQUFNLDhFQUE4RSxDQUFDOzs7Ozs7O0FBY3RGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQ0FBa0M7SUFRL0UsWUFBb0IsT0FBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBUDFDLHFCQUFnQixHQUFhO1lBQzNCLEdBQUc7WUFDSCxNQUFNO1lBQ04sT0FBTztZQUNQLFNBQVM7U0FDVixDQUFDO0lBSUYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBUTtZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJO1lBQ3pDLFNBQVMsRUFBRSxPQUFPO1NBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxTQUFTLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQWxDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix5R0N0QnRDLDB3REE0Q0EseUREOUJJLGNBQWMsOG5EQUNkLElBQUksNkZBQ0osVUFBVSxvT0FDVix5QkFBeUI7OzRGQUtoQix5QkFBeUI7a0JBWnJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLElBQUk7d0JBQ0osVUFBVTt3QkFDVix5QkFBeUI7cUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdGVyaWFsTW9kdWxlfSBmcm9tICcuLi8uLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlfSBmcm9tICcuLi8uLi8uLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7Q2xpZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29tcGFueS1pbmZvcm1hdGlvbi9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBUZW5hbnRGb3JtQnV0dG9uQ29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL2NvbXBhbnktaW5mb3JtYXRpb24vdGVuYW50LWZvcm0tYnV0dG9uL3RlbmFudC1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVuYW50LWxpc3Qtd2lkZ2V0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgUm91dGVyTGluayxcbiAgICBUZW5hbnRGb3JtQnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnQtbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGVuYW50LWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRMaXN0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICcjJyxcbiAgICAnTmFtZScsXG4gICAgJ1VzZXJzJyxcbiAgICAnQWN0aW9ucydcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IENsaWVudFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UsXG4gICAgICBudW1faXRlbXM6IHRoaXMucGVyUGFnZSArICd8JyArIHRoaXMucGFnZSxcbiAgICAgIHdpdGhDb3VudDogJ3VzZXJzJyxcbiAgICB9O1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuaW5kZXgocGFyYW1zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscz8uY29uY2F0KHJlc3BvbnNlPy5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3BvbnNlPy5sYXN0X3BhZ2U7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgPGg0IGNsYXNzPVwibWItMFwiPlRlbmFudHM8L2g0PlxuICAgICAgPGFwcC10ZW5hbnQtZm9ybS1idXR0b24gW2lzQXBwQWRtaW5dPVwidHJ1ZVwiIGNsYXNzPVwibXQtMlwiIChzYXZlZCk9XCJyZWxvYWQoKVwiPlxuICAgICAgPC9hcHAtdGVuYW50LWZvcm0tYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTBcIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgIDwhLS0gIyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIiNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleDtcIj4ge3sgaSArIDEgfX0gPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIE5hbWUgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJOYW1lXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE5hbWUgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3sgZWxlbWVudD8ubmFtZSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBVc2VycyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIlVzZXJzXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFVzZXJzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8udXNlcnNfY291bnQgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW3JvdXRlckxpbmtdPVwiWycvYXBwLWFkbWluL3RlbmFudHMnLCBlbGVtZW50Py5pZCwgJ3ZpZXcnXVwiPlxuICAgICAgICAgICAgdmlzaWJpbGl0eVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuIl19
@@ -1,30 +1,44 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { NgIf } from '@angular/common';
3
+ import { TenantFormButtonComponent } from '../tenant-form-button/tenant-form-button.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../../user";
5
6
  export class CompanyInfoDisplayComponent {
6
7
  constructor(currentUserService) {
7
8
  this.currentUserService = currentUserService;
8
9
  this.forceReload = true;
10
+ this.isEditAllowed = false;
11
+ this.isAppAdmin = false;
9
12
  }
10
13
  ngOnInit() {
14
+ this.loadData();
15
+ }
16
+ loadData() {
11
17
  if (this.forceReload) {
12
18
  this.currentUserService.getUserObservable(true).subscribe((user) => {
13
19
  this.client = user?.client;
14
20
  });
15
21
  }
16
22
  }
23
+ onSaved(client) {
24
+ this.client = client;
25
+ }
17
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyInfoDisplayComponent, deps: [{ token: i1.CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CompanyInfoDisplayComponent, isStandalone: true, selector: "app-company-info-display", inputs: { client: "client", forceReload: "forceReload" }, ngImport: i0, template: "<div *ngIf=\"client\" class=\"d-flex justify-content-start align-items-start gap-2\">\n <img *ngIf=\"client?.logo\" [src]=\"client?.logo\" class=\"img img-thumbnail\" style=\"max-height: 75px\" alt=\"\">\n <div>\n <h3 class=\"text-dark mb-1\">{{ client?.name }}</h3>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.address\">\n {{ client?.address }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.phone\">\n {{ client?.phone }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.email\">\n {{ client?.email }}\n </p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CompanyInfoDisplayComponent, isStandalone: true, selector: "app-company-info-display", inputs: { client: "client", forceReload: "forceReload", isEditAllowed: "isEditAllowed", isAppAdmin: "isAppAdmin" }, ngImport: i0, template: "<div *ngIf=\"client\" class=\"d-flex justify-content-start align-items-start gap-2\">\n <img *ngIf=\"client?.logo\" [src]=\"client?.logo\" class=\"img img-thumbnail\" style=\"max-height: 75px\" alt=\"\">\n <div class=\"w-100\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <h3 class=\"text-dark mb-1\">{{ client?.name }}</h3>\n <app-tenant-form-button (saved)=\"onSaved($event)\" *ngIf=\"isEditAllowed\" [client]=\"client\" [isAppAdmin]=\"isAppAdmin\">\n </app-tenant-form-button>\n </div>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.address\">\n {{ client?.address }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.phone\">\n {{ client?.phone }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.email\">\n {{ client?.email }}\n </p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TenantFormButtonComponent, selector: "app-tenant-form-button", inputs: ["client", "isAppAdmin"], outputs: ["saved"] }] }); }
19
28
  }
20
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyInfoDisplayComponent, decorators: [{
21
30
  type: Component,
22
31
  args: [{ selector: 'app-company-info-display', standalone: true, imports: [
23
- NgIf
24
- ], template: "<div *ngIf=\"client\" class=\"d-flex justify-content-start align-items-start gap-2\">\n <img *ngIf=\"client?.logo\" [src]=\"client?.logo\" class=\"img img-thumbnail\" style=\"max-height: 75px\" alt=\"\">\n <div>\n <h3 class=\"text-dark mb-1\">{{ client?.name }}</h3>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.address\">\n {{ client?.address }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.phone\">\n {{ client?.phone }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.email\">\n {{ client?.email }}\n </p>\n </div>\n</div>\n" }]
32
+ NgIf,
33
+ TenantFormButtonComponent
34
+ ], template: "<div *ngIf=\"client\" class=\"d-flex justify-content-start align-items-start gap-2\">\n <img *ngIf=\"client?.logo\" [src]=\"client?.logo\" class=\"img img-thumbnail\" style=\"max-height: 75px\" alt=\"\">\n <div class=\"w-100\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <h3 class=\"text-dark mb-1\">{{ client?.name }}</h3>\n <app-tenant-form-button (saved)=\"onSaved($event)\" *ngIf=\"isEditAllowed\" [client]=\"client\" [isAppAdmin]=\"isAppAdmin\">\n </app-tenant-form-button>\n </div>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.address\">\n {{ client?.address }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.phone\">\n {{ client?.phone }}\n </p>\n <p class=\"mb-1 text-secondary\" *ngIf=\"client?.email\">\n {{ client?.email }}\n </p>\n </div>\n</div>\n" }]
25
35
  }], ctorParameters: () => [{ type: i1.CurrentUserService }], propDecorators: { client: [{
26
36
  type: Input
27
37
  }], forceReload: [{
28
38
  type: Input
39
+ }], isEditAllowed: [{
40
+ type: Input
41
+ }], isAppAdmin: [{
42
+ type: Input
29
43
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1pbmZvLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb21wYW55LWluZm9ybWF0aW9uL2NvbXBhbnktaW5mby1kaXNwbGF5L2NvbXBhbnktaW5mby1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm8tZGlzcGxheS9jb21wYW55LWluZm8tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQVlyQyxNQUFNLE9BQU8sMkJBQTJCO0lBSXRDLFlBQ1Usa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFIdkMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUFJekIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQWRVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDhJQ2J4QyxxbEJBZUEsMEREUEksSUFBSTs7NEZBS0ssMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTtxQkFDTDt1RkFLUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q3VycmVudFVzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbXBhbnktaW5mby1kaXNwbGF5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWZcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhbnktaW5mby1kaXNwbGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbXBhbnktaW5mby1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21wYW55SW5mb0Rpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjbGllbnQhOiBhbnk7XG4gIEBJbnB1dCgpIGZvcmNlUmVsb2FkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGN1cnJlbnRVc2VyU2VydmljZTogQ3VycmVudFVzZXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JjZVJlbG9hZCkge1xuICAgICAgdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlck9ic2VydmFibGUodHJ1ZSkuc3Vic2NyaWJlKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jbGllbnQgPSB1c2VyPy5jbGllbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJjbGllbnRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZ2FwLTJcIj5cbiAgPGltZyAqbmdJZj1cImNsaWVudD8ubG9nb1wiIFtzcmNdPVwiY2xpZW50Py5sb2dvXCIgY2xhc3M9XCJpbWcgaW1nLXRodW1ibmFpbFwiIHN0eWxlPVwibWF4LWhlaWdodDogNzVweFwiIGFsdD1cIlwiPlxuICA8ZGl2PlxuICAgIDxoMyBjbGFzcz1cInRleHQtZGFyayBtYi0xXCI+e3sgY2xpZW50Py5uYW1lIH19PC9oMz5cbiAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1zZWNvbmRhcnlcIiAqbmdJZj1cImNsaWVudD8uYWRkcmVzc1wiPlxuICAgICAge3sgY2xpZW50Py5hZGRyZXNzIH19XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwibWItMSB0ZXh0LXNlY29uZGFyeVwiICpuZ0lmPVwiY2xpZW50Py5waG9uZVwiPlxuICAgICAge3sgY2xpZW50Py5waG9uZSB9fVxuICAgIDwvcD5cbiAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1zZWNvbmRhcnlcIiAqbmdJZj1cImNsaWVudD8uZW1haWxcIj5cbiAgICAgIHt7IGNsaWVudD8uZW1haWwgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1pbmZvLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb21wYW55LWluZm9ybWF0aW9uL2NvbXBhbnktaW5mby1kaXNwbGF5L2NvbXBhbnktaW5mby1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm8tZGlzcGxheS9jb21wYW55LWluZm8tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFckMsT0FBTyxFQUNMLHlCQUF5QixFQUMxQixNQUFNLG9EQUFvRCxDQUFDOzs7QUFZNUQsTUFBTSxPQUFPLDJCQUEyQjtJQU10QyxZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTHZDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFLNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQzsrR0F6QlUsMkJBQTJCO21HQUEzQiwyQkFBMkIsd01DakJ4QyxxMkJBbUJBLDBERFJJLElBQUksNkZBQ0oseUJBQXlCOzs0RkFLaEIsMkJBQTJCO2tCQVZ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSix5QkFBeUI7cUJBQzFCO3VGQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q3VycmVudFVzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyJztcbmltcG9ydCB7XG4gIFRlbmFudEZvcm1CdXR0b25Db21wb25lbnRcbn0gZnJvbSAnLi4vdGVuYW50LWZvcm0tYnV0dG9uL3RlbmFudC1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29tcGFueS1pbmZvLWRpc3BsYXknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBUZW5hbnRGb3JtQnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wYW55LWluZm8tZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb21wYW55LWluZm8tZGlzcGxheS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFueUluZm9EaXNwbGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY2xpZW50ITogYW55O1xuICBASW5wdXQoKSBmb3JjZVJlbG9hZCA9IHRydWU7XG4gIEBJbnB1dCgpIGlzRWRpdEFsbG93ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNBcHBBZG1pbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JjZVJlbG9hZCkge1xuICAgICAgdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlck9ic2VydmFibGUodHJ1ZSkuc3Vic2NyaWJlKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jbGllbnQgPSB1c2VyPy5jbGllbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblNhdmVkKGNsaWVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJjbGllbnRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZ2FwLTJcIj5cbiAgPGltZyAqbmdJZj1cImNsaWVudD8ubG9nb1wiIFtzcmNdPVwiY2xpZW50Py5sb2dvXCIgY2xhc3M9XCJpbWcgaW1nLXRodW1ibmFpbFwiIHN0eWxlPVwibWF4LWhlaWdodDogNzVweFwiIGFsdD1cIlwiPlxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgPGgzIGNsYXNzPVwidGV4dC1kYXJrIG1iLTFcIj57eyBjbGllbnQ/Lm5hbWUgfX08L2gzPlxuICAgICAgPGFwcC10ZW5hbnQtZm9ybS1idXR0b24gKHNhdmVkKT1cIm9uU2F2ZWQoJGV2ZW50KVwiICpuZ0lmPVwiaXNFZGl0QWxsb3dlZFwiIFtjbGllbnRdPVwiY2xpZW50XCIgW2lzQXBwQWRtaW5dPVwiaXNBcHBBZG1pblwiPlxuICAgICAgPC9hcHAtdGVuYW50LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxwIGNsYXNzPVwibWItMSB0ZXh0LXNlY29uZGFyeVwiICpuZ0lmPVwiY2xpZW50Py5hZGRyZXNzXCI+XG4gICAgICB7eyBjbGllbnQ/LmFkZHJlc3MgfX1cbiAgICA8L3A+XG4gICAgPHAgY2xhc3M9XCJtYi0xIHRleHQtc2Vjb25kYXJ5XCIgKm5nSWY9XCJjbGllbnQ/LnBob25lXCI+XG4gICAgICB7eyBjbGllbnQ/LnBob25lIH19XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwibWItMSB0ZXh0LXNlY29uZGFyeVwiICpuZ0lmPVwiY2xpZW50Py5lbWFpbFwiPlxuICAgICAge3sgY2xpZW50Py5lbWFpbCB9fVxuICAgIDwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,10 +1,10 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { MatCard, MatCardContent, MatCardTitle } from '@angular/material/card';
3
3
  import { MatError, MatFormField, MatLabel } from '@angular/material/form-field';
4
4
  import { MatInput } from '@angular/material/input';
5
5
  import { MatButton } from '@angular/material/button';
6
6
  import { ReactiveFormsModule, Validators } from '@angular/forms';
7
- import { NgIf } from '@angular/common';
7
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
8
8
  import { FileUploadButtonComponent } from '../../file-upload-button/file-upload-button.component';
9
9
  import { ImagePreviewComponent } from '../../image-preview/image-preview.component';
10
10
  import { TechlifyFormComponentInterface } from '../../base-model';
@@ -22,6 +22,10 @@ export class CompanyInformationComponent extends TechlifyFormComponentInterface
22
22
  this.clientService = clientService;
23
23
  this.alertService = alertService;
24
24
  this.location = location;
25
+ // If we are updating as a client admin, we need to pass a client object
26
+ this.isAppAdmin = false;
27
+ this.saved = new EventEmitter();
28
+ this.cancelled = new EventEmitter();
25
29
  this.errorMessages = {
26
30
  name: {
27
31
  required: 'The name field is required.'
@@ -39,10 +43,12 @@ export class CompanyInformationComponent extends TechlifyFormComponentInterface
39
43
  });
40
44
  }
41
45
  ngOnInit() {
42
- this.user = this.currentUserService.getUser();
43
- const client = this.user?.client;
44
- if (client) {
45
- this.form.patchValue({ ...client });
46
+ if (!this.isAppAdmin) {
47
+ this.user = this.currentUserService.getUser();
48
+ this.client = this.user?.client;
49
+ }
50
+ if (this.client) {
51
+ this.form.patchValue({ ...this.client });
46
52
  }
47
53
  }
48
54
  save() {
@@ -53,12 +59,19 @@ export class CompanyInformationComponent extends TechlifyFormComponentInterface
53
59
  }
54
60
  const data = { ...this.form.value };
55
61
  this.isWorking = true;
56
- this.clientService.update(data).subscribe({
57
- next: () => {
62
+ let request = this.clientService.store(data);
63
+ if (data?.id) {
64
+ request = this.clientService.update(data);
65
+ }
66
+ request.subscribe({
67
+ next: (response) => {
58
68
  this.isWorking = false;
59
- // update user
60
- this.currentUserService.getUserObservable(true).subscribe();
61
69
  this.alertService.addAlert('The company information saved successfully!', 'success');
70
+ this.saved.emit(response?.item);
71
+ if (this.isAppAdmin) {
72
+ // update user
73
+ this.currentUserService.getUserObservable(true).subscribe();
74
+ }
62
75
  },
63
76
  error: () => (this.isWorking = false)
64
77
  });
@@ -69,10 +82,15 @@ export class CompanyInformationComponent extends TechlifyFormComponentInterface
69
82
  }
70
83
  }
71
84
  redirectBack() {
72
- this.location.back();
85
+ if (this.isAppAdmin) {
86
+ this.cancelled.emit();
87
+ }
88
+ else {
89
+ this.location.back();
90
+ }
73
91
  }
74
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyInformationComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.CurrentUserService }, { token: i4.ClientService }, { token: i1.AlertService }, { token: i5.Location }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CompanyInformationComponent, isStandalone: true, selector: "app-company-information", usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center\">\n <mat-card style=\"width: 50%\">\n <mat-card-content>\n <mat-card-title>Company Information</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"mt-3\">\n <form\n [formGroup]=\"form\"\n class=\"d-flex flex-wrap justify-content-start align-items-center gap-2\"\n (submit)=\"save()\"\n >\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\">\n <mat-error *ngIf=\"isFieldValid('name')\">\n {{ getErrorMessage('name') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50% - 0.5rem)\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50%)\">\n <mat-label>Phone</mat-label>\n <input matInput formControlName=\"phone\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Address</mat-label>\n <textarea matInput formControlName=\"address\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>TIN</mat-label>\n <input matInput formControlName=\"tin\">\n </mat-form-field>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Logo</p>\n <app-file-upload-button\n *ngIf=\"!form?.value?.logo\"\n [config]=\"{ fileId: 'client-logo-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'logo')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.logo\"\n [path]=\"form.value?.logo\"\n (removed)=\"form.get('logo')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Letterhead Image</p>\n <app-file-upload-button\n *ngIf=\"!form.value?.letterhead_image\"\n [config]=\"{ fileId: 'client-letterhead-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'letterhead_image')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.letterhead_image\"\n [path]=\"form.value?.letterhead_image\"\n (removed)=\"form.get('letterhead_image')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(100%)\" class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FileUploadButtonComponent, selector: "app-file-upload-button", inputs: ["config"], outputs: ["uploaded"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: ImagePreviewComponent, selector: "app-image-preview", inputs: ["path", "height"], outputs: ["removed"] }] }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CompanyInformationComponent, isStandalone: true, selector: "app-company-information", inputs: { client: "client", isAppAdmin: "isAppAdmin" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"!isAppAdmin\">\n <mat-card style=\"width: 50%\">\n <mat-card-content>\n <mat-card-title>Company Information</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"mt-3\">\n <ng-container >\n <ng-container *ngTemplateOutlet=\"tenantForm\"></ng-container>\n </ng-container>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-container *ngIf=\"isAppAdmin\">\n <ng-container *ngTemplateOutlet=\"tenantForm\"></ng-container>\n</ng-container>\n\n<ng-template #tenantForm>\n <h4 class=\"fw-bold\">{{ client?.id ? 'Edit' : 'Create' }} Tenant</h4>\n <form [formGroup]=\"form\" class=\"d-flex flex-wrap justify-content-start align-items-center gap-2\" (submit)=\"save()\">\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\">\n <mat-error *ngIf=\"isFieldValid('name')\">\n {{ getErrorMessage('name') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50% - 0.5rem)\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50%)\">\n <mat-label>Phone</mat-label>\n <input matInput formControlName=\"phone\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Address</mat-label>\n <textarea matInput formControlName=\"address\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>TIN</mat-label>\n <input matInput formControlName=\"tin\">\n </mat-form-field>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Logo</p>\n <app-file-upload-button\n *ngIf=\"!form?.value?.logo\"\n [config]=\"{ fileId: 'client-logo-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'logo')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.logo\"\n [path]=\"form.value?.logo\"\n (removed)=\"form.get('logo')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Letterhead Image</p>\n <app-file-upload-button\n *ngIf=\"!form.value?.letterhead_image\"\n [config]=\"{ fileId: 'client-letterhead-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'letterhead_image')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.letterhead_image\"\n [path]=\"form.value?.letterhead_image\"\n (removed)=\"form.get('letterhead_image')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(100%)\" class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n </div>\n </form>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FileUploadButtonComponent, selector: "app-file-upload-button", inputs: ["config"], outputs: ["uploaded"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: ImagePreviewComponent, selector: "app-image-preview", inputs: ["path", "height"], outputs: ["removed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
76
94
  }
77
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyInformationComponent, decorators: [{
78
96
  type: Component,
@@ -89,6 +107,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
89
107
  NgIf,
90
108
  MatError,
91
109
  ImagePreviewComponent,
92
- ], template: "<div class=\"d-flex justify-content-center align-items-center\">\n <mat-card style=\"width: 50%\">\n <mat-card-content>\n <mat-card-title>Company Information</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"mt-3\">\n <form\n [formGroup]=\"form\"\n class=\"d-flex flex-wrap justify-content-start align-items-center gap-2\"\n (submit)=\"save()\"\n >\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\">\n <mat-error *ngIf=\"isFieldValid('name')\">\n {{ getErrorMessage('name') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50% - 0.5rem)\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50%)\">\n <mat-label>Phone</mat-label>\n <input matInput formControlName=\"phone\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Address</mat-label>\n <textarea matInput formControlName=\"address\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>TIN</mat-label>\n <input matInput formControlName=\"tin\">\n </mat-form-field>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Logo</p>\n <app-file-upload-button\n *ngIf=\"!form?.value?.logo\"\n [config]=\"{ fileId: 'client-logo-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'logo')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.logo\"\n [path]=\"form.value?.logo\"\n (removed)=\"form.get('logo')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Letterhead Image</p>\n <app-file-upload-button\n *ngIf=\"!form.value?.letterhead_image\"\n [config]=\"{ fileId: 'client-letterhead-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'letterhead_image')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.letterhead_image\"\n [path]=\"form.value?.letterhead_image\"\n (removed)=\"form.get('letterhead_image')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(100%)\" class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n</div>\n" }]
93
- }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.CurrentUserService }, { type: i4.ClientService }, { type: i1.AlertService }, { type: i5.Location }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1pbmZvcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvbXBhbnktaW5mb3JtYXRpb24vY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm9ybWF0aW9uL2NvbXBhbnktaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQVcsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUF3QmhFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSw4QkFBOEI7SUFJN0UsWUFD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LFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQXRFVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwwR0NsQ3hDLDJpR0ErRUEsMEREN0RJLGNBQWMsNkRBQ2QsT0FBTyxvR0FDUCxZQUFZLDZGQUNaLFlBQVksNExBQ1osUUFBUSxzREFDUixRQUFRLGlVQUNSLFNBQVMsZ0xBQ1QsbUJBQW1CLDY4QkFDbkIseUJBQXlCLDhHQUN6QixJQUFJLDZGQUNKLFFBQVEsa0ZBQ1IscUJBQXFCOzs0RkFLWiwyQkFBMkI7a0JBcEJ2QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsSUFBSTt3QkFDSixRQUFRO3dCQUNSLHFCQUFxQjtxQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQsIE1hdENhcmRUaXRsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdExhYmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0QnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhdGlvbiwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2xpZW50U2VydmljZX0gZnJvbSAnLi4vY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtGaWxlVXBsb2FkQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9maWxlLXVwbG9hZC1idXR0b24vZmlsZS11cGxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0ltYWdlUHJldmlld0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vaW1hZ2UtcHJldmlldy9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1RlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZX0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQge0N1cnJlbnRVc2VyU2VydmljZSwgVXNlcn0gZnJvbSAnLi4vLi4vdXNlcic7XG5pbXBvcnQge0FsZXJ0U2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29tcGFueS1pbmZvcm1hdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDYXJkQ29udGVudCxcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRUaXRsZSxcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0QnV0dG9uLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmlsZVVwbG9hZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIE1hdEVycm9yLFxuICAgIEltYWdlUHJldmlld0NvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhbnktaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29tcGFueS1pbmZvcm1hdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFueUluZm9ybWF0aW9uQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNXb3JraW5nITogYm9vbGVhbjtcbiAgdXNlciE6IFVzZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjbGllbnRTZXJ2aWNlOiBDbGllbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25cbiAgKSB7XG4gICAgc3VwZXIoZm9ybVZhbGlkYXRvclNlcnZpY2UpO1xuXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgbmFtZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBuYW1lIGZpZWxkIGlzIHJlcXVpcmVkLidcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogWycnXSxcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBlbWFpbDogWycnXSxcbiAgICAgIHBob25lOiBbJyddLFxuICAgICAgYWRkcmVzczogWycnXSxcbiAgICAgIGxvZ286IFsnJ10sXG4gICAgICBsZXR0ZXJoZWFkX2ltYWdlOiBbJyddLFxuICAgICAgdGluOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXIgPSB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRVc2VyKCk7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy51c2VyPy5jbGllbnQ7XG4gICAgaWYgKGNsaWVudCkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoXG4gICAgICAgIHsgLi4uY2xpZW50IH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzLicsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlIH07XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2xpZW50U2VydmljZS51cGRhdGUoZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gdXBkYXRlIHVzZXJcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlck9ic2VydmFibGUodHJ1ZSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdUaGUgY29tcGFueSBpbmZvcm1hdGlvbiBzYXZlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gKHRoaXMuaXNXb3JraW5nID0gZmFsc2UpXG4gICAgfSk7XG4gIH1cblxuICBvbkZpbGVVcGxvYWRlZCh1cGxvYWRlZEZpbGU6IGFueVtdLCBmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHVwbG9hZGVkRmlsZSAmJiB1cGxvYWRlZEZpbGUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtLmdldChmaWVsZCk/LnBhdGNoVmFsdWUodXBsb2FkZWRGaWxlWzBdPy5pdGVtPy51cmwpO1xuICAgIH1cbiAgfVxuXG4gIHJlZGlyZWN0QmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8bWF0LWNhcmQgc3R5bGU9XCJ3aWR0aDogNTAlXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8bWF0LWNhcmQtdGl0bGU+Q29tcGFueSBJbmZvcm1hdGlvbjwvbWF0LWNhcmQtdGl0bGU+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwibXQtM1wiPlxuICAgICAgPGZvcm1cbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAoc3VibWl0KT1cInNhdmUoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUpXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5OYW1lPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCduYW1lJylcIj5cbiAgICAgICAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgnbmFtZScpIH19XG4gICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IGNhbGMoNTAlIC0gMC41cmVtKVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+RW1haWw8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogY2FsYyg1MCUpXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5QaG9uZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUpXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5BZGRyZXNzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSlcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlRJTjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aW5cIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IGNhbGMoNTAlIC0gMC41cmVtKVwiPlxuICAgICAgICAgIDxwPkxvZ288L3A+XG4gICAgICAgICAgPGFwcC1maWxlLXVwbG9hZC1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIWZvcm0/LnZhbHVlPy5sb2dvXCJcbiAgICAgICAgICAgIFtjb25maWddPVwieyBmaWxlSWQ6ICdjbGllbnQtbG9nby0nICsgdGhpcy5mb3JtLnZhbHVlPy5pZCwgYWNjZXB0OiAnaW1hZ2UvKid9XCJcbiAgICAgICAgICAgICh1cGxvYWRlZCk9XCJvbkZpbGVVcGxvYWRlZCgkZXZlbnQsICdsb2dvJylcIlxuICAgICAgICAgID48L2FwcC1maWxlLXVwbG9hZC1idXR0b24+XG4gICAgICAgICAgPGFwcC1pbWFnZS1wcmV2aWV3XG4gICAgICAgICAgICAqbmdJZj1cImZvcm0udmFsdWU/LmxvZ29cIlxuICAgICAgICAgICAgW3BhdGhdPVwiZm9ybS52YWx1ZT8ubG9nb1wiXG4gICAgICAgICAgICAocmVtb3ZlZCk9XCJmb3JtLmdldCgnbG9nbycpPy5zZXRWYWx1ZSgnJylcIlxuICAgICAgICAgID48L2FwcC1pbWFnZS1wcmV2aWV3PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IGNhbGMoNTAlIC0gMC41cmVtKVwiPlxuICAgICAgICAgIDxwPkxldHRlcmhlYWQgSW1hZ2U8L3A+XG4gICAgICAgICAgPGFwcC1maWxlLXVwbG9hZC1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIWZvcm0udmFsdWU/LmxldHRlcmhlYWRfaW1hZ2VcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJ7IGZpbGVJZDogJ2NsaWVudC1sZXR0ZXJoZWFkLScgKyB0aGlzLmZvcm0udmFsdWU/LmlkLCBhY2NlcHQ6ICdpbWFnZS8qJ31cIlxuICAgICAgICAgICAgKHVwbG9hZGVkKT1cIm9uRmlsZVVwbG9hZGVkKCRldmVudCwgJ2xldHRlcmhlYWRfaW1hZ2UnKVwiXG4gICAgICAgICAgPjwvYXBwLWZpbGUtdXBsb2FkLWJ1dHRvbj5cbiAgICAgICAgICA8YXBwLWltYWdlLXByZXZpZXdcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS52YWx1ZT8ubGV0dGVyaGVhZF9pbWFnZVwiXG4gICAgICAgICAgICBbcGF0aF09XCJmb3JtLnZhbHVlPy5sZXR0ZXJoZWFkX2ltYWdlXCJcbiAgICAgICAgICAgIChyZW1vdmVkKT1cImZvcm0uZ2V0KCdsZXR0ZXJoZWFkX2ltYWdlJyk/LnNldFZhbHVlKCcnKVwiXG4gICAgICAgICAgPjwvYXBwLWltYWdlLXByZXZpZXc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogY2FsYygxMDAlKVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1mbGF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlZGlyZWN0QmFjaygpXCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
110
+ NgTemplateOutlet,
111
+ ], template: "<div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"!isAppAdmin\">\n <mat-card style=\"width: 50%\">\n <mat-card-content>\n <mat-card-title>Company Information</mat-card-title>\n </mat-card-content>\n <mat-card-content class=\"mt-3\">\n <ng-container >\n <ng-container *ngTemplateOutlet=\"tenantForm\"></ng-container>\n </ng-container>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-container *ngIf=\"isAppAdmin\">\n <ng-container *ngTemplateOutlet=\"tenantForm\"></ng-container>\n</ng-container>\n\n<ng-template #tenantForm>\n <h4 class=\"fw-bold\">{{ client?.id ? 'Edit' : 'Create' }} Tenant</h4>\n <form [formGroup]=\"form\" class=\"d-flex flex-wrap justify-content-start align-items-center gap-2\" (submit)=\"save()\">\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Name</mat-label>\n <input matInput formControlName=\"name\">\n <mat-error *ngIf=\"isFieldValid('name')\">\n {{ getErrorMessage('name') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50% - 0.5rem)\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(50%)\">\n <mat-label>Phone</mat-label>\n <input matInput formControlName=\"phone\">\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>Address</mat-label>\n <textarea matInput formControlName=\"address\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <mat-form-field style=\"width: calc(100%)\">\n <mat-label>TIN</mat-label>\n <input matInput formControlName=\"tin\">\n </mat-form-field>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Logo</p>\n <app-file-upload-button\n *ngIf=\"!form?.value?.logo\"\n [config]=\"{ fileId: 'client-logo-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'logo')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.logo\"\n [path]=\"form.value?.logo\"\n (removed)=\"form.get('logo')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(50% - 0.5rem)\">\n <p>Letterhead Image</p>\n <app-file-upload-button\n *ngIf=\"!form.value?.letterhead_image\"\n [config]=\"{ fileId: 'client-letterhead-' + this.form.value?.id, accept: 'image/*'}\"\n (uploaded)=\"onFileUploaded($event, 'letterhead_image')\"\n ></app-file-upload-button>\n <app-image-preview\n *ngIf=\"form.value?.letterhead_image\"\n [path]=\"form.value?.letterhead_image\"\n (removed)=\"form.get('letterhead_image')?.setValue('')\"\n ></app-image-preview>\n </div>\n\n <div style=\"width: calc(100%)\" class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">\n Save\n </button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n </div>\n </form>\n</ng-template>\n" }]
112
+ }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.CurrentUserService }, { type: i4.ClientService }, { type: i1.AlertService }, { type: i5.Location }], propDecorators: { client: [{
113
+ type: Input
114
+ }], isAppAdmin: [{
115
+ type: Input
116
+ }], saved: [{
117
+ type: Output
118
+ }], cancelled: [{
119
+ type: Output
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1pbmZvcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvbXBhbnktaW5mb3JtYXRpb24vY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm9ybWF0aW9uL2NvbXBhbnktaW5mb3JtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQVcsSUFBSSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUF5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O3dCQUNkLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixTQUFTO3dCQUNULG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixJQUFJO3dCQUNKLFFBQVE7d0JBQ1IscUJBQXFCO3dCQUNyQixnQkFBZ0I7cUJBQ2pCO2tPQUtRLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQsIE1hdENhcmRUaXRsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQge01hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdExhYmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0QnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhdGlvbiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2xpZW50U2VydmljZX0gZnJvbSAnLi4vY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtGaWxlVXBsb2FkQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9maWxlLXVwbG9hZC1idXR0b24vZmlsZS11cGxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0ltYWdlUHJldmlld0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vaW1hZ2UtcHJldmlldy9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1RlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZX0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQge0N1cnJlbnRVc2VyU2VydmljZSwgVXNlcn0gZnJvbSAnLi4vLi4vdXNlcic7XG5pbXBvcnQge0FsZXJ0U2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29tcGFueS1pbmZvcm1hdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDYXJkQ29udGVudCxcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRUaXRsZSxcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0QnV0dG9uLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRmlsZVVwbG9hZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIE1hdEVycm9yLFxuICAgIEltYWdlUHJldmlld0NvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGFueS1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb21wYW55LWluZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21wYW55SW5mb3JtYXRpb25Db21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjbGllbnQhOiBhbnk7XG4gIC8vIElmIHdlIGFyZSB1cGRhdGluZyBhcyBhIGNsaWVudCBhZG1pbiwgd2UgbmVlZCB0byBwYXNzIGEgY2xpZW50IG9iamVjdFxuICBASW5wdXQoKSBpc0FwcEFkbWluID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgaXNXb3JraW5nITogYm9vbGVhbjtcbiAgdXNlciE6IFVzZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjbGllbnRTZXJ2aWNlOiBDbGllbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25cbiAgKSB7XG4gICAgc3VwZXIoZm9ybVZhbGlkYXRvclNlcnZpY2UpO1xuXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgbmFtZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBuYW1lIGZpZWxkIGlzIHJlcXVpcmVkLidcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogWycnXSxcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBlbWFpbDogWycnXSxcbiAgICAgIHBob25lOiBbJyddLFxuICAgICAgYWRkcmVzczogWycnXSxcbiAgICAgIGxvZ286IFsnJ10sXG4gICAgICBsZXR0ZXJoZWFkX2ltYWdlOiBbJyddLFxuICAgICAgdGluOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNBcHBBZG1pbikge1xuICAgICAgdGhpcy51c2VyID0gdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgdGhpcy5jbGllbnQgPSB0aGlzLnVzZXI/LmNsaWVudDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgLi4udGhpcy5jbGllbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzLicsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlIH07XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGxldCByZXF1ZXN0ID0gdGhpcy5jbGllbnRTZXJ2aWNlLnN0b3JlKGRhdGEpIDtcbiAgICBpZiAoZGF0YT8uaWQpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmNsaWVudFNlcnZpY2UudXBkYXRlKGRhdGEpO1xuICAgIH1cbiAgICByZXF1ZXN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnVGhlIGNvbXBhbnkgaW5mb3JtYXRpb24gc2F2ZWQgc3VjY2Vzc2Z1bGx5IScsICdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIGlmICh0aGlzLmlzQXBwQWRtaW4pIHtcbiAgICAgICAgICAvLyB1cGRhdGUgdXNlclxuICAgICAgICAgIHRoaXMuY3VycmVudFVzZXJTZXJ2aWNlLmdldFVzZXJPYnNlcnZhYmxlKHRydWUpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmlzV29ya2luZyA9IGZhbHNlKVxuICAgIH0pO1xuICB9XG5cbiAgb25GaWxlVXBsb2FkZWQodXBsb2FkZWRGaWxlOiBhbnlbXSwgZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh1cGxvYWRlZEZpbGUgJiYgdXBsb2FkZWRGaWxlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQoZmllbGQpPy5wYXRjaFZhbHVlKHVwbG9hZGVkRmlsZVswXT8uaXRlbT8udXJsKTtcbiAgICB9XG4gIH1cblxuICByZWRpcmVjdEJhY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBcHBBZG1pbikge1xuICAgICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cIiFpc0FwcEFkbWluXCI+XG4gIDxtYXQtY2FyZCBzdHlsZT1cIndpZHRoOiA1MCVcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC10aXRsZT5Db21wYW55IEluZm9ybWF0aW9uPC9tYXQtY2FyZC10aXRsZT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0zXCI+XG4gICAgICA8bmctY29udGFpbmVyID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbmFudEZvcm1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNBcHBBZG1pblwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVuYW50Rm9ybVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdGVuYW50Rm9ybT5cbiAgPGg0IGNsYXNzPVwiZnctYm9sZFwiPnt7IGNsaWVudD8uaWQgPyAnRWRpdCcgOiAnQ3JlYXRlJyB9fSBUZW5hbnQ8L2g0PlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSlcIj5cbiAgICAgIDxtYXQtbGFiZWw+TmFtZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ25hbWUnKVwiPlxuICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UoJ25hbWUnKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiBjYWxjKDUwJSAtIDAuNXJlbSlcIj5cbiAgICAgIDxtYXQtbGFiZWw+RW1haWw8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogY2FsYyg1MCUpXCI+XG4gICAgICA8bWF0LWxhYmVsPlBob25lPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSlcIj5cbiAgICAgIDxtYXQtbGFiZWw+QWRkcmVzczwvbWF0LWxhYmVsPlxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUpXCI+XG4gICAgICA8bWF0LWxhYmVsPlRJTjwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpblwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IGNhbGMoNTAlIC0gMC41cmVtKVwiPlxuICAgICAgPHA+TG9nbzwvcD5cbiAgICAgIDxhcHAtZmlsZS11cGxvYWQtYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWZvcm0/LnZhbHVlPy5sb2dvXCJcbiAgICAgICAgW2NvbmZpZ109XCJ7IGZpbGVJZDogJ2NsaWVudC1sb2dvLScgKyB0aGlzLmZvcm0udmFsdWU/LmlkLCBhY2NlcHQ6ICdpbWFnZS8qJ31cIlxuICAgICAgICAodXBsb2FkZWQpPVwib25GaWxlVXBsb2FkZWQoJGV2ZW50LCAnbG9nbycpXCJcbiAgICAgID48L2FwcC1maWxlLXVwbG9hZC1idXR0b24+XG4gICAgICA8YXBwLWltYWdlLXByZXZpZXdcbiAgICAgICAgKm5nSWY9XCJmb3JtLnZhbHVlPy5sb2dvXCJcbiAgICAgICAgW3BhdGhdPVwiZm9ybS52YWx1ZT8ubG9nb1wiXG4gICAgICAgIChyZW1vdmVkKT1cImZvcm0uZ2V0KCdsb2dvJyk/LnNldFZhbHVlKCcnKVwiXG4gICAgICA+PC9hcHAtaW1hZ2UtcHJldmlldz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogY2FsYyg1MCUgLSAwLjVyZW0pXCI+XG4gICAgICA8cD5MZXR0ZXJoZWFkIEltYWdlPC9wPlxuICAgICAgPGFwcC1maWxlLXVwbG9hZC1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhZm9ybS52YWx1ZT8ubGV0dGVyaGVhZF9pbWFnZVwiXG4gICAgICAgIFtjb25maWddPVwieyBmaWxlSWQ6ICdjbGllbnQtbGV0dGVyaGVhZC0nICsgdGhpcy5mb3JtLnZhbHVlPy5pZCwgYWNjZXB0OiAnaW1hZ2UvKid9XCJcbiAgICAgICAgKHVwbG9hZGVkKT1cIm9uRmlsZVVwbG9hZGVkKCRldmVudCwgJ2xldHRlcmhlYWRfaW1hZ2UnKVwiXG4gICAgICA+PC9hcHAtZmlsZS11cGxvYWQtYnV0dG9uPlxuICAgICAgPGFwcC1pbWFnZS1wcmV2aWV3XG4gICAgICAgICpuZ0lmPVwiZm9ybS52YWx1ZT8ubGV0dGVyaGVhZF9pbWFnZVwiXG4gICAgICAgIFtwYXRoXT1cImZvcm0udmFsdWU/LmxldHRlcmhlYWRfaW1hZ2VcIlxuICAgICAgICAocmVtb3ZlZCk9XCJmb3JtLmdldCgnbGV0dGVyaGVhZF9pbWFnZScpPy5zZXRWYWx1ZSgnJylcIlxuICAgICAgPjwvYXBwLWltYWdlLXByZXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSlcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICBTYXZlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1mbGF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlZGlyZWN0QmFjaygpXCI+XG4gICAgICAgIENhbmNlbFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { MaterialModule } from '../../material.module';
3
+ import { CompanyInformationComponent } from '../company-information/company-information.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "@angular/material/icon";
7
+ export class TenantFormButtonComponent {
8
+ constructor(matDialog) {
9
+ this.matDialog = matDialog;
10
+ this.saved = new EventEmitter();
11
+ this.isAppAdmin = false;
12
+ }
13
+ showForm(templateRef) {
14
+ this.matDialog.open(templateRef, { width: '600px' });
15
+ }
16
+ onSaved(client) {
17
+ this.saved.emit(client);
18
+ this.matDialog.closeAll();
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TenantFormButtonComponent, isStandalone: true, selector: "app-tenant-form-button", inputs: { client: "client", isAppAdmin: "isAppAdmin" }, outputs: { saved: "saved" }, ngImport: i0, template: "<mat-icon class=\"cursor-pointer\" (click)=\"showForm(formTemplate)\">{{ client ? 'edit' : 'add' }}</mat-icon>\n\n<ng-template #formTemplate>\n <div mat-dialog-content>\n <app-company-information [client]=\"client\" [isAppAdmin]=\"isAppAdmin\" (saved)=\"onSaved($event)\"\n (cancelled)=\"matDialog.closeAll()\"></app-company-information>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MaterialModule }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CompanyInformationComponent, selector: "app-company-information", inputs: ["client", "isAppAdmin"], outputs: ["saved", "cancelled"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TenantFormButtonComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-tenant-form-button', standalone: true, imports: [
26
+ MaterialModule,
27
+ CompanyInformationComponent
28
+ ], template: "<mat-icon class=\"cursor-pointer\" (click)=\"showForm(formTemplate)\">{{ client ? 'edit' : 'add' }}</mat-icon>\n\n<ng-template #formTemplate>\n <div mat-dialog-content>\n <app-company-information [client]=\"client\" [isAppAdmin]=\"isAppAdmin\" (saved)=\"onSaved($event)\"\n (cancelled)=\"matDialog.closeAll()\"></app-company-information>\n </div>\n</ng-template>\n" }]
29
+ }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { client: [{
30
+ type: Input
31
+ }], saved: [{
32
+ type: Output
33
+ }], isAppAdmin: [{
34
+ type: Input
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWZvcm0tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi90ZW5hbnQtZm9ybS1idXR0b24vdGVuYW50LWZvcm0tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29tcGFueS1pbmZvcm1hdGlvbi90ZW5hbnQtZm9ybS1idXR0b24vdGVuYW50LWZvcm0tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDOzs7O0FBYWpHLE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUg3QixVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEQsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUVjLENBQUM7SUFFM0MsUUFBUSxDQUFDLFdBQTZCO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxPQUFPLENBQUMsTUFBVztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBZFUseUJBQXlCO21HQUF6Qix5QkFBeUIsdUtDZnRDLCtZQVFBLHlERENJLGNBQWMsZ1RBQ2QsMkJBQTJCOzs0RkFLbEIseUJBQXlCO2tCQVZyQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCwyQkFBMkI7cUJBQzVCOzhFQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0UsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0ZXJpYWxNb2R1bGV9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQge0NvbXBhbnlJbmZvcm1hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vY29tcGFueS1pbmZvcm1hdGlvbi9jb21wYW55LWluZm9ybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlbmFudC1mb3JtLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBDb21wYW55SW5mb3JtYXRpb25Db21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZW5hbnQtZm9ybS1idXR0b24uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50Rm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsaWVudDogYW55O1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlzQXBwQWRtaW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgc2hvd0Zvcm0odGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLm1hdERpYWxvZy5vcGVuKHRlbXBsYXRlUmVmLCB7IHdpZHRoOiAnNjAwcHgnIH0pO1xuICB9XG5cbiAgb25TYXZlZChjbGllbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZWQuZW1pdChjbGllbnQpO1xuICAgIHRoaXMubWF0RGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cbn1cbiIsIjxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dGb3JtKGZvcm1UZW1wbGF0ZSlcIj57eyBjbGllbnQgPyAnZWRpdCcgOiAnYWRkJyB9fTwvbWF0LWljb24+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybVRlbXBsYXRlPlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8YXBwLWNvbXBhbnktaW5mb3JtYXRpb24gW2NsaWVudF09XCJjbGllbnRcIiBbaXNBcHBBZG1pbl09XCJpc0FwcEFkbWluXCIgKHNhdmVkKT1cIm9uU2F2ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxsZWQpPVwibWF0RGlhbG9nLmNsb3NlQWxsKClcIj48L2FwcC1jb21wYW55LWluZm9ybWF0aW9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=