ngx-techlify-core 16.2.0 → 16.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2022/lib/core/authentication.service.mjs +11 -6
  2. package/esm2022/lib/login/login.component.mjs +22 -9
  3. package/esm2022/lib/signup/signup.component.mjs +2 -2
  4. package/esm2022/lib/user/index.mjs +4 -1
  5. package/esm2022/lib/user/user-form.component.mjs +5 -5
  6. package/esm2022/lib/user/user-sessions/user-session.service.mjs +18 -0
  7. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +49 -0
  8. package/esm2022/lib/user/user-view.component.mjs +9 -5
  9. package/esm2022/lib/user/user.model.mjs +3 -1
  10. package/esm2022/lib/user/user.module.mjs +16 -3
  11. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +59 -0
  12. package/esm2022/lib/user-clients-list/user-client.service.mjs +24 -0
  13. package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +52 -0
  14. package/fesm2022/ngx-techlify-core.mjs +231 -31
  15. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  16. package/lib/core/authentication.service.d.ts +1 -1
  17. package/lib/login/login.component.d.ts +2 -0
  18. package/lib/user/index.d.ts +3 -0
  19. package/lib/user/user-sessions/user-session.service.d.ts +8 -0
  20. package/lib/user/user-sessions/user-sessions/user-sessions.component.d.ts +15 -0
  21. package/lib/user/user-view.component.d.ts +3 -1
  22. package/lib/user/user.model.d.ts +1 -0
  23. package/lib/user/user.module.d.ts +20 -17
  24. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.d.ts +22 -0
  25. package/lib/user-clients-list/user-client.service.d.ts +11 -0
  26. package/lib/user-clients-list/user-clients-list.component.d.ts +15 -0
  27. package/package.json +1 -1
@@ -0,0 +1,59 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../core";
4
+ import * as i2 from "../user/current-user.service";
5
+ import * as i3 from "../user-clients-list/user-client.service";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/material/button";
8
+ export class UserClientEnableDisableButtonComponent {
9
+ credentialsService;
10
+ currentUserService;
11
+ service;
12
+ alertService;
13
+ userClient;
14
+ saved = new EventEmitter();
15
+ user;
16
+ isWorking = false;
17
+ constructor(credentialsService, currentUserService, service, alertService) {
18
+ this.credentialsService = credentialsService;
19
+ this.currentUserService = currentUserService;
20
+ this.service = service;
21
+ this.alertService = alertService;
22
+ this.user = this.credentialsService.credentials.user;
23
+ }
24
+ ngOnInit() {
25
+ }
26
+ enable() {
27
+ this.isWorking = true;
28
+ this.service.enable(this.userClient).subscribe({
29
+ next: (response) => {
30
+ this.isWorking = false;
31
+ this.saved.emit(response?.item);
32
+ this.alertService.addAlert('User enabled for the client.', 'success');
33
+ },
34
+ error: () => (this.isWorking = false)
35
+ });
36
+ }
37
+ disable() {
38
+ this.isWorking = true;
39
+ this.service.disable(this.userClient).subscribe({
40
+ next: (response) => {
41
+ this.isWorking = false;
42
+ this.saved.emit(response?.item);
43
+ this.alertService.addAlert('User disabled for the client.', 'success');
44
+ },
45
+ error: () => (this.isWorking = false)
46
+ });
47
+ }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientEnableDisableButtonComponent, deps: [{ token: i1.CredentialsService }, { token: i2.CurrentUserService }, { token: i3.UserClientService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserClientEnableDisableButtonComponent, selector: "app-user-client-enable-disable-button", inputs: { userClient: "userClient" }, outputs: { saved: "saved" }, ngImport: i0, template: "<button\n type=\"button\"\n mat-stroked-button color=\"warn\"\n *ngIf=\"userClient?.is_enabled && userClient?.user_id != user?.id\"\n [disabled]=\"isWorking\"\n (click)=\"disable()\"\n>\n Disable\n</button>\n<button\n mat-raised-button color=\"primary\"\n *ngIf=\"!userClient?.is_enabled && userClient?.user_id != user?.id\"\n [disabled]=\"isWorking\"\n type=\"button\"\n (click)=\"enable()\"\n>\n Enable\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientEnableDisableButtonComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'app-user-client-enable-disable-button', template: "<button\n type=\"button\"\n mat-stroked-button color=\"warn\"\n *ngIf=\"userClient?.is_enabled && userClient?.user_id != user?.id\"\n [disabled]=\"isWorking\"\n (click)=\"disable()\"\n>\n Disable\n</button>\n<button\n mat-raised-button color=\"primary\"\n *ngIf=\"!userClient?.is_enabled && userClient?.user_id != user?.id\"\n [disabled]=\"isWorking\"\n type=\"button\"\n (click)=\"enable()\"\n>\n Enable\n</button>\n" }]
54
+ }], ctorParameters: function () { return [{ type: i1.CredentialsService }, { type: i2.CurrentUserService }, { type: i3.UserClientService }, { type: i1.AlertService }]; }, propDecorators: { userClient: [{
55
+ type: Input
56
+ }], saved: [{
57
+ type: Output
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jbGllbnQtZW5hYmxlLWRpc2FibGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci1jbGllbnQtZW5hYmxlLWRpc2FibGUtYnV0dG9uL3VzZXItY2xpZW50LWVuYWJsZS1kaXNhYmxlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXItY2xpZW50LWVuYWJsZS1kaXNhYmxlLWJ1dHRvbi91c2VyLWNsaWVudC1lbmFibGUtZGlzYWJsZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVc3RSxNQUFNLE9BQU8sc0NBQXNDO0lBUXZDO0lBQ0U7SUFDQTtJQUNGO0lBVkQsVUFBVSxDQUFNO0lBQ2YsS0FBSyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXhELElBQUksQ0FBTztJQUNYLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFbEIsWUFDVSxrQkFBc0MsRUFDcEMsa0JBQXNDLEVBQ3RDLE9BQTBCLEVBQzVCLFlBQTBCO1FBSDFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDcEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdDLElBQUksRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlDLElBQUksRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F6Q1Usc0NBQXNDOzRGQUF0QyxzQ0FBc0MsZ0pDWG5ELCthQWtCQTs7NEZEUGEsc0NBQXNDO2tCQUxsRCxTQUFTOytCQUNFLHVDQUF1QztxTUFLeEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBbGVydFNlcnZpY2UsIENyZWRlbnRpYWxzU2VydmljZX0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge1VzZXJDbGllbnRTZXJ2aWNlfSBmcm9tICcuLi91c2VyLWNsaWVudHMtbGlzdC91c2VyLWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7VXNlcn0gZnJvbSBcIi4uL3VzZXIvdXNlci5tb2RlbFwiO1xuaW1wb3J0IHtDdXJyZW50VXNlclNlcnZpY2V9IGZyb20gXCIuLi91c2VyL2N1cnJlbnQtdXNlci5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWNsaWVudC1lbmFibGUtZGlzYWJsZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1jbGllbnQtZW5hYmxlLWRpc2FibGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1jbGllbnQtZW5hYmxlLWRpc2FibGUtYnV0dG9uLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyQ2xpZW50RW5hYmxlRGlzYWJsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHVzZXJDbGllbnQ6IGFueTtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB1c2VyOiBVc2VyO1xuICBpc1dvcmtpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxzU2VydmljZTogQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc2VydmljZTogVXNlckNsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXIgPSB0aGlzLmNyZWRlbnRpYWxzU2VydmljZS5jcmVkZW50aWFscy51c2VyO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBlbmFibGUoKTogdm9pZCAge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZW5hYmxlKHRoaXMudXNlckNsaWVudCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdVc2VyIGVuYWJsZWQgZm9yIHRoZSBjbGllbnQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gKHRoaXMuaXNXb3JraW5nID0gZmFsc2UpXG4gICAgfSk7XG4gIH1cblxuICBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZGlzYWJsZSh0aGlzLnVzZXJDbGllbnQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkLmVtaXQocmVzcG9uc2U/Lml0ZW0pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnVXNlciBkaXNhYmxlZCBmb3IgdGhlIGNsaWVudC4nLCAnc3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSlcbiAgICB9KTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiXG4gICpuZ0lmPVwidXNlckNsaWVudD8uaXNfZW5hYmxlZCAmJiB1c2VyQ2xpZW50Py51c2VyX2lkICE9IHVzZXI/LmlkXCJcbiAgW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiXG4gIChjbGljayk9XCJkaXNhYmxlKClcIlxuPlxuICBEaXNhYmxlXG48L2J1dHRvbj5cbjxidXR0b25cbiAgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgKm5nSWY9XCIhdXNlckNsaWVudD8uaXNfZW5hYmxlZCAmJiB1c2VyQ2xpZW50Py51c2VyX2lkICE9IHVzZXI/LmlkXCJcbiAgW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwiZW5hYmxlKClcIlxuPlxuICBFbmFibGVcbjwvYnV0dG9uPlxuIl19
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyServiceBaseClass } from '../base-model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core";
5
+ export class UserClientService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'user-clients');
8
+ }
9
+ enable(userClient, params) {
10
+ return this.http.put(`api/user-clients/${userClient?.id}/enable`, { params });
11
+ }
12
+ disable(userClient, params) {
13
+ return this.http.put(`api/user-clients/${userClient?.id}/disable`, { params });
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientService, providedIn: 'root' });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientService, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root'
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdXNlci1jbGllbnRzLWxpc3QvdXNlci1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx3QkFBd0I7SUFFN0QsWUFDRSxXQUF3QjtRQUV4QixLQUFLLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBZSxFQUFFLE1BQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsT0FBTyxDQUFDLFVBQWUsRUFBRSxNQUFZO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQzt3R0FkVSxpQkFBaUI7NEdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3N9IGZyb20gJy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyQ2xpZW50U2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAndXNlci1jbGllbnRzJyk7XG4gIH1cblxuICBlbmFibGUodXNlckNsaWVudDogYW55LCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvdXNlci1jbGllbnRzLyR7dXNlckNsaWVudD8uaWR9L2VuYWJsZWAsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZGlzYWJsZSh1c2VyQ2xpZW50OiBhbnksIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYGFwaS91c2VyLWNsaWVudHMvJHt1c2VyQ2xpZW50Py5pZH0vZGlzYWJsZWAsIHsgcGFyYW1zIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { TechlifyListingControllerInterface } from '../base-model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./user-client.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/table";
7
+ import * as i4 from "@angular/material/card";
8
+ import * as i5 from "@angular/material/progress-bar";
9
+ import * as i6 from "../user-client-enable-disable-button/user-client-enable-disable-button.component";
10
+ export class UserClientsListComponent extends TechlifyListingControllerInterface {
11
+ service;
12
+ user;
13
+ displayedColumns = [
14
+ '#',
15
+ 'Name',
16
+ 'Added On',
17
+ 'Status',
18
+ 'Action'
19
+ ];
20
+ constructor(service) {
21
+ super();
22
+ this.service = service;
23
+ }
24
+ ngOnInit() {
25
+ this.loadData();
26
+ }
27
+ loadData() {
28
+ if (!this.user) {
29
+ return;
30
+ }
31
+ this.isWorking = true;
32
+ const params = {
33
+ user_ids: this.user?.id,
34
+ };
35
+ this.service.index(params).subscribe({
36
+ next: (response) => {
37
+ this.models = this.models.concat(response?.data);
38
+ this.isWorking = false;
39
+ },
40
+ error: () => (this.isWorking = false)
41
+ });
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientsListComponent, deps: [{ token: i1.UserClientService }], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserClientsListComponent, selector: "app-user-clients-list", inputs: { user: "user" }, usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.client?.name }}\n </td>\n </ng-container>\n\n <!-- Added On Column -->\n <ng-container matColumnDef=\"Added On\">\n <th mat-header-cell *matHeaderCellDef> Added On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date }}\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.is_enabled ? 'Enabled' : 'Disabled' }}\n </td>\n </ng-container>\n\n <!-- Action Column -->\n <ng-container matColumnDef=\"Action\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-user-client-enable-disable-button\n [userClient]=\"element\"\n (saved)=\"reload()\"\n ></app-user-client-enable-disable-button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.UserClientEnableDisableButtonComponent, selector: "app-user-client-enable-disable-button", inputs: ["userClient"], outputs: ["saved"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserClientsListComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'app-user-clients-list', template: "<mat-card>\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n\n <!-- # Column -->\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Name Column -->\n <ng-container matColumnDef=\"Name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.client?.name }}\n </td>\n </ng-container>\n\n <!-- Added On Column -->\n <ng-container matColumnDef=\"Added On\">\n <th mat-header-cell *matHeaderCellDef> Added On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date }}\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.is_enabled ? 'Enabled' : 'Disabled' }}\n </td>\n </ng-container>\n\n <!-- Action Column -->\n <ng-container matColumnDef=\"Action\">\n <th mat-header-cell *matHeaderCellDef> Action </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-user-client-enable-disable-button\n [userClient]=\"element\"\n (saved)=\"reload()\"\n ></app-user-client-enable-disable-button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>\n" }]
49
+ }], ctorParameters: function () { return [{ type: i1.UserClientService }]; }, propDecorators: { user: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jbGllbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi91c2VyLWNsaWVudHMtbGlzdC91c2VyLWNsaWVudHMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3VzZXItY2xpZW50cy1saXN0L3VzZXItY2xpZW50cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtDQUFrQztJQWFwRTtJQVhELElBQUksQ0FBTztJQUVwQixnQkFBZ0IsR0FBYTtRQUMzQixHQUFHO1FBQ0gsTUFBTTtRQUNOLFVBQVU7UUFDVixRQUFRO1FBQ1IsUUFBUTtLQUNULENBQUM7SUFFRixZQUNVLE9BQTBCO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBRkEsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFHcEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFRO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXRDVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qiw4R0NWckMsMHpEQXFEQTs7NEZEM0NhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx1QkFBdUI7d0dBTXhCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXNlcn0gZnJvbSAnLi4vdXNlci91c2VyLm1vZGVsJztcbmltcG9ydCB7VGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZX0gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQge1VzZXJDbGllbnRTZXJ2aWNlfSBmcm9tICcuL3VzZXItY2xpZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1jbGllbnRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1jbGllbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLWNsaWVudHMtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlckNsaWVudHNMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdXNlcjogVXNlcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnIycsXG4gICAgJ05hbWUnLFxuICAgICdBZGRlZCBPbicsXG4gICAgJ1N0YXR1cycsXG4gICAgJ0FjdGlvbidcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IFVzZXJDbGllbnRTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICB1c2VyX2lkczogdGhpcy51c2VyPy5pZCxcbiAgICB9O1xuICAgIHRoaXMuc2VydmljZS5pbmRleChwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXNwb25zZT8uZGF0YSk7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmlzV29ya2luZyA9IGZhbHNlKVxuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxtYXQtY2FyZD5cbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBjbGFzcz1cInctMTAwXCI+XG5cbiAgICAgIDwhLS0gIyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIiNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiPiB7eyBpICsgMSB9fSA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIk5hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTmFtZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7IGVsZW1lbnQ/LmNsaWVudD8ubmFtZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWRkZWQgT24gQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJBZGRlZCBPblwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBZGRlZCBPbiA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7IGVsZW1lbnQ/LmNyZWF0ZWRfYXQgfCBkYXRlIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBTdGF0dXMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJTdGF0dXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RhdHVzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uaXNfZW5hYmxlZCA/ICdFbmFibGVkJyA6ICdEaXNhYmxlZCcgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEFjdGlvbiBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkFjdGlvblwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8YXBwLXVzZXItY2xpZW50LWVuYWJsZS1kaXNhYmxlLWJ1dHRvblxuICAgICAgICAgICAgW3VzZXJDbGllbnRdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAoc2F2ZWQpPVwicmVsb2FkKClcIlxuICAgICAgICAgID48L2FwcC11c2VyLWNsaWVudC1lbmFibGUtZGlzYWJsZS1idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJpc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==