atr-components 0.2.418 → 0.2.419

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +24 -24
  2. package/esm2020/atr-components.module.mjs +1 -1
  3. package/esm2020/atr-public-api.mjs +1 -1
  4. package/esm2020/lib/hello/hello.component.mjs +3 -3
  5. package/esm2020/lib/hello/hello.module.mjs +1 -1
  6. package/esm2020/lib/shared/img-canvas/img-canvas.component.mjs +3 -3
  7. package/esm2020/lib/shared/select-icons/select-icons.component.mjs +3 -3
  8. package/esm2020/lib/shared/table/table.component.mjs +3 -3
  9. package/esm2022/atr-components.mjs +5 -0
  10. package/esm2022/atr-components.module.mjs +36 -0
  11. package/esm2022/atr-public-api.mjs +55 -0
  12. package/esm2022/core/animations/animations.mjs +10 -0
  13. package/esm2022/core/animations/fly-in.mjs +19 -0
  14. package/esm2022/core/animations/scroll-screen.mjs +23 -0
  15. package/esm2022/core/auth/auth.guard.mjs +37 -0
  16. package/esm2022/core/base/atr-common.mjs +48 -0
  17. package/esm2022/core/directive/error-img.directive.mjs +31 -0
  18. package/esm2022/core/directive/hq-spin.directive.mjs +48 -0
  19. package/esm2022/core/directive/role.directive.mjs +69 -0
  20. package/esm2022/core/interceptor/base.interceptor.mjs +165 -0
  21. package/esm2022/core/ngz-module/cus-zorro-antd.module.mjs +292 -0
  22. package/esm2022/core/pipe/china-num.pipe.mjs +36 -0
  23. package/esm2022/core/pipe/count.pipe.mjs +34 -0
  24. package/esm2022/core/pipe/day.pipe.mjs +24 -0
  25. package/esm2022/core/pipe/defaultVal.pipe.mjs +23 -0
  26. package/esm2022/core/pipe/dicts.pipe.mjs +28 -0
  27. package/esm2022/core/pipe/image-pipe.pipe.mjs +17 -0
  28. package/esm2022/core/pipe/is-empty.pipe.mjs +20 -0
  29. package/esm2022/core/pipe/is-not-empty.pipe.mjs +17 -0
  30. package/esm2022/core/pipe/oss.pipe.mjs +17 -0
  31. package/esm2022/core/pipe/ossStatic.pipe.mjs +17 -0
  32. package/esm2022/core/pipe/pipe-module.module.mjs +38 -0
  33. package/esm2022/core/pipe/remove-html.pipe.mjs +21 -0
  34. package/esm2022/core/pipe/safe-compute.pipe.mjs +23 -0
  35. package/esm2022/core/pipe/safe-html.pipe.mjs +20 -0
  36. package/esm2022/core/pipe/safe-url.pipe.mjs +20 -0
  37. package/esm2022/core/routereuse/atr-reuse-strategy.mjs +79 -0
  38. package/esm2022/core/services/dict/dict.service.mjs +152 -0
  39. package/esm2022/core/services/http.service.mjs +306 -0
  40. package/esm2022/core/services/menu.service.mjs +130 -0
  41. package/esm2022/core/services/upload-oss.service.mjs +74 -0
  42. package/esm2022/core/utils/ToolsUtil.mjs +622 -0
  43. package/esm2022/core/utils/localstorage.util.mjs +94 -0
  44. package/esm2022/core/utils/sessionstorage.util.mjs +73 -0
  45. package/esm2022/lib/hello/hello.component.mjs +15 -0
  46. package/esm2022/lib/hello/hello.module.mjs +20 -0
  47. package/esm2022/lib/shared/atr-shared.module.mjs +239 -0
  48. package/esm2022/lib/shared/echarts/echarts.component.mjs +77 -0
  49. package/esm2022/lib/shared/form/form.component.mjs +592 -0
  50. package/esm2022/lib/shared/img-canvas/img-canvas.component.mjs +132 -0
  51. package/esm2022/lib/shared/local-upload/local-upload.component.mjs +68 -0
  52. package/esm2022/lib/shared/quill-editor/quill-editor.component.mjs +254 -0
  53. package/esm2022/lib/shared/select-icons/select-icons.component.mjs +90 -0
  54. package/esm2022/lib/shared/select-tree/select-tree.component.mjs +55 -0
  55. package/esm2022/lib/shared/service/busi.service.mjs +69 -0
  56. package/esm2022/lib/shared/share.service.mjs +107 -0
  57. package/esm2022/lib/shared/table/table-form-item/table-form-item.component.mjs +96 -0
  58. package/esm2022/lib/shared/table/table-td/table-td.component.mjs +165 -0
  59. package/esm2022/lib/shared/table/table.component.mjs +749 -0
  60. package/esm2022/lib/shared/upload/upload.component.mjs +274 -0
  61. package/esm2022/lib/shared/validators/atr-validtors.mjs +9 -0
  62. package/esm2022/lib/shared/video/video.component.mjs +16 -0
  63. package/esm2022/lib/shared/view-form/view-form.component.mjs +186 -0
  64. package/fesm2015/atr-components.mjs +8 -8
  65. package/fesm2015/atr-components.mjs.map +1 -1
  66. package/fesm2020/atr-components.mjs +8 -8
  67. package/fesm2020/atr-components.mjs.map +1 -1
  68. package/fesm2022/atr-components.mjs +5564 -0
  69. package/fesm2022/atr-components.mjs.map +1 -0
  70. package/index.d.ts +5 -0
  71. package/lib/shared/table/table.component.d.ts +1 -1
  72. package/package.json +1 -1
@@ -0,0 +1,23 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class DefaultValPipe {
5
+ transform(value, defaultVal) {
6
+ if (ToolsUtil.isNull(defaultVal)) {
7
+ return value;
8
+ }
9
+ if (ToolsUtil.isNull(value)) {
10
+ return defaultVal;
11
+ }
12
+ return value;
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DefaultValPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: DefaultValPipe, name: "defVal" }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DefaultValPipe, decorators: [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'defVal'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFZhbC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9waXBlL2RlZmF1bHRWYWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsVUFBYztRQUNsQyxJQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELElBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBQztZQUN6QixPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUNELE9BQU8sS0FBSyxDQUFFO0lBQ2hCLENBQUM7OEdBVlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxRQUFRO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdkZWZWYWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VmFsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZGVmYXVsdFZhbDphbnkpOiBhbnkge1xyXG4gICAgaWYoVG9vbHNVdGlsLmlzTnVsbChkZWZhdWx0VmFsKSl7XHJcbiAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgfVxyXG4gICAgaWYoVG9vbHNVdGlsLmlzTnVsbCh2YWx1ZSkpe1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZSA7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../services/dict/dict.service";
5
+ export class DictsPipe {
6
+ constructor(dictService) {
7
+ this.dictService = dictService;
8
+ }
9
+ transform(value, dictCode, splitKey) {
10
+ if (ToolsUtil.isNull(dictCode)) {
11
+ return value;
12
+ }
13
+ // return this.dictService.getCodeNameSync(value, dictCode,null,splitKey )
14
+ return this.dictService.getCodeNameSync(value, dictCode, null, splitKey).then(res => {
15
+ return res;
16
+ });
17
+ // return "测试1"
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DictsPipe, deps: [{ token: i1.DictService }], target: i0.ɵɵFactoryTarget.Pipe }); }
20
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: DictsPipe, name: "dicts" }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DictsPipe, decorators: [{
23
+ type: Pipe,
24
+ args: [{
25
+ name: 'dicts'
26
+ }]
27
+ }], ctorParameters: () => [{ type: i1.DictService }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvcGlwZS9kaWN0cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSTdDLE1BQU0sT0FBTyxTQUFTO0lBQ2xCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLFFBQWEsRUFBQyxRQUFnQjtRQUNsRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELDBFQUEwRTtRQUMxRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFBO1FBQ0YsZUFBZTtJQUNqQixDQUFDOzhHQWJRLFNBQVM7NEdBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFIckIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsT0FBTztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RpY3RTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvZGljdC9kaWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi91dGlscy9Ub29sc1V0aWxcIjtcclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2RpY3RzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGljdHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpY3RTZXJ2aWNlOiBEaWN0U2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBkaWN0Q29kZTogYW55LHNwbGl0S2V5PzpzdHJpbmcpIHtcclxuICAgICAgaWYgKFRvb2xzVXRpbC5pc051bGwoZGljdENvZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgIH1cclxuICAgICAgLy8gcmV0dXJuIHRoaXMuZGljdFNlcnZpY2UuZ2V0Q29kZU5hbWVTeW5jKHZhbHVlLCBkaWN0Q29kZSxudWxsLHNwbGl0S2V5IClcclxuICAgICAgcmV0dXJuIHRoaXMuZGljdFNlcnZpY2UuZ2V0Q29kZU5hbWVTeW5jKHZhbHVlLCBkaWN0Q29kZSxudWxsLHNwbGl0S2V5ICkudGhlbihyZXMgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSlcclxuICAgICAgLy8gcmV0dXJuIFwi5rWL6K+VMVwiXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class OssImgPipe {
5
+ constructor() {
6
+ }
7
+ transform(value, param = { isVideoCover: false, needTime: false }) {
8
+ return param.isVideoCover ? ToolsUtil.getVideoCover(value) : ToolsUtil.getOssUrl(value, param.needTime);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssImgPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: OssImgPipe, name: "ossImg" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssImgPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{ name: 'ossImg' }]
16
+ }], ctorParameters: () => [] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGlwZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9waXBlL2ltYWdlLXBpcGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBRzdDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCO0lBQ0EsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsUUFBWSxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQztRQUN0RSxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRyxDQUFDOzhHQU5VLFVBQVU7NEdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEdEIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tIFwiLi4vdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5AUGlwZSh7bmFtZTogJ29zc0ltZyd9KVxyXG5leHBvcnQgY2xhc3MgT3NzSW1nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHBhcmFtOmFueSA9IHtpc1ZpZGVvQ292ZXI6IGZhbHNlLCBuZWVkVGltZTogZmFsc2V9KSB7XHJcbiAgICByZXR1cm4gcGFyYW0uaXNWaWRlb0NvdmVyID8gVG9vbHNVdGlsLmdldFZpZGVvQ292ZXIodmFsdWUpIDogVG9vbHNVdGlsLmdldE9zc1VybCh2YWx1ZSwgcGFyYW0ubmVlZFRpbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class IsEmptyPipe {
5
+ transform(value, defaultVal) {
6
+ if (defaultVal) {
7
+ return ToolsUtil.isNull(value) ? defaultVal : 0;
8
+ }
9
+ return ToolsUtil.isNull(value);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IsEmptyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IsEmptyPipe, name: "isEmpty" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IsEmptyPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'isEmpty'
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1wdHkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvcGlwZS9pcy1lbXB0eS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLFdBQVc7SUFFdEIsU0FBUyxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUNwQyxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEMsQ0FBQzs4R0FQVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi91dGlscy9Ub29sc1V0aWxcIjtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnaXNFbXB0eSdcclxufSlcclxuZXhwb3J0IGNsYXNzIElzRW1wdHlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBkZWZhdWx0VmFsPzogYW55KTogYW55IHtcclxuICAgIGlmIChkZWZhdWx0VmFsKSB7XHJcbiAgICAgIHJldHVybiBUb29sc1V0aWwuaXNOdWxsKHZhbHVlKSA/IGRlZmF1bHRWYWwgOiAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5pc051bGwodmFsdWUpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class IsNotEmptyPipe {
5
+ transform(value) {
6
+ return !ToolsUtil.isNull(value);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IsNotEmptyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IsNotEmptyPipe, name: "isNotEmpty" }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IsNotEmptyPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'isNotEmpty'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm90LWVtcHR5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3BpcGUvaXMtbm90LWVtcHR5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sY0FBYztJQUV6QixTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDOzhHQUpVLGNBQWM7NEdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFIMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tIFwiLi4vdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2lzTm90RW1wdHknXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJc05vdEVtcHR5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gIVRvb2xzVXRpbC5pc051bGwodmFsdWUpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class OssPipe {
5
+ transform(value, defaultVal, needTime = false) {
6
+ return ToolsUtil.getOssUrl(value, needTime);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: OssPipe, name: "oss" }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'oss'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3BpcGUvb3NzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sT0FBTztJQUNsQixTQUFTLENBQUMsS0FBVSxFQUFFLFVBQWUsRUFBQyxRQUFRLEdBQUcsS0FBSztRQUNwRCxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBSFUsT0FBTzs0R0FBUCxPQUFPOzsyRkFBUCxPQUFPO2tCQUhuQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdvc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGRlZmF1bHRWYWw/OmFueSxuZWVkVGltZSA9IGZhbHNlKTogYW55IHtcclxuICAgIHJldHVybiBUb29sc1V0aWwuZ2V0T3NzVXJsKHZhbHVlLG5lZWRUaW1lKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from "../utils/ToolsUtil";
3
+ import * as i0 from "@angular/core";
4
+ export class OssStaticPipe {
5
+ transform(value, defaultVal) {
6
+ return ToolsUtil.getStaticOssUrl(value);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssStaticPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: OssStaticPipe, name: "ossStatic" }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OssStaticPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'ossStatic'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NzU3RhdGljLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3BpcGUvb3NzU3RhdGljLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsS0FBVSxFQUFFLFVBQWU7UUFDbkMsT0FBTyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7OEdBSFUsYUFBYTs0R0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUh6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi91dGlscy9Ub29sc1V0aWxcIjtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnb3NzU3RhdGljJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3NzU3RhdGljUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBkZWZhdWx0VmFsPzphbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5nZXRTdGF0aWNPc3NVcmwodmFsdWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IsEmptyPipe } from "./is-empty.pipe";
4
+ import { DictsPipe } from "./dicts.pipe";
5
+ import { DefaultValPipe } from "./defaultVal.pipe";
6
+ import { DayPipe } from "./day.pipe";
7
+ import { SafeComputePipe } from "./safe-compute.pipe";
8
+ import { IsNotEmptyPipe } from "./is-not-empty.pipe";
9
+ import { OssImgPipe } from "./image-pipe.pipe";
10
+ import { SafeHtmlPipe } from "./safe-html.pipe";
11
+ import { ChinaNumPipe } from "./china-num.pipe";
12
+ import { CountPipe } from "./count.pipe";
13
+ import { OssPipe } from "./oss.pipe";
14
+ import { OssStaticPipe } from "./ossStatic.pipe";
15
+ import { RemoveHtmlPipe } from "./remove-html.pipe";
16
+ import { SafeUrlPipe } from "./safe-url.pipe";
17
+ import * as i0 from "@angular/core";
18
+ // const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe,OssImgPipe]
19
+ const PIPES = [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe, OssImgPipe, SafeHtmlPipe,
20
+ ChinaNumPipe, CountPipe, OssPipe, OssStaticPipe, RemoveHtmlPipe, SafeUrlPipe];
21
+ export class PipeModuleModule {
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PipeModuleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: PipeModuleModule, declarations: [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe, OssImgPipe, SafeHtmlPipe,
24
+ ChinaNumPipe, CountPipe, OssPipe, OssStaticPipe, RemoveHtmlPipe, SafeUrlPipe], imports: [CommonModule], exports: [IsNotEmptyPipe, DefaultValPipe, DictsPipe, DayPipe, IsEmptyPipe, SafeComputePipe, OssImgPipe, SafeHtmlPipe,
25
+ ChinaNumPipe, CountPipe, OssPipe, OssStaticPipe, RemoveHtmlPipe, SafeUrlPipe] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PipeModuleModule, imports: [CommonModule] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: PipeModuleModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [...PIPES],
32
+ exports: PIPES,
33
+ imports: [
34
+ CommonModule,
35
+ ]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1tb2R1bGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9waXBlL3BpcGUtbW9kdWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFNUMsOEdBQThHO0FBQzlHLE1BQU0sS0FBSyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVk7SUFDdkgsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQTtBQVMvRSxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFWZCxjQUFjLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsWUFBWTtZQUN2SCxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsYUFNMUUsWUFBWSxhQVBELGNBQWMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZO1lBQ3ZILFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVzsrR0FTakUsZ0JBQWdCLFlBSHpCLFlBQVk7OzJGQUdILGdCQUFnQjtrQkFQNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDeEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SXNFbXB0eVBpcGV9IGZyb20gXCIuL2lzLWVtcHR5LnBpcGVcIjtcclxuaW1wb3J0IHtEaWN0c1BpcGV9IGZyb20gXCIuL2RpY3RzLnBpcGVcIjtcclxuaW1wb3J0IHtEZWZhdWx0VmFsUGlwZX0gZnJvbSBcIi4vZGVmYXVsdFZhbC5waXBlXCI7XHJcbmltcG9ydCB7RGF5UGlwZX0gZnJvbSBcIi4vZGF5LnBpcGVcIjtcclxuaW1wb3J0IHtTYWZlQ29tcHV0ZVBpcGV9IGZyb20gXCIuL3NhZmUtY29tcHV0ZS5waXBlXCI7XHJcbmltcG9ydCB7SXNOb3RFbXB0eVBpcGV9IGZyb20gXCIuL2lzLW5vdC1lbXB0eS5waXBlXCI7XHJcbmltcG9ydCB7T3NzSW1nUGlwZX0gZnJvbSBcIi4vaW1hZ2UtcGlwZS5waXBlXCI7XHJcbmltcG9ydCB7U2FmZUh0bWxQaXBlfSBmcm9tIFwiLi9zYWZlLWh0bWwucGlwZVwiO1xyXG5pbXBvcnQge0NoaW5hTnVtUGlwZX0gZnJvbSBcIi4vY2hpbmEtbnVtLnBpcGVcIjtcclxuaW1wb3J0IHtDb3VudFBpcGV9IGZyb20gXCIuL2NvdW50LnBpcGVcIjtcclxuaW1wb3J0IHtPc3NQaXBlfSBmcm9tIFwiLi9vc3MucGlwZVwiO1xyXG5pbXBvcnQge09zc1N0YXRpY1BpcGV9IGZyb20gXCIuL29zc1N0YXRpYy5waXBlXCI7XHJcbmltcG9ydCB7UmVtb3ZlSHRtbFBpcGV9IGZyb20gXCIuL3JlbW92ZS1odG1sLnBpcGVcIjtcclxuaW1wb3J0IHtTYWZlVXJsUGlwZX0gZnJvbSBcIi4vc2FmZS11cmwucGlwZVwiO1xyXG5cclxuLy8gY29uc3QgUElQRVMgPSBbSXNOb3RFbXB0eVBpcGUsIERlZmF1bHRWYWxQaXBlLCBEaWN0c1BpcGUsIERheVBpcGUsIElzRW1wdHlQaXBlLCBTYWZlQ29tcHV0ZVBpcGUsT3NzSW1nUGlwZV1cclxuY29uc3QgUElQRVMgPSBbSXNOb3RFbXB0eVBpcGUsIERlZmF1bHRWYWxQaXBlLCBEaWN0c1BpcGUsIERheVBpcGUsIElzRW1wdHlQaXBlLCBTYWZlQ29tcHV0ZVBpcGUsIE9zc0ltZ1BpcGUsIFNhZmVIdG1sUGlwZSxcclxuICBDaGluYU51bVBpcGUsIENvdW50UGlwZSwgT3NzUGlwZSwgT3NzU3RhdGljUGlwZSwgUmVtb3ZlSHRtbFBpcGUsIFNhZmVVcmxQaXBlXVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsuLi5QSVBFU10sXHJcbiAgZXhwb3J0czogUElQRVMsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBpcGVNb2R1bGVNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ToolsUtil } from '../utils/ToolsUtil';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ export class RemoveHtmlPipe {
6
+ constructor(sanitized) {
7
+ this.sanitized = sanitized;
8
+ }
9
+ transform(value, ...args) {
10
+ return ToolsUtil.removeHtml(value);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RemoveHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: RemoveHtmlPipe, name: "removeHtml" }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RemoveHtmlPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'removeHtml'
19
+ }]
20
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWh0bWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvcGlwZS9yZW1vdmUtaHRtbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSy9DLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBRyxJQUFXO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQVBVLGNBQWM7NEdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFIMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFRvb2xzVXRpbCB9IGZyb20gJy4uL3V0aWxzL1Rvb2xzVXRpbCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3JlbW92ZUh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW1vdmVIdG1sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pOiBhbnkge1xyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5yZW1vdmVIdG1sKHZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DefaultValPipe } from './defaultVal.pipe';
3
+ import * as i0 from "@angular/core";
4
+ export class SafeComputePipe {
5
+ transform(first, second, isParseInt) {
6
+ let isE = new DefaultValPipe();
7
+ second = isE.transform(second, 0);
8
+ if (second == 0) {
9
+ return 0;
10
+ }
11
+ let result = isE.transform(first, 0) / second + "";
12
+ return isParseInt ? parseInt(result) : result;
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeComputePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: SafeComputePipe, name: "safeCompute" }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeComputePipe, decorators: [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'safeCompute'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1jb21wdXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3BpcGUvc2FmZS1jb21wdXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sZUFBZTtJQUUxQixTQUFTLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxVQUFvQjtRQUMzRCxJQUFJLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUM7WUFDYixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVsRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUU7SUFDakQsQ0FBQzs4R0FYVSxlQUFlOzRHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWZhdWx0VmFsUGlwZSB9IGZyb20gJy4vZGVmYXVsdFZhbC5waXBlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FmZUNvbXB1dGUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlQ29tcHV0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKGZpcnN0OiBudW1iZXIsIHNlY29uZDogbnVtYmVyLCBpc1BhcnNlSW50PzogYm9vbGVhbiApOiBhbnkge1xyXG4gICAgbGV0IGlzRSA9IG5ldyBEZWZhdWx0VmFsUGlwZSgpO1xyXG4gICAgc2Vjb25kID0gaXNFLnRyYW5zZm9ybShzZWNvbmQsMCk7XHJcbiAgICBpZihzZWNvbmQgPT0gMCl7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdCA9IGlzRS50cmFuc2Zvcm0oZmlyc3QsMCkgLyBzZWNvbmQgKyBcIlwiO1xyXG5cclxuICAgIHJldHVybiBpc1BhcnNlSW50ID8gcGFyc2VJbnQocmVzdWx0KSA6IHJlc3VsdCA7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class SafeHtmlPipe {
5
+ constructor(sanitizer) {
6
+ this.sanitizer = sanitizer;
7
+ }
8
+ transform(html) {
9
+ return this.sanitizer.bypassSecurityTrustHtml(html);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeHtmlPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'safeHtml'
18
+ }]
19
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL3BpcGUvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFxQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQzVDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0FMVSxZQUFZOzRHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FmZUh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlSHRtbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3RvciAocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xyXG4gIH1cclxuICB0cmFuc2Zvcm0oaHRtbDphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class SafeUrlPipe {
5
+ constructor(sanitized) {
6
+ this.sanitized = sanitized;
7
+ }
8
+ transform(value, ...args) {
9
+ return this.sanitized.bypassSecurityTrustResourceUrl(value);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SafeUrlPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'safeUrl'
18
+ }]
19
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvcGlwZS9zYWZlLXVybC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFDaEQsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFHLElBQVc7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBTFUsV0FBVzs0R0FBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUh2QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3NhZmVVcmwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7IH1cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVkLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,79 @@
1
+ export class AtrReuseStrategy {
2
+ static { this.handlers = {}; }
3
+ static { this.outReusePath = ["_p", "_p_login", "_s", "_d", "_d_i"]; }
4
+ shouldDetach(route) {
5
+ const path = this.getRouteUrl(route);
6
+ if (!route.routeConfig || route.routeConfig.loadChildren || AtrReuseStrategy.outReusePath.indexOf(path) > -1) {
7
+ // console.log("不需要缓存:"+path);
8
+ return false;
9
+ }
10
+ else {
11
+ // console.log("需要缓存:"+path);
12
+ return true;
13
+ }
14
+ }
15
+ /** 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象 */
16
+ store(route, handle) {
17
+ const path = this.getRouteUrl(route);
18
+ AtrReuseStrategy.handlers[path] = handle;
19
+ console.log("添加路由缓存:" + path, handle, AtrReuseStrategy.handlers);
20
+ // console.log(AtrReuseStrategy.handlers);
21
+ }
22
+ /** 若 path 在缓存中有的都认为允许还原路由 */
23
+ shouldAttach(route) {
24
+ // console.debug('shouldAttach======>', route);
25
+ return !!AtrReuseStrategy.handlers[this.getRouteUrl(route)];
26
+ }
27
+ /** 从缓存中获取快照,若无则返回nul */
28
+ retrieve(route) {
29
+ if (!route.routeConfig)
30
+ return null;
31
+ if (route.routeConfig.loadChildren || route.routeConfig.children)
32
+ return null;
33
+ if (!AtrReuseStrategy.handlers[this.getRouteUrl(route)]) {
34
+ return null;
35
+ }
36
+ // console.debug('retrieve======>', this.getRouteUrl(route));
37
+ if (AtrReuseStrategy.outReusePath.indexOf(this.getRouteUrl(route)) > -1)
38
+ return null;
39
+ return AtrReuseStrategy.handlers[this.getRouteUrl(route)];
40
+ }
41
+ /** 进入路由触发,判断是否同一路由 */
42
+ shouldReuseRoute(future, curr) {
43
+ return future.routeConfig === curr.routeConfig;
44
+ // return future.routeConfig === curr.routeConfig &&
45
+ // JSON.stringify(future.params) === JSON.stringify(curr.params);
46
+ }
47
+ /** 删除缓存路由快照的方法 */
48
+ static deleteRouteSnapshot(path) {
49
+ const name = path.replace(/\//g, '_');
50
+ // console.log('删除缓存路由:' + name);
51
+ // console.log(AtrReuseStrategy.handlers);
52
+ // console.log(AtrReuseStrategy.handlers[name]);
53
+ let handle = AtrReuseStrategy.handlers[name];
54
+ let componentRef = handle ? handle['componentRef'] : null;
55
+ if (componentRef) {
56
+ componentRef.destroy();
57
+ }
58
+ if (AtrReuseStrategy.handlers[name] || AtrReuseStrategy.handlers[name] == null) {
59
+ delete AtrReuseStrategy.handlers[name];
60
+ }
61
+ }
62
+ /** 使用route的path作为快照的key */
63
+ getRouteUrl(route) {
64
+ const path = route['_routerState'].url.replace(/\//g, '_');
65
+ // const path = route['_routerState'].url.replace(/\//g, '_')+ '_' + (route.routeConfig.loadChildren || route.routeConfig.component.toString().split('(')[0].split(' ')[1] );
66
+ return path;
67
+ }
68
+ static deleteAll() {
69
+ // console.log("删除所有缓存路由:"+name)
70
+ for (let key in AtrReuseStrategy.handlers) {
71
+ let ref = AtrReuseStrategy.handlers[key]['componentRef'];
72
+ if (ref) {
73
+ ref.destroy();
74
+ }
75
+ }
76
+ AtrReuseStrategy.handlers = {};
77
+ }
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLXJldXNlLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9yb3V0ZXJldXNlL2F0ci1yZXVzZS1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZ0JBQWdCO2FBRVgsYUFBUSxHQUFRLEVBQUUsQ0FBQzthQUVuQixpQkFBWSxHQUFhLENBQUMsSUFBSSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXpFLFlBQVksQ0FBQyxLQUE2QjtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUc7WUFDN0csOEJBQThCO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1NBRWI7YUFBSTtZQUNKLDZCQUE2QjtZQUM3QixPQUFPLElBQUksQ0FBQztTQUNaO0lBRUosQ0FBQztJQUNELDBDQUEwQztJQUMxQyxLQUFLLENBQUMsS0FBNkIsRUFBRSxNQUEyQjtRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM1RCwwQ0FBMEM7SUFDOUMsQ0FBQztJQUNBLDZCQUE2QjtJQUM5QixZQUFZLENBQUMsS0FBNEI7UUFDckMsK0NBQStDO1FBQy9DLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELHdCQUF3QjtJQUN4QixRQUFRLENBQUMsS0FBNkI7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFBRyxPQUFPLElBQUksQ0FBQztRQUMvRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNyRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsNkRBQTZEO1FBQzdELElBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0Qsc0JBQXNCO0lBQ3RCLGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDekUsT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUU7UUFDaEQsb0RBQW9EO1FBQ2hELGlFQUFpRTtJQUN6RSxDQUFDO0lBQ0Qsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQVk7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsaUNBQWlDO1FBQ2pDLDBDQUEwQztRQUMxQyxnREFBZ0Q7UUFDaEQsSUFBSSxNQUFNLEdBQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELElBQUksWUFBWSxHQUFzQixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdFLElBQUksWUFBWSxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDOUUsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLFdBQVcsQ0FBQyxLQUFVO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCw2S0FBNks7UUFDN0ssT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxTQUFTO1FBQ25CLGdDQUFnQztRQUVsQyxLQUFLLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsRUFBRztZQUMxQyxJQUFJLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekQsSUFBRyxHQUFHLEVBQUM7Z0JBQ0wsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2Y7U0FDRjtRQUNELGdCQUFnQixDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlUmV1c2VTdHJhdGVneSwgRGV0YWNoZWRSb3V0ZUhhbmRsZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEF0clJldXNlU3RyYXRlZ3kgaW1wbGVtZW50cyBSb3V0ZVJldXNlU3RyYXRlZ3kge1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaGFuZGxlcnM6IGFueSA9IHt9O1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgb3V0UmV1c2VQYXRoOiBzdHJpbmdbXSAgPVtcIl9wXCIsXCJfcF9sb2dpblwiLFwiX3NcIixcIl9kXCIsXCJfZF9pXCJdXHJcblxyXG4gICAgc2hvdWxkRGV0YWNoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRSb3V0ZVVybChyb3V0ZSk7XHJcbiAgICAgICBpZighcm91dGUucm91dGVDb25maWcgfHwgcm91dGUucm91dGVDb25maWcubG9hZENoaWxkcmVuIHx8IEF0clJldXNlU3RyYXRlZ3kub3V0UmV1c2VQYXRoLmluZGV4T2YocGF0aCkgPiAtMSApIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4jemcgOimgee8k+WtmO+8mlwiK3BhdGgpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICB9ZWxzZXtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumcgOimgee8k+WtmO+8mlwiK3BhdGgpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8qKiDlvZPot6/nlLHnprvlvIDml7bkvJrop6blj5HjgILmjIlwYXRo5L2c5Li6a2V55a2Y5YKo6Lev55Sx5b+r54WnJue7hOS7tuW9k+WJjeWunuS+i+WvueixoSAqL1xyXG4gICAgc3RvcmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGhhbmRsZTogRGV0YWNoZWRSb3V0ZUhhbmRsZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFJvdXRlVXJsKHJvdXRlKVxyXG4gICAgICAgIEF0clJldXNlU3RyYXRlZ3kuaGFuZGxlcnNbcGF0aF0gPSBoYW5kbGU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLmt7vliqDot6/nlLHnvJPlrZjvvJpcIitwYXRoLGhhbmRsZSxBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzKVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKEF0clJldXNlU3RyYXRlZ3kuaGFuZGxlcnMpO1xyXG4gICAgfVxyXG4gICAgIC8qKiDoi6UgcGF0aCDlnKjnvJPlrZjkuK3mnInnmoTpg73orqTkuLrlhYHorrjov5jljp/ot6/nlLEgKi9cclxuICAgIHNob3VsZEF0dGFjaChyb3V0ZTpBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1Zygnc2hvdWxkQXR0YWNoPT09PT09PicsIHJvdXRlKTtcclxuICAgICAgICByZXR1cm4gISFBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzW3RoaXMuZ2V0Um91dGVVcmwocm91dGUpXTtcclxuICAgIH1cclxuICAgIC8qKiDku47nvJPlrZjkuK3ojrflj5blv6vnhafvvIzoi6Xml6DliJnov5Tlm55udWwgKi9cclxuICAgIHJldHJpZXZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogRGV0YWNoZWRSb3V0ZUhhbmRsZXxhbnkge1xyXG4gICAgICAgIGlmICghcm91dGUucm91dGVDb25maWcpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGlmIChyb3V0ZS5yb3V0ZUNvbmZpZy5sb2FkQ2hpbGRyZW4gfHwgcm91dGUucm91dGVDb25maWcuY2hpbGRyZW4gKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAoIUF0clJldXNlU3RyYXRlZ3kuaGFuZGxlcnNbdGhpcy5nZXRSb3V0ZVVybChyb3V0ZSldKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKCdyZXRyaWV2ZT09PT09PT4nLCB0aGlzLmdldFJvdXRlVXJsKHJvdXRlKSk7XHJcbiAgICAgICAgaWYoQXRyUmV1c2VTdHJhdGVneS5vdXRSZXVzZVBhdGguaW5kZXhPZih0aGlzLmdldFJvdXRlVXJsKHJvdXRlKSkgPiAtMSApXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzW3RoaXMuZ2V0Um91dGVVcmwocm91dGUpXTtcclxuICAgIH1cclxuICAgIC8qKiDov5vlhaXot6/nlLHop6blj5HvvIzliKTmlq3mmK/lkKblkIzkuIDot6/nlLEgKi9cclxuICAgIHNob3VsZFJldXNlUm91dGUoZnV0dXJlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZyA7XHJcbiAgICAgICAgLy8gcmV0dXJuIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZyAmJlxyXG4gICAgICAgICAgICAvLyBKU09OLnN0cmluZ2lmeShmdXR1cmUucGFyYW1zKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3Vyci5wYXJhbXMpO1xyXG4gICAgfVxyXG4gICAgLyoqIOWIoOmZpOe8k+WtmOi3r+eUseW/q+eFp+eahOaWueazlSAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVSb3V0ZVNuYXBzaG90KHBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBjb25zdCBuYW1lID0gcGF0aC5yZXBsYWNlKC9cXC8vZywgJ18nKTtcclxuICAgICAgLy8gY29uc29sZS5sb2coJ+WIoOmZpOe8k+WtmOi3r+eUse+8micgKyBuYW1lKTtcclxuICAgICAgLy8gY29uc29sZS5sb2coQXRyUmV1c2VTdHJhdGVneS5oYW5kbGVycyk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKEF0clJldXNlU3RyYXRlZ3kuaGFuZGxlcnNbbmFtZV0pO1xyXG4gICAgICBsZXQgaGFuZGxlOmFueSA9IEF0clJldXNlU3RyYXRlZ3kuaGFuZGxlcnNbbmFtZV07XHJcblxyXG4gICAgICBsZXQgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IGhhbmRsZSA/IGhhbmRsZVsnY29tcG9uZW50UmVmJ10gOiBudWxsO1xyXG4gICAgICBpZiAoY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXRyUmV1c2VTdHJhdGVneS5oYW5kbGVyc1tuYW1lXSB8fCBBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzW25hbWVdID09IG51bGwpIHtcclxuICAgICAgICBkZWxldGUgQXRyUmV1c2VTdHJhdGVneS5oYW5kbGVyc1tuYW1lXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiDkvb/nlKhyb3V0ZeeahHBhdGjkvZzkuLrlv6vnhafnmoRrZXkgKi9cclxuICAgIGdldFJvdXRlVXJsKHJvdXRlOiBhbnkpIHtcclxuICAgICAgICBjb25zdCBwYXRoID0gcm91dGVbJ19yb3V0ZXJTdGF0ZSddLnVybC5yZXBsYWNlKC9cXC8vZywgJ18nKTtcclxuICAgICAgICAvLyBjb25zdCBwYXRoID0gcm91dGVbJ19yb3V0ZXJTdGF0ZSddLnVybC5yZXBsYWNlKC9cXC8vZywgJ18nKSsgJ18nICsgKHJvdXRlLnJvdXRlQ29uZmlnLmxvYWRDaGlsZHJlbiB8fCByb3V0ZS5yb3V0ZUNvbmZpZy5jb21wb25lbnQudG9TdHJpbmcoKS5zcGxpdCgnKCcpWzBdLnNwbGl0KCcgJylbMV0gKTtcclxuICAgICAgICByZXR1cm4gcGF0aDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzdGF0aWMgZGVsZXRlQWxsKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Yig6Zmk5omA5pyJ57yT5a2Y6Lev55Sx77yaXCIrbmFtZSlcclxuXHJcbiAgICAgIGZvciAobGV0IGtleSBpbiBBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzICkge1xyXG4gICAgICAgIGxldCByZWYgPSBBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzW2tleV1bJ2NvbXBvbmVudFJlZiddO1xyXG4gICAgICAgIGlmKHJlZil7XHJcbiAgICAgICAgICByZWYuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBBdHJSZXVzZVN0cmF0ZWd5LmhhbmRsZXJzID0ge307XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,152 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { atr_static_datas, commonDatas } from '../../base/atr-common';
4
+ import { SessionStorageUtil } from '../../utils/sessionstorage.util';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../http.service";
7
+ export class DictService {
8
+ static { this.await_Data = {}; }
9
+ constructor(httpService) {
10
+ this.httpService = httpService;
11
+ }
12
+ getCodeName(code, value) {
13
+ let dict = SessionStorageUtil.getDictGroupByCode(code);
14
+ if (dict) {
15
+ let cur = dict.dicts.filter((v) => v.id == value)[0];
16
+ return cur ? cur.typeName : value;
17
+ }
18
+ return value;
19
+ }
20
+ async getCodeNameSync(keys, code, selectUrl, splitKey) {
21
+ return new Promise((resolve, reject) => {
22
+ this.getCodeNamePromise(code, selectUrl).then(() => {
23
+ if (splitKey && keys) {
24
+ let result = [];
25
+ for (let item of keys.split(splitKey)) {
26
+ result.push(this.getCodeName(code, item));
27
+ }
28
+ resolve(result.join(splitKey));
29
+ }
30
+ else {
31
+ let result = this.getCodeName(code, keys);
32
+ resolve(result);
33
+ }
34
+ });
35
+ });
36
+ }
37
+ getByCode(code, selectUrl) {
38
+ this.getDictByCodeSync(code, selectUrl);
39
+ return SessionStorageUtil.getDictGroupByCode(code);
40
+ }
41
+ async getDictByCodeSync(code, selectUrl) {
42
+ await this.getDictBycode(code, selectUrl).subscribe();
43
+ }
44
+ getDicBycodeBase(code, selectUrl) {
45
+ return new Observable(observe => {
46
+ let options = {
47
+ isCommonHttpHeader: true
48
+ };
49
+ this.httpService.post(selectUrl || atr_static_datas.dic_url, { groupCode: code }, options).subscribe(result => {
50
+ let data = null;
51
+ if (result.status == 200) {
52
+ data = {
53
+ groupCode: code,
54
+ dicts: result.data
55
+ };
56
+ SessionStorageUtil.putDictGroup(data);
57
+ }
58
+ observe.next(data);
59
+ observe.unsubscribe();
60
+ }, error => {
61
+ observe.error(error);
62
+ observe.unsubscribe();
63
+ });
64
+ });
65
+ }
66
+ async getCodeNamePromise(code, selectUrl) {
67
+ return new Promise(async (resolve, reject) => {
68
+ let dict = SessionStorageUtil.getDictGroupByCode(code);
69
+ if (dict) {
70
+ resolve(dict);
71
+ }
72
+ else {
73
+ if (commonDatas.await_Data[code]) {
74
+ setTimeout(() => {
75
+ this.getDictBycode(code, selectUrl).subscribe(res => {
76
+ resolve(res);
77
+ }, error => {
78
+ resolve(error);
79
+ });
80
+ }, 500);
81
+ return;
82
+ }
83
+ commonDatas.await_Data[code] = true;
84
+ this.getDicBycodeBase(code, selectUrl).subscribe(result => {
85
+ resolve(result);
86
+ commonDatas.await_Data[code] = false;
87
+ }, error => {
88
+ resolve(error);
89
+ commonDatas.await_Data[code] = false;
90
+ });
91
+ }
92
+ });
93
+ }
94
+ getDictBycode(code, selectUrl) {
95
+ // //console.log(code);
96
+ return new Observable(observe => {
97
+ let dict = SessionStorageUtil.getDictGroupByCode(code);
98
+ if (dict) {
99
+ observe.next(dict);
100
+ observe.unsubscribe();
101
+ }
102
+ else {
103
+ if (commonDatas.await_Data[code]) {
104
+ setTimeout(() => {
105
+ this.getDictBycode(code, selectUrl).subscribe(res => {
106
+ observe.next(res);
107
+ observe.unsubscribe();
108
+ }, error => {
109
+ observe.next(error);
110
+ observe.unsubscribe();
111
+ });
112
+ }, 500);
113
+ return;
114
+ }
115
+ commonDatas.await_Data[code] = true;
116
+ this.getDicBycodeBase(code, selectUrl).subscribe(result => {
117
+ observe.next(result);
118
+ observe.unsubscribe();
119
+ commonDatas.await_Data[code] = false;
120
+ }, error => {
121
+ observe.next(error);
122
+ observe.unsubscribe();
123
+ commonDatas.await_Data[code] = false;
124
+ });
125
+ }
126
+ });
127
+ }
128
+ modifyByCode(code) {
129
+ this.httpService.post(atr_static_datas.dic_url, { groupCode: code }, { isCommonHttpHeader: true }).subscribe(result => {
130
+ let data = null;
131
+ if (result.status == 200) {
132
+ data = {
133
+ groupCode: code,
134
+ dicts: result.data
135
+ };
136
+ SessionStorageUtil.putDictGroup(data);
137
+ }
138
+ });
139
+ }
140
+ reset() {
141
+ SessionStorageUtil.resetDict();
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DictService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
144
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DictService, providedIn: 'root' }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DictService, decorators: [{
147
+ type: Injectable,
148
+ args: [{
149
+ providedIn: 'root'
150
+ }]
151
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9zZXJ2aWNlcy9kaWN0L2RpY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7QUFLbkUsTUFBTSxPQUFPLFdBQVc7YUFDZixlQUFVLEdBQUcsRUFBRSxBQUFMLENBQU07SUFFdkIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUNyQyxJQUFJLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3pELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsU0FBZSxFQUFFLFFBQWlCO1FBQ2xGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVB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QyxPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDdEcsTUFBTSxDQUFDLEVBQUU7WUFDUCxJQUFJLElBQUksR0FBb0IsSUFBSSxDQUFDO1lBQ2pDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUU7Z0JBQ3hCLElBQUksR0FBRztvQkFDTCxTQUFTLEVBQUUsSUFBSTtvQkFDZixLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUk7aUJBQ25CLENBQUM7Z0JBQ0Ysa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OEdBckpVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSAnLi4vaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBjb21tb25EYXRhcywgRGljdEdyb3VwfSBmcm9tICcuLi8uLi9iYXNlL2F0ci1jb21tb24nO1xyXG5pbXBvcnQge1Nlc3Npb25TdG9yYWdlVXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvc2Vzc2lvbnN0b3JhZ2UudXRpbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWN0U2VydmljZSB7XHJcbiAgc3RhdGljIGF3YWl0X0RhdGEgPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGdldENvZGVOYW1lKGNvZGU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgbGV0IGRpY3QgPSBTZXNzaW9uU3RvcmFnZVV0aWwuZ2V0RGljdEdyb3VwQnlDb2RlKGNvZGUpO1xyXG4gICAgaWYgKGRpY3QpIHtcclxuICAgICAgbGV0IGN1ciA9IGRpY3QuZGljdHMuZmlsdGVyKCh2OiBhbnkpID0+IHYuaWQgPT0gdmFsdWUpWzBdXHJcbiAgICAgIHJldHVybiBjdXIgPyBjdXIudHlwZU5hbWUgOiB2YWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENvZGVOYW1lU3luYyhrZXlzOiBzdHJpbmcsIGNvZGU6IHN0cmluZywgc2VsZWN0VXJsPzogYW55LCBzcGxpdEtleT86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5nZXRDb2RlTmFtZVByb21pc2UoY29kZSwgc2VsZWN0VXJsKS50aGVuKCgpID0+IHtcclxuICAgICAgICBpZiAoc3BsaXRLZXkgJiYga2V5cykge1xyXG4gICAgICAgICAgbGV0IHJlc3VsdDphbnkgPSBbXVxyXG4gICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBrZXlzLnNwbGl0KHNwbGl0S2V5KSkge1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmdldENvZGVOYW1lKGNvZGUsaXRlbSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQuam9pbihzcGxpdEtleSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5nZXRDb2RlTmFtZShjb2RlLCBrZXlzKTtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0QnlDb2RlKGNvZGU6IHN0cmluZywgc2VsZWN0VXJsPzogYW55KTogRGljdEdyb3VwIHtcclxuICAgIHRoaXMuZ2V0RGljdEJ5Q29kZVN5bmMoY29kZSwgc2VsZWN0VXJsKTtcclxuICAgIHJldHVybiBTZXNzaW9uU3RvcmFnZVV0aWwuZ2V0RGljdEdyb3VwQnlDb2RlKGNvZGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXREaWN0QnlDb2RlU3luYyhjb2RlOiBzdHJpbmcsIHNlbGVjdFVybD86IGFueSkge1xyXG4gICAgYXdhaXQgdGhpcy5nZXREaWN0Qnljb2RlKGNvZGUsIHNlbGVjdFVybCkuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIGdldERpY0J5Y29kZUJhc2UoY29kZTogYW55LCBzZWxlY3RVcmw/OiBhbnkpIHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgICBpc0NvbW1vbkh0dHBIZWFkZXI6IHRydWVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5odHRwU2VydmljZS5wb3N0KHNlbGVjdFVybCB8fCBhdHJfc3RhdGljX2RhdGFzLmRpY191cmwsIHtncm91cENvZGU6IGNvZGV9LCBvcHRpb25zKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhOiBEaWN0R3JvdXAgfCBhbnkgPSBudWxsO1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgZ3JvdXBDb2RlOiBjb2RlLFxyXG4gICAgICAgICAgICAgIGRpY3RzOiByZXN1bHQuZGF0YVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBTZXNzaW9uU3RvcmFnZVV0aWwucHV0RGljdEdyb3VwKGRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KGRhdGEpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENvZGVOYW1lUHJvbWlzZShjb2RlOiBzdHJpbmcsIHNlbGVjdFVybD86IGFueSkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgbGV0IGRpY3QgPSBTZXNzaW9uU3RvcmFnZVV0aWwuZ2V0RGljdEdyb3VwQnlDb2RlKGNvZGUpO1xyXG4gICAgICBpZiAoZGljdCkge1xyXG4gICAgICAgIHJlc29sdmUoZGljdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNvbW1vbkRhdGFzLmF3YWl0X0RhdGFbY29kZV0pIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldERpY3RCeWNvZGUoY29kZSwgc2VsZWN0VXJsKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICByZXNvbHZlKGVycm9yKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0sIDUwMClcclxuICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuICAgICAgICBjb21tb25EYXRhcy5hd2FpdF9EYXRhW2NvZGVdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmdldERpY0J5Y29kZUJhc2UoY29kZSwgc2VsZWN0VXJsKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgIGNvbW1vbkRhdGFzLmF3YWl0X0RhdGFbY29kZV0gPSBmYWxzZTtcclxuICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKGVycm9yKTtcclxuICAgICAgICAgIGNvbW1vbkRhdGFzLmF3YWl0X0RhdGFbY29kZV0gPSBmYWxzZTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldERpY3RCeWNvZGUoY29kZTogc3RyaW5nLCBzZWxlY3RVcmw/OiBhbnkpOiBPYnNlcnZhYmxlPERpY3RHcm91cD4ge1xyXG4gICAgLy8gLy9jb25zb2xlLmxvZyhjb2RlKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgbGV0IGRpY3QgPSBTZXNzaW9uU3RvcmFnZVV0aWwuZ2V0RGljdEdyb3VwQnlDb2RlKGNvZGUpO1xyXG4gICAgICBpZiAoZGljdCkge1xyXG4gICAgICAgIG9ic2VydmUubmV4dChkaWN0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoY29tbW9uRGF0YXMuYXdhaXRfRGF0YVtjb2RlXSkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGljdEJ5Y29kZShjb2RlLCBzZWxlY3RVcmwpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dChyZXMpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KGVycm9yKTtcclxuICAgICAgICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0sIDUwMClcclxuICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuICAgICAgICBjb21tb25EYXRhcy5hd2FpdF9EYXRhW2NvZGVdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmdldERpY0J5Y29kZUJhc2UoY29kZSwgc2VsZWN0VXJsKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgICBjb21tb25EYXRhcy5hd2FpdF9EYXRhW2NvZGVdID0gZmFsc2U7XHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KGVycm9yKTtcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIGNvbW1vbkRhdGFzLmF3YWl0X0RhdGFbY29kZV0gPSBmYWxzZTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG1vZGlmeUJ5Q29kZShjb2RlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaHR0cFNlcnZpY2UucG9zdChhdHJfc3RhdGljX2RhdGFzLmRpY191cmwsIHtncm91cENvZGU6IGNvZGV9LCB7aXNDb21tb25IdHRwSGVhZGVyOiB0cnVlfSkuc3Vic2NyaWJlKFxyXG4gICAgICByZXN1bHQgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhOiBEaWN0R3JvdXAgfCBhbnkgPSBudWxsO1xyXG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09IDIwMCkge1xyXG4gICAgICAgICAgZGF0YSA9IHtcclxuICAgICAgICAgICAgZ3JvdXBDb2RlOiBjb2RlLFxyXG4gICAgICAgICAgICBkaWN0czogcmVzdWx0LmRhdGFcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBTZXNzaW9uU3RvcmFnZVV0aWwucHV0RGljdEdyb3VwKGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgU2Vzc2lvblN0b3JhZ2VVdGlsLnJlc2V0RGljdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=