@yelon/bis 12.0.16 → 13.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/bis.d.ts +1 -0
  2. package/{esm2015/bis.js → esm2020/bis.mjs} +0 -0
  3. package/esm2020/layout/act.guard.mjs +108 -0
  4. package/{esm2015/layout/bis.config.js → esm2020/layout/bis.config.mjs} +0 -0
  5. package/esm2020/layout/contact/contact.component.mjs +492 -0
  6. package/esm2020/layout/contact/contact.service.mjs +146 -0
  7. package/esm2020/layout/layout.mjs +5 -0
  8. package/esm2020/layout/layout.module.mjs +73 -0
  9. package/{esm2015/layout/path-to-regexp.service.js → esm2020/layout/path-to-regexp.service.mjs} +9 -8
  10. package/{esm2015/layout/public_api.js → esm2020/layout/public_api.mjs} +3 -3
  11. package/esm2020/layout/stomp.config.mjs +18 -0
  12. package/{esm2015/layout/widgets/index.js → esm2020/layout/widgets/index.mjs} +0 -0
  13. package/esm2020/layout/widgets/yz.application.component.mjs +271 -0
  14. package/esm2020/layout/widgets/yz.clear-storage.component.mjs +45 -0
  15. package/esm2020/layout/widgets/yz.fullscreen.component.mjs +45 -0
  16. package/esm2020/layout/widgets/yz.i18n.component.mjs +115 -0
  17. package/esm2020/layout/widgets/yz.notify.component.mjs +184 -0
  18. package/esm2020/layout/widgets/yz.them-btn.component.mjs +196 -0
  19. package/esm2020/layout/widgets/yz.user.component.mjs +112 -0
  20. package/esm2020/layout/yz.auth.service.mjs +156 -0
  21. package/esm2020/layout/yz.basic.component.mjs +207 -0
  22. package/esm2020/layout/yz.default.interceptor.mjs +203 -0
  23. package/esm2020/layout/yz.i18n.service.mjs +93 -0
  24. package/esm2020/layout/yz.startup.service.mjs +137 -0
  25. package/esm2020/layout/yz.stomp.service.mjs +88 -0
  26. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  27. package/{esm2015/shared/public_api.js → esm2020/shared/public_api.mjs} +0 -0
  28. package/esm2020/shared/shared-yelon.module.mjs +108 -0
  29. package/{esm2015/shared/shared-zorro.module.js → esm2020/shared/shared-zorro.module.mjs} +0 -0
  30. package/{esm2015/shared/shared.js → esm2020/shared/shared.mjs} +0 -0
  31. package/esm2020/shared/shared.module.mjs +116 -0
  32. package/{esm2015/shared/style-icons.js → esm2020/shared/style-icons.mjs} +0 -0
  33. package/fesm2015/{bis.js → bis.mjs} +1 -1
  34. package/fesm2015/bis.mjs.map +1 -0
  35. package/fesm2015/layout.mjs +2787 -0
  36. package/fesm2015/layout.mjs.map +1 -0
  37. package/fesm2015/{shared.js → shared.mjs} +113 -12
  38. package/fesm2015/shared.mjs.map +1 -0
  39. package/fesm2020/bis.mjs +6 -0
  40. package/fesm2020/bis.mjs.map +1 -0
  41. package/fesm2020/layout.mjs +2796 -0
  42. package/fesm2020/layout.mjs.map +1 -0
  43. package/fesm2020/shared.mjs +1106 -0
  44. package/fesm2020/shared.mjs.map +1 -0
  45. package/layout/act.guard.d.ts +3 -0
  46. package/layout/contact/contact.component.d.ts +169 -0
  47. package/layout/contact/contact.service.d.ts +118 -0
  48. package/layout/layout.d.ts +1 -1
  49. package/layout/layout.module.d.ts +18 -0
  50. package/layout/package.json +5 -6
  51. package/layout/path-to-regexp.service.d.ts +3 -0
  52. package/layout/public_api.d.ts +2 -0
  53. package/layout/widgets/yz.application.component.d.ts +3 -0
  54. package/layout/widgets/yz.clear-storage.component.d.ts +3 -0
  55. package/layout/widgets/yz.fullscreen.component.d.ts +3 -1
  56. package/layout/widgets/yz.i18n.component.d.ts +3 -0
  57. package/layout/widgets/yz.notify.component.d.ts +8 -3
  58. package/layout/widgets/yz.them-btn.component.d.ts +3 -0
  59. package/layout/widgets/yz.user.component.d.ts +3 -0
  60. package/layout/yz.auth.service.d.ts +3 -0
  61. package/layout/yz.basic.component.d.ts +11 -2
  62. package/layout/yz.default.interceptor.d.ts +3 -0
  63. package/layout/yz.i18n.service.d.ts +3 -0
  64. package/layout/yz.startup.service.d.ts +4 -1
  65. package/layout/yz.stomp.service.d.ts +6 -3
  66. package/package.json +46 -18
  67. package/shared/package.json +5 -6
  68. package/shared/shared-zorro.module.d.ts +2 -2
  69. package/shared/shared.d.ts +1 -0
  70. package/shared/shared.module.d.ts +93 -0
  71. package/bis.metadata.json +0 -1
  72. package/bundles/bis.umd.js +0 -18
  73. package/bundles/bis.umd.js.map +0 -1
  74. package/bundles/layout.umd.js +0 -2080
  75. package/bundles/layout.umd.js.map +0 -1
  76. package/bundles/shared.umd.js +0 -1253
  77. package/bundles/shared.umd.js.map +0 -1
  78. package/esm2015/layout/act.guard.js +0 -115
  79. package/esm2015/layout/layout.js +0 -6
  80. package/esm2015/layout/layout.module.js +0 -37
  81. package/esm2015/layout/stomp.config.js +0 -20
  82. package/esm2015/layout/widgets/yz.application.component.js +0 -200
  83. package/esm2015/layout/widgets/yz.clear-storage.component.js +0 -39
  84. package/esm2015/layout/widgets/yz.fullscreen.component.js +0 -36
  85. package/esm2015/layout/widgets/yz.i18n.component.js +0 -78
  86. package/esm2015/layout/widgets/yz.notify.component.js +0 -154
  87. package/esm2015/layout/widgets/yz.them-btn.component.js +0 -146
  88. package/esm2015/layout/widgets/yz.user.component.js +0 -81
  89. package/esm2015/layout/yz.auth.service.js +0 -158
  90. package/esm2015/layout/yz.basic.component.js +0 -101
  91. package/esm2015/layout/yz.default.interceptor.js +0 -204
  92. package/esm2015/layout/yz.i18n.service.js +0 -102
  93. package/esm2015/layout/yz.startup.service.js +0 -138
  94. package/esm2015/layout/yz.stomp.service.js +0 -91
  95. package/esm2015/shared/shared-yelon.module.js +0 -108
  96. package/esm2015/shared/shared.module.js +0 -16
  97. package/fesm2015/bis.js.map +0 -1
  98. package/fesm2015/layout.js +0 -1869
  99. package/fesm2015/layout.js.map +0 -1
  100. package/fesm2015/shared.js.map +0 -1
  101. package/layout/layout.metadata.json +0 -1
  102. package/shared/shared.metadata.json +0 -1
package/bis.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@yelon/bis" />
4
5
  export * from './public_api';
File without changes
@@ -0,0 +1,108 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { deepCopy, log } from '@yelon/util';
3
+ import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from './bis.config';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@yelon/util";
6
+ import * as i2 from "@yelon/cache";
7
+ import * as i3 from "./path-to-regexp.service";
8
+ import * as i4 from "@angular/router";
9
+ export class ActGuard {
10
+ constructor(configService, cacheService, pathToRegexp, router) {
11
+ this.configService = configService;
12
+ this.cacheService = cacheService;
13
+ this.pathToRegexp = pathToRegexp;
14
+ this.router = router;
15
+ this.bis = BUSINESS_DEFAULT_CONFIG;
16
+ this.menus = [];
17
+ this.links = [];
18
+ log('act: ');
19
+ this.bis = mergeBisConfig(this.configService);
20
+ log('act: config ', this.bis);
21
+ const user = this.cacheService.get('_yz_user', { mode: 'none' });
22
+ log('act: user ', user);
23
+ this.menus = deepCopy(user.menu).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
24
+ log('act: menus ', this.menus);
25
+ this.getAllLinks(this.menus, this.links);
26
+ log('act: links ', this.links);
27
+ }
28
+ canActivate(_, state) {
29
+ log('act: can activate ', state);
30
+ if (this.preHandle(state)) {
31
+ return true;
32
+ }
33
+ log('act: can activate child prehandle success');
34
+ let canactivate = false;
35
+ this.links.forEach((link) => {
36
+ const regexp = this.pathToRegexp.stringToRegexp(link, null, null);
37
+ log(`act: ${link} test ${state.url.split('?')[0]}`);
38
+ if (regexp.test(state.url.split('?')[0])) {
39
+ canactivate = true;
40
+ log(`act: test value ${canactivate}`);
41
+ return;
42
+ }
43
+ });
44
+ if (canactivate) {
45
+ log(`act: test sucess`);
46
+ return true;
47
+ }
48
+ else {
49
+ log(`act: test error`);
50
+ this.router.navigate(['displayIndex']);
51
+ return false;
52
+ }
53
+ }
54
+ canActivateChild(_, state) {
55
+ log('act: can activate child ', state);
56
+ if (this.preHandle(state)) {
57
+ return true;
58
+ }
59
+ log('act: can activate child prehandle success');
60
+ let canactivate = false;
61
+ this.links.forEach((link) => {
62
+ const regexp = this.pathToRegexp.stringToRegexp(link, null, null);
63
+ if (regexp.test(state.url.split('?')[0])) {
64
+ log(`act: ${link} test ${state.url.split('?')[0]}`);
65
+ canactivate = true;
66
+ log(`act: test value ${canactivate}`);
67
+ return;
68
+ }
69
+ });
70
+ if (canactivate) {
71
+ log(`act: test sucess`);
72
+ return true;
73
+ }
74
+ else {
75
+ log(`act: test error`);
76
+ this.router.navigate(['displayIndex']);
77
+ return false;
78
+ }
79
+ }
80
+ preHandle(state) {
81
+ return (state.url.includes('error') ||
82
+ state.url.includes('exception') ||
83
+ state.url.includes('displayIndex') ||
84
+ state.url === '' ||
85
+ state.url === null ||
86
+ state.url === '/' ||
87
+ state.url.includes('iframePage'));
88
+ }
89
+ getAllLinks(menu, links) {
90
+ menu.forEach((sider) => {
91
+ if (sider.link) {
92
+ links.push(sider.link);
93
+ }
94
+ if (sider.children && sider.children.length > 0) {
95
+ this.getAllLinks(sider.children, links);
96
+ }
97
+ });
98
+ }
99
+ }
100
+ ActGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActGuard, deps: [{ token: i1.YunzaiConfigService }, { token: i2.CacheService }, { token: i3.PathToRegexpService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
101
+ ActGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActGuard, providedIn: 'root' });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActGuard, decorators: [{
103
+ type: Injectable,
104
+ args: [{
105
+ providedIn: 'root'
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i1.YunzaiConfigService }, { type: i2.CacheService }, { type: i3.PathToRegexpService }, { type: i4.Router }]; } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC9hY3QuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBNkMsTUFBTSxhQUFhLENBQUM7QUFFdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxRQUFRO0lBS25CLFlBQ1UsYUFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsWUFBaUMsRUFDakMsTUFBYztRQUhkLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJoQixRQUFHLEdBQXlCLHVCQUF1QixDQUFDO1FBQ3BELFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFRM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDckMs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O3lHQUFSLFFBQVEsY0FGUCxNQUFNOzJGQUVQLFFBQVE7a0JBSHBCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICdAeWVsb24vY2FjaGUnO1xuaW1wb3J0IHsgTWVudSwgVXNlciB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBkZWVwQ29weSwgbG9nLCBZdW56YWlCdXNpbmVzc0NvbmZpZywgWXVuemFpQ29uZmlnU2VydmljZSB9IGZyb20gJ0B5ZWxvbi91dGlsJztcblxuaW1wb3J0IHsgQlVTSU5FU1NfREVGQVVMVF9DT05GSUcsIG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnLi9iaXMuY29uZmlnJztcbmltcG9ydCB7IFBhdGhUb1JlZ2V4cFNlcnZpY2UgfSBmcm9tICcuL3BhdGgtdG8tcmVnZXhwLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3RHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgcHJpdmF0ZSBiaXM6IFl1bnphaUJ1c2luZXNzQ29uZmlnID0gQlVTSU5FU1NfREVGQVVMVF9DT05GSUc7XG4gIHByaXZhdGUgbWVudXM6IE56U2FmZUFueVtdID0gW107XG4gIHByaXZhdGUgbGlua3M6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBZdW56YWlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXRoVG9SZWdleHA6IFBhdGhUb1JlZ2V4cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBsb2coJ2FjdDogJyk7XG4gICAgdGhpcy5iaXMgPSBtZXJnZUJpc0NvbmZpZyh0aGlzLmNvbmZpZ1NlcnZpY2UpO1xuICAgIGxvZygnYWN0OiBjb25maWcgJywgdGhpcy5iaXMpO1xuICAgIGNvbnN0IHVzZXI6IFVzZXIgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el91c2VyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgbG9nKCdhY3Q6IHVzZXIgJywgdXNlcik7XG4gICAgdGhpcy5tZW51cyA9IGRlZXBDb3B5KHVzZXIubWVudSkuZmlsdGVyKFxuICAgICAgKG06IE1lbnUpID0+IG0uc3lzdGVtQ29kZSAmJiBtLnN5c3RlbUNvZGUgPT09IHRoaXMuYmlzLnN5c3RlbUNvZGVcbiAgICApIGFzIE1lbnVbXTtcbiAgICBsb2coJ2FjdDogbWVudXMgJywgdGhpcy5tZW51cyk7XG4gICAgdGhpcy5nZXRBbGxMaW5rcyh0aGlzLm1lbnVzLCB0aGlzLmxpbmtzKTtcbiAgICBsb2coJ2FjdDogbGlua3MgJywgdGhpcy5saW5rcyk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZShcbiAgICBfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgbG9nKCdhY3Q6IGNhbiBhY3RpdmF0ZSAnLCBzdGF0ZSk7XG4gICAgaWYgKHRoaXMucHJlSGFuZGxlKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgY2hpbGQgcHJlaGFuZGxlIHN1Y2Nlc3MnKTtcbiAgICBsZXQgY2FuYWN0aXZhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmxpbmtzLmZvckVhY2goKGxpbms6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSB0aGlzLnBhdGhUb1JlZ2V4cC5zdHJpbmdUb1JlZ2V4cChsaW5rLCBudWxsLCBudWxsKTtcbiAgICAgIGxvZyhgYWN0OiAke2xpbmt9IHRlc3QgJHtzdGF0ZS51cmwuc3BsaXQoJz8nKVswXX1gKTtcbiAgICAgIGlmIChyZWdleHAudGVzdChzdGF0ZS51cmwuc3BsaXQoJz8nKVswXSkpIHtcbiAgICAgICAgY2FuYWN0aXZhdGUgPSB0cnVlO1xuICAgICAgICBsb2coYGFjdDogdGVzdCB2YWx1ZSAke2NhbmFjdGl2YXRlfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGNhbmFjdGl2YXRlKSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBzdWNlc3NgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBlcnJvcmApO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydkaXNwbGF5SW5kZXgnXSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FuQWN0aXZhdGVDaGlsZChcbiAgICBfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgbG9nKCdhY3Q6IGNhbiBhY3RpdmF0ZSBjaGlsZCAnLCBzdGF0ZSk7XG4gICAgaWYgKHRoaXMucHJlSGFuZGxlKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgY2hpbGQgcHJlaGFuZGxlIHN1Y2Nlc3MnKTtcblxuICAgIGxldCBjYW5hY3RpdmF0ZSA9IGZhbHNlO1xuICAgIHRoaXMubGlua3MuZm9yRWFjaCgobGluazogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZWdleHA6IFJlZ0V4cCA9IHRoaXMucGF0aFRvUmVnZXhwLnN0cmluZ1RvUmVnZXhwKGxpbmssIG51bGwsIG51bGwpO1xuICAgICAgaWYgKHJlZ2V4cC50ZXN0KHN0YXRlLnVybC5zcGxpdCgnPycpWzBdKSkge1xuICAgICAgICBsb2coYGFjdDogJHtsaW5rfSB0ZXN0ICR7c3RhdGUudXJsLnNwbGl0KCc/JylbMF19YCk7XG4gICAgICAgIGNhbmFjdGl2YXRlID0gdHJ1ZTtcbiAgICAgICAgbG9nKGBhY3Q6IHRlc3QgdmFsdWUgJHtjYW5hY3RpdmF0ZX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChjYW5hY3RpdmF0ZSkge1xuICAgICAgbG9nKGBhY3Q6IHRlc3Qgc3VjZXNzYCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKGBhY3Q6IHRlc3QgZXJyb3JgKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGlzcGxheUluZGV4J10pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByZUhhbmRsZShzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZS51cmwuaW5jbHVkZXMoJ2Vycm9yJykgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnZXhjZXB0aW9uJykgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnZGlzcGxheUluZGV4JykgfHxcbiAgICAgIHN0YXRlLnVybCA9PT0gJycgfHxcbiAgICAgIHN0YXRlLnVybCA9PT0gbnVsbCB8fFxuICAgICAgc3RhdGUudXJsID09PSAnLycgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnaWZyYW1lUGFnZScpXG4gICAgKTtcbiAgfVxuXG4gIGdldEFsbExpbmtzKG1lbnU6IE1lbnVbXSwgbGlua3M6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgbWVudS5mb3JFYWNoKChzaWRlcjogTWVudSkgPT4ge1xuICAgICAgaWYgKHNpZGVyLmxpbmspIHtcbiAgICAgICAgbGlua3MucHVzaChzaWRlci5saW5rKTtcbiAgICAgIH1cbiAgICAgIGlmIChzaWRlci5jaGlsZHJlbiAmJiBzaWRlci5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZ2V0QWxsTGlua3Moc2lkZXIuY2hpbGRyZW4sIGxpbmtzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19