@reskin/core 0.0.1 → 0.0.3
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/README.md +1 -25
- package/bundles/reskin-core-classes.umd.js +3 -0
- package/bundles/reskin-core-classes.umd.js.map +1 -1
- package/bundles/reskin-core-directives.umd.js.map +1 -1
- package/bundles/reskin-core-entity-field.umd.js.map +1 -1
- package/bundles/reskin-core-entity-menu.umd.js.map +1 -1
- package/bundles/reskin-core-entity-org.umd.js +3 -3
- package/bundles/reskin-core-entity-org.umd.js.map +1 -1
- package/bundles/reskin-core-entity-scheme.umd.js.map +1 -1
- package/bundles/reskin-core-guards.umd.js.map +1 -1
- package/bundles/reskin-core-interceptors.umd.js +1 -1
- package/bundles/reskin-core-interceptors.umd.js.map +1 -1
- package/bundles/reskin-core-services.umd.js +233 -60
- package/bundles/reskin-core-services.umd.js.map +1 -1
- package/bundles/reskin-core-utils.umd.js +45 -12
- package/bundles/reskin-core-utils.umd.js.map +1 -1
- package/classes/table.helper.d.ts +0 -9
- package/entity/file/IUploadFileData.d.ts +1 -1
- package/entity/org/OrgTypeEnum.d.ts +3 -3
- package/esm2015/classes/public-api.js +1 -1
- package/esm2015/classes/table.helper.js +4 -1
- package/esm2015/directives/auth.directive.js +1 -1
- package/esm2015/directives/directives.module.js +1 -1
- package/esm2015/directives/public-api.js +1 -1
- package/esm2015/entity/Env.js +1 -1
- package/esm2015/entity/IPage.js +1 -1
- package/esm2015/entity/R.js +1 -1
- package/esm2015/entity/WC.js +1 -1
- package/esm2015/entity/dictionary/IDictionaryBaseInfo.js +1 -1
- package/esm2015/entity/dictionary/IDictionaryItem.js +1 -1
- package/esm2015/entity/dictionary/public-api.js +1 -1
- package/esm2015/entity/field/ColumnTypeEnum.js +1 -1
- package/esm2015/entity/field/ITableField.js +1 -1
- package/esm2015/entity/field/public-api.js +1 -1
- package/esm2015/entity/file/IUploadFileData.js +1 -1
- package/esm2015/entity/file/public-api.js +1 -1
- package/esm2015/entity/menu/IMenu.js +1 -1
- package/esm2015/entity/menu/MenuTypeEnum.js +1 -1
- package/esm2015/entity/menu/public-api.js +1 -1
- package/esm2015/entity/org/IOrgTreeNode.js +1 -1
- package/esm2015/entity/org/OrgTypeEnum.js +4 -4
- package/esm2015/entity/org/public-api.js +1 -1
- package/esm2015/entity/public-api.js +1 -1
- package/esm2015/entity/scheme/IFieldScheme.js +1 -1
- package/esm2015/entity/scheme/IScheme.js +1 -1
- package/esm2015/entity/scheme/SchemeEditTypeEnum.js +1 -1
- package/esm2015/entity/scheme/public-api.js +1 -1
- package/esm2015/entity/user/IAuth.js +1 -1
- package/esm2015/entity/user/IAuthAccount.js +1 -1
- package/esm2015/entity/user/public-api.js +1 -1
- package/esm2015/guards/auth.guard.js +1 -1
- package/esm2015/guards/public-api.js +1 -1
- package/esm2015/interceptors/blob.interceptor.js +1 -1
- package/esm2015/interceptors/cache.interceptor.js +1 -1
- package/esm2015/interceptors/error.interceptor.js +2 -2
- package/esm2015/interceptors/public-api.js +1 -1
- package/esm2015/interceptors/token.interceptor.js +1 -1
- package/esm2015/services/account.service.js +15 -2
- package/esm2015/services/app.config.js +27 -5
- package/esm2015/services/auth.service.js +11 -2
- package/esm2015/services/cache.http.service.js +34 -12
- package/esm2015/services/destroy.service.js +10 -1
- package/esm2015/services/dictionary.service.js +20 -13
- package/esm2015/services/down.file.service.js +15 -7
- package/esm2015/services/field.scheme.service.js +19 -6
- package/esm2015/services/file.service.js +54 -11
- package/esm2015/services/menu.service.js +20 -5
- package/esm2015/services/org.service.js +4 -2
- package/esm2015/services/public-api.js +1 -1
- package/esm2015/services/scheme.service.js +20 -6
- package/esm2015/utils/array.js +14 -3
- package/esm2015/utils/dom.js +13 -3
- package/esm2015/utils/public-api.js +1 -1
- package/esm2015/utils/store.js +21 -9
- package/fesm2015/reskin-core-classes.js +3 -0
- package/fesm2015/reskin-core-classes.js.map +1 -1
- package/fesm2015/reskin-core-directives.js.map +1 -1
- package/fesm2015/reskin-core-entity-field.js.map +1 -1
- package/fesm2015/reskin-core-entity-menu.js.map +1 -1
- package/fesm2015/reskin-core-entity-org.js +3 -3
- package/fesm2015/reskin-core-entity-org.js.map +1 -1
- package/fesm2015/reskin-core-entity-scheme.js.map +1 -1
- package/fesm2015/reskin-core-guards.js.map +1 -1
- package/fesm2015/reskin-core-interceptors.js +1 -1
- package/fesm2015/reskin-core-interceptors.js.map +1 -1
- package/fesm2015/reskin-core-services.js +237 -60
- package/fesm2015/reskin-core-services.js.map +1 -1
- package/fesm2015/reskin-core-utils.js +45 -12
- package/fesm2015/reskin-core-utils.js.map +1 -1
- package/package.json +1 -1
- package/services/account.service.d.ts +13 -1
- package/services/app.config.d.ts +12 -3
- package/services/auth.service.d.ts +2 -1
- package/services/cache.http.service.d.ts +30 -11
- package/services/destroy.service.d.ts +9 -0
- package/services/dictionary.service.d.ts +12 -12
- package/services/down.file.service.d.ts +14 -6
- package/services/field.scheme.service.d.ts +7 -3
- package/services/file.service.d.ts +45 -10
- package/services/menu.service.d.ts +4 -0
- package/services/org.service.d.ts +2 -1
- package/services/scheme.service.d.ts +8 -3
- package/utils/array.d.ts +6 -2
- package/utils/dom.d.ts +7 -2
- package/utils/store.d.ts +20 -8
|
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
33
33
|
export function providerHttpCache() {
|
|
34
34
|
return { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true };
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJ5L2NvcmUvaW50ZXJjZXB0b3JzL2NhY2hlLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFzRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSTdDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsU0FBNkI7UUFBN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0I7SUFBRyxDQUFDO0lBRXJELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3RELFdBQVc7UUFDWCxpQ0FBaUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ3BELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM3QztZQUNELE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OzhHQWhCUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOztBQW9CWDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUI7SUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVzcG9uc2UsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSa0NhY2hlSHR0cFNlcnZpY2UgfSBmcm9tICdAcmVza2luL2NvcmUvc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FjaGVJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWNoZUh0dHA6IFJrQ2FjaGVIdHRwU2VydmljZSkge31cblxuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgICAgICAvLyAxLuWIpOaWreaYr0dFVFxuICAgICAgICAvLyAyLmhlYWRlcuS4rea3u+WKoCBDYWNoZS1NYXA6IFN0b3JhZ2VcbiAgICAgICAgY29uc3QgY2FjaGVNYXAgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDYWNoZS1NYXAnKTtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kID09PSAnR0VUJyAmJiBjYWNoZU1hcCA9PT0gJ1N0b3JhZ2UnKSB7XG4gICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSB0aGlzLmNhY2hlSHR0cC5nZXQocmVxdWVzdC51cmwpO1xuICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUh0dHAuc2V0KHJlcXVlc3QudXJsLCByZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHRVTor7fmsYLnvJPlrZjmi6bmiKrlmahcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVySHR0cENhY2hlKCkge1xuICAgIHJldHVybiB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQ2FjaGVJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfTtcbn1cbiJdfQ==
|
|
@@ -12,7 +12,7 @@ export class ErrorInterceptor {
|
|
|
12
12
|
return next.handle(request).pipe(catchError((result) => {
|
|
13
13
|
var _a;
|
|
14
14
|
if (result.status === 401) {
|
|
15
|
-
this.router.
|
|
15
|
+
this.router.navigate(['/errors/401']).then();
|
|
16
16
|
}
|
|
17
17
|
if (result.error.code) {
|
|
18
18
|
return of(result.error);
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
32
32
|
export function providerHttpError() {
|
|
33
33
|
return { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true };
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJ5L2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3RCxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9HLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFdEMsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDdEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDNUIsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7O1lBQ2xCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNoRDtZQUNELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtZQUNELE1BQU0sTUFBQSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsbUNBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7OEdBZlEsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7QUFtQlg7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCO0lBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lcnJvcnMvNDAxJ10pLnRoZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvci5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQuZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyByZXN1bHQuZXJyb3IubXNnID8/IHJlc3VsdC5tZXNzYWdlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4vKipcbiAqIOivt+axgumUmeivr+aLpuaIquWZqFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZXJIdHRwRXJyb3IoKSB7XG4gICAgcmV0dXJuIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBFcnJvckludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9O1xufVxuIl19
|
|
@@ -2,4 +2,4 @@ export * from './token.interceptor';
|
|
|
2
2
|
export * from './error.interceptor';
|
|
3
3
|
export * from './cache.interceptor';
|
|
4
4
|
export * from './blob.interceptor';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvY29yZS9pbnRlcmNlcHRvcnMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90b2tlbi5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY2FjaGUuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9iLmludGVyY2VwdG9yJztcbiJdfQ==
|
|
@@ -45,4 +45,4 @@ export function NoAuthTokenTemplate(urls, ...params) {
|
|
|
45
45
|
}
|
|
46
46
|
return [url, { headers: new HttpHeaders({ 'Token-Control': 'no-token' }) }];
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJ5L2NvcmUvaW50ZXJjZXB0b3JzL3Rva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3RCxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTTVILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUFHLENBQUM7SUFFOUMsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDdEQsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEdBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdkMsaURBQWlEO1FBQ2pELElBQUksRUFBRSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNwQixVQUFVLEVBQUU7b0JBQ1IsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUU7aUJBQ3ZCO2FBQ0osQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OEdBaEJRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBb0JYOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQjtJQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDbkYsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQTBCLEVBQUUsR0FBRyxNQUFhO0lBQzVFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDakIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlciwgSHR0cEV2ZW50LCBIdHRwSW50ZXJjZXB0b3IsIEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJrQXV0aFNlcnZpY2UgfSBmcm9tICdAcmVza2luL2NvcmUvc2VydmljZXMnO1xuaW1wb3J0IHsgSUF1dGggfSBmcm9tICdAcmVza2luL2NvcmUvZW50aXR5L3VzZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBSa0F1dGhTZXJ2aWNlKSB7fVxuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgICAgIGNvbnN0IHRjID0gcmVxdWVzdC5oZWFkZXJzLmdldCgnVG9rZW4tQ29udHJvbCcpO1xuICAgICAgICBjb25zdCBhdXRoOiBJQXV0aCA9IHRoaXMuc2VydmljZS50b2tlbjtcbiAgICAgICAgLy8g5b2TIGhlYWRlciDkuK0gVG9rZW4tQ29udHJvbCDkuLogbm8tdG9rZW4g5pe25LiN5pC65bimIHRva2VuXG4gICAgICAgIGlmICh0YyAhPT0gJ25vLXRva2VuJyAmJiBhdXRoLnRva2VuKSB7XG4gICAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IGF1dGgudG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICdYLUF1dGgtSWQnOiBhdXRoLmlkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgfVxufVxuXG4vKipcbiAqIOivt+axguWktOWinuWKoHRva2Vu6aqM6K+B5oum5oiq5ZmoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlckF1dGhUb2tlbigpIHtcbiAgICByZXR1cm4geyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFRva2VuSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH07XG59XG5cbi8qKlxuICog5LiN5bimdG9rZW7pqozor4Hkv6Hmga/or7fmsYJcbiAqIEBwYXJhbSB1cmxzIOWcsOWdgFxuICogQHBhcmFtIHBhcmFtcyDlj4LmlbBcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gTm9BdXRoVG9rZW5UZW1wbGF0ZSh1cmxzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSwgLi4ucGFyYW1zOiBhbnlbXSk6IFtzdHJpbmcsIHsgaGVhZGVyczogSHR0cEhlYWRlcnMgfV0ge1xuICAgIGxldCBbdXJsXSA9IHVybHM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHVybCA9IFN0cmluZy5yYXcodXJscywgLi4ucGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIFt1cmwsIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ1Rva2VuLUNvbnRyb2wnOiAnbm8tdG9rZW4nIH0pIH1dO1xufVxuIl19
|
|
@@ -5,13 +5,18 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/common/http";
|
|
6
6
|
import * as i2 from "./auth.service";
|
|
7
7
|
export class RkAccountService {
|
|
8
|
-
constructor(http,
|
|
8
|
+
constructor(http, // HttpClient实例用于发送HTTP请求
|
|
9
|
+
auth) {
|
|
9
10
|
this.http = http;
|
|
10
11
|
this.auth = auth;
|
|
12
|
+
// 定义一个Store实例用于存储用户认证信息
|
|
11
13
|
this.account = new Store('account', {});
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* 加载人员权限
|
|
17
|
+
*
|
|
18
|
+
* 本方法通过发送HTTP POST请求来加载当前认证用户的权限数据,
|
|
19
|
+
* 如果请求成功,将权限数据存储在account Store实例中
|
|
15
20
|
*/
|
|
16
21
|
onLoadAuth() {
|
|
17
22
|
var _a;
|
|
@@ -24,24 +29,32 @@ export class RkAccountService {
|
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* 获得账号基本信息
|
|
32
|
+
*
|
|
33
|
+
* @returns {IAccountProfile} 返回当前账号的基本信息对象
|
|
27
34
|
*/
|
|
28
35
|
get userInfo() {
|
|
29
36
|
return this.account.get().UserInfo;
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
32
39
|
* 获得账号人员库权限
|
|
40
|
+
*
|
|
41
|
+
* @returns {IAuthPersonnelPool} 返回当前账号的人员库权限对象
|
|
33
42
|
*/
|
|
34
43
|
get personnelPool() {
|
|
35
44
|
return this.account.get().AuthPersonnelPool;
|
|
36
45
|
}
|
|
37
46
|
/**
|
|
38
47
|
* 获得账号业务权限
|
|
48
|
+
*
|
|
49
|
+
* @returns {IAuthWorkflow} 返回当前账号的业务权限对象
|
|
39
50
|
*/
|
|
40
51
|
get workflowAuth() {
|
|
41
52
|
return this.account.get().AuthWfId;
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
44
55
|
* 获得账号机构分组权限
|
|
56
|
+
*
|
|
57
|
+
* @returns {Array<IAuthOrgGroup>} 返回当前账号的机构分组权限数组
|
|
45
58
|
*/
|
|
46
59
|
get authOrgGroup() {
|
|
47
60
|
return this.account.get().AuthOrgGroup;
|
|
@@ -55,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
55
68
|
providedIn: 'root',
|
|
56
69
|
}]
|
|
57
70
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.RkAuthService }]; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUd6QixZQUNZLElBQWdCLEVBQUUseUJBQXlCO0lBQzNDLElBQW1CO1FBRG5CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUovQix3QkFBd0I7UUFDaEIsWUFBTyxHQUFHLElBQUksS0FBSyxDQUFlLFNBQVMsRUFBZ0IsRUFBRSxDQUFDLENBQUM7SUFJcEUsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsVUFBVTs7UUFDTixNQUFNLEdBQUcsR0FBRywwREFBMEQsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0I7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDM0MsQ0FBQzs7OEdBM0RRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJrQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJQWNjb3VudFByb2ZpbGUsIElBdXRoQWNjb3VudCwgSUF1dGhPcmdHcm91cCwgSUF1dGhQZXJzb25uZWxQb29sLCBJQXV0aFdvcmtmbG93IH0gZnJvbSAnQHJlc2tpbi9jb3JlL2VudGl0eS91c2VyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQHJlc2tpbi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IFIgfSBmcm9tICdAcmVza2luL2NvcmUvZW50aXR5JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmtBY2NvdW50U2VydmljZSB7XG4gICAgLy8g5a6a5LmJ5LiA5LiqU3RvcmXlrp7kvovnlKjkuo7lrZjlgqjnlKjmiLforqTor4Hkv6Hmga9cbiAgICBwcml2YXRlIGFjY291bnQgPSBuZXcgU3RvcmU8SUF1dGhBY2NvdW50PignYWNjb3VudCcsIDxJQXV0aEFjY291bnQ+e30pO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIC8vIEh0dHBDbGllbnTlrp7kvovnlKjkuo7lj5HpgIFIVFRQ6K+35rGCXG4gICAgICAgIHByaXZhdGUgYXV0aDogUmtBdXRoU2VydmljZSwgLy8gUmtBdXRoU2VydmljZeWunuS+i+eUqOS6jui6q+S7vemqjOivgeebuOWFs+aTjeS9nFxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIOWKoOi9veS6uuWRmOadg+mZkFxuICAgICAqXG4gICAgICog5pys5pa55rOV6YCa6L+H5Y+R6YCBSFRUUCBQT1NU6K+35rGC5p2l5Yqg6L295b2T5YmN6K6k6K+B55So5oi355qE5p2D6ZmQ5pWw5o2u77yMXG4gICAgICog5aaC5p6c6K+35rGC5oiQ5Yqf77yM5bCG5p2D6ZmQ5pWw5o2u5a2Y5YKo5ZyoYWNjb3VudCBTdG9yZeWunuS+i+S4rVxuICAgICAqL1xuICAgIG9uTG9hZEF1dGgoKSB7XG4gICAgICAgIGNvbnN0IHVybCA9ICdhcGkvZ2wtc2VydmljZS1zeXMtdXNlci92MS91c2VyL3N5c3RlbS91c2VyL2xvYWRBdXRoRGF0YSc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSPih1cmwsIHsgU1lTVEVNX1VTRVJfSUQ6IHRoaXMuYXV0aC50b2tlbj8uaWQgfSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChqc29uLmNvZGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvdW50LnNldChqc29uLmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+W+l+i0puWPt+WfuuacrOS/oeaBr1xuICAgICAqXG4gICAgICogQHJldHVybnMge0lBY2NvdW50UHJvZmlsZX0g6L+U5Zue5b2T5YmN6LSm5Y+355qE5Z+65pys5L+h5oGv5a+56LGhXG4gICAgICovXG4gICAgZ2V0IHVzZXJJbmZvKCk6IElBY2NvdW50UHJvZmlsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnQuZ2V0KCkuVXNlckluZm87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6I635b6X6LSm5Y+35Lq65ZGY5bqT5p2D6ZmQXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7SUF1dGhQZXJzb25uZWxQb29sfSDov5Tlm57lvZPliY3otKblj7fnmoTkurrlkZjlupPmnYPpmZDlr7nosaFcbiAgICAgKi9cbiAgICBnZXQgcGVyc29ubmVsUG9vbCgpOiBJQXV0aFBlcnNvbm5lbFBvb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvdW50LmdldCgpLkF1dGhQZXJzb25uZWxQb29sO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+W+l+i0puWPt+S4muWKoeadg+mZkFxuICAgICAqXG4gICAgICogQHJldHVybnMge0lBdXRoV29ya2Zsb3d9IOi/lOWbnuW9k+WJjei0puWPt+eahOS4muWKoeadg+mZkOWvueixoVxuICAgICAqL1xuICAgIGdldCB3b3JrZmxvd0F1dGgoKTogSUF1dGhXb3JrZmxvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnQuZ2V0KCkuQXV0aFdmSWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6I635b6X6LSm5Y+35py65p6E5YiG57uE5p2D6ZmQXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7QXJyYXk8SUF1dGhPcmdHcm91cD59IOi/lOWbnuW9k+WJjei0puWPt+eahOacuuaehOWIhue7hOadg+mZkOaVsOe7hFxuICAgICAqL1xuICAgIGdldCBhdXRoT3JnR3JvdXAoKTogQXJyYXk8SUF1dGhPcmdHcm91cD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvdW50LmdldCgpLkF1dGhPcmdHcm91cDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -12,20 +12,33 @@ export class AppConfig {
|
|
|
12
12
|
this.title = title;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* 异步加载配置数据
|
|
16
|
+
* 通过调用API端点获取系统参数,解析并应用这些参数
|
|
17
|
+
* 如果获取参数失败或参数不正确,则抛出错误
|
|
18
|
+
*
|
|
19
|
+
* @returns {Promise<WC>} 返回配置数据的Promise
|
|
16
20
|
*/
|
|
17
21
|
onLoad() {
|
|
18
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
// 定义API请求的URL,用于获取系统参数
|
|
19
24
|
const url = `api/gl-service-sys-core/v1/core/system/parameter/getOneByCode/${this.env.config.PROJECT_CONFIG_KEY}`;
|
|
25
|
+
// 发起API请求
|
|
20
26
|
const response = yield fetch(url);
|
|
27
|
+
// 解析JSON响应
|
|
21
28
|
const json = yield response.json();
|
|
29
|
+
// 检查响应码,如果不为0,则抛出错误
|
|
22
30
|
if (json.code !== 0) {
|
|
23
31
|
throw new Error(json.msg);
|
|
24
32
|
}
|
|
33
|
+
// 解析并处理配置数据
|
|
25
34
|
const config = json.data.SYSTEM_PARAMETER_VALUE && JSON.parse(json.data.SYSTEM_PARAMETER_VALUE);
|
|
35
|
+
// 将production字符串转换为布尔值
|
|
26
36
|
config.production = config.production === 'true';
|
|
37
|
+
// 将配置数据应用到应用配置中
|
|
27
38
|
AppConfig.settings = config;
|
|
39
|
+
// 设置项目标题
|
|
28
40
|
this.title.setTitle(config.insights.PROJECT_NAME);
|
|
41
|
+
// 返回配置数据
|
|
29
42
|
return config;
|
|
30
43
|
});
|
|
31
44
|
}
|
|
@@ -42,19 +55,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
42
55
|
args: [RK_ENVIRONMENT]
|
|
43
56
|
}] }, { type: i1.Title }]; } });
|
|
44
57
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
58
|
+
* 配置应用的提供者和初始化函数
|
|
59
|
+
*
|
|
60
|
+
* 此函数用于配置应用程序的提供者和服务初始化逻辑它通过依赖注入机制,
|
|
61
|
+
* 将环境配置和应用配置对象提供给应用,并在应用启动时执行一个加载函数
|
|
62
|
+
*
|
|
63
|
+
* @param environment 应用环境的配置对象,包含运行时的各种环境变量和配置
|
|
64
|
+
* @returns 返回一个包含提供者配置的数组,用于 AppModule 的提供者列表
|
|
47
65
|
*/
|
|
48
66
|
export function providerAppConfig(environment) {
|
|
49
67
|
return [
|
|
68
|
+
// 提供环境配置的提供者,将环境对象作为值提供给 RK_ENVIRONMENT 令牌
|
|
50
69
|
{ provide: RK_ENVIRONMENT, useValue: environment },
|
|
70
|
+
// 将 AppConfig 服务本身作为提供者
|
|
51
71
|
AppConfig,
|
|
72
|
+
// 配置 APP_INITIALIZER 提供者,使用工厂函数在应用启动时调用 appConfig 的 onLoad 方法
|
|
73
|
+
// 这允许在应用启动完成后执行一些初始化逻辑
|
|
52
74
|
{
|
|
53
75
|
provide: APP_INITIALIZER,
|
|
54
76
|
useFactory: (appConfig) => () => appConfig.onLoad(),
|
|
55
77
|
deps: [AppConfig],
|
|
56
|
-
multi: true,
|
|
78
|
+
multi: true, // 标记此初始化函数为多值,可以有多个初始化函数
|
|
57
79
|
},
|
|
58
80
|
];
|
|
59
81
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcnkvY29yZS9zZXJ2aWNlcy9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJcEY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFLaEUsTUFBTSxPQUFPLFNBQVM7SUFNbEIsWUFDb0MsR0FBUSxFQUNoQyxLQUFZO1FBRFksUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQ3JCLENBQUM7SUFFSjs7Ozs7O09BTUc7SUFDRyxNQUFNOztZQUNSLHVCQUF1QjtZQUN2QixNQUFNLEdBQUcsR0FBRyxpRUFBaUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNsSCxVQUFVO1lBQ1YsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsV0FBVztZQUNYLE1BQU0sSUFBSSxHQUFNLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLG9CQUFvQjtZQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QjtZQUNELFlBQVk7WUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ2hHLHVCQUF1QjtZQUN2QixNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDO1lBQ2pELGdCQUFnQjtZQUNoQixTQUFTLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUM1QixTQUFTO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRCxTQUFTO1lBQ1QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztLQUFBOzt1R0F2Q1EsU0FBUyxrQkFPTixjQUFjOzJHQVBqQixTQUFTLGNBRk4sTUFBTTs0RkFFVCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBUVEsTUFBTTsyQkFBQyxjQUFjOztBQW1DOUI7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBZ0I7SUFDOUMsT0FBTztRQUNILDJDQUEyQztRQUMzQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtRQUNsRCx3QkFBd0I7UUFDeEIsU0FBUztRQUNULDhEQUE4RDtRQUM5RCx1QkFBdUI7UUFDdkI7WUFDSSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzlELElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNqQixLQUFLLEVBQUUsSUFBSSxFQUFFLHlCQUF5QjtTQUN6QztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRW52LCBSLCBXQyB9IGZyb20gJ0ByZXNraW4vY29yZS9lbnRpdHknO1xuXG4vKipcbiAqIOmhueebrueOr+Wig+WPmOmHj+mFjee9riBUb2tlblxuICovXG5leHBvcnQgY29uc3QgUktfRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2Vudmlyb25tZW50Jyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyB7XG4gICAgLyoqXG4gICAgICog6aG555uu6YWN572u6aG5XG4gICAgICovXG4gICAgc3RhdGljIHNldHRpbmdzOiBXQztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFJLX0VOVklST05NRU5UKSBwcml2YXRlIGVudjogRW52LFxuICAgICAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiDlvILmraXliqDovb3phY3nva7mlbDmja5cbiAgICAgKiDpgJrov4fosIPnlKhBUEnnq6/ngrnojrflj5bns7vnu5/lj4LmlbDvvIzop6PmnpDlubblupTnlKjov5nkupvlj4LmlbBcbiAgICAgKiDlpoLmnpzojrflj5blj4LmlbDlpLHotKXmiJblj4LmlbDkuI3mraPnoa7vvIzliJnmipvlh7rplJnor69cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFdDPn0g6L+U5Zue6YWN572u5pWw5o2u55qEUHJvbWlzZVxuICAgICAqL1xuICAgIGFzeW5jIG9uTG9hZCgpOiBQcm9taXNlPFdDPiB7XG4gICAgICAgIC8vIOWumuS5iUFQSeivt+axgueahFVSTO+8jOeUqOS6juiOt+WPluezu+e7n+WPguaVsFxuICAgICAgICBjb25zdCB1cmwgPSBgYXBpL2dsLXNlcnZpY2Utc3lzLWNvcmUvdjEvY29yZS9zeXN0ZW0vcGFyYW1ldGVyL2dldE9uZUJ5Q29kZS8ke3RoaXMuZW52LmNvbmZpZy5QUk9KRUNUX0NPTkZJR19LRVl9YDtcbiAgICAgICAgLy8g5Y+R6LW3QVBJ6K+35rGCXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTtcbiAgICAgICAgLy8g6Kej5p6QSlNPTuWTjeW6lFxuICAgICAgICBjb25zdCBqc29uOiBSID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAvLyDmo4Dmn6Xlk43lupTnoIHvvIzlpoLmnpzkuI3kuLow77yM5YiZ5oqb5Ye66ZSZ6K+vXG4gICAgICAgIGlmIChqc29uLmNvZGUgIT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihqc29uLm1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8g6Kej5p6Q5bm25aSE55CG6YWN572u5pWw5o2uXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGpzb24uZGF0YS5TWVNURU1fUEFSQU1FVEVSX1ZBTFVFICYmIEpTT04ucGFyc2UoanNvbi5kYXRhLlNZU1RFTV9QQVJBTUVURVJfVkFMVUUpO1xuICAgICAgICAvLyDlsIZwcm9kdWN0aW9u5a2X56ym5Liy6L2s5o2i5Li65biD5bCU5YC8XG4gICAgICAgIGNvbmZpZy5wcm9kdWN0aW9uID0gY29uZmlnLnByb2R1Y3Rpb24gPT09ICd0cnVlJztcbiAgICAgICAgLy8g5bCG6YWN572u5pWw5o2u5bqU55So5Yiw5bqU55So6YWN572u5LitXG4gICAgICAgIEFwcENvbmZpZy5zZXR0aW5ncyA9IGNvbmZpZztcbiAgICAgICAgLy8g6K6+572u6aG555uu5qCH6aKYXG4gICAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUoY29uZmlnLmluc2lnaHRzLlBST0pFQ1RfTkFNRSk7XG4gICAgICAgIC8vIOi/lOWbnumFjee9ruaVsOaNrlxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbn1cblxuLyoqXG4gKiDphY3nva7lupTnlKjnmoTmj5DkvpvogIXlkozliJ3lp4vljJblh73mlbBcbiAqXG4gKiDmraTlh73mlbDnlKjkuo7phY3nva7lupTnlKjnqIvluo/nmoTmj5DkvpvogIXlkozmnI3liqHliJ3lp4vljJbpgLvovpHlroPpgJrov4fkvp3otZbms6jlhaXmnLrliLbvvIxcbiAqIOWwhueOr+Wig+mFjee9ruWSjOW6lOeUqOmFjee9ruWvueixoeaPkOS+m+e7meW6lOeUqO+8jOW5tuWcqOW6lOeUqOWQr+WKqOaXtuaJp+ihjOS4gOS4quWKoOi9veWHveaVsFxuICpcbiAqIEBwYXJhbSBlbnZpcm9ubWVudCDlupTnlKjnjq/looPnmoTphY3nva7lr7nosaHvvIzljIXlkKvov5DooYzml7bnmoTlkITnp43njq/looPlj5jph4/lkozphY3nva5cbiAqIEByZXR1cm5zIOi/lOWbnuS4gOS4quWMheWQq+aPkOS+m+iAhemFjee9rueahOaVsOe7hO+8jOeUqOS6jiBBcHBNb2R1bGUg55qE5o+Q5L6b6ICF5YiX6KGoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlckFwcENvbmZpZyhlbnZpcm9ubWVudDogRW52KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgLy8g5o+Q5L6b546v5aKD6YWN572u55qE5o+Q5L6b6ICF77yM5bCG546v5aKD5a+56LGh5L2c5Li65YC85o+Q5L6b57uZIFJLX0VOVklST05NRU5UIOS7pOeJjFxuICAgICAgICB7IHByb3ZpZGU6IFJLX0VOVklST05NRU5ULCB1c2VWYWx1ZTogZW52aXJvbm1lbnQgfSxcbiAgICAgICAgLy8g5bCGIEFwcENvbmZpZyDmnI3liqHmnKzouqvkvZzkuLrmj5DkvpvogIVcbiAgICAgICAgQXBwQ29uZmlnLFxuICAgICAgICAvLyDphY3nva4gQVBQX0lOSVRJQUxJWkVSIOaPkOS+m+iAhe+8jOS9v+eUqOW3peWOguWHveaVsOWcqOW6lOeUqOWQr+WKqOaXtuiwg+eUqCBhcHBDb25maWcg55qEIG9uTG9hZCDmlrnms5VcbiAgICAgICAgLy8g6L+Z5YWB6K645Zyo5bqU55So5ZCv5Yqo5a6M5oiQ5ZCO5omn6KGM5LiA5Lqb5Yid5aeL5YyW6YC76L6RXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChhcHBDb25maWc6IEFwcENvbmZpZykgPT4gKCkgPT4gYXBwQ29uZmlnLm9uTG9hZCgpLFxuICAgICAgICAgICAgZGVwczogW0FwcENvbmZpZ10sIC8vIOaMh+WumuS+nei1liBBcHBDb25maWcgc2VydmljZXNcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLCAvLyDmoIforrDmraTliJ3lp4vljJblh73mlbDkuLrlpJrlgLzvvIzlj6/ku6XmnInlpJrkuKrliJ3lp4vljJblh73mlbBcbiAgICAgICAgfSxcbiAgICBdO1xufVxuIl19
|
|
@@ -5,24 +5,30 @@ import { Store } from '@reskin/core/utils';
|
|
|
5
5
|
import { RK_ENVIRONMENT } from './app.config';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/common/http";
|
|
8
|
+
// RkAuthService 提供了与用户认证相关的服务
|
|
8
9
|
export class RkAuthService {
|
|
10
|
+
// 构造函数,注入环境配置和HTTP客户端
|
|
9
11
|
constructor(env, http) {
|
|
10
12
|
this.env = env;
|
|
11
13
|
this.http = http;
|
|
14
|
+
// auth 存储认证信息
|
|
12
15
|
this.auth = new Store('auth', {});
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
15
18
|
* 系统登录
|
|
16
19
|
* @param data 验证信息
|
|
17
|
-
* @returns
|
|
20
|
+
* @returns 登录结果
|
|
18
21
|
*/
|
|
19
22
|
onLogin(data) {
|
|
20
23
|
const url = 'api/gl-service-sys-user/v1/user/system/auth/login';
|
|
24
|
+
// 设置请求头,包含项目类型和无令牌控制信息
|
|
21
25
|
const headers = new HttpHeaders({
|
|
22
26
|
'ProjectNo': this.env.config.PROJECT_TYPE,
|
|
23
27
|
'Token-Control': 'no-token',
|
|
24
28
|
});
|
|
29
|
+
// 发送POST请求,并在成功后处理响应
|
|
25
30
|
return this.http.post(url, { data }, { headers }).pipe(tap((json) => {
|
|
31
|
+
// 如果代码为0,表示登录成功,存储认证信息
|
|
26
32
|
if (json.code === 0) {
|
|
27
33
|
this.auth.set(json.data);
|
|
28
34
|
}
|
|
@@ -33,12 +39,15 @@ export class RkAuthService {
|
|
|
33
39
|
*/
|
|
34
40
|
onLogout() {
|
|
35
41
|
const url = 'api/gl-service-sys-user/v1/user/system/auth/logoutByAuthId';
|
|
42
|
+
// 发送POST请求,使用当前的AUTH_ID进行注销
|
|
36
43
|
return this.http.post(url, { AUTH_ID: this.token.id });
|
|
37
44
|
}
|
|
38
45
|
/**
|
|
39
46
|
* 获得 token
|
|
47
|
+
* @returns 当前用户的认证信息
|
|
40
48
|
*/
|
|
41
49
|
get token() {
|
|
50
|
+
// 获取存储的认证信息
|
|
42
51
|
return this.auth.get();
|
|
43
52
|
}
|
|
44
53
|
}
|
|
@@ -53,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
53
62
|
type: Inject,
|
|
54
63
|
args: [RK_ENVIRONMENT]
|
|
55
64
|
}] }, { type: i1.HttpClient }]; } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHOUMsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxhQUFhO0lBSXRCLHNCQUFzQjtJQUN0QixZQUNvQyxHQUFRLEVBQ2hDLElBQWdCO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBTjVCLGNBQWM7UUFDTixTQUFJLEdBQUcsSUFBSSxLQUFLLENBQVEsTUFBTSxFQUFTLEVBQUUsQ0FBQyxDQUFDO0lBTWhELENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLElBQVk7UUFDaEIsTUFBTSxHQUFHLEdBQUcsbURBQW1ELENBQUM7UUFDaEUsdUJBQXVCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzVCLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3pDLGVBQWUsRUFBRSxVQUFVO1NBQzlCLENBQUMsQ0FBQztRQUNILHFCQUFxQjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1QsdUJBQXVCO1lBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QjtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ0osTUFBTSxHQUFHLEdBQUcsNERBQTRELENBQUM7UUFDekUsNEJBQTRCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxLQUFLO1FBQ0wsWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsyR0FqRFEsYUFBYSxrQkFNVixjQUFjOytHQU5qQixhQUFhLGNBRlYsTUFBTTs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBT1EsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQHJlc2tpbi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElBdXRoIH0gZnJvbSAnQHJlc2tpbi9jb3JlL2VudGl0eS91c2VyJztcbmltcG9ydCB7IFJLX0VOVklST05NRU5UIH0gZnJvbSAnLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IEVudiwgUiB9IGZyb20gJ0ByZXNraW4vY29yZS9lbnRpdHknO1xuXG4vLyBSa0F1dGhTZXJ2aWNlIOaPkOS+m+S6huS4jueUqOaIt+iupOivgeebuOWFs+eahOacjeWKoVxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmtBdXRoU2VydmljZSB7XG4gICAgLy8gYXV0aCDlrZjlgqjorqTor4Hkv6Hmga9cbiAgICBwcml2YXRlIGF1dGggPSBuZXcgU3RvcmU8SUF1dGg+KCdhdXRoJywgPElBdXRoPnt9KTtcblxuICAgIC8vIOaehOmAoOWHveaVsO+8jOazqOWFpeeOr+Wig+mFjee9ruWSjEhUVFDlrqLmiLfnq69cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChSS19FTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnY6IEVudixcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIOezu+e7n+eZu+W9lVxuICAgICAqIEBwYXJhbSBkYXRhIOmqjOivgeS/oeaBr1xuICAgICAqIEByZXR1cm5zIOeZu+W9lee7k+aenFxuICAgICAqL1xuICAgIG9uTG9naW4oZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9ICdhcGkvZ2wtc2VydmljZS1zeXMtdXNlci92MS91c2VyL3N5c3RlbS9hdXRoL2xvZ2luJztcbiAgICAgICAgLy8g6K6+572u6K+35rGC5aS077yM5YyF5ZCr6aG555uu57G75Z6L5ZKM5peg5Luk54mM5o6n5Yi25L+h5oGvXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgJ1Byb2plY3RObyc6IHRoaXMuZW52LmNvbmZpZy5QUk9KRUNUX1RZUEUsXG4gICAgICAgICAgICAnVG9rZW4tQ29udHJvbCc6ICduby10b2tlbicsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyDlj5HpgIFQT1NU6K+35rGC77yM5bm25Zyo5oiQ5Yqf5ZCO5aSE55CG5ZON5bqUXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSPih1cmwsIHsgZGF0YSB9LCB7IGhlYWRlcnMgfSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIOWmguaenOS7o+eggeS4ujDvvIzooajnpLrnmbvlvZXmiJDlip/vvIzlrZjlgqjorqTor4Hkv6Hmga9cbiAgICAgICAgICAgICAgICBpZiAoanNvbi5jb2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aC5zZXQoanNvbi5kYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDms6jplIDns7vnu59cbiAgICAgKi9cbiAgICBvbkxvZ291dCgpIHtcbiAgICAgICAgY29uc3QgdXJsID0gJ2FwaS9nbC1zZXJ2aWNlLXN5cy11c2VyL3YxL3VzZXIvc3lzdGVtL2F1dGgvbG9nb3V0QnlBdXRoSWQnO1xuICAgICAgICAvLyDlj5HpgIFQT1NU6K+35rGC77yM5L2/55So5b2T5YmN55qEQVVUSF9JROi/m+ihjOazqOmUgFxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Uj4odXJsLCB7IEFVVEhfSUQ6IHRoaXMudG9rZW4uaWQgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6I635b6XIHRva2VuXG4gICAgICogQHJldHVybnMg5b2T5YmN55So5oi355qE6K6k6K+B5L+h5oGvXG4gICAgICovXG4gICAgZ2V0IHRva2VuKCk6IElBdXRoIHtcbiAgICAgICAgLy8g6I635Y+W5a2Y5YKo55qE6K6k6K+B5L+h5oGvXG4gICAgICAgIHJldHVybiB0aGlzLmF1dGguZ2V0KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -6,29 +6,42 @@ export class RkCacheHttpService {
|
|
|
6
6
|
this.cache = new Map();
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* 从缓存中获取指定URL的HTTP响应
|
|
10
|
+
*
|
|
11
|
+
* 此方法尝试从缓存中获取与指定URL相关的HTTP响应如果缓存中存在相应的响应,则返回该响应,否则返回未定义(undefined)
|
|
12
|
+
* 它避免了不必要的网络请求,从而提高应用的性能
|
|
13
|
+
*
|
|
14
|
+
* @param url 要从缓存中获取的资源的URL
|
|
15
|
+
* @returns 返回一个Observable对象,该对象发出未知类型的HTTP事件,或者在缓存中未找到时返回未定义
|
|
11
16
|
*/
|
|
12
17
|
get(url) {
|
|
13
18
|
return this.cache.get(url);
|
|
14
19
|
}
|
|
15
20
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
21
|
+
* 将HTTP响应缓存到指定的URL
|
|
22
|
+
*
|
|
23
|
+
* 此方法用于将给定的HTTP响应Observable对象与特定的URL关联,并存储在缓存中这样做的目的是为了在将来对同一URL的请求可以直接从缓存中获取响应,而不需要再次发送HTTP请求,从而提高应用的性能和响应速度
|
|
24
|
+
*
|
|
25
|
+
* @param url 要缓存响应的URL
|
|
26
|
+
* @param response HTTP响应的Observable对象,包含响应数据和状态
|
|
19
27
|
*/
|
|
20
28
|
set(url, response) {
|
|
21
29
|
this.cache.set(url, response);
|
|
22
30
|
}
|
|
23
31
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
32
|
+
* 删除指定的URL对应的缓存
|
|
33
|
+
*
|
|
34
|
+
* 本方法通过URL作为键,从缓存中删除对应的缓存项它使用了`cache.delete`方法来实现缓存的删除操作
|
|
35
|
+
*
|
|
36
|
+
* @param url {string} - 需要删除缓存的URL地址
|
|
26
37
|
*/
|
|
27
38
|
delete(url) {
|
|
28
39
|
this.cache.delete(url);
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
|
-
*
|
|
42
|
+
* 清除缓存
|
|
43
|
+
*
|
|
44
|
+
* 该方法清空当前实例的缓存
|
|
32
45
|
*/
|
|
33
46
|
clear() {
|
|
34
47
|
this.cache.clear();
|
|
@@ -43,16 +56,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
43
56
|
}]
|
|
44
57
|
}] });
|
|
45
58
|
/**
|
|
46
|
-
*
|
|
59
|
+
* 生成带有缓存策略的HTTP请求模板
|
|
47
60
|
* 使用方法:http.get(...CacheHttpTemplate`api/response.json`)
|
|
48
|
-
*
|
|
49
|
-
*
|
|
61
|
+
*
|
|
62
|
+
* 该函数用于创建一个带有特定缓存策略的HTTP请求URL和相关头部信息它通过模板字符串和参数数组,
|
|
63
|
+
* 构建一个最终的URL,并自动添加一个名为'Cache-Map'的自定义头部,其值为'Storage'
|
|
64
|
+
*
|
|
65
|
+
* @param urls 模板字符串数组,通常用于构建URL的一部分
|
|
66
|
+
* @param params 任意数量的参数,用于与模板字符串一起构建最终的URL
|
|
67
|
+
* @returns 返回一个元组,第一个元素是构建好的URL字符串,第二个元素是一个对象,
|
|
68
|
+
* 包含了HTTP请求的头部信息,目前只包含一个自定义的'Cache-Map'头部
|
|
50
69
|
*/
|
|
51
70
|
export function CacheHttpTemplate(urls, ...params) {
|
|
71
|
+
// 初始化URL为模板字符串数组的第一个元素
|
|
52
72
|
let [url] = urls;
|
|
73
|
+
// 如果参数数组非空,则使用模板字符串和参数数组构建最终的URL
|
|
53
74
|
if (params.length > 0) {
|
|
54
75
|
url = String.raw(urls, ...params);
|
|
55
76
|
}
|
|
77
|
+
// 返回构建好的URL和带有缓存策略的头部信息
|
|
56
78
|
return [url, { headers: new HttpHeaders({ 'Cache-Map': 'Storage' }) }];
|
|
57
79
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2NhY2hlLmh0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlZLFVBQUssR0FBZ0QsSUFBSSxHQUFHLEVBQTBDLENBQUM7S0E4Q2xIO0lBNUNHOzs7Ozs7OztPQVFHO0lBQ0gsR0FBRyxDQUFJLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsR0FBRyxDQUFJLEdBQVcsRUFBRSxRQUFrQztRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOztnSEE5Q1Esa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGZixNQUFNOzRGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7O0FBa0REOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQTBCLEVBQUUsR0FBRyxNQUFhO0lBQzFFLHVCQUF1QjtJQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLGlDQUFpQztJQUNqQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0tBQ3JDO0lBQ0Qsd0JBQXdCO0lBQ3hCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJrQ2FjaGVIdHRwU2VydmljZSB7XG4gICAgcHJpdmF0ZSBjYWNoZTogTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+PiA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDku47nvJPlrZjkuK3ojrflj5bmjIflrppVUkznmoRIVFRQ5ZON5bqUXG4gICAgICpcbiAgICAgKiDmraTmlrnms5XlsJ3or5Xku47nvJPlrZjkuK3ojrflj5bkuI7mjIflrppVUkznm7jlhbPnmoRIVFRQ5ZON5bqU5aaC5p6c57yT5a2Y5Lit5a2Y5Zyo55u45bqU55qE5ZON5bqU77yM5YiZ6L+U5Zue6K+l5ZON5bqU77yM5ZCm5YiZ6L+U5Zue5pyq5a6a5LmJ77yIdW5kZWZpbmVk77yJXG4gICAgICog5a6D6YG/5YWN5LqG5LiN5b+F6KaB55qE572R57uc6K+35rGC77yM5LuO6ICM5o+Q6auY5bqU55So55qE5oCn6IO9XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIOimgeS7jue8k+WtmOS4reiOt+WPlueahOi1hOa6kOeahFVSTFxuICAgICAqIEByZXR1cm5zIOi/lOWbnuS4gOS4qk9ic2VydmFibGXlr7nosaHvvIzor6Xlr7nosaHlj5Hlh7rmnKrnn6XnsbvlnovnmoRIVFRQ5LqL5Lu277yM5oiW6ICF5Zyo57yT5a2Y5Lit5pyq5om+5Yiw5pe26L+U5Zue5pyq5a6a5LmJXG4gICAgICovXG4gICAgZ2V0PFQ+KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bCGSFRUUOWTjeW6lOe8k+WtmOWIsOaMh+WumueahFVSTFxuICAgICAqXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG57uZ5a6a55qESFRUUOWTjeW6lE9ic2VydmFibGXlr7nosaHkuI7nibnlrprnmoRVUkzlhbPogZTvvIzlubblrZjlgqjlnKjnvJPlrZjkuK3ov5nmoLflgZrnmoTnm67nmoTmmK/kuLrkuoblnKjlsIbmnaXlr7nlkIzkuIBVUkznmoTor7fmsYLlj6/ku6Xnm7TmjqXku47nvJPlrZjkuK3ojrflj5blk43lupTvvIzogIzkuI3pnIDopoHlho3mrKHlj5HpgIFIVFRQ6K+35rGC77yM5LuO6ICM5o+Q6auY5bqU55So55qE5oCn6IO95ZKM5ZON5bqU6YCf5bqmXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIOimgee8k+WtmOWTjeW6lOeahFVSTFxuICAgICAqIEBwYXJhbSByZXNwb25zZSBIVFRQ5ZON5bqU55qET2JzZXJ2YWJsZeWvueixoe+8jOWMheWQq+WTjeW6lOaVsOaNruWSjOeKtuaAgVxuICAgICAqL1xuICAgIHNldDxUPih1cmw6IHN0cmluZywgcmVzcG9uc2U6IE9ic2VydmFibGU8SHR0cEV2ZW50PFQ+Pikge1xuICAgICAgICB0aGlzLmNhY2hlLnNldCh1cmwsIHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDliKDpmaTmjIflrprnmoRVUkzlr7nlupTnmoTnvJPlrZhcbiAgICAgKlxuICAgICAqIOacrOaWueazlemAmui/h1VSTOS9nOS4uumUru+8jOS7jue8k+WtmOS4reWIoOmZpOWvueW6lOeahOe8k+WtmOmhueWug+S9v+eUqOS6hmBjYWNoZS5kZWxldGVg5pa55rOV5p2l5a6e546w57yT5a2Y55qE5Yig6Zmk5pON5L2cXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIHtzdHJpbmd9IC0g6ZyA6KaB5Yig6Zmk57yT5a2Y55qEVVJM5Zyw5Z2AXG4gICAgICovXG4gICAgZGVsZXRlKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5riF6Zmk57yT5a2YXG4gICAgICpcbiAgICAgKiDor6Xmlrnms5XmuIXnqbrlvZPliY3lrp7kvovnmoTnvJPlrZhcbiAgICAgKi9cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgIH1cbn1cblxuLyoqXG4gKiDnlJ/miJDluKbmnInnvJPlrZjnrZbnlaXnmoRIVFRQ6K+35rGC5qih5p2/XG4gKiDkvb/nlKjmlrnms5XvvJpodHRwLmdldCguLi5DYWNoZUh0dHBUZW1wbGF0ZWBhcGkvcmVzcG9uc2UuanNvbmApXG4gKlxuICog6K+l5Ye95pWw55So5LqO5Yib5bu65LiA5Liq5bim5pyJ54m55a6a57yT5a2Y562W55Wl55qESFRUUOivt+axglVSTOWSjOebuOWFs+WktOmDqOS/oeaBr+Wug+mAmui/h+aooeadv+Wtl+espuS4suWSjOWPguaVsOaVsOe7hO+8jFxuICog5p6E5bu65LiA5Liq5pyA57uI55qEVVJM77yM5bm26Ieq5Yqo5re75Yqg5LiA5Liq5ZCN5Li6J0NhY2hlLU1hcCfnmoToh6rlrprkuYnlpLTpg6jvvIzlhbblgLzkuLonU3RvcmFnZSdcbiAqXG4gKiBAcGFyYW0gdXJscyDmqKHmnb/lrZfnrKbkuLLmlbDnu4TvvIzpgJrluLjnlKjkuo7mnoTlu7pVUkznmoTkuIDpg6jliIZcbiAqIEBwYXJhbSBwYXJhbXMg5Lu75oSP5pWw6YeP55qE5Y+C5pWw77yM55So5LqO5LiO5qih5p2/5a2X56ym5Liy5LiA6LW35p6E5bu65pyA57uI55qEVVJMXG4gKiBAcmV0dXJucyDov5Tlm57kuIDkuKrlhYPnu4TvvIznrKzkuIDkuKrlhYPntKDmmK/mnoTlu7rlpb3nmoRVUkzlrZfnrKbkuLLvvIznrKzkuozkuKrlhYPntKDmmK/kuIDkuKrlr7nosaHvvIxcbiAqIOWMheWQq+S6hkhUVFDor7fmsYLnmoTlpLTpg6jkv6Hmga/vvIznm67liY3lj6rljIXlkKvkuIDkuKroh6rlrprkuYnnmoQnQ2FjaGUtTWFwJ+WktOmDqFxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FjaGVIdHRwVGVtcGxhdGUodXJsczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLnBhcmFtczogYW55W10pOiBbc3RyaW5nLCB7IGhlYWRlcnM6IEh0dHBIZWFkZXJzIH1dIHtcbiAgICAvLyDliJ3lp4vljJZVUkzkuLrmqKHmnb/lrZfnrKbkuLLmlbDnu4TnmoTnrKzkuIDkuKrlhYPntKBcbiAgICBsZXQgW3VybF0gPSB1cmxzO1xuICAgIC8vIOWmguaenOWPguaVsOaVsOe7hOmdnuepuu+8jOWImeS9v+eUqOaooeadv+Wtl+espuS4suWSjOWPguaVsOaVsOe7hOaehOW7uuacgOe7iOeahFVSTFxuICAgIGlmIChwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB1cmwgPSBTdHJpbmcucmF3KHVybHMsIC4uLnBhcmFtcyk7XG4gICAgfVxuICAgIC8vIOi/lOWbnuaehOW7uuWlveeahFVSTOWSjOW4puaciee8k+WtmOetlueVpeeahOWktOmDqOS/oeaBr1xuICAgIHJldHVybiBbdXJsLCB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDYWNoZS1NYXAnOiAnU3RvcmFnZScgfSkgfV07XG59XG4iXX0=
|
|
@@ -2,6 +2,15 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class RkDestroyService extends Subject {
|
|
5
|
+
/**
|
|
6
|
+
* 在组件销毁时调用的方法
|
|
7
|
+
*
|
|
8
|
+
* 该方法主要用于清理操作,确保在组件被销毁前完成所有的清理工作
|
|
9
|
+
* 首先,调用`this.next()`方法,用于发送一个通知或执行某些操作,以便在组件销毁前进行必要的处理
|
|
10
|
+
* 然后,调用`this.complete()`方法,表示已完成所有必要的清理操作,确保资源被正确释放
|
|
11
|
+
*
|
|
12
|
+
* @returns void - 该方法没有返回值
|
|
13
|
+
*/
|
|
5
14
|
ngOnDestroy() {
|
|
6
15
|
this.next();
|
|
7
16
|
this.complete();
|
|
@@ -12,4 +21,4 @@ RkDestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
|
|
|
12
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RkDestroyService, decorators: [{
|
|
13
22
|
type: Injectable
|
|
14
23
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2Rlc3Ryb3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxPQUFhO0lBQy9DOzs7Ozs7OztPQVFHO0lBQ0gsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs4R0FiUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSa0Rlc3Ryb3lTZXJ2aWNlIGV4dGVuZHMgU3ViamVjdDx2b2lkPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog5Zyo57uE5Lu26ZSA5q+B5pe26LCD55So55qE5pa55rOVXG4gICAgICpcbiAgICAgKiDor6Xmlrnms5XkuLvopoHnlKjkuo7muIXnkIbmk43kvZzvvIznoa7kv53lnKjnu4Tku7booqvplIDmr4HliY3lrozmiJDmiYDmnInnmoTmuIXnkIblt6XkvZxcbiAgICAgKiDpppblhYjvvIzosIPnlKhgdGhpcy5uZXh0KClg5pa55rOV77yM55So5LqO5Y+R6YCB5LiA5Liq6YCa55+l5oiW5omn6KGM5p+Q5Lqb5pON5L2c77yM5Lul5L6/5Zyo57uE5Lu26ZSA5q+B5YmN6L+b6KGM5b+F6KaB55qE5aSE55CGXG4gICAgICog54S25ZCO77yM6LCD55SoYHRoaXMuY29tcGxldGUoKWDmlrnms5XvvIzooajnpLrlt7LlrozmiJDmiYDmnInlv4XopoHnmoTmuIXnkIbmk43kvZzvvIznoa7kv53otYTmupDooqvmraPnoa7ph4rmlL5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHZvaWQgLSDor6Xmlrnms5XmsqHmnInov5Tlm57lgLxcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -4,15 +4,17 @@ import { CacheHttpTemplate } from './cache.http.service';
|
|
|
4
4
|
import { Store } from '@reskin/core/utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common/http";
|
|
7
|
+
// 提供字典服务,用于管理和查询字典数据
|
|
7
8
|
export class RkDictionaryService {
|
|
8
9
|
constructor(http) {
|
|
9
10
|
this.http = http;
|
|
11
|
+
// 存储字典常用项的缓存,有效期为一周
|
|
10
12
|
this.useItems = new Store('dictionary_use_items', {}, { expires: 1000 * 60 * 60 * 24 * 7 });
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* 通过字典编码获得常用项
|
|
14
16
|
* @param code 字典编码
|
|
15
|
-
* @returns
|
|
17
|
+
* @returns 常用项数组
|
|
16
18
|
*/
|
|
17
19
|
getUseItems(code) {
|
|
18
20
|
return this.useItems.get()[code] || [];
|
|
@@ -20,20 +22,24 @@ export class RkDictionaryService {
|
|
|
20
22
|
/**
|
|
21
23
|
* 通过字典编码设置常用项
|
|
22
24
|
* @param code 字典编码
|
|
23
|
-
* @param item
|
|
25
|
+
* @param item 常用项对象
|
|
24
26
|
*/
|
|
25
27
|
setUseItems(code, item) {
|
|
26
28
|
const data = this.useItems.get();
|
|
29
|
+
// 如果字典编码不存在,则创建一个新数组
|
|
27
30
|
if (!data[code]) {
|
|
28
31
|
data[code] = [item];
|
|
29
32
|
}
|
|
30
33
|
else {
|
|
34
|
+
// 如果常用项已存在,则不进行重复添加
|
|
31
35
|
if (data[code].find((v) => v.DICTIONARY_ITEM_CODE === item.DICTIONARY_ITEM_CODE)) {
|
|
32
36
|
return;
|
|
33
37
|
}
|
|
38
|
+
// 如果常用项数组已满(超过9个),则移除最后一个元素
|
|
34
39
|
if (data[code].length > 9) {
|
|
35
40
|
data[code].pop();
|
|
36
41
|
}
|
|
42
|
+
// 将新的常用项添加到数组开头
|
|
37
43
|
data[code].unshift(item);
|
|
38
44
|
}
|
|
39
45
|
this.useItems.set(data);
|
|
@@ -41,39 +47,40 @@ export class RkDictionaryService {
|
|
|
41
47
|
/**
|
|
42
48
|
* 通过字典编码获得字典基本信息
|
|
43
49
|
* @param code 字典编码
|
|
44
|
-
* @returns
|
|
50
|
+
* @returns 字典基本信息的Observable对象
|
|
45
51
|
*/
|
|
46
52
|
getBaseInfo(code) {
|
|
47
53
|
const url = `api/gl-service-sys-core/v1/core/system/dictionary/selectOneByDictionaryCode`;
|
|
48
54
|
return this.http.get(...CacheHttpTemplate `${url}/${this.codeReplace(code)}`).pipe(filter((json) => json.code === 0), map((json) => json.data));
|
|
49
55
|
}
|
|
50
56
|
/**
|
|
51
|
-
*
|
|
57
|
+
* 通过字典编码获得字典项列表
|
|
52
58
|
* @param code 字典编码
|
|
53
|
-
* @returns
|
|
59
|
+
* @returns 字典项列表的Observable对象
|
|
54
60
|
*/
|
|
55
61
|
getData(code) {
|
|
56
62
|
const url = `api/gl-service-sys-core/v1/core/system/dictionary/item/selectListByDictionaryCode`;
|
|
57
63
|
return this.http.get(...CacheHttpTemplate `${url}/${this.codeReplace(code)}`).pipe(filter((json) => json.code === 0), map((json) => json.data));
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
|
-
*
|
|
66
|
+
* 通过父节点获得字典项列表
|
|
61
67
|
* @param code 字典编码
|
|
62
|
-
* @param parentId
|
|
63
|
-
* @returns
|
|
68
|
+
* @param parentId 父节点编码,默认为根节点
|
|
69
|
+
* @returns 字典项列表的Observable对象
|
|
64
70
|
*/
|
|
65
71
|
getChildData(code, parentId = '-1') {
|
|
66
72
|
const url = `api/gl-service-sys-core/v1/core/system/dictionary/item/selectListByDictionaryCode`;
|
|
67
73
|
return this.http.post(url, { DICTIONARY_CODE: code, SYS_PARENT: parentId }).pipe(filter((json) => json.code === 0), map((json) => json.data));
|
|
68
74
|
}
|
|
75
|
+
// 私有方法,用于替换字典编码中的特殊字符
|
|
69
76
|
codeReplace(code) {
|
|
70
77
|
return code.replace(/\//g, '_');
|
|
71
78
|
}
|
|
72
79
|
/**
|
|
73
|
-
*
|
|
80
|
+
* 根据关键字搜索字典项
|
|
74
81
|
* @param code 字典编码
|
|
75
82
|
* @param keyword 关键字
|
|
76
|
-
* @returns
|
|
83
|
+
* @returns 最多10个匹配的字典项列表的Observable对象
|
|
77
84
|
*/
|
|
78
85
|
requestSearchData(code, keyword) {
|
|
79
86
|
const url = 'api/gl-service-sys-core/v1/core/system/dictionary/item/selectListByQuery';
|
|
@@ -86,10 +93,10 @@ export class RkDictionaryService {
|
|
|
86
93
|
}))));
|
|
87
94
|
}
|
|
88
95
|
/**
|
|
89
|
-
*
|
|
96
|
+
* 获取字典项的所有父节点
|
|
90
97
|
* @param code 字典编码
|
|
91
98
|
* @param id 字典项编码
|
|
92
|
-
* @returns
|
|
99
|
+
* @returns 父节点列表的Observable对象
|
|
93
100
|
*/
|
|
94
101
|
requestParentList(code, id) {
|
|
95
102
|
const url = 'api/gl-service-sys-core/v1/core/system/dictionary/item/selectListInfoAllParentByCode';
|
|
@@ -104,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
104
111
|
providedIn: 'root',
|
|
105
112
|
}]
|
|
106
113
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLGFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBb0Msc0JBQXNCLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNGLENBQUM7SUFFeEM7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsSUFBWSxFQUFFLElBQXFCO1FBQzNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO2FBQU07WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJ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QWEsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzthQUNoRCxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyx5QkFBeUI7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDbkMsQ0FBQyxDQUFDLENBQ1YsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsSUFBWSxFQUFFLEVBQVU7UUFDdEMsTUFBTSxHQUFHLEdBQUcsc0ZBQXNGLENBQUM7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNuRixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQ2pDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMzQixDQUFDO0lBQ04sQ0FBQzs7aUhBakhRLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07NEZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2FjaGVIdHRwVGVtcGxhdGUgfSBmcm9tICcuL2NhY2hlLmh0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IElEaWN0aW9uYXJ5QmFzZUluZm8sIElEaWN0aW9uYXJ5SXRlbSB9IGZyb20gJ0ByZXNraW4vY29yZS9lbnRpdHkvZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQHJlc2tpbi9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgUiB9IGZyb20gJ0ByZXNraW4vY29yZS9lbnRpdHknO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmtEaWN0aW9uYXJ5U2VydmljZSB7XHJcbiAgICBwcml2YXRlIHVzZUl0ZW1zID0gbmV3IFN0b3JlPFJlY29yZDxzdHJpbmcsIElEaWN0aW9uYXJ5SXRlbVtdPj4oJ2RpY3Rpb25hcnlfdXNlX2l0ZW1zJywge30sIHsgZXhwaXJlczogMTAwMCAqIDYwICogNjAgKiAyNCAqIDcgfSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YCa6L+H5a2X5YW457yW56CB6I635b6X5bi455So6aG5XHJcbiAgICAgKiBAcGFyYW0gY29kZSDlrZflhbjnvJbnoIFcclxuICAgICAqIEByZXR1cm5zIOW4uOeUqOmhuVxyXG4gICAgICovXHJcbiAgICBnZXRVc2VJdGVtcyhjb2RlOiBzdHJpbmcpOiBJRGljdGlvbmFyeUl0ZW1bXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlSXRlbXMuZ2V0KClbY29kZV0gfHwgW107XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDpgJrov4flrZflhbjnvJbnoIHorr7nva7luLjnlKjpoblcclxuICAgICAqIEBwYXJhbSBjb2RlIOWtl+WFuOe8lueggVxyXG4gICAgICogQHBhcmFtIGl0ZW0g5bi455So6aG5XHJcbiAgICAgKi9cclxuICAgIHNldFVzZUl0ZW1zKGNvZGU6IHN0cmluZywgaXRlbTogSURpY3Rpb25hcnlJdGVtKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMudXNlSXRlbXMuZ2V0KCk7XHJcbiAgICAgICAgaWYgKCFkYXRhW2NvZGVdKSB7XHJcbiAgICAgICAgICAgIGRhdGFbY29kZV0gPSBbaXRlbV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGRhdGFbY29kZV0uZmluZCgodikgPT4gdi5ESUNUSU9OQVJZX0lURU1fQ09ERSA9PT0gaXRlbS5ESUNUSU9OQVJZX0lURU1fQ09ERSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGF0YVtjb2RlXS5sZW5ndGggPiA5KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW2NvZGVdLnBvcCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRhdGFbY29kZV0udW5zaGlmdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51c2VJdGVtcy5zZXQoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDpgJrov4flrZflhbjnvJbnoIHojrflvpflrZflhbjln7rmnKzkv6Hmga9cclxuICAgICAqIEBwYXJhbSBjb2RlIOWtl+WFuOe8lueggVxyXG4gICAgICogQHJldHVybnMg5a2X5YW45Z+65pys5L+h5oGvXHJcbiAgICAgKi9cclxuICAgIGdldEJhc2VJbmZvKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlCYXNlSW5mbz4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGBhcGkvZ2wtc2VydmljZS1zeXMtY29yZS92MS9jb3JlL3N5c3RlbS9kaWN0aW9uYXJ5L3NlbGVjdE9uZUJ5RGljdGlvbmFyeUNvZGVgO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFI+KC4uLkNhY2hlSHR0cFRlbXBsYXRlYCR7dXJsfS8ke3RoaXMuY29kZVJlcGxhY2UoY29kZSl9YCkucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKChqc29uKSA9PiBqc29uLmNvZGUgPT09IDApLFxyXG4gICAgICAgICAgICBtYXAoKGpzb24pID0+IGpzb24uZGF0YSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmAmui/h+Wtl+WFuOe8lueggeiOt+W+l+iOt+W+l+Wtl+WFuOmhuVxyXG4gICAgICogQHBhcmFtIGNvZGUg5a2X5YW457yW56CBXHJcbiAgICAgKiBAcmV0dXJucyDlrZflhbjpobnliJfooahcclxuICAgICAqL1xyXG4gICAgZ2V0RGF0YShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElEaWN0aW9uYXJ5SXRlbVtdPiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYGFwaS9nbC1zZXJ2aWNlLXN5cy1jb3JlL3YxL2NvcmUvc3lzdGVtL2RpY3Rpb25hcnkvaXRlbS9zZWxlY3RMaXN0QnlEaWN0aW9uYXJ5Q29kZWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Uj4oLi4uQ2FjaGVIdHRwVGVtcGxhdGVgJHt1cmx9LyR7dGhpcy5jb2RlUmVwbGFjZShjb2RlKX1gKS5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKGpzb24pID0+IGpzb24uY29kZSA9PT0gMCksXHJcbiAgICAgICAgICAgIG1hcCgoanNvbikgPT4ganNvbi5kYXRhKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YCa6L+H54i26IqC54K56I635b6X5a2X5YW46aG557yW56CBXHJcbiAgICAgKiBAcGFyYW0gY29kZSDlrZflhbjnvJbnoIFcclxuICAgICAqIEBwYXJhbSBwYXJlbnRJZCDniLboioLngrnnvJbnoIFcclxuICAgICAqIEByZXR1cm5zIOWtl+WFuOmhueWIl+ihqFxyXG4gICAgICovXHJcbiAgICBnZXRDaGlsZERhdGEoY29kZTogc3RyaW5nLCBwYXJlbnRJZCA9ICctMScpOiBPYnNlcnZhYmxlPElEaWN0aW9uYXJ5SXRlbVtdPiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYGFwaS9nbC1zZXJ2aWNlLXN5cy1jb3JlL3YxL2NvcmUvc3lzdGVtL2RpY3Rpb25hcnkvaXRlbS9zZWxlY3RMaXN0QnlEaWN0aW9uYXJ5Q29kZWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFI+KHVybCwgeyBESUNUSU9OQVJZX0NPREU6IGNvZGUsIFNZU19QQVJFTlQ6IHBhcmVudElkIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcigoanNvbikgPT4ganNvbi5jb2RlID09PSAwKSxcclxuICAgICAgICAgICAgbWFwKChqc29uKSA9PiBqc29uLmRhdGEpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb2RlUmVwbGFjZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBjb2RlLnJlcGxhY2UoL1xcLy9nLCAnXycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YCa6L+H5a2X5YW457yW56CB6I635b6X6I635b6X5a2X5YW46aG5XHJcbiAgICAgKiBAcGFyYW0gY29kZSDlrZflhbjnvJbnoIFcclxuICAgICAqIEBwYXJhbSBrZXl3b3JkIOWFs+mUruWtl1xyXG4gICAgICogQHJldHVybnMg5a2X5YW46aG55YiX6KGoXHJcbiAgICAgKi9cclxuICAgIHJlcXVlc3RTZWFyY2hEYXRhKGNvZGU6IHN0cmluZywga2V5d29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gJ2FwaS9nbC1zZXJ2aWNlLXN5cy1jb3JlL3YxL2NvcmUvc3lzdGVtL2RpY3Rpb25hcnkvaXRlbS9zZWxlY3RMaXN0QnlRdWVyeSc7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFI+KHVybCwgeyBESUNUSU9OQVJZX0NPREU6IGNvZGUsIERJQ1RJT05BUllfSVRFTV9OQU1FOiBrZXl3b3JkIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcigoanNvbikgPT4ganNvbi5jb2RlID09PSAwKSxcclxuICAgICAgICAgICAgbWFwKChqc29uKSA9PlxyXG4gICAgICAgICAgICAgICAganNvbi5kYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA8IDEwKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0uRElDVElPTkFSWV9JVEVNX05BTUUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogaXRlbS5TWVNURU1fRElDVElPTkFSWV9JVEVNX0lELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5ESUNUSU9OQVJZX0lURU1fQ09ERSxcclxuICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiOt+W+l+Wtl+WFuOmhueeahOaJgOacieeItuiKgueCuVxyXG4gICAgICogQHBhcmFtIGNvZGUg5a2X5YW457yW56CBXHJcbiAgICAgKiBAcGFyYW0gaWQg5a2X5YW46aG557yW56CBXHJcbiAgICAgKiBAcmV0dXJucyDlrZflhbjpobnliJfooahcclxuICAgICAqL1xyXG4gICAgcmVxdWVzdFBhcmVudExpc3QoY29kZTogc3RyaW5nLCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeUl0ZW1bXT4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9ICdhcGkvZ2wtc2VydmljZS1zeXMtY29yZS92MS9jb3JlL3N5c3RlbS9kaWN0aW9uYXJ5L2l0ZW0vc2VsZWN0TGlzdEluZm9BbGxQYXJlbnRCeUNvZGUnO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSPih1cmwsIHsgRElDVElPTkFSWV9DT0RFOiBjb2RlLCBESUNUSU9OQVJZX0lURU1fQ09ERTogaWQgfSkucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKChqc29uKSA9PiBqc29uLmNvZGUgPT09IDApLFxyXG4gICAgICAgICAgICBtYXAoKGpzb24pID0+IGpzb24uZGF0YSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyeS9jb3JlL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFHM0MscUJBQXFCO0FBSXJCLE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUhwQyxvQkFBb0I7UUFDWixhQUFRLEdBQUcsSUFBSSxLQUFLLENBQW9DLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRixDQUFDO0lBRXhDOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLElBQVksRUFBRSxJQUFxQjtRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZ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LEVBQ2pDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1QsSUFBSSxDQUFDLElBQUk7YUFDSixNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ2hELEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtZQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtTQUNuQyxDQUFDLENBQUMsQ0FDVixDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUN0QyxNQUFNLEdBQUcsR0FBRyxzRkFBc0YsQ0FBQztRQUNuRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ25GLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsRUFDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzNCLENBQUM7SUFDTixDQUFDOztpSEF2SFEsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs0RkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FjaGVIdHRwVGVtcGxhdGUgfSBmcm9tICcuL2NhY2hlLmh0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBJRGljdGlvbmFyeUJhc2VJbmZvLCBJRGljdGlvbmFyeUl0ZW0gfSBmcm9tICdAcmVza2luL2NvcmUvZW50aXR5L2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAcmVza2luL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgUiB9IGZyb20gJ0ByZXNraW4vY29yZS9lbnRpdHknO1xuXG4vLyDmj5DkvpvlrZflhbjmnI3liqHvvIznlKjkuo7nrqHnkIblkozmn6Xor6LlrZflhbjmlbDmja5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJrRGljdGlvbmFyeVNlcnZpY2Uge1xuICAgIC8vIOWtmOWCqOWtl+WFuOW4uOeUqOmhueeahOe8k+WtmO+8jOacieaViOacn+S4uuS4gOWRqFxuICAgIHByaXZhdGUgdXNlSXRlbXMgPSBuZXcgU3RvcmU8UmVjb3JkPHN0cmluZywgSURpY3Rpb25hcnlJdGVtW10+PignZGljdGlvbmFyeV91c2VfaXRlbXMnLCB7fSwgeyBleHBpcmVzOiAxMDAwICogNjAgKiA2MCAqIDI0ICogNyB9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICAgIC8qKlxuICAgICAqIOmAmui/h+Wtl+WFuOe8lueggeiOt+W+l+W4uOeUqOmhuVxuICAgICAqIEBwYXJhbSBjb2RlIOWtl+WFuOe8lueggVxuICAgICAqIEByZXR1cm5zIOW4uOeUqOmhueaVsOe7hFxuICAgICAqL1xuICAgIGdldFVzZUl0ZW1zKGNvZGU6IHN0cmluZyk6IElEaWN0aW9uYXJ5SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlSXRlbXMuZ2V0KClbY29kZV0gfHwgW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCa6L+H5a2X5YW457yW56CB6K6+572u5bi455So6aG5XG4gICAgICogQHBhcmFtIGNvZGUg5a2X5YW457yW56CBXG4gICAgICogQHBhcmFtIGl0ZW0g5bi455So6aG55a+56LGhXG4gICAgICovXG4gICAgc2V0VXNlSXRlbXMoY29kZTogc3RyaW5nLCBpdGVtOiBJRGljdGlvbmFyeUl0ZW0pIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMudXNlSXRlbXMuZ2V0KCk7XG4gICAgICAgIC8vIOWmguaenOWtl+WFuOe8lueggeS4jeWtmOWcqO+8jOWImeWIm+W7uuS4gOS4quaWsOaVsOe7hFxuICAgICAgICBpZiAoIWRhdGFbY29kZV0pIHtcbiAgICAgICAgICAgIGRhdGFbY29kZV0gPSBbaXRlbV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyDlpoLmnpzluLjnlKjpobnlt7LlrZjlnKjvvIzliJnkuI3ov5vooYzph43lpI3mt7vliqBcbiAgICAgICAgICAgIGlmIChkYXRhW2NvZGVdLmZpbmQoKHYpID0+IHYuRElDVElPTkFSWV9JVEVNX0NPREUgPT09IGl0ZW0uRElDVElPTkFSWV9JVEVNX0NPREUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8g5aaC5p6c5bi455So6aG55pWw57uE5bey5ruh77yI6LaF6L+HOeS4qu+8ie+8jOWImeenu+mZpOacgOWQjuS4gOS4quWFg+e0oFxuICAgICAgICAgICAgaWYgKGRhdGFbY29kZV0ubGVuZ3RoID4gOSkge1xuICAgICAgICAgICAgICAgIGRhdGFbY29kZV0ucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyDlsIbmlrDnmoTluLjnlKjpobnmt7vliqDliLDmlbDnu4TlvIDlpLRcbiAgICAgICAgICAgIGRhdGFbY29kZV0udW5zaGlmdChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZUl0ZW1zLnNldChkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpgJrov4flrZflhbjnvJbnoIHojrflvpflrZflhbjln7rmnKzkv6Hmga9cbiAgICAgKiBAcGFyYW0gY29kZSDlrZflhbjnvJbnoIFcbiAgICAgKiBAcmV0dXJucyDlrZflhbjln7rmnKzkv6Hmga/nmoRPYnNlcnZhYmxl5a+56LGhXG4gICAgICovXG4gICAgZ2V0QmFzZUluZm8oY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeUJhc2VJbmZvPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGBhcGkvZ2wtc2VydmljZS1zeXMtY29yZS92MS9jb3JlL3N5c3RlbS9kaWN0aW9uYXJ5L3NlbGVjdE9uZUJ5RGljdGlvbmFyeUNvZGVgO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSPiguLi5DYWNoZUh0dHBUZW1wbGF0ZWAke3VybH0vJHt0aGlzLmNvZGVSZXBsYWNlKGNvZGUpfWApLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGpzb24pID0+IGpzb24uY29kZSA9PT0gMCksXG4gICAgICAgICAgICBtYXAoKGpzb24pID0+IGpzb24uZGF0YSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCa6L+H5a2X5YW457yW56CB6I635b6X5a2X5YW46aG55YiX6KGoXG4gICAgICogQHBhcmFtIGNvZGUg5a2X5YW457yW56CBXG4gICAgICogQHJldHVybnMg5a2X5YW46aG55YiX6KGo55qET2JzZXJ2YWJsZeWvueixoVxuICAgICAqL1xuICAgIGdldERhdGEoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeUl0ZW1bXT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgYXBpL2dsLXNlcnZpY2Utc3lzLWNvcmUvdjEvY29yZS9zeXN0ZW0vZGljdGlvbmFyeS9pdGVtL3NlbGVjdExpc3RCeURpY3Rpb25hcnlDb2RlYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Uj4oLi4uQ2FjaGVIdHRwVGVtcGxhdGVgJHt1cmx9LyR7dGhpcy5jb2RlUmVwbGFjZShjb2RlKX1gKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChqc29uKSA9PiBqc29uLmNvZGUgPT09IDApLFxuICAgICAgICAgICAgbWFwKChqc29uKSA9PiBqc29uLmRhdGEpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmAmui/h+eItuiKgueCueiOt+W+l+Wtl+WFuOmhueWIl+ihqFxuICAgICAqIEBwYXJhbSBjb2RlIOWtl+WFuOe8lueggVxuICAgICAqIEBwYXJhbSBwYXJlbnRJZCDniLboioLngrnnvJbnoIHvvIzpu5jorqTkuLrmoLnoioLngrlcbiAgICAgKiBAcmV0dXJucyDlrZflhbjpobnliJfooajnmoRPYnNlcnZhYmxl5a+56LGhXG4gICAgICovXG4gICAgZ2V0Q2hpbGREYXRhKGNvZGU6IHN0cmluZywgcGFyZW50SWQgPSAnLTEnKTogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeUl0ZW1bXT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgYXBpL2dsLXNlcnZpY2Utc3lzLWNvcmUvdjEvY29yZS9zeXN0ZW0vZGljdGlvbmFyeS9pdGVtL3NlbGVjdExpc3RCeURpY3Rpb25hcnlDb2RlYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFI+KHVybCwgeyBESUNUSU9OQVJZX0NPREU6IGNvZGUsIFNZU19QQVJFTlQ6IHBhcmVudElkIH0pLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGpzb24pID0+IGpzb24uY29kZSA9PT0gMCksXG4gICAgICAgICAgICBtYXAoKGpzb24pID0+IGpzb24uZGF0YSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8g56eB5pyJ5pa55rOV77yM55So5LqO5pu/5o2i5a2X5YW457yW56CB5Lit55qE54m55q6K5a2X56ymXG4gICAgcHJpdmF0ZSBjb2RlUmVwbGFjZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY29kZS5yZXBsYWNlKC9cXC8vZywgJ18nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7lhbPplK7lrZfmkJzntKLlrZflhbjpoblcbiAgICAgKiBAcGFyYW0gY29kZSDlrZflhbjnvJbnoIFcbiAgICAgKiBAcGFyYW0ga2V5d29yZCDlhbPplK7lrZdcbiAgICAgKiBAcmV0dXJucyDmnIDlpJoxMOS4quWMuemFjeeahOWtl+WFuOmhueWIl+ihqOeahE9ic2VydmFibGXlr7nosaFcbiAgICAgKi9cbiAgICByZXF1ZXN0U2VhcmNoRGF0YShjb2RlOiBzdHJpbmcsIGtleXdvcmQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCB1cmwgPSAnYXBpL2dsLXNlcnZpY2Utc3lzLWNvcmUvdjEvY29yZS9zeXN0ZW0vZGljdGlvbmFyeS9pdGVtL3NlbGVjdExpc3RCeVF1ZXJ5JztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFI+KHVybCwgeyBESUNUSU9OQVJZX0NPREU6IGNvZGUsIERJQ1RJT05BUllfSVRFTV9OQU1FOiBrZXl3b3JkIH0pLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGpzb24pID0+IGpzb24uY29kZSA9PT0gMCksXG4gICAgICAgICAgICBtYXAoKGpzb24pID0+XG4gICAgICAgICAgICAgICAganNvbi5kYXRhXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggPCAxMClcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0uRElDVElPTkFSWV9JVEVNX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW0uU1lTVEVNX0RJQ1RJT05BUllfSVRFTV9JRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLkRJQ1RJT05BUllfSVRFTV9DT0RFLFxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+WPluWtl+WFuOmhueeahOaJgOacieeItuiKgueCuVxuICAgICAqIEBwYXJhbSBjb2RlIOWtl+WFuOe8lueggVxuICAgICAqIEBwYXJhbSBpZCDlrZflhbjpobnnvJbnoIFcbiAgICAgKiBAcmV0dXJucyDniLboioLngrnliJfooajnmoRPYnNlcnZhYmxl5a+56LGhXG4gICAgICovXG4gICAgcmVxdWVzdFBhcmVudExpc3QoY29kZTogc3RyaW5nLCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeUl0ZW1bXT4ge1xuICAgICAgICBjb25zdCB1cmwgPSAnYXBpL2dsLXNlcnZpY2Utc3lzLWNvcmUvdjEvY29yZS9zeXN0ZW0vZGljdGlvbmFyeS9pdGVtL3NlbGVjdExpc3RJbmZvQWxsUGFyZW50QnlDb2RlJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFI+KHVybCwgeyBESUNUSU9OQVJZX0NPREU6IGNvZGUsIERJQ1RJT05BUllfSVRFTV9DT0RFOiBpZCB9KS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChqc29uKSA9PiBqc29uLmNvZGUgPT09IDApLFxuICAgICAgICAgICAgbWFwKChqc29uKSA9PiBqc29uLmRhdGEpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|