@rededor/site-front-end-lib 1.3.61 → 1.3.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/section-navigation/section-navigation.component.mjs +10 -4
- package/esm2022/lib/components/sidebar-navigation/sidebar-navigation.component.mjs +13 -6
- package/esm2022/lib/components/sticky-navigation/sticky-navigation.component.mjs +13 -6
- package/fesm2022/rededor-site-front-end-lib.mjs +60 -42
- package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
- package/lib/components/section-navigation/section-navigation.component.d.ts +3 -1
- package/lib/components/sidebar-navigation/sidebar-navigation.component.d.ts +4 -1
- package/lib/components/sticky-navigation/sticky-navigation.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -34,6 +34,8 @@ export class SectionNavigationComponent {
|
|
|
34
34
|
this.isMobile = window.innerWidth < 768;
|
|
35
35
|
this.scrollToMenuAnchorSubscription = null;
|
|
36
36
|
this.scrollToMenuAnchorSubject = new BehaviorSubject('');
|
|
37
|
+
this.padding = 0;
|
|
38
|
+
this.headerClass = '.page-header';
|
|
37
39
|
this.ariaLabel = 'Navegação da página';
|
|
38
40
|
this.anchorAdjustment = 0;
|
|
39
41
|
this.sectionChange = new EventEmitter();
|
|
@@ -68,12 +70,12 @@ export class SectionNavigationComponent {
|
|
|
68
70
|
}
|
|
69
71
|
windowScroll() {
|
|
70
72
|
const navHeight = document.querySelector('.rdsite-section-navigation')?.getBoundingClientRect().top || 0;
|
|
71
|
-
const pageHeaderHeight = document.querySelector(
|
|
73
|
+
const pageHeaderHeight = document.querySelector(this.headerClass)?.getBoundingClientRect().top || 0;
|
|
72
74
|
let selectedIndex = -1;
|
|
73
75
|
this.sections()?.forEach((section, index) => {
|
|
74
76
|
const menuTop = document.querySelector(`#${section.id}`)?.getBoundingClientRect().top || 0;
|
|
75
77
|
if (menuTop) {
|
|
76
|
-
const calc = window.scrollY - menuTop + navHeight + pageHeaderHeight;
|
|
78
|
+
const calc = window.scrollY - menuTop + navHeight + pageHeaderHeight + this.padding;
|
|
77
79
|
if (calc >= 0) {
|
|
78
80
|
selectedIndex = index;
|
|
79
81
|
if (this.sections()?.[selectedIndex]) {
|
|
@@ -105,7 +107,7 @@ export class SectionNavigationComponent {
|
|
|
105
107
|
this.scrollToMenuAnchorSubscription?.unsubscribe();
|
|
106
108
|
}
|
|
107
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, deps: [{ token: i1.CuraService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel", anchorAdjustment: "anchorAdjustment" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true }, { propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }, { propertyName: "anchorsEl", predicate: ["anchorEl"], descendants: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <ul #containerEl class=\"rdsite-section-navigation-menu\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n @if (section.title) {\r\n <li role=\"none\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n [ngClass]=\"{ active: activeSection() === section.id }\"\r\n >\r\n {{ section.title }}\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n</nav>\r\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:var(--neutral-purewhite);border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px 0 var(--neutral-black);padding-top:10px}.rdsite-section-navigation *{font-family:var(--font-family)}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:12px;font-weight:500;color:var(--neutral-dark);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--neutral-purewhite)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RdsiteLinkDirective, selector: "[rdsitelink]", inputs: ["anchorAdjustment", "anchorExtraAdjustment", "phonemodal"] }] }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { padding: "padding", headerClass: "headerClass", navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel", anchorAdjustment: "anchorAdjustment" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:scroll": "onWindowScroll()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true }, { propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }, { propertyName: "anchorsEl", predicate: ["anchorEl"], descendants: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <ul #containerEl class=\"rdsite-section-navigation-menu\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n @if (section.title) {\r\n <li role=\"none\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n [ngClass]=\"{ active: activeSection() === section.id }\"\r\n >\r\n {{ section.title }}\r\n </a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n</nav>\r\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:var(--neutral-purewhite);border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px 0 var(--neutral-black);padding-top:10px}.rdsite-section-navigation *{font-family:var(--font-family)}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:12px;font-weight:500;color:var(--neutral-dark);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--neutral-purewhite)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RdsiteLinkDirective, selector: "[rdsitelink]", inputs: ["anchorAdjustment", "anchorExtraAdjustment", "phonemodal"] }] }); }
|
|
109
111
|
}
|
|
110
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, decorators: [{
|
|
111
113
|
type: Component,
|
|
@@ -122,6 +124,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
122
124
|
}], onWindowScroll: [{
|
|
123
125
|
type: HostListener,
|
|
124
126
|
args: ['window:scroll']
|
|
127
|
+
}], padding: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], headerClass: [{
|
|
130
|
+
type: Input
|
|
125
131
|
}], navigationSections: [{
|
|
126
132
|
type: Input,
|
|
127
133
|
args: [{ required: true }]
|
|
@@ -140,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
140
146
|
type: ViewChild,
|
|
141
147
|
args: ['navigationMenu', { static: true }]
|
|
142
148
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VjdGlvbi1uYXZpZ2F0aW9uL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUVOLFNBQVMsRUFFVCxzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFZbkUsTUFBTSxPQUFPLDBCQUEwQjtJQWNyQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0lBR0QsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxrQkFBa0IsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRSxD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RSxtQkFBbUI7OzRGQUtoQywwQkFBMEI7a0JBVHRDLFNBQVM7K0JBRUUsZ0NBQWdDLGNBQzlCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxXQUNuQyxDQUFDLHNCQUFzQixDQUFDO3FHQWNQLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDRSxTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVU7Z0JBR3hCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlO2dCQU03QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFNekIsa0JBQWtCO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhckIsZ0JBQWdCO3NCQURuQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRWUsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPO2dCQVMyQixjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgc2lnbmFsLFxyXG4gIGVmZmVjdCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YSwgU2VjdGlvbk5hdmlnYXRpb25Db25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VjdGlvbi1uYXZpZ2F0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ3VyYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXJhL2N1cmEuc2VydmljZSc7XHJcbmltcG9ydCB7IFJkc2l0ZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ25hdltyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZHNpdGVMaW5rRGlyZWN0aXZlXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWN0aW9ucyA9IHNpZ25hbDxTZWN0aW9uTmF2aWdhdGlvbkRhdGFbXT4oW10pO1xyXG4gIHJlYWRvbmx5IGNvbmZpZyA9IHNpZ25hbDxTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBhY3RpdmVTZWN0aW9uID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuICBpc01vYmlsZTogYm9vbGVhbiA9IHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4O1xyXG5cclxuICBzY3JvbGxUb01lbnVBbmNob3JTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHNjcm9sbFRvTWVudUFuY2hvclN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsJykgY29udGFpbmVyRWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkcmVuKCdhbmNob3JFbCcpIGFuY2hvcnNFbCE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50Pj47XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXHJcbiAgb25XaW5kb3dTY3JvbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvd1Njcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBzZXQgbmF2aWdhdGlvblNlY3Rpb25zKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkRhdGFbXSkge1xyXG4gICAgaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnMuc2V0KHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodmFsdWVbMF0uaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2aWdhdGlvbkNvbmZpZyh2YWx1ZTogU2VjdGlvbk5hdmlnYXRpb25Db25maWcpIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnTmF2ZWdhw6fDo28gZGEgcMOhZ2luYSc7XHJcbiAgQElucHV0KCkgYW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWN0aW9uTmF2aWdhdGlvbkRhdGE+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBzdHlsZUJpbmRpbmcgPSB7XHJcbiAgICAnLS1uZXV0cmFsLXB1cmV3aGl0ZSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtcHVyZXdoaXRlJyksXHJcbiAgICAnLS1uZXV0cmFsLWRhcmsnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLWRhcmsnKSxcclxuICAgICctLW5ldXRyYWwtYmxhY2snOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLWJsYWNrJywgMC4xNiksXHJcbiAgICAnLS1jb2xvci1iYXNlJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcigncHJpbWFyeS1iYXNlJyksXHJcbiAgICAnLS1mb250LXNpemUnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldEZvbnRTaXplKCksXHJcbiAgICAnLS1mb250LWZhbWlseSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Rm9udEZhbWlseSgnJyksXHJcbiAgfTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbmF2aWdhdGlvbk1lbnUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBuYXZpZ2F0aW9uTWVudSE6IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjdXJhU2VydmljZTogQ3VyYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zKCk7XHJcbiAgICAgIGlmIChzZWN0aW9ucy5sZW5ndGggJiYgIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldChzZWN0aW9uc1swXS5pZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuc2VjdGlvbnMoKTtcclxuICAgIGlmICghc2VjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQoc2VjdGlvbnNbMF0uaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVzYWRvIHBhcmEgZXZpdGFyIG11bHRpcGxvcyBjYWxjdWxvcyBkZXNuZWNlc3PDoXJpb3MgZW5xdWFudG8gc2Nyb2xsYVxyXG4gICAgY29uc3QgVElNRV9UT19BVk9JRF9VTkVDRVNTQVJZX0NBTENVTEFUSU9OUyA9IDUwO1xyXG4gICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3JTdWJzY3JpcHRpb24gPSB0aGlzLnNjcm9sbFRvTWVudUFuY2hvclN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoVElNRV9UT19BVk9JRF9VTkVDRVNTQVJZX0NBTENVTEFUSU9OUykpLnN1YnNjcmliZSgoYW5jaG9ySWQpID0+IHtcclxuICAgICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3IoYW5jaG9ySWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdpbmRvd1Njcm9sbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hdkhlaWdodCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcucmRzaXRlLXNlY3Rpb24tbmF2aWdhdGlvbicpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgfHwgMDtcclxuICAgIGNvbnN0IHBhZ2VIZWFkZXJIZWlnaHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnBhZ2UtaGVhZGVyJyk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCB8fCAwO1xyXG4gICAgbGV0IHNlbGVjdGVkSW5kZXggPSAtMTtcclxuICAgIHRoaXMuc2VjdGlvbnMoKT8uZm9yRWFjaCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbWVudVRvcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGAjJHtzZWN0aW9uLmlkfWApPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgfHwgMDtcclxuICAgICAgaWYgKG1lbnVUb3ApIHtcclxuICAgICAgICBjb25zdCBjYWxjID0gd2luZG93LnNjcm9sbFkgLSBtZW51VG9wICsgbmF2SGVpZ2h0ICsgcGFnZUhlYWRlckhlaWdodDtcclxuICAgICAgICBpZiAoY2FsYyA+PSAwKSB7XHJcbiAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWN0aW9ucygpPy5bc2VsZWN0ZWRJbmRleF0pIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldCh0aGlzLnNlY3Rpb25zKCk/LltzZWxlY3RlZEluZGV4XT8uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VjdGlvbnMoKT8uW3NlbGVjdGVkSW5kZXhdKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9NZW51QW5jaG9yU3ViamVjdC5uZXh0KHRoaXMuc2VjdGlvbnMoKT8uW3NlbGVjdGVkSW5kZXhdPy5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb01lbnVBbmNob3IoYW5jaG9ySWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgYW5jaG9yID0gdGhpcy5hbmNob3JzRWwuZmluZCgoYW5jaG9yKSA9PiBhbmNob3IubmF0aXZlRWxlbWVudC5pZCA9PSBgYW5jaG9yLSR7YW5jaG9ySWR9YCk7XHJcbiAgICBpZiAoIWFuY2hvcikgcmV0dXJuO1xyXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tVGhlQ2VudGVyT2ZUaGVBbmNob3IgPSAoYW5jaG9yLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCArIGFuY2hvci5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgKyBhbmNob3I/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIC8gMjtcclxuICAgIGNvbnN0IGNlbnRlck9mQ29udGFpbmVyRWwgPSB0aGlzLmNvbnRhaW5lckVsPy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gMjtcclxuICAgIGNvbnN0IGxlZnQgPSBkaXN0YW5jZUZyb21UaGVDZW50ZXJPZlRoZUFuY2hvciAtIGNlbnRlck9mQ29udGFpbmVyRWw7XHJcbiAgICB0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xyXG4gICAgICBsZWZ0OiBsZWZ0LFxyXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFBhdGgoc2VjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMucm91dGVyLnVybH0jJHtzZWN0aW9uSWR9YDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuYXYgY2xhc3M9XCJyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbc3R5bGUudG9wLnB4XT1cImNvbmZpZygpPy5vZmZzZXRUb3AgfHwgMFwiPlxyXG4gIDx1bCAjY29udGFpbmVyRWwgY2xhc3M9XCJyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uLW1lbnVcIiByb2xlPVwibWVudWJhclwiPlxyXG4gICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9ucygpOyB0cmFjayBzZWN0aW9uLmlkKSB7XHJcbiAgICAgIEBpZiAoc2VjdGlvbi50aXRsZSkge1xyXG4gICAgICAgIDxsaSByb2xlPVwibm9uZVwiPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgI2FuY2hvckVsXHJcbiAgICAgICAgICAgIGlkPVwiYW5jaG9yLXt7IHNlY3Rpb24uaWQgfX1cIlxyXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICBbaHJlZl09XCJnZXRQYXRoKHNlY3Rpb24uaWQpXCJcclxuICAgICAgICAgICAgcmRzaXRlbGlua1xyXG4gICAgICAgICAgICBbYW5jaG9yQWRqdXN0bWVudF09XCJhbmNob3JBZGp1c3RtZW50XCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCA/ICdwYWdlJyA6IG51bGxcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidOYXZlZ2FyIHBhcmEgJyArIHNlY3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBzZWN0aW9uLnRpdGxlIH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvdWw+XHJcbjwvbmF2PlxyXG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VjdGlvbi1uYXZpZ2F0aW9uL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUVOLFNBQVMsRUFFVCxzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFZbkUsTUFBTSxPQUFPLDBCQUEwQjtJQWNyQyxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0lBR0QsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFDSSxrQkFBa0IsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRSxD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RUFBRSxDQUFDO0lBQ3JELENBQUM7K0dBL0hVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDB3QkNqQ3ZDLHk1QkF1QkEsa21DREtZLFlBQVksNkhBQUUsbUJBQW1COzs0RkFLaEMsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUVFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsV0FDbkMsQ0FBQyxzQkFBc0IsQ0FBQztxR0FjUCxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVO2dCQUd4QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFNN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBS3BCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBYXJCLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVlLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTztnQkFTMkIsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIHNpZ25hbCxcclxuICBlZmZlY3QsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBRdWVyeUxpc3QsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZWN0aW9uTmF2aWdhdGlvbkRhdGEsIFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlY3Rpb24tbmF2aWdhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEN1cmFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3VyYS9jdXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZHNpdGVMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICduYXZbcmRzaXRlLXNlY3Rpb24tbmF2aWdhdGlvbl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmRzaXRlTGlua0RpcmVjdGl2ZV0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc2VjdGlvbnMgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25EYXRhW10+KFtdKTtcclxuICByZWFkb25seSBjb25maWcgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25Db25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlU2VjdGlvbiA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgaXNNb2JpbGU6IGJvb2xlYW4gPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODtcclxuXHJcbiAgc2Nyb2xsVG9NZW51QW5jaG9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBzY3JvbGxUb01lbnVBbmNob3JTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXJFbCcpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZHJlbignYW5jaG9yRWwnKSBhbmNob3JzRWwhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD4+O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxyXG4gIG9uV2luZG93U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aW5kb3dTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHBhZGRpbmcgPSAwO1xyXG4gIEBJbnB1dCgpIGhlYWRlckNsYXNzID0gJy5wYWdlLWhlYWRlcic7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBzZXQgbmF2aWdhdGlvblNlY3Rpb25zKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkRhdGFbXSkge1xyXG4gICAgaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnMuc2V0KHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodmFsdWVbMF0uaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2aWdhdGlvbkNvbmZpZyh2YWx1ZTogU2VjdGlvbk5hdmlnYXRpb25Db25maWcpIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnTmF2ZWdhw6fDo28gZGEgcMOhZ2luYSc7XHJcbiAgQElucHV0KCkgYW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWN0aW9uTmF2aWdhdGlvbkRhdGE+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBzdHlsZUJpbmRpbmcgPSB7XHJcbiAgICAnLS1uZXV0cmFsLXB1cmV3aGl0ZSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtcHVyZXdoaXRlJyksXHJcbiAgICAnLS1uZXV0cmFsLWRhcmsnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLWRhcmsnKSxcclxuICAgICctLW5ldXRyYWwtYmxhY2snOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLWJsYWNrJywgMC4xNiksXHJcbiAgICAnLS1jb2xvci1iYXNlJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcigncHJpbWFyeS1iYXNlJyksXHJcbiAgICAnLS1mb250LXNpemUnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldEZvbnRTaXplKCksXHJcbiAgICAnLS1mb250LWZhbWlseSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Rm9udEZhbWlseSgnJyksXHJcbiAgfTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbmF2aWdhdGlvbk1lbnUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBuYXZpZ2F0aW9uTWVudSE6IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjdXJhU2VydmljZTogQ3VyYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zKCk7XHJcbiAgICAgIGlmIChzZWN0aW9ucy5sZW5ndGggJiYgIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldChzZWN0aW9uc1swXS5pZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuc2VjdGlvbnMoKTtcclxuICAgIGlmICghc2VjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQoc2VjdGlvbnNbMF0uaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVzYWRvIHBhcmEgZXZpdGFyIG11bHRpcGxvcyBjYWxjdWxvcyBkZXNuZWNlc3PDoXJpb3MgZW5xdWFudG8gc2Nyb2xsYVxyXG4gICAgY29uc3QgVElNRV9UT19BVk9JRF9VTkVDRVNTQVJZX0NBTENVTEFUSU9OUyA9IDUwO1xyXG4gICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3JTdWJzY3JpcHRpb24gPSB0aGlzLnNjcm9sbFRvTWVudUFuY2hvclN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoVElNRV9UT19BVk9JRF9VTkVDRVNTQVJZX0NBTENVTEFUSU9OUykpLnN1YnNjcmliZSgoYW5jaG9ySWQpID0+IHtcclxuICAgICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3IoYW5jaG9ySWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdpbmRvd1Njcm9sbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hdkhlaWdodCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcucmRzaXRlLXNlY3Rpb24tbmF2aWdhdGlvbicpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgfHwgMDtcclxuICAgIGNvbnN0IHBhZ2VIZWFkZXJIZWlnaHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50Pih0aGlzLmhlYWRlckNsYXNzKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIHx8IDA7XHJcbiAgICBsZXQgc2VsZWN0ZWRJbmRleCA9IC0xO1xyXG4gICAgdGhpcy5zZWN0aW9ucygpPy5mb3JFYWNoKChzZWN0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBtZW51VG9wID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oYCMke3NlY3Rpb24uaWR9YCk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCB8fCAwO1xyXG4gICAgICBpZiAobWVudVRvcCkge1xyXG4gICAgICAgIGNvbnN0IGNhbGMgPSB3aW5kb3cuc2Nyb2xsWSAtIG1lbnVUb3AgKyBuYXZIZWlnaHQgKyBwYWdlSGVhZGVySGVpZ2h0ICsgdGhpcy5wYWRkaW5nO1xyXG4gICAgICAgIGlmIChjYWxjID49IDApIHtcclxuICAgICAgICAgIHNlbGVjdGVkSW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIGlmICh0aGlzLnNlY3Rpb25zKCk/LltzZWxlY3RlZEluZGV4XSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHRoaXMuc2VjdGlvbnMoKT8uW3NlbGVjdGVkSW5kZXhdPy5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWN0aW9ucygpPy5bc2VsZWN0ZWRJbmRleF0pIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3JTdWJqZWN0Lm5leHQodGhpcy5zZWN0aW9ucygpPy5bc2VsZWN0ZWRJbmRleF0/LmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFRvTWVudUFuY2hvcihhbmNob3JJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbmNob3IgPSB0aGlzLmFuY2hvcnNFbC5maW5kKChhbmNob3IpID0+IGFuY2hvci5uYXRpdmVFbGVtZW50LmlkID09IGBhbmNob3ItJHthbmNob3JJZH1gKTtcclxuICAgIGlmICghYW5jaG9yKSByZXR1cm47XHJcbiAgICBjb25zdCBkaXN0YW5jZUZyb21UaGVDZW50ZXJPZlRoZUFuY2hvciA9IChhbmNob3IubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0ICsgYW5jaG9yLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCArIGFuY2hvcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgLyAyO1xyXG4gICAgY29uc3QgY2VudGVyT2ZDb250YWluZXJFbCA9IHRoaXMuY29udGFpbmVyRWw/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLyAyO1xyXG4gICAgY29uc3QgbGVmdCA9IGRpc3RhbmNlRnJvbVRoZUNlbnRlck9mVGhlQW5jaG9yIC0gY2VudGVyT2ZDb250YWluZXJFbDtcclxuICAgIHRoaXMuY29udGFpbmVyRWwubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XHJcbiAgICAgIGxlZnQ6IGxlZnQsXHJcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGF0aChzZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5yb3V0ZXIudXJsfSMke3NlY3Rpb25JZH1gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcm9sbFRvTWVudUFuY2hvclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cInJkc2l0ZS1zZWN0aW9uLW5hdmlnYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiIFtzdHlsZS50b3AucHhdPVwiY29uZmlnKCk/Lm9mZnNldFRvcCB8fCAwXCI+XHJcbiAgPHVsICNjb250YWluZXJFbCBjbGFzcz1cInJkc2l0ZS1zZWN0aW9uLW5hdmlnYXRpb24tbWVudVwiIHJvbGU9XCJtZW51YmFyXCI+XHJcbiAgICBAZm9yIChzZWN0aW9uIG9mIHNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24uaWQpIHtcclxuICAgICAgQGlmIChzZWN0aW9uLnRpdGxlKSB7XHJcbiAgICAgICAgPGxpIHJvbGU9XCJub25lXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAjYW5jaG9yRWxcclxuICAgICAgICAgICAgaWQ9XCJhbmNob3Ite3sgc2VjdGlvbi5pZCB9fVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXHJcbiAgICAgICAgICAgIFtocmVmXT1cImdldFBhdGgoc2VjdGlvbi5pZClcIlxyXG4gICAgICAgICAgICByZHNpdGVsaW5rXHJcbiAgICAgICAgICAgIFthbmNob3JBZGp1c3RtZW50XT1cImFuY2hvckFkanVzdG1lbnRcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkID8gJ3BhZ2UnIDogbnVsbFwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05hdmVnYXIgcGFyYSAnICsgc2VjdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVTZWN0aW9uKCkgPT09IHNlY3Rpb24uaWQgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgPC91bD5cclxuPC9uYXY+XHJcbiJdfQ==
|
|
@@ -3,7 +3,8 @@ import { RdsiteLinkDirective } from '../../directives';
|
|
|
3
3
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../services";
|
|
6
|
-
import * as i2 from "@angular/
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
7
8
|
export class SidebarNavigationComponent {
|
|
8
9
|
set navigationSections(value) {
|
|
9
10
|
if (!value?.length) {
|
|
@@ -20,8 +21,9 @@ export class SidebarNavigationComponent {
|
|
|
20
21
|
onWindowScroll() {
|
|
21
22
|
this.windowScroll();
|
|
22
23
|
}
|
|
23
|
-
constructor(curaService, router, platformId, document) {
|
|
24
|
+
constructor(curaService, location, router, platformId, document) {
|
|
24
25
|
this.curaService = curaService;
|
|
26
|
+
this.location = location;
|
|
25
27
|
this.router = router;
|
|
26
28
|
this.platformId = platformId;
|
|
27
29
|
this.document = document;
|
|
@@ -64,19 +66,24 @@ export class SidebarNavigationComponent {
|
|
|
64
66
|
}
|
|
65
67
|
});
|
|
66
68
|
}
|
|
69
|
+
getBasePath() {
|
|
70
|
+
const base = this.location.prepareExternalUrl('');
|
|
71
|
+
const normalized = base.replace(/\/$/, '');
|
|
72
|
+
return normalized === '' || normalized === '/' ? '' : normalized;
|
|
73
|
+
}
|
|
67
74
|
getPath(sectionId) {
|
|
68
|
-
return `${this.router.url}#${sectionId}`;
|
|
75
|
+
return `${this.getBasePath()}${this.router.url}#${sectionId}`;
|
|
69
76
|
}
|
|
70
77
|
onSectionClick(event) {
|
|
71
78
|
this.sectionChange.emit(event);
|
|
72
79
|
}
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarNavigationComponent, deps: [{ token: i1.CuraService }, { token: i2.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarNavigationComponent, deps: [{ token: i1.CuraService }, { token: i2.Location }, { token: i3.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
81
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SidebarNavigationComponent, isStandalone: true, selector: "nav[rdsite-sidebar-navigation]", inputs: { anchorAdjustment: "anchorAdjustment", title: "title", ariaLabel: "ariaLabel", padding: "padding", navigationSections: "navigationSections", navigationConfig: "navigationConfig" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:scroll": "onWindowScroll()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "anchorsEl", predicate: ["anchorEl"], descendants: true }], ngImport: i0, template: "<nav class=\"rdsite-sidebar-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <cura-card class=\"only-mobile\" has-padding=\"true\" margin-block=\"8px\" has-shadow=\"false\" type=\"solid\" color-mode=\"light\" target=\"_self\">\r\n @if (title) {\r\n <cura-paragraph size=\"small\" color=\"neutral-black\" margin-block=\"8px\">\r\n <b>{{ title }}</b>\r\n </cura-paragraph>\r\n }\r\n <ul role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n <li role=\"none\">\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" [color]=\"activeSection() === section.id ? 'neutral-black' : 'primary-base'\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n class=\"rdsite-sidebar-link\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n (click)=\"onSectionClick({ id: section.id, title: section.title })\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment || defaultAnchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n >\r\n <b>\r\n {{ section.title }}\r\n </b>\r\n </a>\r\n </cura-paragraph>\r\n </li>\r\n }\r\n </ul>\r\n </cura-card>\r\n</nav>\r\n", styles: ["nav *{font-family:var(--font-family)}nav ul{display:flex;flex-direction:column}nav ul li{width:100%}nav ul li cura-paragraph,nav ul li a{text-align:left}nav ul li a{color:unset}\n"], dependencies: [{ kind: "directive", type: RdsiteLinkDirective, selector: "[rdsitelink]", inputs: ["anchorAdjustment", "anchorExtraAdjustment", "phonemodal"] }] }); }
|
|
75
82
|
}
|
|
76
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarNavigationComponent, decorators: [{
|
|
77
84
|
type: Component,
|
|
78
85
|
args: [{ selector: 'nav[rdsite-sidebar-navigation]', standalone: true, imports: [RdsiteLinkDirective], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-sidebar-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n <cura-card class=\"only-mobile\" has-padding=\"true\" margin-block=\"8px\" has-shadow=\"false\" type=\"solid\" color-mode=\"light\" target=\"_self\">\r\n @if (title) {\r\n <cura-paragraph size=\"small\" color=\"neutral-black\" margin-block=\"8px\">\r\n <b>{{ title }}</b>\r\n </cura-paragraph>\r\n }\r\n <ul role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n <li role=\"none\">\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" [color]=\"activeSection() === section.id ? 'neutral-black' : 'primary-base'\">\r\n <a\r\n #anchorEl\r\n id=\"anchor-{{ section.id }}\"\r\n class=\"rdsite-sidebar-link\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n (click)=\"onSectionClick({ id: section.id, title: section.title })\"\r\n rdsitelink\r\n [anchorAdjustment]=\"anchorAdjustment || defaultAnchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n >\r\n <b>\r\n {{ section.title }}\r\n </b>\r\n </a>\r\n </cura-paragraph>\r\n </li>\r\n }\r\n </ul>\r\n </cura-card>\r\n</nav>\r\n", styles: ["nav *{font-family:var(--font-family)}nav ul{display:flex;flex-direction:column}nav ul li{width:100%}nav ul li cura-paragraph,nav ul li a{text-align:left}nav ul li a{color:unset}\n"] }]
|
|
79
|
-
}], ctorParameters: () => [{ type: i1.CuraService }, { type: i2.Router }, { type: undefined, decorators: [{
|
|
86
|
+
}], ctorParameters: () => [{ type: i1.CuraService }, { type: i2.Location }, { type: i3.Router }, { type: undefined, decorators: [{
|
|
80
87
|
type: Inject,
|
|
81
88
|
args: [PLATFORM_ID]
|
|
82
89
|
}] }, { type: Document, decorators: [{
|
|
@@ -107,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
107
114
|
type: HostBinding,
|
|
108
115
|
args: ['style']
|
|
109
116
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2lkZWJhci1uYXZpZ2F0aW9uL3NpZGViYXItbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NpZGViYXItbmF2aWdhdGlvbi9zaWRlYmFyLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxzQkFBc0IsRUFFdEIsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUVYLE1BQU0sRUFDTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVzlELE1BQU0sT0FBTywwQkFBMEI7SUFjckMsSUFDSSxrQkFBa0IsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENB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RCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBNEI7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FuRlUsMEJBQTBCLG1FQThDM0IsV0FBVyxhQUNYLFFBQVE7bUdBL0NQLDBCQUEwQiwyZ0JDL0J2Qyx3K0NBaUNBLDZPRFBZLG1CQUFtQjs7NEZBS2xCLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFFRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLENBQUMsV0FDckIsQ0FBQyxzQkFBc0IsQ0FBQzs7MEJBa0Q5QixNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVE7eUNBdENULGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0Ysa0JBQWtCO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhckIsZ0JBQWdCO3NCQURuQixLQUFLO2dCQUtvQixTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVU7Z0JBQ2QsYUFBYTtzQkFBdEIsTUFBTTtnQkFHUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFLUCxZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBzaWduYWwsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBJbmplY3QsXHJcbiAgUExBVEZPUk1fSUQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJkc2l0ZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgU2VjdGlvbk5hdmlnYXRpb25Db25maWcsIFNlY3Rpb25OYXZpZ2F0aW9uRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWN0aW9uLW5hdmlnYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICduYXZbcmRzaXRlLXNpZGViYXItbmF2aWdhdGlvbl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1Jkc2l0ZUxpbmtEaXJlY3RpdmVdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2lkZWJhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJOYXZpZ2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcmVhZG9ubHkgc2VjdGlvbnMgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25EYXRhW10+KFtdKTtcclxuICByZWFkb25seSBjb25maWcgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25Db25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlU2VjdGlvbiA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICBwdWJsaWMgc2VsZWN0ZWRJbmRleCA9IDA7XHJcbiAgcHVibGljIGRlZmF1bHRBbmNob3JBZGp1c3RtZW50ID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBtZW51SGVhZGVySGVpZ2h0ID0gMDtcclxuXHJcbiAgQElucHV0KCkgYW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnTmVzdGEgcMOhZ2luYSc7XHJcbiAgQElucHV0KCkgYXJpYUxhYmVsID0gJ05hdmVnYcOnw6NvIGRhIHDDoWdpbmEnO1xyXG4gIEBJbnB1dCgpIHBhZGRpbmcgPSAtNTA7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgc2V0IG5hdmlnYXRpb25TZWN0aW9ucyh2YWx1ZTogU2VjdGlvbk5hdmlnYXRpb25EYXRhW10pIHtcclxuICAgIGlmICghdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ08gU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgcmVxdWVyIHBlbG8gbWVub3MgdW1hIHNlw6fDo28uJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlY3Rpb25zLnNldCh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVNlY3Rpb24oKSkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHZhbHVlWzBdLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5hdmlnYXRpb25Db25maWcodmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnKSB7XHJcbiAgICB0aGlzLmNvbmZpZy5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbignYW5jaG9yRWwnKSBhbmNob3JzRWwhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD4+O1xyXG4gIEBPdXRwdXQoKSBzZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWN0aW9uTmF2aWdhdGlvbkRhdGE+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxyXG4gIG9uV2luZG93U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aW5kb3dTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBzdHlsZUJpbmRpbmcgPSB7XHJcbiAgICAnLS1mb250LWZhbWlseSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Rm9udEZhbWlseSgnJyksXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGN1cmFTZXJ2aWNlOiBDdXJhU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZW51SGVhZGVySGVpZ2h0ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignaGVhZGVyW3NsLWhkcl0nKT8ub2Zmc2V0SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QW5jaG9yQWRqdXN0bWVudCA9IHRoaXMubWVudUhlYWRlckhlaWdodCArICh0aGlzLnBhZGRpbmcgLSAxKTtcclxuICAgICAgfSwgMjAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2luZG93U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblxyXG4gICAgdGhpcy5zZWN0aW9ucygpPy5mb3JFYWNoKChzZWN0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oYCMke3NlY3Rpb24uaWR9YCk7XHJcbiAgICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgZWxlbWVudFRvcCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWSArIHRoaXMubWVudUhlYWRlckhlaWdodCArIHRoaXMucGFkZGluZztcclxuICAgICAgaWYgKGN1cnJlbnRTY3JvbGwgPj0gZWxlbWVudFRvcCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGlmICh0aGlzLnNlY3Rpb25zKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXhdKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHRoaXMuc2VjdGlvbnMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleF0/LmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGF0aChzZWN0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5yb3V0ZXIudXJsfSMke3NlY3Rpb25JZH1gO1xyXG4gIH1cclxuXHJcbiAgb25TZWN0aW9uQ2xpY2soZXZlbnQ6IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YSkge1xyXG4gICAgdGhpcy5zZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8bmF2IGNsYXNzPVwicmRzaXRlLXNpZGViYXItbmF2aWdhdGlvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgW3N0eWxlLnRvcC5weF09XCJjb25maWcoKT8ub2Zmc2V0VG9wIHx8IDBcIj5cclxuICA8Y3VyYS1jYXJkIGNsYXNzPVwib25seS1tb2JpbGVcIiBoYXMtcGFkZGluZz1cInRydWVcIiBtYXJnaW4tYmxvY2s9XCI4cHhcIiBoYXMtc2hhZG93PVwiZmFsc2VcIiB0eXBlPVwic29saWRcIiBjb2xvci1tb2RlPVwibGlnaHRcIiB0YXJnZXQ9XCJfc2VsZlwiPlxyXG4gICAgQGlmICh0aXRsZSkge1xyXG4gICAgICA8Y3VyYS1wYXJhZ3JhcGggc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJuZXV0cmFsLWJsYWNrXCIgbWFyZ2luLWJsb2NrPVwiOHB4XCI+XHJcbiAgICAgICAgPGI+e3sgdGl0bGUgfX08L2I+XHJcbiAgICAgIDwvY3VyYS1wYXJhZ3JhcGg+XHJcbiAgICB9XHJcbiAgICA8dWwgcm9sZT1cIm1lbnViYXJcIj5cclxuICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9ucygpOyB0cmFjayBzZWN0aW9uLmlkKSB7XHJcbiAgICAgICAgPGxpIHJvbGU9XCJub25lXCI+XHJcbiAgICAgICAgICA8Y3VyYS1wYXJhZ3JhcGggc2l6ZT1cInhzbWFsbFwiIG1hcmdpbi1ibG9jaz1cIjhweFwiIFtjb2xvcl09XCJhY3RpdmVTZWN0aW9uKCkgPT09IHNlY3Rpb24uaWQgPyAnbmV1dHJhbC1ibGFjaycgOiAncHJpbWFyeS1iYXNlJ1wiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICNhbmNob3JFbFxyXG4gICAgICAgICAgICAgIGlkPVwiYW5jaG9yLXt7IHNlY3Rpb24uaWQgfX1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicmRzaXRlLXNpZGViYXItbGlua1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcclxuICAgICAgICAgICAgICBbaHJlZl09XCJnZXRQYXRoKHNlY3Rpb24uaWQpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWN0aW9uQ2xpY2soeyBpZDogc2VjdGlvbi5pZCwgdGl0bGU6IHNlY3Rpb24udGl0bGUgfSlcIlxyXG4gICAgICAgICAgICAgIHJkc2l0ZWxpbmtcclxuICAgICAgICAgICAgICBbYW5jaG9yQWRqdXN0bWVudF09XCJhbmNob3JBZGp1c3RtZW50IHx8IGRlZmF1bHRBbmNob3JBZGp1c3RtZW50XCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkID8gJ3BhZ2UnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTmF2ZWdhciBwYXJhICcgKyBzZWN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxiPlxyXG4gICAgICAgICAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvYj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9jdXJhLXBhcmFncmFwaD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICB9XHJcbiAgICA8L3VsPlxyXG4gIDwvY3VyYS1jYXJkPlxyXG48L25hdj5cclxuIl19
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2lkZWJhci1uYXZpZ2F0aW9uL3NpZGViYXItbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NpZGViYXItbmF2aWdhdGlvbi9zaWRlYmFyLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxzQkFBc0IsRUFFdEIsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUVYLE1BQU0sRUFDTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBWSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVd4RSxNQUFNLE9BQU8sMEJBQTBCO0lBY3JDLElBQ0ksa0JBQWtCLENBQUMsS0FBOEI7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxD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QyxZQUFZO3VCQUFDLFVBQVU7Z0JBQ2QsYUFBYTtzQkFBdEIsTUFBTTtnQkFHUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFLUCxZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBzaWduYWwsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBJbmplY3QsXHJcbiAgUExBVEZPUk1fSUQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJkc2l0ZUxpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgU2VjdGlvbk5hdmlnYXRpb25Db25maWcsIFNlY3Rpb25OYXZpZ2F0aW9uRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWN0aW9uLW5hdmlnYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyLCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbmF2W3Jkc2l0ZS1zaWRlYmFyLW5hdmlnYXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtSZHNpdGVMaW5rRGlyZWN0aXZlXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpZGViYXItbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5IHNlY3Rpb25zID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdPihbXSk7XHJcbiAgcmVhZG9ubHkgY29uZmlnID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGFjdGl2ZVNlY3Rpb24gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgcHVibGljIHNlbGVjdGVkSW5kZXggPSAwO1xyXG4gIHB1YmxpYyBkZWZhdWx0QW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcblxyXG4gIHByaXZhdGUgbWVudUhlYWRlckhlaWdodCA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIGFuY2hvckFkanVzdG1lbnQgPSAwO1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJ05lc3RhIHDDoWdpbmEnO1xyXG4gIEBJbnB1dCgpIGFyaWFMYWJlbCA9ICdOYXZlZ2HDp8OjbyBkYSBww6FnaW5hJztcclxuICBASW5wdXQoKSBwYWRkaW5nID0gLTUwO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHNldCBuYXZpZ2F0aW9uU2VjdGlvbnModmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdKSB7XHJcbiAgICBpZiAoIXZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPIFNlY3Rpb25OYXZpZ2F0aW9uQ29tcG9uZW50IHJlcXVlciBwZWxvIG1lbm9zIHVtYSBzZcOnw6NvLicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWN0aW9ucy5zZXQodmFsdWUpO1xyXG5cclxuICAgIGlmICghdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcclxuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldCh2YWx1ZVswXS5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBuYXZpZ2F0aW9uQ29uZmlnKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcuc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2FuY2hvckVsJykgYW5jaG9yc0VsITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PjtcclxuICBAT3V0cHV0KCkgc2VjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VjdGlvbk5hdmlnYXRpb25EYXRhPigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcclxuICBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgc3R5bGVCaW5kaW5nID0ge1xyXG4gICAgJy0tZm9udC1mYW1pbHknOiB0aGlzLmN1cmFTZXJ2aWNlLmdldEZvbnRGYW1pbHkoJycpLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjdXJhU2VydmljZTogQ3VyYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZW51SGVhZGVySGVpZ2h0ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignaGVhZGVyW3NsLWhkcl0nKT8ub2Zmc2V0SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QW5jaG9yQWRqdXN0bWVudCA9IHRoaXMubWVudUhlYWRlckhlaWdodCArICh0aGlzLnBhZGRpbmcgLSAxKTtcclxuICAgICAgfSwgMjAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2luZG93U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblxyXG4gICAgdGhpcy5zZWN0aW9ucygpPy5mb3JFYWNoKChzZWN0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oYCMke3NlY3Rpb24uaWR9YCk7XHJcbiAgICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgZWxlbWVudFRvcCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWSArIHRoaXMubWVudUhlYWRlckhlaWdodCArIHRoaXMucGFkZGluZztcclxuICAgICAgaWYgKGN1cnJlbnRTY3JvbGwgPj0gZWxlbWVudFRvcCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGlmICh0aGlzLnNlY3Rpb25zKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXhdKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHRoaXMuc2VjdGlvbnMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleF0/LmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybCgnJyk7XHJcbiAgICBjb25zdCBub3JtYWxpemVkID0gYmFzZS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG5cclxuICAgIHJldHVybiBub3JtYWxpemVkID09PSAnJyB8fCBub3JtYWxpemVkID09PSAnLycgPyAnJyA6IG5vcm1hbGl6ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQYXRoKHNlY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmdldEJhc2VQYXRoKCl9JHt0aGlzLnJvdXRlci51cmx9IyR7c2VjdGlvbklkfWA7XHJcbiAgfVxyXG5cclxuICBvblNlY3Rpb25DbGljayhldmVudDogU2VjdGlvbk5hdmlnYXRpb25EYXRhKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuYXYgY2xhc3M9XCJyZHNpdGUtc2lkZWJhci1uYXZpZ2F0aW9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbc3R5bGUudG9wLnB4XT1cImNvbmZpZygpPy5vZmZzZXRUb3AgfHwgMFwiPlxyXG4gIDxjdXJhLWNhcmQgY2xhc3M9XCJvbmx5LW1vYmlsZVwiIGhhcy1wYWRkaW5nPVwidHJ1ZVwiIG1hcmdpbi1ibG9jaz1cIjhweFwiIGhhcy1zaGFkb3c9XCJmYWxzZVwiIHR5cGU9XCJzb2xpZFwiIGNvbG9yLW1vZGU9XCJsaWdodFwiIHRhcmdldD1cIl9zZWxmXCI+XHJcbiAgICBAaWYgKHRpdGxlKSB7XHJcbiAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwic21hbGxcIiBjb2xvcj1cIm5ldXRyYWwtYmxhY2tcIiBtYXJnaW4tYmxvY2s9XCI4cHhcIj5cclxuICAgICAgICA8Yj57eyB0aXRsZSB9fTwvYj5cclxuICAgICAgPC9jdXJhLXBhcmFncmFwaD5cclxuICAgIH1cclxuICAgIDx1bCByb2xlPVwibWVudWJhclwiPlxyXG4gICAgICBAZm9yIChzZWN0aW9uIG9mIHNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24uaWQpIHtcclxuICAgICAgICA8bGkgcm9sZT1cIm5vbmVcIj5cclxuICAgICAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwieHNtYWxsXCIgbWFyZ2luLWJsb2NrPVwiOHB4XCIgW2NvbG9yXT1cImFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCA/ICduZXV0cmFsLWJsYWNrJyA6ICdwcmltYXJ5LWJhc2UnXCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgI2FuY2hvckVsXHJcbiAgICAgICAgICAgICAgaWQ9XCJhbmNob3Ite3sgc2VjdGlvbi5pZCB9fVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJyZHNpdGUtc2lkZWJhci1saW5rXCJcclxuICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImdldFBhdGgoc2VjdGlvbi5pZClcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblNlY3Rpb25DbGljayh7IGlkOiBzZWN0aW9uLmlkLCB0aXRsZTogc2VjdGlvbi50aXRsZSB9KVwiXHJcbiAgICAgICAgICAgICAgcmRzaXRlbGlua1xyXG4gICAgICAgICAgICAgIFthbmNob3JBZGp1c3RtZW50XT1cImFuY2hvckFkanVzdG1lbnQgfHwgZGVmYXVsdEFuY2hvckFkanVzdG1lbnRcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhY3RpdmVTZWN0aW9uKCkgPT09IHNlY3Rpb24uaWQgPyAncGFnZScgOiBudWxsXCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidOYXZlZ2FyIHBhcmEgJyArIHNlY3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGI+XHJcbiAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgPC9iPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2N1cmEtcGFyYWdyYXBoPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIH1cclxuICAgIDwvdWw+XHJcbiAgPC9jdXJhLWNhcmQ+XHJcbjwvbmF2PlxyXG4iXX0=
|
|
@@ -3,7 +3,8 @@ import { RdsiteLinkDirective } from '../../directives';
|
|
|
3
3
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../services";
|
|
6
|
-
import * as i2 from "@angular/
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
7
8
|
export class StickyNavigationComponent {
|
|
8
9
|
set navigationSections(value) {
|
|
9
10
|
if (!value?.length) {
|
|
@@ -20,8 +21,9 @@ export class StickyNavigationComponent {
|
|
|
20
21
|
onWindowScroll() {
|
|
21
22
|
this.windowScroll();
|
|
22
23
|
}
|
|
23
|
-
constructor(curaService, router, platformId, document) {
|
|
24
|
+
constructor(curaService, location, router, platformId, document) {
|
|
24
25
|
this.curaService = curaService;
|
|
26
|
+
this.location = location;
|
|
25
27
|
this.router = router;
|
|
26
28
|
this.platformId = platformId;
|
|
27
29
|
this.document = document;
|
|
@@ -66,8 +68,13 @@ export class StickyNavigationComponent {
|
|
|
66
68
|
}
|
|
67
69
|
});
|
|
68
70
|
}
|
|
71
|
+
getBasePath() {
|
|
72
|
+
const base = this.location.prepareExternalUrl('');
|
|
73
|
+
const normalized = base.replace(/\/$/, '');
|
|
74
|
+
return normalized === '' || normalized === '/' ? '' : normalized;
|
|
75
|
+
}
|
|
69
76
|
getPath(sectionId) {
|
|
70
|
-
return `${this.router.url}#${sectionId}`;
|
|
77
|
+
return `${this.getBasePath()}${this.router.url}#${sectionId}`;
|
|
71
78
|
}
|
|
72
79
|
onSectionClick(event) {
|
|
73
80
|
this.sectionChange.emit(event);
|
|
@@ -83,13 +90,13 @@ export class StickyNavigationComponent {
|
|
|
83
90
|
}, 100);
|
|
84
91
|
}
|
|
85
92
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyNavigationComponent, deps: [{ token: i1.CuraService }, { token: i2.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyNavigationComponent, deps: [{ token: i1.CuraService }, { token: i2.Location }, { token: i3.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
94
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: StickyNavigationComponent, isStandalone: true, selector: "nav[rdsite-sticky-navigation]", inputs: { anchorAdjustment: "anchorAdjustment", title: "title", ariaLabel: "ariaLabel", padding: "padding", navigationSections: "navigationSections", navigationConfig: "navigationConfig" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:scroll": "onWindowScroll()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "anchorsEl", predicate: ["anchorEl"], descendants: true }], ngImport: i0, template: "<nav class=\"rdsite-sticky-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n @if (title) {\r\n <div class=\"title-bar\" (click)=\"toggleOpen()\" [attr.aria-expanded]=\"isOpen()\" role=\"button\" tabindex=\"0\" (keydown.enter)=\"toggleOpen()\">\r\n <cura-paragraph size=\"small\" [attr.color]=\"isOpen() ? 'neutraldark' : 'primary-base'\" margin-block=\"8px\">\r\n <b>{{ title }}</b>\r\n </cura-paragraph>\r\n <cura-icon [attr.name]=\"isOpen() ? 'up' : 'down'\" size=\"16\" [attr.color]=\"isOpen() ? 'neutraldark' : 'primary-base'\"></cura-icon>\r\n </div>\r\n @if (sections().length && !isOpen()) {\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" color=\"neutral-black\">\r\n <b>{{ sections()[selectedIndex].title }}</b>\r\n </cura-paragraph>\r\n }\r\n }\r\n\r\n @if (isOpen()) {\r\n <ul class=\"menu\" [class.open]=\"isOpen()\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n <li role=\"none\">\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" [color]=\"activeSection() === section.id ? 'neutral-black' : 'primary-base'\">\r\n <a\r\n id=\"anchor-{{ section.id }}\"\r\n class=\"rdsite-sticky-link\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n rdsitelink\r\n (click)=\"onSectionClick({ id: section.id, title: section.title })\"\r\n [anchorAdjustment]=\"anchorAdjustment || defaultAnchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n >\r\n <b>{{ section.title }}</b>\r\n </a>\r\n </cura-paragraph>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</nav>\r\n", styles: ["nav{border-radius:2px;background:var(--neutral-purewhite);box-shadow:0 1px 4px #26262629;padding:8px 20px}nav *{font-family:var(--font-family)}nav .title-bar{display:flex;justify-content:space-between;align-items:center;cursor:pointer}nav ul.menu{display:flex;flex-direction:column;overflow:hidden;max-height:0;opacity:0;transform:scaleY(0);transform-origin:top;transition:max-height .3s ease,transform .3s ease,opacity .3s ease}nav ul.menu.open{max-height:fit-content;transform:scaleY(1);opacity:1}nav ul.menu li{width:100%}nav ul.menu li cura-paragraph,nav ul.menu li a{text-align:left}nav ul.menu li a{color:unset}\n"], dependencies: [{ kind: "directive", type: RdsiteLinkDirective, selector: "[rdsitelink]", inputs: ["anchorAdjustment", "anchorExtraAdjustment", "phonemodal"] }] }); }
|
|
88
95
|
}
|
|
89
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StickyNavigationComponent, decorators: [{
|
|
90
97
|
type: Component,
|
|
91
98
|
args: [{ selector: 'nav[rdsite-sticky-navigation]', standalone: true, imports: [RdsiteLinkDirective], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-sticky-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\r\n @if (title) {\r\n <div class=\"title-bar\" (click)=\"toggleOpen()\" [attr.aria-expanded]=\"isOpen()\" role=\"button\" tabindex=\"0\" (keydown.enter)=\"toggleOpen()\">\r\n <cura-paragraph size=\"small\" [attr.color]=\"isOpen() ? 'neutraldark' : 'primary-base'\" margin-block=\"8px\">\r\n <b>{{ title }}</b>\r\n </cura-paragraph>\r\n <cura-icon [attr.name]=\"isOpen() ? 'up' : 'down'\" size=\"16\" [attr.color]=\"isOpen() ? 'neutraldark' : 'primary-base'\"></cura-icon>\r\n </div>\r\n @if (sections().length && !isOpen()) {\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" color=\"neutral-black\">\r\n <b>{{ sections()[selectedIndex].title }}</b>\r\n </cura-paragraph>\r\n }\r\n }\r\n\r\n @if (isOpen()) {\r\n <ul class=\"menu\" [class.open]=\"isOpen()\" role=\"menubar\">\r\n @for (section of sections(); track section.id) {\r\n <li role=\"none\">\r\n <cura-paragraph size=\"xsmall\" margin-block=\"8px\" [color]=\"activeSection() === section.id ? 'neutral-black' : 'primary-base'\">\r\n <a\r\n id=\"anchor-{{ section.id }}\"\r\n class=\"rdsite-sticky-link\"\r\n role=\"menuitem\"\r\n [href]=\"getPath(section.id)\"\r\n rdsitelink\r\n (click)=\"onSectionClick({ id: section.id, title: section.title })\"\r\n [anchorAdjustment]=\"anchorAdjustment || defaultAnchorAdjustment\"\r\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\r\n [attr.aria-label]=\"'Navegar para ' + section.title\"\r\n >\r\n <b>{{ section.title }}</b>\r\n </a>\r\n </cura-paragraph>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</nav>\r\n", styles: ["nav{border-radius:2px;background:var(--neutral-purewhite);box-shadow:0 1px 4px #26262629;padding:8px 20px}nav *{font-family:var(--font-family)}nav .title-bar{display:flex;justify-content:space-between;align-items:center;cursor:pointer}nav ul.menu{display:flex;flex-direction:column;overflow:hidden;max-height:0;opacity:0;transform:scaleY(0);transform-origin:top;transition:max-height .3s ease,transform .3s ease,opacity .3s ease}nav ul.menu.open{max-height:fit-content;transform:scaleY(1);opacity:1}nav ul.menu li{width:100%}nav ul.menu li cura-paragraph,nav ul.menu li a{text-align:left}nav ul.menu li a{color:unset}\n"] }]
|
|
92
|
-
}], ctorParameters: () => [{ type: i1.CuraService }, { type: i2.Router }, { type: undefined, decorators: [{
|
|
99
|
+
}], ctorParameters: () => [{ type: i1.CuraService }, { type: i2.Location }, { type: i3.Router }, { type: undefined, decorators: [{
|
|
93
100
|
type: Inject,
|
|
94
101
|
args: [PLATFORM_ID]
|
|
95
102
|
}] }, { type: Document, decorators: [{
|
|
@@ -120,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
120
127
|
type: HostBinding,
|
|
121
128
|
args: ['style']
|
|
122
129
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvY29tcG9uZW50cy9zdGlja3ktbmF2aWdhdGlvbi9zdGlja3ktbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3N0aWNreS1uYXZpZ2F0aW9uL3N0aWNreS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBRXRCLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVc5RCxNQUFNLE9BQU8seUJBQXlCO0lBZ0JwQyxJQUNJLGtCQUFrQixDQUFDLEtBQThCO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxD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QkFBeUI7a0JBVHJDLFNBQVM7K0JBRUUsK0JBQStCLGNBQzdCLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFdBQ3JCLENBQUMsc0JBQXNCLENBQUM7OzBCQXFEOUIsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRO3lDQXZDVCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBYXJCLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFLb0IsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVO2dCQUNkLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBS1AsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgc2lnbmFsLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBQTEFURk9STV9JRCxcclxuICBBZnRlclZpZXdJbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZHNpdGVMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnLCBTZWN0aW9uTmF2aWdhdGlvbkRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VjdGlvbi1uYXZpZ2F0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ3VyYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbmF2W3Jkc2l0ZS1zdGlja3ktbmF2aWdhdGlvbl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1Jkc2l0ZUxpbmtEaXJlY3RpdmVdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RpY2t5LW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdGlja3ktbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGlja3lOYXZpZ2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlY3Rpb25zID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdPihbXSk7XHJcbiAgcmVhZG9ubHkgY29uZmlnID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGFjdGl2ZVNlY3Rpb24gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgcmVhZG9ubHkgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcclxuICBwdWJsaWMgc2VsZWN0ZWRJbmRleCA9IDA7XHJcbiAgcHVibGljIGRlZmF1bHRBbmNob3JBZGp1c3RtZW50ID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBtZW51SGVhZGVySGVpZ2h0ID0gMDtcclxuICBwcml2YXRlIG1lbnVTdGlja3lDbG9zZWRIZWlnaHQgPSAwO1xyXG5cclxuICBASW5wdXQoKSBhbmNob3JBZGp1c3RtZW50ID0gMDtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdOZXN0YSBww6FnaW5hJztcclxuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnTmF2ZWdhw6fDo28gZGEgcMOhZ2luYSc7XHJcbiAgQElucHV0KCkgcGFkZGluZyA9IDIwO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHNldCBuYXZpZ2F0aW9uU2VjdGlvbnModmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdKSB7XHJcbiAgICBpZiAoIXZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPIFNlY3Rpb25OYXZpZ2F0aW9uQ29tcG9uZW50IHJlcXVlciBwZWxvIG1lbm9zIHVtYSBzZcOnw6NvLicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWN0aW9ucy5zZXQodmFsdWUpO1xyXG5cclxuICAgIGlmICghdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcclxuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldCh2YWx1ZVswXS5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBuYXZpZ2F0aW9uQ29uZmlnKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcuc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2FuY2hvckVsJykgYW5jaG9yc0VsITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+PjtcclxuICBAT3V0cHV0KCkgc2VjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VjdGlvbk5hdmlnYXRpb25EYXRhPigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcclxuICBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgc3R5bGVCaW5kaW5nID0ge1xyXG4gICAgJy0tbmV1dHJhbC1wdXJld2hpdGUnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLXB1cmV3aGl0ZScpLFxyXG4gICAgJy0tZm9udC1mYW1pbHknOiB0aGlzLmN1cmFTZXJ2aWNlLmdldEZvbnRGYW1pbHkoJycpLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjdXJhU2VydmljZTogQ3VyYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVudUhlYWRlckhlaWdodCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2hlYWRlcltzbC1oZHJdJyk/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgIHRoaXMubWVudVN0aWNreUNsb3NlZEhlaWdodCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ25hdltyZHNpdGUtc3RpY2t5LW5hdmlnYXRpb25dJyk/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICB9LCAyMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3aW5kb3dTY3JvbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlY3Rpb25zKCk/LmZvckVhY2goKHNlY3Rpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGAjJHtzZWN0aW9uLmlkfWApO1xyXG4gICAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRUb3AgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gd2luZG93LnNjcm9sbFkgKyB0aGlzLm1lbnVIZWFkZXJIZWlnaHQgKyB0aGlzLm1lbnVTdGlja3lDbG9zZWRIZWlnaHQgKyB0aGlzLnBhZGRpbmc7XHJcblxyXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA+PSBlbGVtZW50VG9wKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VjdGlvbnMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodGhpcy5zZWN0aW9ucygpPy5bdGhpcy5zZWxlY3RlZEluZGV4XT8uaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQYXRoKHNlY3Rpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnJvdXRlci51cmx9IyR7c2VjdGlvbklkfWA7XHJcbiAgfVxyXG5cclxuICBvblNlY3Rpb25DbGljayhldmVudDogU2VjdGlvbk5hdmlnYXRpb25EYXRhKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLmlzT3Blbi51cGRhdGUoKHZhbHVlKSA9PiAhdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNPcGVuLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmlzT3BlbigpICYmICF0aGlzLmFuY2hvckFkanVzdG1lbnQpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gVXRpbGl6byBvIHRpbWVvdXQgcGFyYSBwZWdhciBhIGFsdHVyYSBkbyBlbGVtZW50byBkZXBvaXMgZGVsZSBhYmVydG9cclxuICAgICAgICBjb25zdCBtZW51U3RpY2t5T3BlbmVkSGVpZ2h0ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignbmF2W3Jkc2l0ZS1zdGlja3ktbmF2aWdhdGlvbl0nKT8ub2Zmc2V0SGVpZ2h0IHx8IDA7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QW5jaG9yQWRqdXN0bWVudCA9IG1lbnVTdGlja3lPcGVuZWRIZWlnaHQgKyB0aGlzLm1lbnVIZWFkZXJIZWlnaHQ7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuYXYgY2xhc3M9XCJyZHNpdGUtc3RpY2t5LW5hdmlnYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiIFtzdHlsZS50b3AucHhdPVwiY29uZmlnKCk/Lm9mZnNldFRvcCB8fCAwXCI+XHJcbiAgQGlmICh0aXRsZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlLWJhclwiIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlbigpXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZU9wZW4oKVwiPlxyXG4gICAgICA8Y3VyYS1wYXJhZ3JhcGggc2l6ZT1cInNtYWxsXCIgW2F0dHIuY29sb3JdPVwiaXNPcGVuKCkgPyAnbmV1dHJhbGRhcmsnIDogJ3ByaW1hcnktYmFzZSdcIiBtYXJnaW4tYmxvY2s9XCI4cHhcIj5cclxuICAgICAgICA8Yj57eyB0aXRsZSB9fTwvYj5cclxuICAgICAgPC9jdXJhLXBhcmFncmFwaD5cclxuICAgICAgPGN1cmEtaWNvbiBbYXR0ci5uYW1lXT1cImlzT3BlbigpID8gJ3VwJyA6ICdkb3duJ1wiIHNpemU9XCIxNlwiIFthdHRyLmNvbG9yXT1cImlzT3BlbigpID8gJ25ldXRyYWxkYXJrJyA6ICdwcmltYXJ5LWJhc2UnXCI+PC9jdXJhLWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoc2VjdGlvbnMoKS5sZW5ndGggJiYgIWlzT3BlbigpKSB7XHJcbiAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwieHNtYWxsXCIgbWFyZ2luLWJsb2NrPVwiOHB4XCIgY29sb3I9XCJuZXV0cmFsLWJsYWNrXCI+XHJcbiAgICAgICAgPGI+e3sgc2VjdGlvbnMoKVtzZWxlY3RlZEluZGV4XS50aXRsZSB9fTwvYj5cclxuICAgICAgPC9jdXJhLXBhcmFncmFwaD5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoaXNPcGVuKCkpIHtcclxuICAgIDx1bCBjbGFzcz1cIm1lbnVcIiBbY2xhc3Mub3Blbl09XCJpc09wZW4oKVwiIHJvbGU9XCJtZW51YmFyXCI+XHJcbiAgICAgIEBmb3IgKHNlY3Rpb24gb2Ygc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5pZCkge1xyXG4gICAgICAgIDxsaSByb2xlPVwibm9uZVwiPlxyXG4gICAgICAgICAgPGN1cmEtcGFyYWdyYXBoIHNpemU9XCJ4c21hbGxcIiBtYXJnaW4tYmxvY2s9XCI4cHhcIiBbY29sb3JdPVwiYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkID8gJ25ldXRyYWwtYmxhY2snIDogJ3ByaW1hcnktYmFzZSdcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBpZD1cImFuY2hvci17eyBzZWN0aW9uLmlkIH19XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInJkc2l0ZS1zdGlja3ktbGlua1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcclxuICAgICAgICAgICAgICBbaHJlZl09XCJnZXRQYXRoKHNlY3Rpb24uaWQpXCJcclxuICAgICAgICAgICAgICByZHNpdGVsaW5rXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VjdGlvbkNsaWNrKHsgaWQ6IHNlY3Rpb24uaWQsIHRpdGxlOiBzZWN0aW9uLnRpdGxlIH0pXCJcclxuICAgICAgICAgICAgICBbYW5jaG9yQWRqdXN0bWVudF09XCJhbmNob3JBZGp1c3RtZW50IHx8IGRlZmF1bHRBbmNob3JBZGp1c3RtZW50XCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkID8gJ3BhZ2UnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTmF2ZWdhciBwYXJhICcgKyBzZWN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxiPnt7IHNlY3Rpb24udGl0bGUgfX08L2I+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvY3VyYS1wYXJhZ3JhcGg+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfVxyXG4gICAgPC91bD5cclxuICB9XHJcbjwvbmF2PlxyXG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvY29tcG9uZW50cy9zdGlja3ktbmF2aWdhdGlvbi9zdGlja3ktbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3N0aWNreS1uYXZpZ2F0aW9uL3N0aWNreS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBRXRCLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQVksTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFXeEUsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEMsSUFDSSxrQkFBa0IsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMs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Z0JBQ2QsdUVBQXVFO2dCQUN2RSxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFjLCtCQUErQixDQUFDLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQztnQkFDNUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHNCQUFzQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoRixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0F6R1UseUJBQXlCLDJGQWtEMUIsV0FBVyxhQUNYLFFBQVE7bUdBbkRQLHlCQUF5QiwwZ0JDL0J0Qyw2M0RBdUNBLHFxQkRiWSxtQkFBbUI7OzRGQUtsQix5QkFBeUI7a0JBVHJDLFNBQVM7K0JBRUUsK0JBQStCLGNBQzdCLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFdBQ3JCLENBQUMsc0JBQXNCLENBQUM7OzBCQXNEOUIsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRO3lDQXhDVCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBYXJCLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFLb0IsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVO2dCQUNkLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1AsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBS1AsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgc2lnbmFsLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBQTEFURk9STV9JRCxcclxuICBBZnRlclZpZXdJbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZHNpdGVMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnLCBTZWN0aW9uTmF2aWdhdGlvbkRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VjdGlvbi1uYXZpZ2F0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ3VyYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ25hdltyZHNpdGUtc3RpY2t5LW5hdmlnYXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtSZHNpdGVMaW5rRGlyZWN0aXZlXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0aWNreS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RpY2t5LW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RpY2t5TmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWN0aW9ucyA9IHNpZ25hbDxTZWN0aW9uTmF2aWdhdGlvbkRhdGFbXT4oW10pO1xyXG4gIHJlYWRvbmx5IGNvbmZpZyA9IHNpZ25hbDxTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBhY3RpdmVTZWN0aW9uID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG4gIHJlYWRvbmx5IGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHVibGljIHNlbGVjdGVkSW5kZXggPSAwO1xyXG4gIHB1YmxpYyBkZWZhdWx0QW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcblxyXG4gIHByaXZhdGUgbWVudUhlYWRlckhlaWdodCA9IDA7XHJcbiAgcHJpdmF0ZSBtZW51U3RpY2t5Q2xvc2VkSGVpZ2h0ID0gMDtcclxuXHJcbiAgQElucHV0KCkgYW5jaG9yQWRqdXN0bWVudCA9IDA7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnTmVzdGEgcMOhZ2luYSc7XHJcbiAgQElucHV0KCkgYXJpYUxhYmVsID0gJ05hdmVnYcOnw6NvIGRhIHDDoWdpbmEnO1xyXG4gIEBJbnB1dCgpIHBhZGRpbmcgPSAyMDtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBzZXQgbmF2aWdhdGlvblNlY3Rpb25zKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkRhdGFbXSkge1xyXG4gICAgaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnMuc2V0KHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodmFsdWVbMF0uaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2aWdhdGlvbkNvbmZpZyh2YWx1ZTogU2VjdGlvbk5hdmlnYXRpb25Db25maWcpIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKCdhbmNob3JFbCcpIGFuY2hvcnNFbCE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50Pj47XHJcbiAgQE91dHB1dCgpIHNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlY3Rpb25OYXZpZ2F0aW9uRGF0YT4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXHJcbiAgb25XaW5kb3dTY3JvbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvd1Njcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIHN0eWxlQmluZGluZyA9IHtcclxuICAgICctLW5ldXRyYWwtcHVyZXdoaXRlJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcignbmV1dHJhbC1wdXJld2hpdGUnKSxcclxuICAgICctLWZvbnQtZmFtaWx5JzogdGhpcy5jdXJhU2VydmljZS5nZXRGb250RmFtaWx5KCcnKSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY3VyYVNlcnZpY2U6IEN1cmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWVudUhlYWRlckhlaWdodCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2hlYWRlcltzbC1oZHJdJyk/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgIHRoaXMubWVudVN0aWNreUNsb3NlZEhlaWdodCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ25hdltyZHNpdGUtc3RpY2t5LW5hdmlnYXRpb25dJyk/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICB9LCAyMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3aW5kb3dTY3JvbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlY3Rpb25zKCk/LmZvckVhY2goKHNlY3Rpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGAjJHtzZWN0aW9uLmlkfWApO1xyXG4gICAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRUb3AgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gd2luZG93LnNjcm9sbFkgKyB0aGlzLm1lbnVIZWFkZXJIZWlnaHQgKyB0aGlzLm1lbnVTdGlja3lDbG9zZWRIZWlnaHQgKyB0aGlzLnBhZGRpbmc7XHJcblxyXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA+PSBlbGVtZW50VG9wKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VjdGlvbnMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodGhpcy5zZWN0aW9ucygpPy5bdGhpcy5zZWxlY3RlZEluZGV4XT8uaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRCYXNlUGF0aCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYmFzZSA9IHRoaXMubG9jYXRpb24ucHJlcGFyZUV4dGVybmFsVXJsKCcnKTtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBiYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQgPT09ICcnIHx8IG5vcm1hbGl6ZWQgPT09ICcvJyA/ICcnIDogbm9ybWFsaXplZDtcclxuICB9XHJcblxyXG4gIGdldFBhdGgoc2VjdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuZ2V0QmFzZVBhdGgoKX0ke3RoaXMucm91dGVyLnVybH0jJHtzZWN0aW9uSWR9YDtcclxuICB9XHJcblxyXG4gIG9uU2VjdGlvbkNsaWNrKGV2ZW50OiBTZWN0aW9uTmF2aWdhdGlvbkRhdGEpIHtcclxuICAgIHRoaXMuc2VjdGlvbkNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuaXNPcGVuLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVPcGVuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc09wZW4udXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMuaXNPcGVuKCkgJiYgIXRoaXMuYW5jaG9yQWRqdXN0bWVudCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyBVdGlsaXpvIG8gdGltZW91dCBwYXJhIHBlZ2FyIGEgYWx0dXJhIGRvIGVsZW1lbnRvIGRlcG9pcyBkZWxlIGFiZXJ0b1xyXG4gICAgICAgIGNvbnN0IG1lbnVTdGlja3lPcGVuZWRIZWlnaHQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCduYXZbcmRzaXRlLXN0aWNreS1uYXZpZ2F0aW9uXScpPy5vZmZzZXRIZWlnaHQgfHwgMDtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBbmNob3JBZGp1c3RtZW50ID0gbWVudVN0aWNreU9wZW5lZEhlaWdodCArIHRoaXMubWVudUhlYWRlckhlaWdodDtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5hdiBjbGFzcz1cInJkc2l0ZS1zdGlja3ktbmF2aWdhdGlvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgW3N0eWxlLnRvcC5weF09XCJjb25maWcoKT8ub2Zmc2V0VG9wIHx8IDBcIj5cclxuICBAaWYgKHRpdGxlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtYmFyXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNPcGVuKClcIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwidG9nZ2xlT3BlbigpXCI+XHJcbiAgICAgIDxjdXJhLXBhcmFncmFwaCBzaXplPVwic21hbGxcIiBbYXR0ci5jb2xvcl09XCJpc09wZW4oKSA/ICduZXV0cmFsZGFyaycgOiAncHJpbWFyeS1iYXNlJ1wiIG1hcmdpbi1ibG9jaz1cIjhweFwiPlxyXG4gICAgICAgIDxiPnt7IHRpdGxlIH19PC9iPlxyXG4gICAgICA8L2N1cmEtcGFyYWdyYXBoPlxyXG4gICAgICA8Y3VyYS1pY29uIFthdHRyLm5hbWVdPVwiaXNPcGVuKCkgPyAndXAnIDogJ2Rvd24nXCIgc2l6ZT1cIjE2XCIgW2F0dHIuY29sb3JdPVwiaXNPcGVuKCkgPyAnbmV1dHJhbGRhcmsnIDogJ3ByaW1hcnktYmFzZSdcIj48L2N1cmEtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChzZWN0aW9ucygpLmxlbmd0aCAmJiAhaXNPcGVuKCkpIHtcclxuICAgICAgPGN1cmEtcGFyYWdyYXBoIHNpemU9XCJ4c21hbGxcIiBtYXJnaW4tYmxvY2s9XCI4cHhcIiBjb2xvcj1cIm5ldXRyYWwtYmxhY2tcIj5cclxuICAgICAgICA8Yj57eyBzZWN0aW9ucygpW3NlbGVjdGVkSW5kZXhdLnRpdGxlIH19PC9iPlxyXG4gICAgICA8L2N1cmEtcGFyYWdyYXBoPlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmIChpc09wZW4oKSkge1xyXG4gICAgPHVsIGNsYXNzPVwibWVudVwiIFtjbGFzcy5vcGVuXT1cImlzT3BlbigpXCIgcm9sZT1cIm1lbnViYXJcIj5cclxuICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9ucygpOyB0cmFjayBzZWN0aW9uLmlkKSB7XHJcbiAgICAgICAgPGxpIHJvbGU9XCJub25lXCI+XHJcbiAgICAgICAgICA8Y3VyYS1wYXJhZ3JhcGggc2l6ZT1cInhzbWFsbFwiIG1hcmdpbi1ibG9jaz1cIjhweFwiIFtjb2xvcl09XCJhY3RpdmVTZWN0aW9uKCkgPT09IHNlY3Rpb24uaWQgPyAnbmV1dHJhbC1ibGFjaycgOiAncHJpbWFyeS1iYXNlJ1wiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIGlkPVwiYW5jaG9yLXt7IHNlY3Rpb24uaWQgfX1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicmRzaXRlLXN0aWNreS1saW5rXCJcclxuICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImdldFBhdGgoc2VjdGlvbi5pZClcIlxyXG4gICAgICAgICAgICAgIHJkc2l0ZWxpbmtcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWN0aW9uQ2xpY2soeyBpZDogc2VjdGlvbi5pZCwgdGl0bGU6IHNlY3Rpb24udGl0bGUgfSlcIlxyXG4gICAgICAgICAgICAgIFthbmNob3JBZGp1c3RtZW50XT1cImFuY2hvckFkanVzdG1lbnQgfHwgZGVmYXVsdEFuY2hvckFkanVzdG1lbnRcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhY3RpdmVTZWN0aW9uKCkgPT09IHNlY3Rpb24uaWQgPyAncGFnZScgOiBudWxsXCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidOYXZlZ2FyIHBhcmEgJyArIHNlY3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGI+e3sgc2VjdGlvbi50aXRsZSB9fTwvYj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9jdXJhLXBhcmFncmFwaD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICB9XHJcbiAgICA8L3VsPlxyXG4gIH1cclxuPC9uYXY+XHJcbiJdfQ==
|