ngx-techlify-core 18.57.1 → 18.58.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/access-control-config/access-control-config.service.mjs +3 -3
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +3 -3
- package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +3 -3
- package/esm2022/lib/app-admin/admin-role/admin-role.service.mjs +3 -3
- package/esm2022/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.mjs +3 -3
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +35 -94
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +3 -12
- package/esm2022/lib/audit-log/audit-log.service.mjs +3 -3
- package/esm2022/lib/base-model/index.mjs +4 -4
- package/esm2022/lib/base-model/techlify-form-component.mjs +128 -0
- package/esm2022/lib/base-model/techlify-list-component.mjs +289 -0
- package/esm2022/lib/base-model/techlify-service.mjs +68 -0
- package/esm2022/lib/company-information/client.service.mjs +3 -3
- package/esm2022/lib/company-information/company-information/company-information.component.mjs +3 -3
- package/esm2022/lib/delete-button/techlify-delete-button.component.mjs +1 -1
- package/esm2022/lib/entity-files/entity-file.service.mjs +3 -3
- package/esm2022/lib/form-configuration/form-configuration-form-field.service.mjs +3 -3
- package/esm2022/lib/form-configuration/form-configuration-form.service.mjs +3 -3
- package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +3 -3
- package/esm2022/lib/note/note-list/note-list.component.mjs +3 -3
- package/esm2022/lib/pdf-button/pdf-button.component.mjs +11 -7
- package/esm2022/lib/reset-password/reset-password.component.mjs +3 -3
- package/esm2022/lib/reset-password/reset-password.service.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor.service.mjs +3 -3
- package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +5 -5
- package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +3 -3
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +3 -3
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +3 -3
- package/esm2022/lib/subscription/subscription-package.service.mjs +3 -3
- package/esm2022/lib/subscription/subscription.service.mjs +3 -3
- package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +3 -3
- package/esm2022/lib/techlify-icon/techlify-icon.component.mjs +7 -2
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +3 -3
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +3 -3
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +3 -3
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +3 -3
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.mjs +3 -3
- package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +3 -3
- package/esm2022/lib/techlify-view/techlify-view.service.mjs +3 -3
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +3 -3
- package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +3 -3
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +5 -5
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +7 -3
- package/esm2022/lib/user/user-sessions/user-session.service.mjs +3 -3
- package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +3 -3
- package/esm2022/lib/user/user.service.mjs +3 -3
- package/esm2022/lib/user/users-view-all.component.mjs +3 -3
- package/esm2022/lib/user-clients-list/user-client.service.mjs +3 -3
- package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +3 -3
- package/fesm2022/ngx-techlify-core.mjs +197 -241
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/access-control-config/access-control-config.service.d.ts +2 -2
- package/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.d.ts +2 -2
- package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.d.ts +2 -2
- package/lib/app-admin/admin-role/admin-role.service.d.ts +2 -2
- package/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.d.ts +2 -2
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +7 -11
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +0 -2
- package/lib/audit-log/audit-log.service.d.ts +2 -2
- package/lib/base-model/index.d.ts +3 -3
- package/lib/base-model/{techlify-form-component.class.d.ts → techlify-form-component.d.ts} +7 -6
- package/lib/base-model/{techlify-listing-component.class.d.ts → techlify-list-component.d.ts} +6 -6
- package/lib/base-model/{techlify-service.class.d.ts → techlify-service.d.ts} +1 -1
- package/lib/company-information/client.service.d.ts +2 -2
- package/lib/company-information/company-information/company-information.component.d.ts +2 -2
- package/lib/delete-button/techlify-delete-button.component.d.ts +2 -2
- package/lib/entity-files/entity-file.service.d.ts +2 -2
- package/lib/form-configuration/form-configuration-form-field.service.d.ts +2 -2
- package/lib/form-configuration/form-configuration-form.service.d.ts +2 -2
- package/lib/login/login-form-fields/login-form-fields.component.d.ts +2 -2
- package/lib/note/note-list/note-list.component.d.ts +2 -2
- package/lib/pdf-button/pdf-button.component.d.ts +2 -1
- package/lib/reset-password/reset-password.component.d.ts +2 -2
- package/lib/reset-password/reset-password.service.d.ts +2 -2
- package/lib/restrictors/restrictor-level-selector/restrictor-level.service.d.ts +2 -2
- package/lib/restrictors/restrictor-status-selector/restrictor-status.service.d.ts +2 -2
- package/lib/restrictors/restrictor-type-selector/restrictor-type.service.d.ts +2 -2
- package/lib/restrictors/restrictor.service.d.ts +2 -2
- package/lib/subscription/subscription-form/subscription-form.component.d.ts +2 -2
- package/lib/subscription/subscription-listing/subscription-listing.component.d.ts +2 -2
- package/lib/subscription/subscription-package-listing/subscription-package-listing.component.d.ts +2 -2
- package/lib/subscription/subscription-package.service.d.ts +2 -2
- package/lib/subscription/subscription.service.d.ts +2 -2
- package/lib/techlify-feature/techlify-feature.service.d.ts +2 -2
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +2 -2
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.d.ts +2 -2
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.d.ts +2 -2
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.d.ts +2 -2
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.d.ts +2 -2
- package/lib/techlify-view/techlify-view-form/techlify-view-form.component.d.ts +2 -2
- package/lib/techlify-view/techlify-view.service.d.ts +2 -2
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.d.ts +2 -2
- package/lib/timeline-activity/timeline-activity.service.d.ts +2 -2
- package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +2 -1
- package/lib/user/user-sessions/user-session.service.d.ts +2 -2
- package/lib/user/user-sessions/user-sessions/user-sessions.component.d.ts +2 -2
- package/lib/user/user.service.d.ts +2 -2
- package/lib/user/users-view-all.component.d.ts +2 -2
- package/lib/user-clients-list/user-client.service.d.ts +2 -2
- package/lib/user-clients-list/user-clients-list.component.d.ts +2 -2
- package/package.json +1 -1
- package/esm2022/lib/base-model/techlify-form-component.class.mjs +0 -119
- package/esm2022/lib/base-model/techlify-listing-component.class.mjs +0 -289
- package/esm2022/lib/base-model/techlify-service.class.mjs +0 -68
|
@@ -209,7 +209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
209
209
|
* - comments on more code
|
|
210
210
|
* - save time, save energy
|
|
211
211
|
*/
|
|
212
|
-
class
|
|
212
|
+
class TechlifyService {
|
|
213
213
|
constructor(http, baseUrl) {
|
|
214
214
|
this.http = http;
|
|
215
215
|
this.baseUrl = 'you-forgot-to-set-a-base-url';
|
|
@@ -281,7 +281,7 @@ class TechlifyServiceBaseClass {
|
|
|
281
281
|
* - comments on more code
|
|
282
282
|
* - save time, save energy
|
|
283
283
|
*/
|
|
284
|
-
class
|
|
284
|
+
class TechlifyFormComponent {
|
|
285
285
|
constructor(formValidatorService, service) {
|
|
286
286
|
this.formValidatorService = formValidatorService;
|
|
287
287
|
this.service = service;
|
|
@@ -291,6 +291,8 @@ class TechlifyFormComponentInterface {
|
|
|
291
291
|
this.createdEntries = [];
|
|
292
292
|
//Boolean to denote if form is in update mode
|
|
293
293
|
this.isUpdate = false;
|
|
294
|
+
//Boolean to denote if form has ability to create multiple entries
|
|
295
|
+
this.isAllowCreateAnother = true;
|
|
294
296
|
//Emits an event once form submit is success
|
|
295
297
|
this.success = new EventEmitter();
|
|
296
298
|
//Injected alert service
|
|
@@ -323,7 +325,12 @@ class TechlifyFormComponentInterface {
|
|
|
323
325
|
this.alertService.addAlert('Successfully Created', 'success');
|
|
324
326
|
return;
|
|
325
327
|
}
|
|
326
|
-
|
|
328
|
+
if (this.isUpdate) {
|
|
329
|
+
this.success.emit(res?.item);
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
this.success.emit((this.createdEntries.length == 1) ? this.createdEntries[0] : this.createdEntries);
|
|
333
|
+
}
|
|
327
334
|
if (this.dialogRef) {
|
|
328
335
|
this.dialogRef.close(res.item);
|
|
329
336
|
}
|
|
@@ -368,15 +375,17 @@ class TechlifyFormComponentInterface {
|
|
|
368
375
|
getErrorMessage(field) {
|
|
369
376
|
return this.formValidatorService.getErrorMessage(field, this.form, this.errorMessages);
|
|
370
377
|
}
|
|
371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
372
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type:
|
|
378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyFormComponent, deps: [{ token: FormValidatorService }, { token: TechlifyService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
379
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyFormComponent, inputs: { isUpdate: "isUpdate", isAllowCreateAnother: "isAllowCreateAnother" }, outputs: { success: "success" }, ngImport: i0 }); }
|
|
373
380
|
}
|
|
374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyFormComponent, decorators: [{
|
|
375
382
|
type: Directive
|
|
376
|
-
}], ctorParameters: () => [{ type: FormValidatorService }, { type:
|
|
383
|
+
}], ctorParameters: () => [{ type: FormValidatorService }, { type: TechlifyService, decorators: [{
|
|
377
384
|
type: Optional
|
|
378
385
|
}] }], propDecorators: { isUpdate: [{
|
|
379
386
|
type: Input
|
|
387
|
+
}], isAllowCreateAnother: [{
|
|
388
|
+
type: Input
|
|
380
389
|
}], success: [{
|
|
381
390
|
type: Output
|
|
382
391
|
}] } });
|
|
@@ -522,7 +531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
522
531
|
* - comments on more code
|
|
523
532
|
* - save time, save energy
|
|
524
533
|
*/
|
|
525
|
-
let
|
|
534
|
+
let TechlifyListComponent = class TechlifyListComponent {
|
|
526
535
|
get isFilterPatchFromRoute() {
|
|
527
536
|
return this._isFilterPatchFromRoute;
|
|
528
537
|
}
|
|
@@ -778,15 +787,15 @@ let TechlifyListingControllerInterface = class TechlifyListingControllerInterfac
|
|
|
778
787
|
this.isViewLoaded = true;
|
|
779
788
|
}, 500);
|
|
780
789
|
}
|
|
781
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
782
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type:
|
|
790
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyListComponent, deps: [{ token: TechlifyService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
791
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyListComponent, ngImport: i0 }); }
|
|
783
792
|
};
|
|
784
|
-
|
|
793
|
+
TechlifyListComponent = __decorate([
|
|
785
794
|
UntilDestroy()
|
|
786
|
-
],
|
|
787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
795
|
+
], TechlifyListComponent);
|
|
796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyListComponent, decorators: [{
|
|
788
797
|
type: Directive
|
|
789
|
-
}], ctorParameters: () => [{ type:
|
|
798
|
+
}], ctorParameters: () => [{ type: TechlifyService, decorators: [{
|
|
790
799
|
type: Optional
|
|
791
800
|
}] }] });
|
|
792
801
|
|
|
@@ -1704,7 +1713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1704
1713
|
args: [HTTP_DYNAMIC_INTERCEPTORS]
|
|
1705
1714
|
}] }] });
|
|
1706
1715
|
|
|
1707
|
-
class EntityFileService extends
|
|
1716
|
+
class EntityFileService extends TechlifyService {
|
|
1708
1717
|
constructor(http) {
|
|
1709
1718
|
super(http, 'entity-files');
|
|
1710
1719
|
this.http = http;
|
|
@@ -2832,7 +2841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2832
2841
|
args: [MAT_DIALOG_DATA]
|
|
2833
2842
|
}] }] });
|
|
2834
2843
|
|
|
2835
|
-
class UserService extends
|
|
2844
|
+
class UserService extends TechlifyService {
|
|
2836
2845
|
constructor(http) {
|
|
2837
2846
|
super(http, 'users');
|
|
2838
2847
|
}
|
|
@@ -3356,16 +3365,16 @@ class SearchableSelectorComponent {
|
|
|
3356
3365
|
return ele;
|
|
3357
3366
|
}
|
|
3358
3367
|
_handleInput() {
|
|
3368
|
+
//Trigger on change only when initial event is false, to avoid double loading
|
|
3369
|
+
if (!this.isEmitInitialEvent) {
|
|
3370
|
+
this.onChange(this.value);
|
|
3371
|
+
}
|
|
3359
3372
|
if (this.multiple)
|
|
3360
3373
|
this.selectedValue = (this.value || []).map(x => this.dataItems.find(y => y[this.valueField] === x));
|
|
3361
3374
|
else
|
|
3362
3375
|
this.selectedValue = this.dataItems.find(x => x[this.valueField] === this.value);
|
|
3363
3376
|
this.selectedValueChange.emit(this.selectedValue);
|
|
3364
3377
|
this.selectionChange.emit(this.value);
|
|
3365
|
-
//Trigger on change only when initial event is false, to avoid double loading
|
|
3366
|
-
if (!this.isEmitInitialEvent) {
|
|
3367
|
-
this.onChange(this.value);
|
|
3368
|
-
}
|
|
3369
3378
|
}
|
|
3370
3379
|
get errorState() {
|
|
3371
3380
|
return (this.ngControl && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty));
|
|
@@ -3531,85 +3540,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3531
3540
|
type: Input
|
|
3532
3541
|
}] } });
|
|
3533
3542
|
|
|
3534
|
-
let UserEnableButtonComponent = class UserEnableButtonComponent {
|
|
3535
|
-
constructor(service, alertService, currentUserService, dialog) {
|
|
3536
|
-
this.service = service;
|
|
3537
|
-
this.alertService = alertService;
|
|
3538
|
-
this.currentUserService = currentUserService;
|
|
3539
|
-
this.dialog = dialog;
|
|
3540
|
-
this.isUseIcons = false;
|
|
3541
|
-
this.onSave = new EventEmitter();
|
|
3542
|
-
}
|
|
3543
|
-
ngOnInit() {
|
|
3544
|
-
this.currentUser = this.currentUserService.getUser();
|
|
3545
|
-
}
|
|
3546
|
-
enableUser() {
|
|
3547
|
-
if (this.currentUser.id === this?.user?.id) {
|
|
3548
|
-
this.alertService.addAlert('Current user cannot be changed', 'warn');
|
|
3549
|
-
return;
|
|
3550
|
-
}
|
|
3551
|
-
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
3552
|
-
width: "400px",
|
|
3553
|
-
data: {
|
|
3554
|
-
title: 'Enable User',
|
|
3555
|
-
message: 'This will re-enable the user’s account. Are you sure you want to continue?'
|
|
3556
|
-
},
|
|
3557
|
-
autoFocus: false
|
|
3558
|
-
});
|
|
3559
|
-
dialogRef.afterClosed().subscribe(async (result) => {
|
|
3560
|
-
if (result) {
|
|
3561
|
-
//Action confirmed
|
|
3562
|
-
this.service.enable(this.user).then(res => {
|
|
3563
|
-
this.onSave.emit(this.user);
|
|
3564
|
-
});
|
|
3565
|
-
}
|
|
3566
|
-
});
|
|
3567
|
-
}
|
|
3568
|
-
disableUser() {
|
|
3569
|
-
if (this.currentUser.id === this?.user?.id) {
|
|
3570
|
-
this.alertService.addAlert('Current user cannot be changed', 'warn');
|
|
3571
|
-
return;
|
|
3572
|
-
}
|
|
3573
|
-
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
3574
|
-
width: "400px",
|
|
3575
|
-
data: {
|
|
3576
|
-
title: 'Disable User',
|
|
3577
|
-
message: 'Disabling this user’s account will restrict all of their their access to your company. Are you sure you want to continue?'
|
|
3578
|
-
},
|
|
3579
|
-
autoFocus: false
|
|
3580
|
-
});
|
|
3581
|
-
dialogRef.afterClosed().subscribe(async (result) => {
|
|
3582
|
-
if (result) {
|
|
3583
|
-
//Action confirmed
|
|
3584
|
-
this.service.disable(this.user).then(res => {
|
|
3585
|
-
this.onSave.emit(this.user);
|
|
3586
|
-
});
|
|
3587
|
-
}
|
|
3588
|
-
});
|
|
3589
|
-
}
|
|
3590
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonComponent, deps: [{ token: UserService }, { token: AlertService }, { token: CurrentUserService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3591
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: UserEnableButtonComponent, selector: "app-user-enable-button", inputs: { user: "user", isUseIcons: "isUseIcons" }, outputs: { onSave: "onSave" }, ngImport: i0, template: "<ng-container *ngIf=\"!isUseIcons\">\n <button mat-stroked-button color=\"warn\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\">\n Disable\n </button>\n <button mat-raised-button color=\"primary\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\">\n Enable\n </button>\n</ng-container>\n\n<ng-container *ngIf=\"isUseIcons\">\n <button mat-icon-button class=\"text-danger\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\" matTooltip=\"Disable User\">\n <mat-icon>person_off</mat-icon>\n </button>\n <button mat-icon-button class=\"text-success\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\" matTooltip=\"Enable User\">\n <mat-icon>task_alt</mat-icon>\n </button>\n</ng-container>", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
3592
|
-
};
|
|
3593
|
-
UserEnableButtonComponent = __decorate([
|
|
3594
|
-
UntilDestroy()
|
|
3595
|
-
/**
|
|
3596
|
-
* Component to view the set of users
|
|
3597
|
-
*
|
|
3598
|
-
* @author Joshua Kissoon
|
|
3599
|
-
* @since 20170710
|
|
3600
|
-
*/
|
|
3601
|
-
], UserEnableButtonComponent);
|
|
3602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonComponent, decorators: [{
|
|
3603
|
-
type: Component,
|
|
3604
|
-
args: [{ selector: 'app-user-enable-button', template: "<ng-container *ngIf=\"!isUseIcons\">\n <button mat-stroked-button color=\"warn\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\">\n Disable\n </button>\n <button mat-raised-button color=\"primary\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\">\n Enable\n </button>\n</ng-container>\n\n<ng-container *ngIf=\"isUseIcons\">\n <button mat-icon-button class=\"text-danger\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\" matTooltip=\"Disable User\">\n <mat-icon>person_off</mat-icon>\n </button>\n <button mat-icon-button class=\"text-success\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\" matTooltip=\"Enable User\">\n <mat-icon>task_alt</mat-icon>\n </button>\n</ng-container>" }]
|
|
3605
|
-
}], ctorParameters: () => [{ type: UserService }, { type: AlertService }, { type: CurrentUserService }, { type: i1.MatDialog }], propDecorators: { user: [{
|
|
3606
|
-
type: Input
|
|
3607
|
-
}], isUseIcons: [{
|
|
3608
|
-
type: Input
|
|
3609
|
-
}], onSave: [{
|
|
3610
|
-
type: Output
|
|
3611
|
-
}] } });
|
|
3612
|
-
|
|
3613
3543
|
/**
|
|
3614
3544
|
* Registry file to maintain the custom icons SVGs
|
|
3615
3545
|
*/
|
|
@@ -3695,6 +3625,7 @@ class TechlifyIconComponent {
|
|
|
3695
3625
|
delete: 'fas fa-trash',
|
|
3696
3626
|
import: 'fas fa-file-import',
|
|
3697
3627
|
export: 'fas fa-file-excel',
|
|
3628
|
+
print: 'fas fa-print',
|
|
3698
3629
|
pdf: 'fas fa-file-pdf',
|
|
3699
3630
|
history: 'fas fa-clock',
|
|
3700
3631
|
copy: 'fas fa-copy',
|
|
@@ -3707,7 +3638,11 @@ class TechlifyIconComponent {
|
|
|
3707
3638
|
table: 'fas fa-table',
|
|
3708
3639
|
multi_calendar: 'fas fa-calendar-alt',
|
|
3709
3640
|
link: 'fas fa-link',
|
|
3710
|
-
reset: '
|
|
3641
|
+
reset: 'fas fa-redo',
|
|
3642
|
+
phone: 'fas fa-phone',
|
|
3643
|
+
location: 'fas fa-map-marker-alt',
|
|
3644
|
+
unlink: 'fas fa-unlink',
|
|
3645
|
+
disable_user: 'fas fa-user-slash'
|
|
3711
3646
|
};
|
|
3712
3647
|
// Map size input to CSS classes
|
|
3713
3648
|
this.sizeMap = {
|
|
@@ -3739,6 +3674,85 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3739
3674
|
type: Input
|
|
3740
3675
|
}] } });
|
|
3741
3676
|
|
|
3677
|
+
let UserEnableButtonComponent = class UserEnableButtonComponent {
|
|
3678
|
+
constructor(service, alertService, currentUserService, dialog) {
|
|
3679
|
+
this.service = service;
|
|
3680
|
+
this.alertService = alertService;
|
|
3681
|
+
this.currentUserService = currentUserService;
|
|
3682
|
+
this.dialog = dialog;
|
|
3683
|
+
this.isUseIcons = false;
|
|
3684
|
+
this.onSave = new EventEmitter();
|
|
3685
|
+
}
|
|
3686
|
+
ngOnInit() {
|
|
3687
|
+
this.currentUser = this.currentUserService.getUser();
|
|
3688
|
+
}
|
|
3689
|
+
enableUser() {
|
|
3690
|
+
if (this.currentUser.id === this?.user?.id) {
|
|
3691
|
+
this.alertService.addAlert('Current user cannot be changed', 'warn');
|
|
3692
|
+
return;
|
|
3693
|
+
}
|
|
3694
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
3695
|
+
width: "400px",
|
|
3696
|
+
data: {
|
|
3697
|
+
title: 'Enable User',
|
|
3698
|
+
message: 'This will re-enable the user’s account. Are you sure you want to continue?'
|
|
3699
|
+
},
|
|
3700
|
+
autoFocus: false
|
|
3701
|
+
});
|
|
3702
|
+
dialogRef.afterClosed().subscribe(async (result) => {
|
|
3703
|
+
if (result) {
|
|
3704
|
+
//Action confirmed
|
|
3705
|
+
this.service.enable(this.user).then(res => {
|
|
3706
|
+
this.onSave.emit(this.user);
|
|
3707
|
+
});
|
|
3708
|
+
}
|
|
3709
|
+
});
|
|
3710
|
+
}
|
|
3711
|
+
disableUser() {
|
|
3712
|
+
if (this.currentUser.id === this?.user?.id) {
|
|
3713
|
+
this.alertService.addAlert('Current user cannot be changed', 'warn');
|
|
3714
|
+
return;
|
|
3715
|
+
}
|
|
3716
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
3717
|
+
width: "400px",
|
|
3718
|
+
data: {
|
|
3719
|
+
title: 'Disable User',
|
|
3720
|
+
message: 'Disabling this user’s account will restrict all of their their access to your company. Are you sure you want to continue?'
|
|
3721
|
+
},
|
|
3722
|
+
autoFocus: false
|
|
3723
|
+
});
|
|
3724
|
+
dialogRef.afterClosed().subscribe(async (result) => {
|
|
3725
|
+
if (result) {
|
|
3726
|
+
//Action confirmed
|
|
3727
|
+
this.service.disable(this.user).then(res => {
|
|
3728
|
+
this.onSave.emit(this.user);
|
|
3729
|
+
});
|
|
3730
|
+
}
|
|
3731
|
+
});
|
|
3732
|
+
}
|
|
3733
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonComponent, deps: [{ token: UserService }, { token: AlertService }, { token: CurrentUserService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3734
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: UserEnableButtonComponent, selector: "app-user-enable-button", inputs: { user: "user", isUseIcons: "isUseIcons" }, outputs: { onSave: "onSave" }, ngImport: i0, template: "<ng-container *ngIf=\"!isUseIcons\">\n <button mat-stroked-button color=\"warn\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\">\n Disable\n </button>\n <button mat-raised-button color=\"primary\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\">\n Enable\n </button>\n</ng-container>\n\n<ng-container *ngIf=\"isUseIcons\">\n <app-techlify-icon name=\"disable_user\" class=\"text-danger clickable\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\"\n matTooltip=\"Disable User\"></app-techlify-icon>\n <app-techlify-icon name=\"activate\" class=\"text-success clickable\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\"\n matTooltip=\"Enable User\"></app-techlify-icon>\n</ng-container>", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i11$2.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"] }] }); }
|
|
3735
|
+
};
|
|
3736
|
+
UserEnableButtonComponent = __decorate([
|
|
3737
|
+
UntilDestroy()
|
|
3738
|
+
/**
|
|
3739
|
+
* Component to view the set of users
|
|
3740
|
+
*
|
|
3741
|
+
* @author Joshua Kissoon
|
|
3742
|
+
* @since 20170710
|
|
3743
|
+
*/
|
|
3744
|
+
], UserEnableButtonComponent);
|
|
3745
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonComponent, decorators: [{
|
|
3746
|
+
type: Component,
|
|
3747
|
+
args: [{ selector: 'app-user-enable-button', template: "<ng-container *ngIf=\"!isUseIcons\">\n <button mat-stroked-button color=\"warn\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\">\n Disable\n </button>\n <button mat-raised-button color=\"primary\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\">\n Enable\n </button>\n</ng-container>\n\n<ng-container *ngIf=\"isUseIcons\">\n <app-techlify-icon name=\"disable_user\" class=\"text-danger clickable\" *ngIf=\"user?.user_client?.is_enabled\n && user?.id !== currentUser?.id\n && currentUserService.hasPermission('user_disable')\" (click)=\"disableUser()\"\n matTooltip=\"Disable User\"></app-techlify-icon>\n <app-techlify-icon name=\"activate\" class=\"text-success clickable\" *ngIf=\"!user?.user_client?.is_enabled\n&& user?.id !== currentUser?.id\n&& currentUserService.hasPermission('user_enable')\" (click)=\"enableUser()\"\n matTooltip=\"Enable User\"></app-techlify-icon>\n</ng-container>" }]
|
|
3748
|
+
}], ctorParameters: () => [{ type: UserService }, { type: AlertService }, { type: CurrentUserService }, { type: i1.MatDialog }], propDecorators: { user: [{
|
|
3749
|
+
type: Input
|
|
3750
|
+
}], isUseIcons: [{
|
|
3751
|
+
type: Input
|
|
3752
|
+
}], onSave: [{
|
|
3753
|
+
type: Output
|
|
3754
|
+
}] } });
|
|
3755
|
+
|
|
3742
3756
|
class MaterialModule {
|
|
3743
3757
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3744
3758
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MaterialModule, exports: [MatButtonModule,
|
|
@@ -3928,7 +3942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3928
3942
|
], template: "<app-techlify-icon role='button' name='delete' (click)=\"open()\"></app-techlify-icon>" }]
|
|
3929
3943
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: AlertService }, { type: ErrorHandlerService }] });
|
|
3930
3944
|
|
|
3931
|
-
let UsersViewAllComponent = class UsersViewAllComponent extends
|
|
3945
|
+
let UsersViewAllComponent = class UsersViewAllComponent extends TechlifyListComponent {
|
|
3932
3946
|
constructor(alertService, currentUserService, userConfigService, dialog, service, fb) {
|
|
3933
3947
|
super();
|
|
3934
3948
|
this.alertService = alertService;
|
|
@@ -4496,7 +4510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4496
4510
|
type: Input
|
|
4497
4511
|
}] } });
|
|
4498
4512
|
|
|
4499
|
-
class AuditLogService extends
|
|
4513
|
+
class AuditLogService extends TechlifyService {
|
|
4500
4514
|
constructor(httpService) {
|
|
4501
4515
|
super(httpService, 'audit-logs');
|
|
4502
4516
|
}
|
|
@@ -4590,13 +4604,6 @@ let AuditLogListFilterComponent = class AuditLogListFilterComponent {
|
|
|
4590
4604
|
}
|
|
4591
4605
|
ngOnInit() {
|
|
4592
4606
|
}
|
|
4593
|
-
onDurationChange(timelineValue) {
|
|
4594
|
-
const { date_to, date_from } = timelineValue;
|
|
4595
|
-
this.filterForm.patchValue({
|
|
4596
|
-
date_from: date_from ? moment(date_from).format('YYYY-MM-DD') : '',
|
|
4597
|
-
date_to: date_to ? moment(date_to).format('YYYY-MM-DD') : ''
|
|
4598
|
-
});
|
|
4599
|
-
}
|
|
4600
4607
|
resetFieldValue(field) {
|
|
4601
4608
|
this.filterForm.get(field).setValue('');
|
|
4602
4609
|
}
|
|
@@ -4609,14 +4616,14 @@ let AuditLogListFilterComponent = class AuditLogListFilterComponent {
|
|
|
4609
4616
|
ngOnDestroy() {
|
|
4610
4617
|
}
|
|
4611
4618
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListFilterComponent, deps: [{ token: FormValidatorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4612
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: { filterForm: "filterForm", objectId: "objectId", objectType: "objectType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <mat-form-field class='fl-md'>\n <mat-label>Search Changes</mat-label>\n <input type=\"text\" matInput formControlName=\"change_search\" />\n <button *ngIf=\"getFieldValue('change_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('change_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter class='fl-sm' labelText=\"Activity Date\" formControlName=\"duration\"
|
|
4619
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: { filterForm: "filterForm", objectId: "objectId", objectType: "objectType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <mat-form-field class='fl-md'>\n <mat-label>Search Changes</mat-label>\n <input type=\"text\" matInput formControlName=\"change_search\" />\n <button *ngIf=\"getFieldValue('change_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('change_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter class='fl-sm' labelText=\"Activity Date\" formControlName=\"duration\"\n [form]=\"filterForm\" [showClearButton]=\"true\" appearance=\"outline\"></app-timeline-filter>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\" [multiple]=\"true\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm' *ngIf=\"showObjectFilter\">\n <mat-label>Model Type</mat-label>\n <app-searchable-selector formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Model #</mat-label>\n <input type=\"text\" matInput formControlName=\"model_search\" />\n <button *ngIf=\"getFieldValue('model_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('model_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Creator</mat-label>\n <app-searchable-selector formControlName=\"creator_ids\" [multiple]=\"true\" apiUrl=\"api/users\"\n titleField=\"name\"></app-searchable-selector>\n <button *ngIf=\"getFieldValue('creator_ids')\" matSuffix mat-icon-button (click)=\"resetFieldValue('creator_ids')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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: i8.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$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: "component", type: SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }] }); }
|
|
4613
4620
|
};
|
|
4614
4621
|
AuditLogListFilterComponent = __decorate([
|
|
4615
4622
|
UntilDestroy()
|
|
4616
4623
|
], AuditLogListFilterComponent);
|
|
4617
4624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListFilterComponent, decorators: [{
|
|
4618
4625
|
type: Component,
|
|
4619
|
-
args: [{ selector: 'app-audit-log-list-filter', template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <mat-form-field class='fl-md'>\n <mat-label>Search Changes</mat-label>\n <input type=\"text\" matInput formControlName=\"change_search\" />\n <button *ngIf=\"getFieldValue('change_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('change_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter class='fl-sm' labelText=\"Activity Date\" formControlName=\"duration\"
|
|
4626
|
+
args: [{ selector: 'app-audit-log-list-filter', template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <mat-form-field class='fl-md'>\n <mat-label>Search Changes</mat-label>\n <input type=\"text\" matInput formControlName=\"change_search\" />\n <button *ngIf=\"getFieldValue('change_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('change_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <app-timeline-filter class='fl-sm' labelText=\"Activity Date\" formControlName=\"duration\"\n [form]=\"filterForm\" [showClearButton]=\"true\" appearance=\"outline\"></app-timeline-filter>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\" [multiple]=\"true\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm' *ngIf=\"showObjectFilter\">\n <mat-label>Model Type</mat-label>\n <app-searchable-selector formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Model #</mat-label>\n <input type=\"text\" matInput formControlName=\"model_search\" />\n <button *ngIf=\"getFieldValue('model_search')\" matSuffix mat-icon-button (click)=\"resetFieldValue('model_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Creator</mat-label>\n <app-searchable-selector formControlName=\"creator_ids\" [multiple]=\"true\" apiUrl=\"api/users\"\n titleField=\"name\"></app-searchable-selector>\n <button *ngIf=\"getFieldValue('creator_ids')\" matSuffix mat-icon-button (click)=\"resetFieldValue('creator_ids')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n</form>" }]
|
|
4620
4627
|
}], ctorParameters: () => [{ type: FormValidatorService }], propDecorators: { filterForm: [{
|
|
4621
4628
|
type: Input
|
|
4622
4629
|
}], objectId: [{
|
|
@@ -4627,19 +4634,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4627
4634
|
type: Output
|
|
4628
4635
|
}] } });
|
|
4629
4636
|
|
|
4630
|
-
let AuditLogListComponent = class AuditLogListComponent extends
|
|
4631
|
-
constructor(router, sanitizer, formBuilder,
|
|
4637
|
+
let AuditLogListComponent = class AuditLogListComponent extends TechlifyListComponent {
|
|
4638
|
+
constructor(router, sanitizer, formBuilder, service, datePipe) {
|
|
4632
4639
|
super();
|
|
4633
4640
|
this.router = router;
|
|
4634
4641
|
this.sanitizer = sanitizer;
|
|
4635
4642
|
this.formBuilder = formBuilder;
|
|
4636
|
-
this.
|
|
4637
|
-
this.
|
|
4643
|
+
this.service = service;
|
|
4644
|
+
this.datePipe = datePipe;
|
|
4638
4645
|
this.showFilter = true;
|
|
4639
4646
|
this.showExportButtons = true;
|
|
4640
4647
|
this.disableFilterPatchingFromUrl = false;
|
|
4641
4648
|
this.scrollContainer = '.mat-sidenav-content';
|
|
4642
|
-
this.filters = { sort_by: 'created_at|desc' };
|
|
4643
4649
|
this.displayedColumns = [
|
|
4644
4650
|
'index',
|
|
4645
4651
|
'id',
|
|
@@ -4651,6 +4657,12 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingC
|
|
|
4651
4657
|
'user.email',
|
|
4652
4658
|
'actions',
|
|
4653
4659
|
];
|
|
4660
|
+
this.filterFormConfiguration = {
|
|
4661
|
+
duration: { number: true },
|
|
4662
|
+
object_type: { multiple: true },
|
|
4663
|
+
action: { multiple: true },
|
|
4664
|
+
creator_ids: { multiple: true },
|
|
4665
|
+
};
|
|
4654
4666
|
this.filterForm = this.formBuilder.group({
|
|
4655
4667
|
action: [''],
|
|
4656
4668
|
change_search: [''],
|
|
@@ -4667,42 +4679,10 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingC
|
|
|
4667
4679
|
}
|
|
4668
4680
|
ngOnInit() {
|
|
4669
4681
|
this.initializeData();
|
|
4670
|
-
/**
|
|
4671
|
-
* Disable filter patching from URL so that when this component
|
|
4672
|
-
* is used in a dialog, it doesn't interact with the URL
|
|
4673
|
-
*/
|
|
4674
4682
|
if (!this.disableFilterPatchingFromUrl) {
|
|
4675
|
-
this.
|
|
4676
|
-
next: (value) => {
|
|
4677
|
-
const params = this.requestHelperService.convertToFormData(value);
|
|
4678
|
-
this.requestHelperService.updateQueryParams(params);
|
|
4679
|
-
}
|
|
4680
|
-
});
|
|
4681
|
-
// update form with query params
|
|
4682
|
-
this.requestHelperService.updateFormWithQueryParams(this.filterForm, {
|
|
4683
|
-
duration: { number: true },
|
|
4684
|
-
object_type: { multiple: true },
|
|
4685
|
-
action: { multiple: true },
|
|
4686
|
-
creator_ids: { multiple: true },
|
|
4687
|
-
});
|
|
4688
|
-
}
|
|
4689
|
-
else {
|
|
4690
|
-
this.filterForm.valueChanges.pipe(debounceTime(800)).subscribe(() => {
|
|
4691
|
-
this.reload();
|
|
4692
|
-
});
|
|
4693
|
-
}
|
|
4694
|
-
// listen for route change
|
|
4695
|
-
this.activatedRoute.queryParams
|
|
4696
|
-
.pipe(debounceTime(800), distinctUntilChanged())
|
|
4697
|
-
.subscribe((val) => {
|
|
4698
|
-
this.reload();
|
|
4699
|
-
});
|
|
4700
|
-
if (this.sort) {
|
|
4701
|
-
this.sort.sortChange.pipe(untilDestroyed(this))
|
|
4702
|
-
.subscribe((value) => {
|
|
4703
|
-
this.changeSort(value);
|
|
4704
|
-
});
|
|
4683
|
+
this.patchFiltersFromRoute();
|
|
4705
4684
|
}
|
|
4685
|
+
this.listenFilterChanges();
|
|
4706
4686
|
}
|
|
4707
4687
|
get excelData() {
|
|
4708
4688
|
if (this.models.length > 0) {
|
|
@@ -4720,38 +4700,16 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingC
|
|
|
4720
4700
|
}
|
|
4721
4701
|
return [];
|
|
4722
4702
|
}
|
|
4723
|
-
changeSort(event) {
|
|
4724
|
-
if (event.direction) {
|
|
4725
|
-
this.filters.sort_by = `${event.active}|${event.direction}`;
|
|
4726
|
-
this.reload();
|
|
4727
|
-
}
|
|
4728
|
-
}
|
|
4729
4703
|
logClicked(log) {
|
|
4730
4704
|
this.router.navigate(['/system/audit-logs/log-view', log.id]);
|
|
4731
4705
|
}
|
|
4732
4706
|
initializeData() {
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
if (this.
|
|
4738
|
-
|
|
4739
|
-
}
|
|
4740
|
-
if (this.userId) {
|
|
4741
|
-
filters.user_id = this.userId;
|
|
4742
|
-
}
|
|
4743
|
-
this.filterForm.patchValue(filters);
|
|
4744
|
-
}
|
|
4745
|
-
filterChange(event) {
|
|
4746
|
-
if (this.showFilter) {
|
|
4747
|
-
this.filters = {
|
|
4748
|
-
...this.filters,
|
|
4749
|
-
...event,
|
|
4750
|
-
object_type: this.objectType || event?.object_type || '',
|
|
4751
|
-
object_id: this.objectId || '',
|
|
4752
|
-
};
|
|
4753
|
-
this.reload();
|
|
4754
|
-
}
|
|
4707
|
+
if (this.objectType)
|
|
4708
|
+
this.filterForm.patchValue({ object_type: this.objectType });
|
|
4709
|
+
if (this.objectId)
|
|
4710
|
+
this.filterForm.patchValue({ object_id: this.objectId });
|
|
4711
|
+
if (this.userId)
|
|
4712
|
+
this.filterForm.patchValue({ user_id: this.userId });
|
|
4755
4713
|
}
|
|
4756
4714
|
getTransformedChanges(log) {
|
|
4757
4715
|
if (log?.data?.changes) {
|
|
@@ -4770,31 +4728,26 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingC
|
|
|
4770
4728
|
// Needed for automatic unsubscribe with untilDestroyed
|
|
4771
4729
|
}
|
|
4772
4730
|
loadData() {
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
this.
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
this.models = this.models?.concat(response?.data);
|
|
4783
|
-
this.lastPage = response?.last_page;
|
|
4784
|
-
},
|
|
4785
|
-
error: () => (this.isWorking = false)
|
|
4786
|
-
});
|
|
4731
|
+
let filters = this.filterForm.value;
|
|
4732
|
+
filters.page = this.page;
|
|
4733
|
+
filters.per_page = this.perPage;
|
|
4734
|
+
filters.object_id = this.objectId ?? '';
|
|
4735
|
+
filters.object_type = this.objectType ?? '';
|
|
4736
|
+
filters.user_id = this.userId ?? '';
|
|
4737
|
+
filters.date_from = this.datePipe.transform(filters.date_from, 'yyyy-MM-dd') ?? '';
|
|
4738
|
+
filters.date_to = this.datePipe.transform(filters.date_to, 'yyyy-MM-dd') ?? '';
|
|
4739
|
+
super.loadData(filters);
|
|
4787
4740
|
}
|
|
4788
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1$2.Router }, { token: i1$6.DomSanitizer }, { token: i1$5.FormBuilder }, { token: AuditLogService }, { token:
|
|
4789
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" },
|
|
4741
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1$2.Router }, { token: i1$6.DomSanitizer }, { token: i1$5.FormBuilder }, { token: AuditLogService }, { token: i2$1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4742
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"m-2\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\" class=\"mt-1\"\n name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\"\n [objectType]=\"objectType\" [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\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=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\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 auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", 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: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { 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: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i11$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11$1.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: "component", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }] }); }
|
|
4790
4743
|
};
|
|
4791
4744
|
AuditLogListComponent = __decorate([
|
|
4792
4745
|
UntilDestroy()
|
|
4793
4746
|
], AuditLogListComponent);
|
|
4794
4747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListComponent, decorators: [{
|
|
4795
4748
|
type: Component,
|
|
4796
|
-
args: [{ selector: 'app-audit-log-list', template: "<mat-card class=\"m-2\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\" class=\"mt-1\"\n name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\"\n
|
|
4797
|
-
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$6.DomSanitizer }, { type: i1$5.FormBuilder }, { type: AuditLogService }, { type:
|
|
4749
|
+
args: [{ selector: 'app-audit-log-list', template: "<mat-card class=\"m-2\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\" class=\"mt-1\"\n name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\"\n [objectType]=\"objectType\" [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\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=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\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 auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", 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"] }]
|
|
4750
|
+
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$6.DomSanitizer }, { type: i1$5.FormBuilder }, { type: AuditLogService }, { type: i2$1.DatePipe }], propDecorators: { objectId: [{
|
|
4798
4751
|
type: Input
|
|
4799
4752
|
}], objectType: [{
|
|
4800
4753
|
type: Input
|
|
@@ -4808,12 +4761,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4808
4761
|
type: Input
|
|
4809
4762
|
}], scrollContainer: [{
|
|
4810
4763
|
type: Input
|
|
4811
|
-
}], sort: [{
|
|
4812
|
-
type: ViewChild,
|
|
4813
|
-
args: [MatSort, { static: true }]
|
|
4814
4764
|
}] } });
|
|
4815
4765
|
|
|
4816
|
-
class UserClientService extends
|
|
4766
|
+
class UserClientService extends TechlifyService {
|
|
4817
4767
|
constructor(httpService) {
|
|
4818
4768
|
super(httpService, 'user-clients');
|
|
4819
4769
|
}
|
|
@@ -4879,7 +4829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4879
4829
|
type: Output
|
|
4880
4830
|
}] } });
|
|
4881
4831
|
|
|
4882
|
-
class UserClientsListComponent extends
|
|
4832
|
+
class UserClientsListComponent extends TechlifyListComponent {
|
|
4883
4833
|
constructor(service) {
|
|
4884
4834
|
super();
|
|
4885
4835
|
this.service = service;
|
|
@@ -4920,7 +4870,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4920
4870
|
type: Input
|
|
4921
4871
|
}] } });
|
|
4922
4872
|
|
|
4923
|
-
class UserSessionService extends
|
|
4873
|
+
class UserSessionService extends TechlifyService {
|
|
4924
4874
|
constructor(httpService) {
|
|
4925
4875
|
super(httpService, 'user-sessions');
|
|
4926
4876
|
}
|
|
@@ -4934,7 +4884,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4934
4884
|
}]
|
|
4935
4885
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
4936
4886
|
|
|
4937
|
-
class UserSessionsComponent extends
|
|
4887
|
+
class UserSessionsComponent extends TechlifyListComponent {
|
|
4938
4888
|
constructor(service) {
|
|
4939
4889
|
super();
|
|
4940
4890
|
this.service = service;
|
|
@@ -5653,7 +5603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
5653
5603
|
type: Output
|
|
5654
5604
|
}] } });
|
|
5655
5605
|
|
|
5656
|
-
class NoteListComponent extends
|
|
5606
|
+
class NoteListComponent extends TechlifyListComponent {
|
|
5657
5607
|
constructor(noteService, dialog, alertService) {
|
|
5658
5608
|
super();
|
|
5659
5609
|
this.noteService = noteService;
|
|
@@ -6445,7 +6395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6445
6395
|
}]
|
|
6446
6396
|
}] });
|
|
6447
6397
|
|
|
6448
|
-
class TechlifyNotificationTypeService extends
|
|
6398
|
+
class TechlifyNotificationTypeService extends TechlifyService {
|
|
6449
6399
|
constructor(http) {
|
|
6450
6400
|
super(http, 'tn-notification-types');
|
|
6451
6401
|
}
|
|
@@ -6459,7 +6409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6459
6409
|
}]
|
|
6460
6410
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
6461
6411
|
|
|
6462
|
-
class TechlifyNotificationSubscriptionService extends
|
|
6412
|
+
class TechlifyNotificationSubscriptionService extends TechlifyService {
|
|
6463
6413
|
constructor(http) {
|
|
6464
6414
|
super(http, 'tn-notification-subscriptions');
|
|
6465
6415
|
}
|
|
@@ -6473,7 +6423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6473
6423
|
}]
|
|
6474
6424
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
6475
6425
|
|
|
6476
|
-
class TechlifyNotificationForUserComponent extends
|
|
6426
|
+
class TechlifyNotificationForUserComponent extends TechlifyListComponent {
|
|
6477
6427
|
constructor(techlifyNotificationTypeService, techlifyNotificationSubscriptionService) {
|
|
6478
6428
|
super();
|
|
6479
6429
|
this.techlifyNotificationTypeService = techlifyNotificationTypeService;
|
|
@@ -9613,7 +9563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9613
9563
|
}]
|
|
9614
9564
|
}] });
|
|
9615
9565
|
|
|
9616
|
-
class TechlifyFeatureService extends
|
|
9566
|
+
class TechlifyFeatureService extends TechlifyService {
|
|
9617
9567
|
constructor(http) {
|
|
9618
9568
|
super(http, 'features');
|
|
9619
9569
|
this.features = [];
|
|
@@ -9949,7 +9899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9949
9899
|
}]
|
|
9950
9900
|
}], ctorParameters: () => [] });
|
|
9951
9901
|
|
|
9952
|
-
class AccessControlConfigService extends
|
|
9902
|
+
class AccessControlConfigService extends TechlifyService {
|
|
9953
9903
|
constructor(http) {
|
|
9954
9904
|
super(http, 'access-control-configs');
|
|
9955
9905
|
this.http = http;
|
|
@@ -10253,7 +10203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10253
10203
|
}]
|
|
10254
10204
|
}] });
|
|
10255
10205
|
|
|
10256
|
-
let LoginFormFieldsComponent = class LoginFormFieldsComponent extends
|
|
10206
|
+
let LoginFormFieldsComponent = class LoginFormFieldsComponent extends TechlifyFormComponent {
|
|
10257
10207
|
constructor(fb, formValidatorService, config, credentialService, currentUserService, authService, router, route, userConfigService, errorHandler, ngxPermissionsService) {
|
|
10258
10208
|
super(formValidatorService);
|
|
10259
10209
|
this.fb = fb;
|
|
@@ -11450,7 +11400,7 @@ var roleView_module = /*#__PURE__*/Object.freeze({
|
|
|
11450
11400
|
RoleViewModule: RoleViewModule
|
|
11451
11401
|
});
|
|
11452
11402
|
|
|
11453
|
-
class AdminRoleService extends
|
|
11403
|
+
class AdminRoleService extends TechlifyService {
|
|
11454
11404
|
constructor(httpService) {
|
|
11455
11405
|
super(httpService, 'roles');
|
|
11456
11406
|
}
|
|
@@ -11470,7 +11420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11470
11420
|
}]
|
|
11471
11421
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
11472
11422
|
|
|
11473
|
-
class AdminRolePermissionFormComponent extends
|
|
11423
|
+
class AdminRolePermissionFormComponent extends TechlifyFormComponent {
|
|
11474
11424
|
get roleInfo() {
|
|
11475
11425
|
return this._roleInfo;
|
|
11476
11426
|
}
|
|
@@ -11541,7 +11491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11541
11491
|
type: Input
|
|
11542
11492
|
}] } });
|
|
11543
11493
|
|
|
11544
|
-
let AdminRoleListComponent = class AdminRoleListComponent extends
|
|
11494
|
+
let AdminRoleListComponent = class AdminRoleListComponent extends TechlifyListComponent {
|
|
11545
11495
|
constructor(roleService, filterService, activatedRoute, fb, dialog, spinnerService) {
|
|
11546
11496
|
super();
|
|
11547
11497
|
this.roleService = roleService;
|
|
@@ -11860,10 +11810,12 @@ class UserEnableButtonModule {
|
|
|
11860
11810
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11861
11811
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonModule, declarations: [UserEnableButtonComponent], imports: [CommonModule,
|
|
11862
11812
|
MaterialModule,
|
|
11863
|
-
FlexLayoutModule
|
|
11813
|
+
FlexLayoutModule,
|
|
11814
|
+
TechlifyIconModule], exports: [UserEnableButtonComponent] }); }
|
|
11864
11815
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonModule, imports: [CommonModule,
|
|
11865
11816
|
MaterialModule,
|
|
11866
|
-
FlexLayoutModule
|
|
11817
|
+
FlexLayoutModule,
|
|
11818
|
+
TechlifyIconModule] }); }
|
|
11867
11819
|
}
|
|
11868
11820
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UserEnableButtonModule, decorators: [{
|
|
11869
11821
|
type: NgModule,
|
|
@@ -11873,6 +11825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11873
11825
|
CommonModule,
|
|
11874
11826
|
MaterialModule,
|
|
11875
11827
|
FlexLayoutModule,
|
|
11828
|
+
TechlifyIconModule
|
|
11876
11829
|
],
|
|
11877
11830
|
exports: [UserEnableButtonComponent]
|
|
11878
11831
|
}]
|
|
@@ -12339,7 +12292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
12339
12292
|
}]
|
|
12340
12293
|
}] });
|
|
12341
12294
|
|
|
12342
|
-
class RestrictorService extends
|
|
12295
|
+
class RestrictorService extends TechlifyService {
|
|
12343
12296
|
constructor(httpService) {
|
|
12344
12297
|
super(httpService, 'restrictors');
|
|
12345
12298
|
this.httpService = httpService;
|
|
@@ -12354,7 +12307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
12354
12307
|
}]
|
|
12355
12308
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
12356
12309
|
|
|
12357
|
-
class RestrictorTypeService extends
|
|
12310
|
+
class RestrictorTypeService extends TechlifyService {
|
|
12358
12311
|
constructor(httpService) {
|
|
12359
12312
|
super(httpService, 'restrictor-types');
|
|
12360
12313
|
this.httpService = httpService;
|
|
@@ -12453,7 +12406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
12453
12406
|
type: Input
|
|
12454
12407
|
}] } });
|
|
12455
12408
|
|
|
12456
|
-
class RestrictorLevelService extends
|
|
12409
|
+
class RestrictorLevelService extends TechlifyService {
|
|
12457
12410
|
constructor(httpService) {
|
|
12458
12411
|
super(httpService, 'restrictor-levels');
|
|
12459
12412
|
this.httpService = httpService;
|
|
@@ -12552,7 +12505,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
12552
12505
|
type: Input
|
|
12553
12506
|
}] } });
|
|
12554
12507
|
|
|
12555
|
-
class RestrictorStatusService extends
|
|
12508
|
+
class RestrictorStatusService extends TechlifyService {
|
|
12556
12509
|
constructor(httpService) {
|
|
12557
12510
|
super(httpService, 'restrictor-statuses');
|
|
12558
12511
|
this.httpService = httpService;
|
|
@@ -13707,7 +13660,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13707
13660
|
}]
|
|
13708
13661
|
}] });
|
|
13709
13662
|
|
|
13710
|
-
class ResetPasswordService extends
|
|
13663
|
+
class ResetPasswordService extends TechlifyService {
|
|
13711
13664
|
constructor(http) {
|
|
13712
13665
|
super(http, 'my-user/reset-password');
|
|
13713
13666
|
this.http = http;
|
|
@@ -13728,7 +13681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13728
13681
|
}]
|
|
13729
13682
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
13730
13683
|
|
|
13731
|
-
class ResetPasswordComponent extends
|
|
13684
|
+
class ResetPasswordComponent extends TechlifyFormComponent {
|
|
13732
13685
|
constructor(resetPasswordService, router, currentUserService, fb, formValidatorService, userConfigService, activatedRoute) {
|
|
13733
13686
|
super(formValidatorService);
|
|
13734
13687
|
this.resetPasswordService = resetPasswordService;
|
|
@@ -13917,7 +13870,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13917
13870
|
type: Output
|
|
13918
13871
|
}] } });
|
|
13919
13872
|
|
|
13920
|
-
class ClientService extends
|
|
13873
|
+
class ClientService extends TechlifyService {
|
|
13921
13874
|
constructor(httpService) {
|
|
13922
13875
|
super(httpService, 'clients');
|
|
13923
13876
|
this.httpService = httpService;
|
|
@@ -13932,7 +13885,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13932
13885
|
}]
|
|
13933
13886
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
13934
13887
|
|
|
13935
|
-
class CompanyInformationComponent extends
|
|
13888
|
+
class CompanyInformationComponent extends TechlifyFormComponent {
|
|
13936
13889
|
constructor(formValidatorService, formBuilder, currentUserService, clientService, location) {
|
|
13937
13890
|
super(formValidatorService);
|
|
13938
13891
|
this.formBuilder = formBuilder;
|
|
@@ -14105,7 +14058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14105
14058
|
type: Input
|
|
14106
14059
|
}] } });
|
|
14107
14060
|
|
|
14108
|
-
class TenantListWidgetComponent extends
|
|
14061
|
+
class TenantListWidgetComponent extends TechlifyListComponent {
|
|
14109
14062
|
constructor(service) {
|
|
14110
14063
|
super();
|
|
14111
14064
|
this.service = service;
|
|
@@ -14374,6 +14327,7 @@ var appAdminUserView_module = /*#__PURE__*/Object.freeze({
|
|
|
14374
14327
|
|
|
14375
14328
|
class PdfButtonComponent {
|
|
14376
14329
|
constructor() {
|
|
14330
|
+
this.isUsePrintIcon = false;
|
|
14377
14331
|
this.isLoading = new EventEmitter();
|
|
14378
14332
|
}
|
|
14379
14333
|
ngOnInit() { }
|
|
@@ -14390,12 +14344,14 @@ class PdfButtonComponent {
|
|
|
14390
14344
|
};
|
|
14391
14345
|
}
|
|
14392
14346
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PdfButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14393
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PdfButtonComponent, selector: "pdf-button", outputs: { isLoading: "isLoading" }, ngImport: i0, template: "<app-techlify-icon name=\"pdf\" class=\"clickable d-print-none\" (click)=\"print()\"
|
|
14347
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PdfButtonComponent, selector: "pdf-button", inputs: { isUsePrintIcon: "isUsePrintIcon" }, outputs: { isLoading: "isLoading" }, ngImport: i0, template: "<app-techlify-icon *ngIf=\"!isUsePrintIcon\" name=\"pdf\" class=\"clickable d-print-none\" (click)=\"print()\"\n matTooltip=\"PDF Export\">\n</app-techlify-icon>\n\n<app-techlify-icon *ngIf=\"isUsePrintIcon\" name=\"print\" class=\"clickable d-print-none\" (click)=\"print()\"\n matTooltip=\"Print\">\n</app-techlify-icon>", styles: [":host{display:flex;align-content:center}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "directive", type: i11$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
14394
14348
|
}
|
|
14395
14349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PdfButtonComponent, decorators: [{
|
|
14396
14350
|
type: Component,
|
|
14397
|
-
args: [{ selector: 'pdf-button', template: "<app-techlify-icon name=\"pdf\" class=\"clickable d-print-none\" (click)=\"print()\"
|
|
14398
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
14351
|
+
args: [{ selector: 'pdf-button', template: "<app-techlify-icon *ngIf=\"!isUsePrintIcon\" name=\"pdf\" class=\"clickable d-print-none\" (click)=\"print()\"\n matTooltip=\"PDF Export\">\n</app-techlify-icon>\n\n<app-techlify-icon *ngIf=\"isUsePrintIcon\" name=\"print\" class=\"clickable d-print-none\" (click)=\"print()\"\n matTooltip=\"Print\">\n</app-techlify-icon>", styles: [":host{display:flex;align-content:center}\n"] }]
|
|
14352
|
+
}], ctorParameters: () => [], propDecorators: { isUsePrintIcon: [{
|
|
14353
|
+
type: Input
|
|
14354
|
+
}], isLoading: [{
|
|
14399
14355
|
type: Output
|
|
14400
14356
|
}] } });
|
|
14401
14357
|
|
|
@@ -14515,7 +14471,7 @@ var SubscriptionStatus;
|
|
|
14515
14471
|
SubscriptionStatus[SubscriptionStatus["INACTIVE"] = 2] = "INACTIVE";
|
|
14516
14472
|
})(SubscriptionStatus || (SubscriptionStatus = {}));
|
|
14517
14473
|
|
|
14518
|
-
class SubscriptionService extends
|
|
14474
|
+
class SubscriptionService extends TechlifyService {
|
|
14519
14475
|
constructor(http) {
|
|
14520
14476
|
super(http, 'tenant-subscriptions');
|
|
14521
14477
|
this.subscriptions = [];
|
|
@@ -14550,7 +14506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14550
14506
|
}]
|
|
14551
14507
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
14552
14508
|
|
|
14553
|
-
class SubscriptionFormComponent extends
|
|
14509
|
+
class SubscriptionFormComponent extends TechlifyFormComponent {
|
|
14554
14510
|
get tenantSubscriptionInfo() {
|
|
14555
14511
|
return this._tenantSubscriptionInfo;
|
|
14556
14512
|
}
|
|
@@ -14710,7 +14666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14710
14666
|
}]
|
|
14711
14667
|
}] });
|
|
14712
14668
|
|
|
14713
|
-
let SubscriptionListingComponent = class SubscriptionListingComponent extends
|
|
14669
|
+
let SubscriptionListingComponent = class SubscriptionListingComponent extends TechlifyListComponent {
|
|
14714
14670
|
get isFilterPatchFromRoute() {
|
|
14715
14671
|
return !this.subscriptionPackage?.id;
|
|
14716
14672
|
}
|
|
@@ -14876,7 +14832,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14876
14832
|
}]
|
|
14877
14833
|
}] });
|
|
14878
14834
|
|
|
14879
|
-
class SubscriptionPackageService extends
|
|
14835
|
+
class SubscriptionPackageService extends TechlifyService {
|
|
14880
14836
|
constructor(http) {
|
|
14881
14837
|
super(http, 'subscription-packages');
|
|
14882
14838
|
}
|
|
@@ -14893,7 +14849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14893
14849
|
}]
|
|
14894
14850
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
14895
14851
|
|
|
14896
|
-
let SubscriptionPackageListingComponent = class SubscriptionPackageListingComponent extends
|
|
14852
|
+
let SubscriptionPackageListingComponent = class SubscriptionPackageListingComponent extends TechlifyListComponent {
|
|
14897
14853
|
constructor(subscriptionPackageService, activatedRoute, filterService, router, dialog, fb) {
|
|
14898
14854
|
super();
|
|
14899
14855
|
this.subscriptionPackageService = subscriptionPackageService;
|
|
@@ -15182,7 +15138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15182
15138
|
}]
|
|
15183
15139
|
}] });
|
|
15184
15140
|
|
|
15185
|
-
class TimelineActivityService extends
|
|
15141
|
+
class TimelineActivityService extends TechlifyService {
|
|
15186
15142
|
constructor(httpService) {
|
|
15187
15143
|
super(httpService, 'techlify-timeline-activities');
|
|
15188
15144
|
}
|
|
@@ -15196,7 +15152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15196
15152
|
}]
|
|
15197
15153
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
15198
15154
|
|
|
15199
|
-
class TimelineActivityListComponent extends
|
|
15155
|
+
class TimelineActivityListComponent extends TechlifyListComponent {
|
|
15200
15156
|
constructor(timelineActivityService, datePipe) {
|
|
15201
15157
|
super();
|
|
15202
15158
|
this.timelineActivityService = timelineActivityService;
|
|
@@ -15423,7 +15379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15423
15379
|
], template: "<app-techlify-icon role=\"button\" [name]=\"model() ? 'edit' : 'add'\" (click)=\"open()\"></app-techlify-icon>\r\n" }]
|
|
15424
15380
|
}], ctorParameters: () => [{ type: i1.MatDialog }] });
|
|
15425
15381
|
|
|
15426
|
-
class FormConfigurationFormService extends
|
|
15382
|
+
class FormConfigurationFormService extends TechlifyService {
|
|
15427
15383
|
constructor(http) {
|
|
15428
15384
|
super(http, 'form-configuration-forms');
|
|
15429
15385
|
}
|
|
@@ -15437,7 +15393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15437
15393
|
}]
|
|
15438
15394
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
15439
15395
|
|
|
15440
|
-
class FormConfigurationFormFieldService extends
|
|
15396
|
+
class FormConfigurationFormFieldService extends TechlifyService {
|
|
15441
15397
|
constructor(http) {
|
|
15442
15398
|
super(http, 'form-configuration-form-fields');
|
|
15443
15399
|
}
|
|
@@ -15610,7 +15566,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15610
15566
|
}]
|
|
15611
15567
|
}] });
|
|
15612
15568
|
|
|
15613
|
-
class MyTechlifyViewService extends
|
|
15569
|
+
class MyTechlifyViewService extends TechlifyService {
|
|
15614
15570
|
constructor(http) {
|
|
15615
15571
|
super(http, 'my-techlify-views');
|
|
15616
15572
|
}
|
|
@@ -15624,7 +15580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15624
15580
|
}]
|
|
15625
15581
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
15626
15582
|
|
|
15627
|
-
class TechlifyViewService extends
|
|
15583
|
+
class TechlifyViewService extends TechlifyService {
|
|
15628
15584
|
constructor(http) {
|
|
15629
15585
|
super(http, 'techlify-views');
|
|
15630
15586
|
}
|
|
@@ -15638,7 +15594,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15638
15594
|
}]
|
|
15639
15595
|
}], ctorParameters: () => [{ type: HttpService }] });
|
|
15640
15596
|
|
|
15641
|
-
class TechlifyViewFormComponent extends
|
|
15597
|
+
class TechlifyViewFormComponent extends TechlifyFormComponent {
|
|
15642
15598
|
get viewInfo() {
|
|
15643
15599
|
return this._viewInfo;
|
|
15644
15600
|
}
|
|
@@ -15717,7 +15673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15717
15673
|
type: Input
|
|
15718
15674
|
}] } });
|
|
15719
15675
|
|
|
15720
|
-
class MyTechlifyViewListingComponent extends
|
|
15676
|
+
class MyTechlifyViewListingComponent extends TechlifyListComponent {
|
|
15721
15677
|
//Used to expose public observable API in case of custom event implementation
|
|
15722
15678
|
get viewChangedObservable() {
|
|
15723
15679
|
return this.viewChanged;
|
|
@@ -15859,5 +15815,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15859
15815
|
* Generated bundle index. Do not edit.
|
|
15860
15816
|
*/
|
|
15861
15817
|
|
|
15862
|
-
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, 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, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, MyTechlifyViewListingComponent, MyTechlifyViewListingModule, MyTechlifyViewService, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyDeleteButtonComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormButtonComponent,
|
|
15818
|
+
export { AccessControlConfigModule, ActionPopup, ActionPopupComponent, ActionPopupModule, AdminRoleListComponent, AdminRoleListModule, AdminRolePermissionFormComponent, AdminRolePermissionFormModule, AdminRoleService, 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, FormConfigurationFieldFormComponent, FormConfigurationFieldFormModule, FormConfigurationFieldFormRoutingModule, FormConfigurationForFormComponent, FormConfigurationForFormModule, FormConfigurationFormFieldService, FormConfigurationFormService, FormConfigurationUtilityService, FormValidatorService, HTTP_DYNAMIC_INTERCEPTORS, HttpCacheService, HttpService, ImportCsvComponent, ImportCsvModule, LoaderComponent, LoaderModule, LogLevel, Logger, LoginComponent, LoginFormFieldsComponent, LoginHistoryForUserComponent, LoginHistoryForUserModule, LoginHistoryForUserRoutingModule, LoginModule, LoginRoutingModule, MaterialModule, MultiUserConfig, MyTechlifyViewListingComponent, MyTechlifyViewListingModule, MyTechlifyViewService, NgxTechlifyUsersModule, NoteFormComponent, NoteListComponent, NoteModule, NumItemsSelector, NumberInputButtonComponent, NumberInputButtonModule, NumberSelector, PageEvent, PdfButtonComponent, PdfButtonModule, Permission, PermissionModule, PermissionRoutingProvider, PermissionsManagementComponent, ProfileEditComponent, ProfileModule, ProfileRoutingModule, ReadMoreComponent, ReadMoreModule, RequestHelperService, ResetPasswordComponent, ResetPasswordModule, ResetPasswordRoutingModule, ResetPasswordService, RestrictorTypeSelectorComponent, RestrictorTypeSelectorModule, RestrictorsModule, Role, RoleFormButtonComponent, RoleFormComponent, RoleModule, RoleRoutingProvider, RoleService, RoleViewComponent, RoleViewModule, RolesViewAllComponent, RouteReusableStrategy, SearchableSelectorComponent, SearchableSelectorModule, SignUpComponent, SignupModule, SignupRoutingModule, SnackModule, StorageService, SubscriptionFormComponent, SubscriptionFormModule, SubscriptionListingComponent, SubscriptionListingModule, SubscriptionPackageListingComponent, SubscriptionPackageListingModule, SubscriptionPackageViewComponent, SubscriptionPackageViewModule, SubscriptionService, SuccessSnackComponent, TechlifyAppSelectorComponent, TechlifyAppSelectorModule, TechlifyCompanySwitcherComponent, TechlifyCompanySwitcherModule, TechlifyConfig, TechlifyDeleteButtonComponent, TechlifyFeatureDirectiveModule, TechlifyFeatureEnabledDirective, TechlifyFeatureListingComponent, TechlifyFeatureModule, TechlifyFeatureRoutes, TechlifyFeatureService, TechlifyFormButtonComponent, TechlifyFormComponent, TechlifyIconComponent, TechlifyIconModule, TechlifyListComponent, TechlifyNotificationForUserComponent, TechlifyNotificationForUserModule, TechlifyNotificationForUserRoutingModule, TechlifyNotificationModule, TechlifyNotificationRoutingModule, TechlifyService, TechlifySubscriptionDirective, TechlifySubscriptionDirectiveModule, TechlifyTaggerTagFormConfigModel, TechlifyTaggerTagFormFieldComponent, TechlifyTaggerTagFormFieldModule, TechlifyTaggerTagSelectorComponent, TechlifyTaggerTagSelectorModule, TechlifyUpdateHistoryModule, TechlifyUpdateModule, TechlifyUpdateService, TechlifyUpdatesTeaserComponent, TechlifyUpdatesTeaserModule, TechlifyViewFormComponent, TechlifyViewFormModule, TechlifyViewService, TenantFormButtonComponent, TenantListWidgetComponent, Timeline, TimelineActivityButtonComponent, TimelineActivityButtonModule, TimelineActivityListComponent, TimelineActivityListModule, TimelineFilterComponent, TimelineFilterModule, TokenInterceptor, UpdateNotifierComponent, UpdateNotifierModule, User, UserClientEnableDisableButtonComponent, UserClientEnableDisableButtonModule, UserClientsListComponent, UserClientsListModule, UserConfig, UserConfigService, UserDataService, UserEnableButtonComponent, UserEnableButtonModule, UserExploreComponent, UserFormComponent, UserListPageConfig, UserMenuComponent, UserMenuModule, UserModule, UserRoutingProvider, UserSelectorComponent, UserSelectorModule, UserService, UserSessionsComponent, UserSessionsModule, UserViewComponent, UsersViewAllComponent, UtilityModule, ViewerConfig, WrapPipe, calculateTimeline, esfur, estlr, esulr, parseLocalDate };
|
|
15863
15819
|
//# sourceMappingURL=ngx-techlify-core.mjs.map
|