ngx-techlify-core 18.42.0 → 18.43.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/role/role-form.component.mjs +5 -15
- package/esm2022/lib/role/role-view/role-view-routing.module.mjs +26 -0
- package/esm2022/lib/role/role-view/role-view.module.mjs +47 -0
- package/esm2022/lib/role/role.module.mjs +5 -6
- package/esm2022/lib/role/role.routes.mjs +6 -3
- package/esm2022/lib/role/role.service.mjs +1 -4
- package/esm2022/lib/techlify-icon/techlify-icon.component.mjs +3 -2
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/ngx-techlify-core.mjs +203 -148
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/role/role-form.component.d.ts +0 -2
- package/lib/role/role-view/role-view-routing.module.d.ts +7 -0
- package/lib/role/role-view/role-view.module.d.ts +13 -0
- package/lib/role/role.module.d.ts +9 -10
- package/lib/role/role.service.d.ts +0 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -3899,7 +3899,8 @@ class TechlifyIconComponent {
|
|
|
3899
3899
|
history: 'fas fa-clock',
|
|
3900
3900
|
copy: 'fas fa-copy',
|
|
3901
3901
|
activate: 'fas fa-check-circle',
|
|
3902
|
-
deactivate: 'fas fa-stop-circle'
|
|
3902
|
+
deactivate: 'fas fa-stop-circle',
|
|
3903
|
+
email: 'far fa-envelope'
|
|
3903
3904
|
};
|
|
3904
3905
|
// Map size input to CSS classes
|
|
3905
3906
|
this.sizeMap = {
|
|
@@ -4777,7 +4778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4777
4778
|
args: [{ selector: 'user-view', template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <button type=\"button\" mat-icon-button (click)=\"editUser(user)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\" *ngIf=\"currentUser?.user_type_id === UserTypeEnum.ADMIN\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>", styles: [".user-node .page-title{margin:20px 0 0}.user-node #information-tabs-wrapper .nav-pills .nav-link{border-radius:0;border:1px solid #007bff;border-right:none;width:190px}.user-node #information-tabs-wrapper .tab-content{padding:20px;border:1px solid #007bff;width:calc(100vw - 200px)}\n"] }]
|
|
4778
4779
|
}], ctorParameters: () => [{ type: UserService }, { type: i1$2.ActivatedRoute }, { type: ConfigService }, { type: HttpService }, { type: i1.MatDialog }, { type: CurrentUserService }] });
|
|
4779
4780
|
|
|
4780
|
-
const routes$
|
|
4781
|
+
const routes$H = [
|
|
4781
4782
|
{ path: '', component: UsersViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
4782
4783
|
{ path: ':id', component: UserViewComponent, canActivate: [AuthenticationGuard] },
|
|
4783
4784
|
{ path: ':id/app-admin-view', loadChildren: () => Promise.resolve().then(function () { return appAdminUserView_module; }).then(mod => mod.AppAdminUserViewModule), canActivate: [AuthenticationGuard] },
|
|
@@ -4788,12 +4789,12 @@ const routes$G = [
|
|
|
4788
4789
|
class UserRoutingProvider {
|
|
4789
4790
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4790
4791
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
4791
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
4792
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$H), RouterModule] }); }
|
|
4792
4793
|
}
|
|
4793
4794
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, decorators: [{
|
|
4794
4795
|
type: NgModule,
|
|
4795
4796
|
args: [{
|
|
4796
|
-
imports: [RouterModule.forChild(routes$
|
|
4797
|
+
imports: [RouterModule.forChild(routes$H)],
|
|
4797
4798
|
exports: [RouterModule]
|
|
4798
4799
|
}]
|
|
4799
4800
|
}] });
|
|
@@ -6192,16 +6193,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6192
6193
|
}]
|
|
6193
6194
|
}] });
|
|
6194
6195
|
|
|
6195
|
-
const routes$
|
|
6196
|
+
const routes$G = [];
|
|
6196
6197
|
class TimelineFilterRoutingModule {
|
|
6197
6198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6198
6199
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6199
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6200
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$G), RouterModule] }); }
|
|
6200
6201
|
}
|
|
6201
6202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, decorators: [{
|
|
6202
6203
|
type: NgModule,
|
|
6203
6204
|
args: [{
|
|
6204
|
-
imports: [RouterModule.forChild(routes$
|
|
6205
|
+
imports: [RouterModule.forChild(routes$G)],
|
|
6205
6206
|
exports: [RouterModule]
|
|
6206
6207
|
}]
|
|
6207
6208
|
}] });
|
|
@@ -6278,16 +6279,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6278
6279
|
}]
|
|
6279
6280
|
}] });
|
|
6280
6281
|
|
|
6281
|
-
const routes$
|
|
6282
|
+
const routes$F = [];
|
|
6282
6283
|
class TechlifyNotificationRoutingModule {
|
|
6283
6284
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6284
6285
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6285
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6286
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$F), RouterModule] }); }
|
|
6286
6287
|
}
|
|
6287
6288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, decorators: [{
|
|
6288
6289
|
type: NgModule,
|
|
6289
6290
|
args: [{
|
|
6290
|
-
imports: [RouterModule.forChild(routes$
|
|
6291
|
+
imports: [RouterModule.forChild(routes$F)],
|
|
6291
6292
|
exports: [RouterModule]
|
|
6292
6293
|
}]
|
|
6293
6294
|
}] });
|
|
@@ -6379,7 +6380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6379
6380
|
args: [{ selector: 'app-techlify-notification-for-user', template: "<div fxLayout=\"column\" class=\"container my-4\">\n <div>\n <mat-card appearance=\"outlined\">\n <h3>My Notification Preferences</h3>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <mat-card appearance=\"outlined\" class=\"mt-4\">\n <mat-list fxLayout=\"column\">\n <mat-list-item fxLayout>\n <h5 fxFlex=\"33%\" class=\"p-1\">Notification</h5>\n <h5 fxFlex class=\"p-1\">Email</h5>\n <h5 fxFlex class=\"p-1\">Mobile</h5>\n <h5 fxFlex class=\"p-1\">In-App</h5>\n </mat-list-item>\n <ng-container *ngFor=\"let model of models|keyvalue\">\n <mat-list-item>\n <h5 class=\"p-1\">{{model?.key}}</h5>\n </mat-list-item>\n <mat-list-item *ngFor=\"let notificationType of model.value\" fxLayout=\"start center\">\n <div fxFlex=\"33%\" class=\"p-1\">\n <div>{{notificationType?.title}} </div>\n <div style=\"text-wrap: auto; line-height: normal;\">\n <small class=\"text-secondary\"> {{notificationType?.description}} </small>\n </div>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_email',$event)\"\n [checked]=\"notificationType?.is_subscribed_email\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_email_default == null\">\n </mat-slide-toggle>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_mobile',$event)\"\n [checked]=\"notificationType?.is_subscribed_mobile\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_mobile_default == null\">\n </mat-slide-toggle>\n </div>\n <div fxFlex class=\"p-1\">\n <mat-slide-toggle\n (change)=\"toggleSubscription(notificationType,'is_subscribed_in_app',$event)\"\n [checked]=\"notificationType?.is_subscribed_in_app\"\n [disabled]=\"(!notificationType.is_editable) || notificationType.isWorking || notificationType?.is_subscribed_in_app_default == null\">\n </mat-slide-toggle>\n </div>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </mat-card>\n </div>\n\n</div>", styles: [":host ::ng-deep .mdc-list-item.mdc-list-item--with-one-line{height:auto!important}\n"] }]
|
|
6380
6381
|
}], ctorParameters: () => [{ type: TechlifyNotificationTypeService }, { type: TechlifyNotificationSubscriptionService }] });
|
|
6381
6382
|
|
|
6382
|
-
const routes$
|
|
6383
|
+
const routes$E = [
|
|
6383
6384
|
{
|
|
6384
6385
|
path: '',
|
|
6385
6386
|
component: TechlifyNotificationForUserComponent,
|
|
@@ -6389,12 +6390,12 @@ const routes$D = [
|
|
|
6389
6390
|
class TechlifyNotificationForUserRoutingModule {
|
|
6390
6391
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6391
6392
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6392
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6393
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$E), RouterModule] }); }
|
|
6393
6394
|
}
|
|
6394
6395
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, decorators: [{
|
|
6395
6396
|
type: NgModule,
|
|
6396
6397
|
args: [{
|
|
6397
|
-
imports: [RouterModule.forChild(routes$
|
|
6398
|
+
imports: [RouterModule.forChild(routes$E)],
|
|
6398
6399
|
exports: [RouterModule]
|
|
6399
6400
|
}]
|
|
6400
6401
|
}] });
|
|
@@ -6433,16 +6434,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6433
6434
|
* Public API Surface of techlify-notifications
|
|
6434
6435
|
*/
|
|
6435
6436
|
|
|
6436
|
-
const routes$
|
|
6437
|
+
const routes$D = [];
|
|
6437
6438
|
class EmailSubscriptionRoutingModule {
|
|
6438
6439
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6439
6440
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6440
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6441
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$D), RouterModule] }); }
|
|
6441
6442
|
}
|
|
6442
6443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, decorators: [{
|
|
6443
6444
|
type: NgModule,
|
|
6444
6445
|
args: [{
|
|
6445
|
-
imports: [RouterModule.forChild(routes$
|
|
6446
|
+
imports: [RouterModule.forChild(routes$D)],
|
|
6446
6447
|
exports: [RouterModule]
|
|
6447
6448
|
}]
|
|
6448
6449
|
}] });
|
|
@@ -6465,16 +6466,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6465
6466
|
}]
|
|
6466
6467
|
}] });
|
|
6467
6468
|
|
|
6468
|
-
const routes$
|
|
6469
|
+
const routes$C = [];
|
|
6469
6470
|
class EmailSubscriptionUserRoutingModule {
|
|
6470
6471
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6471
6472
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6472
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6473
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$C), RouterModule] }); }
|
|
6473
6474
|
}
|
|
6474
6475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, decorators: [{
|
|
6475
6476
|
type: NgModule,
|
|
6476
6477
|
args: [{
|
|
6477
|
-
imports: [RouterModule.forChild(routes$
|
|
6478
|
+
imports: [RouterModule.forChild(routes$C)],
|
|
6478
6479
|
exports: [RouterModule]
|
|
6479
6480
|
}]
|
|
6480
6481
|
}] });
|
|
@@ -6497,16 +6498,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6497
6498
|
}]
|
|
6498
6499
|
}] });
|
|
6499
6500
|
|
|
6500
|
-
const routes$
|
|
6501
|
+
const routes$B = [];
|
|
6501
6502
|
class EmailSubscriptionUserFormRoutingModule {
|
|
6502
6503
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6503
6504
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6504
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6505
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$B), RouterModule] }); }
|
|
6505
6506
|
}
|
|
6506
6507
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, decorators: [{
|
|
6507
6508
|
type: NgModule,
|
|
6508
6509
|
args: [{
|
|
6509
|
-
imports: [RouterModule.forChild(routes$
|
|
6510
|
+
imports: [RouterModule.forChild(routes$B)],
|
|
6510
6511
|
exports: [RouterModule]
|
|
6511
6512
|
}]
|
|
6512
6513
|
}] });
|
|
@@ -6811,7 +6812,7 @@ const esulr = {
|
|
|
6811
6812
|
redirectTo: '/'
|
|
6812
6813
|
}
|
|
6813
6814
|
};
|
|
6814
|
-
const routes$
|
|
6815
|
+
const routes$A = [
|
|
6815
6816
|
{
|
|
6816
6817
|
path: '',
|
|
6817
6818
|
component: EmailSubscriptionUserListComponent,
|
|
@@ -6822,26 +6823,26 @@ const routes$z = [
|
|
|
6822
6823
|
class EmailSubscriptionUserListRoutingModule {
|
|
6823
6824
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6824
6825
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6825
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6826
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$A), RouterModule] }); }
|
|
6826
6827
|
}
|
|
6827
6828
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, decorators: [{
|
|
6828
6829
|
type: NgModule,
|
|
6829
6830
|
args: [{
|
|
6830
|
-
imports: [RouterModule.forChild(routes$
|
|
6831
|
+
imports: [RouterModule.forChild(routes$A)],
|
|
6831
6832
|
exports: [RouterModule]
|
|
6832
6833
|
}]
|
|
6833
6834
|
}] });
|
|
6834
6835
|
|
|
6835
|
-
const routes$
|
|
6836
|
+
const routes$z = [];
|
|
6836
6837
|
class EmailSubscriptionUserListFilterRoutingModule {
|
|
6837
6838
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6838
6839
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6839
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6840
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$z), RouterModule] }); }
|
|
6840
6841
|
}
|
|
6841
6842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, decorators: [{
|
|
6842
6843
|
type: NgModule,
|
|
6843
6844
|
args: [{
|
|
6844
|
-
imports: [RouterModule.forChild(routes$
|
|
6845
|
+
imports: [RouterModule.forChild(routes$z)],
|
|
6845
6846
|
exports: [RouterModule]
|
|
6846
6847
|
}]
|
|
6847
6848
|
}] });
|
|
@@ -6914,16 +6915,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6914
6915
|
}]
|
|
6915
6916
|
}] });
|
|
6916
6917
|
|
|
6917
|
-
const routes$
|
|
6918
|
+
const routes$y = [];
|
|
6918
6919
|
class EmailSubscriptionTypeRoutingModule {
|
|
6919
6920
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6920
6921
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6921
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6922
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$y), RouterModule] }); }
|
|
6922
6923
|
}
|
|
6923
6924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, decorators: [{
|
|
6924
6925
|
type: NgModule,
|
|
6925
6926
|
args: [{
|
|
6926
|
-
imports: [RouterModule.forChild(routes$
|
|
6927
|
+
imports: [RouterModule.forChild(routes$y)],
|
|
6927
6928
|
exports: [RouterModule]
|
|
6928
6929
|
}]
|
|
6929
6930
|
}] });
|
|
@@ -6946,16 +6947,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6946
6947
|
}]
|
|
6947
6948
|
}] });
|
|
6948
6949
|
|
|
6949
|
-
const routes$
|
|
6950
|
+
const routes$x = [];
|
|
6950
6951
|
class EmailSubscriptionTypeFormRoutingModule {
|
|
6951
6952
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6952
6953
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
6953
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6954
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$x), RouterModule] }); }
|
|
6954
6955
|
}
|
|
6955
6956
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, decorators: [{
|
|
6956
6957
|
type: NgModule,
|
|
6957
6958
|
args: [{
|
|
6958
|
-
imports: [RouterModule.forChild(routes$
|
|
6959
|
+
imports: [RouterModule.forChild(routes$x)],
|
|
6959
6960
|
exports: [RouterModule]
|
|
6960
6961
|
}]
|
|
6961
6962
|
}] });
|
|
@@ -7223,7 +7224,7 @@ const estlr = {
|
|
|
7223
7224
|
redirectTo: '/'
|
|
7224
7225
|
}
|
|
7225
7226
|
};
|
|
7226
|
-
const routes$
|
|
7227
|
+
const routes$w = [
|
|
7227
7228
|
{
|
|
7228
7229
|
path: '',
|
|
7229
7230
|
component: EmailSubscriptionTypeListComponent,
|
|
@@ -7234,12 +7235,12 @@ const routes$v = [
|
|
|
7234
7235
|
class EmailSubscriptionTypeListRoutingModule {
|
|
7235
7236
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7236
7237
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
7237
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7238
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$w), RouterModule] }); }
|
|
7238
7239
|
}
|
|
7239
7240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, decorators: [{
|
|
7240
7241
|
type: NgModule,
|
|
7241
7242
|
args: [{
|
|
7242
|
-
imports: [RouterModule.forChild(routes$
|
|
7243
|
+
imports: [RouterModule.forChild(routes$w)],
|
|
7243
7244
|
exports: [RouterModule]
|
|
7244
7245
|
}]
|
|
7245
7246
|
}] });
|
|
@@ -7345,7 +7346,7 @@ const esfur = {
|
|
|
7345
7346
|
only: ['client_admin']
|
|
7346
7347
|
}
|
|
7347
7348
|
};
|
|
7348
|
-
const routes$
|
|
7349
|
+
const routes$v = [
|
|
7349
7350
|
{
|
|
7350
7351
|
path: '',
|
|
7351
7352
|
component: EmailSubscriptionForUserComponent,
|
|
@@ -7356,12 +7357,12 @@ const routes$u = [
|
|
|
7356
7357
|
class EmailSubscriptionForUserRoutingModule {
|
|
7357
7358
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7358
7359
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
7359
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7360
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$v), RouterModule] }); }
|
|
7360
7361
|
}
|
|
7361
7362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, decorators: [{
|
|
7362
7363
|
type: NgModule,
|
|
7363
7364
|
args: [{
|
|
7364
|
-
imports: [RouterModule.forChild(routes$
|
|
7365
|
+
imports: [RouterModule.forChild(routes$v)],
|
|
7365
7366
|
exports: [RouterModule]
|
|
7366
7367
|
}]
|
|
7367
7368
|
}] });
|
|
@@ -7698,7 +7699,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7698
7699
|
args: [{ selector: 'app-techlify-updates-list', template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n <button mat-raised-button (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\">\n <mat-icon>\n add\n </mat-icon>\n Create\n </button>\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\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=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\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\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </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\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\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</section>" }]
|
|
7699
7700
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: AlertService }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }] });
|
|
7700
7701
|
|
|
7701
|
-
const routes$
|
|
7702
|
+
const routes$u = [
|
|
7702
7703
|
{ path: '', redirectTo: 'all', pathMatch: 'full' },
|
|
7703
7704
|
{ path: 'all', component: TechlifyUpdatesListComponent },
|
|
7704
7705
|
//fallback
|
|
@@ -7711,12 +7712,12 @@ const routes$t = [
|
|
|
7711
7712
|
class TechlifyUpdateRoutingModule {
|
|
7712
7713
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7713
7714
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
7714
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7715
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$u), RouterModule] }); }
|
|
7715
7716
|
}
|
|
7716
7717
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, decorators: [{
|
|
7717
7718
|
type: NgModule,
|
|
7718
7719
|
args: [{
|
|
7719
|
-
imports: [RouterModule.forChild(routes$
|
|
7720
|
+
imports: [RouterModule.forChild(routes$u)],
|
|
7720
7721
|
exports: [RouterModule]
|
|
7721
7722
|
}]
|
|
7722
7723
|
}] });
|
|
@@ -7910,7 +7911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7910
7911
|
args: [{ selector: 'app-techlify-update-history', template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n App Updates\n </h3>\n <form [formGroup]=\"filterFormGroup\" fxLayout=\"row wrap\" fxLayoutGap=\"0.5rem\" fxFlex=\"100%\" style=\"font-size: 12px;\">\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button (click)=\"resetFieldValue('search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field fxFlex=\"0 1 calc(100% - 0.5rem)\" fxFlex.gt-md=\"0 1 calc(15% - 0.5rem)\" appearance=\"outline\"\n fxFlex.gt-sm=\"0 1 calc(20% - 0.5rem)\">\n <input type=\"text\" matInput formControlName=\"version\" placeholder=\"Version\" autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('version').value\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('version')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n\n <table mat-table [dataSource]=\"techlifyUpdates\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\">\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=dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Course Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.title}} </td>\n </ng-container>\n\n <!--Is Pinned Column-->\n <ng-container matColumnDef=\"is_pinned\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Is Pinned </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_pinned ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <!-- Version Column -->\n <ng-container matColumnDef=\"version\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Version </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.version}} </td>\n </ng-container>\n\n <!-- Released On Column -->\n <ng-container matColumnDef=\"released_on\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Released On </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.released_on | date:'mediumDate'}} </td>\n </ng-container>\n\n <!-- Learn More Link Column -->\n <ng-container matColumnDef=\"learn_more_link\">\n <th mat-header-cell *matHeaderCellDef> Learn more link </th>\n <td mat-cell *matCellDef=\"let element\">\n <a [href]=\"element?.learn_more_link\" target=\"_blank\">\n {{element?.learn_more_link}}\n </a>\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\">\n <app-read-more [text]=\"element?.description\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.creator?.name}}\n <div fxLayout class=\"small\">\n {{element?.created_at | date : 'mediumDate'}}\n </div>\n </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\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"openUpdateView(element)\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\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</section>" }]
|
|
7911
7912
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }] });
|
|
7912
7913
|
|
|
7913
|
-
const routes$
|
|
7914
|
+
const routes$t = [
|
|
7914
7915
|
{ path: '', redirectTo: 'update-history', pathMatch: 'full' },
|
|
7915
7916
|
{ path: 'update-history', component: TechlifyUpdateHistoryComponent },
|
|
7916
7917
|
//fallback
|
|
@@ -7923,12 +7924,12 @@ const routes$s = [
|
|
|
7923
7924
|
class TechlifyUpdateHistoryRoutingModule {
|
|
7924
7925
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7925
7926
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
7926
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7927
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] }); }
|
|
7927
7928
|
}
|
|
7928
7929
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, decorators: [{
|
|
7929
7930
|
type: NgModule,
|
|
7930
7931
|
args: [{
|
|
7931
|
-
imports: [RouterModule.forChild(routes$
|
|
7932
|
+
imports: [RouterModule.forChild(routes$t)],
|
|
7932
7933
|
exports: [RouterModule]
|
|
7933
7934
|
}]
|
|
7934
7935
|
}] });
|
|
@@ -8353,30 +8354,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8353
8354
|
type: Input
|
|
8354
8355
|
}] } });
|
|
8355
8356
|
|
|
8356
|
-
const routes$
|
|
8357
|
+
const routes$s = [];
|
|
8357
8358
|
class AuditLogForModelRoutingModule {
|
|
8358
8359
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8359
8360
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8360
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8361
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] }); }
|
|
8361
8362
|
}
|
|
8362
8363
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, decorators: [{
|
|
8363
8364
|
type: NgModule,
|
|
8364
8365
|
args: [{
|
|
8365
|
-
imports: [RouterModule.forChild(routes$
|
|
8366
|
+
imports: [RouterModule.forChild(routes$s)],
|
|
8366
8367
|
exports: [RouterModule]
|
|
8367
8368
|
}]
|
|
8368
8369
|
}] });
|
|
8369
8370
|
|
|
8370
|
-
const routes$
|
|
8371
|
+
const routes$r = [];
|
|
8371
8372
|
class AuditLogViewModelRoutingModule {
|
|
8372
8373
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8373
8374
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8374
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8375
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] }); }
|
|
8375
8376
|
}
|
|
8376
8377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, decorators: [{
|
|
8377
8378
|
type: NgModule,
|
|
8378
8379
|
args: [{
|
|
8379
|
-
imports: [RouterModule.forChild(routes$
|
|
8380
|
+
imports: [RouterModule.forChild(routes$r)],
|
|
8380
8381
|
exports: [RouterModule]
|
|
8381
8382
|
}]
|
|
8382
8383
|
}] });
|
|
@@ -8406,44 +8407,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8406
8407
|
}]
|
|
8407
8408
|
}] });
|
|
8408
8409
|
|
|
8409
|
-
const routes$
|
|
8410
|
+
const routes$q = [];
|
|
8410
8411
|
class AuditLogsViewModelRoutingModule {
|
|
8411
8412
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8412
8413
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8413
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8414
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] }); }
|
|
8414
8415
|
}
|
|
8415
8416
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, decorators: [{
|
|
8416
8417
|
type: NgModule,
|
|
8417
8418
|
args: [{
|
|
8418
|
-
imports: [RouterModule.forChild(routes$
|
|
8419
|
+
imports: [RouterModule.forChild(routes$q)],
|
|
8419
8420
|
exports: [RouterModule]
|
|
8420
8421
|
}]
|
|
8421
8422
|
}] });
|
|
8422
8423
|
|
|
8423
|
-
const routes$
|
|
8424
|
+
const routes$p = [];
|
|
8424
8425
|
class AuditLogListRoutingModule {
|
|
8425
8426
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8426
8427
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8427
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8428
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] }); }
|
|
8428
8429
|
}
|
|
8429
8430
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, decorators: [{
|
|
8430
8431
|
type: NgModule,
|
|
8431
8432
|
args: [{
|
|
8432
|
-
imports: [RouterModule.forChild(routes$
|
|
8433
|
+
imports: [RouterModule.forChild(routes$p)],
|
|
8433
8434
|
exports: [RouterModule]
|
|
8434
8435
|
}]
|
|
8435
8436
|
}] });
|
|
8436
8437
|
|
|
8437
|
-
const routes$
|
|
8438
|
+
const routes$o = [];
|
|
8438
8439
|
class AuditLogListFilterRoutingModule {
|
|
8439
8440
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8440
8441
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8441
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8442
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] }); }
|
|
8442
8443
|
}
|
|
8443
8444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, decorators: [{
|
|
8444
8445
|
type: NgModule,
|
|
8445
8446
|
args: [{
|
|
8446
|
-
imports: [RouterModule.forChild(routes$
|
|
8447
|
+
imports: [RouterModule.forChild(routes$o)],
|
|
8447
8448
|
exports: [RouterModule]
|
|
8448
8449
|
}]
|
|
8449
8450
|
}] });
|
|
@@ -8624,16 +8625,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8624
8625
|
args: [{ selector: 'app-audit-log-view', template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <h3 class=\"text-center\">Audit Log</h3>\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" *ngIf=\"logInfo\">\n <div>Object Type: {{logInfo?.object_type}}</div>\n <div>Object Id: {{logInfo?.object_id}}</div>\n <div>Action: {{logInfo?.action}}</div>\n <div>Created At: {{logInfo?.created_at | date:'medium'}}</div>\n <div>Created By: {{logInfo?.user?.email}}</div>\n </div>\n\n\n <div fxLayout=\"column\" *ngIf=\"logInfo?.action !== 'deleted'\">\n <div>\n <button mat-raised-button color=\"primary\" (click)=\"showDeltaChanges = !showDeltaChanges\">\n {{showDeltaChanges?'Hide JSON Changes': 'Show JSON Changes'}}\n </button>\n </div>\n <div [hidden]=\"!showDeltaChanges\">\n <h4 class=\"font-weight-bold\" *ngIf=\"logInfo\">Changes in JSON</h4>\n <div id=\"jsondiff\"></div>\n </div>\n </div>\n\n <div class=\"container\" *ngIf=\"changeList.length > 0\">\n <h4 class=\"font-weight-bold\"> Changes in Attributes</h4>\n <table class=\"table table-striped table-sm border\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Attribute</th>\n <th scope=\"col\">Old Value</th>\n <th scope=\"col\">New Value</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let change of changeList; let i= index;\">\n <th scope=\"row\">{{i+1}}</th>\n <td>{{change?.displayAttribute}}</td>\n <td>{{change?.oldValue}}</td>\n <td>{{change?.newValue}}</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n</div>" }]
|
|
8625
8626
|
}], ctorParameters: () => [{ type: DataManager }, { type: i1$2.ActivatedRoute }, { type: i2$1.Location }] });
|
|
8626
8627
|
|
|
8627
|
-
const routes$
|
|
8628
|
+
const routes$n = [];
|
|
8628
8629
|
class AuditLogViewRoutingModule {
|
|
8629
8630
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8630
8631
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8631
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8632
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] }); }
|
|
8632
8633
|
}
|
|
8633
8634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, decorators: [{
|
|
8634
8635
|
type: NgModule,
|
|
8635
8636
|
args: [{
|
|
8636
|
-
imports: [RouterModule.forChild(routes$
|
|
8637
|
+
imports: [RouterModule.forChild(routes$n)],
|
|
8637
8638
|
exports: [RouterModule]
|
|
8638
8639
|
}]
|
|
8639
8640
|
}] });
|
|
@@ -8663,7 +8664,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8663
8664
|
}]
|
|
8664
8665
|
}] });
|
|
8665
8666
|
|
|
8666
|
-
const routes$
|
|
8667
|
+
const routes$m = [
|
|
8667
8668
|
{ path: 'log-list', component: AuditLogListComponent, canActivate: [AuthenticationGuard] },
|
|
8668
8669
|
{ path: 'log-view/:id', component: AuditLogViewComponent, canActivate: [AuthenticationGuard] },
|
|
8669
8670
|
{ path: '**', redirectTo: 'log-list', pathMatch: 'full' }
|
|
@@ -8671,12 +8672,12 @@ const routes$l = [
|
|
|
8671
8672
|
class AuditLogRoutingModule {
|
|
8672
8673
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8673
8674
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
8674
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8675
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] }); }
|
|
8675
8676
|
}
|
|
8676
8677
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, decorators: [{
|
|
8677
8678
|
type: NgModule,
|
|
8678
8679
|
args: [{
|
|
8679
|
-
imports: [RouterModule.forChild(routes$
|
|
8680
|
+
imports: [RouterModule.forChild(routes$m)],
|
|
8680
8681
|
exports: [RouterModule]
|
|
8681
8682
|
}]
|
|
8682
8683
|
}] });
|
|
@@ -9215,7 +9216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9215
9216
|
}]
|
|
9216
9217
|
}] });
|
|
9217
9218
|
|
|
9218
|
-
const routes$
|
|
9219
|
+
const routes$l = [
|
|
9219
9220
|
{
|
|
9220
9221
|
path: '',
|
|
9221
9222
|
component: LoginHistoryForUserComponent,
|
|
@@ -9225,12 +9226,12 @@ const routes$k = [
|
|
|
9225
9226
|
class LoginHistoryForUserRoutingModule {
|
|
9226
9227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9227
9228
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
9228
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9229
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] }); }
|
|
9229
9230
|
}
|
|
9230
9231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, decorators: [{
|
|
9231
9232
|
type: NgModule,
|
|
9232
9233
|
args: [{
|
|
9233
|
-
imports: [RouterModule.forChild(routes$
|
|
9234
|
+
imports: [RouterModule.forChild(routes$l)],
|
|
9234
9235
|
exports: [RouterModule]
|
|
9235
9236
|
}]
|
|
9236
9237
|
}] });
|
|
@@ -9652,14 +9653,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9652
9653
|
args: [{ selector: 'app-techlify-listing-feature', template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"features\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\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-card-content>\n </mat-card>\n </div>\n</div>" }]
|
|
9653
9654
|
}], ctorParameters: () => [{ type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }, { type: i1.MatDialog }, { type: TechlifyFeatureService }] });
|
|
9654
9655
|
|
|
9655
|
-
const routes$
|
|
9656
|
+
const routes$k = [
|
|
9656
9657
|
{
|
|
9657
9658
|
path: '',
|
|
9658
9659
|
component: TechlifyFeatureListingComponent,
|
|
9659
9660
|
canActivate: [AuthenticationGuard]
|
|
9660
9661
|
},
|
|
9661
9662
|
];
|
|
9662
|
-
const TechlifyFeatureRoutes = RouterModule.forChild(routes$
|
|
9663
|
+
const TechlifyFeatureRoutes = RouterModule.forChild(routes$k);
|
|
9663
9664
|
|
|
9664
9665
|
class TechlifyFeatureEnabledDirective {
|
|
9665
9666
|
constructor(el, featureService) {
|
|
@@ -9960,7 +9961,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9960
9961
|
args: [{ selector: 'app-change-password', template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n" }]
|
|
9961
9962
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$2.Router }, { type: CurrentUserService }, { type: i1$5.UntypedFormBuilder }, { type: ErrorHandlerService }, { type: FormValidatorService }] });
|
|
9962
9963
|
|
|
9963
|
-
const routes$
|
|
9964
|
+
const routes$j = [
|
|
9964
9965
|
{ path: '', component: ChangePasswordComponent, canActivate: [AuthenticationGuard] },
|
|
9965
9966
|
// fallback when no prior route found
|
|
9966
9967
|
{ path: '**', redirectTo: '', pathMatch: 'full' }
|
|
@@ -9968,12 +9969,12 @@ const routes$i = [
|
|
|
9968
9969
|
class ChangePasswordRoutingModule {
|
|
9969
9970
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9970
9971
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
9971
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9972
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$j), RouterModule] }); }
|
|
9972
9973
|
}
|
|
9973
9974
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, decorators: [{
|
|
9974
9975
|
type: NgModule,
|
|
9975
9976
|
args: [{
|
|
9976
|
-
imports: [RouterModule.forChild(routes$
|
|
9977
|
+
imports: [RouterModule.forChild(routes$j)],
|
|
9977
9978
|
exports: [RouterModule]
|
|
9978
9979
|
}]
|
|
9979
9980
|
}] });
|
|
@@ -10093,18 +10094,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10093
10094
|
args: [{ selector: 'forgot-password', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center mt-4\">RESET</h4>\n\n <form [formGroup]=\"forgotPasswordForm\" (ngSubmit)=\"sendOtp()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"col-12 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-50\" type=\"submit\"\n [disabled]=\"isWorking\">\n Send OTP\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"row mt-3 mr-0 ml-0\" *ngIf=\"userConfig.showSignup\">\n <div class=\"col-12 text-center\">\n <p>New to {{ userConfig.appName }}?</p>\n <button mat-button class=\"btn btn-sm btn-secondary text-white\" style=\"width: 550px;\" type=\"button\"\n [routerLink]=\"['/signup']\">\n Create an account\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#login-form-wrapper{margin-top:100px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}:host{width:100%}.white-box{background-color:#fff;padding:10px}\n"] }]
|
|
10094
10095
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$2.Router }, { type: CurrentUserService }, { type: ErrorHandlerService }, { type: CredentialsService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
10095
10096
|
|
|
10096
|
-
const routes$
|
|
10097
|
+
const routes$i = [
|
|
10097
10098
|
{ path: '', component: ForgotPasswordComponent }
|
|
10098
10099
|
];
|
|
10099
10100
|
class ForgotPasswordRoutingModule {
|
|
10100
10101
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10101
10102
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10102
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10103
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] }); }
|
|
10103
10104
|
}
|
|
10104
10105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, decorators: [{
|
|
10105
10106
|
type: NgModule,
|
|
10106
10107
|
args: [{
|
|
10107
|
-
imports: [RouterModule.forChild(routes$
|
|
10108
|
+
imports: [RouterModule.forChild(routes$i)],
|
|
10108
10109
|
exports: [RouterModule],
|
|
10109
10110
|
providers: []
|
|
10110
10111
|
}]
|
|
@@ -10316,19 +10317,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10316
10317
|
args: [{ selector: 'login', template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\" style=\"background: #fafafa;\">\n <div class=\"row w-100\">\n <div class=\"col-lg-4 col-md-6 col-sm-8 col-xs-10 col-12 mx-auto\">\n <mat-card class=\"mb-3 mt-3 w-100\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" alt=\"Logo\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\">\n <app-login-form-fields [userConfig]=\"userConfig\"></app-login-form-fields>\n </div>\n\n <div class=\"mt-3 p-0 mr-0 ml-0\" *ngIf=\"userConfig.showSignup\">\n <p>New to {{ userConfig.appName }}?</p>\n <button mat-raised-button class=\"w-100\" color=\"accent\" type=\"button\" [routerLink]=\"['/signup']\">\n Create an account\n </button>\n </div>\n </mat-card>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:40px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}#login-form-wrapper .google-button{background:#ce1d1d;color:#fff}#login-form-wrapper .facebook-button{background:#38388e;color:#fff}:host{width:100%}.white-box{background-color:#fff;padding:10px}mat-selection-list{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}mat-list-option{border:1px solid #ccc;text-align:center;border-radius:4px;padding:10px;cursor:pointer}mat-list-option:hover{background-color:#f0f0f0}\n"] }]
|
|
10317
10318
|
}], ctorParameters: () => [{ type: AlertService }, { type: i1$2.Router }, { type: AuthenticationService }, { type: CurrentUserService }, { type: StorageService }, { type: CredentialsService }, { type: i1$2.ActivatedRoute }, { type: UserConfigService }] });
|
|
10318
10319
|
|
|
10319
|
-
const routes$
|
|
10320
|
+
const routes$h = [
|
|
10320
10321
|
{ path: '', component: LoginComponent },
|
|
10321
10322
|
{ path: ':id', component: LoginComponent }
|
|
10322
10323
|
];
|
|
10323
10324
|
class LoginRoutingModule {
|
|
10324
10325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10325
10326
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10326
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10327
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] }); }
|
|
10327
10328
|
}
|
|
10328
10329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, decorators: [{
|
|
10329
10330
|
type: NgModule,
|
|
10330
10331
|
args: [{
|
|
10331
|
-
imports: [RouterModule.forChild(routes$
|
|
10332
|
+
imports: [RouterModule.forChild(routes$h)],
|
|
10332
10333
|
exports: [RouterModule],
|
|
10333
10334
|
providers: []
|
|
10334
10335
|
}]
|
|
@@ -10398,18 +10399,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10398
10399
|
type: Output
|
|
10399
10400
|
}] } });
|
|
10400
10401
|
|
|
10401
|
-
const routes$
|
|
10402
|
+
const routes$g = [
|
|
10402
10403
|
{ path: '', component: ProfileEditComponent, canActivate: [AuthenticationGuard] }
|
|
10403
10404
|
];
|
|
10404
10405
|
class ProfileRoutingModule {
|
|
10405
10406
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10406
10407
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10407
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10408
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] }); }
|
|
10408
10409
|
}
|
|
10409
10410
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, decorators: [{
|
|
10410
10411
|
type: NgModule,
|
|
10411
10412
|
args: [{
|
|
10412
|
-
imports: [RouterModule.forChild(routes$
|
|
10413
|
+
imports: [RouterModule.forChild(routes$g)],
|
|
10413
10414
|
exports: [RouterModule],
|
|
10414
10415
|
providers: []
|
|
10415
10416
|
}]
|
|
@@ -10425,9 +10426,6 @@ class RoleService {
|
|
|
10425
10426
|
updateRole(role) {
|
|
10426
10427
|
return this.http.put(`api/roles/${role.id}`, role).toPromise();
|
|
10427
10428
|
}
|
|
10428
|
-
getClientSubscriptions(filters) {
|
|
10429
|
-
return this.http.get(`api/client-subscriptions`, { params: filters }).toPromise();
|
|
10430
|
-
}
|
|
10431
10429
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleService, deps: [{ token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10432
10430
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleService, providedIn: 'root' }); }
|
|
10433
10431
|
}
|
|
@@ -10455,10 +10453,8 @@ class RoleFormComponent {
|
|
|
10455
10453
|
this.roleService = roleService;
|
|
10456
10454
|
this.modules = [];
|
|
10457
10455
|
this.isWorking = false;
|
|
10458
|
-
this.showModuleSelector = true;
|
|
10459
10456
|
this.isUpdateMode = false;
|
|
10460
10457
|
this.config = this.userConfigService.getConfig();
|
|
10461
|
-
this.showModuleSelector = this.config.roleConfig.showModuleSelectorOnForm;
|
|
10462
10458
|
}
|
|
10463
10459
|
get isAdminUser() {
|
|
10464
10460
|
return (this.credentialsService.credentials?.user?.user_type_id === 1);
|
|
@@ -10468,16 +10464,13 @@ class RoleFormComponent {
|
|
|
10468
10464
|
id: [''],
|
|
10469
10465
|
label: new UntypedFormControl('', Validators.compose([Validators.required])),
|
|
10470
10466
|
description: new UntypedFormControl(''),
|
|
10471
|
-
is_editable: [true],
|
|
10472
|
-
client_id: [this.data
|
|
10467
|
+
is_editable: [this.data?.client_id ? true : false],
|
|
10468
|
+
client_id: [this.data?.client_id ? this.data.client_id : '']
|
|
10473
10469
|
});
|
|
10474
10470
|
if (this.data.role) {
|
|
10475
10471
|
this.roleForm.patchValue(this.data.role);
|
|
10476
10472
|
this.isUpdateMode = true;
|
|
10477
10473
|
}
|
|
10478
|
-
if (this.showModuleSelector) {
|
|
10479
|
-
this.getSubscribedModules();
|
|
10480
|
-
}
|
|
10481
10474
|
}
|
|
10482
10475
|
async save() {
|
|
10483
10476
|
if (!this.roleForm.valid) {
|
|
@@ -10491,11 +10484,6 @@ class RoleFormComponent {
|
|
|
10491
10484
|
this.dialogRef.close(result);
|
|
10492
10485
|
this.isWorking = false;
|
|
10493
10486
|
}
|
|
10494
|
-
async getSubscribedModules() {
|
|
10495
|
-
let filters = {};
|
|
10496
|
-
filters.client_id = this.data.client_id;
|
|
10497
|
-
const result = await this.roleService.getClientSubscriptions(filters);
|
|
10498
|
-
}
|
|
10499
10487
|
/** Method to evaluate form fields*/
|
|
10500
10488
|
isFieldValid(field) {
|
|
10501
10489
|
return this.formValidatorService.isFieldValid(field, this.roleForm);
|
|
@@ -10505,11 +10493,11 @@ class RoleFormComponent {
|
|
|
10505
10493
|
return this.formValidatorService.getErrorMessage(field, this.roleForm, errorMessages$2);
|
|
10506
10494
|
}
|
|
10507
10495
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormComponent, deps: [{ token: AlertService }, { token: CredentialsService }, { token: i1$5.UntypedFormBuilder }, { token: FormValidatorService }, { token: UserConfigService }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: RoleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10508
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleFormComponent, selector: "role-form", ngImport: i0, template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9$1.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: "directive", type: i7.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: i7.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: i7.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: i7.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"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
10496
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleFormComponent, selector: "role-form", ngImport: i0, template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser && roleForm.get('client_id').value\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9$1.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: "directive", type: i7.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: i7.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: i7.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: i7.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"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.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: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
10509
10497
|
}
|
|
10510
10498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormComponent, decorators: [{
|
|
10511
10499
|
type: Component,
|
|
10512
|
-
args: [{ selector: 'role-form', template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>" }]
|
|
10500
|
+
args: [{ selector: 'role-form', template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser && roleForm.get('client_id').value\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>" }]
|
|
10513
10501
|
}], ctorParameters: () => [{ type: AlertService }, { type: CredentialsService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
10514
10502
|
type: Inject,
|
|
10515
10503
|
args: [MAT_DIALOG_DATA]
|
|
@@ -10833,58 +10821,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10833
10821
|
class Permission {
|
|
10834
10822
|
}
|
|
10835
10823
|
|
|
10836
|
-
|
|
10837
|
-
constructor(http, errorHandler, route) {
|
|
10838
|
-
this.http = http;
|
|
10839
|
-
this.errorHandler = errorHandler;
|
|
10840
|
-
this.route = route;
|
|
10841
|
-
}
|
|
10842
|
-
ngOnInit() {
|
|
10843
|
-
this.route.params.subscribe(params => {
|
|
10844
|
-
if (params.id !== undefined) {
|
|
10845
|
-
this.roleId = params.id;
|
|
10846
|
-
this.getRole();
|
|
10847
|
-
}
|
|
10848
|
-
});
|
|
10849
|
-
}
|
|
10850
|
-
getRole() {
|
|
10851
|
-
try {
|
|
10852
|
-
this.http.get(`api/roles/${this.roleId}`).subscribe((result) => {
|
|
10853
|
-
this.role = result.item;
|
|
10854
|
-
});
|
|
10855
|
-
}
|
|
10856
|
-
catch (error) {
|
|
10857
|
-
this.errorHandler.handleError(error);
|
|
10858
|
-
}
|
|
10859
|
-
}
|
|
10860
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, deps: [{ token: HttpService }, { token: ErrorHandlerService }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10861
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleViewComponent, selector: "app-role-view", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "directive", type: i7.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: i7.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: i7.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: i7.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"] }] }); }
|
|
10862
|
-
}
|
|
10863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, decorators: [{
|
|
10864
|
-
type: Component,
|
|
10865
|
-
args: [{ selector: 'app-role-view', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>" }]
|
|
10866
|
-
}], ctorParameters: () => [{ type: HttpService }, { type: ErrorHandlerService }, { type: i1$2.ActivatedRoute }] });
|
|
10867
|
-
|
|
10868
|
-
const routes$e = [
|
|
10824
|
+
const routes$f = [
|
|
10869
10825
|
{ path: '', component: RolesViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
10870
|
-
{
|
|
10826
|
+
{
|
|
10827
|
+
path: ':id',
|
|
10828
|
+
loadChildren: () => Promise.resolve().then(function () { return roleView_module; }).then(mod => mod.RoleViewModule),
|
|
10829
|
+
canActivate: [AuthenticationGuard]
|
|
10830
|
+
},
|
|
10871
10831
|
// fallback when no prior route found
|
|
10872
10832
|
{ path: '**', redirectTo: '', pathMatch: 'full' },
|
|
10873
10833
|
];
|
|
10874
10834
|
class RoleRoutingProvider {
|
|
10875
10835
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10876
10836
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10877
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10837
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$f), RouterModule] }); }
|
|
10878
10838
|
}
|
|
10879
10839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, decorators: [{
|
|
10880
10840
|
type: NgModule,
|
|
10881
10841
|
args: [{
|
|
10882
|
-
imports: [RouterModule.forChild(routes$
|
|
10842
|
+
imports: [RouterModule.forChild(routes$f)],
|
|
10883
10843
|
exports: [RouterModule]
|
|
10884
10844
|
}]
|
|
10885
10845
|
}] });
|
|
10886
10846
|
|
|
10887
|
-
const routes$
|
|
10847
|
+
const routes$e = [
|
|
10888
10848
|
{ path: '', component: PermissionsManagementComponent, canActivate: [AuthenticationGuard] },
|
|
10889
10849
|
// fallback when no prior route found
|
|
10890
10850
|
{ path: '**', redirectTo: '', pathMatch: 'full' },
|
|
@@ -10892,12 +10852,12 @@ const routes$d = [
|
|
|
10892
10852
|
class PermissionRoutingProvider {
|
|
10893
10853
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10894
10854
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10895
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10855
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$e), RouterModule] }); }
|
|
10896
10856
|
}
|
|
10897
10857
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, decorators: [{
|
|
10898
10858
|
type: NgModule,
|
|
10899
10859
|
args: [{
|
|
10900
|
-
imports: [RouterModule.forChild(routes$
|
|
10860
|
+
imports: [RouterModule.forChild(routes$e)],
|
|
10901
10861
|
exports: [RouterModule]
|
|
10902
10862
|
}]
|
|
10903
10863
|
}] });
|
|
@@ -10969,18 +10929,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10969
10929
|
args: [{ selector: 'signup', template: "<div class=\"h-100 row align-items-center mx-0\">\n <div class=\"col\">\n <header class=\"branding-block mb-0 mt-4\">\n <div class=\"branding text-center\">\n <a *ngIf=\"userConfig.appLogoUrl\" href=\"{{userConfig.appUrl}}\" target=\"_blank\">\n <img class=\"techlify-logo d-inline-block\" [src]=\"userConfig.appLogoUrl\" />\n </a>\n </div>\n <div class=\"product-info text-center mt-2\">\n <h3 class=\"product-name\">{{ userConfig.appName }}</h3>\n </div>\n </header>\n\n <div id=\"login-form-wrapper\"\n class=\"form-bordered mx-auto form-medium form-bordered form-centered form-horizontal mt-3 white-box\"\n style=\"width:550px\">\n\n <h4 class=\"section-title text-center\">REGISTER</h4>\n\n <form [formGroup]=\"signUpForm\" (ngSubmit)=\"signUp()\" class=\"pt-4 pr-4 pl-4 pb-1 mt-4 ml-4 mr-4 mb-1\">\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"business_name\" placeholder=\"Business / Company Name\"\n type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('business_name')\">{{getErrorMessage('business_name')}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"business_email\" placeholder=\"Business / Company Email\"\n type=\"email\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('business_email')\">{{getErrorMessage('business_email')}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"user_name\" placeholder=\"User Name\" type=\"text\"\n autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('user_name')\">{{getErrorMessage('user_name')}}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"form-group row\">\n <mat-form-field class=\"col-12\">\n <input matInput formControlName=\"user_email\" placeholder=\"User Email\" type=\"email\"\n autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('user_email')\">{{getErrorMessage('user_email')}}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"row mt-4\">\n <div class=\"col-12 text-center\">\n <button mat-button type=\"submit\" class=\"btn btn-sm btn-primary w-100\"\n [disabled]=\"isWorking\">Register</button>\n </div>\n </div>\n <div class=\"row mt-2\" *ngIf=\"userConfig.showSocialLogin\">\n <div class=\"col-6\">\n <button class=\"col-12 google-button\" mat-raised-button type=\"button\"\n (click)=\"redirect('google')\">Google</button>\n </div>\n <div class=\"col-6\">\n <button class=\"col-12 facebook-button\" mat-raised-button type=\"button\"\n (click)=\"redirect('facebook')\">Facebook</button>\n </div>\n </div>\n </form>\n </div>\n <div class=\"row mt-3 mr-0 ml-0\">\n <div class=\"col-12 text-center\">\n <p>Already an {{ userConfig.appName }} member?</p>\n <button mat-button class=\"btn btn-sm btn-secondary text-white\" style=\"width: 550px;\" type=\"button\"\n [routerLink]=\"['/login']\">\n Continue with login\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["#login-form-wrapper{margin-top:40px}#login-form-wrapper .branding-block{margin-bottom:60px}#login-form-wrapper .techlify-logo{height:40px;padding-right:10px;bottom:10px;position:relative}#login-form-wrapper .company-name{margin-bottom:0}#login-form-wrapper .google-button{background:#ce1d1d;color:#fff}#login-form-wrapper .facebook-button{background:#38388e;color:#fff}:host{width:100%}.white-box{background-color:#fff;padding:10px}mat-selection-list{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}mat-list-option{border:1px solid #ccc;text-align:center;border-radius:4px;padding:10px;cursor:pointer}mat-list-option:hover{background-color:#f0f0f0}\n"] }]
|
|
10970
10930
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$2.Router }, { type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
10971
10931
|
|
|
10972
|
-
const routes$
|
|
10932
|
+
const routes$d = [
|
|
10973
10933
|
{ path: '', component: SignUpComponent }
|
|
10974
10934
|
];
|
|
10975
10935
|
class SignupRoutingModule {
|
|
10976
10936
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10977
10937
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
10978
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10938
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$d), RouterModule] }); }
|
|
10979
10939
|
}
|
|
10980
10940
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, decorators: [{
|
|
10981
10941
|
type: NgModule,
|
|
10982
10942
|
args: [{
|
|
10983
|
-
imports: [RouterModule.forChild(routes$
|
|
10943
|
+
imports: [RouterModule.forChild(routes$d)],
|
|
10984
10944
|
exports: [RouterModule],
|
|
10985
10945
|
providers: []
|
|
10986
10946
|
}]
|
|
@@ -11200,7 +11160,6 @@ class RoleModule {
|
|
|
11200
11160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11201
11161
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, declarations: [RoleFormComponent,
|
|
11202
11162
|
RolesViewAllComponent,
|
|
11203
|
-
RoleViewComponent,
|
|
11204
11163
|
RoleFormButtonComponent], imports: [CommonModule,
|
|
11205
11164
|
RoleRoutingProvider,
|
|
11206
11165
|
MaterialModule,
|
|
@@ -11209,7 +11168,8 @@ class RoleModule {
|
|
|
11209
11168
|
ReactiveFormsModule,
|
|
11210
11169
|
InfiniteScrollModule,
|
|
11211
11170
|
MatProgressBarModule], exports: [RolesViewAllComponent,
|
|
11212
|
-
RoleFormButtonComponent
|
|
11171
|
+
RoleFormButtonComponent,
|
|
11172
|
+
RoleFormComponent] }); }
|
|
11213
11173
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, imports: [CommonModule,
|
|
11214
11174
|
RoleRoutingProvider,
|
|
11215
11175
|
MaterialModule,
|
|
@@ -11235,12 +11195,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
11235
11195
|
declarations: [
|
|
11236
11196
|
RoleFormComponent,
|
|
11237
11197
|
RolesViewAllComponent,
|
|
11238
|
-
RoleViewComponent,
|
|
11239
11198
|
RoleFormButtonComponent
|
|
11240
11199
|
],
|
|
11241
11200
|
exports: [
|
|
11242
11201
|
RolesViewAllComponent,
|
|
11243
|
-
RoleFormButtonComponent
|
|
11202
|
+
RoleFormButtonComponent,
|
|
11203
|
+
RoleFormComponent
|
|
11244
11204
|
]
|
|
11245
11205
|
}]
|
|
11246
11206
|
}] });
|
|
@@ -11250,6 +11210,101 @@ var role_module = /*#__PURE__*/Object.freeze({
|
|
|
11250
11210
|
RoleModule: RoleModule
|
|
11251
11211
|
});
|
|
11252
11212
|
|
|
11213
|
+
class RoleViewComponent {
|
|
11214
|
+
constructor(http, errorHandler, route) {
|
|
11215
|
+
this.http = http;
|
|
11216
|
+
this.errorHandler = errorHandler;
|
|
11217
|
+
this.route = route;
|
|
11218
|
+
}
|
|
11219
|
+
ngOnInit() {
|
|
11220
|
+
this.route.params.subscribe(params => {
|
|
11221
|
+
if (params.id !== undefined) {
|
|
11222
|
+
this.roleId = params.id;
|
|
11223
|
+
this.getRole();
|
|
11224
|
+
}
|
|
11225
|
+
});
|
|
11226
|
+
}
|
|
11227
|
+
getRole() {
|
|
11228
|
+
try {
|
|
11229
|
+
this.http.get(`api/roles/${this.roleId}`).subscribe((result) => {
|
|
11230
|
+
this.role = result.item;
|
|
11231
|
+
});
|
|
11232
|
+
}
|
|
11233
|
+
catch (error) {
|
|
11234
|
+
this.errorHandler.handleError(error);
|
|
11235
|
+
}
|
|
11236
|
+
}
|
|
11237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, deps: [{ token: HttpService }, { token: ErrorHandlerService }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleViewComponent, selector: "app-role-view", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "directive", type: i7.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: i7.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: i7.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: i7.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"] }] }); }
|
|
11239
|
+
}
|
|
11240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, decorators: [{
|
|
11241
|
+
type: Component,
|
|
11242
|
+
args: [{ selector: 'app-role-view', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>" }]
|
|
11243
|
+
}], ctorParameters: () => [{ type: HttpService }, { type: ErrorHandlerService }, { type: i1$2.ActivatedRoute }] });
|
|
11244
|
+
|
|
11245
|
+
const routes$c = [
|
|
11246
|
+
{
|
|
11247
|
+
path: '**',
|
|
11248
|
+
component: RoleViewComponent,
|
|
11249
|
+
canActivate: [AuthenticationGuard],
|
|
11250
|
+
},
|
|
11251
|
+
];
|
|
11252
|
+
class RoleViewRoutingModule {
|
|
11253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11254
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
|
|
11255
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] }); }
|
|
11256
|
+
}
|
|
11257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, decorators: [{
|
|
11258
|
+
type: NgModule,
|
|
11259
|
+
args: [{
|
|
11260
|
+
imports: [RouterModule.forChild(routes$c)],
|
|
11261
|
+
exports: [RouterModule]
|
|
11262
|
+
}]
|
|
11263
|
+
}] });
|
|
11264
|
+
|
|
11265
|
+
class RoleViewModule {
|
|
11266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11267
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, declarations: [RoleViewComponent], imports: [CommonModule,
|
|
11268
|
+
RoleViewRoutingModule,
|
|
11269
|
+
MaterialModule,
|
|
11270
|
+
FlexLayoutModule,
|
|
11271
|
+
FormsModule,
|
|
11272
|
+
ReactiveFormsModule,
|
|
11273
|
+
InfiniteScrollModule], exports: [RoleViewComponent] }); }
|
|
11274
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, imports: [CommonModule,
|
|
11275
|
+
RoleViewRoutingModule,
|
|
11276
|
+
MaterialModule,
|
|
11277
|
+
FlexLayoutModule,
|
|
11278
|
+
FormsModule,
|
|
11279
|
+
ReactiveFormsModule,
|
|
11280
|
+
InfiniteScrollModule] }); }
|
|
11281
|
+
}
|
|
11282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, decorators: [{
|
|
11283
|
+
type: NgModule,
|
|
11284
|
+
args: [{
|
|
11285
|
+
imports: [
|
|
11286
|
+
CommonModule,
|
|
11287
|
+
RoleViewRoutingModule,
|
|
11288
|
+
MaterialModule,
|
|
11289
|
+
FlexLayoutModule,
|
|
11290
|
+
FormsModule,
|
|
11291
|
+
ReactiveFormsModule,
|
|
11292
|
+
InfiniteScrollModule
|
|
11293
|
+
],
|
|
11294
|
+
declarations: [
|
|
11295
|
+
RoleViewComponent,
|
|
11296
|
+
],
|
|
11297
|
+
exports: [
|
|
11298
|
+
RoleViewComponent
|
|
11299
|
+
]
|
|
11300
|
+
}]
|
|
11301
|
+
}] });
|
|
11302
|
+
|
|
11303
|
+
var roleView_module = /*#__PURE__*/Object.freeze({
|
|
11304
|
+
__proto__: null,
|
|
11305
|
+
RoleViewModule: RoleViewModule
|
|
11306
|
+
});
|
|
11307
|
+
|
|
11253
11308
|
class PermissionModule {
|
|
11254
11309
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11255
11310
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, declarations: [PermissionsManagementComponent], imports: [CommonModule,
|
|
@@ -14885,5 +14940,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14885
14940
|
* Generated bundle index. Do not edit.
|
|
14886
14941
|
*/
|
|
14887
14942
|
|
|
14888
|
-
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
|
|
14943
|
+
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AlertService, ApiPrefixInterceptor, AppAdminHomeComponent, AppAdminModule, AppAdminUserViewComponent, AppAdminUserViewModule, AuditLogForModelComponent, AuditLogForModelModule, AuditLogForModelRoutingModule, AuditLogListComponent, AuditLogListFilterComponent, AuditLogListFilterModule, AuditLogListFilterRoutingModule, AuditLogListModule, AuditLogListRoutingModule, AuditLogModule, AuditLogRoutingModule, AuditLogViewComponent, AuditLogViewModelComponent, AuditLogViewModelModule, AuditLogViewModelRoutingModule, AuditLogViewModule, AuditLogViewRoutingModule, AuditLogsViewModelComponent, AuditLogsViewModelModule, AuditLogsViewModelRoutingModule, AuthenticationGuard, AuthenticationService, CacheInterceptor, ChangePasswordModule, ClientService, ColumnConfig, ColumnSelectorComponent, ColumnSelectorModule, CommentFormComponent, CompanyInfoDisplayComponent, CompanyInformationComponent, ConfigService, CoreModule, CredentialsService, CurrentUserService, CustomIconComponent, CustomIconModule, DEFAULT_SELECTED_VALUE, DataManager, DataTable, DataTableComponent, DataTableModule, DateUtils, DateValidator, DocumentViewerComponent, DocumentViewerModule, EmailSubscriptionForUserComponent, EmailSubscriptionForUserModule, EmailSubscriptionForUserRoutingModule, EmailSubscriptionModule, EmailSubscriptionRoutingModule, EmailSubscriptionTypeFormComponent, EmailSubscriptionTypeFormModule, EmailSubscriptionTypeFormRoutingModule, EmailSubscriptionTypeListComponent, EmailSubscriptionTypeListModule, EmailSubscriptionTypeListRoutingModule, EmailSubscriptionTypeModule, EmailSubscriptionTypeRoutingModule, EmailSubscriptionUserFormComponent, EmailSubscriptionUserFormModule, EmailSubscriptionUserFormRoutingModule, EmailSubscriptionUserListComponent, EmailSubscriptionUserListFilterComponent, EmailSubscriptionUserListFilterModule, EmailSubscriptionUserListFilterRoutingModule, EmailSubscriptionUserListModule, EmailSubscriptionUserListRoutingModule, EmailSubscriptionUserModule, EmailSubscriptionUserRoutingModule, EntityFileFormComponent, EntityFileService, EntityFilesViewAllComponent, EntityFilesViewAllModule, EnvironmentService, ErrorHandlerInterceptor, ErrorHandlerService, ErrorSnackComponent, ExportExcelButtonComponent, ExportExcelModule, FileDragdropUploaderComponent, FileDragdropUploaderModule, FileDropperComponent, FileDropperConfig, FileDropperModule, FilterService, ForgotPasswordComponent, ForgotPasswordModule, ForgotPasswordRoutingModule, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormComponentInterface, TechlifyIconComponent, TechlifyIconModule, TechlifyListingControllerInterface, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyServiceBaseClass, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr };
|
|
14889
14944
|
//# sourceMappingURL=ngx-techlify-core.mjs.map
|