@csmart/ngc-smart-core 1.15.8 → 1.16.1
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/{esm2020 → esm2022}/csmart-ngc-smart-core.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ngc-smart-core.module.mjs +98 -98
- package/{esm2020 → esm2022}/lib/smart-auth/smart-access-control-config.mjs +11 -11
- package/{esm2020 → esm2022}/lib/smart-auth/smart-access-control.directive.mjs +39 -39
- package/{esm2020 → esm2022}/lib/smart-auth/smart-auth.service.mjs +452 -452
- package/{esm2020 → esm2022}/lib/smart-auth/smart-authorization-guard.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/smart-auth/smart-error.component.mjs +37 -37
- package/esm2022/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
- package/esm2022/lib/smart-auth/smart-selected-offender-resolver.service.mjs +60 -0
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar-config.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.component.mjs +174 -174
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.service.mjs +52 -52
- package/{esm2020 → esm2022}/lib/smart-offender-header/smart-offender-header.component.mjs +151 -151
- package/{esm2020 → esm2022}/lib/smart-offender-header/smart-offender-header.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/smart-offender-header/smart-offender-redirect.guard.mjs +27 -27
- package/{esm2020 → esm2022}/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -25
- package/{esm2020 → esm2022}/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -78
- package/{esm2020 → esm2022}/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +110 -110
- package/esm2022/lib/smart-storage/smart-storage-model.mjs +30 -0
- package/{esm2020 → esm2022}/lib/smart-storage/xdm.service.mjs +169 -169
- package/{esm2020 → esm2022}/public-api.mjs +20 -20
- package/{fesm2020 → fesm2022}/csmart-ngc-smart-core.mjs +1454 -1454
- package/{fesm2015 → fesm2022}/csmart-ngc-smart-core.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/ngc-smart-core.module.d.ts +20 -20
- package/lib/smart-auth/smart-access-control-config.d.ts +17 -17
- package/lib/smart-auth/smart-access-control.directive.d.ts +14 -14
- package/lib/smart-auth/smart-auth.service.d.ts +41 -41
- package/lib/smart-auth/smart-authorization-guard.service.d.ts +13 -13
- package/lib/smart-auth/smart-error.component.d.ts +17 -17
- package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +13 -13
- package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +15 -15
- package/lib/smart-navbar/smart-navbar-config.d.ts +7 -7
- package/lib/smart-navbar/smart-navbar.component.d.ts +42 -42
- package/lib/smart-navbar/smart-navbar.service.d.ts +12 -12
- package/lib/smart-offender-header/smart-offender-header.component.d.ts +32 -32
- package/lib/smart-offender-header/smart-offender-header.service.d.ts +18 -18
- package/lib/smart-offender-header/smart-offender-redirect.guard.d.ts +9 -9
- package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +10 -11
- package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +22 -22
- package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +19 -19
- package/lib/smart-storage/smart-storage-model.d.ts +58 -58
- package/lib/smart-storage/xdm.service.d.ts +43 -43
- package/package.json +5 -11
- package/public-api.d.ts +17 -17
- package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +0 -59
- package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +0 -60
- package/esm2020/lib/smart-storage/smart-storage-model.mjs +0 -30
- package/fesm2015/csmart-ngc-smart-core.mjs +0 -1670
- package/fesm2020/csmart-ngc-smart-core.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NtYXJ0LW5nYy1zbWFydC1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9jc21hcnQtbmdjLXNtYXJ0LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
5
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
6
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
7
|
-
import { MatCardModule } from '@angular/material/card';
|
|
8
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
9
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
10
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
11
|
-
import { SmartOffenderHeaderComponent } from './smart-offender-header/smart-offender-header.component';
|
|
12
|
-
import { SmartNavbarComponent } from './smart-navbar/smart-navbar.component';
|
|
13
|
-
import { SmartNavbarService } from './smart-navbar/smart-navbar.service';
|
|
14
|
-
import { SmartErrorComponent } from './smart-auth/smart-error.component';
|
|
15
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
16
|
-
import { SmartOffenderHeaderService } from './smart-offender-header/smart-offender-header.service';
|
|
17
|
-
import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
18
|
-
// import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
19
|
-
import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options/smart-staff-offender-options.service';
|
|
20
|
-
import { SmartAccessControlDirective } from './smart-auth/smart-access-control.directive';
|
|
21
|
-
import { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.service';
|
|
22
|
-
import { SmartOffenderRedirectGuard } from './smart-offender-header/smart-offender-redirect.guard';
|
|
23
|
-
import * as i0 from "@angular/core";
|
|
24
|
-
export class NgcSmartCoreModule {
|
|
25
|
-
}
|
|
26
|
-
/** @nocollapse */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
-
type: NgModule,
|
|
62
|
-
args: [{
|
|
63
|
-
declarations: [
|
|
64
|
-
SmartOffenderHeaderComponent,
|
|
65
|
-
SmartNavbarComponent,
|
|
66
|
-
SmartErrorComponent,
|
|
67
|
-
SmartStaffOffenderOptionsComponent,
|
|
68
|
-
SmartAccessControlDirective,
|
|
69
|
-
],
|
|
70
|
-
imports: [
|
|
71
|
-
CommonModule,
|
|
72
|
-
HttpClientModule,
|
|
73
|
-
MatButtonModule,
|
|
74
|
-
MatMenuModule,
|
|
75
|
-
MatTabsModule,
|
|
76
|
-
MatSelectModule,
|
|
77
|
-
MatCardModule,
|
|
78
|
-
MatCheckboxModule,
|
|
79
|
-
ReactiveFormsModule,
|
|
80
|
-
],
|
|
81
|
-
exports: [
|
|
82
|
-
SmartOffenderHeaderComponent,
|
|
83
|
-
SmartNavbarComponent,
|
|
84
|
-
SmartErrorComponent,
|
|
85
|
-
SmartStaffOffenderOptionsComponent,
|
|
86
|
-
SmartAccessControlDirective,
|
|
87
|
-
],
|
|
88
|
-
providers: [
|
|
89
|
-
SmartNavbarService,
|
|
90
|
-
SmartOffenderHeaderService,
|
|
91
|
-
SmartStaffOffenderOptionsService,
|
|
92
|
-
SmartAuthorizationGuard,
|
|
93
|
-
MatSnackBar,
|
|
94
|
-
SmartOffenderRedirectGuard
|
|
95
|
-
],
|
|
96
|
-
}]
|
|
97
|
-
}] });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
5
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
6
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
7
|
+
import { MatCardModule } from '@angular/material/card';
|
|
8
|
+
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
9
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
10
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
11
|
+
import { SmartOffenderHeaderComponent } from './smart-offender-header/smart-offender-header.component';
|
|
12
|
+
import { SmartNavbarComponent } from './smart-navbar/smart-navbar.component';
|
|
13
|
+
import { SmartNavbarService } from './smart-navbar/smart-navbar.service';
|
|
14
|
+
import { SmartErrorComponent } from './smart-auth/smart-error.component';
|
|
15
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
16
|
+
import { SmartOffenderHeaderService } from './smart-offender-header/smart-offender-header.service';
|
|
17
|
+
import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
18
|
+
// import { SmartStaffOffenderOptionsComponent } from './smart-staff-offender-options/smart-staff-offender-options.component';
|
|
19
|
+
import { SmartStaffOffenderOptionsService } from './smart-staff-offender-options/smart-staff-offender-options.service';
|
|
20
|
+
import { SmartAccessControlDirective } from './smart-auth/smart-access-control.directive';
|
|
21
|
+
import { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.service';
|
|
22
|
+
import { SmartOffenderRedirectGuard } from './smart-offender-header/smart-offender-redirect.guard';
|
|
23
|
+
import * as i0 from "@angular/core";
|
|
24
|
+
export class NgcSmartCoreModule {
|
|
25
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, declarations: [SmartOffenderHeaderComponent,
|
|
27
|
+
SmartNavbarComponent,
|
|
28
|
+
SmartErrorComponent,
|
|
29
|
+
SmartStaffOffenderOptionsComponent,
|
|
30
|
+
SmartAccessControlDirective], imports: [CommonModule,
|
|
31
|
+
HttpClientModule,
|
|
32
|
+
MatButtonModule,
|
|
33
|
+
MatMenuModule,
|
|
34
|
+
MatTabsModule,
|
|
35
|
+
MatSelectModule,
|
|
36
|
+
MatCardModule,
|
|
37
|
+
MatCheckboxModule,
|
|
38
|
+
ReactiveFormsModule], exports: [SmartOffenderHeaderComponent,
|
|
39
|
+
SmartNavbarComponent,
|
|
40
|
+
SmartErrorComponent,
|
|
41
|
+
SmartStaffOffenderOptionsComponent,
|
|
42
|
+
SmartAccessControlDirective] }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, providers: [
|
|
44
|
+
SmartNavbarService,
|
|
45
|
+
SmartOffenderHeaderService,
|
|
46
|
+
SmartStaffOffenderOptionsService,
|
|
47
|
+
SmartAuthorizationGuard,
|
|
48
|
+
MatSnackBar,
|
|
49
|
+
SmartOffenderRedirectGuard
|
|
50
|
+
], imports: [CommonModule,
|
|
51
|
+
HttpClientModule,
|
|
52
|
+
MatButtonModule,
|
|
53
|
+
MatMenuModule,
|
|
54
|
+
MatTabsModule,
|
|
55
|
+
MatSelectModule,
|
|
56
|
+
MatCardModule,
|
|
57
|
+
MatCheckboxModule,
|
|
58
|
+
ReactiveFormsModule] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, decorators: [{
|
|
61
|
+
type: NgModule,
|
|
62
|
+
args: [{
|
|
63
|
+
declarations: [
|
|
64
|
+
SmartOffenderHeaderComponent,
|
|
65
|
+
SmartNavbarComponent,
|
|
66
|
+
SmartErrorComponent,
|
|
67
|
+
SmartStaffOffenderOptionsComponent,
|
|
68
|
+
SmartAccessControlDirective,
|
|
69
|
+
],
|
|
70
|
+
imports: [
|
|
71
|
+
CommonModule,
|
|
72
|
+
HttpClientModule,
|
|
73
|
+
MatButtonModule,
|
|
74
|
+
MatMenuModule,
|
|
75
|
+
MatTabsModule,
|
|
76
|
+
MatSelectModule,
|
|
77
|
+
MatCardModule,
|
|
78
|
+
MatCheckboxModule,
|
|
79
|
+
ReactiveFormsModule,
|
|
80
|
+
],
|
|
81
|
+
exports: [
|
|
82
|
+
SmartOffenderHeaderComponent,
|
|
83
|
+
SmartNavbarComponent,
|
|
84
|
+
SmartErrorComponent,
|
|
85
|
+
SmartStaffOffenderOptionsComponent,
|
|
86
|
+
SmartAccessControlDirective,
|
|
87
|
+
],
|
|
88
|
+
providers: [
|
|
89
|
+
SmartNavbarService,
|
|
90
|
+
SmartOffenderHeaderService,
|
|
91
|
+
SmartStaffOffenderOptionsService,
|
|
92
|
+
SmartAuthorizationGuard,
|
|
93
|
+
MatSnackBar,
|
|
94
|
+
SmartOffenderRedirectGuard
|
|
95
|
+
],
|
|
96
|
+
}]
|
|
97
|
+
}] });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjLXNtYXJ0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvbmdjLXNtYXJ0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzNILDhIQUE4SDtBQUM5SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFxQ25HLE1BQU0sT0FBTyxrQkFBa0I7a0lBQWxCLGtCQUFrQjttSUFBbEIsa0JBQWtCLGlCQWpDM0IsNEJBQTRCO1lBQzVCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsa0NBQWtDO1lBQ2xDLDJCQUEyQixhQUczQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLG1CQUFtQixhQUduQiw0QkFBNEI7WUFDNUIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQixrQ0FBa0M7WUFDbEMsMkJBQTJCO21JQVdsQixrQkFBa0IsYUFUbEI7WUFDVCxrQkFBa0I7WUFDbEIsMEJBQTBCO1lBQzFCLGdDQUFnQztZQUNoQyx1QkFBdUI7WUFDdkIsV0FBVztZQUNYLDBCQUEwQjtTQUMzQixZQXhCQyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLG1CQUFtQjs7NEZBa0JWLGtCQUFrQjtrQkFuQzlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3FCQUM1QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLGdDQUFnQzt3QkFDaEMsdUJBQXVCO3dCQUN2QixXQUFXO3dCQUNYLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5cclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW5hdmJhci9zbWFydC1uYXZiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LWF1dGgvc21hcnQtZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci9zbWFydC1vZmZlbmRlci1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWF1dGhvcml6YXRpb24tZ3VhcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0T2ZmZW5kZXJSZWRpcmVjdEd1YXJkIH0gZnJvbSAnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItcmVkaXJlY3QuZ3VhcmQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNtYXJ0T2ZmZW5kZXJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTbWFydE5hdmJhckNvbXBvbmVudCxcclxuICAgIFNtYXJ0RXJyb3JDb21wb25lbnQsXHJcbiAgICBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNtYXJ0T2ZmZW5kZXJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTbWFydE5hdmJhckNvbXBvbmVudCxcclxuICAgIFNtYXJ0RXJyb3JDb21wb25lbnQsXHJcbiAgICBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTbWFydE5hdmJhclNlcnZpY2UsXHJcbiAgICBTbWFydE9mZmVuZGVySGVhZGVyU2VydmljZSxcclxuICAgIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgU21hcnRBdXRob3JpemF0aW9uR3VhcmQsXHJcbiAgICBNYXRTbmFja0JhcixcclxuICAgIFNtYXJ0T2ZmZW5kZXJSZWRpcmVjdEd1YXJkXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nY1NtYXJ0Q29yZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export var AccessType;
|
|
2
|
-
(function (AccessType) {
|
|
3
|
-
AccessType["READ"] = "read";
|
|
4
|
-
AccessType["CREATE"] = "create";
|
|
5
|
-
AccessType["UPDATE"] = "update";
|
|
6
|
-
AccessType["DELETE"] = "delete";
|
|
7
|
-
AccessType["EXPUNGE"] = "expunge";
|
|
8
|
-
AccessType["ASSIGN"] = "assign";
|
|
9
|
-
AccessType["REOPEN"] = "reopen";
|
|
10
|
-
AccessType["CLOSE"] = "close";
|
|
11
|
-
})(AccessType || (AccessType = {}));
|
|
1
|
+
export var AccessType;
|
|
2
|
+
(function (AccessType) {
|
|
3
|
+
AccessType["READ"] = "read";
|
|
4
|
+
AccessType["CREATE"] = "create";
|
|
5
|
+
AccessType["UPDATE"] = "update";
|
|
6
|
+
AccessType["DELETE"] = "delete";
|
|
7
|
+
AccessType["EXPUNGE"] = "expunge";
|
|
8
|
+
AccessType["ASSIGN"] = "assign";
|
|
9
|
+
AccessType["REOPEN"] = "reopen";
|
|
10
|
+
AccessType["CLOSE"] = "close";
|
|
11
|
+
})(AccessType || (AccessType = {}));
|
|
12
12
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hY2Nlc3MtY29udHJvbC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxDQUFOLElBQVksVUFTWDtBQVRELFdBQVksVUFBVTtJQUNwQiwyQkFBYSxDQUFBO0lBQ2IsK0JBQWlCLENBQUE7SUFDakIsK0JBQWlCLENBQUE7SUFDakIsK0JBQWlCLENBQUE7SUFDakIsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsK0JBQWlCLENBQUE7SUFDakIsNkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsVUFBVSxLQUFWLFVBQVUsUUFTckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnIHtcclxuICBhcHBNb2R1bGVJZDogc3RyaW5nO1xyXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xyXG4gIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGU7XHJcbiAgcm9sZUlkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFjY2Vzc1R5cGUge1xyXG4gIFJFQUQgPSAncmVhZCcsXHJcbiAgQ1JFQVRFID0gJ2NyZWF0ZScsXHJcbiAgVVBEQVRFID0gJ3VwZGF0ZScsXHJcbiAgREVMRVRFID0gJ2RlbGV0ZScsXHJcbiAgRVhQVU5HRSA9ICdleHB1bmdlJyxcclxuICBBU1NJR04gPSAnYXNzaWduJyxcclxuICBSRU9QRU4gPSAncmVvcGVuJyxcclxuICBDTE9TRSA9ICdjbG9zZSdcclxufVxyXG4iXX0=
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Directive, Input, ElementRef } from '@angular/core';
|
|
2
|
-
import { SmartAuthService } from './smart-auth.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./smart-auth.service";
|
|
5
|
-
export class SmartAccessControlDirective {
|
|
6
|
-
constructor(elementRef, auth) {
|
|
7
|
-
this.elementRef = elementRef;
|
|
8
|
-
this.auth = auth;
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
this.checkAccess();
|
|
12
|
-
}
|
|
13
|
-
checkAccess() {
|
|
14
|
-
if (!this.accessControlConfig ||
|
|
15
|
-
!this.accessControlConfig.route ||
|
|
16
|
-
!this.accessControlConfig.route.data ||
|
|
17
|
-
!this.accessControlConfig.route.data.loginStaff) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// const loginStaff = this.accessControlConfig.route.data.loginStaff;
|
|
21
|
-
// if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
|
|
22
|
-
// return;
|
|
23
|
-
// }
|
|
24
|
-
this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
|
|
25
|
-
? 'block'
|
|
26
|
-
: 'none';
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/** @nocollapse */
|
|
30
|
-
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
-
type: Directive,
|
|
33
|
-
args: [{
|
|
34
|
-
selector: '[accessControl]',
|
|
35
|
-
}]
|
|
36
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SmartAuthService }]; }, propDecorators: { accessControlConfig: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, Input, ElementRef } from '@angular/core';
|
|
2
|
+
import { SmartAuthService } from './smart-auth.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./smart-auth.service";
|
|
5
|
+
export class SmartAccessControlDirective {
|
|
6
|
+
constructor(elementRef, auth) {
|
|
7
|
+
this.elementRef = elementRef;
|
|
8
|
+
this.auth = auth;
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
this.checkAccess();
|
|
12
|
+
}
|
|
13
|
+
checkAccess() {
|
|
14
|
+
if (!this.accessControlConfig ||
|
|
15
|
+
!this.accessControlConfig.route ||
|
|
16
|
+
!this.accessControlConfig.route.data ||
|
|
17
|
+
!this.accessControlConfig.route.data.loginStaff) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// const loginStaff = this.accessControlConfig.route.data.loginStaff;
|
|
21
|
+
// if (!this.auth.isAuthEnable(loginStaff.roles, this.accessControlConfig.appModuleId)) {
|
|
22
|
+
// return;
|
|
23
|
+
// }
|
|
24
|
+
this.elementRef.nativeElement.style.display = this.auth.checkPermission(this.accessControlConfig)
|
|
25
|
+
? 'block'
|
|
26
|
+
: 'none';
|
|
27
|
+
}
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAccessControlDirective, deps: [{ token: i0.ElementRef }, { token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SmartAccessControlDirective, selector: "[accessControl]", inputs: { accessControlConfig: "accessControlConfig" }, ngImport: i0 }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAccessControlDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: '[accessControl]',
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SmartAuthService }]; }, propDecorators: { accessControlConfig: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFReEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUNVLFVBQXNCLEVBQ3RCLElBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFDN0IsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUNFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3BDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUMvQztZQUNBLE9BQU87U0FDUjtRQUVELHFFQUFxRTtRQUNyRSx5RkFBeUY7UUFDekYsWUFBWTtRQUNaLElBQUk7UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUNyRSxJQUFJLENBQUMsbUJBQW1CLENBQ3pCO1lBQ0MsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQztrSUE5QlUsMkJBQTJCO3NIQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7Z0lBRVUsbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWF1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZyB9IGZyb20gJy4vc21hcnQtYWNjZXNzLWNvbnRyb2wtY29uZmlnJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FjY2Vzc0NvbnRyb2xdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QWNjZXNzQ29udHJvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jaGVja0FjY2VzcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tBY2Nlc3MoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZSB8fFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGEgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhLmxvZ2luU3RhZmZcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uc3QgbG9naW5TdGFmZiA9IHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhLmxvZ2luU3RhZmY7XHJcbiAgICAvLyBpZiAoIXRoaXMuYXV0aC5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkKSkge1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gdGhpcy5hdXRoLmNoZWNrUGVybWlzc2lvbihcclxuICAgICAgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnXHJcbiAgICApXHJcbiAgICAgID8gJ2Jsb2NrJ1xyXG4gICAgICA6ICdub25lJztcclxuICB9XHJcbn1cclxuIl19
|