valtech-components 2.0.541 → 2.0.542

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.
@@ -239,8 +239,9 @@ export class DocsTocComponent {
239
239
  }
240
240
  // Update active immediately for better UX
241
241
  this.activeId.set(id);
242
- // Update URL hash without jumping
243
- history.pushState(null, '', `#${id}`);
242
+ // Update URL hash while preserving current path
243
+ const currentPath = window.location.pathname + window.location.search;
244
+ history.pushState(null, '', `${currentPath}#${id}`);
244
245
  }
245
246
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsTocComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
246
247
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsTocComponent, isStandalone: true, selector: "val-docs-toc", inputs: { props: "props" }, outputs: { sectionChange: "sectionChange" }, usesOnChanges: true, ngImport: i0, template: `
@@ -315,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
315
316
  }], sectionChange: [{
316
317
  type: Output
317
318
  }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy10b2MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kb2NzLXRvYy9kb2NzLXRvYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBT1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUd2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQXVDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWnpCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVyRCxpQkFBaUI7UUFDUCxhQUFRLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLG9CQUFlLEdBQWtCLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFDMUMsVUFBSyxHQUFrQixJQUFJLENBQUM7UUE4RjVCLG9CQUFlLEdBQWdDLElBQUksQ0FBQztJQTVGdkIsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsK0JBQStCO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxJQUFJLENBQUMsY0FB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QUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7MkVBSVEsS0FBSztzQkFBYixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEFmdGVyVmlld0luaXQsXG4gIE5nWm9uZSxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3NUb2NNZXRhZGF0YSwgRG9jc1RvY0l0ZW0gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtZG9jcy10b2NcbiAqXG4gKiBBIHRhYmxlIG9mIGNvbnRlbnRzIGNvbXBvbmVudCB3aXRoIHNjcm9sbCBzcHkgZnVuY3Rpb25hbGl0eS5cbiAqIEF1dG9tYXRpY2FsbHkgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBzZWN0aW9uIGJhc2VkIG9uIHNjcm9sbCBwb3NpdGlvbi5cbiAqXG4gKiBAZXhhbXBsZSBNYW51YWwgaXRlbXNcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy10b2NcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0aXRsZTogJ09uIHRoaXMgcGFnZScsXG4gKiAgICAgaXRlbXM6IFtcbiAqICAgICAgIHsgaWQ6ICdvdmVydmlldycsIGxhYmVsOiAnT3ZlcnZpZXcnLCBsZXZlbDogMSB9LFxuICogICAgICAgeyBpZDogJ2luc3RhbGxhdGlvbicsIGxhYmVsOiAnSW5zdGFsbGF0aW9uJywgbGV2ZWw6IDEgfSxcbiAqICAgICAgIHsgaWQ6ICducG0nLCBsYWJlbDogJ1VzaW5nIG5wbScsIGxldmVsOiAyIH0sXG4gKiAgICAgICB7IGlkOiAneWFybicsIGxhYmVsOiAnVXNpbmcgeWFybicsIGxldmVsOiAyIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogPjwvdmFsLWRvY3MtdG9jPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQXV0by1nZW5lcmF0ZWQgZnJvbSBoZWFkaW5nc1xuICogYGBgaHRtbFxuICogPHZhbC1kb2NzLXRvY1xuICogICBbcHJvcHNdPVwie1xuICogICAgIGF1dG9HZW5lcmF0ZTogdHJ1ZSxcbiAqICAgICBjb250YWluZXJTZWxlY3RvcjogJy5hcnRpY2xlLWNvbnRlbnQnLFxuICogICAgIGhlYWRpbmdMZXZlbHM6IFsyLCAzXVxuICogICB9XCJcbiAqID48L3ZhbC1kb2NzLXRvYz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZG9jcy10b2MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmF2XG4gICAgICBjbGFzcz1cImRvY3MtdG9jXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiVGFibGUgb2YgY29udGVudHNcIlxuICAgID5cbiAgICAgIEBpZiAoIXByb3BzLmhpZGVUaXRsZSkge1xuICAgICAgICA8aDQgY2xhc3M9XCJkb2NzLXRvY19fdGl0bGVcIj57eyBwcm9wcy50aXRsZSB8fCAnQ29udGVudHMnIH19PC9oND5cbiAgICAgIH1cblxuICAgICAgPHVsIGNsYXNzPVwiZG9jcy10b2NfX2xpc3RcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBmbGF0SXRlbXMoKTsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXRvY19faXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTFdPVwiaXRlbS5sZXZlbCA9PT0gMVwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTJdPVwiaXRlbS5sZXZlbCA9PT0gMlwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTNdPVwiaXRlbS5sZXZlbCA9PT0gM1wiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWFjdGl2ZV09XCJhY3RpdmVJZCgpID09PSBpdGVtLmlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cImRvY3MtdG9jX19saW5rXCJcbiAgICAgICAgICAgICAgW2hyZWZdPVwiJyMnICsgaXRlbS5pZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1NlY3Rpb24oJGV2ZW50LCBpdGVtLmlkKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICA8L3VsPlxuICAgIDwvbmF2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kb2NzLXRvYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NzVG9jQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBEb2NzVG9jTWV0YWRhdGEgPSB7fTtcblxuICBAT3V0cHV0KCkgc2VjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIFJlYWN0aXZlIHN0YXRlXG4gIHByb3RlY3RlZCBhY3RpdmVJZCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgcHJvdGVjdGVkIGZsYXRJdGVtcyA9IHNpZ25hbDxEb2NzVG9jSXRlbVtdPihbXSk7XG5cbiAgcHJpdmF0ZSBoZWFkaW5nRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBzY3JvbGxIYW5kbGVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByYWZJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZsYXRJdGVtcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIERlbGF5IHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9HZW5lcmF0ZSkge1xuICAgICAgICB0aGlzLmdlbmVyYXRlVG9jRnJvbUhlYWRpbmdzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldHVwU2Nyb2xsU3B5KCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy51cGRhdGVGbGF0SXRlbXMoKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9HZW5lcmF0ZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZ2VuZXJhdGVUb2NGcm9tSGVhZGluZ3MoKSwgMTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lTY3JvbGxTcHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRmxhdEl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLml0ZW1zKSB7XG4gICAgICB0aGlzLmZsYXRJdGVtcy5zZXQodGhpcy5mbGF0dGVuSXRlbXModGhpcy5wcm9wcy5pdGVtcykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlbkl0ZW1zKGl0ZW1zOiBEb2NzVG9jSXRlbVtdKTogRG9jc1RvY0l0ZW1bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBEb2NzVG9jSXRlbVtdID0gW107XG4gICAgY29uc3QgZmxhdHRlbiA9IChpdGVtTGlzdDogRG9jc1RvY0l0ZW1bXSkgPT4ge1xuICAgICAgaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICBmbGF0dGVuKGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGZsYXR0ZW4oaXRlbXMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVG9jRnJvbUhlYWRpbmdzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5wcm9wcy5jb250YWluZXJTZWxlY3RvciB8fCAnLmRvY3MtbGF5b3V0X19jb250ZW50JztcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcblxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFtkb2NzLXRvY10gQ29udGFpbmVyIG5vdCBmb3VuZDogJHtzZWxlY3Rvcn1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZXZlbHMgPSB0aGlzLnByb3BzLmhlYWRpbmdMZXZlbHMgfHwgWzIsIDNdO1xuICAgIGNvbnN0IGhlYWRpbmdTZWxlY3RvciA9IGxldmVscy5tYXAobCA9PiBgaCR7bH1gKS5qb2luKCcsICcpO1xuICAgIGNvbnN0IGhlYWRpbmdzID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoaGVhZGluZ1NlbGVjdG9yKTtcblxuICAgIGNvbnN0IGl0ZW1zOiBEb2NzVG9jSXRlbVtdID0gW107XG4gICAgaGVhZGluZ3MuZm9yRWFjaCgoaGVhZGluZzogRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBoZWFkaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgICAgLy8gR2VuZXJhdGUgSUQgaWYgbm90IHByZXNlbnRcbiAgICAgIGlmICghZWwuaWQpIHtcbiAgICAgICAgZWwuaWQgPSB0aGlzLmdlbmVyYXRlSWQoZWwudGV4dENvbnRlbnQgfHwgJycpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsZXZlbCA9IHBhcnNlSW50KGVsLnRhZ05hbWVbMV0sIDEwKTtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogZWwuaWQsXG4gICAgICAgIGxhYmVsOiBlbC50ZXh0Q29udGVudD8udHJpbSgpIHx8ICcnLFxuICAgICAgICBsZXZlbDogbGV2ZWwgLSAxLCAvLyBoMiA9IGxldmVsIDEsIGgzID0gbGV2ZWwgMlxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZsYXRJdGVtcy5zZXQoaXRlbXMpO1xuICAgIC8vIFJlLXNldHVwIHNjcm9sbCBzcHkgd2l0aCBuZXcgaXRlbXNcbiAgICB0aGlzLnNldHVwU2Nyb2xsU3B5KCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlSWQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGV4dFxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKC9bXlxcd1xccy1dL2csICcnKVxuICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKVxuICAgICAgLnN1YnN0cmluZygwLCA1MCk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbENvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBXaW5kb3cgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHNldHVwU2Nyb2xsU3B5KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVNjcm9sbFNweSgpO1xuXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZsYXRJdGVtcygpO1xuICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIENvbGxlY3QgaGVhZGluZyBlbGVtZW50c1xuICAgIHRoaXMuaGVhZGluZ0VsZW1lbnRzID0gaXRlbXNcbiAgICAgIC5tYXAoaXRlbSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdGVtLmlkKSlcbiAgICAgIC5maWx0ZXIoKGVsKTogZWwgaXMgSFRNTEVsZW1lbnQgPT4gZWwgIT09IG51bGwpO1xuXG4gICAgaWYgKHRoaXMuaGVhZGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS53YXJuKCdbZG9jcy10b2NdIE5vIGhlYWRpbmcgZWxlbWVudHMgZm91bmQgZm9yIElEczonLCBpdGVtcy5tYXAoaSA9PiBpLmlkKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRmluZCB0aGUgc2Nyb2xsIGNvbnRhaW5lciAtIGNoZWNrIGZvciBpb24tY29udGVudCBmaXJzdCwgdGhlbiB1c2Ugd2luZG93XG4gICAgdGhpcy5zY3JvbGxDb250YWluZXIgPSB0aGlzLmZpbmRTY3JvbGxDb250YWluZXIoKTtcblxuICAgIC8vIFNldCBpbml0aWFsIGFjdGl2ZSBpdGVtXG4gICAgdGhpcy51cGRhdGVBY3RpdmVIZWFkaW5nKCk7XG5cbiAgICAvLyBVc2Ugc2Nyb2xsIGV2ZW50IHdpdGggcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGZvciBwZXJmb3JtYW5jZVxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucmFmSWQpIHtcbiAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnJhZklkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUhlYWRpbmcoKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBMaXN0ZW4gb24gYm90aCB3aW5kb3cgYW5kIHRoZSBzY3JvbGwgY29udGFpbmVyIGZvciBtYXhpbXVtIGNvbXBhdGliaWxpdHlcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsSGFuZGxlciwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuXG4gICAgICAvLyBBbHNvIGxpc3RlbiBvbiBpb24tY29udGVudCBpZiBwcmVzZW50XG4gICAgICBjb25zdCBpb25Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW9uLWNvbnRlbnQnKTtcbiAgICAgIGlmIChpb25Db250ZW50KSB7XG4gICAgICAgIGlvbkNvbnRlbnQuYWRkRXZlbnRMaXN0ZW5lcignaW9uU2Nyb2xsJywgdGhpcy5zY3JvbGxIYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNjcm9sbENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgLy8gQ2hlY2sgZm9yIGlvbi1jb250ZW50J3Mgc2Nyb2xsIGVsZW1lbnRcbiAgICBjb25zdCBpb25Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW9uLWNvbnRlbnQnKTtcbiAgICBpZiAoaW9uQ29udGVudCkge1xuICAgICAgLy8gaW9uLWNvbnRlbnQgaGFzIGEgc2hhZG93IERPTSB3aXRoIHRoZSBhY3R1YWwgc2Nyb2xsYWJsZSBlbGVtZW50XG4gICAgICBjb25zdCBzY3JvbGxFbCA9IChpb25Db250ZW50IGFzIGFueSkuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmlubmVyLXNjcm9sbCcpO1xuICAgICAgaWYgKHNjcm9sbEVsKSByZXR1cm4gc2Nyb2xsRWw7XG4gICAgfVxuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUhlYWRpbmcoKTogdm9pZCB7XG4gICAgY29uc3Qgb2Zmc2V0VG9wID0gdGhpcy5wcm9wcy5vZmZzZXRUb3AgPz8gMTAwO1xuXG4gICAgLy8gRmluZCB0aGUgaGVhZGluZyBjbG9zZXN0IHRvIG9yIGFib3ZlIHRoZSB0cmlnZ2VyIHBvaW50IChvZmZzZXQgZnJvbSB0b3Agb2Ygdmlld3BvcnQpXG4gICAgLy8gVXNpbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIHdoaWNoIGlzIHJlbGF0aXZlIHRvIHZpZXdwb3J0IC0gd29ya3MgcmVnYXJkbGVzcyBvZiBzY3JvbGwgY29udGFpbmVyXG4gICAgbGV0IGFjdGl2ZUhlYWRpbmc6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IGhlYWRpbmcgb2YgdGhpcy5oZWFkaW5nRWxlbWVudHMpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSBoZWFkaW5nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAvLyBJZiBoZWFkaW5nJ3MgdG9wIGlzIGF0IG9yIGFib3ZlIHRoZSB0cmlnZ2VyIHBvaW50IChvZmZzZXQgcGl4ZWxzIGZyb20gdmlld3BvcnQgdG9wKVxuICAgICAgaWYgKHJlY3QudG9wIDw9IG9mZnNldFRvcCArIDEwKSB7XG4gICAgICAgIGFjdGl2ZUhlYWRpbmcgPSBoZWFkaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2luY2UgaGVhZGluZ3MgYXJlIGluIERPTSBvcmRlciwgc3RvcCBvbmNlIHdlIGZpbmQgb25lIGJlbG93IHRoZSB0cmlnZ2VyXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIG5vIGhlYWRpbmcgaXMgYWJvdmUgdGhlIHRyaWdnZXIgcG9pbnQsIHVzZSB0aGUgZmlyc3Qgb25lXG4gICAgaWYgKCFhY3RpdmVIZWFkaW5nICYmIHRoaXMuaGVhZGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFjdGl2ZUhlYWRpbmcgPSB0aGlzLmhlYWRpbmdFbGVtZW50c1swXTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aXZlSGVhZGluZyAmJiBhY3RpdmVIZWFkaW5nLmlkICE9PSB0aGlzLmFjdGl2ZUlkKCkpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlSWQuc2V0KGFjdGl2ZUhlYWRpbmchLmlkKTtcbiAgICAgICAgdGhpcy5zZWN0aW9uQ2hhbmdlLmVtaXQoYWN0aXZlSGVhZGluZyEuaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95U2Nyb2xsU3B5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxIYW5kbGVyLCB7IGNhcHR1cmU6IHRydWUgfSBhcyBFdmVudExpc3RlbmVyT3B0aW9ucyk7XG5cbiAgICAgIGNvbnN0IGlvbkNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpb24tY29udGVudCcpO1xuICAgICAgaWYgKGlvbkNvbnRlbnQpIHtcbiAgICAgICAgaW9uQ29udGVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdpb25TY3JvbGwnLCB0aGlzLnNjcm9sbEhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlciA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLnJhZklkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnJhZklkKTtcbiAgICAgIHRoaXMucmFmSWQgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmhlYWRpbmdFbGVtZW50cyA9IFtdO1xuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyID0gbnVsbDtcbiAgfVxuXG4gIHNjcm9sbFRvU2VjdGlvbihldmVudDogRXZlbnQsIGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IG9mZnNldFRvcCA9IHRoaXMucHJvcHMub2Zmc2V0VG9wID8/IDEwMDtcblxuICAgIC8vIFVzZSBzY3JvbGxJbnRvVmlldyB3aXRoIG9mZnNldCBjYWxjdWxhdGlvbiBmb3IgYmV0dGVyIGNyb3NzLWNvbnRhaW5lciBzdXBwb3J0XG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxZID0gd2luZG93LnNjcm9sbFkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCB0YXJnZXRZID0gZWxlbWVudFJlY3QudG9wICsgY3VycmVudFNjcm9sbFkgLSBvZmZzZXRUb3A7XG5cbiAgICAvLyBUcnkgaW9uLWNvbnRlbnQgc2Nyb2xsVG9Qb2ludCBmaXJzdCAoZm9yIElvbmljIGFwcHMpXG4gICAgY29uc3QgaW9uQ29udGVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1jb250ZW50Jyk7XG4gICAgaWYgKGlvbkNvbnRlbnQgJiYgdHlwZW9mIChpb25Db250ZW50IGFzIGFueSkuc2Nyb2xsVG9Qb2ludCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgKGlvbkNvbnRlbnQgYXMgYW55KS5zY3JvbGxUb1BvaW50KDAsIHRhcmdldFksIDMwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIHdpbmRvdyBzY3JvbGxcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogdGFyZ2V0WSxcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGFjdGl2ZSBpbW1lZGlhdGVseSBmb3IgYmV0dGVyIFVYXG4gICAgdGhpcy5hY3RpdmVJZC5zZXQoaWQpO1xuXG4gICAgLy8gVXBkYXRlIFVSTCBoYXNoIHdpdGhvdXQganVtcGluZ1xuICAgIGhpc3RvcnkucHVzaFN0YXRlKG51bGwsICcnLCBgIyR7aWR9YCk7XG4gIH1cbn1cbiJdfQ==
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy10b2MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kb2NzLXRvYy9kb2NzLXRvYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBT1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUd2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQXVDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWnpCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVyRCxpQkFBaUI7UUFDUCxhQUFRLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLG9CQUFlLEdBQWtCLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFDMUMsVUFBSyxHQUFrQixJQUFJLENBQUM7UUE4RjVCLG9CQUFlLEdBQWdDLElBQUksQ0FBQztJQTVGdkIsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsK0JBQStCO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxJQUFJLENBQUMsY0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JULGlnREFoQ1MsWUFBWTs7NEZBbUNYLGdCQUFnQjtrQkF0QzVCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzJFQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBBZnRlclZpZXdJbml0LFxuICBOZ1pvbmUsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2NzVG9jTWV0YWRhdGEsIERvY3NUb2NJdGVtIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWRvY3MtdG9jXG4gKlxuICogQSB0YWJsZSBvZiBjb250ZW50cyBjb21wb25lbnQgd2l0aCBzY3JvbGwgc3B5IGZ1bmN0aW9uYWxpdHkuXG4gKiBBdXRvbWF0aWNhbGx5IGhpZ2hsaWdodHMgdGhlIGN1cnJlbnQgc2VjdGlvbiBiYXNlZCBvbiBzY3JvbGwgcG9zaXRpb24uXG4gKlxuICogQGV4YW1wbGUgTWFudWFsIGl0ZW1zXG4gKiBgYGBodG1sXG4gKiA8dmFsLWRvY3MtdG9jXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGl0bGU6ICdPbiB0aGlzIHBhZ2UnLFxuICogICAgIGl0ZW1zOiBbXG4gKiAgICAgICB7IGlkOiAnb3ZlcnZpZXcnLCBsYWJlbDogJ092ZXJ2aWV3JywgbGV2ZWw6IDEgfSxcbiAqICAgICAgIHsgaWQ6ICdpbnN0YWxsYXRpb24nLCBsYWJlbDogJ0luc3RhbGxhdGlvbicsIGxldmVsOiAxIH0sXG4gKiAgICAgICB7IGlkOiAnbnBtJywgbGFiZWw6ICdVc2luZyBucG0nLCBsZXZlbDogMiB9LFxuICogICAgICAgeyBpZDogJ3lhcm4nLCBsYWJlbDogJ1VzaW5nIHlhcm4nLCBsZXZlbDogMiB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqID48L3ZhbC1kb2NzLXRvYz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEF1dG8tZ2VuZXJhdGVkIGZyb20gaGVhZGluZ3NcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy10b2NcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBhdXRvR2VuZXJhdGU6IHRydWUsXG4gKiAgICAgY29udGFpbmVyU2VsZWN0b3I6ICcuYXJ0aWNsZS1jb250ZW50JyxcbiAqICAgICBoZWFkaW5nTGV2ZWxzOiBbMiwgM11cbiAqICAgfVwiXG4gKiA+PC92YWwtZG9jcy10b2M+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRvY3MtdG9jJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJkb2NzLXRvY1wiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgYXJpYS1sYWJlbD1cIlRhYmxlIG9mIGNvbnRlbnRzXCJcbiAgICA+XG4gICAgICBAaWYgKCFwcm9wcy5oaWRlVGl0bGUpIHtcbiAgICAgICAgPGg0IGNsYXNzPVwiZG9jcy10b2NfX3RpdGxlXCI+e3sgcHJvcHMudGl0bGUgfHwgJ0NvbnRlbnRzJyB9fTwvaDQ+XG4gICAgICB9XG5cbiAgICAgIDx1bCBjbGFzcz1cImRvY3MtdG9jX19saXN0XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZmxhdEl0ZW1zKCk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwiZG9jcy10b2NfX2l0ZW1cIlxuICAgICAgICAgICAgW2NsYXNzLmRvY3MtdG9jX19pdGVtLS1sZXZlbC0xXT1cIml0ZW0ubGV2ZWwgPT09IDFcIlxuICAgICAgICAgICAgW2NsYXNzLmRvY3MtdG9jX19pdGVtLS1sZXZlbC0yXT1cIml0ZW0ubGV2ZWwgPT09IDJcIlxuICAgICAgICAgICAgW2NsYXNzLmRvY3MtdG9jX19pdGVtLS1sZXZlbC0zXT1cIml0ZW0ubGV2ZWwgPT09IDNcIlxuICAgICAgICAgICAgW2NsYXNzLmRvY3MtdG9jX19pdGVtLS1hY3RpdmVdPVwiYWN0aXZlSWQoKSA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXRvY19fbGlua1wiXG4gICAgICAgICAgICAgIFtocmVmXT1cIicjJyArIGl0ZW0uaWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9TZWN0aW9uKCRldmVudCwgaXRlbS5pZClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jcy10b2MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jc1RvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwcm9wczogRG9jc1RvY01ldGFkYXRhID0ge307XG5cbiAgQE91dHB1dCgpIHNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyBSZWFjdGl2ZSBzdGF0ZVxuICBwcm90ZWN0ZWQgYWN0aXZlSWQgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIHByb3RlY3RlZCBmbGF0SXRlbXMgPSBzaWduYWw8RG9jc1RvY0l0ZW1bXT4oW10pO1xuXG4gIHByaXZhdGUgaGVhZGluZ0VsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG4gIHByaXZhdGUgc2Nyb2xsSGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVGbGF0SXRlbXMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBEZWxheSB0byBlbnN1cmUgRE9NIGlzIHJlYWR5XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvR2VuZXJhdGUpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVRvY0Zyb21IZWFkaW5ncygpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXR1cFNjcm9sbFNweSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlRmxhdEl0ZW1zKCk7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvR2VuZXJhdGUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdlbmVyYXRlVG9jRnJvbUhlYWRpbmdzKCksIDEwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95U2Nyb2xsU3B5KCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZsYXRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pdGVtcykge1xuICAgICAgdGhpcy5mbGF0SXRlbXMuc2V0KHRoaXMuZmxhdHRlbkl0ZW1zKHRoaXMucHJvcHMuaXRlbXMpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5JdGVtcyhpdGVtczogRG9jc1RvY0l0ZW1bXSk6IERvY3NUb2NJdGVtW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRG9jc1RvY0l0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IGZsYXR0ZW4gPSAoaXRlbUxpc3Q6IERvY3NUb2NJdGVtW10pID0+IHtcbiAgICAgIGl0ZW1MaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgZmxhdHRlbihpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBmbGF0dGVuKGl0ZW1zKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVRvY0Zyb21IZWFkaW5ncygpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IHRoaXMucHJvcHMuY29udGFpbmVyU2VsZWN0b3IgfHwgJy5kb2NzLWxheW91dF9fY29udGVudCc7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG5cbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgY29uc29sZS53YXJuKGBbZG9jcy10b2NdIENvbnRhaW5lciBub3QgZm91bmQ6ICR7c2VsZWN0b3J9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGV2ZWxzID0gdGhpcy5wcm9wcy5oZWFkaW5nTGV2ZWxzIHx8IFsyLCAzXTtcbiAgICBjb25zdCBoZWFkaW5nU2VsZWN0b3IgPSBsZXZlbHMubWFwKGwgPT4gYGgke2x9YCkuam9pbignLCAnKTtcbiAgICBjb25zdCBoZWFkaW5ncyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKGhlYWRpbmdTZWxlY3Rvcik7XG5cbiAgICBjb25zdCBpdGVtczogRG9jc1RvY0l0ZW1bXSA9IFtdO1xuICAgIGhlYWRpbmdzLmZvckVhY2goKGhlYWRpbmc6IEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gaGVhZGluZyBhcyBIVE1MRWxlbWVudDtcbiAgICAgIC8vIEdlbmVyYXRlIElEIGlmIG5vdCBwcmVzZW50XG4gICAgICBpZiAoIWVsLmlkKSB7XG4gICAgICAgIGVsLmlkID0gdGhpcy5nZW5lcmF0ZUlkKGVsLnRleHRDb250ZW50IHx8ICcnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGV2ZWwgPSBwYXJzZUludChlbC50YWdOYW1lWzFdLCAxMCk7XG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgaWQ6IGVsLmlkLFxuICAgICAgICBsYWJlbDogZWwudGV4dENvbnRlbnQ/LnRyaW0oKSB8fCAnJyxcbiAgICAgICAgbGV2ZWw6IGxldmVsIC0gMSwgLy8gaDIgPSBsZXZlbCAxLCBoMyA9IGxldmVsIDJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mbGF0SXRlbXMuc2V0KGl0ZW1zKTtcbiAgICAvLyBSZS1zZXR1cCBzY3JvbGwgc3B5IHdpdGggbmV3IGl0ZW1zXG4gICAgdGhpcy5zZXR1cFNjcm9sbFNweSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUlkKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHRcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZSgvW15cXHdcXHMtXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJylcbiAgICAgIC5zdWJzdHJpbmcoMCwgNTApO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxDb250YWluZXI6IEhUTUxFbGVtZW50IHwgV2luZG93IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzZXR1cFNjcm9sbFNweSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lTY3JvbGxTcHkoKTtcblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mbGF0SXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAvLyBDb2xsZWN0IGhlYWRpbmcgZWxlbWVudHNcbiAgICB0aGlzLmhlYWRpbmdFbGVtZW50cyA9IGl0ZW1zXG4gICAgICAubWFwKGl0ZW0gPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbS5pZCkpXG4gICAgICAuZmlsdGVyKChlbCk6IGVsIGlzIEhUTUxFbGVtZW50ID0+IGVsICE9PSBudWxsKTtcblxuICAgIGlmICh0aGlzLmhlYWRpbmdFbGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUud2FybignW2RvY3MtdG9jXSBObyBoZWFkaW5nIGVsZW1lbnRzIGZvdW5kIGZvciBJRHM6JywgaXRlbXMubWFwKGkgPT4gaS5pZCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZpbmQgdGhlIHNjcm9sbCBjb250YWluZXIgLSBjaGVjayBmb3IgaW9uLWNvbnRlbnQgZmlyc3QsIHRoZW4gdXNlIHdpbmRvd1xuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyID0gdGhpcy5maW5kU2Nyb2xsQ29udGFpbmVyKCk7XG5cbiAgICAvLyBTZXQgaW5pdGlhbCBhY3RpdmUgaXRlbVxuICAgIHRoaXMudXBkYXRlQWN0aXZlSGVhZGluZygpO1xuXG4gICAgLy8gVXNlIHNjcm9sbCBldmVudCB3aXRoIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3IgcGVyZm9ybWFuY2VcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnJhZklkKSB7XG4gICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVIZWFkaW5nKCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgLy8gTGlzdGVuIG9uIGJvdGggd2luZG93IGFuZCB0aGUgc2Nyb2xsIGNvbnRhaW5lciBmb3IgbWF4aW11bSBjb21wYXRpYmlsaXR5XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxIYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcblxuICAgICAgLy8gQWxzbyBsaXN0ZW4gb24gaW9uLWNvbnRlbnQgaWYgcHJlc2VudFxuICAgICAgY29uc3QgaW9uQ29udGVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1jb250ZW50Jyk7XG4gICAgICBpZiAoaW9uQ29udGVudCkge1xuICAgICAgICBpb25Db250ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lvblNjcm9sbCcsIHRoaXMuc2Nyb2xsSGFuZGxlciBhcyBFdmVudExpc3RlbmVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRTY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgIC8vIENoZWNrIGZvciBpb24tY29udGVudCdzIHNjcm9sbCBlbGVtZW50XG4gICAgY29uc3QgaW9uQ29udGVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1jb250ZW50Jyk7XG4gICAgaWYgKGlvbkNvbnRlbnQpIHtcbiAgICAgIC8vIGlvbi1jb250ZW50IGhhcyBhIHNoYWRvdyBET00gd2l0aCB0aGUgYWN0dWFsIHNjcm9sbGFibGUgZWxlbWVudFxuICAgICAgY29uc3Qgc2Nyb2xsRWwgPSAoaW9uQ29udGVudCBhcyBhbnkpLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5pbm5lci1zY3JvbGwnKTtcbiAgICAgIGlmIChzY3JvbGxFbCkgcmV0dXJuIHNjcm9sbEVsO1xuICAgIH1cbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVIZWFkaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IG9mZnNldFRvcCA9IHRoaXMucHJvcHMub2Zmc2V0VG9wID8/IDEwMDtcblxuICAgIC8vIEZpbmQgdGhlIGhlYWRpbmcgY2xvc2VzdCB0byBvciBhYm92ZSB0aGUgdHJpZ2dlciBwb2ludCAob2Zmc2V0IGZyb20gdG9wIG9mIHZpZXdwb3J0KVxuICAgIC8vIFVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCB3aGljaCBpcyByZWxhdGl2ZSB0byB2aWV3cG9ydCAtIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygc2Nyb2xsIGNvbnRhaW5lclxuICAgIGxldCBhY3RpdmVIZWFkaW5nOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBoZWFkaW5nIG9mIHRoaXMuaGVhZGluZ0VsZW1lbnRzKSB7XG4gICAgICBjb25zdCByZWN0ID0gaGVhZGluZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgLy8gSWYgaGVhZGluZydzIHRvcCBpcyBhdCBvciBhYm92ZSB0aGUgdHJpZ2dlciBwb2ludCAob2Zmc2V0IHBpeGVscyBmcm9tIHZpZXdwb3J0IHRvcClcbiAgICAgIGlmIChyZWN0LnRvcCA8PSBvZmZzZXRUb3AgKyAxMCkge1xuICAgICAgICBhY3RpdmVIZWFkaW5nID0gaGVhZGluZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbmNlIGhlYWRpbmdzIGFyZSBpbiBET00gb3JkZXIsIHN0b3Agb25jZSB3ZSBmaW5kIG9uZSBiZWxvdyB0aGUgdHJpZ2dlclxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBoZWFkaW5nIGlzIGFib3ZlIHRoZSB0cmlnZ2VyIHBvaW50LCB1c2UgdGhlIGZpcnN0IG9uZVxuICAgIGlmICghYWN0aXZlSGVhZGluZyAmJiB0aGlzLmhlYWRpbmdFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBhY3RpdmVIZWFkaW5nID0gdGhpcy5oZWFkaW5nRWxlbWVudHNbMF07XG4gICAgfVxuXG4gICAgaWYgKGFjdGl2ZUhlYWRpbmcgJiYgYWN0aXZlSGVhZGluZy5pZCAhPT0gdGhpcy5hY3RpdmVJZCgpKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2ZUlkLnNldChhY3RpdmVIZWFkaW5nIS5pZCk7XG4gICAgICAgIHRoaXMuc2VjdGlvbkNoYW5nZS5lbWl0KGFjdGl2ZUhlYWRpbmchLmlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVNjcm9sbFNweSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY3JvbGxIYW5kbGVyKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxIYW5kbGVyKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsSGFuZGxlciwgeyBjYXB0dXJlOiB0cnVlIH0gYXMgRXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuXG4gICAgICBjb25zdCBpb25Db250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW9uLWNvbnRlbnQnKTtcbiAgICAgIGlmIChpb25Db250ZW50KSB7XG4gICAgICAgIGlvbkNvbnRlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW9uU2Nyb2xsJywgdGhpcy5zY3JvbGxIYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5yYWZJZCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7XG4gICAgICB0aGlzLnJhZklkID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5oZWFkaW5nRWxlbWVudHMgPSBbXTtcbiAgICB0aGlzLnNjcm9sbENvbnRhaW5lciA9IG51bGw7XG4gIH1cblxuICBzY3JvbGxUb1NlY3Rpb24oZXZlbnQ6IEV2ZW50LCBpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgaWYgKCFlbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBvZmZzZXRUb3AgPSB0aGlzLnByb3BzLm9mZnNldFRvcCA/PyAxMDA7XG5cbiAgICAvLyBVc2Ugc2Nyb2xsSW50b1ZpZXcgd2l0aCBvZmZzZXQgY2FsY3VsYXRpb24gZm9yIGJldHRlciBjcm9zcy1jb250YWluZXIgc3VwcG9ydFxuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgY29uc3QgdGFyZ2V0WSA9IGVsZW1lbnRSZWN0LnRvcCArIGN1cnJlbnRTY3JvbGxZIC0gb2Zmc2V0VG9wO1xuXG4gICAgLy8gVHJ5IGlvbi1jb250ZW50IHNjcm9sbFRvUG9pbnQgZmlyc3QgKGZvciBJb25pYyBhcHBzKVxuICAgIGNvbnN0IGlvbkNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpb24tY29udGVudCcpO1xuICAgIGlmIChpb25Db250ZW50ICYmIHR5cGVvZiAoaW9uQ29udGVudCBhcyBhbnkpLnNjcm9sbFRvUG9pbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIChpb25Db250ZW50IGFzIGFueSkuc2Nyb2xsVG9Qb2ludCgwLCB0YXJnZXRZLCAzMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayB0byB3aW5kb3cgc2Nyb2xsXG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oe1xuICAgICAgICB0b3A6IHRhcmdldFksXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBhY3RpdmUgaW1tZWRpYXRlbHkgZm9yIGJldHRlciBVWFxuICAgIHRoaXMuYWN0aXZlSWQuc2V0KGlkKTtcblxuICAgIC8vIFVwZGF0ZSBVUkwgaGFzaCB3aGlsZSBwcmVzZXJ2aW5nIGN1cnJlbnQgcGF0aFxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCAnJywgYCR7Y3VycmVudFBhdGh9IyR7aWR9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -33019,8 +33019,9 @@ class DocsTocComponent {
33019
33019
  }
33020
33020
  // Update active immediately for better UX
33021
33021
  this.activeId.set(id);
33022
- // Update URL hash without jumping
33023
- history.pushState(null, '', `#${id}`);
33022
+ // Update URL hash while preserving current path
33023
+ const currentPath = window.location.pathname + window.location.search;
33024
+ history.pushState(null, '', `${currentPath}#${id}`);
33024
33025
  }
33025
33026
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsTocComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
33026
33027
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsTocComponent, isStandalone: true, selector: "val-docs-toc", inputs: { props: "props" }, outputs: { sectionChange: "sectionChange" }, usesOnChanges: true, ngImport: i0, template: `