@flogeez/angular-tiptap-editor 3.4.3 → 3.4.4
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/CHANGELOG.md +6 -0
- package/esm2022/lib/components/table-of-contents/ate-table-of-contents.component.mjs +16 -5
- package/esm2022/lib/components/table-of-contents/ate-toc-node.component.mjs +1 -1
- package/esm2022/lib/config/ate-toc.config.mjs +2 -1
- package/esm2022/lib/models/ate-toc.model.mjs +1 -1
- package/fesm2022/flogeez-angular-tiptap-editor.mjs +17 -5
- package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
- package/lib/components/table-of-contents/ate-table-of-contents.component.d.ts +2 -1
- package/lib/models/ate-toc.model.d.ts +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ All notable changes to `@flogeez/angular-tiptap-editor` will be documented in th
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), with the exception that the major version is specifically aligned with the major version of [Tiptap](https://tiptap.dev).
|
|
7
7
|
|
|
8
|
+
## [3.4.4] - 2026-08-03
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **TOC `positionMode` Input**: Added `positionMode` (`'fixed'` | `'absolute'`) to `AteTableOfContentsComponent` for container-relative positioning.
|
|
13
|
+
|
|
8
14
|
## [3.4.3] - 2026-07-31
|
|
9
15
|
|
|
10
16
|
### Added
|
|
@@ -35,6 +35,8 @@ export class AteTableOfContentsComponent {
|
|
|
35
35
|
this.showTitle = input(true);
|
|
36
36
|
// Layout mode: floating on fixed position or inline inside parent container
|
|
37
37
|
this.floating = input(true);
|
|
38
|
+
// Positioning mode when floating: 'fixed' (relative to viewport, default) or 'absolute' (relative to parent container)
|
|
39
|
+
this.positionMode = input("fixed");
|
|
38
40
|
// Floating position: 'right' | 'left'
|
|
39
41
|
this.position = input("right");
|
|
40
42
|
// Visual variant: 'minimal' | 'card' | 'transparent'
|
|
@@ -239,10 +241,12 @@ export class AteTableOfContentsComponent {
|
|
|
239
241
|
});
|
|
240
242
|
}
|
|
241
243
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTableOfContentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AteTableOfContentsComponent, isStandalone: true, selector: "ate-table-of-contents", inputs: { editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, floating: { classPropertyName: "floating", publicName: "floating", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hoverExpand: { classPropertyName: "hoverExpand", publicName: "hoverExpand", isSignal: true, isRequired: false, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:scroll": "onScroll()", "window:resize": "onScroll()" } }, ngImport: i0, template: `
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AteTableOfContentsComponent, isStandalone: true, selector: "ate-table-of-contents", inputs: { editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, floating: { classPropertyName: "floating", publicName: "floating", isSignal: true, isRequired: false, transformFunction: null }, positionMode: { classPropertyName: "positionMode", publicName: "positionMode", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hoverExpand: { classPropertyName: "hoverExpand", publicName: "hoverExpand", isSignal: true, isRequired: false, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:scroll": "onScroll()", "window:resize": "onScroll()" }, properties: { "class.ate-toc-host-floating": "floating()", "style.--ate-toc-position-mode": "floating() ? positionMode() : null", "class.ate-toc-host-absolute": "floating() && positionMode() === 'absolute'", "class.ate-toc-host-fixed": "floating() && positionMode() === 'fixed'" } }, ngImport: i0, template: `
|
|
243
245
|
<div
|
|
244
246
|
class="ate-toc-wrapper"
|
|
245
247
|
[class.ate-toc-floating]="floating()"
|
|
248
|
+
[class.ate-toc-position-absolute]="floating() && positionMode() === 'absolute'"
|
|
249
|
+
[class.ate-toc-position-fixed]="floating() && positionMode() === 'fixed'"
|
|
246
250
|
[class.ate-toc-position-left]="position() === 'left'"
|
|
247
251
|
[class.ate-toc-position-right]="position() === 'right'"
|
|
248
252
|
(mouseenter)="setMouseHover(true)"
|
|
@@ -299,14 +303,21 @@ export class AteTableOfContentsComponent {
|
|
|
299
303
|
}
|
|
300
304
|
</div>
|
|
301
305
|
</div>
|
|
302
|
-
`, isInline: true, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:fixed;top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
306
|
+
`, isInline: true, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:var(--ate-toc-position-mode, fixed);top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-absolute,:host(.ate-toc-host-absolute) .ate-toc-wrapper.ate-toc-floating{position:absolute}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-fixed,:host(.ate-toc-host-fixed) .ate-toc-wrapper.ate-toc-floating{position:fixed}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
303
307
|
}
|
|
304
308
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTableOfContentsComponent, decorators: [{
|
|
305
309
|
type: Component,
|
|
306
|
-
args: [{ selector: "ate-table-of-contents", standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush,
|
|
310
|
+
args: [{ selector: "ate-table-of-contents", standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
311
|
+
"[class.ate-toc-host-floating]": "floating()",
|
|
312
|
+
"[style.--ate-toc-position-mode]": "floating() ? positionMode() : null",
|
|
313
|
+
"[class.ate-toc-host-absolute]": "floating() && positionMode() === 'absolute'",
|
|
314
|
+
"[class.ate-toc-host-fixed]": "floating() && positionMode() === 'fixed'",
|
|
315
|
+
}, template: `
|
|
307
316
|
<div
|
|
308
317
|
class="ate-toc-wrapper"
|
|
309
318
|
[class.ate-toc-floating]="floating()"
|
|
319
|
+
[class.ate-toc-position-absolute]="floating() && positionMode() === 'absolute'"
|
|
320
|
+
[class.ate-toc-position-fixed]="floating() && positionMode() === 'fixed'"
|
|
310
321
|
[class.ate-toc-position-left]="position() === 'left'"
|
|
311
322
|
[class.ate-toc-position-right]="position() === 'right'"
|
|
312
323
|
(mouseenter)="setMouseHover(true)"
|
|
@@ -363,7 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
363
374
|
}
|
|
364
375
|
</div>
|
|
365
376
|
</div>
|
|
366
|
-
`, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:fixed;top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"] }]
|
|
377
|
+
`, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:var(--ate-toc-position-mode, fixed);top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-absolute,:host(.ate-toc-host-absolute) .ate-toc-wrapper.ate-toc-floating{position:absolute}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-fixed,:host(.ate-toc-host-fixed) .ate-toc-wrapper.ate-toc-floating{position:fixed}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"] }]
|
|
367
378
|
}], ctorParameters: () => [], propDecorators: { onScroll: [{
|
|
368
379
|
type: HostListener,
|
|
369
380
|
args: ["window:scroll", []]
|
|
@@ -371,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
371
382
|
type: HostListener,
|
|
372
383
|
args: ["window:resize", []]
|
|
373
384
|
}] } });
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRhYmxlLW9mLWNvbnRlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtb2YtY29udGVudHMvYXRlLXRhYmxlLW9mLWNvbnRlbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUV2QixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFJakU7Ozs7R0FJRztBQTBXSCxNQUFNLE9BQU8sMkJBQTJCO0lBb0N0QyxrRUFBa0U7SUFDbEUsU0FBUyxDQUFDLEtBQWE7UUFDckIsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYO2dCQUNFLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFrQ0Q7UUFyRkEscUVBQXFFO1FBQ3JFLFdBQU0sR0FBRyxLQUFLLENBQW9ELElBQUksQ0FBQyxDQUFDO1FBRXhFLGlFQUFpRTtRQUNqRSxVQUFLLEdBQUcs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QUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUYsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTFRVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixzckNBcFc1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUOzs0RkF3U1UsMkJBQTJCO2tCQXpXdkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLEVBQUUsbUJBQ00sdUJBQXVCLENBQUMsTUFBTSxZQUNyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUO3dEQXNaRCxRQUFRO3NCQUZQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7O3NCQUNoQyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIHVudHJhY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uRGVzdHJveSxcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuaW1wb3J0IHsgQXRlRWRpdG9yUmVmIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hdGUtZWRpdG9yLXJlZlwiO1xuaW1wb3J0IHsgQXRlRWRpdG9yUmVnaXN0cnkgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1yZWdpc3RyeS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IEF0ZVRvY0l0ZW0sIEF0ZVRvY1ZhcmlhbnQgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2F0ZS10b2MubW9kZWxcIjtcblxuLyoqXG4gKiBUYWJsZSBvZiBDb250ZW50cyBDb21wb25lbnQgKE5vdGlvbi1zdHlsZSlcbiAqIER5bmFtaWNhbGx5IGV4dHJhY3RzIGhlYWRpbmdzIGZyb20gdGhlIGFjdGl2ZSBlZGl0b3IgYW5kIGRpc3BsYXlzIHRoZW0uXG4gKiBDb25maWd1cmFibGUgdmlhIGlucHV0cyAoZmxvYXRpbmcsIHBvc2l0aW9uLCB2YXJpYW50cywgaG92ZXIgZXhwYW5zaW9uKSBhbmQgQ1NTIHZhcmlhYmxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS10YWJsZS1vZi1jb250ZW50c1wiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhdGUtdG9jLXdyYXBwZXJcIlxuICAgICAgW2NsYXNzLmF0ZS10b2MtZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiXG4gICAgICBbY2xhc3MuYXRlLXRvYy1wb3NpdGlvbi1sZWZ0XT1cInBvc2l0aW9uKCkgPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MuYXRlLXRvYy1wb3NpdGlvbi1yaWdodF09XCJwb3NpdGlvbigpID09PSAncmlnaHQnXCJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldE1vdXNlSG92ZXIodHJ1ZSlcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0TW91c2VIb3ZlcihmYWxzZSlcIlxuICAgICAgKGZvY3VzaW4pPVwic2V0Rm9jdXNlZCh0cnVlKVwiXG4gICAgICAoZm9jdXNvdXQpPVwic2V0Rm9jdXNlZChmYWxzZSlcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhdGUtdG9jXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXBvc2l0aW9uLWxlZnRdPVwicG9zaXRpb24oKSA9PT0gJ2xlZnQnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtcG9zaXRpb24tcmlnaHRdPVwicG9zaXRpb24oKSA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXZhcmlhbnQtY2FyZF09XCJ2YXJpYW50KCkgPT09ICdjYXJkJ1wiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXZhcmlhbnQtdHJhbnNwYXJlbnRdPVwidmFyaWFudCgpID09PSAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtdmFyaWFudC1taW5pbWFsXT1cInZhcmlhbnQoKSA9PT0gJ21pbmltYWwnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtaG92ZXItZXhwYW5kXT1cImZsb2F0aW5nKCkgJiYgaG92ZXJFeHBhbmQoKVwiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLWhvdmVyZWRdPVwiZmxvYXRpbmcoKSAmJiBob3ZlckV4cGFuZCgpICYmIGlzRXhwYW5kZWQoKVwiXG4gICAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlRhYmxlIG9mIENvbnRlbnRzXCI+XG4gICAgICAgIEBpZiAoaXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgQGlmIChzaG93VGl0bGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF0ZS10b2MtaGVhZGVyXCI+e3sgaGVhZGVyVGl0bGUoKSB9fTwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvYy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXRlLXRvYy1pdGVtXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXRlLXRvYy1hY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFjdGl2ZSA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbGV2ZWxdPVwiaXRlbS5sZXZlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvSGVhZGluZyhpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCI+XG4gICAgICAgICAgICAgICAgPCEtLSBQZXJmZWN0IG5hdGl2ZSB2ZWN0b3IgU1ZHIGRhc2ggd2l0aCBsZXZlbC1hZGFwdGVkIHZpZXdCb3ggJiB3aWR0aCAtLT5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICBbYXR0ci53aWR0aF09XCJkYXNoV2lkdGgoaXRlbS5sZXZlbClcIlxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMlwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci52aWV3Qm94XT1cIicwIDAgJyArIGRhc2hXaWR0aChpdGVtLmxldmVsKSArICcgMidcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF0ZS10b2MtZGFzaFwiPlxuICAgICAgICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwiZGFzaFdpZHRoKGl0ZW0ubGV2ZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIHJ4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIHJ5PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEZ1bGwgaGVhZGluZyB0ZXh0IC0tPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXRlLXRvYy10ZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC8qIE91dGVyIEhpdGJveCBDb250YWluZXIgUG9zaXRpb25pbmcgKi9cbiAgICAgIC5hdGUtdG9jLXdyYXBwZXIuYXRlLXRvYy1mbG9hdGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiB2YXIoLS1hdGUtdG9jLXRvcCwgNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1hdGUtdG9jLXotaW5kZXgsIDk1KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2Mtd3JhcHBlci5hdGUtdG9jLWZsb2F0aW5nLmF0ZS10b2MtcG9zaXRpb24tcmlnaHQge1xuICAgICAgICByaWdodDogdmFyKC0tYXRlLXRvYy1yaWdodCwgMnJlbSk7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tYXRlLXRvYy1oaXRib3gtcGFkZGluZywgMTZweCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1hdGUtdG9jLWhpdGJveC1wYWRkaW5nLXZlcnRpY2FsLCA4cHgpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tYXRlLXRvYy1oaXRib3gtcGFkZGluZy12ZXJ0aWNhbCwgOHB4KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2Mtd3JhcHBlci5hdGUtdG9jLWZsb2F0aW5nLmF0ZS10b2MtcG9zaXRpb24tbGVmdCB7XG4gICAgICAgIGxlZnQ6IHZhcigtLWF0ZS10b2MtbGVmdCwgMnJlbSk7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1hdGUtdG9jLWhpdGJveC1wYWRkaW5nLCAxNnB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tYXRlLXRvYy1oaXRib3gtcGFkZGluZy12ZXJ0aWNhbCwgOHB4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWF0ZS10b2MtaGl0Ym94LXBhZGRpbmctdmVydGljYWwsIDhweCk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgICAgfVxuXG4gICAgICAvKiBGbG9hdGluZyBNb2RlIENvbnRhaW5lciBQb3NpdGlvbmluZyAqL1xuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1mbG9hdGluZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLWF0ZS10b2MtbWF4LWhlaWdodCwgNDAwcHgpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICAvKiBGbG9hdGluZyBtb2RlIHdpZHRoICYgcGFkZGluZyAqL1xuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1mbG9hdGluZzpub3QoLmF0ZS10b2MtaG92ZXItZXhwYW5kKSxcbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtZmxvYXRpbmcuYXRlLXRvYy1ob3Zlci1leHBhbmQ6aG92ZXIsXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWZsb2F0aW5nLmF0ZS10b2MtaG92ZXItZXhwYW5kLmF0ZS10b2MtaG92ZXJlZCB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1hdGUtdG9jLXdpZHRoLCAyNDBweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS10b2MtYm9yZGVyLXJhZGl1cywgdmFyKC0tYXRlLWJvcmRlci1yYWRpdXMsIDE2cHgpKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYXRlLXRvYy1wYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1mbG9hdGluZy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtaG92ZXJlZCk6bm90KDpob3Zlcikge1xuICAgICAgICB3aWR0aDogdmFyKC0tYXRlLXRvYy1jb2xsYXBzZWQtd2lkdGgsIDMycHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hdGUtdG9jLWNvbGxhcHNlZC1yYWRpdXMsIDE2cHgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1hdGUtdG9jLXBhZGRpbmcpO1xuICAgICAgfVxuXG4gICAgICAvKiBWYXJpYW50OiBjYXJkICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLXZhcmlhbnQtY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b2MtYmcsIHZhcigtLWF0ZS1zdXJmYWNlLCAjZmZmZmZmKSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWF0ZS10b2MtYm9yZGVyLCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS10b2MtYm9yZGVyLXJhZGl1cywgdmFyKC0tYXRlLWJvcmRlci1yYWRpdXMsIDEycHgpKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tYXRlLXRvYy1zaGFkb3csIDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS10b2MtcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgIC8qIFZhcmlhbnQ6IG1pbmltYWwgKi9cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtdmFyaWFudC1taW5pbWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hdGUtdG9jLWJvcmRlci1yYWRpdXMsIHZhcigtLWF0ZS1ib3JkZXItcmFkaXVzLCAxMnB4KSk7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy12YXJpYW50LW1pbmltYWw6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9jLWhvdmVyLWJnLCB2YXIoLS1hdGUtc3VyZmFjZSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSkpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWF0ZS10b2MtaG92ZXItYm9yZGVyLCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWF0ZS10b2MtaG92ZXItc2hhZG93LCAwIDRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAgICAgfVxuXG4gICAgICAvKiBWYXJpYW50OiB0cmFuc3BhcmVudCAqL1xuICAgICAgLmF0ZS10b2MuYXRlLXRvYy12YXJpYW50LXRyYW5zcGFyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyogSGVhZGVyIHN0eWxpbmcgKi9cbiAgICAgIC5hdGUtdG9jLWhlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10ZXh0LW11dGVkLCAjOWNhM2FmKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLyogTGlzdCBjb250YWluZXIgKi9cbiAgICAgIC5hdGUtdG9jLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWF0ZS10b2MtdGV4dC1nYXAsIHZhcigtLWF0ZS10b2MtZ2FwLCAycHgpKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBnYXAgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAvKiBCYXNlIEl0ZW0gKEV4cGFuZGVkIC8gVGV4dCBtb2RlIGRlZmF1bHQpICovXG4gICAgICAuYXRlLXRvYy1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hdGUtdG9jLWl0ZW0taG92ZXItaGVpZ2h0LCAyMnB4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1jb2xvciwgdmFyKC0tYXRlLXRleHQtc2Vjb25kYXJ5LCAjNjQ3NDhiKSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1zdWItYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MtaXRlbTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIH1cblxuICAgICAgLyogTGV2ZWwgSW5kZW50YXRpb25zIGluIFRleHQgbW9kZSAqL1xuICAgICAgLmF0ZS10b2MtaXRlbVtkYXRhLWxldmVsPVwiMVwiXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgICAgfVxuICAgICAgLmF0ZS10b2MtaXRlbVtkYXRhLWxldmVsPVwiMlwiXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5hdGUtdG9jLWl0ZW1bZGF0YS1sZXZlbD1cIjNcIl0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgICB9XG4gICAgICAuYXRlLXRvYy1pdGVtW2RhdGEtbGV2ZWw9XCI0XCJdIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgICAgfVxuICAgICAgLmF0ZS10b2MtaXRlbVtkYXRhLWxldmVsPVwiNVwiXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIH1cbiAgICAgIC5hdGUtdG9jLWl0ZW1bZGF0YS1sZXZlbD1cIjZcIl0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEl0ZW0gaG92ZXIgb3ZlcmxheSAmIGFjdGl2ZSBzdGF0ZSAoRXhwYW5kZWQgLyBUZXh0IG1vZGUpICovXG4gICAgICAuYXRlLXRvYy1pdGVtOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtcHJpbWFyeSwgIzI1NjNlYik7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hdGUtc3ViLWJvcmRlci1yYWRpdXMsIDhweCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy1pdGVtOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtY29sb3IsIHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLWl0ZW06aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MtaXRlbS5hdGUtdG9jLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24tYWN0aXZlLWNvbG9yLCB2YXIoLS1hdGUtcHJpbWFyeSwgIzI1NjNlYikpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoXG4gICAgICAgICAgLS1hdGUtdG9vbGJhci1idXR0b24tYWN0aXZlLWJhY2tncm91bmQsXG4gICAgICAgICAgdmFyKC0tYXRlLXByaW1hcnktbGlnaHQsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hdGUtcHJpbWFyeSwgIzI1NjNlYiksIHRyYW5zcGFyZW50IDkwJSkpXG4gICAgICAgICk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG5cbiAgICAgIC8qIEhlYWRpbmcgVGV4dCBzdHlsaW5nICovXG4gICAgICAuYXRlLXRvYy10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpLFxuICAgICAgICAgIG1heC13aWR0aCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpLFxuICAgICAgICAgIG1hcmdpbiAwLjI1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAvKiBTVkcgUmVjdCBEYXNoIHN0eWxpbmcgKEhpZGRlbiBpbiBUZXh0IG1vZGUpICovXG4gICAgICAuYXRlLXRvYy1kYXNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdG9jLWRhc2gtY29sb3IsIHZhcigtLWF0ZS1ib3JkZXIsICNjYmQ1ZTEpKTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgICB9XG5cbiAgICAgIC8qIC0tLSBDT0xMQVBTRUQgTk9USU9OIE1PREUgKERhc2hlcyBvbmx5LCB3aGVuIGhvdmVyLWV4cGFuZCBpcyBhY3RpdmUgJiBub3QgaG92ZXJlZCkgLS0tICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtaG92ZXJlZCkgLmF0ZS10b2MtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWRhc2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy1pdGVtIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hdGUtdG9jLWl0ZW0taGVpZ2h0LCAxOHB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWl0ZW06OmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy1pdGVtOmhvdmVyIC5hdGUtdG9jLWRhc2gsXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtaG92ZXJlZClcbiAgICAgICAgLmF0ZS10b2MtaXRlbS5hdGUtdG9jLWFjdGl2ZVxuICAgICAgICAuYXRlLXRvYy1kYXNoIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLyogRGlyZWN0aW9uICYgdGV4dCBjb2xsYXBzZSBmb3IgQ29sbGFwc2VkIFJJR0hUIHBvc2l0aW9uICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZC5hdGUtdG9jLXBvc2l0aW9uLXJpZ2h0Om5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy1pdGVtIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kLmF0ZS10b2MtcG9zaXRpb24tcmlnaHQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLXRleHQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIERpcmVjdGlvbiAmIHRleHQgY29sbGFwc2UgZm9yIENvbGxhcHNlZCBMRUZUIHBvc2l0aW9uICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtcG9zaXRpb24tcmlnaHQpOm5vdCguYXRlLXRvYy1ob3ZlcmVkKVxuICAgICAgICAuYXRlLXRvYy1pdGVtLFxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQuYXRlLXRvYy1wb3NpdGlvbi1sZWZ0Om5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy1pdGVtIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtcG9zaXRpb24tcmlnaHQpOm5vdCguYXRlLXRvYy1ob3ZlcmVkKVxuICAgICAgICAuYXRlLXRvYy10ZXh0LFxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQuYXRlLXRvYy1wb3NpdGlvbi1sZWZ0Om5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy10ZXh0IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF0ZVRhYmxlT2ZDb250ZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIElucHV0IGFjY2VwdHMgcmF3IEVkaXRvciwgQXRlRWRpdG9yUmVmLCBvciBJRCBvZiByZWdpc3RlcmVkIGVkaXRvclxuICBlZGl0b3IgPSBpbnB1dDxFZGl0b3IgfCBBdGVFZGl0b3JSZWYgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihudWxsKTtcblxuICAvLyBPcHRpb25hbCBjdXN0b20gdGl0bGUgKGlmIG5vdCBwcm92aWRlZCwgdXNlcyBpMThuIHRyYW5zbGF0aW9uKVxuICB0aXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8vIFdoZXRoZXIgdG8gc2hvdyB0aGUgaGVhZGVyIHRpdGxlXG4gIHNob3dUaXRsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8vIExheW91dCBtb2RlOiBmbG9hdGluZyBvbiBmaXhlZCBwb3NpdGlvbiBvciBpbmxpbmUgaW5zaWRlIHBhcmVudCBjb250YWluZXJcbiAgZmxvYXRpbmcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvLyBGbG9hdGluZyBwb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0J1xuICBwb3NpdGlvbiA9IGlucHV0PFwibGVmdFwiIHwgXCJyaWdodFwiPihcInJpZ2h0XCIpO1xuXG4gIC8vIFZpc3VhbCB2YXJpYW50OiAnbWluaW1hbCcgfCAnY2FyZCcgfCAndHJhbnNwYXJlbnQnXG4gIHZhcmlhbnQgPSBpbnB1dDxBdGVUb2NWYXJpYW50PihcIm1pbmltYWxcIik7XG5cbiAgLy8gTm90aW9uLXN0eWxlIGhvdmVyIGV4cGFuc2lvbiAoY29sbGFwc2VzIHRleHQgaW50byBkYXNoZXMgdW50aWwgaG92ZXJlZClcbiAgaG92ZXJFeHBhbmQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvLyBNYXhpbXVtIGhlYWRpbmcgbGV2ZWwgZGVwdGggdG8gaW5jbHVkZSAoMS02LCBkZWZhdWx0OiA2KVxuICBtYXhEZXB0aCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgc3RyaW5nPig2LCB7XG4gICAgdHJhbnNmb3JtOiAodjogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlSW50KHYsIDEwKSA6IHY7XG4gICAgICBpZiAoaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICByZXR1cm4gNjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCgxLCBwYXJzZWQpLCA2KTtcbiAgICB9LFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEF0ZUVkaXRvclJlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEF0ZUkxOG5TZXJ2aWNlKTtcblxuICAvLyBIZWxwZXIgbWV0aG9kIGZvciBleGFjdCBuYXRpdmUgU1ZHIGRhc2ggd2lkdGggcGVyIGhlYWRpbmcgbGV2ZWxcbiAgZGFzaFdpZHRoKGxldmVsOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIDE2O1xuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gMTI7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHJldHVybiA4O1xuICAgICAgY2FzZSA0OlxuICAgICAgICByZXR1cm4gNjtcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgcmV0dXJuIDQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMztcbiAgICB9XG4gIH1cblxuICAvLyBDb21wdXRlZCBoZWFkZXIgdGl0bGUgd2l0aCBmYWxsYmFjayB0byBpMThuXG4gIHJlYWRvbmx5IGhlYWRlclRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1c3RvbSA9IHRoaXMudGl0bGUoKTtcbiAgICBpZiAoY3VzdG9tICE9PSBudWxsICYmIGN1c3RvbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY3VzdG9tO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pMThuLmVkaXRvcigpLnRhYmxlT2ZDb250ZW50cztcbiAgfSk7XG5cbiAgLy8gUmVzb2x2ZWQgZWRpdG9yIGluc3RhbmNlXG4gIHJlYWRvbmx5IHJlc29sdmVkRWRpdG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmFjdGl2ZUVkaXRvcigpPy5lZGl0b3IgfHwgbnVsbDtcbiAgICB9XG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEF0ZUVkaXRvclJlZikge1xuICAgICAgcmV0dXJuIHZhbC5lZGl0b3I7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5nZXQodmFsKT8uZWRpdG9yIHx8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH0pO1xuXG4gIC8vIFRhYmxlIG9mIENvbnRlbnRzIGl0ZW1zXG4gIHJlYWRvbmx5IGl0ZW1zID0gc2lnbmFsPEF0ZVRvY0l0ZW1bXT4oW10pO1xuXG4gIC8vIERpc3RpbmN0IG1vdXNlIGhvdmVyIGFuZCBrZXlib2FyZCBmb2N1cyBzdGF0ZSB0cmFja2luZ1xuICBpc01vdXNlSG92ZXJlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGlzRm9jdXNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzRXhwYW5kZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzTW91c2VIb3ZlcmVkKCkgfHwgdGhpcy5pc0ZvY3VzZWQoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVhY3Qgc3RyaWN0bHkgdG8gZWRpdG9yIGluc3RhbmNlIGNoYW5nZXMgd2l0aG91dCB0cmFja2luZyBpbnRlcm5hbCBzaWduYWwgdXBkYXRlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcik7XG4gICAgICAgICAgdGhpcy51cGRhdGVIZWFkaW5ncyhlZGl0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXRlbXMuc2V0KFtdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy51bmJpbmRFZGl0b3JFdmVudHMoZWRpdG9yKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiLCBbXSlcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW10pXG4gIG9uU2Nyb2xsKCkge1xuICAgIHRoaXMuY2hlY2tBY3RpdmVIZWFkaW5nKCk7XG4gIH1cblxuICAvLyBIYW5kbGUgbW91c2UgaG92ZXIgc3RhdGUgaW5kZXBlbmRlbnRseVxuICBzZXRNb3VzZUhvdmVyKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW91c2VIb3ZlcmVkLnNldChob3ZlcmVkKTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBrZXlib2FyZCBmb2N1cyBzdGF0ZSBpbmRlcGVuZGVudGx5XG4gIHNldEZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNGb2N1c2VkLnNldChmb2N1c2VkKTtcbiAgfVxuXG4gIC8vIE5hdmlnYXRlIHRvIGhlYWRpbmcgb24gY2xpY2tcbiAgc2Nyb2xsVG9IZWFkaW5nKGl0ZW06IEF0ZVRvY0l0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMucmVzb2x2ZWRFZGl0b3IoKTtcbiAgICBpZiAoIWVkaXRvciB8fCAhZWRpdG9yLnZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gMS4gUG9zaXRpb24gY3Vyc29yIGluc2lkZSB0aGUgaGVhZGluZyB0ZXh0IChpdGVtLnBvcyArIDEgcG9pbnRzIHRvIGlubGluZSB0ZXh0KVxuICAgICAgY29uc3QgdGFyZ2V0UG9zID0gTWF0aC5taW4oaXRlbS5wb3MgKyAxLCBlZGl0b3Iuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSk7XG4gICAgICBlZGl0b3IuY29tbWFuZHMuc2V0VGV4dFNlbGVjdGlvbih0YXJnZXRQb3MpO1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCk7XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vIFNhZmUtZ3VhcmQgYWdhaW5zdCBwb3NpdGlvbiBzZWxlY3Rpb24gZXJyb3JzXG4gICAgfVxuXG4gICAgLy8gMi4gU21vb3RobHkgc2Nyb2xsIERPTSBub2RlIGludG8gdmlld1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9tTm9kZSA9IGVkaXRvci52aWV3Lm5vZGVET00oaXRlbS5wb3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoZG9tTm9kZSkge1xuICAgICAgICAgIGRvbU5vZGUuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogXCJzbW9vdGhcIiwgYmxvY2s6IFwic3RhcnRcIiB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgICAgLy8gU2FmZS1ndWFyZFxuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZEVkaXRvckV2ZW50cyhlZGl0b3I6IEVkaXRvcikge1xuICAgIHRoaXMudW5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcik7XG4gICAgZWRpdG9yLm9uKFwidXBkYXRlXCIsIHRoaXMub25FZGl0b3JVcGRhdGUpO1xuICAgIGVkaXRvci5vbihcInNlbGVjdGlvblVwZGF0ZVwiLCB0aGlzLm9uRWRpdG9yVXBkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgZWRpdG9yLm9mZihcInVwZGF0ZVwiLCB0aGlzLm9uRWRpdG9yVXBkYXRlKTtcbiAgICBlZGl0b3Iub2ZmKFwic2VsZWN0aW9uVXBkYXRlXCIsIHRoaXMub25FZGl0b3JVcGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkVkaXRvclVwZGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy51cGRhdGVIZWFkaW5ncyhlZGl0b3IpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHVwZGF0ZUhlYWRpbmdzKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgY29uc3QgbmV4dEl0ZW1zOiBBdGVUb2NJdGVtW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBlZGl0b3Iuc3RhdGUuZG9jLmRlc2NlbmRhbnRzKChub2RlLCBwb3MpID0+IHtcbiAgICAgICAgaWYgKG5vZGUudHlwZS5uYW1lID09PSBcImhlYWRpbmdcIikge1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IG5vZGUuYXR0cnNbXCJsZXZlbFwiXSB8fCAxO1xuXG4gICAgICAgICAgY29uc3QgbWF4RGVwdGhMZXZlbCA9IHRoaXMubWF4RGVwdGgoKTtcbiAgICAgICAgICBpZiAodGV4dCAmJiBsZXZlbCA8PSBtYXhEZXB0aExldmVsKSB7XG4gICAgICAgICAgICBuZXh0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICBwb3MsXG4gICAgICAgICAgICAgIGlkOiBgaGVhZGluZy0ke3Bvc31gLFxuICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy8gU2FmZSBndWFyZCBhZ2FpbnN0IGRvY3VtZW50IGFjY2VzcyBpc3N1ZXNcbiAgICB9XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5zZXQobmV4dEl0ZW1zKTtcbiAgICAgIHRoaXMuY2hlY2tBY3RpdmVIZWFkaW5nKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQWN0aXZlSGVhZGluZygpIHtcbiAgICAvLyBBY3RpdmUgaGVhZGluZyBzY3JvbGwgdHJhY2tpbmcgb25seSBhcHBsaWVzIHRvIGZsb2F0aW5nIFRPQyBtb2RlXG4gICAgaWYgKCF0aGlzLmZsb2F0aW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKCFlZGl0b3IgfHwgIWVkaXRvci52aWV3KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICAgIGlmIChjdXJyZW50SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGVhZGluZ3NXaXRoRG9tID0gY3VycmVudEl0ZW1zXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRvbSA9IGVkaXRvci52aWV3Lm5vZGVET00oaXRlbS5wb3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgcmV0dXJuIHsgaXRlbSwgZG9tIH07XG4gICAgICAgICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGl0ZW0sIGRvbTogbnVsbCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyB7IGl0ZW06IEF0ZVRvY0l0ZW07IGRvbTogSFRNTEVsZW1lbnQgfSA9PiBlbnRyeS5kb20gIT09IG51bGwpO1xuXG4gICAgICBpZiAoaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiA4MDA7XG4gICAgICBsZXQgYWN0aXZlSXRlbTogQXRlVG9jSXRlbSB8IG51bGwgPSBudWxsO1xuXG4gICAgICBmb3IgKGxldCBpID0gaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IHsgaXRlbSwgZG9tIH0gPSBoZWFkaW5nc1dpdGhEb21baV07XG4gICAgICAgIGNvbnN0IHJlY3QgPSBkb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKHJlY3QudG9wIDw9IHdpbmRvd0hlaWdodCAqIDAuMzUpIHtcbiAgICAgICAgICBhY3RpdmVJdGVtID0gaXRlbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWFjdGl2ZUl0ZW0gJiYgaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWN0aXZlSXRlbSA9IGhlYWRpbmdzV2l0aERvbVswXS5pdGVtO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gY3VycmVudEl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBhY3RpdmU6IGl0ZW0uaWQgPT09IGFjdGl2ZUl0ZW0hLmlkLFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgaXNEaWZmZXJlbnQgPSB1cGRhdGVkLnNvbWUoKGl0ZW0sIGlkeCkgPT4gaXRlbS5hY3RpdmUgIT09IGN1cnJlbnRJdGVtc1tpZHhdLmFjdGl2ZSk7XG4gICAgICAgIGlmIChpc0RpZmZlcmVudCkge1xuICAgICAgICAgIHRoaXMuaXRlbXMuc2V0KHVwZGF0ZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRhYmxlLW9mLWNvbnRlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtb2YtY29udGVudHMvYXRlLXRhYmxlLW9mLWNvbnRlbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUV2QixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFJakU7Ozs7R0FJRztBQTRYSCxNQUFNLE9BQU8sMkJBQTJCO0lBdUN0QyxrRUFBa0U7SUFDbEUsU0FBUyxDQUFDLEtBQWE7UUFDckIsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQztZQUNYO2dCQUNFLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFrQ0Q7UUF4RkEscUVBQXFFO1FBQ3JFLFdBQU0sR0FBRyxLQUFLLENBQW9ELElBQUksQ0FBQyxDQUFDO1FBRXhFLGlFQUFpRTtRQUNqRSxVQUFLLEdBQUcs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QUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBN1FVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDZsREFoWDVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThEVDs7NEZBa1RVLDJCQUEyQjtrQkEzWHZDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLG1CQUNNLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osK0JBQStCLEVBQUUsWUFBWTt3QkFDN0MsaUNBQWlDLEVBQUUsb0NBQW9DO3dCQUN2RSwrQkFBK0IsRUFBRSw2Q0FBNkM7d0JBQzlFLDRCQUE0QixFQUFFLDBDQUEwQztxQkFDekUsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RFQ7d0RBbWFELFFBQVE7c0JBRlAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRTs7c0JBQ2hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgdW50cmFja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25EZXN0cm95LFxuICBIb3N0TGlzdGVuZXIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JSZWYgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2F0ZS1lZGl0b3ItcmVmXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JSZWdpc3RyeSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdGUtZWRpdG9yLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F0ZS1pMThuLnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgQXRlVG9jSXRlbSwgQXRlVG9jVmFyaWFudCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXRlLXRvYy5tb2RlbFwiO1xuXG4vKipcbiAqIFRhYmxlIG9mIENvbnRlbnRzIENvbXBvbmVudCAoTm90aW9uLXN0eWxlKVxuICogRHluYW1pY2FsbHkgZXh0cmFjdHMgaGVhZGluZ3MgZnJvbSB0aGUgYWN0aXZlIGVkaXRvciBhbmQgZGlzcGxheXMgdGhlbS5cbiAqIENvbmZpZ3VyYWJsZSB2aWEgaW5wdXRzIChmbG9hdGluZywgcG9zaXRpb24sIHZhcmlhbnRzLCBob3ZlciBleHBhbnNpb24pIGFuZCBDU1MgdmFyaWFibGVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLXRhYmxlLW9mLWNvbnRlbnRzXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIFwiW2NsYXNzLmF0ZS10b2MtaG9zdC1mbG9hdGluZ11cIjogXCJmbG9hdGluZygpXCIsXG4gICAgXCJbc3R5bGUuLS1hdGUtdG9jLXBvc2l0aW9uLW1vZGVdXCI6IFwiZmxvYXRpbmcoKSA/IHBvc2l0aW9uTW9kZSgpIDogbnVsbFwiLFxuICAgIFwiW2NsYXNzLmF0ZS10b2MtaG9zdC1hYnNvbHV0ZV1cIjogXCJmbG9hdGluZygpICYmIHBvc2l0aW9uTW9kZSgpID09PSAnYWJzb2x1dGUnXCIsXG4gICAgXCJbY2xhc3MuYXRlLXRvYy1ob3N0LWZpeGVkXVwiOiBcImZsb2F0aW5nKCkgJiYgcG9zaXRpb25Nb2RlKCkgPT09ICdmaXhlZCdcIixcbiAgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF0ZS10b2Mtd3JhcHBlclwiXG4gICAgICBbY2xhc3MuYXRlLXRvYy1mbG9hdGluZ109XCJmbG9hdGluZygpXCJcbiAgICAgIFtjbGFzcy5hdGUtdG9jLXBvc2l0aW9uLWFic29sdXRlXT1cImZsb2F0aW5nKCkgJiYgcG9zaXRpb25Nb2RlKCkgPT09ICdhYnNvbHV0ZSdcIlxuICAgICAgW2NsYXNzLmF0ZS10b2MtcG9zaXRpb24tZml4ZWRdPVwiZmxvYXRpbmcoKSAmJiBwb3NpdGlvbk1vZGUoKSA9PT0gJ2ZpeGVkJ1wiXG4gICAgICBbY2xhc3MuYXRlLXRvYy1wb3NpdGlvbi1sZWZ0XT1cInBvc2l0aW9uKCkgPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MuYXRlLXRvYy1wb3NpdGlvbi1yaWdodF09XCJwb3NpdGlvbigpID09PSAncmlnaHQnXCJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldE1vdXNlSG92ZXIodHJ1ZSlcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0TW91c2VIb3ZlcihmYWxzZSlcIlxuICAgICAgKGZvY3VzaW4pPVwic2V0Rm9jdXNlZCh0cnVlKVwiXG4gICAgICAoZm9jdXNvdXQpPVwic2V0Rm9jdXNlZChmYWxzZSlcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhdGUtdG9jXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXBvc2l0aW9uLWxlZnRdPVwicG9zaXRpb24oKSA9PT0gJ2xlZnQnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtcG9zaXRpb24tcmlnaHRdPVwicG9zaXRpb24oKSA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXZhcmlhbnQtY2FyZF09XCJ2YXJpYW50KCkgPT09ICdjYXJkJ1wiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLXZhcmlhbnQtdHJhbnNwYXJlbnRdPVwidmFyaWFudCgpID09PSAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtdmFyaWFudC1taW5pbWFsXT1cInZhcmlhbnQoKSA9PT0gJ21pbmltYWwnXCJcbiAgICAgICAgW2NsYXNzLmF0ZS10b2MtaG92ZXItZXhwYW5kXT1cImZsb2F0aW5nKCkgJiYgaG92ZXJFeHBhbmQoKVwiXG4gICAgICAgIFtjbGFzcy5hdGUtdG9jLWhvdmVyZWRdPVwiZmxvYXRpbmcoKSAmJiBob3ZlckV4cGFuZCgpICYmIGlzRXhwYW5kZWQoKVwiXG4gICAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlRhYmxlIG9mIENvbnRlbnRzXCI+XG4gICAgICAgIEBpZiAoaXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgQGlmIChzaG93VGl0bGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF0ZS10b2MtaGVhZGVyXCI+e3sgaGVhZGVyVGl0bGUoKSB9fTwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvYy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXRlLXRvYy1pdGVtXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXRlLXRvYy1hY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFjdGl2ZSA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbGV2ZWxdPVwiaXRlbS5sZXZlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvSGVhZGluZyhpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCI+XG4gICAgICAgICAgICAgICAgPCEtLSBQZXJmZWN0IG5hdGl2ZSB2ZWN0b3IgU1ZHIGRhc2ggd2l0aCBsZXZlbC1hZGFwdGVkIHZpZXdCb3ggJiB3aWR0aCAtLT5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICBbYXR0ci53aWR0aF09XCJkYXNoV2lkdGgoaXRlbS5sZXZlbClcIlxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMlwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci52aWV3Qm94XT1cIicwIDAgJyArIGRhc2hXaWR0aChpdGVtLmxldmVsKSArICcgMidcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF0ZS10b2MtZGFzaFwiPlxuICAgICAgICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwiZGFzaFdpZHRoKGl0ZW0ubGV2ZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIHJ4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIHJ5PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEZ1bGwgaGVhZGluZyB0ZXh0IC0tPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXRlLXRvYy10ZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC8qIE91dGVyIEhpdGJveCBDb250YWluZXIgUG9zaXRpb25pbmcgKi9cbiAgICAgIC5hdGUtdG9jLXdyYXBwZXIuYXRlLXRvYy1mbG9hdGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiB2YXIoLS1hdGUtdG9jLXBvc2l0aW9uLW1vZGUsIGZpeGVkKTtcbiAgICAgICAgdG9wOiB2YXIoLS1hdGUtdG9jLXRvcCwgNTAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1hdGUtdG9jLXotaW5kZXgsIDk1KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2Mtd3JhcHBlci5hdGUtdG9jLWZsb2F0aW5nLmF0ZS10b2MtcG9zaXRpb24tYWJzb2x1dGUsXG4gICAgICA6aG9zdCguYXRlLXRvYy1ob3N0LWFic29sdXRlKSAuYXRlLXRvYy13cmFwcGVyLmF0ZS10b2MtZmxvYXRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLXdyYXBwZXIuYXRlLXRvYy1mbG9hdGluZy5hdGUtdG9jLXBvc2l0aW9uLWZpeGVkLFxuICAgICAgOmhvc3QoLmF0ZS10b2MtaG9zdC1maXhlZCkgLmF0ZS10b2Mtd3JhcHBlci5hdGUtdG9jLWZsb2F0aW5nIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy13cmFwcGVyLmF0ZS10b2MtZmxvYXRpbmcuYXRlLXRvYy1wb3NpdGlvbi1yaWdodCB7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1hdGUtdG9jLXJpZ2h0LCAycmVtKTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1hdGUtdG9jLWhpdGJveC1wYWRkaW5nLCAxNnB4KTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWF0ZS10b2MtaGl0Ym94LXBhZGRpbmctdmVydGljYWwsIDhweCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1hdGUtdG9jLWhpdGJveC1wYWRkaW5nLXZlcnRpY2FsLCA4cHgpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy13cmFwcGVyLmF0ZS10b2MtZmxvYXRpbmcuYXRlLXRvYy1wb3NpdGlvbi1sZWZ0IHtcbiAgICAgICAgbGVmdDogdmFyKC0tYXRlLXRvYy1sZWZ0LCAycmVtKTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWF0ZS10b2MtaGl0Ym94LXBhZGRpbmcsIDE2cHgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1hdGUtdG9jLWhpdGJveC1wYWRkaW5nLXZlcnRpY2FsLCA4cHgpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tYXRlLXRvYy1oaXRib3gtcGFkZGluZy12ZXJ0aWNhbCwgOHB4KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2Mge1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgICB9XG5cbiAgICAgIC8qIEZsb2F0aW5nIE1vZGUgQ29udGFpbmVyIFBvc2l0aW9uaW5nICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWZsb2F0aW5nIHtcbiAgICAgICAgbWF4LWhlaWdodDogdmFyKC0tYXRlLXRvYy1tYXgtaGVpZ2h0LCA0MDBweCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIC8qIEZsb2F0aW5nIG1vZGUgd2lkdGggJiBwYWRkaW5nICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWZsb2F0aW5nOm5vdCguYXRlLXRvYy1ob3Zlci1leHBhbmQpLFxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1mbG9hdGluZy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpob3ZlcixcbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtZmxvYXRpbmcuYXRlLXRvYy1ob3Zlci1leHBhbmQuYXRlLXRvYy1ob3ZlcmVkIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLWF0ZS10b2Mtd2lkdGgsIDI0MHB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXRlLXRvYy1ib3JkZXItcmFkaXVzLCB2YXIoLS1hdGUtYm9yZGVyLXJhZGl1cywgMTZweCkpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1hdGUtdG9jLXBhZGRpbmcpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWZsb2F0aW5nLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1ob3ZlcmVkKTpub3QoOmhvdmVyKSB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1hdGUtdG9jLWNvbGxhcHNlZC13aWR0aCwgMzJweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS10b2MtY29sbGFwc2VkLXJhZGl1cywgMTZweCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS10b2MtcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgIC8qIFZhcmlhbnQ6IGNhcmQgKi9cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtdmFyaWFudC1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXRvYy1iZywgdmFyKC0tYXRlLXN1cmZhY2UsICNmZmZmZmYpKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXRlLXRvYy1ib3JkZXIsIHZhcigtLWF0ZS1ib3JkZXIsICNlMmU4ZjApKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXRlLXRvYy1ib3JkZXItcmFkaXVzLCB2YXIoLS1hdGUtYm9yZGVyLXJhZGl1cywgMTJweCkpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1hdGUtdG9jLXNoYWRvdywgMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYXRlLXRvYy1wYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgLyogVmFyaWFudDogbWluaW1hbCAqL1xuICAgICAgLmF0ZS10b2MuYXRlLXRvYy12YXJpYW50LW1pbmltYWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS10b2MtYm9yZGVyLXJhZGl1cywgdmFyKC0tYXRlLWJvcmRlci1yYWRpdXMsIDEycHgpKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLXZhcmlhbnQtbWluaW1hbDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b2MtaG92ZXItYmcsIHZhcigtLWF0ZS1zdXJmYWNlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpKSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXRlLXRvYy1ob3Zlci1ib3JkZXIsIHZhcigtLWF0ZS1ib3JkZXIsICNlMmU4ZjApKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tYXRlLXRvYy1ob3Zlci1zaGFkb3csIDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgICB9XG5cbiAgICAgIC8qIFZhcmlhbnQ6IHRyYW5zcGFyZW50ICovXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLXZhcmlhbnQtdHJhbnNwYXJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKiBIZWFkZXIgc3R5bGluZyAqL1xuICAgICAgLmF0ZS10b2MtaGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRleHQtbXV0ZWQsICM5Y2EzYWYpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAvKiBMaXN0IGNvbnRhaW5lciAqL1xuICAgICAgLmF0ZS10b2MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tYXRlLXRvYy10ZXh0LWdhcCwgdmFyKC0tYXRlLXRvYy1nYXAsIDJweCkpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGdhcCAwLjJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC8qIEJhc2UgSXRlbSAoRXhwYW5kZWQgLyBUZXh0IG1vZGUgZGVmYXVsdCkgKi9cbiAgICAgIC5hdGUtdG9jLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWF0ZS10b2MtaXRlbS1ob3Zlci1oZWlnaHQsIDIycHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWNvbG9yLCB2YXIoLS1hdGUtdGV4dC1zZWNvbmRhcnksICM2NDc0OGIpKTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXRlLXN1Yi1ib3JkZXItcmFkaXVzLCA4cHgpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy1pdGVtOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYXRlLXByaW1hcnksICMyNTYzZWIpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgfVxuXG4gICAgICAvKiBMZXZlbCBJbmRlbnRhdGlvbnMgaW4gVGV4dCBtb2RlICovXG4gICAgICAuYXRlLXRvYy1pdGVtW2RhdGEtbGV2ZWw9XCIxXCJdIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICB9XG4gICAgICAuYXRlLXRvYy1pdGVtW2RhdGEtbGV2ZWw9XCIyXCJdIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgfVxuICAgICAgLmF0ZS10b2MtaXRlbVtkYXRhLWxldmVsPVwiM1wiXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgIH1cbiAgICAgIC5hdGUtdG9jLWl0ZW1bZGF0YS1sZXZlbD1cIjRcIl0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICB9XG4gICAgICAuYXRlLXRvYy1pdGVtW2RhdGEtbGV2ZWw9XCI1XCJdIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgfVxuICAgICAgLmF0ZS10b2MtaXRlbVtkYXRhLWxldmVsPVwiNlwiXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICAgIH1cblxuICAgICAgLyogSXRlbSBob3ZlciBvdmVybGF5ICYgYWN0aXZlIHN0YXRlIChFeHBhbmRlZCAvIFRleHQgbW9kZSkgKi9cbiAgICAgIC5hdGUtdG9jLWl0ZW06OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1zdWItYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLWl0ZW06aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWFjdGl2ZS1jb2xvciwgdmFyKC0tYXRlLXByaW1hcnksICMyNTYzZWIpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWhvdmVyLWJhY2tncm91bmQsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MtaXRlbTpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMC4xO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy1pdGVtLmF0ZS10b2MtYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtY29sb3IsIHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcihcbiAgICAgICAgICAtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZCxcbiAgICAgICAgICB2YXIoLS1hdGUtcHJpbWFyeS1saWdodCwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWF0ZS1wcmltYXJ5LCAjMjU2M2ViKSwgdHJhbnNwYXJlbnQgOTAlKSlcbiAgICAgICAgKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cblxuICAgICAgLyogSGVhZGluZyBUZXh0IHN0eWxpbmcgKi9cbiAgICAgIC5hdGUtdG9jLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgb3BhY2l0eSAwLjI1cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCksXG4gICAgICAgICAgbWF4LXdpZHRoIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpLFxuICAgICAgICAgIHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCksXG4gICAgICAgICAgbWFyZ2luIDAuMjVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC8qIFNWRyBSZWN0IERhc2ggc3R5bGluZyAoSGlkZGVuIGluIFRleHQgbW9kZSkgKi9cbiAgICAgIC5hdGUtdG9jLWRhc2gge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b2MtZGFzaC1jb2xvciwgdmFyKC0tYXRlLWJvcmRlciwgI2NiZDVlMSkpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICAgIH1cblxuICAgICAgLyogLS0tIENPTExBUFNFRCBOT1RJT04gTU9ERSAoRGFzaGVzIG9ubHksIHdoZW4gaG92ZXItZXhwYW5kIGlzIGFjdGl2ZSAmIG5vdCBob3ZlcmVkKSAtLS0gKi9cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1ob3ZlcmVkKSAuYXRlLXRvYy1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtaG92ZXJlZCkgLmF0ZS10b2MtZGFzaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWl0ZW0ge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWF0ZS10b2MtaXRlbS1oZWlnaHQsIDE4cHgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZDpub3QoLmF0ZS10b2MtaG92ZXJlZCkgLmF0ZS10b2MtaXRlbTo6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWl0ZW06aG92ZXIgLmF0ZS10b2MtZGFzaCxcbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1ob3ZlcmVkKVxuICAgICAgICAuYXRlLXRvYy1pdGVtLmF0ZS10b2MtYWN0aXZlXG4gICAgICAgIC5hdGUtdG9jLWRhc2gge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXByaW1hcnksICMyNTYzZWIpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAvKiBEaXJlY3Rpb24gJiB0ZXh0IGNvbGxhcHNlIGZvciBDb2xsYXBzZWQgUklHSFQgcG9zaXRpb24gKi9cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kLmF0ZS10b2MtcG9zaXRpb24tcmlnaHQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWl0ZW0ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b2MuYXRlLXRvYy1ob3Zlci1leHBhbmQuYXRlLXRvYy1wb3NpdGlvbi1yaWdodDpub3QoLmF0ZS10b2MtaG92ZXJlZCkgLmF0ZS10b2MtdGV4dCB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG1heC13aWR0aDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLyogRGlyZWN0aW9uICYgdGV4dCBjb2xsYXBzZSBmb3IgQ29sbGFwc2VkIExFRlQgcG9zaXRpb24gKi9cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1wb3NpdGlvbi1yaWdodCk6bm90KC5hdGUtdG9jLWhvdmVyZWQpXG4gICAgICAgIC5hdGUtdG9jLWl0ZW0sXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZC5hdGUtdG9jLXBvc2l0aW9uLWxlZnQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLWl0ZW0ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9jLmF0ZS10b2MtaG92ZXItZXhwYW5kOm5vdCguYXRlLXRvYy1wb3NpdGlvbi1yaWdodCk6bm90KC5hdGUtdG9jLWhvdmVyZWQpXG4gICAgICAgIC5hdGUtdG9jLXRleHQsXG4gICAgICAuYXRlLXRvYy5hdGUtdG9jLWhvdmVyLWV4cGFuZC5hdGUtdG9jLXBvc2l0aW9uLWxlZnQ6bm90KC5hdGUtdG9jLWhvdmVyZWQpIC5hdGUtdG9jLXRleHQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlVGFibGVPZkNvbnRlbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gSW5wdXQgYWNjZXB0cyByYXcgRWRpdG9yLCBBdGVFZGl0b3JSZWYsIG9yIElEIG9mIHJlZ2lzdGVyZWQgZWRpdG9yXG4gIGVkaXRvciA9IGlucHV0PEVkaXRvciB8IEF0ZUVkaXRvclJlZiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwpO1xuXG4gIC8vIE9wdGlvbmFsIGN1c3RvbSB0aXRsZSAoaWYgbm90IHByb3ZpZGVkLCB1c2VzIGkxOG4gdHJhbnNsYXRpb24pXG4gIHRpdGxlID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gV2hldGhlciB0byBzaG93IHRoZSBoZWFkZXIgdGl0bGVcbiAgc2hvd1RpdGxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgLy8gTGF5b3V0IG1vZGU6IGZsb2F0aW5nIG9uIGZpeGVkIHBvc2l0aW9uIG9yIGlubGluZSBpbnNpZGUgcGFyZW50IGNvbnRhaW5lclxuICBmbG9hdGluZyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8vIFBvc2l0aW9uaW5nIG1vZGUgd2hlbiBmbG9hdGluZzogJ2ZpeGVkJyAocmVsYXRpdmUgdG8gdmlld3BvcnQsIGRlZmF1bHQpIG9yICdhYnNvbHV0ZScgKHJlbGF0aXZlIHRvIHBhcmVudCBjb250YWluZXIpXG4gIHBvc2l0aW9uTW9kZSA9IGlucHV0PFwiYWJzb2x1dGVcIiB8IFwiZml4ZWRcIj4oXCJmaXhlZFwiKTtcblxuICAvLyBGbG9hdGluZyBwb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0J1xuICBwb3NpdGlvbiA9IGlucHV0PFwibGVmdFwiIHwgXCJyaWdodFwiPihcInJpZ2h0XCIpO1xuXG4gIC8vIFZpc3VhbCB2YXJpYW50OiAnbWluaW1hbCcgfCAnY2FyZCcgfCAndHJhbnNwYXJlbnQnXG4gIHZhcmlhbnQgPSBpbnB1dDxBdGVUb2NWYXJpYW50PihcIm1pbmltYWxcIik7XG5cbiAgLy8gTm90aW9uLXN0eWxlIGhvdmVyIGV4cGFuc2lvbiAoY29sbGFwc2VzIHRleHQgaW50byBkYXNoZXMgdW50aWwgaG92ZXJlZClcbiAgaG92ZXJFeHBhbmQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvLyBNYXhpbXVtIGhlYWRpbmcgbGV2ZWwgZGVwdGggdG8gaW5jbHVkZSAoMS02LCBkZWZhdWx0OiA2KVxuICBtYXhEZXB0aCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgc3RyaW5nPig2LCB7XG4gICAgdHJhbnNmb3JtOiAodjogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlSW50KHYsIDEwKSA6IHY7XG4gICAgICBpZiAoaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICByZXR1cm4gNjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCgxLCBwYXJzZWQpLCA2KTtcbiAgICB9LFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEF0ZUVkaXRvclJlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEF0ZUkxOG5TZXJ2aWNlKTtcblxuICAvLyBIZWxwZXIgbWV0aG9kIGZvciBleGFjdCBuYXRpdmUgU1ZHIGRhc2ggd2lkdGggcGVyIGhlYWRpbmcgbGV2ZWxcbiAgZGFzaFdpZHRoKGxldmVsOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIDE2O1xuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gMTI7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHJldHVybiA4O1xuICAgICAgY2FzZSA0OlxuICAgICAgICByZXR1cm4gNjtcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgcmV0dXJuIDQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMztcbiAgICB9XG4gIH1cblxuICAvLyBDb21wdXRlZCBoZWFkZXIgdGl0bGUgd2l0aCBmYWxsYmFjayB0byBpMThuXG4gIHJlYWRvbmx5IGhlYWRlclRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1c3RvbSA9IHRoaXMudGl0bGUoKTtcbiAgICBpZiAoY3VzdG9tICE9PSBudWxsICYmIGN1c3RvbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY3VzdG9tO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pMThuLmVkaXRvcigpLnRhYmxlT2ZDb250ZW50cztcbiAgfSk7XG5cbiAgLy8gUmVzb2x2ZWQgZWRpdG9yIGluc3RhbmNlXG4gIHJlYWRvbmx5IHJlc29sdmVkRWRpdG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmFjdGl2ZUVkaXRvcigpPy5lZGl0b3IgfHwgbnVsbDtcbiAgICB9XG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEF0ZUVkaXRvclJlZikge1xuICAgICAgcmV0dXJuIHZhbC5lZGl0b3I7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5nZXQodmFsKT8uZWRpdG9yIHx8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH0pO1xuXG4gIC8vIFRhYmxlIG9mIENvbnRlbnRzIGl0ZW1zXG4gIHJlYWRvbmx5IGl0ZW1zID0gc2lnbmFsPEF0ZVRvY0l0ZW1bXT4oW10pO1xuXG4gIC8vIERpc3RpbmN0IG1vdXNlIGhvdmVyIGFuZCBrZXlib2FyZCBmb2N1cyBzdGF0ZSB0cmFja2luZ1xuICBpc01vdXNlSG92ZXJlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGlzRm9jdXNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzRXhwYW5kZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzTW91c2VIb3ZlcmVkKCkgfHwgdGhpcy5pc0ZvY3VzZWQoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVhY3Qgc3RyaWN0bHkgdG8gZWRpdG9yIGluc3RhbmNlIGNoYW5nZXMgd2l0aG91dCB0cmFja2luZyBpbnRlcm5hbCBzaWduYWwgdXBkYXRlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcik7XG4gICAgICAgICAgdGhpcy51cGRhdGVIZWFkaW5ncyhlZGl0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXRlbXMuc2V0KFtdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy51bmJpbmRFZGl0b3JFdmVudHMoZWRpdG9yKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiLCBbXSlcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW10pXG4gIG9uU2Nyb2xsKCkge1xuICAgIHRoaXMuY2hlY2tBY3RpdmVIZWFkaW5nKCk7XG4gIH1cblxuICAvLyBIYW5kbGUgbW91c2UgaG92ZXIgc3RhdGUgaW5kZXBlbmRlbnRseVxuICBzZXRNb3VzZUhvdmVyKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW91c2VIb3ZlcmVkLnNldChob3ZlcmVkKTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBrZXlib2FyZCBmb2N1cyBzdGF0ZSBpbmRlcGVuZGVudGx5XG4gIHNldEZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNGb2N1c2VkLnNldChmb2N1c2VkKTtcbiAgfVxuXG4gIC8vIE5hdmlnYXRlIHRvIGhlYWRpbmcgb24gY2xpY2tcbiAgc2Nyb2xsVG9IZWFkaW5nKGl0ZW06IEF0ZVRvY0l0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMucmVzb2x2ZWRFZGl0b3IoKTtcbiAgICBpZiAoIWVkaXRvciB8fCAhZWRpdG9yLnZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gMS4gUG9zaXRpb24gY3Vyc29yIGluc2lkZSB0aGUgaGVhZGluZyB0ZXh0IChpdGVtLnBvcyArIDEgcG9pbnRzIHRvIGlubGluZSB0ZXh0KVxuICAgICAgY29uc3QgdGFyZ2V0UG9zID0gTWF0aC5taW4oaXRlbS5wb3MgKyAxLCBlZGl0b3Iuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSk7XG4gICAgICBlZGl0b3IuY29tbWFuZHMuc2V0VGV4dFNlbGVjdGlvbih0YXJnZXRQb3MpO1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCk7XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vIFNhZmUtZ3VhcmQgYWdhaW5zdCBwb3NpdGlvbiBzZWxlY3Rpb24gZXJyb3JzXG4gICAgfVxuXG4gICAgLy8gMi4gU21vb3RobHkgc2Nyb2xsIERPTSBub2RlIGludG8gdmlld1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9tTm9kZSA9IGVkaXRvci52aWV3Lm5vZGVET00oaXRlbS5wb3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoZG9tTm9kZSkge1xuICAgICAgICAgIGRvbU5vZGUuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogXCJzbW9vdGhcIiwgYmxvY2s6IFwic3RhcnRcIiB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgICAgLy8gU2FmZS1ndWFyZFxuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZEVkaXRvckV2ZW50cyhlZGl0b3I6IEVkaXRvcikge1xuICAgIHRoaXMudW5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcik7XG4gICAgZWRpdG9yLm9uKFwidXBkYXRlXCIsIHRoaXMub25FZGl0b3JVcGRhdGUpO1xuICAgIGVkaXRvci5vbihcInNlbGVjdGlvblVwZGF0ZVwiLCB0aGlzLm9uRWRpdG9yVXBkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kRWRpdG9yRXZlbnRzKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgZWRpdG9yLm9mZihcInVwZGF0ZVwiLCB0aGlzLm9uRWRpdG9yVXBkYXRlKTtcbiAgICBlZGl0b3Iub2ZmKFwic2VsZWN0aW9uVXBkYXRlXCIsIHRoaXMub25FZGl0b3JVcGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkVkaXRvclVwZGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy51cGRhdGVIZWFkaW5ncyhlZGl0b3IpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHVwZGF0ZUhlYWRpbmdzKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgY29uc3QgbmV4dEl0ZW1zOiBBdGVUb2NJdGVtW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBlZGl0b3Iuc3RhdGUuZG9jLmRlc2NlbmRhbnRzKChub2RlLCBwb3MpID0+IHtcbiAgICAgICAgaWYgKG5vZGUudHlwZS5uYW1lID09PSBcImhlYWRpbmdcIikge1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IG5vZGUuYXR0cnNbXCJsZXZlbFwiXSB8fCAxO1xuXG4gICAgICAgICAgY29uc3QgbWF4RGVwdGhMZXZlbCA9IHRoaXMubWF4RGVwdGgoKTtcbiAgICAgICAgICBpZiAodGV4dCAmJiBsZXZlbCA8PSBtYXhEZXB0aExldmVsKSB7XG4gICAgICAgICAgICBuZXh0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICBwb3MsXG4gICAgICAgICAgICAgIGlkOiBgaGVhZGluZy0ke3Bvc31gLFxuICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy8gU2FmZSBndWFyZCBhZ2FpbnN0IGRvY3VtZW50IGFjY2VzcyBpc3N1ZXNcbiAgICB9XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5zZXQobmV4dEl0ZW1zKTtcbiAgICAgIHRoaXMuY2hlY2tBY3RpdmVIZWFkaW5nKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQWN0aXZlSGVhZGluZygpIHtcbiAgICAvLyBBY3RpdmUgaGVhZGluZyBzY3JvbGwgdHJhY2tpbmcgb25seSBhcHBsaWVzIHRvIGZsb2F0aW5nIFRPQyBtb2RlXG4gICAgaWYgKCF0aGlzLmZsb2F0aW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLnJlc29sdmVkRWRpdG9yKCk7XG4gICAgaWYgKCFlZGl0b3IgfHwgIWVkaXRvci52aWV3KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICAgIGlmIChjdXJyZW50SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGVhZGluZ3NXaXRoRG9tID0gY3VycmVudEl0ZW1zXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRvbSA9IGVkaXRvci52aWV3Lm5vZGVET00oaXRlbS5wb3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgcmV0dXJuIHsgaXRlbSwgZG9tIH07XG4gICAgICAgICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGl0ZW0sIGRvbTogbnVsbCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyB7IGl0ZW06IEF0ZVRvY0l0ZW07IGRvbTogSFRNTEVsZW1lbnQgfSA9PiBlbnRyeS5kb20gIT09IG51bGwpO1xuXG4gICAgICBpZiAoaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiA4MDA7XG4gICAgICBsZXQgYWN0aXZlSXRlbTogQXRlVG9jSXRlbSB8IG51bGwgPSBudWxsO1xuXG4gICAgICBmb3IgKGxldCBpID0gaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IHsgaXRlbSwgZG9tIH0gPSBoZWFkaW5nc1dpdGhEb21baV07XG4gICAgICAgIGNvbnN0IHJlY3QgPSBkb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKHJlY3QudG9wIDw9IHdpbmRvd0hlaWdodCAqIDAuMzUpIHtcbiAgICAgICAgICBhY3RpdmVJdGVtID0gaXRlbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWFjdGl2ZUl0ZW0gJiYgaGVhZGluZ3NXaXRoRG9tLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWN0aXZlSXRlbSA9IGhlYWRpbmdzV2l0aERvbVswXS5pdGVtO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gY3VycmVudEl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBhY3RpdmU6IGl0ZW0uaWQgPT09IGFjdGl2ZUl0ZW0hLmlkLFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgaXNEaWZmZXJlbnQgPSB1cGRhdGVkLnNvbWUoKGl0ZW0sIGlkeCkgPT4gaXRlbS5hY3RpdmUgIT09IGN1cnJlbnRJdGVtc1tpZHhdLmFjdGl2ZSk7XG4gICAgICAgIGlmIChpc0RpZmZlcmVudCkge1xuICAgICAgICAgIHRoaXMuaXRlbXMuc2V0KHVwZGF0ZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -17,7 +17,7 @@ export class AteTocNodeComponent extends AteAngularNodeView {
|
|
|
17
17
|
[showTitle]="node().attrs['showTitle'] !== false"
|
|
18
18
|
[maxDepth]="node().attrs['maxDepth'] || 6" />
|
|
19
19
|
</div>
|
|
20
|
-
`, isInline: true, styles: [".ate-toc-node-wrapper{margin:1rem 0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: AteTableOfContentsComponent, selector: "ate-table-of-contents", inputs: ["editor", "title", "showTitle", "floating", "position", "variant", "hoverExpand", "maxDepth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
`, isInline: true, styles: [".ate-toc-node-wrapper{margin:1rem 0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: AteTableOfContentsComponent, selector: "ate-table-of-contents", inputs: ["editor", "title", "showTitle", "floating", "positionMode", "position", "variant", "hoverExpand", "maxDepth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21
21
|
}
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTocNodeComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
export const ATE_DEFAULT_TOC_CONFIG = {
|
|
5
5
|
enabled: true,
|
|
6
6
|
floating: true,
|
|
7
|
+
positionMode: "fixed",
|
|
7
8
|
position: "right",
|
|
8
9
|
variant: "minimal",
|
|
9
10
|
hoverExpand: true,
|
|
10
11
|
showTitle: true,
|
|
11
12
|
maxDepth: 6,
|
|
12
13
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvYy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb25maWcvYXRlLXRvYy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBMkI7SUFDNUQsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsSUFBSTtJQUNkLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsUUFBUSxFQUFFLENBQUM7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRlVG9jQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9hdGUtdG9jLm1vZGVsXCI7XG5cbi8qKlxuICogRGVmYXVsdCBUYWJsZSBvZiBDb250ZW50cyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9UT0NfQ09ORklHOiBSZXF1aXJlZDxBdGVUb2NDb25maWc+ID0ge1xuICBlbmFibGVkOiB0cnVlLFxuICBmbG9hdGluZzogdHJ1ZSxcbiAgcG9zaXRpb25Nb2RlOiBcImZpeGVkXCIsXG4gIHBvc2l0aW9uOiBcInJpZ2h0XCIsXG4gIHZhcmlhbnQ6IFwibWluaW1hbFwiLFxuICBob3ZlckV4cGFuZDogdHJ1ZSxcbiAgc2hvd1RpdGxlOiB0cnVlLFxuICBtYXhEZXB0aDogNixcbn07XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvYy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL21vZGVscy9hdGUtdG9jLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpc3VhbCB2YXJpYW50cyBmb3IgVGFibGUgb2YgQ29udGVudHNcbiAqL1xuZXhwb3J0IHR5cGUgQXRlVG9jVmFyaWFudCA9IFwiY2FyZFwiIHwgXCJ0cmFuc3BhcmVudFwiIHwgXCJtaW5pbWFsXCI7XG5cbi8qKlxuICogSXRlbSBzdHJ1Y3R1cmUgZXh0cmFjdGVkIGJ5IFRhYmxlIG9mIENvbnRlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlVG9jSXRlbSB7XG4gIHRleHQ6IHN0cmluZztcbiAgbGV2ZWw6IG51bWJlcjtcbiAgcG9zOiBudW1iZXI7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFRhYmxlIG9mIENvbnRlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlVG9jQ29uZmlnIHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIGZsb2F0aW5nPzogYm9vbGVhbjtcbiAgcG9zaXRpb25Nb2RlPzogXCJhYnNvbHV0ZVwiIHwgXCJmaXhlZFwiO1xuICBwb3NpdGlvbj86IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICB2YXJpYW50PzogQXRlVG9jVmFyaWFudDtcbiAgaG92ZXJFeHBhbmQ/OiBib29sZWFuO1xuICBzaG93VGl0bGU/OiBib29sZWFuO1xuICBtYXhEZXB0aD86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -2068,6 +2068,8 @@ class AteTableOfContentsComponent {
|
|
|
2068
2068
|
this.showTitle = input(true);
|
|
2069
2069
|
// Layout mode: floating on fixed position or inline inside parent container
|
|
2070
2070
|
this.floating = input(true);
|
|
2071
|
+
// Positioning mode when floating: 'fixed' (relative to viewport, default) or 'absolute' (relative to parent container)
|
|
2072
|
+
this.positionMode = input("fixed");
|
|
2071
2073
|
// Floating position: 'right' | 'left'
|
|
2072
2074
|
this.position = input("right");
|
|
2073
2075
|
// Visual variant: 'minimal' | 'card' | 'transparent'
|
|
@@ -2272,10 +2274,12 @@ class AteTableOfContentsComponent {
|
|
|
2272
2274
|
});
|
|
2273
2275
|
}
|
|
2274
2276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTableOfContentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2275
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AteTableOfContentsComponent, isStandalone: true, selector: "ate-table-of-contents", inputs: { editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, floating: { classPropertyName: "floating", publicName: "floating", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hoverExpand: { classPropertyName: "hoverExpand", publicName: "hoverExpand", isSignal: true, isRequired: false, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:scroll": "onScroll()", "window:resize": "onScroll()" } }, ngImport: i0, template: `
|
|
2277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AteTableOfContentsComponent, isStandalone: true, selector: "ate-table-of-contents", inputs: { editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, floating: { classPropertyName: "floating", publicName: "floating", isSignal: true, isRequired: false, transformFunction: null }, positionMode: { classPropertyName: "positionMode", publicName: "positionMode", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hoverExpand: { classPropertyName: "hoverExpand", publicName: "hoverExpand", isSignal: true, isRequired: false, transformFunction: null }, maxDepth: { classPropertyName: "maxDepth", publicName: "maxDepth", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:scroll": "onScroll()", "window:resize": "onScroll()" }, properties: { "class.ate-toc-host-floating": "floating()", "style.--ate-toc-position-mode": "floating() ? positionMode() : null", "class.ate-toc-host-absolute": "floating() && positionMode() === 'absolute'", "class.ate-toc-host-fixed": "floating() && positionMode() === 'fixed'" } }, ngImport: i0, template: `
|
|
2276
2278
|
<div
|
|
2277
2279
|
class="ate-toc-wrapper"
|
|
2278
2280
|
[class.ate-toc-floating]="floating()"
|
|
2281
|
+
[class.ate-toc-position-absolute]="floating() && positionMode() === 'absolute'"
|
|
2282
|
+
[class.ate-toc-position-fixed]="floating() && positionMode() === 'fixed'"
|
|
2279
2283
|
[class.ate-toc-position-left]="position() === 'left'"
|
|
2280
2284
|
[class.ate-toc-position-right]="position() === 'right'"
|
|
2281
2285
|
(mouseenter)="setMouseHover(true)"
|
|
@@ -2332,14 +2336,21 @@ class AteTableOfContentsComponent {
|
|
|
2332
2336
|
}
|
|
2333
2337
|
</div>
|
|
2334
2338
|
</div>
|
|
2335
|
-
`, isInline: true, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:fixed;top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2339
|
+
`, isInline: true, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:var(--ate-toc-position-mode, fixed);top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-absolute,:host(.ate-toc-host-absolute) .ate-toc-wrapper.ate-toc-floating{position:absolute}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-fixed,:host(.ate-toc-host-fixed) .ate-toc-wrapper.ate-toc-floating{position:fixed}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2336
2340
|
}
|
|
2337
2341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTableOfContentsComponent, decorators: [{
|
|
2338
2342
|
type: Component,
|
|
2339
|
-
args: [{ selector: "ate-table-of-contents", standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2343
|
+
args: [{ selector: "ate-table-of-contents", standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
2344
|
+
"[class.ate-toc-host-floating]": "floating()",
|
|
2345
|
+
"[style.--ate-toc-position-mode]": "floating() ? positionMode() : null",
|
|
2346
|
+
"[class.ate-toc-host-absolute]": "floating() && positionMode() === 'absolute'",
|
|
2347
|
+
"[class.ate-toc-host-fixed]": "floating() && positionMode() === 'fixed'",
|
|
2348
|
+
}, template: `
|
|
2340
2349
|
<div
|
|
2341
2350
|
class="ate-toc-wrapper"
|
|
2342
2351
|
[class.ate-toc-floating]="floating()"
|
|
2352
|
+
[class.ate-toc-position-absolute]="floating() && positionMode() === 'absolute'"
|
|
2353
|
+
[class.ate-toc-position-fixed]="floating() && positionMode() === 'fixed'"
|
|
2343
2354
|
[class.ate-toc-position-left]="position() === 'left'"
|
|
2344
2355
|
[class.ate-toc-position-right]="position() === 'right'"
|
|
2345
2356
|
(mouseenter)="setMouseHover(true)"
|
|
@@ -2396,7 +2407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2396
2407
|
}
|
|
2397
2408
|
</div>
|
|
2398
2409
|
</div>
|
|
2399
|
-
`, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:fixed;top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"] }]
|
|
2410
|
+
`, styles: [":host{display:block}.ate-toc-wrapper.ate-toc-floating{position:var(--ate-toc-position-mode, fixed);top:var(--ate-toc-top, 50%);transform:translateY(-50%);z-index:var(--ate-toc-z-index, 95);display:flex;flex-direction:column;box-sizing:border-box}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-absolute,:host(.ate-toc-host-absolute) .ate-toc-wrapper.ate-toc-floating{position:absolute}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-fixed,:host(.ate-toc-host-fixed) .ate-toc-wrapper.ate-toc-floating{position:fixed}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-right{right:var(--ate-toc-right, 2rem);left:auto;padding-left:var(--ate-toc-hitbox-padding, 16px);padding-right:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc-wrapper.ate-toc-floating.ate-toc-position-left{left:var(--ate-toc-left, 2rem);right:auto;padding-right:var(--ate-toc-hitbox-padding, 16px);padding-left:0;padding-top:var(--ate-toc-hitbox-padding-vertical, 8px);padding-bottom:var(--ate-toc-hitbox-padding-vertical, 8px)}.ate-toc{font-family:inherit;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-floating{max-height:var(--ate-toc-max-height, 400px);overflow:hidden;display:flex;flex-direction:column}.ate-toc.ate-toc-floating:not(.ate-toc-hover-expand),.ate-toc.ate-toc-floating.ate-toc-hover-expand:hover,.ate-toc.ate-toc-floating.ate-toc-hover-expand.ate-toc-hovered{width:var(--ate-toc-width, 240px);border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 16px));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-floating.ate-toc-hover-expand:not(.ate-toc-hovered):not(:hover){width:var(--ate-toc-collapsed-width, 32px);border-radius:var(--ate-toc-collapsed-radius, 16px);padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-card{background:var(--ate-toc-bg, var(--ate-surface, #ffffff));border:1px solid var(--ate-toc-border, var(--ate-border, #e2e8f0));border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));box-shadow:var(--ate-toc-shadow, 0 4px 20px rgba(0, 0, 0, .06));padding:var(--ate-toc-padding)}.ate-toc.ate-toc-variant-minimal{background:transparent;border:1px solid transparent;box-shadow:none;border-radius:var(--ate-toc-border-radius, var(--ate-border-radius, 12px));padding:10px 12px}.ate-toc.ate-toc-variant-minimal:hover{background:var(--ate-toc-hover-bg, var(--ate-surface, rgba(255, 255, 255, .95)));border-color:var(--ate-toc-hover-border, var(--ate-border, #e2e8f0));box-shadow:var(--ate-toc-hover-shadow, 0 4px 20px rgba(0, 0, 0, .06))}.ate-toc.ate-toc-variant-transparent{background:transparent;border:none;box-shadow:none;padding:0}.ate-toc-header{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ate-text-muted, #9ca3af);margin-bottom:10px;margin-top:6px;padding-left:12px;padding-right:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.ate-toc-list{display:flex;flex-direction:column;gap:var(--ate-toc-text-gap, var(--ate-toc-gap, 2px));position:relative;transition:gap .2s ease}.ate-toc-item{display:flex;align-items:center;justify-content:flex-start;text-align:left;position:relative;text-decoration:none;background:transparent;border:none;padding-right:0;cursor:pointer;font:inherit;width:100%;height:var(--ate-toc-item-hover-height, 22px);color:var(--ate-toolbar-button-color, var(--ate-text-secondary, #64748b));outline:none;box-sizing:border-box;border-radius:var(--ate-sub-border-radius, 8px);transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.ate-toc-item:focus-visible{outline:2px solid var(--ate-primary, #2563eb);outline-offset:1px}.ate-toc-item[data-level=\"1\"]{padding-left:8px}.ate-toc-item[data-level=\"2\"]{padding-left:16px}.ate-toc-item[data-level=\"3\"]{padding-left:24px}.ate-toc-item[data-level=\"4\"]{padding-left:32px}.ate-toc-item[data-level=\"5\"]{padding-left:40px}.ate-toc-item[data-level=\"6\"]{padding-left:48px}.ate-toc-item:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary, #2563eb);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px);pointer-events:none}.ate-toc-item:hover{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var(--ate-toolbar-button-hover-background, transparent)}.ate-toc-item:hover:before{opacity:.1}.ate-toc-item.ate-toc-active{color:var(--ate-toolbar-button-active-color, var(--ate-primary, #2563eb));background:var( --ate-toolbar-button-active-background, var(--ate-primary-light, color-mix(in srgb, var(--ate-primary, #2563eb), transparent 90%)) );font-weight:600}.ate-toc-text{font-size:.8rem;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;min-width:0;opacity:1;max-width:250px;transform:translate(0);margin-left:4px;margin-right:0;transition:opacity .25s cubic-bezier(.25,.46,.45,.94),max-width .3s cubic-bezier(.25,.46,.45,.94),transform .25s cubic-bezier(.25,.46,.45,.94),margin .25s ease}.ate-toc-dash{display:none;height:3px;color:var(--ate-toc-dash-color, var(--ate-border, #cbd5e1));flex-shrink:0;vertical-align:middle;overflow:visible;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-header{display:none}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-dash{display:inline-block}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item{height:var(--ate-toc-item-height, 18px);padding-left:0;padding-right:0;background:transparent}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:before{opacity:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item:hover .ate-toc-dash,.ate-toc.ate-toc-hover-expand:not(.ate-toc-hovered) .ate-toc-item.ate-toc-active .ate-toc-dash{color:var(--ate-primary, #2563eb);opacity:1}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row-reverse;justify-content:flex-start}.ate-toc.ate-toc-hover-expand.ate-toc-position-right:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(4px);margin-right:0}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-item,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-item{flex-direction:row;justify-content:flex-start}.ate-toc.ate-toc-hover-expand:not(.ate-toc-position-right):not(.ate-toc-hovered) .ate-toc-text,.ate-toc.ate-toc-hover-expand.ate-toc-position-left:not(.ate-toc-hovered) .ate-toc-text{opacity:0;max-width:0;transform:translate(-4px);margin-left:0}\n"] }]
|
|
2400
2411
|
}], ctorParameters: () => [], propDecorators: { onScroll: [{
|
|
2401
2412
|
type: HostListener,
|
|
2402
2413
|
args: ["window:scroll", []]
|
|
@@ -2419,7 +2430,7 @@ class AteTocNodeComponent extends AteAngularNodeView {
|
|
|
2419
2430
|
[showTitle]="node().attrs['showTitle'] !== false"
|
|
2420
2431
|
[maxDepth]="node().attrs['maxDepth'] || 6" />
|
|
2421
2432
|
</div>
|
|
2422
|
-
`, isInline: true, styles: [".ate-toc-node-wrapper{margin:1rem 0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: AteTableOfContentsComponent, selector: "ate-table-of-contents", inputs: ["editor", "title", "showTitle", "floating", "position", "variant", "hoverExpand", "maxDepth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2433
|
+
`, isInline: true, styles: [".ate-toc-node-wrapper{margin:1rem 0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: AteTableOfContentsComponent, selector: "ate-table-of-contents", inputs: ["editor", "title", "showTitle", "floating", "positionMode", "position", "variant", "hoverExpand", "maxDepth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2423
2434
|
}
|
|
2424
2435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteTocNodeComponent, decorators: [{
|
|
2425
2436
|
type: Component,
|
|
@@ -9484,6 +9495,7 @@ const ATE_TOOLBAR_KEYS = [
|
|
|
9484
9495
|
const ATE_DEFAULT_TOC_CONFIG = {
|
|
9485
9496
|
enabled: true,
|
|
9486
9497
|
floating: true,
|
|
9498
|
+
positionMode: "fixed",
|
|
9487
9499
|
position: "right",
|
|
9488
9500
|
variant: "minimal",
|
|
9489
9501
|
hoverExpand: true,
|