@yelon/bis 16.0.2 → 16.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2022/layout/layout-basic/interface.mjs +2 -7
  2. package/esm2022/layout/layout-basic/layout-basic.component.mjs +83 -54
  3. package/esm2022/layout/layout-nav/index.mjs +1 -2
  4. package/esm2022/layout/layout-nav/layout-nav-application.component.mjs +36 -33
  5. package/esm2022/layout/layout-nav/layout-nav-group.component.mjs +82 -77
  6. package/esm2022/layout/layout-nav/layout-nav-tile.component.mjs +3 -3
  7. package/esm2022/layout/widgets/yunzai-clear-storage.component.mjs +3 -3
  8. package/esm2022/layout/widgets/yunzai-fullscreen.component.mjs +3 -3
  9. package/esm2022/layout/widgets/yunzai-i18n.component.mjs +3 -3
  10. package/esm2022/layout/widgets/yunzai-notify.component.mjs +3 -3
  11. package/esm2022/layout/widgets/yunzai-theme-btn.component.mjs +3 -3
  12. package/esm2022/layout/widgets/yunzai-user.component.mjs +19 -19
  13. package/esm2022/layout/yunzai-act.guard.mjs +12 -12
  14. package/esm2022/layout/yunzai-auth.service.mjs +27 -95
  15. package/esm2022/layout/yunzai-default.interceptor.mjs +8 -16
  16. package/esm2022/layout/yunzai-i18n.service.mjs +15 -16
  17. package/esm2022/layout/yunzai-layout.module.mjs +10 -9
  18. package/esm2022/layout/yunzai-startup.service.mjs +26 -35
  19. package/fesm2022/layout.mjs +287 -336
  20. package/fesm2022/layout.mjs.map +1 -1
  21. package/layout/layout-basic/interface.d.ts +1 -15
  22. package/layout/layout-basic/layout-basic.component.d.ts +3 -6
  23. package/layout/layout-nav/index.d.ts +0 -1
  24. package/layout/layout-nav/layout-nav-application.component.d.ts +2 -4
  25. package/layout/layout-nav/layout-nav-group.component.d.ts +2 -4
  26. package/layout/widgets/yunzai-user.component.d.ts +1 -3
  27. package/layout/yunzai-act.guard.d.ts +1 -3
  28. package/layout/yunzai-auth.service.d.ts +2 -4
  29. package/layout/yunzai-i18n.service.d.ts +1 -3
  30. package/layout/yunzai-layout.module.d.ts +3 -2
  31. package/layout/yunzai-startup.service.d.ts +7 -10
  32. package/package.json +11 -11
  33. package/esm2022/layout/layout-nav/types.mjs +0 -2
  34. package/layout/layout-nav/types.d.ts +0 -15
@@ -80,7 +80,7 @@ class YunzaiDefaultInterceptor {
80
80
  }, 5000);
81
81
  }
82
82
  reAttachToken(req) {
83
- const token = this.tokenSrv.get()?.token;
83
+ const token = this.tokenSrv.get()?.access_token;
84
84
  return req.clone({
85
85
  setHeaders: {
86
86
  Authorization: `Bearer ${token}`
@@ -90,11 +90,10 @@ class YunzaiDefaultInterceptor {
90
90
  refreshTokenRequest() {
91
91
  const model = this.tokenSrv.get();
92
92
  const form = new FormData();
93
- form.set('refresh_token', model?.refreshToken);
93
+ form.set('refresh_token', model?.refresh_token);
94
94
  form.set('grant_type', 'refresh_token');
95
95
  form.set('scope', 'webapp');
96
- log('yz.default.interceptor: use the refresh token to request a new token', model?.refreshToken);
97
- // return this.http.post(`/auth/user/token/refresh?_allow_anonymous=true`, form);
96
+ log('yz.default.interceptor: use the refresh token to request a new token', model?.refresh_token);
98
97
  return this.http.post(`/auth/oauth/getOrCreateToken/webapp`, form);
99
98
  }
100
99
  tryRefreshToken(ev, req, next) {
@@ -114,14 +113,7 @@ class YunzaiDefaultInterceptor {
114
113
  return this.refreshTokenRequest().pipe(switchMap(res => {
115
114
  log('yz.default.interceptor: refresh token accessed -> ', res);
116
115
  // 重新保存新 token
117
- const { access_token, expires_in, refresh_token, scope, token_type } = res;
118
- this.tokenSrv.set({
119
- token: access_token,
120
- expired: expires_in,
121
- refreshToken: refresh_token,
122
- tokenType: token_type,
123
- scope
124
- });
116
+ this.tokenSrv.set(res);
125
117
  // 通知后续请求继续执行
126
118
  this.refreshToking = false;
127
119
  this.refreshToken$.next(res);
@@ -199,11 +191,11 @@ class YunzaiDefaultInterceptor {
199
191
  return of(ev);
200
192
  }), catchError((err) => this.handleData(err, newReq, next)));
201
193
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiDefaultInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiDefaultInterceptor }); }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiDefaultInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
195
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiDefaultInterceptor }); }
204
196
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiDefaultInterceptor, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiDefaultInterceptor, decorators: [{
206
198
  type: Injectable
207
199
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
208
200
  export { YunzaiDefaultInterceptor as YzDefaultInterceptor, YunzaiDefaultInterceptor };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWRlZmF1bHQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3l1bnphaS1kZWZhdWx0LmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxpQkFBaUIsRUFFakIsWUFBWSxFQUNaLGdCQUFnQixFQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxILE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQXdCLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTlDLE1BQU0sV0FBVyxHQUE4QjtJQUM3QyxHQUFHLEVBQUUsZUFBZTtJQUNwQixHQUFHLEVBQUUsWUFBWTtJQUNqQixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQyxHQUFHLEVB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QUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztJQUNKLENBQUM7OEdBdE1HLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QixVQUFVOztBQTBNWCxPQUFPLEVBQUUsd0JBQXdCLElBQUksb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFdmVudCxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwSGVhZGVycyxcbiAgSHR0cFJlc3BvbnNlLFxuICBIdHRwUmVzcG9uc2VCYXNlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBvZiwgdGhyb3dFcnJvciwgY2F0Y2hFcnJvciwgZmlsdGVyLCBtZXJnZU1hcCwgc3dpdGNoTWFwLCB0YWtlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFlBX1NFUlZJQ0VfVE9LRU4sIElUb2tlblNlcnZpY2UsIEFMTE9XX0FOT05ZTU9VUyB9IGZyb20gJ0B5ZWxvbi9hdXRoJztcbmltcG9ydCB7IFlVTlpBSV9JMThOX1RPS0VOLCBfSHR0cENsaWVudCB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBXSU5ET1cgfSBmcm9tICdAeWVsb24vdXRpbCc7XG5pbXBvcnQgeyBZdW56YWlCdXNpbmVzc0NvbmZpZywgWXVuemFpQ29uZmlnU2VydmljZSB9IGZyb20gJ0B5ZWxvbi91dGlsL2NvbmZpZyc7XG5pbXBvcnQgeyBsb2cgfSBmcm9tICdAeWVsb24vdXRpbC9vdGhlcic7XG5pbXBvcnQgeyBOek5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL25vdGlmaWNhdGlvbic7XG5cbmltcG9ydCB7IG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnLi9iaXMuY29uZmlnJztcblxuY29uc3QgQ09ERU1FU1NBR0U6IHsgW2tleTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDIwMDogJ+acjeWKoeWZqOaIkOWKn+i/lOWbnuivt+axgueahOaVsOaNruOAgicsXG4gIDIwMTogJ+aWsOW7uuaIluS/ruaUueaVsOaNruaIkOWKn+OAgicsXG4gIDIwMjogJ+S4gOS4quivt+axguW3sue7j+i/m+WFpeWQjuWPsOaOkumYn++8iOW8guatpeS7u+WKoe+8ieOAgicsXG4gIDIwNDogJ+WIoOmZpOaVsOaNruaIkOWKn+OAgicsXG4gIDQwMDogJ+WPkeWHuueahOivt+axguaciemUmeivr++8jOacjeWKoeWZqOayoeaciei/m+ihjOaWsOW7uuaIluS/ruaUueaVsOaNrueahOaTjeS9nOOAgicsXG4gIDQwMTogJ+eUqOaIt+ayoeacieadg+mZkO+8iOS7pOeJjOOAgeeUqOaIt+WQjeOAgeWvhueggemUmeivr++8ieOAgicsXG4gIDQwMzogJ+eUqOaIt+W+l+WIsOaOiOadg++8jOS9huaYr+iuv+mXruaYr+iiq+emgeatoueahOOAgicsXG4gIDQwNDogJ+WPkeWHuueahOivt+axgumSiOWvueeahOaYr+S4jeWtmOWcqOeahOiusOW9le+8jOacjeWKoeWZqOayoeaciei/m+ihjOaTjeS9nOOAgicsXG4gIDQwNjogJ+ivt+axgueahOagvOW8j+S4jeWPr+W+l+OAgicsXG4gIDQxMDogJ+ivt+axgueahOi1hOa6kOiiq+awuOS5heWIoOmZpO+8jOS4lOS4jeS8muWGjeW+l+WIsOeahOOAgicsXG4gIDQyMjogJ+W9k+WIm+W7uuS4gOS4quWvueixoeaXtu+8jOWPkeeUn+S4gOS4qumqjOivgemUmeivr+OAgicsXG4gIDUwMDogJ+acjeWKoeWZqOWPkeeUn+mUmeivr++8jOivt+ajgOafpeacjeWKoeWZqOOAgicsXG4gIDUwMjogJ+e9keWFs+mUmeivr+OAgicsXG4gIDUwMzogJ+acjeWKoeS4jeWPr+eUqO+8jOacjeWKoeWZqOaaguaXtui/h+i9veaIlue7tOaKpOOAgicsXG4gIDUwNDogJ+e9keWFs+i2heaXtuOAgidcbn07XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIFl1bnphaURlZmF1bHRJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUganVtcCA9IGZhbHNlO1xuICBwcml2YXRlIHJlZnJlc2hUb2tpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW4kOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcblxuICBwcml2YXRlIGdldCBub3RpZmljYXRpb24oKTogTnpOb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoTnpOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRva2VuU3J2KCk6IElUb2tlblNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChZQV9TRVJWSUNFX1RPS0VOKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGh0dHAoKTogX0h0dHBDbGllbnQge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChfSHR0cENsaWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb25maWcoKTogWXVuemFpQnVzaW5lc3NDb25maWcge1xuICAgIHJldHVybiBtZXJnZUJpc0NvbmZpZyh0aGlzLmluamVjdG9yLmdldChZdW56YWlDb25maWdTZXJ2aWNlKSk7XG4gIH1cblxuICBwcml2YXRlIGdvVG8odXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5qZWN0b3IuZ2V0KFJvdXRlcikubmF2aWdhdGVCeVVybCh1cmwpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlblR5cGUgPT09ICdhdXRoLXJlZnJlc2gnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiY2FuJ3QgdXNlIGF1dGgtcmVmcmVzaCwgcGxlYXNlIGNoYW5nZSB5ei5kZWZhdWx0LmludGVyY2VwdG9yIHRvIGRlZmF1bHQuaW50ZXJjZXB0b3IhXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTdGF0dXMoZXY6IEh0dHBSZXNwb25zZUJhc2UpOiB2b2lkIHtcbiAgICBpZiAoKGV2LnN0YXR1cyA+PSAyMDAgJiYgZXYuc3RhdHVzIDwgMzAwKSB8fCBldi5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldiBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlICYmIChldi5lcnJvci5tZXNzYWdlIHx8IGV2LmVycm9yLmVycm9yTWVzc2FnZSkpIHtcbiAgICAgIGlmIChldi5lcnJvci5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOWPkeeUn+S6huS4gOS6m+mUmeivryBgLCBldi5lcnJvci5lcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOWPkeeUn+S6huS4gOS6m+mUmeivryBgLCBldi5lcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UgJiYgZXYuYm9keS5lcnJvck1lc3NhZ2UpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLmVycm9yKGDlj5HnlJ/kuobkuIDkupvplJnor68gYCwgZXYuYm9keS5lcnJvck1lc3NhZ2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBlcnJvcnRleHQgPSBDT0RFTUVTU0FHRVtldi5zdGF0dXNdIHx8IGV2LnN0YXR1c1RleHQ7XG4gICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOivt+axgumUmeivryAke2V2LnN0YXR1c306ICR7ZXYudXJsfWAsIGVycm9ydGV4dCk7XG4gIH1cblxuICBwcml2YXRlIFRvTG9naW4oKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOacqueZu+W9leaIlueZu+W9leeKtuaAgeW3sui/h+acn++8jDXnp5LlkI7lsIbot7PovazliLDnmbvlvZXpobXpnaLjgIJgLCBgYCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFdJTkRPVykubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuY29uZmlnLmJhc2VVcmx9L2Nhcy1wcm94eS9hcHAvbG9nb3V0YDtcbiAgICB9LCA1MDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVBdHRhY2hUb2tlbihyZXE6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW5TcnYuZ2V0KCk/LnRva2VuO1xuICAgIHJldHVybiByZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5SZXF1ZXN0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLnRva2VuU3J2LmdldCgpO1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtLnNldCgncmVmcmVzaF90b2tlbicsIG1vZGVsPy5yZWZyZXNoVG9rZW4pO1xuICAgIGZvcm0uc2V0KCdncmFudF90eXBlJywgJ3JlZnJlc2hfdG9rZW4nKTtcbiAgICBmb3JtLnNldCgnc2NvcGUnLCAnd2ViYXBwJyk7XG4gICAgbG9nKCd5ei5kZWZhdWx0LmludGVyY2VwdG9yOiB1c2UgdGhlIHJlZnJlc2ggdG9rZW4gdG8gcmVxdWVzdCBhIG5ldyB0b2tlbicsIG1vZGVsPy5yZWZyZXNoVG9rZW4pO1xuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2F1dGgvdXNlci90b2tlbi9yZWZyZXNoP19hbGxvd19hbm9ueW1vdXM9dHJ1ZWAsIGZvcm0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2F1dGgvb2F1dGgvZ2V0T3JDcmVhdGVUb2tlbi93ZWJhcHBgLCBmb3JtKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ5UmVmcmVzaFRva2VuKGV2OiBIdHRwUmVzcG9uc2VCYXNlLCByZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyDov57liLfmlrBUb2tlbueahOivt+axgumDvemUmeS6hu+8jOmCo+WwseaYr+ecn+mUmeS6hlxuICAgIGlmIChbJy9hdXRoL29hdXRoL2dldE9yQ3JlYXRlVG9rZW4vd2ViYXBwJ10uc29tZSh1cmwgPT4gcmVxLnVybC5pbmNsdWRlcyh1cmwpKSkge1xuICAgICAgdGhpcy5Ub0xvZ2luKCk7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBldik7XG4gICAgfVxuXG4gICAgLy8g5q2j5Zyo5Yi35pawdG9rZW7vvIzmiYDmnInlhbbku5bor7fmsYLmjpLpmJ9cbiAgICBpZiAodGhpcy5yZWZyZXNoVG9raW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4kLnBpcGUoXG4gICAgICAgIGZpbHRlcih2ID0+ICEhdiksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXh0LmhhbmRsZSh0aGlzLnJlQXR0YWNoVG9rZW4ocmVxKSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8v5bCd6K+V6LCD55So5Yi35pawIFRva2VuXG4gICAgdGhpcy5yZWZyZXNoVG9raW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlZnJlc2hUb2tlbiQubmV4dChudWxsKTtcblxuICAgIC8vIOWkhOeQhlRva2VuXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVzID0+IHtcbiAgICAgICAgbG9nKCd5ei5kZWZhdWx0LmludGVyY2VwdG9yOiByZWZyZXNoIHRva2VuIGFjY2Vzc2VkIC0+ICcsIHJlcyk7XG4gICAgICAgIC8vIOmHjeaWsOS/neWtmOaWsCB0b2tlblxuICAgICAgICBjb25zdCB7IGFjY2Vzc190b2tlbiwgZXhwaXJlc19pbiwgcmVmcmVzaF90b2tlbiwgc2NvcGUsIHRva2VuX3R5cGUgfSA9IHJlcztcbiAgICAgICAgdGhpcy50b2tlblNydi5zZXQoe1xuICAgICAgICAgIHRva2VuOiBhY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgZXhwaXJlZDogZXhwaXJlc19pbixcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hfdG9rZW4sXG4gICAgICAgICAgdG9rZW5UeXBlOiB0b2tlbl90eXBlLFxuICAgICAgICAgIHNjb3BlXG4gICAgICAgIH0pO1xuICAgICAgICAvLyDpgJrnn6XlkI7nu63or7fmsYLnu6fnu63miafooYxcbiAgICAgICAgdGhpcy5yZWZyZXNoVG9raW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVmcmVzaFRva2VuJC5uZXh0KHJlcyk7XG4gICAgICAgIC8vIOmHjeaWsOWPkei1t+ivt+axglxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5yZUF0dGFjaFRva2VuKHJlcSkpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaFRva2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLlRvTG9naW4oKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkaXRpb25hbEhlYWRlcnMoaGVhZGVycz86IEh0dHBIZWFkZXJzKTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pbmplY3Rvci5nZXQoWVVOWkFJX0kxOE5fVE9LRU4pLmN1cnJlbnRMYW5nO1xuICAgIGlmICghaGVhZGVycz8uaGFzKCdBY2NlcHQtTGFuZ3VhZ2UnKSAmJiBsYW5nKSB7XG4gICAgICByZXNbJ0FjY2VwdC1MYW5ndWFnZSddID0gbGFuZztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YShldjogSHR0cFJlc3BvbnNlQmFzZSwgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5jaGVja1N0YXR1cyhldik7XG4gICAgc3dpdGNoIChldi5zdGF0dXMpIHtcbiAgICAgIGNhc2UgMjAwOlxuICAgICAgICByZXR1cm4gb2YoZXYpO1xuICAgICAgY2FzZSA0MDE6XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5yZWZyZXNoVG9rZW5FbmFibGVkICYmIHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlblR5cGUgPT09ICdyZS1yZXF1ZXN0Jykge1xuICAgICAgICAgIGNvbnN0IHVuQXV0aG9yaXphdGlvblJlcSA9IHJlcS5jbG9uZSgpO1xuICAgICAgICAgIHVuQXV0aG9yaXphdGlvblJlcS5oZWFkZXJzLmRlbGV0ZSgnQXV0aG9yaXphdGlvbicpO1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyeVJlZnJlc2hUb2tlbihldiwgdW5BdXRob3JpemF0aW9uUmVxLCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLlRvTG9naW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQwMzpcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgY2FzZSA1MDA6XG4gICAgICAgIGlmICh0aGlzLmp1bXApIHtcbiAgICAgICAgICB0aGlzLmdvVG8oYC9leGNlcHRpb24vJHtldi5zdGF0dXN9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICfmnKrlj6/nn6XplJnor6/vvIzlpKfpg6jliIbmmK/nlLHkuo7lkI7nq6/kuI3mlK/mjIHot6jln59DT1JT5oiW5peg5pWI6YWN572u5byV6LW377yM6K+35Y+C6ICDIGh0dHBzOi8vbmcueXVuemFpbmZvLmNvbS9kb2NzL3NlcnZlciDop6PlhrPot6jln5/pl67popgnLFxuICAgICAgICAgICAgZXZcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXYpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoZXYpO1xuICAgIH1cbiAgfVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChyZXEuY29udGV4dC5nZXQoQUxMT1dfQU5PTllNT1VTKSkgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgbG9nKCd5ei5kZWZhdWx0LmludGVyY2VwdG9yLnRzOiAnLCAncmVxdWVzdCAnLCByZXEpO1xuICAgIC8vIOe7n+S4gOWKoOWJjee8gFxuICAgIGxldCB1cmwgPSByZXEudXJsO1xuICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdodHRwOi8vJykpIHtcbiAgICAgIHVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgKyB1cmw7XG4gICAgfVxuICAgIGlmICh1cmwuaW5jbHVkZXMoJy5qc29uJykgJiYgdXJsLmluY2x1ZGVzKCdhc3NldHMnKSkge1xuICAgICAgdXJsID0gcmVxLnVybDtcbiAgICB9XG4gICAgaWYgKHVybC5pbmNsdWRlcygnaTE4bicpKSByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICAvLyDliqDlhaXor63oqIDlpLRcbiAgICBjb25zdCBuZXdSZXEgPSByZXEuY2xvbmUoeyB1cmwsIHNldEhlYWRlcnM6IHRoaXMuZ2V0QWRkaXRpb25hbEhlYWRlcnMocmVxLmhlYWRlcnMpIH0pO1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShuZXdSZXEpLnBpcGUoXG4gICAgICBtZXJnZU1hcChldiA9PiB7XG4gICAgICAgIC8vIOWFgeiuuOe7n+S4gOWvueivt+axgumUmeivr+WkhOeQhlxuICAgICAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGF0YShldiwgbmV3UmVxLCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICAvLyDoi6XkuIDliIfpg73mraPluLjvvIzliJnlkI7nu63mk43kvZxcbiAgICAgICAgcmV0dXJuIG9mKGV2KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVEYXRhKGVyciwgbmV3UmVxLCBuZXh0KSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IFl1bnphaURlZmF1bHRJbnRlcmNlcHRvciBhcyBZekRlZmF1bHRJbnRlcmNlcHRvciwgWXVuemFpRGVmYXVsdEludGVyY2VwdG9yIH07XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWRlZmF1bHQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3l1bnphaS1kZWZhdWx0LmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxpQkFBaUIsRUFFakIsWUFBWSxFQUNaLGdCQUFnQixFQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxILE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQXdCLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTlDLE1BQU0sV0FBVyxHQUE4QjtJQUM3QyxHQUFHLEVBQUUsZUFBZTtJQUNwQixHQUFHLEVBQUUsWUFBWTtJQUNqQixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLDZCQUE2QjtJQUNsQyxHQUFHLEVB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IHtcbiAgSHR0cEV2ZW50LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdCxcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVzcG9uc2UsXG4gIEh0dHBSZXNwb25zZUJhc2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mLCB0aHJvd0Vycm9yLCBjYXRjaEVycm9yLCBmaWx0ZXIsIG1lcmdlTWFwLCBzd2l0Y2hNYXAsIHRha2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgWUFfU0VSVklDRV9UT0tFTiwgSVRva2VuU2VydmljZSwgQUxMT1dfQU5PTllNT1VTIH0gZnJvbSAnQHllbG9uL2F1dGgnO1xuaW1wb3J0IHsgWVVOWkFJX0kxOE5fVE9LRU4sIF9IdHRwQ2xpZW50IH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7IFdJTkRPVyB9IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IFl1bnphaUJ1c2luZXNzQ29uZmlnLCBZdW56YWlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJ0B5ZWxvbi91dGlsL290aGVyJztcbmltcG9ydCB7IE56Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbm90aWZpY2F0aW9uJztcblxuaW1wb3J0IHsgbWVyZ2VCaXNDb25maWcgfSBmcm9tICcuL2Jpcy5jb25maWcnO1xuXG5jb25zdCBDT0RFTUVTU0FHRTogeyBba2V5OiBudW1iZXJdOiBzdHJpbmcgfSA9IHtcbiAgMjAwOiAn5pyN5Yqh5Zmo5oiQ5Yqf6L+U5Zue6K+35rGC55qE5pWw5o2u44CCJyxcbiAgMjAxOiAn5paw5bu65oiW5L+u5pS55pWw5o2u5oiQ5Yqf44CCJyxcbiAgMjAyOiAn5LiA5Liq6K+35rGC5bey57uP6L+b5YWl5ZCO5Y+w5o6S6Zif77yI5byC5q2l5Lu75Yqh77yJ44CCJyxcbiAgMjA0OiAn5Yig6Zmk5pWw5o2u5oiQ5Yqf44CCJyxcbiAgNDAwOiAn5Y+R5Ye655qE6K+35rGC5pyJ6ZSZ6K+v77yM5pyN5Yqh5Zmo5rKh5pyJ6L+b6KGM5paw5bu65oiW5L+u5pS55pWw5o2u55qE5pON5L2c44CCJyxcbiAgNDAxOiAn55So5oi35rKh5pyJ5p2D6ZmQ77yI5Luk54mM44CB55So5oi35ZCN44CB5a+G56CB6ZSZ6K+v77yJ44CCJyxcbiAgNDAzOiAn55So5oi35b6X5Yiw5o6I5p2D77yM5L2G5piv6K6/6Zeu5piv6KKr56aB5q2i55qE44CCJyxcbiAgNDA0OiAn5Y+R5Ye655qE6K+35rGC6ZKI5a+555qE5piv5LiN5a2Y5Zyo55qE6K6w5b2V77yM5pyN5Yqh5Zmo5rKh5pyJ6L+b6KGM5pON5L2c44CCJyxcbiAgNDA2OiAn6K+35rGC55qE5qC85byP5LiN5Y+v5b6X44CCJyxcbiAgNDEwOiAn6K+35rGC55qE6LWE5rqQ6KKr5rC45LmF5Yig6Zmk77yM5LiU5LiN5Lya5YaN5b6X5Yiw55qE44CCJyxcbiAgNDIyOiAn5b2T5Yib5bu65LiA5Liq5a+56LGh5pe277yM5Y+R55Sf5LiA5Liq6aqM6K+B6ZSZ6K+v44CCJyxcbiAgNTAwOiAn5pyN5Yqh5Zmo5Y+R55Sf6ZSZ6K+v77yM6K+35qOA5p+l5pyN5Yqh5Zmo44CCJyxcbiAgNTAyOiAn572R5YWz6ZSZ6K+v44CCJyxcbiAgNTAzOiAn5pyN5Yqh5LiN5Y+v55So77yM5pyN5Yqh5Zmo5pqC5pe26L+H6L295oiW57u05oqk44CCJyxcbiAgNTA0OiAn572R5YWz6LaF5pe244CCJ1xufTtcblxuQEluamVjdGFibGUoKVxuY2xhc3MgWXVuemFpRGVmYXVsdEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSBqdW1wID0gZmFsc2U7XG4gIHByaXZhdGUgcmVmcmVzaFRva2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlZnJlc2hUb2tlbiQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gIHByaXZhdGUgZ2V0IG5vdGlmaWNhdGlvbigpOiBOek5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChOek5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdG9rZW5TcnYoKTogSVRva2VuU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFlBX1NFUlZJQ0VfVE9LRU4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaHR0cCgpOiBfSHR0cENsaWVudCB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KF9IdHRwQ2xpZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvbmZpZygpOiBZdW56YWlCdXNpbmVzc0NvbmZpZyB7XG4gICAgcmV0dXJuIG1lcmdlQmlzQ29uZmlnKHRoaXMuaW5qZWN0b3IuZ2V0KFl1bnphaUNvbmZpZ1NlcnZpY2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ29Ubyh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKS5uYXZpZ2F0ZUJ5VXJsKHVybCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBpZiAodGhpcy5jb25maWcucmVmcmVzaFRva2VuVHlwZSA9PT0gJ2F1dGgtcmVmcmVzaCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJjYW4ndCB1c2UgYXV0aC1yZWZyZXNoLCBwbGVhc2UgY2hhbmdlIHl6LmRlZmF1bHQuaW50ZXJjZXB0b3IgdG8gZGVmYXVsdC5pbnRlcmNlcHRvciFcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1N0YXR1cyhldjogSHR0cFJlc3BvbnNlQmFzZSk6IHZvaWQge1xuICAgIGlmICgoZXYuc3RhdHVzID49IDIwMCAmJiBldi5zdGF0dXMgPCAzMDApIHx8IGV2LnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2IGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiYgKGV2LmVycm9yLm1lc3NhZ2UgfHwgZXYuZXJyb3IuZXJyb3JNZXNzYWdlKSkge1xuICAgICAgaWYgKGV2LmVycm9yLmVycm9yTWVzc2FnZSkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcihg5Y+R55Sf5LqG5LiA5Lqb6ZSZ6K+vIGAsIGV2LmVycm9yLmVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcihg5Y+R55Sf5LqG5LiA5Lqb6ZSZ6K+vIGAsIGV2LmVycm9yLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldiBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSAmJiBldi5ib2R5LmVycm9yTWVzc2FnZSkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoYOWPkeeUn+S6huS4gOS6m+mUmeivryBgLCBldi5ib2R5LmVycm9yTWVzc2FnZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVycm9ydGV4dCA9IENPREVNRVNTQUdFW2V2LnN0YXR1c10gfHwgZXYuc3RhdHVzVGV4dDtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcihg6K+35rGC6ZSZ6K+vICR7ZXYuc3RhdHVzfTogJHtldi51cmx9YCwgZXJyb3J0ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgVG9Mb2dpbigpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcihg5pyq55m75b2V5oiW55m75b2V54q25oCB5bey6L+H5pyf77yMNeenkuWQjuWwhui3s+i9rOWIsOeZu+W9lemhtemdouOAgmAsIGBgKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgICAgdGhpcy5pbmplY3Rvci5nZXQoV0lORE9XKS5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5jb25maWcuYmFzZVVybH0vY2FzLXByb3h5L2FwcC9sb2dvdXRgO1xuICAgIH0sIDUwMDApO1xuICB9XG5cbiAgcHJpdmF0ZSByZUF0dGFjaFRva2VuKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlblNydi5nZXQoKT8uYWNjZXNzX3Rva2VuO1xuICAgIHJldHVybiByZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5SZXF1ZXN0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLnRva2VuU3J2LmdldCgpO1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtLnNldCgncmVmcmVzaF90b2tlbicsIG1vZGVsPy5yZWZyZXNoX3Rva2VuISk7XG4gICAgZm9ybS5zZXQoJ2dyYW50X3R5cGUnLCAncmVmcmVzaF90b2tlbicpO1xuICAgIGZvcm0uc2V0KCdzY29wZScsICd3ZWJhcHAnKTtcbiAgICBsb2coJ3l6LmRlZmF1bHQuaW50ZXJjZXB0b3I6IHVzZSB0aGUgcmVmcmVzaCB0b2tlbiB0byByZXF1ZXN0IGEgbmV3IHRva2VuJywgbW9kZWw/LnJlZnJlc2hfdG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2F1dGgvb2F1dGgvZ2V0T3JDcmVhdGVUb2tlbi93ZWJhcHBgLCBmb3JtKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ5UmVmcmVzaFRva2VuKGV2OiBIdHRwUmVzcG9uc2VCYXNlLCByZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyDov57liLfmlrBUb2tlbueahOivt+axgumDvemUmeS6hu+8jOmCo+WwseaYr+ecn+mUmeS6hlxuICAgIGlmIChbJy9hdXRoL29hdXRoL2dldE9yQ3JlYXRlVG9rZW4vd2ViYXBwJ10uc29tZSh1cmwgPT4gcmVxLnVybC5pbmNsdWRlcyh1cmwpKSkge1xuICAgICAgdGhpcy5Ub0xvZ2luKCk7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBldik7XG4gICAgfVxuXG4gICAgLy8g5q2j5Zyo5Yi35pawdG9rZW7vvIzmiYDmnInlhbbku5bor7fmsYLmjpLpmJ9cbiAgICBpZiAodGhpcy5yZWZyZXNoVG9raW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4kLnBpcGUoXG4gICAgICAgIGZpbHRlcih2ID0+ICEhdiksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXh0LmhhbmRsZSh0aGlzLnJlQXR0YWNoVG9rZW4ocmVxKSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8v5bCd6K+V6LCD55So5Yi35pawIFRva2VuXG4gICAgdGhpcy5yZWZyZXNoVG9raW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlZnJlc2hUb2tlbiQubmV4dChudWxsKTtcblxuICAgIC8vIOWkhOeQhlRva2VuXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVzID0+IHtcbiAgICAgICAgbG9nKCd5ei5kZWZhdWx0LmludGVyY2VwdG9yOiByZWZyZXNoIHRva2VuIGFjY2Vzc2VkIC0+ICcsIHJlcyk7XG4gICAgICAgIC8vIOmHjeaWsOS/neWtmOaWsCB0b2tlblxuICAgICAgICB0aGlzLnRva2VuU3J2LnNldChyZXMpO1xuICAgICAgICAvLyDpgJrnn6XlkI7nu63or7fmsYLnu6fnu63miafooYxcbiAgICAgICAgdGhpcy5yZWZyZXNoVG9raW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVmcmVzaFRva2VuJC5uZXh0KHJlcyk7XG4gICAgICAgIC8vIOmHjeaWsOWPkei1t+ivt+axglxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5yZUF0dGFjaFRva2VuKHJlcSkpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaFRva2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLlRvTG9naW4oKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWRkaXRpb25hbEhlYWRlcnMoaGVhZGVycz86IEh0dHBIZWFkZXJzKTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pbmplY3Rvci5nZXQoWVVOWkFJX0kxOE5fVE9LRU4pLmN1cnJlbnRMYW5nO1xuICAgIGlmICghaGVhZGVycz8uaGFzKCdBY2NlcHQtTGFuZ3VhZ2UnKSAmJiBsYW5nKSB7XG4gICAgICByZXNbJ0FjY2VwdC1MYW5ndWFnZSddID0gbGFuZztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YShldjogSHR0cFJlc3BvbnNlQmFzZSwgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5jaGVja1N0YXR1cyhldik7XG4gICAgc3dpdGNoIChldi5zdGF0dXMpIHtcbiAgICAgIGNhc2UgMjAwOlxuICAgICAgICByZXR1cm4gb2YoZXYpO1xuICAgICAgY2FzZSA0MDE6XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5yZWZyZXNoVG9rZW5FbmFibGVkICYmIHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlblR5cGUgPT09ICdyZS1yZXF1ZXN0Jykge1xuICAgICAgICAgIGNvbnN0IHVuQXV0aG9yaXphdGlvblJlcSA9IHJlcS5jbG9uZSgpO1xuICAgICAgICAgIHVuQXV0aG9yaXphdGlvblJlcS5oZWFkZXJzLmRlbGV0ZSgnQXV0aG9yaXphdGlvbicpO1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyeVJlZnJlc2hUb2tlbihldiwgdW5BdXRob3JpemF0aW9uUmVxLCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLlRvTG9naW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQwMzpcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgY2FzZSA1MDA6XG4gICAgICAgIGlmICh0aGlzLmp1bXApIHtcbiAgICAgICAgICB0aGlzLmdvVG8oYC9leGNlcHRpb24vJHtldi5zdGF0dXN9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICfmnKrlj6/nn6XplJnor6/vvIzlpKfpg6jliIbmmK/nlLHkuo7lkI7nq6/kuI3mlK/mjIHot6jln59DT1JT5oiW5peg5pWI6YWN572u5byV6LW377yM6K+35Y+C6ICDIGh0dHBzOi8vbmcueXVuemFpbmZvLmNvbS9kb2NzL3NlcnZlciDop6PlhrPot6jln5/pl67popgnLFxuICAgICAgICAgICAgZXZcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXYpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoZXYpO1xuICAgIH1cbiAgfVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChyZXEuY29udGV4dC5nZXQoQUxMT1dfQU5PTllNT1VTKSkgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgbG9nKCd5ei5kZWZhdWx0LmludGVyY2VwdG9yLnRzOiAnLCAncmVxdWVzdCAnLCByZXEpO1xuICAgIC8vIOe7n+S4gOWKoOWJjee8gFxuICAgIGxldCB1cmwgPSByZXEudXJsO1xuICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdodHRwOi8vJykpIHtcbiAgICAgIHVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgKyB1cmw7XG4gICAgfVxuICAgIGlmICh1cmwuaW5jbHVkZXMoJy5qc29uJykgJiYgdXJsLmluY2x1ZGVzKCdhc3NldHMnKSkge1xuICAgICAgdXJsID0gcmVxLnVybDtcbiAgICB9XG4gICAgaWYgKHVybC5pbmNsdWRlcygnaTE4bicpKSByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICAvLyDliqDlhaXor63oqIDlpLRcbiAgICBjb25zdCBuZXdSZXEgPSByZXEuY2xvbmUoeyB1cmwsIHNldEhlYWRlcnM6IHRoaXMuZ2V0QWRkaXRpb25hbEhlYWRlcnMocmVxLmhlYWRlcnMpIH0pO1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShuZXdSZXEpLnBpcGUoXG4gICAgICBtZXJnZU1hcChldiA9PiB7XG4gICAgICAgIC8vIOWFgeiuuOe7n+S4gOWvueivt+axgumUmeivr+WkhOeQhlxuICAgICAgICBpZiAoZXYgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGF0YShldiwgbmV3UmVxLCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICAvLyDoi6XkuIDliIfpg73mraPluLjvvIzliJnlkI7nu63mk43kvZxcbiAgICAgICAgcmV0dXJuIG9mKGV2KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5oYW5kbGVEYXRhKGVyciwgbmV3UmVxLCBuZXh0KSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IFl1bnphaURlZmF1bHRJbnRlcmNlcHRvciBhcyBZekRlZmF1bHRJbnRlcmNlcHRvciwgWXVuemFpRGVmYXVsdEludGVyY2VwdG9yIH07XG4iXX0=
@@ -8,22 +8,21 @@ import { YunzaiI18nBaseService, en_US as yelonEnUS } from '@yelon/theme';
8
8
  import { en_US as zorroEnUS } from 'ng-zorro-antd/i18n';
9
9
  import { mergeBisConfig } from './bis.config';
10
10
  import { YUNZAI_LANGS } from './yunzai-lang';
11
+ import { useLocalStorageLang, useLocalStorageLangs } from "@yelon/util";
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@yelon/theme";
13
14
  import * as i2 from "ng-zorro-antd/i18n";
14
15
  import * as i3 from "@angular/cdk/platform";
15
16
  import * as i4 from "@yelon/util/config";
16
- import * as i5 from "@yelon/cache";
17
17
  const DEFAULT = 'zh-CN';
18
18
  class YunzaiI18NService extends YunzaiI18nBaseService {
19
- constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv, cacheService) {
19
+ constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv) {
20
20
  super(cogSrv);
21
21
  this.http = http;
22
22
  this.settings = settings;
23
23
  this.nzI18nService = nzI18nService;
24
24
  this.yelonLocaleService = yelonLocaleService;
25
25
  this.platform = platform;
26
- this.cacheService = cacheService;
27
26
  this._defaultLang = DEFAULT;
28
27
  this.destroy$ = new Subject();
29
28
  const defaultLang = this.getDefaultLang();
@@ -102,30 +101,30 @@ class YunzaiI18NService extends YunzaiI18nBaseService {
102
101
  }
103
102
  }
104
103
  cacheLang(lang, data) {
105
- const key = `_yz_lang_${lang}`;
106
- this.cacheService.set(key, data);
104
+ const [setLang,] = useLocalStorageLang();
105
+ setLang(lang, data);
107
106
  }
108
107
  getLang(lang) {
109
- const key = `_yz_lang_${lang}`;
110
- return this.cacheService.get(key, { mode: 'none' });
108
+ const [, getL] = useLocalStorageLang();
109
+ return getL(lang) || {};
111
110
  }
112
111
  cacheLangs(langs) {
113
- const key = `_yz_langs`;
114
- this.cacheService.set(key, langs);
112
+ const [setLangs,] = useLocalStorageLangs();
113
+ setLangs(langs);
115
114
  }
116
115
  getCachedLangs() {
117
- const key = `_yz_langs`;
118
- return this.cacheService.get(key, { mode: 'none' }) || [];
116
+ const [, getLangs] = useLocalStorageLangs();
117
+ return getLangs() || [];
119
118
  }
120
119
  ngOnDestroy() {
121
120
  this.destroy$.complete();
122
121
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiI18NService, deps: [{ token: i1._HttpClient }, { token: i1.SettingsService }, { token: i2.NzI18nService }, { token: i1.YelonLocaleService }, { token: i3.Platform }, { token: i4.YunzaiConfigService }, { token: i5.CacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
124
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiI18NService, providedIn: 'root' }); }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiI18NService, deps: [{ token: i1._HttpClient }, { token: i1.SettingsService }, { token: i2.NzI18nService }, { token: i1.YelonLocaleService }, { token: i3.Platform }, { token: i4.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiI18NService, providedIn: 'root' }); }
125
124
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiI18NService, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiI18NService, decorators: [{
127
126
  type: Injectable,
128
127
  args: [{ providedIn: 'root' }]
129
- }], ctorParameters: function () { return [{ type: i1._HttpClient }, { type: i1.SettingsService }, { type: i2.NzI18nService }, { type: i1.YelonLocaleService }, { type: i3.Platform }, { type: i4.YunzaiConfigService }, { type: i5.CacheService }]; } });
128
+ }], ctorParameters: function () { return [{ type: i1._HttpClient }, { type: i1.SettingsService }, { type: i2.NzI18nService }, { type: i1.YelonLocaleService }, { type: i3.Platform }, { type: i4.YunzaiConfigService }]; } });
130
129
  export { YunzaiI18NService as YzI18NService, YunzaiI18NService };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWkxOG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQveXVuemFpLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUlMLHFCQUFxQixFQUVyQixLQUFLLElBQUksU0FBUyxFQUNuQixNQUFNLGNBQWMsQ0FBQztBQUd0QixPQUFPLEVBQWlCLEtBQUssSUFBSSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFJN0MsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBRXhCLE1BQ00saUJBQWtCLFNBQVEscUJBQXFCO0lBS25ELFlBQ1UsSUFBaUIsRUFDakIsUUFBeUIsRUFDekIsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLFFBQWtCLEVBQzFCLE1BQTJCLEVBQ25CLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVJOLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsa0JBQWEsR0FBYixh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LEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBcEhHLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREcsTUFBTTs7MkZBQzFCLGlCQUFpQjtrQkFEdEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBd0hsQyxPQUFPLEVBQUUsaUJBQWlCLElBQUksYUFBYSxFQUFFLGlCQUFpQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IG5nRW4gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZW4nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjYXRjaEVycm9yLCBvZiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGVuVVMgYXMgZGZFbiB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9jYWNoZSc7XG5pbXBvcnQge1xuICBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gIFNldHRpbmdzU2VydmljZSxcbiAgX0h0dHBDbGllbnQsXG4gIFl1bnphaUkxOG5CYXNlU2VydmljZSxcbiAgWXVuemFpSTE4TlR5cGUsXG4gIGVuX1VTIGFzIHllbG9uRW5VU1xufSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHsgWXVuemFpQnVzaW5lc3NDb25maWcsIFl1bnphaUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAeWVsb24vdXRpbC9jb25maWcnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56STE4blNlcnZpY2UsIGVuX1VTIGFzIHpvcnJvRW5VUyB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5cbmltcG9ydCB7IG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnLi9iaXMuY29uZmlnJztcbmltcG9ydCB7IFlVTlpBSV9MQU5HUyB9IGZyb20gJy4veXVuemFpLWxhbmcnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgREVGQVVMVCA9ICd6aC1DTic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5jbGFzcyBZdW56YWlJMThOU2VydmljZSBleHRlbmRzIFl1bnphaUkxOG5CYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfZGVmYXVsdExhbmcgPSBERUZBVUxUO1xuICBwcml2YXRlIGJpczogWXVuemFpQnVzaW5lc3NDb25maWc7XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBfSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBuekkxOG5TZXJ2aWNlOiBOekkxOG5TZXJ2aWNlLFxuICAgIHByaXZhdGUgeWVsb25Mb2NhbGVTZXJ2aWNlOiBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgY29nU3J2OiBZdW56YWlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoY29nU3J2KTtcbiAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuZ2V0RGVmYXVsdExhbmcoKTtcbiAgICB0aGlzLmJpcyA9IG1lcmdlQmlzQ29uZmlnKGNvZ1Nydik7XG4gICAgdGhpcy5nZXRMYW5ncygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGxhbmdzID0+IHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdExhbmcgPSBsYW5ncy5maW5kSW5kZXgodyA9PiB3LmNvZGUgPT09IGRlZmF1bHRMYW5nKSA9PT0gLTEgPyBERUZBVUxUIDogZGVmYXVsdExhbmc7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdExhbmcoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4gREVGQVVMVDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGF5b3V0LmxhbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmxheW91dC5sYW5nO1xuICAgIH1cbiAgICBsZXQgcmVzID0gKG5hdmlnYXRvci5sYW5ndWFnZXMgPyBuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIDogbnVsbCkgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIGNvbnN0IGFyciA9IHJlcy5zcGxpdCgnLScpO1xuICAgIHJldHVybiBhcnIubGVuZ3RoIDw9IDEgPyByZXMgOiBgJHthcnJbMF19LSR7YXJyWzFdLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxuXG4gIGxvYWRMYW5nRGF0YShsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgIGlmIChuZ0Rldk1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhc3NldHMvdG1wL2kxOG4vJHtsYW5nfS5qc29uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmdldExhbmcobGFuZykpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0TGFuZyhsYW5nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQoYCR7dGhpcy5iaXMuYmFzZVVybH0vaTE4bi9hcGkvdjIvbGFuZ3VhZ2UvJHtsYW5nfT9fYWxsb3dfYW5vbnltb3VzYClcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmh0dHAuZ2V0KGBhc3NldHMvdG1wL2kxOG4vJHtsYW5nfS5qc29uYCkpKTtcbiAgICB9XG4gIH1cblxuICB1c2UobGFuZzogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50TGFuZyA9PT0gbGFuZykgcmV0dXJuO1xuICAgIGlmICghbmdEZXZNb2RlKSB7XG4gICAgICB0aGlzLmNhY2hlTGFuZyhsYW5nLCBkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5fZGF0YSA9IHRoaXMuZmxhdERhdGEoZGF0YSwgW10pO1xuICAgIGNvbnN0IGl0ZW0gPSBZVU5aQUlfTEFOR1NbbGFuZ107XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShpdGVtLm5nKTtcbiAgICAgIHRoaXMubnpJMThuU2VydmljZS5zZXRMb2NhbGUoaXRlbS56b3Jybyk7XG4gICAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0RGF0ZUxvY2FsZShpdGVtLmRhdGUpO1xuICAgICAgdGhpcy55ZWxvbkxvY2FsZVNlcnZpY2Uuc2V0TG9jYWxlKGl0ZW0ueWVsb24pO1xuICAgICAgdGhpcy5fY3VycmVudExhbmcgPSBsYW5nO1xuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KGxhbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWdpc3RlckxvY2FsZURhdGEobmdFbik7XG4gICAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0TG9jYWxlKHpvcnJvRW5VUyk7XG4gICAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0RGF0ZUxvY2FsZShkZkVuKTtcbiAgICAgIHRoaXMueWVsb25Mb2NhbGVTZXJ2aWNlLnNldExvY2FsZSh5ZWxvbkVuVVMpO1xuICAgICAgdGhpcy5fY3VycmVudExhbmcgPSBsYW5nO1xuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KGxhbmcpO1xuICAgIH1cbiAgfVxuXG4gIGdldExhbmdzKCk6IE9ic2VydmFibGU8WXVuemFpSTE4TlR5cGVbXT4ge1xuICAgIGNvbnN0IGxhbmdzID0gT2JqZWN0LmtleXMoWVVOWkFJX0xBTkdTKS5tYXAoY29kZSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gWVVOWkFJX0xBTkdTW2NvZGVdO1xuICAgICAgcmV0dXJuIHsgY29kZSwgdGV4dDogaXRlbS50ZXh0LCBhYmJyOiBpdGVtLmFiYnIsIGltYWdlOiB1bmRlZmluZWQgfTtcbiAgICB9KTtcbiAgICBpZiAobmdEZXZNb2RlKSB7XG4gICAgICByZXR1cm4gb2YobGFuZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5nZXRDYWNoZWRMYW5ncygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0Q2FjaGVkTGFuZ3MoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmJpcy5iYXNlVXJsfS9pMThuL2FwaS92Mi9sYW5ndWFnZT9fYWxsb3dfYW5vbnltb3VzYCkucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZUxhbmdzKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihsYW5ncykpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNhY2hlTGFuZyhsYW5nOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gYF95el9sYW5nXyR7bGFuZ31gO1xuICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldChrZXksIGRhdGEpO1xuICB9XG5cbiAgZ2V0TGFuZyhsYW5nOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3Qga2V5ID0gYF95el9sYW5nXyR7bGFuZ31gO1xuICAgIHJldHVybiB0aGlzLmNhY2hlU2VydmljZS5nZXQoa2V5LCB7IG1vZGU6ICdub25lJyB9KTtcbiAgfVxuXG4gIGNhY2hlTGFuZ3MobGFuZ3M6IFl1bnphaUkxOE5UeXBlW10pOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBgX3l6X2xhbmdzYDtcbiAgICB0aGlzLmNhY2hlU2VydmljZS5zZXQoa2V5LCBsYW5ncyk7XG4gIH1cblxuICBnZXRDYWNoZWRMYW5ncygpOiBZdW56YWlJMThOVHlwZVtdIHtcbiAgICBjb25zdCBrZXkgPSBgX3l6X2xhbmdzYDtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KGtleSwgeyBtb2RlOiAnbm9uZScgfSkgfHwgW107XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgWXVuemFpSTE4TlNlcnZpY2UgYXMgWXpJMThOU2VydmljZSwgWXVuemFpSTE4TlNlcnZpY2UgfTtcbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWkxOG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQveXVuemFpLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBYSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUFDLElBQUksSUFBSSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUlILHFCQUFxQixFQUVyQixLQUFLLElBQUksU0FBUyxFQUNyQixNQUFNLGNBQWMsQ0FBQztBQUd0QixPQUFPLEVBQWdCLEtBQUssSUFBSSxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFFLG9CQUFvQixFQUFDLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJdEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBRXhCLE1BQ00saUJBQWtCLFNBQVEscUJBQXFCO0lBS2pELFlBQ1ksSUFBaUIsRUFDakIsUUFBeUIsRUFDekIsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLFFBQWtCLEVBQzFCLE1BQTJCO1FBRTNCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVBOLFNBQUksR0FBSixJQUFJLENBQWE7UUFD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O1FBQ1YsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQTtRQUMzQyxPQUFPLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0FuSEMsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FERSxNQUFNOzsyRkFDekIsaUJBQWlCO2tCQUR0QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUF1SGhDLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge3JlZ2lzdGVyTG9jYWxlRGF0YX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCBuZ0VuIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VuJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgY2F0Y2hFcnJvciwgb2YsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7ZW5VUyBhcyBkZkVufSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gICAgU2V0dGluZ3NTZXJ2aWNlLFxuICAgIF9IdHRwQ2xpZW50LFxuICAgIFl1bnphaUkxOG5CYXNlU2VydmljZSxcbiAgICBZdW56YWlJMThOVHlwZSxcbiAgICBlbl9VUyBhcyB5ZWxvbkVuVVNcbn0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7WXVuemFpQnVzaW5lc3NDb25maWcsIFl1bnphaUNvbmZpZ1NlcnZpY2V9IGZyb20gJ0B5ZWxvbi91dGlsL2NvbmZpZyc7XG5pbXBvcnQge056U2FmZUFueX0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7TnpJMThuU2VydmljZSwgZW5fVVMgYXMgem9ycm9FblVTfSBmcm9tICduZy16b3Jyby1hbnRkL2kxOG4nO1xuXG5pbXBvcnQge21lcmdlQmlzQ29uZmlnfSBmcm9tICcuL2Jpcy5jb25maWcnO1xuaW1wb3J0IHtZVU5aQUlfTEFOR1N9IGZyb20gJy4veXVuemFpLWxhbmcnO1xuaW1wb3J0IHt1c2VMb2NhbFN0b3JhZ2VMYW5nLCB1c2VMb2NhbFN0b3JhZ2VMYW5nc30gZnJvbSBcIkB5ZWxvbi91dGlsXCI7XG5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG5jb25zdCBERUZBVUxUID0gJ3poLUNOJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5jbGFzcyBZdW56YWlJMThOU2VydmljZSBleHRlbmRzIFl1bnphaUkxOG5CYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9kZWZhdWx0TGFuZyA9IERFRkFVTFQ7XG4gICAgcHJpdmF0ZSBiaXM6IFl1bnphaUJ1c2luZXNzQ29uZmlnO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBfSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG56STE4blNlcnZpY2U6IE56STE4blNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgeWVsb25Mb2NhbGVTZXJ2aWNlOiBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICBjb2dTcnY6IFl1bnphaUNvbmZpZ1NlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvZ1Nydik7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5nID0gdGhpcy5nZXREZWZhdWx0TGFuZygpO1xuICAgICAgICB0aGlzLmJpcyA9IG1lcmdlQmlzQ29uZmlnKGNvZ1Nydik7XG4gICAgICAgIHRoaXMuZ2V0TGFuZ3MoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShsYW5ncyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmYXVsdExhbmcgPSBsYW5ncy5maW5kSW5kZXgodyA9PiB3LmNvZGUgPT09IGRlZmF1bHRMYW5nKSA9PT0gLTEgPyBERUZBVUxUIDogZGVmYXVsdExhbmc7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlZmF1bHRMYW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBERUZBVUxUO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxheW91dC5sYW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5sYXlvdXQubGFuZztcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzID0gKG5hdmlnYXRvci5sYW5ndWFnZXMgPyBuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIDogbnVsbCkgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgICAgICBjb25zdCBhcnIgPSByZXMuc3BsaXQoJy0nKTtcbiAgICAgICAgcmV0dXJuIGFyci5sZW5ndGggPD0gMSA/IHJlcyA6IGAke2FyclswXX0tJHthcnJbMV0udG9VcHBlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIGxvYWRMYW5nRGF0YShsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgICAgICBpZiAobmdEZXZNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgYXNzZXRzL3RtcC9pMThuLyR7bGFuZ30uanNvbmApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0TGFuZyhsYW5nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmdldExhbmcobGFuZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQoYCR7dGhpcy5iaXMuYmFzZVVybH0vaTE4bi9hcGkvdjIvbGFuZ3VhZ2UvJHtsYW5nfT9fYWxsb3dfYW5vbnltb3VzYClcbiAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IHRoaXMuaHR0cC5nZXQoYGFzc2V0cy90bXAvaTE4bi8ke2xhbmd9Lmpzb25gKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlKGxhbmc6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRMYW5nID09PSBsYW5nKSByZXR1cm47XG4gICAgICAgIGlmICghbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlTGFuZyhsYW5nLCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kYXRhID0gdGhpcy5mbGF0RGF0YShkYXRhLCBbXSk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBZVU5aQUlfTEFOR1NbbGFuZ107XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEoaXRlbS5uZyk7XG4gICAgICAgICAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0TG9jYWxlKGl0ZW0uem9ycm8pO1xuICAgICAgICAgICAgdGhpcy5uekkxOG5TZXJ2aWNlLnNldERhdGVMb2NhbGUoaXRlbS5kYXRlKTtcbiAgICAgICAgICAgIHRoaXMueWVsb25Mb2NhbGVTZXJ2aWNlLnNldExvY2FsZShpdGVtLnllbG9uKTtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nID0gbGFuZztcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZSQubmV4dChsYW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShuZ0VuKTtcbiAgICAgICAgICAgIHRoaXMubnpJMThuU2VydmljZS5zZXRMb2NhbGUoem9ycm9FblVTKTtcbiAgICAgICAgICAgIHRoaXMubnpJMThuU2VydmljZS5zZXREYXRlTG9jYWxlKGRmRW4pO1xuICAgICAgICAgICAgdGhpcy55ZWxvbkxvY2FsZVNlcnZpY2Uuc2V0TG9jYWxlKHllbG9uRW5VUyk7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobGFuZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRMYW5ncygpOiBPYnNlcnZhYmxlPFl1bnphaUkxOE5UeXBlW10+IHtcbiAgICAgICAgY29uc3QgbGFuZ3MgPSBPYmplY3Qua2V5cyhZVU5aQUlfTEFOR1MpLm1hcChjb2RlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBZVU5aQUlfTEFOR1NbY29kZV07XG4gICAgICAgICAgICByZXR1cm4ge2NvZGUsIHRleHQ6IGl0ZW0udGV4dCwgYWJicjogaXRlbS5hYmJyLCBpbWFnZTogdW5kZWZpbmVkfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihsYW5ncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5nZXRDYWNoZWRMYW5ncygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5nZXRDYWNoZWRMYW5ncygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYmlzLmJhc2VVcmx9L2kxOG4vYXBpL3YyL2xhbmd1YWdlP19hbGxvd19hbm9ueW1vdXNgKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGFuZ3MocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobGFuZ3MpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhY2hlTGFuZyhsYW5nOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtzZXRMYW5nLF0gPSB1c2VMb2NhbFN0b3JhZ2VMYW5nKClcbiAgICAgICAgc2V0TGFuZyhsYW5nLCBkYXRhKVxuICAgIH1cblxuICAgIGdldExhbmcobGFuZzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgICAgICBjb25zdCBbLCBnZXRMXSA9IHVzZUxvY2FsU3RvcmFnZUxhbmcoKVxuICAgICAgICByZXR1cm4gZ2V0TChsYW5nKSB8fCB7fVxuICAgIH1cblxuICAgIGNhY2hlTGFuZ3MobGFuZ3M6IFl1bnphaUkxOE5UeXBlW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgW3NldExhbmdzLF0gPSB1c2VMb2NhbFN0b3JhZ2VMYW5ncygpXG4gICAgICAgIHNldExhbmdzKGxhbmdzKVxuICAgIH1cblxuICAgIGdldENhY2hlZExhbmdzKCk6IFl1bnphaUkxOE5UeXBlW10ge1xuICAgICAgICBjb25zdCBbLCBnZXRMYW5nc10gPSB1c2VMb2NhbFN0b3JhZ2VMYW5ncygpXG4gICAgICAgIHJldHVybiBnZXRMYW5ncygpIHx8IFtdXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7WXVuemFpSTE4TlNlcnZpY2UgYXMgWXpJMThOU2VydmljZSwgWXVuemFpSTE4TlNlcnZpY2V9O1xuIl19
@@ -3,11 +3,12 @@ import { HttpClientModule } from '@angular/common/http';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
5
  import { RouterModule } from '@angular/router';
6
- import { YunzaiSharedYelonModule, YunzaiSharedZorroModule } from '@yelon/bcs';
7
6
  import { YUNZAI_THEME_BTN_KEYS } from '@yelon/theme/theme-btn';
8
- import { YzLayoutBasicComponent } from './layout-basic/layout-basic.component';
9
7
  import { LayoutNavApplicationComponent, LayoutNavGroupComponent, LayoutNavTileComponent } from './layout-nav';
10
8
  import { YunzaiClearStorageComponent, YunzaiFullScreenComponent, YunzaiI18NComponent, YunzaiNotifyComponent, YunzaiThemBtnComponent, YunzaiUserComponent } from './widgets';
9
+ import { YunzaiLayoutBasicComponent } from "./layout-basic/layout-basic.component";
10
+ import { YunzaiSharedYelonModule } from "@yelon/bcs/yunzai-shared-yelon";
11
+ import { YunzaiSharedZorroModule } from "@yelon/bcs/yunzai-shared-zorro";
11
12
  import * as i0 from "@angular/core";
12
13
  const WIDGETS = [
13
14
  YunzaiClearStorageComponent,
@@ -18,10 +19,10 @@ const WIDGETS = [
18
19
  YunzaiUserComponent
19
20
  ];
20
21
  const LAYOUT_NAV_COMPONENTS = [LayoutNavApplicationComponent, LayoutNavGroupComponent, LayoutNavTileComponent];
21
- const COMPONENTS = [YzLayoutBasicComponent];
22
+ const COMPONENTS = [YunzaiLayoutBasicComponent];
22
23
  class YunzaiLayoutModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.2", ngImport: i0, type: YunzaiLayoutModule, declarations: [YzLayoutBasicComponent, YunzaiClearStorageComponent,
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: YunzaiLayoutModule, declarations: [YunzaiLayoutBasicComponent, YunzaiClearStorageComponent,
25
26
  YunzaiFullScreenComponent,
26
27
  YunzaiI18NComponent,
27
28
  YunzaiNotifyComponent,
@@ -32,13 +33,13 @@ class YunzaiLayoutModule {
32
33
  RouterModule,
33
34
  ReactiveFormsModule,
34
35
  YunzaiSharedYelonModule,
35
- YunzaiSharedZorroModule], exports: [YzLayoutBasicComponent, YunzaiClearStorageComponent,
36
+ YunzaiSharedZorroModule], exports: [YunzaiLayoutBasicComponent, YunzaiClearStorageComponent,
36
37
  YunzaiFullScreenComponent,
37
38
  YunzaiI18NComponent,
38
39
  YunzaiNotifyComponent,
39
40
  YunzaiThemBtnComponent,
40
41
  YunzaiUserComponent, LayoutNavApplicationComponent, LayoutNavGroupComponent, LayoutNavTileComponent] }); }
41
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiLayoutModule, providers: [
42
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiLayoutModule, providers: [
42
43
  {
43
44
  provide: YUNZAI_THEME_BTN_KEYS,
44
45
  useValue: 'site-theme'
@@ -52,7 +53,7 @@ class YunzaiLayoutModule {
52
53
  YunzaiSharedZorroModule] }); }
53
54
  }
54
55
  export { YunzaiLayoutModule };
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiLayoutModule, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiLayoutModule, decorators: [{
56
57
  type: NgModule,
57
58
  args: [{
58
59
  imports: [
@@ -74,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
74
75
  exports: [...COMPONENTS, ...WIDGETS, ...LAYOUT_NAV_COMPONENTS]
75
76
  }]
76
77
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWxheW91dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3l1bnphaS1sYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDcEIsTUFBTSxXQUFXLENBQUM7O0FBRW5CLE1BQU0sT0FBTyxHQUFHO0lBQ2QsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6QixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRS9HLE1BQU0sVUFBVSxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUU1QyxNQW1CYSxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQXJCWCxzQkFBc0IsRUFWeEMsMkJBQTJCO1lBQzNCLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLHNCQUFzQjtZQUN0QixtQkFBbUIsRUFHVSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsYUFNekcsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsdUJBQXVCLGFBVlAsc0JBQXNCLEVBVnhDLDJCQUEyQjtZQUMzQix5QkFBeUI7WUFDekIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIsbUJBQW1CLEVBR1UsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCOytHQXVCaEcsa0JBQWtCLGFBVGxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLFlBQVk7YUFDdkI7U0FDRixZQWJDLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osV0FBVztZQUNYLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLHVCQUF1Qjs7U0FXZCxrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFuQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxZQUFZO3lCQUN2QjtxQkFDRjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLHFCQUFxQixDQUFDO29CQUNuRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLHFCQUFxQixDQUFDO2lCQUMvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgWXVuemFpU2hhcmVkWWVsb25Nb2R1bGUsIFl1bnphaVNoYXJlZFpvcnJvTW9kdWxlIH0gZnJvbSAnQHllbG9uL2Jjcyc7XG5pbXBvcnQgeyBZVU5aQUlfVEhFTUVfQlROX0tFWVMgfSBmcm9tICdAeWVsb24vdGhlbWUvdGhlbWUtYnRuJztcblxuaW1wb3J0IHsgWXpMYXlvdXRCYXNpY0NvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LWJhc2ljL2xheW91dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0TmF2QXBwbGljYXRpb25Db21wb25lbnQsIExheW91dE5hdkdyb3VwQ29tcG9uZW50LCBMYXlvdXROYXZUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtbmF2JztcbmltcG9ydCB7XG4gIFl1bnphaUNsZWFyU3RvcmFnZUNvbXBvbmVudCxcbiAgWXVuemFpRnVsbFNjcmVlbkNvbXBvbmVudCxcbiAgWXVuemFpSTE4TkNvbXBvbmVudCxcbiAgWXVuemFpTm90aWZ5Q29tcG9uZW50LFxuICBZdW56YWlUaGVtQnRuQ29tcG9uZW50LFxuICBZdW56YWlVc2VyQ29tcG9uZW50XG59IGZyb20gJy4vd2lkZ2V0cyc7XG5cbmNvbnN0IFdJREdFVFMgPSBbXG4gIFl1bnphaUNsZWFyU3RvcmFnZUNvbXBvbmVudCxcbiAgWXVuemFpRnVsbFNjcmVlbkNvbXBvbmVudCxcbiAgWXVuemFpSTE4TkNvbXBvbmVudCxcbiAgWXVuemFpTm90aWZ5Q29tcG9uZW50LFxuICBZdW56YWlUaGVtQnRuQ29tcG9uZW50LFxuICBZdW56YWlVc2VyQ29tcG9uZW50XG5dO1xuXG5jb25zdCBMQVlPVVRfTkFWX0NPTVBPTkVOVFMgPSBbTGF5b3V0TmF2QXBwbGljYXRpb25Db21wb25lbnQsIExheW91dE5hdkdyb3VwQ29tcG9uZW50LCBMYXlvdXROYXZUaWxlQ29tcG9uZW50XTtcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtZekxheW91dEJhc2ljQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFl1bnphaVNoYXJlZFllbG9uTW9kdWxlLFxuICAgIFl1bnphaVNoYXJlZFpvcnJvTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFlVTlpBSV9USEVNRV9CVE5fS0VZUyxcbiAgICAgIHVzZVZhbHVlOiAnc2l0ZS10aGVtZSdcbiAgICB9XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFMsIC4uLldJREdFVFMsIC4uLkxBWU9VVF9OQVZfQ09NUE9ORU5UU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTLCAuLi5XSURHRVRTLCAuLi5MQVlPVVRfTkFWX0NPTVBPTkVOVFNdXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUxheW91dE1vZHVsZSB7fVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWxheW91dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3l1bnphaS1sYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFDLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzVHLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFdkUsTUFBTSxPQUFPLEdBQUc7SUFDZCwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLG1CQUFtQjtDQUNwQixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFFL0csTUFBTSxVQUFVLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRWhELE1BbUJhLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsaUJBckJYLDBCQUEwQixFQVY1QywyQkFBMkI7WUFDM0IseUJBQXlCO1lBQ3pCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsc0JBQXNCO1lBQ3RCLG1CQUFtQixFQUdVLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixhQU16RyxnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2Qix1QkFBdUIsYUFWUCwwQkFBMEIsRUFWNUMsMkJBQTJCO1lBQzNCLHlCQUF5QjtZQUN6QixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLHNCQUFzQjtZQUN0QixtQkFBbUIsRUFHVSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0I7K0dBdUJoRyxrQkFBa0IsYUFUbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsWUFBWTthQUN2QjtTQUNGLFlBYkMsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsdUJBQXVCOztTQVdkLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQW5COUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3FCQUN4QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLFlBQVk7eUJBQ3ZCO3FCQUNGO29CQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcscUJBQXFCLENBQUM7b0JBQ25FLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcscUJBQXFCLENBQUM7aUJBQy9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0h0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7WVVOWkFJX1RIRU1FX0JUTl9LRVlTfSBmcm9tICdAeWVsb24vdGhlbWUvdGhlbWUtYnRuJztcblxuaW1wb3J0IHtMYXlvdXROYXZBcHBsaWNhdGlvbkNvbXBvbmVudCwgTGF5b3V0TmF2R3JvdXBDb21wb25lbnQsIExheW91dE5hdlRpbGVDb21wb25lbnR9IGZyb20gJy4vbGF5b3V0LW5hdic7XG5pbXBvcnQge1xuICBZdW56YWlDbGVhclN0b3JhZ2VDb21wb25lbnQsXG4gIFl1bnphaUZ1bGxTY3JlZW5Db21wb25lbnQsXG4gIFl1bnphaUkxOE5Db21wb25lbnQsXG4gIFl1bnphaU5vdGlmeUNvbXBvbmVudCxcbiAgWXVuemFpVGhlbUJ0bkNvbXBvbmVudCxcbiAgWXVuemFpVXNlckNvbXBvbmVudFxufSBmcm9tICcuL3dpZGdldHMnO1xuaW1wb3J0IHtZdW56YWlMYXlvdXRCYXNpY0NvbXBvbmVudH0gZnJvbSBcIi4vbGF5b3V0LWJhc2ljL2xheW91dC1iYXNpYy5jb21wb25lbnRcIjtcbmltcG9ydCB7WXVuemFpU2hhcmVkWWVsb25Nb2R1bGV9IGZyb20gXCJAeWVsb24vYmNzL3l1bnphaS1zaGFyZWQteWVsb25cIjtcbmltcG9ydCB7WXVuemFpU2hhcmVkWm9ycm9Nb2R1bGV9IGZyb20gXCJAeWVsb24vYmNzL3l1bnphaS1zaGFyZWQtem9ycm9cIjtcblxuY29uc3QgV0lER0VUUyA9IFtcbiAgWXVuemFpQ2xlYXJTdG9yYWdlQ29tcG9uZW50LFxuICBZdW56YWlGdWxsU2NyZWVuQ29tcG9uZW50LFxuICBZdW56YWlJMThOQ29tcG9uZW50LFxuICBZdW56YWlOb3RpZnlDb21wb25lbnQsXG4gIFl1bnphaVRoZW1CdG5Db21wb25lbnQsXG4gIFl1bnphaVVzZXJDb21wb25lbnRcbl07XG5cbmNvbnN0IExBWU9VVF9OQVZfQ09NUE9ORU5UUyA9IFtMYXlvdXROYXZBcHBsaWNhdGlvbkNvbXBvbmVudCwgTGF5b3V0TmF2R3JvdXBDb21wb25lbnQsIExheW91dE5hdlRpbGVDb21wb25lbnRdO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1l1bnphaUxheW91dEJhc2ljQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFl1bnphaVNoYXJlZFllbG9uTW9kdWxlLFxuICAgIFl1bnphaVNoYXJlZFpvcnJvTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFlVTlpBSV9USEVNRV9CVE5fS0VZUyxcbiAgICAgIHVzZVZhbHVlOiAnc2l0ZS10aGVtZSdcbiAgICB9XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFMsIC4uLldJREdFVFMsIC4uLkxBWU9VVF9OQVZfQ09NUE9ORU5UU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTLCAuLi5XSURHRVRTLCAuLi5MQVlPVVRfTkFWX0NPTVBPTkVOVFNdXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUxheW91dE1vZHVsZSB7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { APP_INITIALIZER, Inject, Injectable } from '@angular/core';
2
2
  import { mergeMap, of } from 'rxjs';
3
3
  import { YUNZAI_I18N_TOKEN } from '@yelon/theme';
4
- import { WINDOW, deepCopy, log } from '@yelon/util';
4
+ import { WINDOW, deepCopy, log, useLocalStorageCurrent, useLocalStorageUser, useLocalStorageDefaultRoute } from '@yelon/util';
5
5
  import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from './bis.config';
6
6
  import { ICONS } from './icon/style-icons';
7
7
  import * as i0 from "@angular/core";
@@ -9,11 +9,10 @@ import * as i1 from "ng-zorro-antd/icon";
9
9
  import * as i2 from "@yelon/theme";
10
10
  import * as i3 from "@yelon/acl";
11
11
  import * as i4 from "./yunzai-auth.service";
12
- import * as i5 from "@yelon/cache";
13
- import * as i6 from "@yelon/util";
14
- import * as i7 from "./yunzai-i18n.service";
12
+ import * as i5 from "@yelon/util";
13
+ import * as i6 from "./yunzai-i18n.service";
15
14
  class YunzaiStartupService {
16
- constructor(iconSrv, menuService, i18n, win, settingService, aclService, titleService, yzAuthService, cacheService, configService) {
15
+ constructor(iconSrv, menuService, i18n, win, settingService, aclService, titleService, yzAuthService, configService) {
17
16
  this.menuService = menuService;
18
17
  this.i18n = i18n;
19
18
  this.win = win;
@@ -21,7 +20,6 @@ class YunzaiStartupService {
21
20
  this.aclService = aclService;
22
21
  this.titleService = titleService;
23
22
  this.yzAuthService = yzAuthService;
24
- this.cacheService = cacheService;
25
23
  this.configService = configService;
26
24
  this.config = BUSINESS_DEFAULT_CONFIG;
27
25
  this.config = mergeBisConfig(this.configService);
@@ -37,7 +35,6 @@ class YunzaiStartupService {
37
35
  }), mergeMap(() => {
38
36
  return this.yzAuthService.login();
39
37
  }), mergeMap(v => {
40
- // preloader finish
41
38
  this.systemInit();
42
39
  log('startup.service: preloader finish');
43
40
  if (this.win && this.win.appBootstrap) {
@@ -48,69 +45,64 @@ class YunzaiStartupService {
48
45
  }
49
46
  systemInit() {
50
47
  log('startup.service: system init');
51
- // user
52
- const yunzaiUser = this.cacheService.get('_yz_user', { mode: 'none' });
53
- // menu
48
+ const [setCurrent,] = useLocalStorageCurrent();
49
+ const [, getUser] = useLocalStorageUser();
50
+ const [setDefaultRoute,] = useLocalStorageDefaultRoute();
51
+ const yunzaiUser = getUser();
52
+ // @ts-ignore
54
53
  const yunzaiMenus = deepCopy(yunzaiUser.menu).filter(m => m.systemCode && m.systemCode === this.config.systemCode);
55
54
  mapYzSideToYelonMenu(yunzaiMenus);
56
55
  const currentMenu = yunzaiMenus.pop();
57
56
  if (currentMenu) {
58
- // logo app
59
57
  this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });
60
58
  this.settingService.setUser({
61
59
  name: yunzaiUser.realname,
62
60
  avatar: `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}` || '',
63
61
  email: yunzaiUser.email
64
62
  });
65
- // title
66
63
  this.titleService.default = currentMenu && currentMenu.text ? currentMenu.text : 'default application name';
67
64
  this.titleService.setTitle(currentMenu && currentMenu.text ? currentMenu.text : 'no title');
68
- // acl
69
65
  const abilities = [];
70
66
  generateAbility([currentMenu], abilities, '');
71
- this.aclService.attachRole(yunzaiUser?.roles
72
- .map((role) => {
67
+ this.aclService.attachRole(yunzaiUser?.roles.map((role) => {
73
68
  return role.roleValue;
74
- })
75
- .filter((a) => !!a) || []);
69
+ }).filter((a) => !!a) || []);
76
70
  this.aclService.attachAbility(abilities);
77
- // aside menu
78
71
  this.menuService.add([currentMenu]);
79
- // cache current
80
- this.cacheService.set('_yz_current', {
72
+ setCurrent({
81
73
  name: currentMenu.text,
82
74
  intro: currentMenu.intro || '',
83
75
  icon: currentMenu.appIconUrl || './assets/tmp/img/avatar.jpg'
84
76
  });
85
- // cache displayIndex
86
77
  const attributes = currentMenu.attribute;
87
78
  if (attributes) {
88
79
  const attr = JSON.parse(attributes);
89
80
  if (attr && attr.defaultRoute) {
90
- this.cacheService.set('_yz_defaultRoute', attr.defaultRoute);
81
+ setDefaultRoute(attr.defaultRoute);
91
82
  }
92
83
  else {
93
- this.cacheService.set('_yz_defaultRoute', '/displayIndex');
84
+ setDefaultRoute("/displayIndex");
94
85
  }
95
86
  }
96
87
  else {
97
- this.cacheService.set('_yz_defaultRoute', '/displayIndex');
88
+ setDefaultRoute("/displayIndex");
98
89
  }
99
90
  }
100
91
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiStartupService, deps: [{ token: i1.NzIconService }, { token: i2.MenuService }, { token: YUNZAI_I18N_TOKEN }, { token: WINDOW }, { token: i2.SettingsService }, { token: i3.ACLService }, { token: i2.TitleService }, { token: i4.YunzaiAuthService }, { token: i5.CacheService }, { token: i6.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiStartupService }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiStartupService, deps: [{ token: i1.NzIconService }, { token: i2.MenuService }, { token: YUNZAI_I18N_TOKEN }, { token: WINDOW }, { token: i2.SettingsService }, { token: i3.ACLService }, { token: i2.TitleService }, { token: i4.YunzaiAuthService }, { token: i5.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiStartupService }); }
103
94
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: YunzaiStartupService, decorators: [{
95
+ export { YunzaiStartupService };
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: YunzaiStartupService, decorators: [{
105
97
  type: Injectable
106
- }], ctorParameters: function () { return [{ type: i1.NzIconService }, { type: i2.MenuService }, { type: i7.YunzaiI18NService, decorators: [{
98
+ }], ctorParameters: function () { return [{ type: i1.NzIconService }, { type: i2.MenuService }, { type: i6.YunzaiI18NService, decorators: [{
107
99
  type: Inject,
108
100
  args: [YUNZAI_I18N_TOKEN]
109
101
  }] }, { type: undefined, decorators: [{
110
102
  type: Inject,
111
103
  args: [WINDOW]
112
- }] }, { type: i2.SettingsService }, { type: i3.ACLService }, { type: i2.TitleService }, { type: i4.YunzaiAuthService }, { type: i5.CacheService }, { type: i6.YunzaiConfigService }]; } });
113
- function mapYzSideToYelonMenu(menus) {
104
+ }] }, { type: i2.SettingsService }, { type: i3.ACLService }, { type: i2.TitleService }, { type: i4.YunzaiAuthService }, { type: i5.YunzaiConfigService }]; } });
105
+ export function mapYzSideToYelonMenu(menus) {
114
106
  menus.forEach(menu => {
115
107
  menu.badgeDot = menu.badge_dot || null;
116
108
  menu.badgeStatus = menu.badge_status || null;
@@ -121,7 +113,7 @@ function mapYzSideToYelonMenu(menus) {
121
113
  }
122
114
  });
123
115
  }
124
- function generateAbility(menus, abilities, prefix) {
116
+ export function generateAbility(menus, abilities, prefix) {
125
117
  menus.forEach(menu => {
126
118
  if (menu.link) {
127
119
  prefix += menu.link;
@@ -140,11 +132,11 @@ function generateAbility(menus, abilities, prefix) {
140
132
  }
141
133
  });
142
134
  }
143
- function YunzaiStartupServiceFactory(startupService) {
135
+ export function YunzaiStartupServiceFactory(startupService) {
144
136
  return () => startupService.load();
145
137
  }
146
138
  //@ts-ignore
147
- const YUNZAI_APPINIT_PROVIDES = [
139
+ export const YUNZAI_APPINIT_PROVIDES = [
148
140
  YunzaiStartupService,
149
141
  {
150
142
  provide: APP_INITIALIZER,
@@ -153,5 +145,4 @@ const YUNZAI_APPINIT_PROVIDES = [
153
145
  multi: true
154
146
  }
155
147
  ];
156
- export { YunzaiStartupService as YzStartupService, YunzaiStartupService, YunzaiStartupServiceFactory as YzStartupServiceFactory, YunzaiStartupServiceFactory, YUNZAI_APPINIT_PROVIDES as YZ_APPINIT_PROVIDES, YUNZAI_APPINIT_PROVIDES, mapYzSideToYelonMenu, generateAbility };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQveXVuemFpLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFjLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJaEQsT0FBTyxFQUFvRCxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsTUFBTSxFQUE2QyxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSS9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFJM0MsTUFDTSxvQkFBb0I7SUFHeEIsWUFDRSxPQUFzQixFQUNkLFdBQXdCLEVBQ0csSUFBdUIsRUFDbEMsR0FBYyxFQUM5QixjQUErQixFQUMvQixVQUFzQixFQUN0QixZQUEwQixFQUMxQixhQUFnQyxFQUNoQyxZQUEwQixFQUMxQixhQUFrQztRQVJsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNHLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQVpwQyxXQUFNLEdBQXlCLHVCQUF1QixDQUFDO1FBYzdE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QUksSUFBSSxDQUFDLElBQUksQ0FBQztTQUNyQjthQUFNO1lBQ0wsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUNkO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsY0FBb0M7SUFDdkUsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELFlBQVk7QUFDWixNQUFNLHVCQUF1QixHQUFHO0lBQzlCLG9CQUFvQjtJQUNwQjtRQUNFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSwyQkFBMkI7UUFDdkMsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDNUIsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQ0wsb0JBQW9CLElBQUksZ0JBQWdCLEVBQ3hDLG9CQUFvQixFQUNwQiwyQkFBMkIsSUFBSSx1QkFBdUIsRUFDdEQsMkJBQTJCLEVBQzNCLHVCQUF1QixJQUFJLG1CQUFtQixFQUM5Qyx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtZXJnZU1hcCwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQUNMU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9hY2wnO1xuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlLCBZdW56YWlNZW51LCBZdW56YWlNZW51QXR0cmlidXRlLCBZdW56YWlVc2VyIH0gZnJvbSAnQHllbG9uL2NhY2hlJztcbmltcG9ydCB7IE1lbnUsIE1lbnVTZXJ2aWNlLCBTZXR0aW5nc1NlcnZpY2UsIFRpdGxlU2VydmljZSwgWVVOWkFJX0kxOE5fVE9LRU4gfSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHsgV0lORE9XLCBZdW56YWlCdXNpbmVzc0NvbmZpZywgWXVuemFpQ29uZmlnU2VydmljZSwgZGVlcENvcHksIGxvZyB9IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOekljb25TZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcblxuaW1wb3J0IHsgQlVTSU5FU1NfREVGQVVMVF9DT05GSUcsIG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnLi9iaXMuY29uZmlnJztcbmltcG9ydCB7IElDT05TIH0gZnJvbSAnLi9pY29uL3N0eWxlLWljb25zJztcbmltcG9ydCB7IFl1bnphaUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi95dW56YWktYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFl1bnphaUkxOE5TZXJ2aWNlIH0gZnJvbSAnLi95dW56YWktaTE4bi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuY2xhc3MgWXVuemFpU3RhcnR1cFNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZzogWXVuemFpQnVzaW5lc3NDb25maWcgPSBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpY29uU3J2OiBOekljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIEBJbmplY3QoWVVOWkFJX0kxOE5fVE9LRU4pIHByaXZhdGUgaTE4bjogWXVuemFpSTE4TlNlcnZpY2UsXG4gICAgQEluamVjdChXSU5ET1cpIHByaXZhdGUgd2luOiBOelNhZmVBbnksXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNsU2VydmljZTogQUNMU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgeXpBdXRoU2VydmljZTogWXVuemFpQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IFl1bnphaUNvbmZpZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jb25maWcgPSBtZXJnZUJpc0NvbmZpZyh0aGlzLmNvbmZpZ1NlcnZpY2UpO1xuICAgIGljb25TcnYuYWRkSWNvbiguLi5JQ09OUyk7XG4gIH1cblxuICBsb2FkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxvZygnc3RhcnR1cC5zZXJ2aWNlOiAnLCAnbG9hZCcpO1xuICAgIGxldCBkZWZhdWx0TGFuZzogc3RyaW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5sYXlvdXQubGFuZyB8fCB0aGlzLmkxOG4uZGVmYXVsdExhbmc7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi5sb2FkTGFuZ0RhdGEoZGVmYXVsdExhbmcpLnBpcGUoXG4gICAgICBtZXJnZU1hcChsYW5nRGF0YSA9PiB7XG4gICAgICAgIGxvZygnc3RhcnR1cC5zZXJ2aWNlOiAnLCAnc2V0IGkxOG4sIGRlZmF1bHRMYW5nLT4nLCBkZWZhdWx0TGFuZywgJyBsYW5nRGF0YS0+JywgbGFuZ0RhdGEpO1xuICAgICAgICB0aGlzLmkxOG4udXNlKGRlZmF1bHRMYW5nISwgbGFuZ0RhdGEpO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMueXpBdXRoU2VydmljZS5sb2dpbigpO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgLy8gcHJlbG9hZGVyIGZpbmlzaFxuICAgICAgICB0aGlzLnN5c3RlbUluaXQoKTtcbiAgICAgICAgbG9nKCdzdGFydHVwLnNlcnZpY2U6IHByZWxvYWRlciBmaW5pc2gnKTtcbiAgICAgICAgaWYgKHRoaXMud2luICYmIHRoaXMud2luLmFwcEJvb3RzdHJhcCkge1xuICAgICAgICAgIHRoaXMud2luLmFwcEJvb3RzdHJhcCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZih2KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHN5c3RlbUluaXQoKTogdm9pZCB7XG4gICAgbG9nKCdzdGFydHVwLnNlcnZpY2U6IHN5c3RlbSBpbml0Jyk7XG4gICAgLy8gdXNlclxuICAgIGNvbnN0IHl1bnphaVVzZXI6IFl1bnphaVVzZXIgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el91c2VyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgLy8gbWVudVxuICAgIGNvbnN0IHl1bnphaU1lbnVzOiBZdW56YWlNZW51W10gPSBkZWVwQ29weSh5dW56YWlVc2VyLm1lbnUpLmZpbHRlcihcbiAgICAgIG0gPT4gbS5zeXN0ZW1Db2RlICYmIG0uc3lzdGVtQ29kZSA9PT0gdGhpcy5jb25maWcuc3lzdGVtQ29kZVxuICAgICk7XG4gICAgbWFwWXpTaWRlVG9ZZWxvbk1lbnUoeXVuemFpTWVudXMpO1xuICAgIGNvbnN0IGN1cnJlbnRNZW51ID0geXVuemFpTWVudXMucG9wKCk7XG4gICAgaWYgKGN1cnJlbnRNZW51KSB7XG4gICAgICAvLyBsb2dvIGFwcFxuICAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5zZXRBcHAoeyBuYW1lOiBjdXJyZW50TWVudS50ZXh0LCBkZXNjcmlwdGlvbjogY3VycmVudE1lbnUuaW50cm8gfSk7XG4gICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldFVzZXIoe1xuICAgICAgICBuYW1lOiB5dW56YWlVc2VyLnJlYWxuYW1lLFxuICAgICAgICBhdmF0YXI6IGAke3RoaXMuY29uZmlnLmJhc2VVcmx9L2ZpbGVjZW50ZXIvZmlsZS8ke3l1bnphaVVzZXIuYXZhdGFySWR9YCB8fCAnJyxcbiAgICAgICAgZW1haWw6IHl1bnphaVVzZXIuZW1haWxcbiAgICAgIH0pO1xuICAgICAgLy8gdGl0bGVcbiAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLmRlZmF1bHQgPSBjdXJyZW50TWVudSAmJiBjdXJyZW50TWVudS50ZXh0ID8gY3VycmVudE1lbnUudGV4dCA6ICdkZWZhdWx0IGFwcGxpY2F0aW9uIG5hbWUnO1xuICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoY3VycmVudE1lbnUgJiYgY3VycmVudE1lbnUudGV4dCA/IGN1cnJlbnRNZW51LnRleHQgOiAnbm8gdGl0bGUnKTtcbiAgICAgIC8vIGFjbFxuICAgICAgY29uc3QgYWJpbGl0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZ2VuZXJhdGVBYmlsaXR5KFtjdXJyZW50TWVudV0sIGFiaWxpdGllcywgJycpO1xuICAgICAgdGhpcy5hY2xTZXJ2aWNlLmF0dGFjaFJvbGUoXG4gICAgICAgIHl1bnphaVVzZXI/LnJvbGVzXG4gICAgICAgICAgLm1hcCgocm9sZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcm9sZS5yb2xlVmFsdWU7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKChhOiBOelNhZmVBbnkpID0+ICEhYSkgfHwgW11cbiAgICAgICk7XG4gICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoQWJpbGl0eShhYmlsaXRpZXMpO1xuICAgICAgLy8gYXNpZGUgbWVudVxuICAgICAgdGhpcy5tZW51U2VydmljZS5hZGQoW2N1cnJlbnRNZW51IGFzIE1lbnVdKTtcbiAgICAgIC8vIGNhY2hlIGN1cnJlbnRcbiAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldCgnX3l6X2N1cnJlbnQnLCB7XG4gICAgICAgIG5hbWU6IGN1cnJlbnRNZW51LnRleHQsXG4gICAgICAgIGludHJvOiBjdXJyZW50TWVudS5pbnRybyB8fCAnJyxcbiAgICAgICAgaWNvbjogY3VycmVudE1lbnUuYXBwSWNvblVybCB8fCAnLi9hc3NldHMvdG1wL2ltZy9hdmF0YXIuanBnJ1xuICAgICAgfSk7XG4gICAgICAvLyBjYWNoZSBkaXNwbGF5SW5kZXhcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBjdXJyZW50TWVudS5hdHRyaWJ1dGU7XG4gICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICBjb25zdCBhdHRyOiBZdW56YWlNZW51QXR0cmlidXRlID0gSlNPTi5wYXJzZShhdHRyaWJ1dGVzKTtcbiAgICAgICAgaWYgKGF0dHIgJiYgYXR0ci5kZWZhdWx0Um91dGUpIHtcbiAgICAgICAgICB0aGlzLmNhY2hlU2VydmljZS5zZXQoJ195el9kZWZhdWx0Um91dGUnLCBhdHRyLmRlZmF1bHRSb3V0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2Uuc2V0KCdfeXpfZGVmYXVsdFJvdXRlJywgJy9kaXNwbGF5SW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2Uuc2V0KCdfeXpfZGVmYXVsdFJvdXRlJywgJy9kaXNwbGF5SW5kZXgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwWXpTaWRlVG9ZZWxvbk1lbnUobWVudXM6IFl1bnphaU1lbnVbXSk6IHZvaWQge1xuICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgIG1lbnUuYmFkZ2VEb3QgPSBtZW51LmJhZGdlX2RvdCB8fCBudWxsO1xuICAgIG1lbnUuYmFkZ2VTdGF0dXMgPSBtZW51LmJhZGdlX3N0YXR1cyB8fCBudWxsO1xuICAgIG1lbnUuc2hvcnRjdXRSb290ID0gbWVudS5zaG9ydGN1dF9yb290IHx8IG51bGw7XG4gICAgbWVudS5yZXVzZSA9IHRydWU7XG4gICAgaWYgKG1lbnUuY2hpbGRyZW4pIHtcbiAgICAgIG1hcFl6U2lkZVRvWWVsb25NZW51KG1lbnUuY2hpbGRyZW4pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQWJpbGl0eShtZW51czogWXVuemFpTWVudVtdLCBhYmlsaXRpZXM6IHN0cmluZ1tdLCBwcmVmaXg6IHN0cmluZyk6IHZvaWQge1xuICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgIGlmIChtZW51LmxpbmspIHtcbiAgICAgIHByZWZpeCArPSBtZW51Lmxpbms7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZWZpeCArPSAnJztcbiAgICB9XG4gICAgaWYgKG1lbnUubWVudUF1dGhzKSB7XG4gICAgICBtZW51Lm1lbnVBdXRocy5mb3JFYWNoKChhOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWJpbGl0aWVzLnB1c2goYCR7cHJlZml4fToke2F9YCk7XG4gICAgICAgIGFiaWxpdGllcy5wdXNoKGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnUuY2hpbGRyZW4pIHtcbiAgICAgIGdlbmVyYXRlQWJpbGl0eShtZW51LmNoaWxkcmVuLCBhYmlsaXRpZXMsIHByZWZpeCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gWXVuemFpU3RhcnR1cFNlcnZpY2VGYWN0b3J5KHN0YXJ0dXBTZXJ2aWNlOiBZdW56YWlTdGFydHVwU2VydmljZSk6ICgpID0+IE9ic2VydmFibGU8dm9pZD4ge1xuICByZXR1cm4gKCkgPT4gc3RhcnR1cFNlcnZpY2UubG9hZCgpO1xufVxuXG4vL0B0cy1pZ25vcmVcbmNvbnN0IFlVTlpBSV9BUFBJTklUX1BST1ZJREVTID0gW1xuICBZdW56YWlTdGFydHVwU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiBZdW56YWlTdGFydHVwU2VydmljZUZhY3RvcnksXG4gICAgZGVwczogW1l1bnphaVN0YXJ0dXBTZXJ2aWNlXSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XG5dO1xuXG5leHBvcnQge1xuICBZdW56YWlTdGFydHVwU2VydmljZSBhcyBZelN0YXJ0dXBTZXJ2aWNlLFxuICBZdW56YWlTdGFydHVwU2VydmljZSxcbiAgWXVuemFpU3RhcnR1cFNlcnZpY2VGYWN0b3J5IGFzIFl6U3RhcnR1cFNlcnZpY2VGYWN0b3J5LFxuICBZdW56YWlTdGFydHVwU2VydmljZUZhY3RvcnksXG4gIFlVTlpBSV9BUFBJTklUX1BST1ZJREVTIGFzIFlaX0FQUElOSVRfUFJPVklERVMsXG4gIFlVTlpBSV9BUFBJTklUX1BST1ZJREVTLFxuICBtYXBZelNpZGVUb1llbG9uTWVudSxcbiAgZ2VuZXJhdGVBYmlsaXR5XG59O1xuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQveXVuemFpLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFhLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFtRCxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNqRyxPQUFPLEVBRUgsTUFBTSxFQUdOLFFBQVEsRUFDUixHQUFHLEVBQ2tCLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUNoRyxNQUFNLGFBQWEsQ0FBQztBQUlyQixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7QUFJekMsTUFDYSxvQkFBb0I7SUFHN0IsWUFDSSxPQUFzQixFQUNkLFdBQXdCLEVBQ0csSUFBdUIsRUFDbEMsR0FBYyxFQUM5QixjQUErQixFQUMvQixVQUFzQixFQUN0QixZQUEwQixFQUMxQixhQUFnQyxFQUNoQyxhQUFrQztRQVBsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNHLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQVh0QyxXQUFNLEdBQXlCLHVCQUF1QixDQUFDO1FBYTNELElB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QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3JEO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLGNBQW9DO0lBQzVFLE9BQU8sR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxZQUFZO0FBQ1osTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMsb0JBQW9CO0lBQ3BCO1FBQ0ksT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLDJCQUEyQjtRQUN2QyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUM1QixLQUFLLEVBQUUsSUFBSTtLQUNkO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBtZXJnZU1hcCwgb2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FDTFNlcnZpY2V9IGZyb20gJ0B5ZWxvbi9hY2wnO1xuaW1wb3J0IHtNZW51LCBNZW51U2VydmljZSwgU2V0dGluZ3NTZXJ2aWNlLCBUaXRsZVNlcnZpY2UsIFlVTlpBSV9JMThOX1RPS0VOfSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHtcbiAgICBZdW56YWlNZW51LFxuICAgIFdJTkRPVyxcbiAgICBZdW56YWlCdXNpbmVzc0NvbmZpZyxcbiAgICBZdW56YWlDb25maWdTZXJ2aWNlLFxuICAgIGRlZXBDb3B5LFxuICAgIGxvZyxcbiAgICBZdW56YWlNZW51QXR0cmlidXRlLCB1c2VMb2NhbFN0b3JhZ2VDdXJyZW50LCB1c2VMb2NhbFN0b3JhZ2VVc2VyLCB1c2VMb2NhbFN0b3JhZ2VEZWZhdWx0Um91dGVcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHtOelNhZmVBbnl9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQge056SWNvblNlcnZpY2V9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5cbmltcG9ydCB7QlVTSU5FU1NfREVGQVVMVF9DT05GSUcsIG1lcmdlQmlzQ29uZmlnfSBmcm9tICcuL2Jpcy5jb25maWcnO1xuaW1wb3J0IHtJQ09OU30gZnJvbSAnLi9pY29uL3N0eWxlLWljb25zJztcbmltcG9ydCB7WXVuemFpQXV0aFNlcnZpY2V9IGZyb20gJy4veXVuemFpLWF1dGguc2VydmljZSc7XG5pbXBvcnQge1l1bnphaUkxOE5TZXJ2aWNlfSBmcm9tICcuL3l1bnphaS1pMThuLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWXVuemFpU3RhcnR1cFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29uZmlnOiBZdW56YWlCdXNpbmVzc0NvbmZpZyA9IEJVU0lORVNTX0RFRkFVTFRfQ09ORklHO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGljb25TcnY6IE56SWNvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFlVTlpBSV9JMThOX1RPS0VOKSBwcml2YXRlIGkxOG46IFl1bnphaUkxOE5TZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSB3aW46IE56U2FmZUFueSxcbiAgICAgICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjbFNlcnZpY2U6IEFDTFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgeXpBdXRoU2VydmljZTogWXVuemFpQXV0aFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogWXVuemFpQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IG1lcmdlQmlzQ29uZmlnKHRoaXMuY29uZmlnU2VydmljZSk7XG4gICAgICAgIGljb25TcnYuYWRkSWNvbiguLi5JQ09OUyk7XG4gICAgfVxuXG4gICAgbG9hZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgbG9nKCdzdGFydHVwLnNlcnZpY2U6ICcsICdsb2FkJyk7XG4gICAgICAgIGxldCBkZWZhdWx0TGFuZzogc3RyaW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5sYXlvdXQubGFuZyB8fCB0aGlzLmkxOG4uZGVmYXVsdExhbmc7XG4gICAgICAgIHJldHVybiB0aGlzLmkxOG4ubG9hZExhbmdEYXRhKGRlZmF1bHRMYW5nKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAobGFuZ0RhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGxvZygnc3RhcnR1cC5zZXJ2aWNlOiAnLCAnc2V0IGkxOG4sIGRlZmF1bHRMYW5nLT4nLCBkZWZhdWx0TGFuZywgJyBsYW5nRGF0YS0+JywgbGFuZ0RhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaTE4bi51c2UoZGVmYXVsdExhbmchLCBsYW5nRGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMueXpBdXRoU2VydmljZS5sb2dpbigpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUluaXQoKTtcbiAgICAgICAgICAgICAgICBsb2coJ3N0YXJ0dXAuc2VydmljZTogcHJlbG9hZGVyIGZpbmlzaCcpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndpbiAmJiB0aGlzLndpbi5hcHBCb290c3RyYXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53aW4uYXBwQm9vdHN0cmFwKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvZih2KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3lzdGVtSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgbG9nKCdzdGFydHVwLnNlcnZpY2U6IHN5c3RlbSBpbml0Jyk7XG4gICAgICAgIGNvbnN0IFtzZXRDdXJyZW50LF0gPSB1c2VMb2NhbFN0b3JhZ2VDdXJyZW50KClcbiAgICAgICAgY29uc3QgWywgZ2V0VXNlcl0gPSB1c2VMb2NhbFN0b3JhZ2VVc2VyKClcbiAgICAgICAgY29uc3QgW3NldERlZmF1bHRSb3V0ZSxdID0gdXNlTG9jYWxTdG9yYWdlRGVmYXVsdFJvdXRlKClcbiAgICAgICAgY29uc3QgeXVuemFpVXNlciA9IGdldFVzZXIoKSE7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgeXVuemFpTWVudXM6IFl1bnphaU1lbnVbXSA9IGRlZXBDb3B5KHl1bnphaVVzZXIubWVudSkuZmlsdGVyKFxuICAgICAgICAgICAgbSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmNvbmZpZy5zeXN0ZW1Db2RlXG4gICAgICAgICk7XG4gICAgICAgIG1hcFl6U2lkZVRvWWVsb25NZW51KHl1bnphaU1lbnVzKTtcbiAgICAgICAgY29uc3QgY3VycmVudE1lbnUgPSB5dW56YWlNZW51cy5wb3AoKTtcbiAgICAgICAgaWYgKGN1cnJlbnRNZW51KSB7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldEFwcCh7bmFtZTogY3VycmVudE1lbnUudGV4dCwgZGVzY3JpcHRpb246IGN1cnJlbnRNZW51LmludHJvfSk7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldFVzZXIoe1xuICAgICAgICAgICAgICAgIG5hbWU6IHl1bnphaVVzZXIucmVhbG5hbWUsXG4gICAgICAgICAgICAgICAgYXZhdGFyOiBgJHt0aGlzLmNvbmZpZy5iYXNlVXJsfS9maWxlY2VudGVyL2ZpbGUvJHt5dW56YWlVc2VyLmF2YXRhcklkfWAgfHwgJycsXG4gICAgICAgICAgICAgICAgZW1haWw6IHl1bnphaVVzZXIuZW1haWxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50aXRsZVNlcnZpY2UuZGVmYXVsdCA9IGN1cnJlbnRNZW51ICYmIGN1cnJlbnRNZW51LnRleHQgPyBjdXJyZW50TWVudS50ZXh0IDogJ2RlZmF1bHQgYXBwbGljYXRpb24gbmFtZSc7XG4gICAgICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShjdXJyZW50TWVudSAmJiBjdXJyZW50TWVudS50ZXh0ID8gY3VycmVudE1lbnUudGV4dCA6ICdubyB0aXRsZScpO1xuICAgICAgICAgICAgY29uc3QgYWJpbGl0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgICAgZ2VuZXJhdGVBYmlsaXR5KFtjdXJyZW50TWVudV0sIGFiaWxpdGllcywgJycpO1xuICAgICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLmF0dGFjaFJvbGUoeXVuemFpVXNlcj8ucm9sZXMubWFwKChyb2xlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcm9sZS5yb2xlVmFsdWU7XG4gICAgICAgICAgICB9KS5maWx0ZXIoKGE6IE56U2FmZUFueSkgPT4gISFhKSB8fCBbXSk7XG4gICAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoQWJpbGl0eShhYmlsaXRpZXMpO1xuICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5hZGQoW2N1cnJlbnRNZW51IGFzIE1lbnVdKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGN1cnJlbnRNZW51LnRleHQsXG4gICAgICAgICAgICAgICAgaW50cm86IGN1cnJlbnRNZW51LmludHJvIHx8ICcnLFxuICAgICAgICAgICAgICAgIGljb246IGN1cnJlbnRNZW51LmFwcEljb25VcmwgfHwgJy4vYXNzZXRzL3RtcC9pbWcvYXZhdGFyLmpwZydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gY3VycmVudE1lbnUuYXR0cmlidXRlO1xuICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyOiBZdW56YWlNZW51QXR0cmlidXRlID0gSlNPTi5wYXJzZShhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoYXR0ciAmJiBhdHRyLmRlZmF1bHRSb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXREZWZhdWx0Um91dGUoYXR0ci5kZWZhdWx0Um91dGUpXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RGVmYXVsdFJvdXRlKFwiL2Rpc3BsYXlJbmRleFwiKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFJvdXRlKFwiL2Rpc3BsYXlJbmRleFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwWXpTaWRlVG9ZZWxvbk1lbnUobWVudXM6IFl1bnphaU1lbnVbXSk6IHZvaWQge1xuICAgIG1lbnVzLmZvckVhY2gobWVudSA9PiB7XG4gICAgICAgIG1lbnUuYmFkZ2VEb3QgPSBtZW51LmJhZGdlX2RvdCB8fCBudWxsO1xuICAgICAgICBtZW51LmJhZGdlU3RhdHVzID0gbWVudS5iYWRnZV9zdGF0dXMgfHwgbnVsbDtcbiAgICAgICAgbWVudS5zaG9ydGN1dFJvb3QgPSBtZW51LnNob3J0Y3V0X3Jvb3QgfHwgbnVsbDtcbiAgICAgICAgbWVudS5yZXVzZSA9IHRydWU7XG4gICAgICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBtYXBZelNpZGVUb1llbG9uTWVudShtZW51LmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBYmlsaXR5KG1lbnVzOiBZdW56YWlNZW51W10sIGFiaWxpdGllczogc3RyaW5nW10sIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgbWVudXMuZm9yRWFjaChtZW51ID0+IHtcbiAgICAgICAgaWYgKG1lbnUubGluaykge1xuICAgICAgICAgICAgcHJlZml4ICs9IG1lbnUubGluaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByZWZpeCArPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVudS5tZW51QXV0aHMpIHtcbiAgICAgICAgICAgIG1lbnUubWVudUF1dGhzLmZvckVhY2goKGE6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGFiaWxpdGllcy5wdXNoKGAke3ByZWZpeH06JHthfWApO1xuICAgICAgICAgICAgICAgIGFiaWxpdGllcy5wdXNoKGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWVudS5jaGlsZHJlbikge1xuICAgICAgICAgICAgZ2VuZXJhdGVBYmlsaXR5KG1lbnUuY2hpbGRyZW4sIGFiaWxpdGllcywgcHJlZml4KTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gWXVuemFpU3RhcnR1cFNlcnZpY2VGYWN0b3J5KHN0YXJ0dXBTZXJ2aWNlOiBZdW56YWlTdGFydHVwU2VydmljZSk6ICgpID0+IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiAoKSA9PiBzdGFydHVwU2VydmljZS5sb2FkKCk7XG59XG5cbi8vQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IFlVTlpBSV9BUFBJTklUX1BST1ZJREVTID0gW1xuICAgIFl1bnphaVN0YXJ0dXBTZXJ2aWNlLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICB1c2VGYWN0b3J5OiBZdW56YWlTdGFydHVwU2VydmljZUZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtZdW56YWlTdGFydHVwU2VydmljZV0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuXTtcblxuIl19