ngx-techlify-core 18.34.0 → 18.35.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/column-selector/column-config.model.mjs +1 -1
- package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +53 -38
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.mjs +18 -0
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.mjs +42 -0
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +40 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.mjs +18 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +70 -0
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +48 -0
- package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +18 -0
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/ngx-techlify-core.mjs +381 -160
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/column-selector/column-config.model.d.ts +1 -0
- package/lib/column-selector/column-selector/column-selector.component.d.ts +7 -3
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.d.ts +7 -0
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.d.ts +17 -0
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +13 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.d.ts +7 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.d.ts +20 -0
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +15 -0
- package/lib/timeline-activity/timeline-activity.service.d.ts +8 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -4673,7 +4673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4673
4673
|
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"] }]
|
|
4674
4674
|
}], ctorParameters: () => [{ type: UserService }, { type: i1$1.ActivatedRoute }, { type: ConfigService }, { type: HttpService }, { type: i1.MatDialog }, { type: CurrentUserService }] });
|
|
4675
4675
|
|
|
4676
|
-
const routes$
|
|
4676
|
+
const routes$G = [
|
|
4677
4677
|
{ path: '', component: UsersViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
4678
4678
|
{ path: ':id', component: UserViewComponent, canActivate: [AuthenticationGuard] },
|
|
4679
4679
|
{ path: ':id/app-admin-view', loadChildren: () => Promise.resolve().then(function () { return appAdminUserView_module; }).then(mod => mod.AppAdminUserViewModule), canActivate: [AuthenticationGuard] },
|
|
@@ -4684,12 +4684,12 @@ const routes$E = [
|
|
|
4684
4684
|
class UserRoutingProvider {
|
|
4685
4685
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4686
4686
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
4687
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
4687
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, imports: [RouterModule.forChild(routes$G), RouterModule] }); }
|
|
4688
4688
|
}
|
|
4689
4689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRoutingProvider, decorators: [{
|
|
4690
4690
|
type: NgModule,
|
|
4691
4691
|
args: [{
|
|
4692
|
-
imports: [RouterModule.forChild(routes$
|
|
4692
|
+
imports: [RouterModule.forChild(routes$G)],
|
|
4693
4693
|
exports: [RouterModule]
|
|
4694
4694
|
}]
|
|
4695
4695
|
}] });
|
|
@@ -6088,16 +6088,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6088
6088
|
}]
|
|
6089
6089
|
}] });
|
|
6090
6090
|
|
|
6091
|
-
const routes$
|
|
6091
|
+
const routes$F = [];
|
|
6092
6092
|
class TimelineFilterRoutingModule {
|
|
6093
6093
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6094
6094
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6095
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6095
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, imports: [RouterModule.forChild(routes$F), RouterModule] }); }
|
|
6096
6096
|
}
|
|
6097
6097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineFilterRoutingModule, decorators: [{
|
|
6098
6098
|
type: NgModule,
|
|
6099
6099
|
args: [{
|
|
6100
|
-
imports: [RouterModule.forChild(routes$
|
|
6100
|
+
imports: [RouterModule.forChild(routes$F)],
|
|
6101
6101
|
exports: [RouterModule]
|
|
6102
6102
|
}]
|
|
6103
6103
|
}] });
|
|
@@ -6174,16 +6174,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6174
6174
|
}]
|
|
6175
6175
|
}] });
|
|
6176
6176
|
|
|
6177
|
-
const routes$
|
|
6177
|
+
const routes$E = [];
|
|
6178
6178
|
class TechlifyNotificationRoutingModule {
|
|
6179
6179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6180
6180
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6181
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6181
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, imports: [RouterModule.forChild(routes$E), RouterModule] }); }
|
|
6182
6182
|
}
|
|
6183
6183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationRoutingModule, decorators: [{
|
|
6184
6184
|
type: NgModule,
|
|
6185
6185
|
args: [{
|
|
6186
|
-
imports: [RouterModule.forChild(routes$
|
|
6186
|
+
imports: [RouterModule.forChild(routes$E)],
|
|
6187
6187
|
exports: [RouterModule]
|
|
6188
6188
|
}]
|
|
6189
6189
|
}] });
|
|
@@ -6275,7 +6275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6275
6275
|
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"] }]
|
|
6276
6276
|
}], ctorParameters: () => [{ type: TechlifyNotificationTypeService }, { type: TechlifyNotificationSubscriptionService }] });
|
|
6277
6277
|
|
|
6278
|
-
const routes$
|
|
6278
|
+
const routes$D = [
|
|
6279
6279
|
{
|
|
6280
6280
|
path: '',
|
|
6281
6281
|
component: TechlifyNotificationForUserComponent,
|
|
@@ -6285,12 +6285,12 @@ const routes$B = [
|
|
|
6285
6285
|
class TechlifyNotificationForUserRoutingModule {
|
|
6286
6286
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6287
6287
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6288
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6288
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, imports: [RouterModule.forChild(routes$D), RouterModule] }); }
|
|
6289
6289
|
}
|
|
6290
6290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotificationForUserRoutingModule, decorators: [{
|
|
6291
6291
|
type: NgModule,
|
|
6292
6292
|
args: [{
|
|
6293
|
-
imports: [RouterModule.forChild(routes$
|
|
6293
|
+
imports: [RouterModule.forChild(routes$D)],
|
|
6294
6294
|
exports: [RouterModule]
|
|
6295
6295
|
}]
|
|
6296
6296
|
}] });
|
|
@@ -6329,16 +6329,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6329
6329
|
* Public API Surface of techlify-notifications
|
|
6330
6330
|
*/
|
|
6331
6331
|
|
|
6332
|
-
const routes$
|
|
6332
|
+
const routes$C = [];
|
|
6333
6333
|
class EmailSubscriptionRoutingModule {
|
|
6334
6334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6335
6335
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6336
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6336
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, imports: [RouterModule.forChild(routes$C), RouterModule] }); }
|
|
6337
6337
|
}
|
|
6338
6338
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionRoutingModule, decorators: [{
|
|
6339
6339
|
type: NgModule,
|
|
6340
6340
|
args: [{
|
|
6341
|
-
imports: [RouterModule.forChild(routes$
|
|
6341
|
+
imports: [RouterModule.forChild(routes$C)],
|
|
6342
6342
|
exports: [RouterModule]
|
|
6343
6343
|
}]
|
|
6344
6344
|
}] });
|
|
@@ -6361,16 +6361,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6361
6361
|
}]
|
|
6362
6362
|
}] });
|
|
6363
6363
|
|
|
6364
|
-
const routes$
|
|
6364
|
+
const routes$B = [];
|
|
6365
6365
|
class EmailSubscriptionUserRoutingModule {
|
|
6366
6366
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6367
6367
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6368
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6368
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, imports: [RouterModule.forChild(routes$B), RouterModule] }); }
|
|
6369
6369
|
}
|
|
6370
6370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserRoutingModule, decorators: [{
|
|
6371
6371
|
type: NgModule,
|
|
6372
6372
|
args: [{
|
|
6373
|
-
imports: [RouterModule.forChild(routes$
|
|
6373
|
+
imports: [RouterModule.forChild(routes$B)],
|
|
6374
6374
|
exports: [RouterModule]
|
|
6375
6375
|
}]
|
|
6376
6376
|
}] });
|
|
@@ -6393,16 +6393,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6393
6393
|
}]
|
|
6394
6394
|
}] });
|
|
6395
6395
|
|
|
6396
|
-
const routes$
|
|
6396
|
+
const routes$A = [];
|
|
6397
6397
|
class EmailSubscriptionUserFormRoutingModule {
|
|
6398
6398
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6399
6399
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6400
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6400
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, imports: [RouterModule.forChild(routes$A), RouterModule] }); }
|
|
6401
6401
|
}
|
|
6402
6402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserFormRoutingModule, decorators: [{
|
|
6403
6403
|
type: NgModule,
|
|
6404
6404
|
args: [{
|
|
6405
|
-
imports: [RouterModule.forChild(routes$
|
|
6405
|
+
imports: [RouterModule.forChild(routes$A)],
|
|
6406
6406
|
exports: [RouterModule]
|
|
6407
6407
|
}]
|
|
6408
6408
|
}] });
|
|
@@ -6707,7 +6707,7 @@ const esulr = {
|
|
|
6707
6707
|
redirectTo: '/'
|
|
6708
6708
|
}
|
|
6709
6709
|
};
|
|
6710
|
-
const routes$
|
|
6710
|
+
const routes$z = [
|
|
6711
6711
|
{
|
|
6712
6712
|
path: '',
|
|
6713
6713
|
component: EmailSubscriptionUserListComponent,
|
|
@@ -6718,26 +6718,26 @@ const routes$x = [
|
|
|
6718
6718
|
class EmailSubscriptionUserListRoutingModule {
|
|
6719
6719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6720
6720
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6721
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6721
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, imports: [RouterModule.forChild(routes$z), RouterModule] }); }
|
|
6722
6722
|
}
|
|
6723
6723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListRoutingModule, decorators: [{
|
|
6724
6724
|
type: NgModule,
|
|
6725
6725
|
args: [{
|
|
6726
|
-
imports: [RouterModule.forChild(routes$
|
|
6726
|
+
imports: [RouterModule.forChild(routes$z)],
|
|
6727
6727
|
exports: [RouterModule]
|
|
6728
6728
|
}]
|
|
6729
6729
|
}] });
|
|
6730
6730
|
|
|
6731
|
-
const routes$
|
|
6731
|
+
const routes$y = [];
|
|
6732
6732
|
class EmailSubscriptionUserListFilterRoutingModule {
|
|
6733
6733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6734
6734
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6735
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6735
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, imports: [RouterModule.forChild(routes$y), RouterModule] }); }
|
|
6736
6736
|
}
|
|
6737
6737
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionUserListFilterRoutingModule, decorators: [{
|
|
6738
6738
|
type: NgModule,
|
|
6739
6739
|
args: [{
|
|
6740
|
-
imports: [RouterModule.forChild(routes$
|
|
6740
|
+
imports: [RouterModule.forChild(routes$y)],
|
|
6741
6741
|
exports: [RouterModule]
|
|
6742
6742
|
}]
|
|
6743
6743
|
}] });
|
|
@@ -6810,16 +6810,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6810
6810
|
}]
|
|
6811
6811
|
}] });
|
|
6812
6812
|
|
|
6813
|
-
const routes$
|
|
6813
|
+
const routes$x = [];
|
|
6814
6814
|
class EmailSubscriptionTypeRoutingModule {
|
|
6815
6815
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6816
6816
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6817
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6817
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, imports: [RouterModule.forChild(routes$x), RouterModule] }); }
|
|
6818
6818
|
}
|
|
6819
6819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeRoutingModule, decorators: [{
|
|
6820
6820
|
type: NgModule,
|
|
6821
6821
|
args: [{
|
|
6822
|
-
imports: [RouterModule.forChild(routes$
|
|
6822
|
+
imports: [RouterModule.forChild(routes$x)],
|
|
6823
6823
|
exports: [RouterModule]
|
|
6824
6824
|
}]
|
|
6825
6825
|
}] });
|
|
@@ -6842,16 +6842,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6842
6842
|
}]
|
|
6843
6843
|
}] });
|
|
6844
6844
|
|
|
6845
|
-
const routes$
|
|
6845
|
+
const routes$w = [];
|
|
6846
6846
|
class EmailSubscriptionTypeFormRoutingModule {
|
|
6847
6847
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6848
6848
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
6849
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
6849
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, imports: [RouterModule.forChild(routes$w), RouterModule] }); }
|
|
6850
6850
|
}
|
|
6851
6851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeFormRoutingModule, decorators: [{
|
|
6852
6852
|
type: NgModule,
|
|
6853
6853
|
args: [{
|
|
6854
|
-
imports: [RouterModule.forChild(routes$
|
|
6854
|
+
imports: [RouterModule.forChild(routes$w)],
|
|
6855
6855
|
exports: [RouterModule]
|
|
6856
6856
|
}]
|
|
6857
6857
|
}] });
|
|
@@ -7119,7 +7119,7 @@ const estlr = {
|
|
|
7119
7119
|
redirectTo: '/'
|
|
7120
7120
|
}
|
|
7121
7121
|
};
|
|
7122
|
-
const routes$
|
|
7122
|
+
const routes$v = [
|
|
7123
7123
|
{
|
|
7124
7124
|
path: '',
|
|
7125
7125
|
component: EmailSubscriptionTypeListComponent,
|
|
@@ -7130,12 +7130,12 @@ const routes$t = [
|
|
|
7130
7130
|
class EmailSubscriptionTypeListRoutingModule {
|
|
7131
7131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7132
7132
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7133
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7133
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, imports: [RouterModule.forChild(routes$v), RouterModule] }); }
|
|
7134
7134
|
}
|
|
7135
7135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionTypeListRoutingModule, decorators: [{
|
|
7136
7136
|
type: NgModule,
|
|
7137
7137
|
args: [{
|
|
7138
|
-
imports: [RouterModule.forChild(routes$
|
|
7138
|
+
imports: [RouterModule.forChild(routes$v)],
|
|
7139
7139
|
exports: [RouterModule]
|
|
7140
7140
|
}]
|
|
7141
7141
|
}] });
|
|
@@ -7241,7 +7241,7 @@ const esfur = {
|
|
|
7241
7241
|
only: ['client_admin']
|
|
7242
7242
|
}
|
|
7243
7243
|
};
|
|
7244
|
-
const routes$
|
|
7244
|
+
const routes$u = [
|
|
7245
7245
|
{
|
|
7246
7246
|
path: '',
|
|
7247
7247
|
component: EmailSubscriptionForUserComponent,
|
|
@@ -7252,12 +7252,12 @@ const routes$s = [
|
|
|
7252
7252
|
class EmailSubscriptionForUserRoutingModule {
|
|
7253
7253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7254
7254
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7255
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7255
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, imports: [RouterModule.forChild(routes$u), RouterModule] }); }
|
|
7256
7256
|
}
|
|
7257
7257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EmailSubscriptionForUserRoutingModule, decorators: [{
|
|
7258
7258
|
type: NgModule,
|
|
7259
7259
|
args: [{
|
|
7260
|
-
imports: [RouterModule.forChild(routes$
|
|
7260
|
+
imports: [RouterModule.forChild(routes$u)],
|
|
7261
7261
|
exports: [RouterModule]
|
|
7262
7262
|
}]
|
|
7263
7263
|
}] });
|
|
@@ -7594,7 +7594,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7594
7594
|
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>" }]
|
|
7595
7595
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: AlertService }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }] });
|
|
7596
7596
|
|
|
7597
|
-
const routes$
|
|
7597
|
+
const routes$t = [
|
|
7598
7598
|
{ path: '', redirectTo: 'all', pathMatch: 'full' },
|
|
7599
7599
|
{ path: 'all', component: TechlifyUpdatesListComponent },
|
|
7600
7600
|
//fallback
|
|
@@ -7607,12 +7607,12 @@ const routes$r = [
|
|
|
7607
7607
|
class TechlifyUpdateRoutingModule {
|
|
7608
7608
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7609
7609
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7610
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7610
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] }); }
|
|
7611
7611
|
}
|
|
7612
7612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateRoutingModule, decorators: [{
|
|
7613
7613
|
type: NgModule,
|
|
7614
7614
|
args: [{
|
|
7615
|
-
imports: [RouterModule.forChild(routes$
|
|
7615
|
+
imports: [RouterModule.forChild(routes$t)],
|
|
7616
7616
|
exports: [RouterModule]
|
|
7617
7617
|
}]
|
|
7618
7618
|
}] });
|
|
@@ -7806,7 +7806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
7806
7806
|
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>" }]
|
|
7807
7807
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: TechlifyUpdateService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }] });
|
|
7808
7808
|
|
|
7809
|
-
const routes$
|
|
7809
|
+
const routes$s = [
|
|
7810
7810
|
{ path: '', redirectTo: 'update-history', pathMatch: 'full' },
|
|
7811
7811
|
{ path: 'update-history', component: TechlifyUpdateHistoryComponent },
|
|
7812
7812
|
//fallback
|
|
@@ -7819,12 +7819,12 @@ const routes$q = [
|
|
|
7819
7819
|
class TechlifyUpdateHistoryRoutingModule {
|
|
7820
7820
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7821
7821
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
7822
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$
|
|
7822
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] }); }
|
|
7823
7823
|
}
|
|
7824
7824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyUpdateHistoryRoutingModule, decorators: [{
|
|
7825
7825
|
type: NgModule,
|
|
7826
7826
|
args: [{
|
|
7827
|
-
imports: [RouterModule.forChild(routes$
|
|
7827
|
+
imports: [RouterModule.forChild(routes$s)],
|
|
7828
7828
|
exports: [RouterModule]
|
|
7829
7829
|
}]
|
|
7830
7830
|
}] });
|
|
@@ -8249,30 +8249,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8249
8249
|
type: Input
|
|
8250
8250
|
}] } });
|
|
8251
8251
|
|
|
8252
|
-
const routes$
|
|
8252
|
+
const routes$r = [];
|
|
8253
8253
|
class AuditLogForModelRoutingModule {
|
|
8254
8254
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8255
8255
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8256
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8256
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] }); }
|
|
8257
8257
|
}
|
|
8258
8258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogForModelRoutingModule, decorators: [{
|
|
8259
8259
|
type: NgModule,
|
|
8260
8260
|
args: [{
|
|
8261
|
-
imports: [RouterModule.forChild(routes$
|
|
8261
|
+
imports: [RouterModule.forChild(routes$r)],
|
|
8262
8262
|
exports: [RouterModule]
|
|
8263
8263
|
}]
|
|
8264
8264
|
}] });
|
|
8265
8265
|
|
|
8266
|
-
const routes$
|
|
8266
|
+
const routes$q = [];
|
|
8267
8267
|
class AuditLogViewModelRoutingModule {
|
|
8268
8268
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8269
8269
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8270
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8270
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] }); }
|
|
8271
8271
|
}
|
|
8272
8272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewModelRoutingModule, decorators: [{
|
|
8273
8273
|
type: NgModule,
|
|
8274
8274
|
args: [{
|
|
8275
|
-
imports: [RouterModule.forChild(routes$
|
|
8275
|
+
imports: [RouterModule.forChild(routes$q)],
|
|
8276
8276
|
exports: [RouterModule]
|
|
8277
8277
|
}]
|
|
8278
8278
|
}] });
|
|
@@ -8302,44 +8302,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8302
8302
|
}]
|
|
8303
8303
|
}] });
|
|
8304
8304
|
|
|
8305
|
-
const routes$
|
|
8305
|
+
const routes$p = [];
|
|
8306
8306
|
class AuditLogsViewModelRoutingModule {
|
|
8307
8307
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8308
8308
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8309
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8309
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] }); }
|
|
8310
8310
|
}
|
|
8311
8311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogsViewModelRoutingModule, decorators: [{
|
|
8312
8312
|
type: NgModule,
|
|
8313
8313
|
args: [{
|
|
8314
|
-
imports: [RouterModule.forChild(routes$
|
|
8314
|
+
imports: [RouterModule.forChild(routes$p)],
|
|
8315
8315
|
exports: [RouterModule]
|
|
8316
8316
|
}]
|
|
8317
8317
|
}] });
|
|
8318
8318
|
|
|
8319
|
-
const routes$
|
|
8319
|
+
const routes$o = [];
|
|
8320
8320
|
class AuditLogListRoutingModule {
|
|
8321
8321
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8322
8322
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8323
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8323
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] }); }
|
|
8324
8324
|
}
|
|
8325
8325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListRoutingModule, decorators: [{
|
|
8326
8326
|
type: NgModule,
|
|
8327
8327
|
args: [{
|
|
8328
|
-
imports: [RouterModule.forChild(routes$
|
|
8328
|
+
imports: [RouterModule.forChild(routes$o)],
|
|
8329
8329
|
exports: [RouterModule]
|
|
8330
8330
|
}]
|
|
8331
8331
|
}] });
|
|
8332
8332
|
|
|
8333
|
-
const routes$
|
|
8333
|
+
const routes$n = [];
|
|
8334
8334
|
class AuditLogListFilterRoutingModule {
|
|
8335
8335
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8336
8336
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8337
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8337
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] }); }
|
|
8338
8338
|
}
|
|
8339
8339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogListFilterRoutingModule, decorators: [{
|
|
8340
8340
|
type: NgModule,
|
|
8341
8341
|
args: [{
|
|
8342
|
-
imports: [RouterModule.forChild(routes$
|
|
8342
|
+
imports: [RouterModule.forChild(routes$n)],
|
|
8343
8343
|
exports: [RouterModule]
|
|
8344
8344
|
}]
|
|
8345
8345
|
}] });
|
|
@@ -8520,16 +8520,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8520
8520
|
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>" }]
|
|
8521
8521
|
}], ctorParameters: () => [{ type: DataManager }, { type: i1$1.ActivatedRoute }, { type: i3.Location }] });
|
|
8522
8522
|
|
|
8523
|
-
const routes$
|
|
8523
|
+
const routes$m = [];
|
|
8524
8524
|
class AuditLogViewRoutingModule {
|
|
8525
8525
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8526
8526
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8527
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8527
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] }); }
|
|
8528
8528
|
}
|
|
8529
8529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogViewRoutingModule, decorators: [{
|
|
8530
8530
|
type: NgModule,
|
|
8531
8531
|
args: [{
|
|
8532
|
-
imports: [RouterModule.forChild(routes$
|
|
8532
|
+
imports: [RouterModule.forChild(routes$m)],
|
|
8533
8533
|
exports: [RouterModule]
|
|
8534
8534
|
}]
|
|
8535
8535
|
}] });
|
|
@@ -8559,7 +8559,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8559
8559
|
}]
|
|
8560
8560
|
}] });
|
|
8561
8561
|
|
|
8562
|
-
const routes$
|
|
8562
|
+
const routes$l = [
|
|
8563
8563
|
{ path: 'log-list', component: AuditLogListComponent, canActivate: [AuthenticationGuard] },
|
|
8564
8564
|
{ path: 'log-view/:id', component: AuditLogViewComponent, canActivate: [AuthenticationGuard] },
|
|
8565
8565
|
{ path: '**', redirectTo: 'log-list', pathMatch: 'full' }
|
|
@@ -8567,12 +8567,12 @@ const routes$j = [
|
|
|
8567
8567
|
class AuditLogRoutingModule {
|
|
8568
8568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8569
8569
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
8570
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$
|
|
8570
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] }); }
|
|
8571
8571
|
}
|
|
8572
8572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogRoutingModule, decorators: [{
|
|
8573
8573
|
type: NgModule,
|
|
8574
8574
|
args: [{
|
|
8575
|
-
imports: [RouterModule.forChild(routes$
|
|
8575
|
+
imports: [RouterModule.forChild(routes$l)],
|
|
8576
8576
|
exports: [RouterModule]
|
|
8577
8577
|
}]
|
|
8578
8578
|
}] });
|
|
@@ -9111,7 +9111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9111
9111
|
}]
|
|
9112
9112
|
}] });
|
|
9113
9113
|
|
|
9114
|
-
const routes$
|
|
9114
|
+
const routes$k = [
|
|
9115
9115
|
{
|
|
9116
9116
|
path: '',
|
|
9117
9117
|
component: LoginHistoryForUserComponent,
|
|
@@ -9121,12 +9121,12 @@ const routes$i = [
|
|
|
9121
9121
|
class LoginHistoryForUserRoutingModule {
|
|
9122
9122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9123
9123
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9124
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9124
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] }); }
|
|
9125
9125
|
}
|
|
9126
9126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginHistoryForUserRoutingModule, decorators: [{
|
|
9127
9127
|
type: NgModule,
|
|
9128
9128
|
args: [{
|
|
9129
|
-
imports: [RouterModule.forChild(routes$
|
|
9129
|
+
imports: [RouterModule.forChild(routes$k)],
|
|
9130
9130
|
exports: [RouterModule]
|
|
9131
9131
|
}]
|
|
9132
9132
|
}] });
|
|
@@ -9548,14 +9548,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9548
9548
|
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>" }]
|
|
9549
9549
|
}], ctorParameters: () => [{ type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: AlertService }, { type: i1.MatDialog }, { type: TechlifyFeatureService }] });
|
|
9550
9550
|
|
|
9551
|
-
const routes$
|
|
9551
|
+
const routes$j = [
|
|
9552
9552
|
{
|
|
9553
9553
|
path: '',
|
|
9554
9554
|
component: TechlifyFeatureListingComponent,
|
|
9555
9555
|
canActivate: [AuthenticationGuard]
|
|
9556
9556
|
},
|
|
9557
9557
|
];
|
|
9558
|
-
const TechlifyFeatureRoutes = RouterModule.forChild(routes$
|
|
9558
|
+
const TechlifyFeatureRoutes = RouterModule.forChild(routes$j);
|
|
9559
9559
|
|
|
9560
9560
|
class TechlifyFeatureEnabledDirective {
|
|
9561
9561
|
constructor(el, featureService) {
|
|
@@ -9856,7 +9856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9856
9856
|
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" }]
|
|
9857
9857
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: i1$5.UntypedFormBuilder }, { type: ErrorHandlerService }, { type: FormValidatorService }] });
|
|
9858
9858
|
|
|
9859
|
-
const routes$
|
|
9859
|
+
const routes$i = [
|
|
9860
9860
|
{ path: '', component: ChangePasswordComponent, canActivate: [AuthenticationGuard] },
|
|
9861
9861
|
// fallback when no prior route found
|
|
9862
9862
|
{ path: '**', redirectTo: '', pathMatch: 'full' }
|
|
@@ -9864,12 +9864,12 @@ const routes$g = [
|
|
|
9864
9864
|
class ChangePasswordRoutingModule {
|
|
9865
9865
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9866
9866
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9867
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9867
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] }); }
|
|
9868
9868
|
}
|
|
9869
9869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChangePasswordRoutingModule, decorators: [{
|
|
9870
9870
|
type: NgModule,
|
|
9871
9871
|
args: [{
|
|
9872
|
-
imports: [RouterModule.forChild(routes$
|
|
9872
|
+
imports: [RouterModule.forChild(routes$i)],
|
|
9873
9873
|
exports: [RouterModule]
|
|
9874
9874
|
}]
|
|
9875
9875
|
}] });
|
|
@@ -9989,18 +9989,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9989
9989
|
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"] }]
|
|
9990
9990
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: ErrorHandlerService }, { type: CredentialsService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
9991
9991
|
|
|
9992
|
-
const routes$
|
|
9992
|
+
const routes$h = [
|
|
9993
9993
|
{ path: '', component: ForgotPasswordComponent }
|
|
9994
9994
|
];
|
|
9995
9995
|
class ForgotPasswordRoutingModule {
|
|
9996
9996
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9997
9997
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
9998
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
9998
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] }); }
|
|
9999
9999
|
}
|
|
10000
10000
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordRoutingModule, decorators: [{
|
|
10001
10001
|
type: NgModule,
|
|
10002
10002
|
args: [{
|
|
10003
|
-
imports: [RouterModule.forChild(routes$
|
|
10003
|
+
imports: [RouterModule.forChild(routes$h)],
|
|
10004
10004
|
exports: [RouterModule],
|
|
10005
10005
|
providers: []
|
|
10006
10006
|
}]
|
|
@@ -10212,19 +10212,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10212
10212
|
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"] }]
|
|
10213
10213
|
}], ctorParameters: () => [{ type: AlertService }, { type: i1$1.Router }, { type: AuthenticationService }, { type: CurrentUserService }, { type: StorageService }, { type: CredentialsService }, { type: i1$1.ActivatedRoute }, { type: UserConfigService }] });
|
|
10214
10214
|
|
|
10215
|
-
const routes$
|
|
10215
|
+
const routes$g = [
|
|
10216
10216
|
{ path: '', component: LoginComponent },
|
|
10217
10217
|
{ path: ':id', component: LoginComponent }
|
|
10218
10218
|
];
|
|
10219
10219
|
class LoginRoutingModule {
|
|
10220
10220
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10221
10221
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10222
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10222
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] }); }
|
|
10223
10223
|
}
|
|
10224
10224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginRoutingModule, decorators: [{
|
|
10225
10225
|
type: NgModule,
|
|
10226
10226
|
args: [{
|
|
10227
|
-
imports: [RouterModule.forChild(routes$
|
|
10227
|
+
imports: [RouterModule.forChild(routes$g)],
|
|
10228
10228
|
exports: [RouterModule],
|
|
10229
10229
|
providers: []
|
|
10230
10230
|
}]
|
|
@@ -10294,18 +10294,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10294
10294
|
type: Output
|
|
10295
10295
|
}] } });
|
|
10296
10296
|
|
|
10297
|
-
const routes$
|
|
10297
|
+
const routes$f = [
|
|
10298
10298
|
{ path: '', component: ProfileEditComponent, canActivate: [AuthenticationGuard] }
|
|
10299
10299
|
];
|
|
10300
10300
|
class ProfileRoutingModule {
|
|
10301
10301
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10302
10302
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10303
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10303
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] }); }
|
|
10304
10304
|
}
|
|
10305
10305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileRoutingModule, decorators: [{
|
|
10306
10306
|
type: NgModule,
|
|
10307
10307
|
args: [{
|
|
10308
|
-
imports: [RouterModule.forChild(routes$
|
|
10308
|
+
imports: [RouterModule.forChild(routes$f)],
|
|
10309
10309
|
exports: [RouterModule],
|
|
10310
10310
|
providers: []
|
|
10311
10311
|
}]
|
|
@@ -10763,7 +10763,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10763
10763
|
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?.is_global ? '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>\n" }]
|
|
10764
10764
|
}], ctorParameters: () => [{ type: HttpService }, { type: ErrorHandlerService }, { type: i1$1.ActivatedRoute }] });
|
|
10765
10765
|
|
|
10766
|
-
const routes$
|
|
10766
|
+
const routes$e = [
|
|
10767
10767
|
{ path: '', component: RolesViewAllComponent, canActivate: [AuthenticationGuard] },
|
|
10768
10768
|
{ path: ':id', component: RoleViewComponent, canActivate: [AuthenticationGuard] },
|
|
10769
10769
|
// fallback when no prior route found
|
|
@@ -10772,17 +10772,17 @@ const routes$c = [
|
|
|
10772
10772
|
class RoleRoutingProvider {
|
|
10773
10773
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10774
10774
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10775
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10775
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, imports: [RouterModule.forChild(routes$e), RouterModule] }); }
|
|
10776
10776
|
}
|
|
10777
10777
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleRoutingProvider, decorators: [{
|
|
10778
10778
|
type: NgModule,
|
|
10779
10779
|
args: [{
|
|
10780
|
-
imports: [RouterModule.forChild(routes$
|
|
10780
|
+
imports: [RouterModule.forChild(routes$e)],
|
|
10781
10781
|
exports: [RouterModule]
|
|
10782
10782
|
}]
|
|
10783
10783
|
}] });
|
|
10784
10784
|
|
|
10785
|
-
const routes$
|
|
10785
|
+
const routes$d = [
|
|
10786
10786
|
{ path: '', component: PermissionsManagementComponent, canActivate: [AuthenticationGuard] },
|
|
10787
10787
|
// fallback when no prior route found
|
|
10788
10788
|
{ path: '**', redirectTo: '', pathMatch: 'full' },
|
|
@@ -10790,12 +10790,12 @@ const routes$b = [
|
|
|
10790
10790
|
class PermissionRoutingProvider {
|
|
10791
10791
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10792
10792
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10793
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
10793
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes$d), RouterModule] }); }
|
|
10794
10794
|
}
|
|
10795
10795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, decorators: [{
|
|
10796
10796
|
type: NgModule,
|
|
10797
10797
|
args: [{
|
|
10798
|
-
imports: [RouterModule.forChild(routes$
|
|
10798
|
+
imports: [RouterModule.forChild(routes$d)],
|
|
10799
10799
|
exports: [RouterModule]
|
|
10800
10800
|
}]
|
|
10801
10801
|
}] });
|
|
@@ -10867,18 +10867,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
10867
10867
|
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"] }]
|
|
10868
10868
|
}], ctorParameters: () => [{ type: HttpService }, { type: AlertService }, { type: i1$1.Router }, { type: ErrorHandlerService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }] });
|
|
10869
10869
|
|
|
10870
|
-
const routes$
|
|
10870
|
+
const routes$c = [
|
|
10871
10871
|
{ path: '', component: SignUpComponent }
|
|
10872
10872
|
];
|
|
10873
10873
|
class SignupRoutingModule {
|
|
10874
10874
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10875
10875
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
10876
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$
|
|
10876
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] }); }
|
|
10877
10877
|
}
|
|
10878
10878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignupRoutingModule, decorators: [{
|
|
10879
10879
|
type: NgModule,
|
|
10880
10880
|
args: [{
|
|
10881
|
-
imports: [RouterModule.forChild(routes$
|
|
10881
|
+
imports: [RouterModule.forChild(routes$c)],
|
|
10882
10882
|
exports: [RouterModule],
|
|
10883
10883
|
providers: []
|
|
10884
10884
|
}]
|
|
@@ -11478,7 +11478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
11478
11478
|
args: [{ selector: 'app-access-control-config-form', template: "<mat-card fxLayout=\"row\" fxLayoutAlign=\"center\" fxFlexOffset=\"25%\" fxFlex=\"50%\">\n <mat-card-content>\n <form [formGroup]=\"configForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div class=\"text-center\">\n <h2>\n Access Control Configuration\n </h2>\n </div>\n <div class=\"alert alert-warning\" role=\"alert\">\n Be careful with these configurations as they affect all users in your entire app.\n </div>\n <div *ngIf=\"!isWorking\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Max Failed Login Attempts\n </mat-label>\n <input matInput formControlName=\"max_failed_consecutive_login_attempts\"\n placeholder=\"Max Failed Login Attempts\" autocomplete=\"off\" type=\"number\" min=\"0\" required />\n <mat-hint>After how many failed login attempts should this user\u2019s account be locked?</mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_failed_consecutive_login_attempts')\">\n {{getErrorMessage('max_failed_consecutive_login_attempts')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Block x most recent passwords\n </mat-label>\n <input matInput formControlName=\"max_old_passwords_block\" placeholder=\"Block x most recent passwords\"\n type=\"number\" min=\"0\" autocomplete=\"off\" required />\n <mat-hint>\n How many recent passwords should the system block the user from reusing?\n Example: The user cannot reuse any of his/her last 3 passwords.\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_old_passwords_block')\">\n {{getErrorMessage('max_old_passwords_block')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Minimum Password Length\n </mat-label>\n <input matInput formControlName=\"min_password_length\" placeholder=\"Minimum Password Length\" type=\"number\"\n min=\"1\" autocomplete=\"off\" />\n <mat-hint>\n What is the minimum length of a user\u2019s password?\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('min_password_length')\">\n {{getErrorMessage('min_password_length')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Track Old Passwords?</p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_track_old_passwords\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should our software track old passwords to ensure users do not reuse old passwords?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Number </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_number\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a number in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Symbol </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_symbol\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a symbol in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Capital Letter </p>\n <div>\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n formControlName=\"is_password_require_capital_letter\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a capital letter in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mt-3 mb-3\">\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\" mat-raised-button type=\"submit\" color=\"primary\">\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n </form>\n </mat-card-content>\n</mat-card>", styles: [".custom-hint{font-size:10.5px}\n"] }]
|
|
11479
11479
|
}], ctorParameters: () => [{ type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: AlertService }, { type: AccessControlConfigService }, { type: i3.Location }] });
|
|
11480
11480
|
|
|
11481
|
-
const routes$
|
|
11481
|
+
const routes$b = [
|
|
11482
11482
|
{
|
|
11483
11483
|
path: '',
|
|
11484
11484
|
component: AccessControlConfigFormComponent,
|
|
@@ -11493,12 +11493,12 @@ const routes$9 = [
|
|
|
11493
11493
|
class AccessControlConfigRoutingModule {
|
|
11494
11494
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11495
11495
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
11496
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes$
|
|
11496
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] }); }
|
|
11497
11497
|
}
|
|
11498
11498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, decorators: [{
|
|
11499
11499
|
type: NgModule,
|
|
11500
11500
|
args: [{
|
|
11501
|
-
imports: [RouterModule.forChild(routes$
|
|
11501
|
+
imports: [RouterModule.forChild(routes$b)],
|
|
11502
11502
|
exports: [RouterModule]
|
|
11503
11503
|
}]
|
|
11504
11504
|
}] });
|
|
@@ -11666,7 +11666,7 @@ var accessControlConfig_module = /*#__PURE__*/Object.freeze({
|
|
|
11666
11666
|
AccessControlConfigModule: AccessControlConfigModule
|
|
11667
11667
|
});
|
|
11668
11668
|
|
|
11669
|
-
const routes$
|
|
11669
|
+
const routes$a = [
|
|
11670
11670
|
{
|
|
11671
11671
|
path: '', redirectTo: 'users', pathMatch: 'full'
|
|
11672
11672
|
},
|
|
@@ -11695,12 +11695,12 @@ const routes$8 = [
|
|
|
11695
11695
|
class NgxTechlifyUsersRoutingModule {
|
|
11696
11696
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11697
11697
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
11698
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [RouterModule.forChild(routes$
|
|
11698
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] }); }
|
|
11699
11699
|
}
|
|
11700
11700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyUsersRoutingModule, decorators: [{
|
|
11701
11701
|
type: NgModule,
|
|
11702
11702
|
args: [{
|
|
11703
|
-
imports: [RouterModule.forChild(routes$
|
|
11703
|
+
imports: [RouterModule.forChild(routes$a)],
|
|
11704
11704
|
exports: [RouterModule]
|
|
11705
11705
|
}]
|
|
11706
11706
|
}] });
|
|
@@ -12376,7 +12376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
12376
12376
|
args: [{ selector: 'lib-restrictors-form-page', template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n" }]
|
|
12377
12377
|
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: RestrictorService }] });
|
|
12378
12378
|
|
|
12379
|
-
const routes$
|
|
12379
|
+
const routes$9 = [
|
|
12380
12380
|
{
|
|
12381
12381
|
path: '',
|
|
12382
12382
|
component: RestrictorsListPageComponent,
|
|
@@ -12401,12 +12401,12 @@ const routes$7 = [
|
|
|
12401
12401
|
class RestrictorsRoutingModule {
|
|
12402
12402
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12403
12403
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
12404
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes$
|
|
12404
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] }); }
|
|
12405
12405
|
}
|
|
12406
12406
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, decorators: [{
|
|
12407
12407
|
type: NgModule,
|
|
12408
12408
|
args: [{
|
|
12409
|
-
imports: [RouterModule.forChild(routes$
|
|
12409
|
+
imports: [RouterModule.forChild(routes$9)],
|
|
12410
12410
|
exports: [RouterModule]
|
|
12411
12411
|
}]
|
|
12412
12412
|
}] });
|
|
@@ -12938,36 +12938,11 @@ class ColumnConfig {
|
|
|
12938
12938
|
}
|
|
12939
12939
|
|
|
12940
12940
|
class ColumnSelectorComponent {
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
|
|
12944
|
-
get displayedColumns() {
|
|
12945
|
-
return this.columnConfigs.filter(column => column.isSelected ?? true);
|
|
12946
|
-
}
|
|
12947
|
-
get displayedColumnDefs() {
|
|
12948
|
-
return this.displayedColumns.map(column => column.def);
|
|
12949
|
-
}
|
|
12950
|
-
get filteredColumns() {
|
|
12951
|
-
return this.availableColumns.filter((column) => {
|
|
12952
|
-
if (this.search.value) {
|
|
12953
|
-
return column.label.toLowerCase().includes(this.search.value.toLowerCase());
|
|
12954
|
-
}
|
|
12955
|
-
return true;
|
|
12956
|
-
});
|
|
12957
|
-
}
|
|
12958
|
-
get sortedColumns() {
|
|
12959
|
-
let columns = this.filteredColumns.sort((a, b) => {
|
|
12960
|
-
if (a.label < b.label)
|
|
12961
|
-
return -1;
|
|
12962
|
-
if (a.label > b.label)
|
|
12963
|
-
return 1;
|
|
12964
|
-
return 0;
|
|
12965
|
-
});
|
|
12966
|
-
if (this.search.value) {
|
|
12967
|
-
columns = [...columns, ...this.selectedColumns];
|
|
12968
|
-
}
|
|
12969
|
-
return [...new Map(columns.map(column => [column.def, column])).values()];
|
|
12941
|
+
set isExportWorking(value) {
|
|
12942
|
+
this._isExportWorking = value;
|
|
12943
|
+
this.updateEmittedColumns();
|
|
12970
12944
|
}
|
|
12945
|
+
get isExportWorking() { return this._isExportWorking; }
|
|
12971
12946
|
constructor() {
|
|
12972
12947
|
this.label = 'Columns';
|
|
12973
12948
|
this.mode = 'selector';
|
|
@@ -12975,25 +12950,63 @@ class ColumnSelectorComponent {
|
|
|
12975
12950
|
this.selectedColumns = [];
|
|
12976
12951
|
this.selectedColumnsChange = new EventEmitter();
|
|
12977
12952
|
this.displayedColumnsChange = new EventEmitter();
|
|
12953
|
+
this._isExportWorking = false;
|
|
12978
12954
|
this.columnSelector = new FormControl([]);
|
|
12979
12955
|
this.search = new FormControl('');
|
|
12980
12956
|
}
|
|
12981
12957
|
ngOnInit() {
|
|
12982
|
-
if (this.displayedColumns
|
|
12958
|
+
if (this.displayedColumns.length > 0) {
|
|
12983
12959
|
this.columnSelector.setValue(this.displayedColumnDefs, { emitEvent: false });
|
|
12984
12960
|
}
|
|
12985
12961
|
this.columnSelector.valueChanges
|
|
12986
12962
|
.pipe(startWith$1(this.displayedColumnDefs))
|
|
12987
|
-
.subscribe((
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
12991
|
-
this.selectedColumnsChange.emit(this.selectedColumns);
|
|
12992
|
-
this.displayedColumnsChange.emit(columnDefs);
|
|
12963
|
+
.subscribe((selectedDefs) => {
|
|
12964
|
+
const selectedConfigs = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
12965
|
+
this.selectedColumns = selectedConfigs;
|
|
12966
|
+
this.updateEmittedColumns();
|
|
12993
12967
|
});
|
|
12994
12968
|
}
|
|
12969
|
+
get availableColumns() {
|
|
12970
|
+
return this.columnConfigs;
|
|
12971
|
+
}
|
|
12972
|
+
get displayedColumns() {
|
|
12973
|
+
return this.columnConfigs.filter(c => c.isSelected ?? true);
|
|
12974
|
+
}
|
|
12975
|
+
get displayedColumnDefs() {
|
|
12976
|
+
return this.displayedColumns.map(c => c.def);
|
|
12977
|
+
}
|
|
12978
|
+
get filteredColumns() {
|
|
12979
|
+
return this.availableColumns.filter(column => this.search.value ? column.label.toLowerCase().includes(this.search.value.toLowerCase()) : true);
|
|
12980
|
+
}
|
|
12981
|
+
get sortedColumns() {
|
|
12982
|
+
let sorted = [...this.filteredColumns].sort((a, b) => a.label.localeCompare(b.label));
|
|
12983
|
+
if (this.search.value) {
|
|
12984
|
+
sorted = [...sorted, ...this.selectedColumns];
|
|
12985
|
+
}
|
|
12986
|
+
return [...new Map(sorted.map(c => [c.def, c])).values()];
|
|
12987
|
+
}
|
|
12988
|
+
updateEmittedColumns() {
|
|
12989
|
+
let finalColumns;
|
|
12990
|
+
if (this.isExportWorking) {
|
|
12991
|
+
const selectedDefs = this.columnSelector.value || [];
|
|
12992
|
+
const selected = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
12993
|
+
const exportable = this.columnConfigs.filter(c => c.isExportable);
|
|
12994
|
+
const merged = [...selected, ...exportable];
|
|
12995
|
+
const unique = new Set(merged.map(c => c.def));
|
|
12996
|
+
// Keep original order from columnConfigs
|
|
12997
|
+
finalColumns = this.columnConfigs.filter(c => unique.has(c.def));
|
|
12998
|
+
}
|
|
12999
|
+
else {
|
|
13000
|
+
const selectedDefs = this.columnSelector.value || [];
|
|
13001
|
+
// Restore REAL user-selected columns
|
|
13002
|
+
finalColumns = this.columnConfigs.filter(c => selectedDefs.includes(c.def));
|
|
13003
|
+
}
|
|
13004
|
+
this.selectedColumns = finalColumns;
|
|
13005
|
+
this.selectedColumnsChange.emit(finalColumns);
|
|
13006
|
+
this.displayedColumnsChange.emit(finalColumns.map(c => c.def));
|
|
13007
|
+
}
|
|
12995
13008
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12996
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ColumnSelectorComponent, selector: "app-column-selector", inputs: { label: "label", mode: "mode", columnConfigs: "columnConfigs", selectedColumns: "selectedColumns" }, outputs: { selectedColumnsChange: "selectedColumnsChange", displayedColumnsChange: "displayedColumnsChange" }, ngImport: i0, template: "<mat-form-field *ngIf=\"mode === 'selector'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select [multiple]=\"true\" [formControl]=\"columnSelector\">\n <mat-option class=\"text-capitalize\" *ngFor=\"let col of sortedColumns\" [value]=\"col.def\"\n [disabled]=\"!(col?.isEditable ?? true)\">\n {{ col.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<div *ngIf=\"mode === 'icon'\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"clickable\" (click)=\"select.open()\">view_column</mat-icon>\n <mat-select class=\"column-selector fl-sm\" #select [formControl]=\"columnSelector\" multiple panelWidth=\"\">\n <mat-form-field class=\"p-1 w-100\">\n <input matInput [formControl]=\"search\" placeholder=\"Search\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\">\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"search.value\" (click)=\"search.setValue('')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n <mat-option *ngFor=\"let column of sortedColumns\" [value]=\"column.def\" class=\"text-capitalize\"\n [disabled]=\"!(column?.isEditable ?? true)\">{{column?.label}}</mat-option>\n </mat-select>\n</div>", styles: [".column-selector{opacity:0;position:relative;right:24px;height:0!important;width:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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"] }] }); }
|
|
13009
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ColumnSelectorComponent, selector: "app-column-selector", inputs: { label: "label", mode: "mode", columnConfigs: "columnConfigs", selectedColumns: "selectedColumns", isExportWorking: "isExportWorking" }, outputs: { selectedColumnsChange: "selectedColumnsChange", displayedColumnsChange: "displayedColumnsChange" }, ngImport: i0, template: "<mat-form-field *ngIf=\"mode === 'selector'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select [multiple]=\"true\" [formControl]=\"columnSelector\">\n <mat-option class=\"text-capitalize\" *ngFor=\"let col of sortedColumns\" [value]=\"col.def\"\n [disabled]=\"!(col?.isEditable ?? true)\">\n {{ col.label }}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<div *ngIf=\"mode === 'icon'\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"clickable\" (click)=\"select.open()\">view_column</mat-icon>\n <mat-select class=\"column-selector fl-sm\" #select [formControl]=\"columnSelector\" multiple panelWidth=\"\">\n <mat-form-field class=\"p-1 w-100\">\n <input matInput [formControl]=\"search\" placeholder=\"Search\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\">\n <button mat-icon-button matSuffix type=\"button\" *ngIf=\"search.value\" (click)=\"search.setValue('')\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n <mat-option *ngFor=\"let column of sortedColumns\" [value]=\"column.def\" class=\"text-capitalize\"\n [disabled]=\"!(column?.isEditable ?? true)\">{{column?.label}}</mat-option>\n </mat-select>\n</div>", styles: [".column-selector{opacity:0;position:relative;right:24px;height:0!important;width:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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"] }] }); }
|
|
12997
13010
|
}
|
|
12998
13011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnSelectorComponent, decorators: [{
|
|
12999
13012
|
type: Component,
|
|
@@ -13010,6 +13023,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13010
13023
|
type: Output
|
|
13011
13024
|
}], displayedColumnsChange: [{
|
|
13012
13025
|
type: Output
|
|
13026
|
+
}], isExportWorking: [{
|
|
13027
|
+
type: Input
|
|
13013
13028
|
}] } });
|
|
13014
13029
|
|
|
13015
13030
|
class ColumnSelectorModule {
|
|
@@ -13164,18 +13179,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13164
13179
|
args: [{ selector: 'app-reset-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 Password</h4>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\" class=\"mt-4\">\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>Email</mat-label>\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\"\n required readonly />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>OTP</mat-label>\n <input matInput formControlName=\"otp\" placeholder=\"OTP\" type=\"string\" autocomplete=\"off\"\n required />\n <mat-error *ngIf=\"isFieldValid('otp')\">{{getErrorMessage('otp')}}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"offset-2 col-8\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\" placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\" autocomplete=\"off\" 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 class=\"offset-2 col-8 mt-3\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\"\n 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 </div>\n\n <div class=\"mt-4 row\">\n <techlify-password-requirement-check class=\"offset-2 col-8\" [password]=\"form.get('password').value\"\n [email]=\"form.get('email').value\"></techlify-password-requirement-check>\n </div>\n\n <div class=\"row mt-4\">\n <div class=\"offset-2 col-8 text-center\">\n <button mat-raised-button color=\"primary\" class=\"w-100\" type=\"submit\" [disabled]=\"isWorking\">\n Submit\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>", 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"] }]
|
|
13165
13180
|
}], ctorParameters: () => [{ type: ResetPasswordService }, { type: AlertService }, { type: i1$1.Router }, { type: CurrentUserService }, { type: i1$5.UntypedFormBuilder }, { type: FormValidatorService }, { type: UserConfigService }, { type: i1$1.ActivatedRoute }] });
|
|
13166
13181
|
|
|
13167
|
-
const routes$
|
|
13182
|
+
const routes$8 = [
|
|
13168
13183
|
{ path: '**', component: ResetPasswordComponent }
|
|
13169
13184
|
];
|
|
13170
13185
|
class ResetPasswordRoutingModule {
|
|
13171
13186
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13172
13187
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13173
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13188
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] }); }
|
|
13174
13189
|
}
|
|
13175
13190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordRoutingModule, decorators: [{
|
|
13176
13191
|
type: NgModule,
|
|
13177
13192
|
args: [{
|
|
13178
|
-
imports: [RouterModule.forChild(routes$
|
|
13193
|
+
imports: [RouterModule.forChild(routes$8)],
|
|
13179
13194
|
exports: [RouterModule],
|
|
13180
13195
|
providers: []
|
|
13181
13196
|
}]
|
|
@@ -13528,7 +13543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13528
13543
|
], template: "<div class=\"row\">\n <div class=\"col-lg-6\">\n <app-tenant-list-widget *ngxPermissionsOnly=\"['app_admin']\"></app-tenant-list-widget>\n </div>\n</div>\n" }]
|
|
13529
13544
|
}] });
|
|
13530
13545
|
|
|
13531
|
-
const routes$
|
|
13546
|
+
const routes$7 = [
|
|
13532
13547
|
{
|
|
13533
13548
|
path: 'home',
|
|
13534
13549
|
component: AppAdminHomeComponent
|
|
@@ -13542,12 +13557,12 @@ const routes$5 = [
|
|
|
13542
13557
|
class AppAdminRoutingModule {
|
|
13543
13558
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13544
13559
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13545
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13560
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] }); }
|
|
13546
13561
|
}
|
|
13547
13562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminRoutingModule, decorators: [{
|
|
13548
13563
|
type: NgModule,
|
|
13549
13564
|
args: [{
|
|
13550
|
-
imports: [RouterModule.forChild(routes$
|
|
13565
|
+
imports: [RouterModule.forChild(routes$7)],
|
|
13551
13566
|
exports: [RouterModule]
|
|
13552
13567
|
}]
|
|
13553
13568
|
}] });
|
|
@@ -13668,19 +13683,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13668
13683
|
args: [{ selector: 'app-admin-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\">\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>" }]
|
|
13669
13684
|
}], ctorParameters: () => [{ type: UserService }, { type: i1$1.ActivatedRoute }, { type: ConfigService }, { type: HttpService }, { type: i1.MatDialog }, { type: CurrentUserService }] });
|
|
13670
13685
|
|
|
13671
|
-
const routes$
|
|
13686
|
+
const routes$6 = [
|
|
13672
13687
|
{ path: '**', component: AppAdminUserViewComponent },
|
|
13673
13688
|
];
|
|
13674
13689
|
// @dynamic
|
|
13675
13690
|
class AppAdminUserViewRoutingProvider {
|
|
13676
13691
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13677
13692
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13678
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [RouterModule.forChild(routes$
|
|
13693
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, imports: [RouterModule.forChild(routes$6), RouterModule] }); }
|
|
13679
13694
|
}
|
|
13680
13695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppAdminUserViewRoutingProvider, decorators: [{
|
|
13681
13696
|
type: NgModule,
|
|
13682
13697
|
args: [{
|
|
13683
|
-
imports: [RouterModule.forChild(routes$
|
|
13698
|
+
imports: [RouterModule.forChild(routes$6)],
|
|
13684
13699
|
exports: [RouterModule]
|
|
13685
13700
|
}]
|
|
13686
13701
|
}] });
|
|
@@ -13860,16 +13875,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
13860
13875
|
}]
|
|
13861
13876
|
}] });
|
|
13862
13877
|
|
|
13863
|
-
const routes$
|
|
13878
|
+
const routes$5 = [];
|
|
13864
13879
|
class SubscriptionFormRoutingModule {
|
|
13865
13880
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13866
13881
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
13867
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [RouterModule.forChild(routes$
|
|
13882
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] }); }
|
|
13868
13883
|
}
|
|
13869
13884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionFormRoutingModule, decorators: [{
|
|
13870
13885
|
type: NgModule,
|
|
13871
13886
|
args: [{
|
|
13872
|
-
imports: [RouterModule.forChild(routes$
|
|
13887
|
+
imports: [RouterModule.forChild(routes$5)],
|
|
13873
13888
|
exports: [RouterModule]
|
|
13874
13889
|
}]
|
|
13875
13890
|
}] });
|
|
@@ -14173,7 +14188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14173
14188
|
type: Input
|
|
14174
14189
|
}] } });
|
|
14175
14190
|
|
|
14176
|
-
const routes$
|
|
14191
|
+
const routes$4 = [
|
|
14177
14192
|
{
|
|
14178
14193
|
path: '**',
|
|
14179
14194
|
component: SubscriptionListingComponent,
|
|
@@ -14183,12 +14198,12 @@ const routes$2 = [
|
|
|
14183
14198
|
class SubscriptionListingRoutingModule {
|
|
14184
14199
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14185
14200
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14186
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [RouterModule.forChild(routes$
|
|
14201
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] }); }
|
|
14187
14202
|
}
|
|
14188
14203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionListingRoutingModule, decorators: [{
|
|
14189
14204
|
type: NgModule,
|
|
14190
14205
|
args: [{
|
|
14191
|
-
imports: [RouterModule.forChild(routes$
|
|
14206
|
+
imports: [RouterModule.forChild(routes$4)],
|
|
14192
14207
|
exports: [RouterModule]
|
|
14193
14208
|
}]
|
|
14194
14209
|
}] });
|
|
@@ -14347,7 +14362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14347
14362
|
args: [{ selector: 'app-subscription-package-listing', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Subscription Packages</h5>\n <span fxFlex></span>\n <form [formGroup]=\"filterFormGroup\" class=\"filter-form\" fxLayout=\"row\">\n <mat-form-field appearance=\"outline\" class=\"nil-subscript-wrappe fl-md\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search..\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterFormGroup.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterFormGroup.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"p-0 mt-2\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.title }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"code\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Code </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.code }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear class=\"w-description\"> Description\n </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.description }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tenants_count\">\n <th mat-header-cell *matHeaderCellDef> Tenants </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <span>{{subscriptionPackage?.tenants_count ?? 0 }} tenants</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let subscriptionPackage\">\n <div class=\"text-secondary\" fxLayout fxLayoutAlign=\"start center\">\n <app-techlify-icon name=\"view\" class=\"clickable\" matTooltip=\"View\"\n (click)=\"navigateToView(subscriptionPackage)\"></app-techlify-icon>\n <mat-slide-toggle style=\"transform: scale(0.8);\" [checked]=\"subscriptionPackage?.is_enabled\"\n color=\"primary\" (change)=\"confirmToggle($event,subscriptionPackage)\">Is Enabled\n </mat-slide-toggle>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card>\n</div>" }]
|
|
14348
14363
|
}], ctorParameters: () => [{ type: SubscriptionPackageService }, { type: i1$1.ActivatedRoute }, { type: FilterService }, { type: i1$1.Router }, { type: i1.MatDialog }, { type: i1$5.UntypedFormBuilder }] });
|
|
14349
14364
|
|
|
14350
|
-
const routes$
|
|
14365
|
+
const routes$3 = [
|
|
14351
14366
|
{
|
|
14352
14367
|
path: '**',
|
|
14353
14368
|
component: SubscriptionPackageListingComponent,
|
|
@@ -14357,12 +14372,12 @@ const routes$1 = [
|
|
|
14357
14372
|
class SubscriptionPackageListingRoutingModule {
|
|
14358
14373
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14359
14374
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14360
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [RouterModule.forChild(routes$
|
|
14375
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] }); }
|
|
14361
14376
|
}
|
|
14362
14377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageListingRoutingModule, decorators: [{
|
|
14363
14378
|
type: NgModule,
|
|
14364
14379
|
args: [{
|
|
14365
|
-
imports: [RouterModule.forChild(routes$
|
|
14380
|
+
imports: [RouterModule.forChild(routes$3)],
|
|
14366
14381
|
exports: [RouterModule]
|
|
14367
14382
|
}]
|
|
14368
14383
|
}] });
|
|
@@ -14435,7 +14450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14435
14450
|
args: [{ selector: 'app-subscription-package-view', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Package: {{subscriptionPackage?.title}}</h5>\n </mat-card>\n <div fxLayout>\n <mat-card appearance=\"outlined\" class=\"side-panel mt-2\" fxLayout=\"column\" fxLayoutGap=\"0.5rem\">\n <h5>Information</h5>\n <div>\n Title: <span class=\"text-secondary\">{{subscriptionPackage?.title}}</span>\n </div>\n <div>\n Code: <span class=\"text-secondary\">{{subscriptionPackage?.code}}</span>\n </div>\n <div>\n Description: <span class=\"text-secondary\">{{subscriptionPackage?.description}}</span>\n </div>\n <div>\n Tenants: <span class=\"text-secondary\">{{subscriptionPackage?.tenants_count ?? 0}} tenants</span>\n </div>\n </mat-card>\n <div fxFlex class=\"ml-2\">\n <app-subscription-listing class=\"w-100\" [subscriptionPackage]=\"subscriptionPackage\"\n *ngIf=\"subscriptionPackage\"></app-subscription-listing>\n </div>\n </div>\n</div>" }]
|
|
14436
14451
|
}], ctorParameters: () => [{ type: SubscriptionPackageService }, { type: i1$1.ActivatedRoute }, { type: i3.Location }] });
|
|
14437
14452
|
|
|
14438
|
-
const routes = [
|
|
14453
|
+
const routes$2 = [
|
|
14439
14454
|
{
|
|
14440
14455
|
path: '**',
|
|
14441
14456
|
component: SubscriptionPackageViewComponent,
|
|
@@ -14445,12 +14460,12 @@ const routes = [
|
|
|
14445
14460
|
class SubscriptionPackageViewRoutingModule {
|
|
14446
14461
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14447
14462
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14448
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
14463
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] }); }
|
|
14449
14464
|
}
|
|
14450
14465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubscriptionPackageViewRoutingModule, decorators: [{
|
|
14451
14466
|
type: NgModule,
|
|
14452
14467
|
args: [{
|
|
14453
|
-
imports: [RouterModule.forChild(routes)],
|
|
14468
|
+
imports: [RouterModule.forChild(routes$2)],
|
|
14454
14469
|
exports: [RouterModule]
|
|
14455
14470
|
}]
|
|
14456
14471
|
}] });
|
|
@@ -14530,6 +14545,212 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14530
14545
|
}]
|
|
14531
14546
|
}] });
|
|
14532
14547
|
|
|
14548
|
+
const routes$1 = [];
|
|
14549
|
+
class TimelineHistoryForModelRoutingModule {
|
|
14550
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14551
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14552
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] }); }
|
|
14553
|
+
}
|
|
14554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineHistoryForModelRoutingModule, decorators: [{
|
|
14555
|
+
type: NgModule,
|
|
14556
|
+
args: [{
|
|
14557
|
+
imports: [RouterModule.forChild(routes$1)],
|
|
14558
|
+
exports: [RouterModule]
|
|
14559
|
+
}]
|
|
14560
|
+
}] });
|
|
14561
|
+
|
|
14562
|
+
class TimelineActivityService extends TechlifyServiceBaseClass {
|
|
14563
|
+
constructor(httpService) {
|
|
14564
|
+
super(httpService, 'techlify-timeline-activities');
|
|
14565
|
+
}
|
|
14566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, deps: [{ token: HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14567
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, providedIn: 'root' }); }
|
|
14568
|
+
}
|
|
14569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityService, decorators: [{
|
|
14570
|
+
type: Injectable,
|
|
14571
|
+
args: [{
|
|
14572
|
+
providedIn: 'root'
|
|
14573
|
+
}]
|
|
14574
|
+
}], ctorParameters: () => [{ type: HttpService }] });
|
|
14575
|
+
|
|
14576
|
+
class TimelineActivityListComponent extends TechlifyListingControllerInterface {
|
|
14577
|
+
constructor(timelineActivityService) {
|
|
14578
|
+
super();
|
|
14579
|
+
this.timelineActivityService = timelineActivityService;
|
|
14580
|
+
this.timelineableDisplayField = 'title';
|
|
14581
|
+
this.scrollContainer = null;
|
|
14582
|
+
this.title = null;
|
|
14583
|
+
this.displayedColumns = [
|
|
14584
|
+
'index',
|
|
14585
|
+
'date',
|
|
14586
|
+
'details',
|
|
14587
|
+
'change',
|
|
14588
|
+
'creator',
|
|
14589
|
+
];
|
|
14590
|
+
}
|
|
14591
|
+
ngOnInit() {
|
|
14592
|
+
this.loadData();
|
|
14593
|
+
}
|
|
14594
|
+
loadData() {
|
|
14595
|
+
const params = {
|
|
14596
|
+
page: this.page,
|
|
14597
|
+
perPage: this.perPage,
|
|
14598
|
+
changeable_types: this.changeableType ?? '',
|
|
14599
|
+
changeable_ids: this.changeableId ?? '',
|
|
14600
|
+
timelineable_types: this.timelineableType ?? '',
|
|
14601
|
+
timelineable_ids: this.timelineableId ?? '',
|
|
14602
|
+
sort_by: 'created_at|desc'
|
|
14603
|
+
};
|
|
14604
|
+
this.isWorking = true;
|
|
14605
|
+
this.timelineActivityService.index(params).subscribe({
|
|
14606
|
+
next: (response) => {
|
|
14607
|
+
this.isWorking = false;
|
|
14608
|
+
this.models = this.models?.concat(response?.data);
|
|
14609
|
+
this.lastPage = response?.last_page;
|
|
14610
|
+
},
|
|
14611
|
+
error: () => (this.isWorking = false)
|
|
14612
|
+
});
|
|
14613
|
+
}
|
|
14614
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListComponent, deps: [{ token: TimelineActivityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14615
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TimelineActivityListComponent, selector: "app-timeline-activity-list", inputs: { changeableType: "changeableType", changeableId: "changeableId", timelineableType: "timelineableType", timelineableId: "timelineableId", timelineableDisplayField: "timelineableDisplayField", scrollContainer: "scrollContainer", title: "title" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\">\n <div fxLayout class=\"mb-4\">\n <h5 class=\"m-0\">\n {{ title ?? 'Timeline of changes for {{this.changeableType}}: {{this.changeableId}}' }}\n </h5>\n </div>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef> Date </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.date | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.details}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"change\">\n <th mat-header-cell *matHeaderCellDef> Change </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.timelineable?.[this.timelineableDisplayField]}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n <div>{{element?.creator?.name }}</div>\n <div *ngIf=\"element?.created_at\" class=\"text-secondary\"><small>{{element?.created_at |\n date:'medium'}}</small></div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i6$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
14616
|
+
}
|
|
14617
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListComponent, decorators: [{
|
|
14618
|
+
type: Component,
|
|
14619
|
+
args: [{ selector: 'app-timeline-activity-list', template: "<div fxLayout=\"column\">\n <div fxLayout class=\"mb-4\">\n <h5 class=\"m-0\">\n {{ title ?? 'Timeline of changes for {{this.changeableType}}: {{this.changeableId}}' }}\n </h5>\n </div>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef> Date </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.date | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.details}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"change\">\n <th mat-header-cell *matHeaderCellDef> Change </th>\n <td mat-cell *matCellDef=\"let timeline\">\n {{timeline?.timelineable?.[this.timelineableDisplayField]}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n <div>{{element?.creator?.name }}</div>\n <div *ngIf=\"element?.created_at\" class=\"text-secondary\"><small>{{element?.created_at |\n date:'medium'}}</small></div>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"] }]
|
|
14620
|
+
}], ctorParameters: () => [{ type: TimelineActivityService }], propDecorators: { changeableType: [{
|
|
14621
|
+
type: Input
|
|
14622
|
+
}], changeableId: [{
|
|
14623
|
+
type: Input
|
|
14624
|
+
}], timelineableType: [{
|
|
14625
|
+
type: Input
|
|
14626
|
+
}], timelineableId: [{
|
|
14627
|
+
type: Input
|
|
14628
|
+
}], timelineableDisplayField: [{
|
|
14629
|
+
type: Input
|
|
14630
|
+
}], scrollContainer: [{
|
|
14631
|
+
type: Input
|
|
14632
|
+
}], title: [{
|
|
14633
|
+
type: Input
|
|
14634
|
+
}] } });
|
|
14635
|
+
|
|
14636
|
+
class TimelineActivityButtonComponent {
|
|
14637
|
+
constructor(dialog) {
|
|
14638
|
+
this.dialog = dialog;
|
|
14639
|
+
this.timelineableDisplayField = 'title';
|
|
14640
|
+
}
|
|
14641
|
+
ngOnInit() {
|
|
14642
|
+
}
|
|
14643
|
+
openDialog(templateRef) {
|
|
14644
|
+
const dialogRef = this.dialog.open(templateRef, {
|
|
14645
|
+
width: '75%',
|
|
14646
|
+
maxWidth: 'unset',
|
|
14647
|
+
maxHeight: '80%',
|
|
14648
|
+
autoFocus: false,
|
|
14649
|
+
panelClass: ['overflow-auto'],
|
|
14650
|
+
});
|
|
14651
|
+
}
|
|
14652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TimelineActivityButtonComponent, selector: "app-timeline-activity-button", inputs: { changeableType: "changeableType", changeableId: "changeableId", timelineableType: "timelineableType", timelineableId: "timelineableId", timelineableDisplayField: "timelineableDisplayField", title: "title" }, ngImport: i0, template: "<app-techlify-icon name=\"history\" matTooltip=\"Timeline History\" (click)=\"$event.stopPropagation();openDialog(listView)\"\n class=\"clickable\"></app-techlify-icon>\n\n<ng-template #listView>\n <app-timeline-activity-list [changeableId]=\"changeableId\" [changeableType]=\"changeableType\"\n [timelineableDisplayField]=\"timelineableDisplayField\" [timelineableType]=\"timelineableType\"\n [timelineableId]=\"timelineableId\" [title]=\"title\"></app-timeline-activity-list>\n</ng-template>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}\n"], dependencies: [{ kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: TimelineActivityListComponent, selector: "app-timeline-activity-list", inputs: ["changeableType", "changeableId", "timelineableType", "timelineableId", "timelineableDisplayField", "scrollContainer", "title"] }] }); }
|
|
14654
|
+
}
|
|
14655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonComponent, decorators: [{
|
|
14656
|
+
type: Component,
|
|
14657
|
+
args: [{ selector: 'app-timeline-activity-button', template: "<app-techlify-icon name=\"history\" matTooltip=\"Timeline History\" (click)=\"$event.stopPropagation();openDialog(listView)\"\n class=\"clickable\"></app-techlify-icon>\n\n<ng-template #listView>\n <app-timeline-activity-list [changeableId]=\"changeableId\" [changeableType]=\"changeableType\"\n [timelineableDisplayField]=\"timelineableDisplayField\" [timelineableType]=\"timelineableType\"\n [timelineableId]=\"timelineableId\" [title]=\"title\"></app-timeline-activity-list>\n</ng-template>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}\n"] }]
|
|
14658
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { changeableType: [{
|
|
14659
|
+
type: Input
|
|
14660
|
+
}], changeableId: [{
|
|
14661
|
+
type: Input
|
|
14662
|
+
}], timelineableType: [{
|
|
14663
|
+
type: Input
|
|
14664
|
+
}], timelineableId: [{
|
|
14665
|
+
type: Input
|
|
14666
|
+
}], timelineableDisplayField: [{
|
|
14667
|
+
type: Input
|
|
14668
|
+
}], title: [{
|
|
14669
|
+
type: Input
|
|
14670
|
+
}] } });
|
|
14671
|
+
|
|
14672
|
+
const routes = [];
|
|
14673
|
+
class TimelineActivityListRoutingModule {
|
|
14674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14675
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
14676
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
14677
|
+
}
|
|
14678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListRoutingModule, decorators: [{
|
|
14679
|
+
type: NgModule,
|
|
14680
|
+
args: [{
|
|
14681
|
+
imports: [RouterModule.forChild(routes)],
|
|
14682
|
+
exports: [RouterModule]
|
|
14683
|
+
}]
|
|
14684
|
+
}] });
|
|
14685
|
+
|
|
14686
|
+
class TimelineActivityListModule {
|
|
14687
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14688
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, declarations: [TimelineActivityListComponent], imports: [CommonModule,
|
|
14689
|
+
TimelineActivityListRoutingModule,
|
|
14690
|
+
ExportExcelModule,
|
|
14691
|
+
FlexLayoutModule,
|
|
14692
|
+
ReactiveFormsModule,
|
|
14693
|
+
MaterialModule,
|
|
14694
|
+
InfiniteScrollModule,
|
|
14695
|
+
MatProgressBarModule], exports: [TimelineActivityListComponent] }); }
|
|
14696
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, imports: [CommonModule,
|
|
14697
|
+
TimelineActivityListRoutingModule,
|
|
14698
|
+
ExportExcelModule,
|
|
14699
|
+
FlexLayoutModule,
|
|
14700
|
+
ReactiveFormsModule,
|
|
14701
|
+
MaterialModule,
|
|
14702
|
+
InfiniteScrollModule,
|
|
14703
|
+
MatProgressBarModule] }); }
|
|
14704
|
+
}
|
|
14705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityListModule, decorators: [{
|
|
14706
|
+
type: NgModule,
|
|
14707
|
+
args: [{
|
|
14708
|
+
declarations: [TimelineActivityListComponent],
|
|
14709
|
+
imports: [
|
|
14710
|
+
CommonModule,
|
|
14711
|
+
TimelineActivityListRoutingModule,
|
|
14712
|
+
ExportExcelModule,
|
|
14713
|
+
FlexLayoutModule,
|
|
14714
|
+
ReactiveFormsModule,
|
|
14715
|
+
MaterialModule,
|
|
14716
|
+
InfiniteScrollModule,
|
|
14717
|
+
MatProgressBarModule
|
|
14718
|
+
],
|
|
14719
|
+
exports: [TimelineActivityListComponent]
|
|
14720
|
+
}]
|
|
14721
|
+
}] });
|
|
14722
|
+
|
|
14723
|
+
class TimelineActivityButtonModule {
|
|
14724
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14725
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, declarations: [TimelineActivityButtonComponent], imports: [CommonModule,
|
|
14726
|
+
TimelineHistoryForModelRoutingModule,
|
|
14727
|
+
FlexLayoutModule,
|
|
14728
|
+
MaterialModule,
|
|
14729
|
+
TechlifyIconModule,
|
|
14730
|
+
TimelineActivityListModule], exports: [TimelineActivityButtonComponent] }); }
|
|
14731
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, imports: [CommonModule,
|
|
14732
|
+
TimelineHistoryForModelRoutingModule,
|
|
14733
|
+
FlexLayoutModule,
|
|
14734
|
+
MaterialModule,
|
|
14735
|
+
TechlifyIconModule,
|
|
14736
|
+
TimelineActivityListModule] }); }
|
|
14737
|
+
}
|
|
14738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimelineActivityButtonModule, decorators: [{
|
|
14739
|
+
type: NgModule,
|
|
14740
|
+
args: [{
|
|
14741
|
+
declarations: [TimelineActivityButtonComponent],
|
|
14742
|
+
imports: [
|
|
14743
|
+
CommonModule,
|
|
14744
|
+
TimelineHistoryForModelRoutingModule,
|
|
14745
|
+
FlexLayoutModule,
|
|
14746
|
+
MaterialModule,
|
|
14747
|
+
TechlifyIconModule,
|
|
14748
|
+
TimelineActivityListModule,
|
|
14749
|
+
],
|
|
14750
|
+
exports: [TimelineActivityButtonComponent]
|
|
14751
|
+
}]
|
|
14752
|
+
}] });
|
|
14753
|
+
|
|
14533
14754
|
/*
|
|
14534
14755
|
* Public API Surface of ngx-techlify-core
|
|
14535
14756
|
*/
|
|
@@ -14538,5 +14759,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
14538
14759
|
* Generated bundle index. Do not edit.
|
|
14539
14760
|
*/
|
|
14540
14761
|
|
|
14541
|
-
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, 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 };
|
|
14762
|
+
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, 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 };
|
|
14542
14763
|
//# sourceMappingURL=ngx-techlify-core.mjs.map
|