atr-components 2.2.4 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/fesm2022/atr-components.mjs +191 -576
- package/fesm2022/atr-components.mjs.map +1 -1
- package/index.d.ts +1371 -5
- package/package.json +2 -4
- package/atr-components.module.d.ts +0 -9
- package/atr-public-api.d.ts +0 -53
- package/core/animations/animations.d.ts +0 -1
- package/core/animations/fly-in.d.ts +0 -1
- package/core/animations/scroll-screen.d.ts +0 -1
- package/core/auth/auth.guard.d.ts +0 -11
- package/core/base/atr-common.d.ts +0 -362
- package/core/directive/Infinite-scroll.directive.d.ts +0 -12
- package/core/directive/debounce-click.directive.d.ts +0 -14
- package/core/directive/error-img.directive.d.ts +0 -10
- package/core/directive/hq-spin.directive.d.ts +0 -13
- package/core/directive/role.directive.d.ts +0 -16
- package/core/interceptor/base.interceptor.d.ts +0 -17
- package/core/ngz-module/cus-zorro-antd.module.d.ts +0 -75
- package/core/pipe/china-num.pipe.d.ts +0 -7
- package/core/pipe/count.pipe.d.ts +0 -7
- package/core/pipe/day.pipe.d.ts +0 -8
- package/core/pipe/defaultVal.pipe.d.ts +0 -7
- package/core/pipe/dicts.pipe.d.ts +0 -10
- package/core/pipe/image-pipe.pipe.d.ts +0 -8
- package/core/pipe/is-empty.pipe.d.ts +0 -7
- package/core/pipe/is-not-empty.pipe.d.ts +0 -7
- package/core/pipe/oss.pipe.d.ts +0 -7
- package/core/pipe/ossStatic.pipe.d.ts +0 -7
- package/core/pipe/pipe-module.module.d.ts +0 -21
- package/core/pipe/remove-html.pipe.d.ts +0 -10
- package/core/pipe/safe-compute.pipe.d.ts +0 -7
- package/core/pipe/safe-html.pipe.d.ts +0 -10
- package/core/pipe/safe-url.pipe.d.ts +0 -10
- package/core/routereuse/atr-reuse-strategy.d.ts +0 -19
- package/core/services/dict/dict.service.d.ts +0 -20
- package/core/services/http.service.d.ts +0 -31
- package/core/services/menu.service.d.ts +0 -30
- package/core/services/upload-oss.service.d.ts +0 -14
- package/core/utils/ToolsUtil.d.ts +0 -180
- package/core/utils/localstorage.util.d.ts +0 -15
- package/core/utils/sessionstorage.util.d.ts +0 -15
- package/esm2022/atr-components.mjs +0 -5
- package/esm2022/atr-components.module.mjs +0 -36
- package/esm2022/atr-public-api.mjs +0 -55
- package/esm2022/core/animations/animations.mjs +0 -10
- package/esm2022/core/animations/fly-in.mjs +0 -19
- package/esm2022/core/animations/scroll-screen.mjs +0 -23
- package/esm2022/core/auth/auth.guard.mjs +0 -37
- package/esm2022/core/base/atr-common.mjs +0 -48
- package/esm2022/core/directive/Infinite-scroll.directive.mjs +0 -36
- package/esm2022/core/directive/debounce-click.directive.mjs +0 -41
- package/esm2022/core/directive/error-img.directive.mjs +0 -31
- package/esm2022/core/directive/hq-spin.directive.mjs +0 -48
- package/esm2022/core/directive/role.directive.mjs +0 -69
- package/esm2022/core/interceptor/base.interceptor.mjs +0 -165
- package/esm2022/core/ngz-module/cus-zorro-antd.module.mjs +0 -292
- package/esm2022/core/pipe/china-num.pipe.mjs +0 -36
- package/esm2022/core/pipe/count.pipe.mjs +0 -34
- package/esm2022/core/pipe/day.pipe.mjs +0 -24
- package/esm2022/core/pipe/defaultVal.pipe.mjs +0 -23
- package/esm2022/core/pipe/dicts.pipe.mjs +0 -28
- package/esm2022/core/pipe/image-pipe.pipe.mjs +0 -17
- package/esm2022/core/pipe/is-empty.pipe.mjs +0 -20
- package/esm2022/core/pipe/is-not-empty.pipe.mjs +0 -17
- package/esm2022/core/pipe/oss.pipe.mjs +0 -17
- package/esm2022/core/pipe/ossStatic.pipe.mjs +0 -17
- package/esm2022/core/pipe/pipe-module.module.mjs +0 -78
- package/esm2022/core/pipe/remove-html.pipe.mjs +0 -21
- package/esm2022/core/pipe/safe-compute.pipe.mjs +0 -23
- package/esm2022/core/pipe/safe-html.pipe.mjs +0 -20
- package/esm2022/core/pipe/safe-url.pipe.mjs +0 -20
- package/esm2022/core/routereuse/atr-reuse-strategy.mjs +0 -79
- package/esm2022/core/services/dict/dict.service.mjs +0 -152
- package/esm2022/core/services/http.service.mjs +0 -316
- package/esm2022/core/services/menu.service.mjs +0 -130
- package/esm2022/core/services/upload-oss.service.mjs +0 -74
- package/esm2022/core/utils/ToolsUtil.mjs +0 -622
- package/esm2022/core/utils/localstorage.util.mjs +0 -94
- package/esm2022/core/utils/sessionstorage.util.mjs +0 -73
- package/esm2022/lib/shared/atr-shared.module.mjs +0 -248
- package/esm2022/lib/shared/echarts/echarts.component.mjs +0 -77
- package/esm2022/lib/shared/form/form.component.mjs +0 -624
- package/esm2022/lib/shared/img-canvas/img-canvas.component.mjs +0 -132
- package/esm2022/lib/shared/local-upload/local-upload.component.mjs +0 -68
- package/esm2022/lib/shared/quill-editor/quill-editor.component.mjs +0 -254
- package/esm2022/lib/shared/select-icons/select-icons.component.mjs +0 -90
- package/esm2022/lib/shared/select-tree/select-tree.component.mjs +0 -55
- package/esm2022/lib/shared/service/busi.service.mjs +0 -69
- package/esm2022/lib/shared/share.service.mjs +0 -107
- package/esm2022/lib/shared/table/table-form-item/table-form-item.component.mjs +0 -96
- package/esm2022/lib/shared/table/table-td/table-td.component.mjs +0 -165
- package/esm2022/lib/shared/table/table.component.mjs +0 -766
- package/esm2022/lib/shared/upload/upload.component.mjs +0 -273
- package/esm2022/lib/shared/validators/atr-validtors.mjs +0 -9
- package/esm2022/lib/shared/video/video.component.mjs +0 -16
- package/esm2022/lib/shared/view-form/view-form.component.mjs +0 -186
- package/lib/shared/atr-shared.module.d.ts +0 -39
- package/lib/shared/echarts/echarts.component.d.ts +0 -34
- package/lib/shared/form/form.component.d.ts +0 -49
- package/lib/shared/img-canvas/img-canvas.component.d.ts +0 -28
- package/lib/shared/local-upload/local-upload.component.d.ts +0 -22
- package/lib/shared/quill-editor/quill-editor.component.d.ts +0 -45
- package/lib/shared/select-icons/select-icons.component.d.ts +0 -24
- package/lib/shared/select-tree/select-tree.component.d.ts +0 -23
- package/lib/shared/service/busi.service.d.ts +0 -20
- package/lib/shared/share.service.d.ts +0 -14
- package/lib/shared/table/table-form-item/table-form-item.component.d.ts +0 -25
- package/lib/shared/table/table-td/table-td.component.d.ts +0 -26
- package/lib/shared/table/table.component.d.ts +0 -94
- package/lib/shared/upload/upload.component.d.ts +0 -53
- package/lib/shared/validators/atr-validtors.d.ts +0 -2
- package/lib/shared/video/video.component.d.ts +0 -7
- package/lib/shared/view-form/view-form.component.d.ts +0 -27
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { LocalStorageUtil } from '../utils/localstorage.util';
|
|
3
|
-
import { AtrReuseStrategy } from '../routereuse/atr-reuse-strategy';
|
|
4
|
-
import { atr_static_datas } from "../base/atr-common";
|
|
5
|
-
import { ToolsUtil } from '../utils/ToolsUtil';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
import * as i2 from "../services/http.service";
|
|
9
|
-
export class AuthGuard {
|
|
10
|
-
constructor(router, httpService) {
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.httpService = httpService;
|
|
13
|
-
}
|
|
14
|
-
canActivate(route, state) {
|
|
15
|
-
// throw new Error("Method not implemented.");
|
|
16
|
-
if (LocalStorageUtil.getUserId() != "") {
|
|
17
|
-
if (atr_static_datas.needOss && atr_static_datas.OSS_GETHOST && !ToolsUtil.ossPrefix) {
|
|
18
|
-
this.httpService.getOssPre().subscribe();
|
|
19
|
-
}
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
this.router.navigateByUrl(atr_static_datas.login_router);
|
|
24
|
-
});
|
|
25
|
-
setTimeout(() => AtrReuseStrategy.deleteAll(), 50);
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthGuard, decorators: [{
|
|
32
|
-
type: Injectable,
|
|
33
|
-
args: [{
|
|
34
|
-
providedIn: 'root'
|
|
35
|
-
}]
|
|
36
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.HttpService }] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYXV0aC9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTTdDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQW9CLE1BQWMsRUFBVSxXQUF3QjtRQUFoRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDcEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLDhDQUE4QztRQUM5QyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO2dCQUNwRixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQzFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQTtRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBbEJVLFNBQVM7bUhBQVQsU0FBUyxjQUhSLE1BQU07OzRGQUdQLFNBQVM7a0JBSnJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtMb2NhbFN0b3JhZ2VVdGlsfSBmcm9tICcuLi91dGlscy9sb2NhbHN0b3JhZ2UudXRpbCc7XHJcbmltcG9ydCB7QXRyUmV1c2VTdHJhdGVneX0gZnJvbSAnLi4vcm91dGVyZXVzZS9hdHItcmV1c2Utc3RyYXRlZ3knO1xyXG5pbXBvcnQge2F0cl9zdGF0aWNfZGF0YXN9IGZyb20gXCIuLi9iYXNlL2F0ci1jb21tb25cIjtcclxuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSAnLi4vdXRpbHMvVG9vbHNVdGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGFueSB7XHJcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICAgIGlmIChMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpICE9IFwiXCIpIHtcclxuICAgICAgaWYgKGF0cl9zdGF0aWNfZGF0YXMubmVlZE9zcyAmJiBhdHJfc3RhdGljX2RhdGFzLk9TU19HRVRIT1NUICYmICFUb29sc1V0aWwub3NzUHJlZml4KSB7XHJcbiAgICAgICAgdGhpcy5odHRwU2VydmljZS5nZXRPc3NQcmUoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGF0cl9zdGF0aWNfZGF0YXMubG9naW5fcm91dGVyKTtcclxuICAgIH0pXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IEF0clJldXNlU3RyYXRlZ3kuZGVsZXRlQWxsKCksIDUwKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { LocalStorageUtil } from "../utils/localstorage.util";
|
|
2
|
-
export const atr_static_datas = {
|
|
3
|
-
/**
|
|
4
|
-
* oss地址前缀
|
|
5
|
-
*/
|
|
6
|
-
OSS_URL: '',
|
|
7
|
-
/**
|
|
8
|
-
* 静态地址
|
|
9
|
-
*/
|
|
10
|
-
STATIC_OSS_URL: '',
|
|
11
|
-
OSS_POLICY: 'third/oss/getPolicy',
|
|
12
|
-
STORAGE_PRE: 'DQ_',
|
|
13
|
-
menu_url: '',
|
|
14
|
-
OSS_GETHOST: '',
|
|
15
|
-
needOss: true,
|
|
16
|
-
dic_url: 'mgr/combo',
|
|
17
|
-
/**
|
|
18
|
-
* 登录路由
|
|
19
|
-
*/
|
|
20
|
-
login_router: '/p/login',
|
|
21
|
-
SERVER_URL: '',
|
|
22
|
-
//http head是否默认head
|
|
23
|
-
needNormalHeade: false,
|
|
24
|
-
getNormalHeader: (_headers) => {
|
|
25
|
-
return _headers;
|
|
26
|
-
},
|
|
27
|
-
getDefaultHeader: (_headers) => {
|
|
28
|
-
_headers = _headers.set("x-header-atr", "manage");
|
|
29
|
-
_headers = _headers.set("token", LocalStorageUtil.getUserToken());
|
|
30
|
-
_headers = _headers.set("userId", LocalStorageUtil.getUserId());
|
|
31
|
-
// _headers = _headers.set("orgCode",ToolsUtil.getOrgCode());
|
|
32
|
-
return _headers;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
export class commonDatas {
|
|
36
|
-
static { this.letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; }
|
|
37
|
-
static { this.icons = 'step-backward,step-forward,fast-backward,fast-forward,shrink,arrows-alt,down,up,left,right,caret-up,caret-down,caret-left,caret-right,up-circle,down-circle,left-circle,right-circle,double-right,double-left,vertical-left,vertical-right,vertical-align-top,vertical-align-middle,vertical-align-bottom,forward,backward,rollback,enter,retweet,swap,swap-left,swap-right,arrow-up,arrow-down,arrow-left,arrow-right,play-circle,up-square,down-square,left-square,right-square,login,logout,menu-fold,menu-unfold,border-bottom,border-horizontal,border-inner,border-outer,border-left,border-right,border-top,border-verticle,pic-center,pic-left,pic-right,radius-bottomleft,radius-bottomright,radius-upleft,radius-upright,fullscreen,fullscreen-exit,question,question-circle,plus,plus-circle,pause,pause-circle,minus,minus-circle,plus-square,minus-square,info,info-circle,exclamation,exclamation-circle,close,close-circle,close-square,check,check-circle,check-square,clock-circle,warning,issues-close,stop,edit,form,copy,scissor,delete,snippets,diff,highlight,align-center,align-left,align-right,bg-colors,bold,italic,underline,strikethrough,redo,undo,zoom-in,zoom-out,font-colors,font-size,line-height,dash,small-dash,sort-ascending,sort-descending,drag,ordered-list,unordered-list,radius-setting,column-width,column-height,area-chart,pie-chart,bar-chart,dot-chart,line-chart,radar-chart,heat-map,fall,rise,stock,box-plot,fund,sliders,android,apple,windows,ie,chrome,github,aliwangwang,dingding,weibo-square,weibo-circle,taobao-circle,html5,weibo,twitter,wechat,youtube,alipay-circle,taobao,skype,qq,medium-workmark,gitlab,medium,linkedin,google-plus,dropbox,facebook,codepen,code-sandbox,amazon,google,codepen-circle,alipay,ant-design,ant-cloud,aliyun,zhihu,slack,slack-square,behance,behance-square,dribbble,dribbble-square,instagram,yuque,alibaba,yahoo,reddit,sketch,alert,aim,account-book,apartment,api,appstore,audio-muted,audit,bank,barcode,bars,block,book,bell,appstore-add,audio,border,borderless-table,bug,branches,camera,calculator,calendar,build,carry-out,bulb,car,clear,ci,cloud-download,cloud,cloud-sync,cloud-server,cloud-upload,code,coffee,compress,compass,comment,ci-circle,container,control,copyright,credit-card,cluster,customer-service,contacts,console-sql,dashboard,database,copyright-circle,delete-column,desktop,deployment-unit,delivered-procedure,disconnect,dingtalk,dollar-circle,dislike,delete-row,dollar,crown,download,ellipsis,environment,euro-circle,exception,expand-alt,euro,experiment,export,expand,eye-invisible,eye,file-add,field-string,file-exclamation,file-done,field-time,file-excel,field-binary,file-gif,file-image,file,file-markdown,file-ppt,file-pdf,field-number,file-search,file-sync,file-jpg,file-text,filter,file-zip,flag,folder-add,file-unknown,folder-open,fire,file-protect,folder-view,folder,fork,format-painter,frown,fund-projection-screen,gift,gateway,fund-view,gif,funnel-plot,gold,global,group,hdd,function,history,file-word,home,idcard,hourglass,heart,insert-row-below,import,insert-row-left,insert-row-above,insert-row-right,key,inbox,insurance,laptop,like,line,link,loading-3-quarters,loading,lock,man,mail,mac-command,medicine-box,layout,meh,interaction,message,menu,merge-cells,mobile,money-collect,node-index,monitor,node-expand,more,number,notification,one-to-one,percentage,phone,paper-clip,partition,picture,node-collapse,play-square,pay-circle,pound,profile,project,property-safety,poweroff,pushpin,qrcode,printer,pound-circle,pull-request,rest,read,reload,reconciliation,robot,rocket,rotate-right,safety-certificate,red-envelope,rotate-left,save,safety,search,security-scan,scan,send,setting,select,shake,shopping-cart,sisternode,shop,shopping,share-alt,schedule,skin,smile,solution,sound,split-cells,star,subnode,tags,tablet,tag,table,switcher,sync,team,tool,trademark-circle,thunderbolt,to-top,translation,trademark,trophy,ungroup,unlock,upload,transaction,user-delete,usb,user-add,usergroup-delete,video-camera-add,verified,usergroup-add,user,user-switch,video-camera,wifi,wallet,whats-app,woman,appstore'.split(','); }
|
|
38
|
-
static { this.await_Data = {}; }
|
|
39
|
-
}
|
|
40
|
-
export var UserAction;
|
|
41
|
-
(function (UserAction) {
|
|
42
|
-
UserAction[UserAction["ADD"] = 0] = "ADD";
|
|
43
|
-
UserAction[UserAction["EDIT"] = 1] = "EDIT";
|
|
44
|
-
UserAction[UserAction["DEL"] = 2] = "DEL";
|
|
45
|
-
UserAction[UserAction["QUERY"] = 3] = "QUERY";
|
|
46
|
-
UserAction[UserAction["SUPPERADD"] = 4] = "SUPPERADD";
|
|
47
|
-
})(UserAction || (UserAction = {}));
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLEVBQUU7SUFDWDs7T0FFRztJQUNILGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxxQkFBcUI7SUFDakMsV0FBVyxFQUFFLEtBQUs7SUFDbEIsUUFBUSxFQUFFLEVBQUU7SUFDWixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLFdBQVc7SUFDcEI7O09BRUc7SUFDSCxZQUFZLEVBQUUsVUFBVTtJQUN4QixVQUFVLEVBQUUsRUFBRTtJQUNkLG1CQUFtQjtJQUNuQixlQUFlLEVBQUUsS0FBSztJQUN0QixlQUFlLEVBQUUsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDekMsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1FBQzFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNsRSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSw2REFBNkQ7UUFDN0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sV0FBVzthQUNmLFlBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTthQUM1SSxVQUFLLEdBQUcscTlIQUFxOUgsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDeCtILGVBQVUsR0FBUSxFQUFFLENBQUM7O0FBbUM5QixNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0oseUNBQUcsQ0FBQTtJQUNILDZDQUFLLENBQUE7SUFDTCxxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSGVhZGVyc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TG9jYWxTdG9yYWdlVXRpbH0gZnJvbSBcIi4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsXCI7XHJcbmltcG9ydCB7VGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICAvKipcclxuICAgKiBvc3PlnLDlnYDliY3nvIBcclxuICAgKi9cclxuICBPU1NfVVJMOiAnJyxcclxuICAvKipcclxuICAgKiDpnZnmgIHlnLDlnYBcclxuICAgKi9cclxuICBTVEFUSUNfT1NTX1VSTDogJycsXHJcbiAgT1NTX1BPTElDWTogJ3RoaXJkL29zcy9nZXRQb2xpY3knLFxyXG4gIFNUT1JBR0VfUFJFOiAnRFFfJyxcclxuICBtZW51X3VybDogJycsXHJcbiAgT1NTX0dFVEhPU1Q6ICcnLFxyXG4gIG5lZWRPc3M6IHRydWUsXHJcbiAgZGljX3VybDogJ21nci9jb21ibycsXHJcbiAgLyoqXHJcbiAgICog55m75b2V6Lev55SxXHJcbiAgICovXHJcbiAgbG9naW5fcm91dGVyOiAnL3AvbG9naW4nLFxyXG4gIFNFUlZFUl9VUkw6ICcnLFxyXG4gIC8vaHR0cCBoZWFk5piv5ZCm6buY6K6kaGVhZFxyXG4gIG5lZWROb3JtYWxIZWFkZTogZmFsc2UsXHJcbiAgZ2V0Tm9ybWFsSGVhZGVyOiAoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XHJcbiAgICByZXR1cm4gX2hlYWRlcnNcclxuICB9LFxyXG4gIGdldERlZmF1bHRIZWFkZXI6IChfaGVhZGVyczogSHR0cEhlYWRlcnMpID0+IHtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwieC1oZWFkZXItYXRyXCIsIFwibWFuYWdlXCIpO1xyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJ0b2tlblwiLCBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJUb2tlbigpKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidXNlcklkXCIsIExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlcklkKCkpO1xyXG4gICAgLy8gX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJvcmdDb2RlXCIsVG9vbHNVdGlsLmdldE9yZ0NvZGUoKSk7XHJcbiAgICByZXR1cm4gX2hlYWRlcnM7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIGNvbW1vbkRhdGFzIHtcclxuICBzdGF0aWMgbGV0dGVycyA9IFtcIkFcIiwgXCJCXCIsIFwiQ1wiLCBcIkRcIiwgXCJFXCIsIFwiRlwiLCBcIkdcIiwgXCJIXCIsIFwiSVwiLCBcIkpcIiwgXCJLXCIsIFwiTFwiLCBcIk1cIiwgXCJOXCIsIFwiT1wiLCBcIlBcIiwgXCJRXCIsIFwiUlwiLCBcIlNcIiwgXCJUXCIsIFwiVVwiLCBcIlZcIiwgXCJXXCIsIFwiWFwiLCBcIllcIiwgXCJaXCJdXHJcbiAgc3RhdGljIGljb25zID0gJ3N0ZXAtYmFja3dhcmQsc3RlcC1mb3J3YXJkLGZhc3QtYmFja3dhcmQsZmFzdC1mb3J3YXJkLHNocmluayxhcnJvd3MtYWx0LGRvd24sdXAsbGVmdCxyaWdodCxjYXJldC11cCxjYXJldC1kb3duLGNhcmV0LWxlZnQsY2FyZXQtcmlnaHQsdXAtY2lyY2xlLGRvd24tY2lyY2xlLGxlZnQtY2lyY2xlLHJpZ2h0LWNpcmNsZSxkb3VibGUtcmlnaHQsZG91YmxlLWxlZnQsdmVydGljYWwtbGVmdCx2ZXJ0aWNhbC1yaWdodCx2ZXJ0aWNhbC1hbGlnbi10b3AsdmVydGljYWwtYWxpZ24tbWlkZGxlLHZlcnRpY2FsLWFsaWduLWJvdHRvbSxmb3J3YXJkLGJhY2t3YXJkLHJvbGxiYWNrLGVudGVyLHJldHdlZXQsc3dhcCxzd2FwLWxlZnQsc3dhcC1yaWdodCxhcnJvdy11cCxhcnJvdy1kb3duLGFycm93LWxlZnQsYXJyb3ctcmlnaHQscGxheS1jaXJjbGUsdXAtc3F1YXJlLGRvd24tc3F1YXJlLGxlZnQtc3F1YXJlLHJpZ2h0LXNxdWFyZSxsb2dpbixsb2dvdXQsbWVudS1mb2xkLG1lbnUtdW5mb2xkLGJvcmRlci1ib3R0b20sYm9yZGVyLWhvcml6b250YWwsYm9yZGVyLWlubmVyLGJvcmRlci1vdXRlcixib3JkZXItbGVmdCxib3JkZXItcmlnaHQsYm9yZGVyLXRvcCxib3JkZXItdmVydGljbGUscGljLWNlbnRlcixwaWMtbGVmdCxwaWMtcmlnaHQscmFkaXVzLWJvdHRvbWxlZnQscmFkaXVzLWJvdHRvbXJpZ2h0LHJhZGl1cy11cGxlZnQscmFkaXVzLXVwcmlnaHQsZnVsbHNjcmVlbixmdWxsc2NyZWVuLWV4aXQscXVlc3Rpb24scXVlc3Rpb24tY2lyY2xlLHBsdXMscGx1cy1jaXJjbGUscGF1c2UscGF1c2UtY2lyY2xlLG1pbnVzLG1pbnVzLWNpcmNsZSxwbHVzLXNxdWFyZSxtaW51cy1zcXVhcmUsaW5mbyxpbmZvLWNpcmNsZSxleGNsYW1hdGlvbixleGNsYW1hdGlvbi1jaXJjbGUsY2xvc2UsY2xvc2UtY2lyY2xlLGNsb3NlLXNxdWFyZSxjaGVjayxjaGVjay1jaXJjbGUsY2hlY2stc3F1YXJlLGNsb2NrLWNpcmNsZSx3YXJuaW5nLGlzc3Vlcy1jbG9zZSxzdG9wLGVkaXQsZm9ybSxjb3B5LHNjaXNzb3IsZGVsZXRlLHNuaXBwZXRzLGRpZmYsaGlnaGxpZ2h0LGFsaWduLWNlbnRlcixhbGlnbi1sZWZ0LGFsaWduLXJpZ2h0LGJnLWNvbG9ycyxib2xkLGl0YWxpYyx1bmRlcmxpbmUsc3RyaWtldGhyb3VnaCxyZWRvLHVuZG8sem9vbS1pbix6b29tLW91dCxmb250LWNvbG9ycyxmb250LXNpemUsbGluZS1oZWlnaHQsZGFzaCxzbWFsbC1kYXNoLHNvcnQtYXNjZW5kaW5nLHNvcnQtZGVzY2VuZGluZyxkcmFnLG9yZGVyZWQtbGlzdCx1bm9yZGVyZWQtbGlzdCxyYWRpdXMtc2V0dGluZyxjb2x1bW4td2lkdGgsY29sdW1uLWhlaWdodCxhcmVhLWNoYXJ0LHBpZS1jaGFydCxiYXItY2hhcnQsZG90LWNoYXJ0LGxpbmUtY2hhcnQscmFkYXItY2hhcnQsaGVhdC1tYXAsZmFsbCxyaXNlLHN0b2NrLGJveC1wbG90LGZ1bmQsc2xpZGVycyxhbmRyb2lkLGFwcGxlLHdpbmRvd3MsaWUsY2hyb21lLGdpdGh1YixhbGl3YW5nd2FuZyxkaW5nZGluZyx3ZWliby1zcXVhcmUsd2VpYm8tY2lyY2xlLHRhb2Jhby1jaXJjbGUsaHRtbDUsd2VpYm8sdHdpdHRlcix3ZWNoYXQseW91dHViZSxhbGlwYXktY2lyY2xlLHRhb2Jhbyxza3lwZSxxcSxtZWRpdW0td29ya21hcmssZ2l0bGFiLG1lZGl1bSxsaW5rZWRpbixnb29nbGUtcGx1cyxkcm9wYm94LGZhY2Vib29rLGNvZGVwZW4sY29kZS1zYW5kYm94LGFtYXpvbixnb29nbGUsY29kZXBlbi1jaXJjbGUsYWxpcGF5LGFudC1kZXNpZ24sYW50LWNsb3VkLGFsaXl1bix6aGlodSxzbGFjayxzbGFjay1zcXVhcmUsYmVoYW5jZSxiZWhhbmNlLXNxdWFyZSxkcmliYmJsZSxkcmliYmJsZS1zcXVhcmUsaW5zdGFncmFtLHl1cXVlLGFsaWJhYmEseWFob28scmVkZGl0LHNrZXRjaCxhbGVydCxhaW0sYWNjb3VudC1ib29rLGFwYXJ0bWVudCxhcGksYXBwc3RvcmUsYXVkaW8tbXV0ZWQsYXVkaXQsYmFuayxiYXJjb2RlLGJhcnMsYmxvY2ssYm9vayxiZWxsLGFwcHN0b3JlLWFkZCxhdWRpbyxib3JkZXIsYm9yZGVybGVzcy10YWJsZSxidWcsYnJhbmNoZXMsY2FtZXJhLGNhbGN1bGF0b3IsY2FsZW5kYXIsYnVpbGQsY2Fycnktb3V0LGJ1bGIsY2FyLGNsZWFyLGNpLGNsb3VkLWRvd25sb2FkLGNsb3VkLGNsb3VkLXN5bmMsY2xvdWQtc2VydmVyLGNsb3VkLXVwbG9hZCxjb2RlLGNvZmZlZSxjb21wcmVzcyxjb21wYXNzLGNvbW1lbnQsY2ktY2lyY2xlLGNvbnRhaW5lcixjb250cm9sLGNvcHlyaWdodCxjcmVkaXQtY2FyZCxjbHVzdGVyLGN1c3RvbWVyLXNlcnZpY2UsY29udGFjdHMsY29uc29sZS1zcWwsZGFzaGJvYXJkLGRhdGFiYXNlLGNvcHlyaWdodC1jaXJjbGUsZGVsZXRlLWNvbHVtbixkZXNrdG9wLGRlcGxveW1lbnQtdW5pdCxkZWxpdmVyZWQtcHJvY2VkdXJlLGRpc2Nvbm5lY3QsZGluZ3RhbGssZG9sbGFyLWNpcmNsZSxkaXNsaWtlLGRlbGV0ZS1yb3csZG9sbGFyLGNyb3duLGRvd25sb2FkLGVsbGlwc2lzLGVudmlyb25tZW50LGV1cm8tY2lyY2xlLGV4Y2VwdGlvbixleHBhbmQtYWx0LGV1cm8sZXhwZXJpbWVudCxleHBvcnQsZXhwYW5kLGV5ZS1pbnZpc2libGUsZXllLGZpbGUtYWRkLGZpZWxkLXN0cmluZyxmaWxlLWV4Y2xhbWF0aW9uLGZpbGUtZG9uZSxmaWVsZC10aW1lLGZpbGUtZXhjZWwsZmllbGQtYmluYXJ5LGZpbGUtZ2lmLGZpbGUtaW1hZ2UsZmlsZSxmaWxlLW1hcmtkb3duLGZpbGUtcHB0LGZpbGUtcGRmLGZpZWxkLW51bWJlcixmaWxlLXNlYXJjaCxmaWxlLXN5bmMsZmlsZS1qcGcsZmlsZS10ZXh0LGZpbHRlcixmaWxlLXppcCxmbGFnLGZvbGRlci1hZGQsZmlsZS11bmtub3duLGZvbGRlci1vcGVuLGZpcmUsZmlsZS1wcm90ZWN0LGZvbGRlci12aWV3LGZvbGRlcixmb3JrLGZvcm1hdC1wYWludGVyLGZyb3duLGZ1bmQtcHJvamVjdGlvbi1zY3JlZW4sZ2lmdCxnYXRld2F5LGZ1bmQtdmlldyxnaWYsZnVubmVsLXBsb3QsZ29sZCxnbG9iYWwsZ3JvdXAsaGRkLGZ1bmN0aW9uLGhpc3RvcnksZmlsZS13b3JkLGhvbWUsaWRjYXJkLGhvdXJnbGFzcyxoZWFydCxpbnNlcnQtcm93LWJlbG93LGltcG9ydCxpbnNlcnQtcm93LWxlZnQsaW5zZXJ0LXJvdy1hYm92ZSxpbnNlcnQtcm93LXJpZ2h0LGtleSxpbmJveCxpbnN1cmFuY2UsbGFwdG9wLGxpa2UsbGluZSxsaW5rLGxvYWRpbmctMy1xdWFydGVycyxsb2FkaW5nLGxvY2ssbWFuLG1haWwsbWFjLWNvbW1hbmQsbWVkaWNpbmUtYm94LGxheW91dCxtZWgsaW50ZXJhY3Rpb24sbWVzc2FnZSxtZW51LG1lcmdlLWNlbGxzLG1vYmlsZSxtb25leS1jb2xsZWN0LG5vZGUtaW5kZXgsbW9uaXRvcixub2RlLWV4cGFuZCxtb3JlLG51bWJlcixub3RpZmljYXRpb24sb25lLXRvLW9uZSxwZXJjZW50YWdlLHBob25lLHBhcGVyLWNsaXAscGFydGl0aW9uLHBpY3R1cmUsbm9kZS1jb2xsYXBzZSxwbGF5LXNxdWFyZSxwYXktY2lyY2xlLHBvdW5kLHByb2ZpbGUscHJvamVjdCxwcm9wZXJ0eS1zYWZldHkscG93ZXJvZmYscHVzaHBpbixxcmNvZGUscHJpbnRlcixwb3VuZC1jaXJjbGUscHVsbC1yZXF1ZXN0LHJlc3QscmVhZCxyZWxvYWQscmVjb25jaWxpYXRpb24scm9ib3Qscm9ja2V0LHJvdGF0ZS1yaWdodCxzYWZldHktY2VydGlmaWNhdGUscmVkLWVudmVsb3BlLHJvdGF0ZS1sZWZ0LHNhdmUsc2FmZXR5LHNlYXJjaCxzZWN1cml0eS1zY2FuLHNjYW4sc2VuZCxzZXR0aW5nLHNlbGVjdCxzaGFrZSxzaG9wcGluZy1jYXJ0LHNpc3Rlcm5vZGUsc2hvcCxzaG9wcGluZyxzaGFyZS1hbHQsc2NoZWR1bGUsc2tpbixzbWlsZSxzb2x1dGlvbixzb3VuZCxzcGxpdC1jZWxscyxzdGFyLHN1Ym5vZGUsdGFncyx0YWJsZXQsdGFnLHRhYmxlLHN3aXRjaGVyLHN5bmMsdGVhbSx0b29sLHRyYWRlbWFyay1jaXJjbGUsdGh1bmRlcmJvbHQsdG8tdG9wLHRyYW5zbGF0aW9uLHRyYWRlbWFyayx0cm9waHksdW5ncm91cCx1bmxvY2ssdXBsb2FkLHRyYW5zYWN0aW9uLHVzZXItZGVsZXRlLHVzYix1c2VyLWFkZCx1c2VyZ3JvdXAtZGVsZXRlLHZpZGVvLWNhbWVyYS1hZGQsdmVyaWZpZWQsdXNlcmdyb3VwLWFkZCx1c2VyLHVzZXItc3dpdGNoLHZpZGVvLWNhbWVyYSx3aWZpLHdhbGxldCx3aGF0cy1hcHAsd29tYW4sYXBwc3RvcmUnLnNwbGl0KCcsJylcclxuICBzdGF0aWMgYXdhaXRfRGF0YTogYW55ID0ge307XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBqc29uIGV4dGVuZHMgT2JqZWN0IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZCB7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICBzaG93Q291bnQ6IG51bWJlcjtcclxuICB0b3RhbFJlc3VsdDogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSZXNwb25zZURhdGFTdGFuZGFyZCB7XHJcbiAgc3RhdGU6IG51bWJlcjsgLy8g5Li6MeaJjeaYr+aIkOWKn1xyXG4gIGRhdGE6IGpzb24gfCBbe31dIHwgb2JqZWN0IHwgc3RyaW5nIHwgYW55OyAvL+ayoeacieWAvCBkYXRhOiAnJ1xyXG4gIG1lc3M6IHN0cmluZzsgLy/ov5Tlm57nmoTmtojmga9cclxuICBwYWdlPzogU2VydmVyUGFnaW5hdGlvblN0YW5kYXJkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSc2Vwb25zZVRyYW5zZm9ybUNlbGwge1xyXG4gIFtrZXk6IHN0cmluZ106IGpzb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzoge30sXHJcbiAgaXNKc29uRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzVXJsRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzQXV0b1Nob3dNZXNzYWdlPzogYm9vbGVhblxyXG4gIGlzV2l0aENyZWRlbnRpYWxzPzogYm9vbGVhblxyXG4gIGlzQ29tbW9uSHR0cEhlYWRlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlckFjdGlvbiB7XHJcbiAgQURELFxyXG4gIEVESVQsXHJcbiAgREVMLFxyXG4gIFFVRVJZLFxyXG4gIFNVUFBFUkFERFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzogYm9vbGVhbixcclxuICAgIHNob3c/OiBib29sZWFuLFxyXG4gIH0sXHJcbiAgeUF4aXM/OiBhbnksLy97ICAgIHNob3c6ZmFsc2UsICAgIHR5cGU6ICd2YWx1ZScsICAgIG1pbkludGVydmFsOiAxLH1bXVxyXG4gIHNlcmllcz86IHtcclxuICAgIG5hbWU/OiBzdHJpbmcsXHJcbiAgICBkYXRhPzogYW55W10sXHJcbiAgICBpdGVtU3R5bGU/OiBhbnksXHJcbiAgICBzdGFjaz86IGFueSxcclxuICAgIGVtcGhhc2lzPzogYW55LFxyXG4gICAgbGFiZWw/OiBhbnksXHJcbiAgICByYWRpdXM/OiBhbnlbXSxcclxuICAgIHNtb290aD86IGJvb2xlYW4sXHJcbiAgICBzZXJpZXNMYXlvdXRCeT86IHN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtT3B0IHtcclxuICB0eXBlOiAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICBsYXlvdXQ/OiBcImZ1bGxcIiB8ICcxbDJjJyB8ICcxbDFjJyxcclxuICBpdGVtczogQXRyRm9ybURldGFpbFtdLC8v6KGo5Y2V6aG555uuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtRGV0YWlsIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ2ltYWdlJyB8ICdzZWxlY3QnIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAndGVscGhvbmUnIHwgJ3Bhc3N3b3JkJyB8ICdjaGVja2JveCcgfCAnZGF5UmFuZ2UnXHJcbiAgICB8ICdlZGl0b3InIHwgJ3RleHRhcmVhJyB8ICdkYXRlVGltZScgfCAndGl0bGUnIHwgJ2RhdGVSYW5nZScgfCAnc2VsZWN0YycgfCAnc2VsZWN0SWNvbicgfCAndHJlZVNlbGVjdCcgfCAnc3dpdGNoJyB8ICdidXR0b25zJyB8ICdjb2xvcicsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNIaWRkZW4/OiBib29sZWFuLFxyXG4gIGFsbG93U2VsZWN0Tm9kZT86IGJvb2xlYW4sLy9jYXNjYWRlciDmmK/lkKblhYHorrjpgInmi6nniLboioLngrlcclxuICAvLyB2YWx1ZVByb3BlcnR5PzpzdHJpbmcsLy92YWx1ZVByb3BlcnR5IOWunumZheWAvFxyXG4gIC8vIHNob3dLZXk/OnN0cmluZywvL2Nhc2NhZGVyIOe8lui+keaIluiAheWIneWni+WMluWAvOaXtiDmoLnmja5zaG93S2V5KGxhYmVsIE9yIFZhbHVlKeadpeaJvuWFqGxhYmVs5ZKMdmFsdWVcclxuICBkZWZhdWx0VmFsdWU/OiBhbnksXHJcbiAgdmFsdWU/OiBhbnksLy/nvJbovpHkuIvljp/lp4vmlbDlgLxcclxuICBkaWN0Q29kZT86IHN0cmluZywvL3NlbGVjdCDmqKHlvI/kuIvphY3nva5cclxuICBzcGFuPzogbnVtYmVyLC8v5pi+56S65a695bqmXHJcbiAgdmFsaWRhdG9ycz86IEF0ckZvcm1WYWxpZFtdLC8v6aqM6K+B5p2h5Lu2XHJcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW4gfCBzdHJpbmcsLy/pmpDmgKfmnaHku7Yg5peg6ZyA5aGr5YaZLCBzdHJpbmfnsbvlnovmoLzlvI/lkIxvcGVyYXRvclxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIGltYWdlT3B0cz86IEltYWdlT3B0cyxcclxuICBlZGl0Q29udGVudD86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXIsLy9lZGl0b3LmnInmlYhcclxuICBkaXNhYmxlPzogYm9vbGVhbixcclxuICBsc3Bhbj86IG51bWJlcixcclxuICBjc3Bhbj86IG51bWJlcixcclxuICByb3dzPzogbnVtYmVyLC8vdGV4dGFyZWEg5pi+56S66KGM5pWwXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy/mmL7npLrmk43kvZznrKYg5qC85byPIOWmgjpzdGF0dXN8ZXF8MFxyXG4gIGJ1dHRvbj86IGZvcm1CdXR0b24sXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuLFxyXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmd8RnVuY3Rpb24sXHJcbiAgZGljdExpc3Q/OiBDdXNEaWN0W10sXHJcbiAgbnpNb2RlPzogJ211bHRpcGxlJyB8ICd0YWdzJyB8ICdkZWZhdWx0JyxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiwgaWdub3JlRGljdExpc3Q/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gIGZpcnN0VGVtcD86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgbWluTnVtYmVyPzogYW55LFxyXG4gIG1heE51bWJlcj86IGFueSxcclxuICBub3ROdWxsPzogYm9vbGVhblxyXG4gIG56U2hvd1RpbWU/OiBib29sZWFuIHwgeyBuekZvcm1hdDogc3RyaW5nIH0sXHJcbiAgYnV0dG9ucz86IGZvcm1CdXR0b25bXSxcclxuICBuekNoZWNrZWRDaGlsZHJlbj86IHN0cmluZyxcclxuICBuelVuQ2hlY2tlZENoaWxkcmVuPzogc3RyaW5nLFxyXG4gIG56UHJlY2lzaW9uPzogbnVtYmVyLFxyXG4gIG56U3RlcD86IG51bWJlcixcclxuXHJcbiAgLyoqXHJcbiAgICog5qCR5b2i5qCR5b2i5o6n5Lu25piv5ZCm5bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICovXHJcbiAgZXhwYW5kQWxsPzpib29sZWFuLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIGJ0blR5cGU/OiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy8vL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCdcclxuICAgIHwgJ2lubmVySHRtbCcgfCAnaW1hZ2U2NCd8J3RlbXBSZWYnLC8v57G75Z6L77yaIOaWh+Wtl+OAgemTvuaOpeOAgeaTjeS9nFxyXG4gIGRpY3RDb2RlPzogc3RyaW5nLFxyXG4gIGlzU2hvdz86IGJvb2xlYW4sXHJcbiAgd2lkdGg/OiBzdHJpbmcsLy8xNTBweFxyXG4gIGFjdGlvbnM/OiBUYWJsZUFjdGlvbltdLFxyXG4gIGlzUm93U3Bhbj86IGJvb2xlYW4sXHJcbiAgaXNSaWdodD86IGJvb2xlYW5cclxuICBpc0xlZnQ/OiBib29sZWFuLFxyXG4gIGNvbG9yPzogY29sb3JPcGVyYXRvciwvL+minOiJslxyXG4gIGNvbG9yU2hvdz86IHN0cmluZyxcclxuICBpbm5lckh0bWxCYWNrPzogRnVuY3Rpb24sXHJcbiAgc3R5bGVDYWxsQmFjaz86IEZ1bmN0aW9uXHJcbiAgdGVtcFJlZj86IFRlbXBsYXRlUmVmPGFueT5cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXJ5SGVhZGVyIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgdHlwZTogJ2Nhc2NhZGVyJyB8ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ2RhdGVwaWNrZXInIHwgJ3NlbGVjdEN1cycgfCAnZGF0ZVJhbmdlJyB8ICdzZGF0ZScgfCAndHJlZVNlbGVjdCcgfCAnZGF5UmFuZ2UnLFxyXG4gIG56TW9kZT86ICdtdWx0aXBsZScgfCAndGFncycgfCAnZGVmYXVsdCcsXHJcbiAga2V5OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICBjb2RlPzogc3RyaW5nLFxyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gIHNwYW4/OiBudW1iZXIsXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsLy/lrZflhbjnvJbnoIFcclxuICBkaWN0TGlzdD86IEN1c0RpY3RbXSxcclxuICBkZWZhdWx0VmFsPzogYW55IC8vIOm7mOiupOWAvFxyXG4gIG1heFRhZ0NvdW50PzogbnVtYmVyLFxyXG4gIGxzcGFuPzogbnVtYmVyLFxyXG4gIGNzcGFuPzogbnVtYmVyLFxyXG4gIGRpc2FibGVDbGVhcj86IGJvb2xlYW4sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXVxyXG4gIC8qKlxyXG4gICAqIOagvOW8j1xyXG4gICAqIGNvbnZlcnQ6J2tleXxpZCx0aXRsZXxyZWFsTmFtZScodHJlZVNlbGVjdClcclxuICAgKiAgICB2YWx1ZXxpZCxsYWJlbHxuYW1lKHNlbGVjdEN1cylcclxuICAgKi9cclxuICBzZWxlY3RVcmw/OiB7IHVybDogc3RyaW5nLCBjb252ZXJ0OiBzdHJpbmcsIGlzTXVsdGlwbGU/OiBib29sZWFuIH0sLy9jb252ZXJ0OiBuZXdLZXl8b2xkS2V5LG5ld0tleXxvbGRLZXko5o6l5Y+j6L+U5Zue55qE5YC8KVxyXG4gIGljb24/OiB7IGlzU2hvdzogYm9vbGVhbiwgY29kZTogc3RyaW5nLCBpY29uOiBhbnkgfSxcclxuICBkYXRlTW9kZT86ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcicsXHJcbiAgbnpTaG93VGltZT86IGJvb2xlYW4gfCB7IG56Rm9ybWF0OiBzdHJpbmcgfSxcclxuICBuelNob3dOb3c/OiBib29sZWFuLFxyXG4gIGV4cGFuZEFsbD86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICB1cmw/OiBzdHJpbmcsXHJcbiAgZ1R5cGU/OiAnbm9ybWFsJyB8ICd1cGxvYWQnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAgZmlyc3REYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZ1xyXG4gIGNoaWxkcmVuPzogYW55LFxyXG4gIGlzU2VsZWN0PzogYm9vbGVhbi8vY2hlY2tCb3jpu5jorqTpgInkuK1cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEltYWdlT3B0cyB7XHJcbiAgbGltaXQ/OiBudW1iZXIsXHJcbiAgbnpTaXplPzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycgfCAnYnV0dG9uJyxcclxuICBuekZpbGVUeXBlPzogc3RyaW5nLFxyXG4gIGtlZXBOYW1lPzogYm9vbGVhblxyXG4gIGJ0bk5hbWU/OiBzdHJpbmdcclxuICBiZWZvcmVVcGxvYWQ/OmFueVxyXG4gIGN1c3RvbVJlcT86YW55XHJcbiAgc3BsaXRTdHI/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgZXF1aXBUZXN0RGF0YSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgaXRlbU5hbWU6IHN0cmluZ1xyXG4gIHpob3UxOiBudW1iZXJcclxuICB6aG91MjogbnVtYmVyXHJcbiAgemhvdTM6IG51bWJlclxyXG4gIHpob3U0OiBudW1iZXJcclxuICB6aG91NTogbnVtYmVyXHJcbiAgemhvdTY6IG51bWJlclxyXG4gIGlzV3JvbmcxPzogYm9vbGVhblxyXG4gIGlzV3JvbmcyPzogYm9vbGVhblxyXG4gIGlzV3JvbmczPzogYm9vbGVhblxyXG4gIGlzV3Jvbmc0PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc1PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc2PzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlbGVjdEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IFwibmdNb2RlbENoYW5nZVwiIHwgJ256T3BlbkNoYW5nZScsXHJcbiAgZGF0YT86IGFueSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUljb24ge1xyXG4gIC8qKiBUeXBlIGZvciBpY29uICovXHJcbiAgdHlwZTogJ2NsYXNzJyB8ICdpY29uJyB8ICdpY29uZm9udCcgfCAnaW1nJztcclxuICAvKiogVmFsdWUgZm9yIHRoZSBpY29uLCBjYW4gYmUgc2V0IENsYXNzIE5hbWUsIG56LWljb24gb2YgYG56VHlwZWAsIGltYWdlICovXHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGFudCBkZXNpZ24gaWNvbiwgZGVmYXVsdDogYG91dGxpbmVgICovXHJcbiAgdGhlbWU/OiAnb3V0bGluZScgfCAndHdvdG9uZScgfCAnZmlsbCc7XHJcbiAgLyoqIFJvdGF0ZSBpY29uIHdpdGggYW5pbWF0aW9uLCBkZWZhdWx0OiBgZmFsc2VgICovXHJcbiAgc3Bpbj86IGJvb2xlYW47XHJcbiAgLyoqIE9ubHkgc3VwcG9ydCB0aGUgdHdvLXRvbmUgaWNvbi4gU3BlY2lmaWMgdGhlIHByaW1hcnkgY29sb3IgKi9cclxuICB0d29Ub25lQ29sb3I/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGljb24gZnJvbSBpY29uZm9udCAqL1xyXG4gIGljb25mb250Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnUge1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgbGluaz86IHN0cmluZztcclxuICByZWFsTGluaz86IHN0cmluZztcclxuICBpc1NlbGVjdGVkPzogQm9vbGVhbjtcclxuICBpc09wZW4/OiBCb29sZWFuO1xyXG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcclxuICAvKiogSWNvbiBmb3IgdGhlIG1lbnUgaXRlbSwgb25seSB2YWxpZCBmb3IgdGhlIGZpcnN0IGxldmVsIG1lbnUgKi9cclxuICBpY29uPzogc3RyaW5nIHwgTWVudUljb24gfCBudWxsO1xyXG4gIC8qKiBCYWRnZXQgZm9yIHRoZSBtZW51IGl0ZW0gd2hlbiBgZ3JvdXBgIGlzIGB0cnVlYCAqL1xyXG4gIG9wZXJhdGlvbj86IHN0cmluZztcclxuICAvKiogV2hldGhlciBzaG9ydGN1dCBtZW51IGl0ZW0gKi9cclxuICBzZXE/OiBudW1iZXI7XHJcbiAgbGV2ZWw/OiBudW1iZXI7XHJcbiAgLyoqIFdoZXRlciBzaG9ydGN1dCBtZW51IHJvb3Qgbm9kZSAqL1xyXG4gIGxpbmtUeXBlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHJldXNlLCBuZWVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBgcmV1c2UtdGFiYCBjb21wb25lbnQgKi9cclxuICBjaGlsZHJlbj86IE1lbnVbXTtcclxuICBpc1Zpc2libGU/OiAnMCcgfCAnMSdcclxufVxyXG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Directive, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* 滚动滚动到底部时触发事件
|
|
5
|
-
*/
|
|
6
|
-
export class InfiniteScrollDirective {
|
|
7
|
-
constructor(elementRef) {
|
|
8
|
-
this.elementRef = elementRef;
|
|
9
|
-
this.appInfiniteScroll = new EventEmitter();
|
|
10
|
-
this._scrollHandler = () => this.onScroll();
|
|
11
|
-
// 监听滚动事件
|
|
12
|
-
this.elementRef.nativeElement.addEventListener('scroll', this._scrollHandler);
|
|
13
|
-
}
|
|
14
|
-
ngOnDestroy() {
|
|
15
|
-
// 移除滚动事件监听器
|
|
16
|
-
this.elementRef.nativeElement.removeEventListener('scroll', this._scrollHandler);
|
|
17
|
-
}
|
|
18
|
-
onScroll() {
|
|
19
|
-
const element = this.elementRef.nativeElement;
|
|
20
|
-
// 检查是否已滚动到底部
|
|
21
|
-
if (element.scrollTop + element.clientHeight >= element.scrollHeight - 5) { // 5px buffer
|
|
22
|
-
this.appInfiniteScroll.emit(); // 触发事件
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InfiniteScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: InfiniteScrollDirective, selector: "[appInfiniteScroll]", outputs: { appInfiniteScroll: "appInfiniteScroll" }, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InfiniteScrollDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[appInfiniteScroll]'
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { appInfiniteScroll: [{
|
|
34
|
-
type: Output
|
|
35
|
-
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvZGlyZWN0aXZlL0luZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUF3QixNQUFNLGVBQWUsQ0FBQzs7QUFLckY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFIekIsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RCxtQkFBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUc3QyxTQUFTO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsV0FBVztRQUNULFlBQVk7UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsYUFBYTtRQUNiLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYTtZQUN2RixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPO1NBQ3ZDO0lBQ0gsQ0FBQzsrR0FyQlUsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7K0VBTWtCLGlCQUFpQjtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcEluZmluaXRlU2Nyb2xsXSdcclxufSlcclxuLyoqXHJcbiAqIOa7muWKqOa7muWKqOWIsOW6lemDqOaXtuinpuWPkeS6i+S7tlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBhcHBJbmZpbml0ZVNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBwcml2YXRlIF9zY3JvbGxIYW5kbGVyID0gKCkgPT4gdGhpcy5vblNjcm9sbCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIC8vIOebkeWQrOa7muWKqOS6i+S7tlxyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIOenu+mZpOa7muWKqOS6i+S7tuebkeWQrOWZqFxyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5fc2Nyb2xsSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uU2Nyb2xsKCkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgLy8g5qOA5p+l5piv5ZCm5bey5rua5Yqo5Yiw5bqV6YOoXHJcbiAgICBpZiAoZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodCA+PSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIDUpIHsgLy8gNXB4IGJ1ZmZlclxyXG4gICAgICB0aGlzLmFwcEluZmluaXRlU2Nyb2xsLmVtaXQoKTsgLy8g6Kem5Y+R5LqL5Lu2XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { debounceTime } from "rxjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DebounceClickDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.time = 500;
|
|
7
|
-
this.debounceClick = new EventEmitter();
|
|
8
|
-
this.click$ = new EventEmitter();
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
this.subscription = this.click$.pipe(debounceTime(this.time)).subscribe(e => {
|
|
12
|
-
console.log('debounceClick debounceTime', event);
|
|
13
|
-
this.debounceClick.emit(e);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
ngOnDestroy() {
|
|
17
|
-
this.subscription.unsubscribe();
|
|
18
|
-
}
|
|
19
|
-
clickEvent(event) {
|
|
20
|
-
console.log('debounceClick', event);
|
|
21
|
-
event.preventDefault();
|
|
22
|
-
event.stopPropagation();
|
|
23
|
-
this.click$.emit(event);
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DebounceClickDirective, selector: "[debounceClick]", inputs: { time: "time" }, outputs: { debounceClick: "debounceClick" }, host: { listeners: { "click": "clickEvent($event)" } }, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DebounceClickDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[debounceClick]'
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters: () => [], propDecorators: { time: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], debounceClick: [{
|
|
36
|
-
type: Output
|
|
37
|
-
}], clickEvent: [{
|
|
38
|
-
type: HostListener,
|
|
39
|
-
args: ['click', ['$event']]
|
|
40
|
-
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtY2xpY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9kaXJlY3RpdmUvZGVib3VuY2UtY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUtsQyxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDO1FBTlMsU0FBSSxHQUFHLEdBQUcsQ0FBQztRQUNWLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUlaLENBQUM7SUFDakIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBeEJVLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO3dEQUVVLElBQUk7c0JBQVosS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQWlCQSxVQUFVO3NCQURoQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RlYm91bmNlQ2xpY2tdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVib3VuY2VDbGlja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3l7XHJcbiAgQElucHV0KCkgdGltZSA9IDUwMDtcclxuICBAT3V0cHV0KCkgZGVib3VuY2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjbGljayQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc3Vic2NyaXB0aW9uOmFueTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2xpY2skLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMudGltZSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ2RlYm91bmNlQ2xpY2sgZGVib3VuY2VUaW1lJyxldmVudCk7XHJcbiAgICAgIHRoaXMuZGVib3VuY2VDbGljay5lbWl0KGUpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgY2xpY2tFdmVudChldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnNvbGUubG9nKCdkZWJvdW5jZUNsaWNrJyxldmVudCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNsaWNrJC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class AtrErrorImgDirective {
|
|
4
|
-
constructor(elementRef) {
|
|
5
|
-
this.elementRef = elementRef;
|
|
6
|
-
this.errorImagSrc = "";
|
|
7
|
-
}
|
|
8
|
-
ImageError(event) {
|
|
9
|
-
if (this.errorImagSrc) {
|
|
10
|
-
event.src = this.errorImagSrc;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
event.src = 'https://atr-demo.oss-cn-hangzhou.aliyuncs.com/common/null.png';
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AtrErrorImgDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AtrErrorImgDirective, selector: "[atrErrorImg]", inputs: { errorImagSrc: ["atrErrorImg", "errorImagSrc"] }, host: { listeners: { "error": "ImageError($event.target)" } }, ngImport: i0 }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AtrErrorImgDirective, decorators: [{
|
|
20
|
-
type: Directive,
|
|
21
|
-
args: [{
|
|
22
|
-
selector: '[atrErrorImg]'
|
|
23
|
-
}]
|
|
24
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { errorImagSrc: [{
|
|
25
|
-
type: Input,
|
|
26
|
-
args: ['atrErrorImg']
|
|
27
|
-
}], ImageError: [{
|
|
28
|
-
type: HostListener,
|
|
29
|
-
args: ['error', ['$event.target']]
|
|
30
|
-
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaW1nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvZGlyZWN0aXZlL2Vycm9yLWltZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszRSxNQUFNLE9BQU8sb0JBQW9CO0lBRzdCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFEbkIsaUJBQVksR0FBVSxFQUFFLENBQUM7SUFDRixDQUFDO0lBRzlDLFVBQVUsQ0FBQyxLQUFTO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDakM7YUFBTTtZQUNILEtBQUssQ0FBQyxHQUFHLEdBQUcsK0RBQStELENBQUM7U0FDL0U7SUFDTCxDQUFDOytHQVpRLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO2lCQUM1QjsrRUFHeUIsWUFBWTtzQkFBakMsS0FBSzt1QkFBQyxhQUFhO2dCQUlwQixVQUFVO3NCQURULFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2F0ckVycm9ySW1nXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF0ckVycm9ySW1nRGlyZWN0aXZlICB7XHJcblxyXG4gICAgQElucHV0KCdhdHJFcnJvckltZycpIGVycm9ySW1hZ1NyYzogc3RyaW5nID1cIlwiO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2Vycm9yJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgICBJbWFnZUVycm9yKGV2ZW50OmFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmVycm9ySW1hZ1NyYykge1xyXG4gICAgICAgICAgICBldmVudC5zcmMgPSB0aGlzLmVycm9ySW1hZ1NyYztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBldmVudC5zcmMgPSAnaHR0cHM6Ly9hdHItZGVtby5vc3MtY24taGFuZ3pob3UuYWxpeXVuY3MuY29tL2NvbW1vbi9udWxsLnBuZyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class HqSpinDirective {
|
|
4
|
-
constructor(el, render) {
|
|
5
|
-
this.el = el;
|
|
6
|
-
this.render = render;
|
|
7
|
-
this.spinLoading = false;
|
|
8
|
-
this.text = null;
|
|
9
|
-
this.render.addClass(this.el.nativeElement, 'hq-spin-container');
|
|
10
|
-
this.loadingEle = this.render.createElement('div');
|
|
11
|
-
let dom1 = document.createElement('div');
|
|
12
|
-
this.loadingEle.append(dom1);
|
|
13
|
-
this.render.addClass(dom1, 'loader-03');
|
|
14
|
-
// this.render.addClass(this.loadingEle, 'loader-04');
|
|
15
|
-
}
|
|
16
|
-
ngOnChanges(changes) {
|
|
17
|
-
const { spinLoading, text } = changes;
|
|
18
|
-
if (text && text.currentValue) {
|
|
19
|
-
let dom = document.createElement('div');
|
|
20
|
-
dom.innerText = text.currentValue;
|
|
21
|
-
this.loadingEle.append(dom);
|
|
22
|
-
this.render.addClass(dom, 'loader-04');
|
|
23
|
-
}
|
|
24
|
-
if (spinLoading) {
|
|
25
|
-
if (spinLoading.currentValue) {
|
|
26
|
-
this.render.addClass(this.el.nativeElement, 'hq-spin-blur');
|
|
27
|
-
this.render.appendChild(this.el.nativeElement, this.loadingEle);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.render.removeClass(this.el.nativeElement, 'hq-spin-blur');
|
|
31
|
-
this.render.removeChild(this.el.nativeElement, this.loadingEle);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HqSpinDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: HqSpinDirective, selector: "[HqSpin]", inputs: { spinLoading: "spinLoading", text: "text" }, usesOnChanges: true, ngImport: i0 }); }
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HqSpinDirective, decorators: [{
|
|
39
|
-
type: Directive,
|
|
40
|
-
args: [{
|
|
41
|
-
selector: '[HqSpin]'
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { spinLoading: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], text: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHEtc3Bpbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL2RpcmVjdGl2ZS9ocS1zcGluLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBa0QsTUFBTSxlQUFlLENBQUM7O0FBS2hHLE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQW9CLEVBQWMsRUFBVSxNQUFpQjtRQUF6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUxwRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBTW5CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4QyxzREFBc0Q7SUFDeEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsV0FBVyxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNyQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzdCLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFBO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksV0FBVyxFQUFFO1lBRWYsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDakU7U0FDRjtJQUNILENBQUM7K0dBcENVLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckI7dUdBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW0hxU3Bpbl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIcVNwaW5EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBzcGluTG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHQgPSBudWxsO1xyXG5cclxuICBsb2FkaW5nRWxlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyOiBSZW5kZXJlcjIpIHtcclxuXHJcbiAgICB0aGlzLnJlbmRlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdocS1zcGluLWNvbnRhaW5lcicpO1xyXG4gICAgdGhpcy5sb2FkaW5nRWxlID0gdGhpcy5yZW5kZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgbGV0IGRvbTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMubG9hZGluZ0VsZS5hcHBlbmQoZG9tMSlcclxuICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKGRvbTEsICdsb2FkZXItMDMnKTtcclxuICAgIC8vIHRoaXMucmVuZGVyLmFkZENsYXNzKHRoaXMubG9hZGluZ0VsZSwgJ2xvYWRlci0wNCcpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBzcGluTG9hZGluZyx0ZXh0IH0gPSBjaGFuZ2VzO1xyXG4gICAgaWYgKHRleHQgJiYgdGV4dC5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgbGV0IGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBkb20uaW5uZXJUZXh0ID0gdGV4dC5jdXJyZW50VmFsdWVcclxuICAgICAgdGhpcy5sb2FkaW5nRWxlLmFwcGVuZChkb20pXHJcbiAgICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKGRvbSwgJ2xvYWRlci0wNCcpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNwaW5Mb2FkaW5nKSB7XHJcblxyXG4gICAgICBpZiAoc3BpbkxvYWRpbmcuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaHEtc3Bpbi1ibHVyJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmxvYWRpbmdFbGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVuZGVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hxLXNwaW4tYmx1cicpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5sb2FkaW5nRWxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { MenuService } from "../services/menu.service";
|
|
4
|
-
import { ToolsUtil } from "../utils/ToolsUtil";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class AtrRoleDirective {
|
|
7
|
-
set atrRole(condition) {
|
|
8
|
-
if (ToolsUtil.isNull(condition)) {
|
|
9
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
10
|
-
this.hasView = true;
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (condition == "any") {
|
|
14
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
15
|
-
this.hasView = true;
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
let curPath = this.getRouterUrl();
|
|
19
|
-
this.menuService.getCurMenu(curPath).subscribe(result => {
|
|
20
|
-
let curMenu = result;
|
|
21
|
-
let isExited = false;
|
|
22
|
-
if (curMenu && curMenu != null && curMenu.operation) {
|
|
23
|
-
let operations = curMenu.operation.split(",");
|
|
24
|
-
for (let operation of operations) {
|
|
25
|
-
if (operation == condition) {
|
|
26
|
-
isExited = true;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (isExited && !this.hasView) {
|
|
32
|
-
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
33
|
-
this.hasView = true;
|
|
34
|
-
}
|
|
35
|
-
else if (!condition && this.hasView) {
|
|
36
|
-
this.viewContainer.clear();
|
|
37
|
-
this.hasView = false;
|
|
38
|
-
}
|
|
39
|
-
}, error => {
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
constructor(injector, render, templateRef, viewContainer) {
|
|
43
|
-
this.injector = injector;
|
|
44
|
-
this.render = render;
|
|
45
|
-
this.templateRef = templateRef;
|
|
46
|
-
this.viewContainer = viewContainer;
|
|
47
|
-
this.hasView = false;
|
|
48
|
-
}
|
|
49
|
-
ngOnInit() {
|
|
50
|
-
}
|
|
51
|
-
get menuService() {
|
|
52
|
-
return this.injector.get(MenuService);
|
|
53
|
-
}
|
|
54
|
-
getRouterUrl() {
|
|
55
|
-
return this.injector.get(Router).url;
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AtrRoleDirective, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AtrRoleDirective, selector: "[atrRole]", inputs: { atrRole: "atrRole" }, ngImport: i0 }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AtrRoleDirective, decorators: [{
|
|
61
|
-
type: Directive,
|
|
62
|
-
args: [{
|
|
63
|
-
selector: '[atrRole]'
|
|
64
|
-
}]
|
|
65
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { atrRole: [{
|
|
66
|
-
type: Input,
|
|
67
|
-
args: ['atrRole']
|
|
68
|
-
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9jb3JlL2RpcmVjdGl2ZS9yb2xlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNkQsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0IsSUFDSSxPQUFPLENBQUMsU0FBaUI7UUFDM0IsSUFBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE9BQU07U0FDUDtRQUVELElBQUcsU0FBUyxJQUFJLEtBQUssRUFBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUM1QyxNQUFNLENBQUMsRUFBRTtZQUNQLElBQUksT0FBTyxHQUFTLE1BQU0sQ0FBQztZQUMzQixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBRyxPQUFPLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFDO2dCQUNqRCxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUMsS0FBSSxJQUFJLFNBQVMsSUFBSSxVQUFVLEVBQUM7b0JBQzVCLElBQUcsU0FBUyxJQUFJLFNBQVMsRUFBQzt3QkFDeEIsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFDaEIsTUFBTTtxQkFDUDtpQkFDSjthQUNGO1lBQ0QsSUFBRyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDckI7aUJBQUssSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN0QjtRQUNILENBQUMsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUVWLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQW9CLFFBQWtCLEVBQVMsTUFBaUIsRUFBVSxXQUE2QixFQUM3RixhQUErQjtRQURyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3RixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUEzQ2pDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUE2Q3hCLENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztJQUNELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7K0dBeERVLGdCQUFnQjttR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO2lCQUN0Qjs4SkFNSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIEluamVjdG9yICxPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge01lbnVTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbWVudS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TWVudX0gZnJvbSBcIi4uL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXRyUm9sZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHJSb2xlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICBwcml2YXRlIGhhc1ZpZXcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCdhdHJSb2xlJylcclxuICBzZXQgYXRyUm9sZShjb25kaXRpb246IHN0cmluZykge1xyXG4gICAgaWYoVG9vbHNVdGlsLmlzTnVsbChjb25kaXRpb24pKXtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgdGhpcy5oYXNWaWV3ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgaWYoY29uZGl0aW9uID09IFwiYW55XCIpe1xyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICB0aGlzLmhhc1ZpZXcgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgY3VyUGF0aCA9IHRoaXMuZ2V0Um91dGVyVXJsKCk7XHJcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLmdldEN1ck1lbnUoY3VyUGF0aCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXN1bHQgPT4ge1xyXG4gICAgICAgIGxldCBjdXJNZW51Ok1lbnUgPSAgcmVzdWx0O1xyXG4gICAgICAgIGxldCBpc0V4aXRlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmKGN1ck1lbnUgJiYgY3VyTWVudSAhPSBudWxsICYmIGN1ck1lbnUub3BlcmF0aW9uKXtcclxuICAgICAgICAgIGxldCBvcGVyYXRpb25zID0gY3VyTWVudS5vcGVyYXRpb24uc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgZm9yKGxldCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucyl7XHJcbiAgICAgICAgICAgICAgaWYob3BlcmF0aW9uID09IGNvbmRpdGlvbil7XHJcbiAgICAgICAgICAgICAgICBpc0V4aXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGlzRXhpdGVkICYmICF0aGlzLmhhc1ZpZXcpe1xyXG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgICAgIHRoaXMuaGFzVmlldyA9IHRydWU7XHJcbiAgICAgICAgfWVsc2UgaWYgKCFjb25kaXRpb24gJiYgdGhpcy5oYXNWaWV3KXtcclxuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgICAgdGhpcy5oYXNWaWV3ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LGVycm9yID0+e1xyXG5cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IscHJpdmF0ZSByZW5kZXIgOlJlbmRlcmVyMiAscHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0IG1lbnVTZXJ2aWNlKCk6IE1lbnVTZXJ2aWNle1xyXG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KE1lbnVTZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb3V0ZXJVcmwoKTpzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKS51cmw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpErrorResponse, HttpResponseBase, HttpResponse } from '@angular/common/http';
|
|
3
|
-
import { Observable, of, throwError } from 'rxjs';
|
|
4
|
-
import { mergeMap, catchError } from 'rxjs/operators';
|
|
5
|
-
import { Router } from '@angular/router';
|
|
6
|
-
import { NzNotificationService } from 'ng-zorro-antd/notification';
|
|
7
|
-
import { NzMessageService } from 'ng-zorro-antd/message';
|
|
8
|
-
import { LocalStorageUtil } from "../utils/localstorage.util";
|
|
9
|
-
import { AtrReuseStrategy } from "../routereuse/atr-reuse-strategy";
|
|
10
|
-
import { MenuService } from "../services/menu.service";
|
|
11
|
-
import { atr_static_datas } from "../base/atr-common";
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
const CODEMESSAGE = {
|
|
14
|
-
200: '服务器成功返回请求的数据。',
|
|
15
|
-
201: '新建或修改数据成功。',
|
|
16
|
-
202: '一个请求已经进入后台排队(异步任务)。',
|
|
17
|
-
204: '删除数据成功。',
|
|
18
|
-
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
|
|
19
|
-
401: '用户没有权限(令牌、用户名、密码错误)。',
|
|
20
|
-
403: '用户得到授权,但是访问是被禁止的。',
|
|
21
|
-
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
|
|
22
|
-
406: '请求的格式不可得。',
|
|
23
|
-
410: '请求的资源被永久删除,且不会再得到的。',
|
|
24
|
-
422: '当创建一个对象时,发生一个验证错误。',
|
|
25
|
-
500: '服务器发生错误,请检查服务器。',
|
|
26
|
-
502: '网关错误。',
|
|
27
|
-
503: '服务不可用,服务器暂时过载或维护。',
|
|
28
|
-
504: '网关超时。',
|
|
29
|
-
};
|
|
30
|
-
export class BaseInterceptor {
|
|
31
|
-
constructor(injector) {
|
|
32
|
-
this.injector = injector;
|
|
33
|
-
}
|
|
34
|
-
get notification() {
|
|
35
|
-
return this.injector.get(NzNotificationService);
|
|
36
|
-
}
|
|
37
|
-
get message() {
|
|
38
|
-
return this.injector.get(NzMessageService);
|
|
39
|
-
}
|
|
40
|
-
get menuService() {
|
|
41
|
-
return this.injector.get(MenuService);
|
|
42
|
-
}
|
|
43
|
-
goTo(url, isClearCache) {
|
|
44
|
-
// console.log("需要跳转到页面:")
|
|
45
|
-
// console.log(url);
|
|
46
|
-
setTimeout(() => this.injector.get(Router).navigateByUrl(url));
|
|
47
|
-
if (isClearCache) {
|
|
48
|
-
setTimeout(() => AtrReuseStrategy.deleteAll(), 50);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
checkStatus(ev) {
|
|
52
|
-
if ((ev.status >= 200 && ev.status < 300) || ev.status === 401) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
// console.log(ev.status);
|
|
56
|
-
// const errortext = CODEMESSAGE[ev.status] || ev.statusText;
|
|
57
|
-
this.message.error('网络错误,请稍后重试:' + ev.status);
|
|
58
|
-
}
|
|
59
|
-
handleData(ev, noTip = false) {
|
|
60
|
-
this.checkStatus(ev);
|
|
61
|
-
// 业务处理:一些通用操作
|
|
62
|
-
switch (ev.status) {
|
|
63
|
-
case 200:
|
|
64
|
-
// TODO status
|
|
65
|
-
// 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理
|
|
66
|
-
// 例如响应内容:
|
|
67
|
-
// 错误内容:{ status: 1, msg: '非法参数' }
|
|
68
|
-
// 正确内容:{ status: 0, response: { } }
|
|
69
|
-
// 则以下代码片断可直接适用
|
|
70
|
-
if (ev instanceof HttpResponse) {
|
|
71
|
-
const body = ev.body;
|
|
72
|
-
if (body && body.status === 401) {
|
|
73
|
-
if (!noTip) {
|
|
74
|
-
this.notification.error(`未登录或登录已过期,请重新登录。`, ``, {
|
|
75
|
-
nzKey: 'outTime'
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// TODO 清空 token 信息
|
|
79
|
-
LocalStorageUtil.clearUs();
|
|
80
|
-
this.menuService.clear();
|
|
81
|
-
this.goTo('/p/login', true);
|
|
82
|
-
}
|
|
83
|
-
else if (body && body.status === 1024) {
|
|
84
|
-
// 或者依然保持完整的格式
|
|
85
|
-
if (!noTip) {
|
|
86
|
-
this.message.error(body.message);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else if (body && body.status === 1025) {
|
|
90
|
-
// 或者依然保持完整的格式
|
|
91
|
-
if (!noTip) {
|
|
92
|
-
this.message.error(`参数为空。`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else if (body && body.status === 503) {
|
|
96
|
-
// 或者依然保持完整的格式
|
|
97
|
-
if (!noTip) {
|
|
98
|
-
this.message.error(body.message);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else if (body && body.status === 204) {
|
|
102
|
-
// 或者依然保持完整的格式
|
|
103
|
-
if (!noTip) {
|
|
104
|
-
this.message.success(body.message);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else if (body && body.status === 201) {
|
|
108
|
-
// 或者依然保持完整的格式
|
|
109
|
-
if (!noTip) {
|
|
110
|
-
this.message.success(body.message);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return of(ev);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
break;
|
|
118
|
-
case 401:
|
|
119
|
-
this.notification.error(`未登录或登录已过期,请重新登录。`, ``, {
|
|
120
|
-
nzKey: 'outTime'
|
|
121
|
-
});
|
|
122
|
-
// TODO 清空 token 信息
|
|
123
|
-
// this.goTo('/p/login',false);
|
|
124
|
-
break;
|
|
125
|
-
case 403:
|
|
126
|
-
case 404:
|
|
127
|
-
case 500:
|
|
128
|
-
this.goTo(`/exception/${ev.status}`, false);
|
|
129
|
-
break;
|
|
130
|
-
default:
|
|
131
|
-
if (ev instanceof HttpErrorResponse) {
|
|
132
|
-
// console.warn('未可知错误,大部分是由于后端不支持CORS或无效配置引起', ev);
|
|
133
|
-
return throwError(ev);
|
|
134
|
-
}
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
return of(ev);
|
|
138
|
-
}
|
|
139
|
-
intercept(req, next) {
|
|
140
|
-
if (!atr_static_datas.SERVER_URL) {
|
|
141
|
-
alert('请配置ip atr_static_datas.SERVER_URL');
|
|
142
|
-
return new Observable();
|
|
143
|
-
}
|
|
144
|
-
// 统一加上服务端前缀
|
|
145
|
-
let url = req.url;
|
|
146
|
-
if (!url.startsWith('https://') && !url.startsWith('http://')) {
|
|
147
|
-
url = atr_static_datas.SERVER_URL + url;
|
|
148
|
-
req = req.clone({ url });
|
|
149
|
-
}
|
|
150
|
-
let noTip = req.headers.get("noTip");
|
|
151
|
-
return next.handle(req).pipe(mergeMap((event) => {
|
|
152
|
-
// 允许统一对请求错误处理
|
|
153
|
-
if (event instanceof HttpResponseBase)
|
|
154
|
-
return this.handleData(event, noTip == "1");
|
|
155
|
-
// 若一切都正常,则后续操作
|
|
156
|
-
return of(event);
|
|
157
|
-
}), catchError((err) => this.handleData(err, noTip == "1")));
|
|
158
|
-
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
160
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseInterceptor }); }
|
|
161
|
-
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseInterceptor, decorators: [{
|
|
163
|
-
type: Injectable
|
|
164
|
-
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvaW50ZXJjZXB0b3IvYmFzZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBd0QsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDNUosT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFHLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFcEQsTUFBTSxXQUFXLEdBQUc7SUFDaEIsR0FBRyxFQUFFLGVBQWU7SUFDcEIsR0FBRyxFQUFFLFlBQVk7SUFDakIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSw2QkFBNkI7SUFDbEMsR0FBRyxFQUFFLHNCQUFzQjtJQUMzQixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLEdBQUcsRUFBRSw0QkFB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QUFDO1lBQ2xGLGVBQWU7WUFDZixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7K0dBN0hNLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUmVzcG9uc2VCYXNlLCBIdHRwUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiAsdGhyb3dFcnJvciAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE56Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbm90aWZpY2F0aW9uJztcclxuaW1wb3J0IHtOek1lc3NhZ2VTZXJ2aWNlfSBmcm9tICduZy16b3Jyby1hbnRkL21lc3NhZ2UnO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gXCIuLi91dGlscy9sb2NhbHN0b3JhZ2UudXRpbFwiO1xyXG5pbXBvcnQge0F0clJldXNlU3RyYXRlZ3l9IGZyb20gXCIuLi9yb3V0ZXJldXNlL2F0ci1yZXVzZS1zdHJhdGVneVwiO1xyXG5pbXBvcnQge01lbnVTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbWVudS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7YXRyX3N0YXRpY19kYXRhc30gZnJvbSBcIi4uL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5cclxuY29uc3QgQ09ERU1FU1NBR0UgPSB7XHJcbiAgICAyMDA6ICfmnI3liqHlmajmiJDlip/ov5Tlm57or7fmsYLnmoTmlbDmja7jgIInLFxyXG4gICAgMjAxOiAn5paw5bu65oiW5L+u5pS55pWw5o2u5oiQ5Yqf44CCJyxcclxuICAgIDIwMjogJ+S4gOS4quivt+axguW3sue7j+i/m+WFpeWQjuWPsOaOkumYn++8iOW8guatpeS7u+WKoe+8ieOAgicsXHJcbiAgICAyMDQ6ICfliKDpmaTmlbDmja7miJDlip/jgIInLFxyXG4gICAgNDAwOiAn5Y+R5Ye655qE6K+35rGC5pyJ6ZSZ6K+v77yM5pyN5Yqh5Zmo5rKh5pyJ6L+b6KGM5paw5bu65oiW5L+u5pS55pWw5o2u55qE5pON5L2c44CCJyxcclxuICAgIDQwMTogJ+eUqOaIt+ayoeacieadg+mZkO+8iOS7pOeJjOOAgeeUqOaIt+WQjeOAgeWvhueggemUmeivr++8ieOAgicsXHJcbiAgICA0MDM6ICfnlKjmiLflvpfliLDmjojmnYPvvIzkvYbmmK/orr/pl67mmK/ooqvnpoHmraLnmoTjgIInLFxyXG4gICAgNDA0OiAn5Y+R5Ye655qE6K+35rGC6ZKI5a+555qE5piv5LiN5a2Y5Zyo55qE6K6w5b2V77yM5pyN5Yqh5Zmo5rKh5pyJ6L+b6KGM5pON5L2c44CCJyxcclxuICAgIDQwNjogJ+ivt+axgueahOagvOW8j+S4jeWPr+W+l+OAgicsXHJcbiAgICA0MTA6ICfor7fmsYLnmoTotYTmupDooqvmsLjkuYXliKDpmaTvvIzkuJTkuI3kvJrlho3lvpfliLDnmoTjgIInLFxyXG4gICAgNDIyOiAn5b2T5Yib5bu65LiA5Liq5a+56LGh5pe277yM5Y+R55Sf5LiA5Liq6aqM6K+B6ZSZ6K+v44CCJyxcclxuICAgIDUwMDogJ+acjeWKoeWZqOWPkeeUn+mUmeivr++8jOivt+ajgOafpeacjeWKoeWZqOOAgicsXHJcbiAgICA1MDI6ICfnvZHlhbPplJnor6/jgIInLFxyXG4gICAgNTAzOiAn5pyN5Yqh5LiN5Y+v55So77yM5pyN5Yqh5Zmo5pqC5pe26L+H6L295oiW57u05oqk44CCJyxcclxuICAgIDUwNDogJ+e9keWFs+i2heaXtuOAgicsXHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3J7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuICAgIHByaXZhdGUgZ2V0IG5vdGlmaWNhdGlvbigpOiBOek5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChOek5vdGlmaWNhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBnZXQgbWVzc2FnZSgpOiBOek1lc3NhZ2VTZXJ2aWNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoTnpNZXNzYWdlU2VydmljZSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldCBtZW51U2VydmljZSgpOiBNZW51U2VydmljZXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoTWVudVNlcnZpY2UpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnb1RvKHVybDogc3RyaW5nLGlzQ2xlYXJDYWNoZTpib29sZWFuKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZyA6KaB6Lez6L2s5Yiw6aG16Z2i77yaXCIpXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKS5uYXZpZ2F0ZUJ5VXJsKHVybCkpO1xyXG4gICAgICBpZihpc0NsZWFyQ2FjaGUpe1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PiAgQXRyUmV1c2VTdHJhdGVneS5kZWxldGVBbGwoKSw1MCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrU3RhdHVzKGV2OiBIdHRwUmVzcG9uc2VCYXNlKSB7XHJcbiAgICAgICAgaWYgKChldi5zdGF0dXMgPj0gMjAwICYmIGV2LnN0YXR1cyA8IDMwMCkgfHwgZXYuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coZXYuc3RhdHVzKTtcclxuICAgICAgICAvLyBjb25zdCBlcnJvcnRleHQgPSBDT0RFTUVTU0FHRVtldi5zdGF0dXNdIHx8IGV2LnN0YXR1c1RleHQ7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlLmVycm9yKCfnvZHnu5zplJnor68s6K+356iN5ZCO6YeN6K+V77yaJyArIGV2LnN0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGhhbmRsZURhdGEoZXY6IEh0dHBSZXNwb25zZUJhc2Usbm9UaXAgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja1N0YXR1cyhldik7XHJcbiAgICAgICAgLy8g5Lia5Yqh5aSE55CG77ya5LiA5Lqb6YCa55So5pON5L2cXHJcbiAgICAgICAgc3dpdGNoIChldi5zdGF0dXMpIHtcclxuICAgICAgICAgIGNhc2UgMjAwOlxyXG4gICAgICAgICAgICAvLyBUT0RPIHN0YXR1c1xyXG4gICAgICAgICAgICAvLyDkuJrliqHlsYLnuqfplJnor6/lpITnkIbvvIzku6XkuIvmmK/lgYflrppyZXN0ZnVs5pyJ5LiA5aWX57uf5LiA6L6T5Ye65qC85byP77yI5oyH5LiN566h5oiQ5Yqf5LiO5ZCm6YO95pyJ55u45bqU55qE5pWw5o2u5qC85byP77yJ5oOF5Ya15LiL6L+b6KGM5aSE55CGXHJcbiAgICAgICAgICAgIC8vIOS+i+WmguWTjeW6lOWGheWuue+8mlxyXG4gICAgICAgICAgICAvLyAg6ZSZ6K+v5YaF5a6577yaeyBzdGF0dXM6IDEsIG1zZzogJ+mdnuazleWPguaVsCcgfVxyXG4gICAgICAgICAgICAvLyAg5q2j56Gu5YaF5a6577yaeyBzdGF0dXM6IDAsIHJlc3BvbnNlOiB7ICB9IH1cclxuICAgICAgICAgICAgLy8g5YiZ5Lul5LiL5Luj56CB54mH5pat5Y+v55u05o6l6YCC55SoXHJcbiAgICAgICAgICAgIGlmIChldiBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keTogYW55ID0gZXYuYm9keTtcclxuICAgICAgICAgICAgICAgIGlmIChib2R5ICYmIGJvZHkuc3RhdHVzID09PSA0MDEgKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKCFub1RpcCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOacqueZu+W9leaIlueZu+W9leW3sui/h+acn++8jOivt+mHjeaWsOeZu+W9leOAgmAsIGBgLHtcclxuICAgICAgICAgICAgICAgICAgICAgIG56S2V5OiAnb3V0VGltZSdcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAvLyBUT0RPIOa4heepuiB0b2tlbiDkv6Hmga9cclxuICAgICAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlVXRpbC5jbGVhclVzKClcclxuICAgICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdvVG8oJy9wL2xvZ2luJyx0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZihib2R5ICYmIGJvZHkuc3RhdHVzID09PSAxMDI0KXtcclxuICAgICAgICAgICAgICAgICAgLy8g5oiW6ICF5L6d54S25L+d5oyB5a6M5pW055qE5qC85byPXHJcbiAgICAgICAgICAgICAgICAgIGlmKCFub1RpcCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZS5lcnJvcihib2R5Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYm9keSAmJiBib2R5LnN0YXR1cyA9PT0gMTAyNSl7XHJcbiAgICAgICAgICAgICAgICAgIC8vIOaIluiAheS+neeEtuS/neaMgeWujOaVtOeahOagvOW8j1xyXG4gICAgICAgICAgICAgICAgICBpZighbm9UaXApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoYOWPguaVsOS4uuepuuOAgmApO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYm9keSAmJiBib2R5LnN0YXR1cyA9PT0gNTAzKXtcclxuICAgICAgICAgICAgICAgICAgLy8g5oiW6ICF5L6d54S25L+d5oyB5a6M5pW055qE5qC85byPXHJcbiAgICAgICAgICAgICAgICAgIGlmKCFub1RpcCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZS5lcnJvcihib2R5Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZihib2R5ICYmIGJvZHkuc3RhdHVzID09PSAyMDQpe1xyXG4gICAgICAgICAgICAgICAgICAvLyDmiJbogIXkvp3nhLbkv53mjIHlrozmlbTnmoTmoLzlvI9cclxuICAgICAgICAgICAgICAgICAgaWYoIW5vVGlwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlLnN1Y2Nlc3MoYm9keS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoYm9keSAmJiBib2R5LnN0YXR1cyA9PT0gMjAxKXtcclxuICAgICAgICAgICAgICAgICAgLy8g5oiW6ICF5L6d54S25L+d5oyB5a6M5pW055qE5qC85byPXHJcbiAgICAgICAgICAgICAgICAgIGlmKCFub1RpcCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZS5zdWNjZXNzKGJvZHkubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXYpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA0MDE6XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLmVycm9yKGDmnKrnmbvlvZXmiJbnmbvlvZXlt7Lov4fmnJ/vvIzor7fph43mlrDnmbvlvZXjgIJgLCBgYCx7XHJcbiAgICAgICAgICAgICAgbnpLZXk6ICdvdXRUaW1lJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8gVE9ETyDmuIXnqbogdG9rZW4g5L+h5oGvXHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLmdvVG8oJy9wL2xvZ2luJyxmYWxzZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA0MDM6XHJcbiAgICAgICAgICBjYXNlIDQwNDpcclxuICAgICAgICAgIGNhc2UgNTAwOlxyXG4gICAgICAgICAgICB0aGlzLmdvVG8oYC9leGNlcHRpb24vJHtldi5zdGF0dXN9YCxmYWxzZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGV2IGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ+acquWPr+efpemUmeivr++8jOWkp+mDqOWIhuaYr+eUseS6juWQjuerr+S4jeaUr+aMgUNPUlPmiJbml6DmlYjphY3nva7lvJXotbcnLCBldik7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YoZXYpO1xyXG4gICAgICB9XHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgaWYoIWF0cl9zdGF0aWNfZGF0YXMuU0VSVkVSX1VSTCl7XHJcbiAgICAgICAgYWxlcnQoJ+ivt+mFjee9rmlwIGF0cl9zdGF0aWNfZGF0YXMuU0VSVkVSX1VSTCcpXHJcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgICAgICAvLyDnu5/kuIDliqDkuIrmnI3liqHnq6/liY3nvIBcclxuICAgICAgICBsZXQgdXJsID0gcmVxLnVybDtcclxuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdodHRwczovLycpICYmICF1cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpKSB7XHJcbiAgICAgICAgICB1cmwgPSBhdHJfc3RhdGljX2RhdGFzLlNFUlZFUl9VUkwgKyB1cmw7XHJcbiAgICAgICAgICByZXEgPSByZXEuY2xvbmUoeyB1cmwgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICBsZXQgbm9UaXAgPSByZXEuaGVhZGVycy5nZXQoXCJub1RpcFwiKTtcclxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICAgICAgbWVyZ2VNYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8g5YWB6K6457uf5LiA5a+56K+35rGC6ZSZ6K+v5aSE55CGXHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZUJhc2UpIHJldHVybiB0aGlzLmhhbmRsZURhdGEoZXZlbnQsbm9UaXAgPT0gXCIxXCIpO1xyXG4gICAgICAgICAgICAvLyDoi6XkuIDliIfpg73mraPluLjvvIzliJnlkI7nu63mk43kvZxcclxuICAgICAgICAgICAgcmV0dXJuIG9mKGV2ZW50KTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVEYXRhKGVycixub1RpcCA9PSBcIjFcIikpLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxufVxyXG4iXX0=
|