@churchillliving/se-ui-toolkit 6.54.53 → 6.54.55

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.
@@ -67,19 +67,23 @@ export class SidebarComponent {
67
67
  this.scrollToSection();
68
68
  }
69
69
  scrollToSection() {
70
- let decodedPageUrl;
70
+ let sectionName;
71
71
  let pageUrl = this.router.url;
72
72
  if (pageUrl.includes('section=')) {
73
73
  pageUrl = pageUrl.split('section=')[1];
74
- decodedPageUrl = decodeURIComponent(pageUrl);
74
+ sectionName = decodeURIComponent(pageUrl);
75
75
  }
76
- if (this.form && this.form.formSections?.length > 0 && decodedPageUrl) {
77
- const index = this.form.formSections.findIndex((section) => section.name && section.name.toLowerCase() === decodedPageUrl.toLowerCase());
78
- if (index > -1) {
76
+ if (this.form && this.form.formSections?.length > 0 && sectionName) {
77
+ const index = this.form.formSections.findIndex((section) => section.name?.toLowerCase() === sectionName?.toLowerCase());
78
+ if (index > -1 && this.form.formSections[index]?.class) {
79
79
  this.form.formSections[index].expanded = true;
80
+ this.ngZone.onStable
81
+ .pipe(take(1))
82
+ .subscribe(() => {
83
+ this.instance?.selectRootElement(`.${this.form.formSections[index].class?.replace(/\s/g, "")}`, true)?.scrollIntoView({ behavior: 'smooth' });
84
+ });
80
85
  }
81
86
  }
82
- this.instance?.selectRootElement(`.${decodedPageUrl?.replace(/\s/g, "")}`, true)?.scrollIntoView({ behavior: 'smooth' });
83
87
  }
84
88
  initializeSideBar() {
85
89
  this.roles = this.authService.getUserRoles();
@@ -316,8 +320,6 @@ export class SidebarComponent {
316
320
  * Passes the event of the menu
317
321
  */
318
322
  navigateToSection(x, item) {
319
- console.log('x: ', x);
320
- console.log('item: ', item);
321
323
  if (this.form && this.form.formSections?.length > 0 && x.section) {
322
324
  const index = this.form.formSections.findIndex((section) => section.class && section.class === x.section);
323
325
  if (index > -1) {
@@ -380,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
380
382
  }], sidebarItems: [{
381
383
  type: Input
382
384
  }] } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFJdEYsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXRDLE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsSUFBYSxjQUFjLENBQUMsR0FBUTtRQUNsQyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEIsUUFBUSxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBQ0QsSUFBYSxZQUFZLENBQUMsZUFBb0I7UUFDNUMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxXQUFXLEdBQVUsRUFBRSxDQUFDO1lBQzVCLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztnQkFDNUIsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUs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QUM7YUFDTjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUF2WFUsZ0JBQWdCO3FIQUFoQixnQkFBZ0IsdU9DdEI3QixtekJBd0JPOzsyRkRGTSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTt3VkFVYixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxjQUFjO3NCQUExQixLQUFLO2dCQUtPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25Jbml0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5pbXBvcnQgeyBFU2lkZWJhckFjdGlvbiwgSVNpZGViYXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2lkZWJhci5tb2RlbCc7XG5pbXBvcnQgeyBFUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdXNlci1pbmZvLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHlwZXJsaW5rU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2h5cGVybGluay5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVDb21wb25lbnQgfSBmcm9tICcuLi9pZnJhbWUvaWZyYW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IGRyYWdnYWJsZURpYWxvZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJRHluYW1pY0Zvcm0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlLXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgdG9nZ2xlTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBsb2FkQ29tcG9uZW50TmFtZSA9ICcnO1xuICBnbG9iYWxMaXN0ZW5GdW5jOiBGdW5jdGlvbjtcbiAgZGlhbG9nUmVmOiBhbnk7XG4gIGZvcm06IElEeW5hbWljRm9ybTtcbiAgQElucHV0KCkgbmF2SGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbGxhcHNlU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZW51VGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc2V0IGFjdGl2ZVRlc3RNb2RlKHZhbDogYW55KSB7XG4gICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xuICAgICAgZGVidWdnZXI7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHNldCBzaWRlYmFySXRlbXMobmV3U2lkZWJhckl0ZW1zOiBhbnkpIHtcbiAgICBpZiAobmV3U2lkZWJhckl0ZW1zKSB7XG4gICAgICBsZXQgbGVmdFNpZGVCYXI6IGFueVtdID0gW107XG4gICAgICBpZiAobmV3U2lkZWJhckl0ZW1zLmZvcm1TZWN0aW9ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmZvcm0gPSBuZXdTaWRlYmFySXRlbXM7XG4gICAgICAgIG5ld1NpZGViYXJJdGVtcy5mb3JtU2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChzZWN0aW9uICYmIHNlY3Rpb24/Lmljb24pIHtcbiAgICAgICAgICAgIGxlZnRTaWRlQmFyLnB1c2goe1xuICAgICAgICAgICAgICBpY29uOiBzZWN0aW9uPy5pY29uLFxuICAgICAgICAgICAgICBzZWN0aW9uOiBzZWN0aW9uPy5jbGFzcyxcbiAgICAgICAgICAgICAgdG9vbHRpcDogc2VjdGlvbj8ubmFtZSxcbiAgICAgICAgICAgICAgYWN0aW9uOiBFU2lkZWJhckFjdGlvbi5OQVZJR0FUSU9OLFxuICAgICAgICAgICAgICBoaWRkZW46IHNlY3Rpb24/LmhpZGRlbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2lkZWJhckl0ZW1zTGlzdCA9IGxlZnRTaWRlQmFyPy5sZW5ndGggPiAwID8gbGVmdFNpZGVCYXIgOiBuZXdTaWRlYmFySXRlbXM7XG4gICAgICB0aGlzLmluaXRpYWxpemVTaWRlQmFyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNpZGViYXJJdGVtc0xpc3Q6IElTaWRlYmFyW10gPSBbXTtcbiAgcHVibGljIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICByb2xlczogc3RyaW5nW10gPSBbXTtcbiAgaXNTaWRlYmFySGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnN0YW5jZTogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGFnZUxvZ2dlclNlcnZpY2U6IFBhZ2VMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHlwZXJsaW5rU2VydmljZTogSHlwZXJsaW5rU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsVG9TZWN0aW9uKCk7XG4gIH1cblxuICBzY3JvbGxUb1NlY3Rpb24oKTogdm9pZCB7XG4gICAgbGV0IGRlY29kZWRQYWdlVXJsO1xuICAgIGxldCBwYWdlVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIGlmIChwYWdlVXJsLmluY2x1ZGVzKCdzZWN0aW9uPScpKSB7XG4gICAgICBwYWdlVXJsID0gcGFnZVVybC5zcGxpdCgnc2VjdGlvbj0nKVsxXTtcbiAgICAgIGRlY29kZWRQYWdlVXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhZ2VVcmwpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtICYmIHRoaXMuZm9ybS5mb3JtU2VjdGlvbnM/Lmxlbmd0aCA+IDAgJiYgZGVjb2RlZFBhZ2VVcmwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtLmZvcm1TZWN0aW9ucy5maW5kSW5kZXgoKHNlY3Rpb24pID0+IHNlY3Rpb24ubmFtZSAmJiBzZWN0aW9uLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZGVjb2RlZFBhZ2VVcmwudG9Mb3dlckNhc2UoKSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLmZvcm0uZm9ybVNlY3Rpb25zW2luZGV4XS5leHBhbmRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaW5zdGFuY2U/LnNlbGVjdFJvb3RFbGVtZW50KGAuJHtkZWNvZGVkUGFnZVVybD8ucmVwbGFjZSgvXFxzL2csIFwiXCIpfWAsIHRydWUpPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfVxuICBpbml0aWFsaXplU2lkZUJhcigpIHtcbiAgICB0aGlzLnJvbGVzID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyUm9sZXMoKTtcbiAgICAvLyBhcHBseSB1c2VyIHJvbGUgcGVybWlzc2lvbnNcbiAgICB0aGlzLmFwcGx5VXNlclBlcm1pc3Npb25zKCk7XG4gICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLnNpZGViYXJJdGVtc0xpc3QubWFwKCh4OiBhbnkpID0+ICh7XG4gICAgICBsYWJlbDogeC5sYWJlbCxcbiAgICAgIGljb246IHguaWNvbixcbiAgICAgIGlkOiB4LmlkLFxuICAgICAgc2VjdGlvbjogeC5zZWN0aW9uLFxuICAgICAgZXhwYW5kZWQ6IHguZXhwYW5kZWQsXG4gICAgICBhY3Rpb246IHguYWN0aW9uLFxuICAgICAgaXRlbXM6IHguaXRlbXMgJiYgeC5pdGVtcy5sZW5ndGggPiAwID8gdGhpcy5zZXRNZW51SXRlbXMoeCkgOiBbXSxcbiAgICAgIHRpdGxlOiB0aGlzLnNldE1lbnVUaXRsZSh4KSxcbiAgICAgIGNvbW1hbmQ6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmICh4LmFjdGlvbiAmJiB4LmFjdGlvbiA9PT0gRVNpZGViYXJBY3Rpb24uTkFWSUdBVElPTikge1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1NlY3Rpb24oeCwgZXZlbnQuaXRlbSk7XG4gICAgICAgIH0gZWxzZSBpZiAoeC5hY3Rpb24gJiYgeC5hY3Rpb24gPT09IEVTaWRlYmFyQWN0aW9uLk9QRU5ESUFMT0cpIHtcbiAgICAgICAgICB0aGlzLm9wZW5EaWFsb2coeCwgZXZlbnQuaXRlbSwgZXZlbnQ/Lm9yaWdpbmFsRXZlbnQ/LmN0cmxLZXkpO1xuICAgICAgICB9IGVsc2UgaWYgKHguYWN0aW9uICYmIHguYWN0aW9uID09PSBFU2lkZWJhckFjdGlvbi5JRlJBTUUpIHtcbiAgICAgICAgICB0aGlzLmxvYWRJRnJhbWUoeCwgZXZlbnQuaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmVJdGVtKGV2ZW50Lml0ZW0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tOiAnJywgLy8gJzFweCBzb2xpZCAjZTllY2VmJyxcbiAgICAgICAgZGlzcGxheTogeC5oaWRkZW4gPyAnbm9uZScgOiAnJyxcbiAgICAgIH0sXG4gICAgICBvbkNsaWNrOiB4Lm9uQ2xpY2ssXG4gICAgICBvblJldHVybjogeC5vblJldHVybixcbiAgICAgIGRpc2FibGVkOiB4LmRpc2FibGVkLFxuICAgIH0pKTtcbiAgfVxuXG4gIHNldE1lbnVUaXRsZSh4OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiB4LnRvb2x0aXAgPyB4LnRvb2x0aXAgOiAheC5sYWJlbCA/IHguc2VjdGlvbiA6ICcnO1xuICB9XG5cbiAgc2V0TWVudUl0ZW1zKHg6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHguaXRlbXMubWFwKChtZW51OiBhbnkpID0+ICh7XG4gICAgICBsYWJlbDogbWVudS5sYWJlbCxcbiAgICAgIGljb246IG1lbnUuaWNvbixcbiAgICAgIGlkOiBtZW51LmlkLFxuICAgICAgc2VjdGlvbjogbWVudS5zZWN0aW9uLFxuICAgICAgZXhwYW5kZWQ6IG1lbnUuZXhwYW5kZWQsXG4gICAgICBhY3Rpb246IG1lbnUuYWN0aW9uLFxuICAgICAgdGl0bGU6IHRoaXMuc2V0TWVudVRpdGxlKHgpLFxuICAgICAgY29tbWFuZDogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHguYWN0aW9uICYmIHguYWN0aW9uID09PSBFU2lkZWJhckFjdGlvbi5OQVZJR0FUSU9OKSB7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvU2VjdGlvbihtZW51LCBldmVudC5pdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZW51LmFjdGlvbiAmJiBtZW51LmFjdGlvbiA9PT0gRVNpZGViYXJBY3Rpb24uT1BFTkRJQUxPRykge1xuICAgICAgICAgIHRoaXMub3BlbkRpYWxvZyhtZW51LCBldmVudC5pdGVtLCBldmVudD8ub3JpZ2luYWxFdmVudD8uY3RybEtleSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVudS5hY3Rpb24gJiYgbWVudS5hY3Rpb24gPT09IEVTaWRlYmFyQWN0aW9uLklGUkFNRSkge1xuICAgICAgICAgIHRoaXMubG9hZElGcmFtZShtZW51LCB4KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZUFjdGl2ZUl0ZW0oZXZlbnQuaXRlbSk7XG4gICAgICB9LFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgYm9yZGVyQm90dG9tOiAnJywgLy8gJzFweCBzb2xpZCAjZTllY2VmJyxcbiAgICAgICAgZGlzcGxheTogbWVudS5oaWRkZW4gPyAnbm9uZScgOiAnJyxcbiAgICAgIH0sXG4gICAgICBvbkNsaWNrOiBtZW51Lm9uQ2xpY2ssXG4gICAgICBvblJldHVybjogbWVudS5vblJldHVybixcbiAgICAgIGRpc2FibGVkOiBtZW51LmRpc2FibGVkLFxuICAgIH0pKVxuICB9XG5cbiAgbG9hZElGcmFtZShtZW51OiBhbnksIGl0ZW06IGFueSkge1xuICAgIGlmKG1lbnUuaUZyYW1lLmxpbmtJZCl7XG4gICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2UuYnVpbGRVcmwobWVudS5pRnJhbWUubGlua0lkKS50aGVuKChyZXMpPT57XG4gICAgICAgIGlmIChyZXMpe1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gdGhpcy5oeXBlcmxpbmtTZXJ2aWNlLnNldFVybChtZW51Py5wYXJhbXMsIHJlc1swXSk7XG4gICAgICAgICAgbWVudS5pRnJhbWVbJ2xpbmsnXSA9IG9yaWdpbmFsVXJsO1xuICAgICAgICAgIHRoaXMubG9hZElGcmFtZURhdGEobWVudSwgaXRlbSk7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFwiTm8gTGluayBGb3VuZCBBZ2FpbnN0IHRoaXMgbGlua0lkXCIpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1lbHNle1xuICAgICAgdGhpcy5sb2FkSUZyYW1lRGF0YShtZW51LCBpdGVtKTtcbiAgICB9XG4gIH1cblxuICBsb2FkSUZyYW1lRGF0YShtZW51OiBJU2lkZWJhciwgaXRlbTogYW55KSB7XG4gICAgaWYgKG1lbnUpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKElmcmFtZUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IG1lbnVbJ2RhdGEnXT8uaGVhZGVyID8gbWVudVsnZGF0YSddPy5oZWFkZXIgOiBtZW51LnNlY3Rpb24gLFxuICAgICAgICB3aWR0aDogbWVudS5pRnJhbWU/LndpZHRoID8gbWVudS5pRnJhbWUud2lkdGggOiAnOTAlJyxcbiAgICAgICAgaGVpZ2h0OiBtZW51LmlGcmFtZT8uaGVpZ2h0ID8gbWVudS5pRnJhbWUuaGVpZ2h0IDogJzgwJScsXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IG1lbnUuaUZyYW1lPy5saW5rLCBpRnJhbWVJZDogbWVudS5zZWN0aW9uIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2V0RHluYW1pY0RpYWxvZ1JlZihkaWFsb2dSZWYpO1xuICAgICAgdGhpcy5wYWdlTG9nZ2VyU2VydmljZS5zYXZlUGFnZUxvZ2dlckluZm8odGhpcy5yb3V0ZXIudXJsPy5zdWJzdHJpbmcoMSksICdJZnJhbWVDb21wb25lbnQnKTtcblxuICAgICAgdGhpcy5oYW5kbGVBY3RpdmVJdGVtKGl0ZW0pO1xuICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGVcbiAgICAgICAgLnBpcGUodGFrZSgxKSkgLy8gRW1pdCBvbmx5IG9uY2Ugd2hlbiB0aGUgem9uZSBiZWNvbWVzIHN0YWJsZVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBkcmFnZ2FibGVEaWFsb2cobWVudS5sYWJlbClcbiAgICAgICAgfSk7XG4gICAgICBkaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUFjdGl2ZUl0ZW0oaXRlbSwgZmFsc2UpO1xuICAgICAgICBpZiAoZGF0YSAmJiBtZW51Lm9uUmV0dXJuKSB7XG4gICAgICAgICAgbWVudS5vblJldHVybihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2lkZWJhcigpIHtcbiAgICB0aGlzLnRvZ2dsZU1lbnUgPSAhdGhpcy50b2dnbGVNZW51O1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b2dnbGVNZW51JywgSlNPTi5zdHJpbmdpZnkodGhpcy50b2dnbGVNZW51KSk7XG4gIH1cblxuICAvLyBhcHBseSB1c2VyIHJvbGUgcGVybWlzc2lvbnNcbiAgYXBwbHlVc2VyUGVybWlzc2lvbnMoKSB7XG4gICAgaWYgKHRoaXMuc2lkZWJhckl0ZW1zTGlzdCkge1xuICAgICAgbGV0IHRvdGFsSXRlbXM6IG51bWJlciA9IDA7XG4gICAgICBsZXQgaGlkZGVuSXRlbXM6IG51bWJlciA9IDA7XG5cbiAgICAgIHRoaXMuc2lkZWJhckl0ZW1zTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgcGVybWlzc2lvbnM6IGFueSA9IGl0ZW0ucGVybWlzc2lvbnM7XG4gICAgICAgIGxldCBoYXNWYWxpZEVkaXRQZXJtaXNzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgaXRlbS5pZCA9IGluZGV4LnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucyAmJiBwZXJtaXNzaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGVybWlzc2lvbnMuZm9yRWFjaCgocGVybWlzc2lvbjogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgaXNWYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24ucm9sZXMgJiYgcGVybWlzc2lvbi5yb2xlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHBlcm1pc3Npb24ucm9sZXMuZm9yRWFjaCgocm9sZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkICYmIHRoaXMucm9sZXMgJiYgdGhpcy5yb2xlcy5pbmNsdWRlcyhyb2xlKSkge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbi50eXBlID09PSBFUGVybWlzc2lvblR5cGUuVklFVyAmJlxuICAgICAgICAgICAgICAgICFoYXNWYWxpZEVkaXRQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uLnR5cGUgPT09IEVQZXJtaXNzaW9uVHlwZS5FRElUKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgIGhhc1ZhbGlkRWRpdFBlcm1pc3Npb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbEl0ZW1zKys7XG5cbiAgICAgICAgaWYgKGl0ZW0uaGlkZGVuKSB7XG4gICAgICAgICAgaGlkZGVuSXRlbXMrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXNTaWRlYmFySGlkZGVuID0gdG90YWxJdGVtcyA+IDAgJiYgdG90YWxJdGVtcyA9PT0gaGlkZGVuSXRlbXM7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEAgcGFyYW0gbWVudVxuICAgKiBAIHBhcmFtIGl0ZW1cbiAgICogUGFzc2VzIHRoZSBzaWRlYmFyIGFycmF5IHRvIGNvbnRhaW4gYWxsIElTaWRlYmFyIHByb3BlcnR5IGxpa2VcbiAgICogUGFzc2VzIHRoZSBldmVudCBvZiB0aGUgbWVudVxuICAgKi9cblxuICBvcGVuRGlhbG9nKG1lbnU6IElTaWRlYmFyLCBpdGVtOiBhbnksIGNvbnRyb2xLZXkpOiB2b2lkIHtcbiAgICAgIGlmIChjb250cm9sS2V5ICYmIG1lbnUuY29tcG9uZW50KSB7XG4gICAgICAgIC8vb3BlbiBjb21wb25lbnQgb24gbmV3IHRhYlxuICAgICAgICBjb25zdCBtZW51RGF0YTphbnkgPSBtZW51LmRhdGE/LmRhdGEgPyBtZW51LmRhdGEuZGF0YSA6IHt9O1xuICAgICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2Uub3BlbkRpYWxvZ0luTmV3VGFiKG1lbnUuY29tcG9uZW50LCBtZW51RGF0YSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vb3BlbiBjb21wb25lbnQgaW4gZGlhbG9nXG4gICAgICAgIHRoaXMub3BlbkNvbXBvbmVudEluRGlhbG9nKG1lbnUsIGl0ZW0pXG4gICAgICB9XG4gIH1cblxuICAgLy8gc2V0IGRpYWxvZyByZWYgd2hlbiBwb3B1cCBvcGVuXG4gICBzZXREeW5hbWljRGlhbG9nUmVmKHJlZil7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQocmVmKTtcbiAgICBjb25zdCBkeW5hbWljQ29tcG9uZW50ID0gZGlhbG9nUmVmPy5pbnN0YW5jZSBhcyBEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuICAgIGNvbnN0IGFyaWFMYWJlbGxlZEJ5ID0gZHluYW1pY0NvbXBvbmVudC5nZXRBcmlhTGFiZWxsZWRCeSgpO1xuICAgIGR5bmFtaWNDb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkgPSAoKSA9PiBhcmlhTGFiZWxsZWRCeTtcbiAgfVxuXG4gIGludGVyY2VwdERpYWxvZ0Nsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5ncmlkU2VydmljZS5jb2x1bW5Gb2N1c2VkT3V0IHx8IHRoaXMuZm9ybVNlcnZpY2UuZmllbGRGb2N1c2VkT3V0KSB7XG4gICAgICBpZiAoY29uZmlybShcIllvdSB3aWxsIGxvc2UgY2hhbmdlcyBub3Qgc2F2ZWQgb24gcGFnZS4gV291bGQgeW91IGxpa2UgdG8gY29udGludWU/XCIpID09IHRydWUpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLmNvbHVtbkZvY3VzZWRPdXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5maWVsZEZvY3VzZWRPdXQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG4gICAgXG4gIG9wZW5Db21wb25lbnRJbkRpYWxvZyhtZW51OklTaWRlYmFyLCBpdGVtOmFueSl7XG4gICAgY29uc3QgbWVudURhdGE6YW55ID0gbWVudS5kYXRhID8gbWVudS5kYXRhIDogbWVudTtcbiAgICBtZW51RGF0YS5zdHlsZSA9e2JhY2tncm91bmQ6ICcjZmZmJ31cbiAgICBpZihtZW51RGF0YS5zY3JvbGxhYmxlID09IGZhbHNlKXtcbiAgICAgIG1lbnVEYXRhLnN0eWxlQ2xhc3MgPSBcInNtYWxsLW1vZGVsXCI7XG4gICAgfWVsc2V7XG4gICAgICBtZW51RGF0YS5zdHlsZUNsYXNzID0gXCJzaWRlYmFyLWRhdGVwaWNrZXJcIjtcbiAgICB9XG4gICAgaWYgKG1lbnUuY29tcG9uZW50KSB7XG4gICAgICBcbiAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4obWVudS5jb21wb25lbnQsIG1lbnVEYXRhKTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlID0gdGhpcy5pbnRlcmNlcHREaWFsb2dDbG9zZS5iaW5kKHRoaXMpO1xuICAgICAgdGhpcy5zZXREeW5hbWljRGlhbG9nUmVmKHRoaXMuZGlhbG9nUmVmKTtcbiAgICAgIHRoaXMucGFnZUxvZ2dlclNlcnZpY2Uuc2F2ZVBhZ2VMb2dnZXJJbmZvKHRoaXMucm91dGVyLnVybD8uc3Vic3RyaW5nKDEpLCAgbWVudS5jb21wb25lbnQ/Lm5hbWUpO1xuICAgICAgdGhpcy5oYW5kbGVBY3RpdmVJdGVtKGl0ZW0pO1xuICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGVcbiAgICAgICAgLnBpcGUodGFrZSgxKSkgLy8gRW1pdCBvbmx5IG9uY2Ugd2hlbiB0aGUgem9uZSBiZWNvbWVzIHN0YWJsZVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBkcmFnZ2FibGVEaWFsb2cobWVudS5sYWJlbClcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQWN0aXZlSXRlbShpdGVtLCBmYWxzZSk7XG4gICAgICAgIGlmIChkYXRhICYmIG1lbnUub25SZXR1cm4pIHtcbiAgICAgICAgICBtZW51Lm9uUmV0dXJuKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQCBwYXJhbSB4XG4gICAqIEAgcGFyYW0gaXRlbVxuICAgKiBQYXNzZXMgdGhlIHNpZGViYXIgYXJyYXkgdG8gY29udGFpbiBhbGwgSVNpZGViYXIgcHJvcGVydHkgbGlrZVxuICAgKiBQYXNzZXMgdGhlIGV2ZW50IG9mIHRoZSBtZW51XG4gICAqL1xuXG4gIG5hdmlnYXRlVG9TZWN0aW9uKHg6IElTaWRlYmFyLCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygneDogJywgeCk7XG4gICAgY29uc29sZS5sb2coJ2l0ZW06ICcsIGl0ZW0pO1xuICAgIGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmZvcm1TZWN0aW9ucz8ubGVuZ3RoID4gMCAmJiB4LnNlY3Rpb24pIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtLmZvcm1TZWN0aW9ucy5maW5kSW5kZXgoKHNlY3Rpb24pID0+IHNlY3Rpb24uY2xhc3MgJiYgc2VjdGlvbi5jbGFzcyA9PT0geC5zZWN0aW9uKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuZm9ybS5mb3JtU2VjdGlvbnNbaW5kZXhdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbnN0YW5jZT8uc2VsZWN0Um9vdEVsZW1lbnQoYC4ke3guc2VjdGlvbj8ucmVwbGFjZSgvXFxzL2csIFwiXCIpfWAsIHRydWUpPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB0aGlzLmhhbmRsZUFjdGl2ZUl0ZW0oaXRlbSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1cbiAgICogUGFzc2VzIHRoZSBldmVudCBvZiB0aGUgbWVudVxuICAgKi9cbiAgaGFuZGxlQWN0aXZlSXRlbSh7IGljb24gfTogYW55LCBjbG9zZURpYWxvZzogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVJdGVtcyA9IHRoaXMubWVudUl0ZW1zLm1hcCgoeCkgPT5cbiAgICAgIHguaWNvbiA9PT0gaWNvbiAmJiBjbG9zZURpYWxvZ1xuICAgICAgICA/IHsgLi4ueCwgc3R5bGVDbGFzczogJ2FjdGl2ZS1pY29uJyB9XG4gICAgICAgIDoge1xuICAgICAgICAgIC4uLngsXG4gICAgICAgICAgc3R5bGVDbGFzczogJycsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTllY2VmJyxcbiAgICAgICAgICAgIGRpc3BsYXk6IHguc3R5bGU/LmRpc3BsYXkgPT09ICdub25lJyA/ICdub25lJyA6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xpY2tlZE1lbnUobWVudTogTWVudUl0ZW1bXSkge1xuICAgIG1lbnUubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IG1hdGNoZWRJdGVtOiBhbnkgPSB0aGlzLnNpZGViYXJJdGVtc0xpc3QuZmluZCgoeCkgPT4geC5pZCA9PSBpdGVtLmlkKTtcbiAgICAgIGlmIChcbiAgICAgICAgaXRlbS5zdHlsZUNsYXNzID09PSAnYWN0aXZlLWljb24nICYmXG4gICAgICAgIG1hdGNoZWRJdGVtICYmXG4gICAgICAgIG1hdGNoZWRJdGVtLm9uQ2xpY2tcbiAgICAgICkge1xuICAgICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2VcbiAgICAgICAgICAuYWRkSHlwZXJsaW5rcyhtYXRjaGVkSXRlbSlcbiAgICAgICAgICAudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1hdGNoZWRJdGVtLmxpbmtJZCkge1xuICAgICAgICAgICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2Uuc2V0U2lkZWJhckxpbmsoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFySXRlbXNMaXN0XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtYXRjaGVkSXRlbS5vbkNsaWNrKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxufSIsIjxzcGFuXG4gICpuZ0lmPVwiIWlzU2lkZWJhckhpZGRlbiAmJiBzaWRlYmFySXRlbXNMaXN0ICYmIHNpZGViYXJJdGVtc0xpc3QubGVuZ3RoID4gMFwiXG4+XG48c3BhbiAqbmdJZj1cIiFuYXZIaWRkZW5cIj5cbiAgPG5hdlxuICAqbmdJZj1cIiFjb2xsYXBzZVNpZGViYXJcIlxuICBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIHAtMCBncm93LTFcIlxuICBbbmdDbGFzc109XCJ0b2dnbGVNZW51ID8gJ2hpZGUtbmF2JyA6ICcnXCJcbiAgPlxuICA8YnV0dG9uIGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKClcIj5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJwaSBwaS1mdyB0b2dnbGUtaWNvblwiXG4gICAgICBbbmdDbGFzc109XCJ0b2dnbGVNZW51ID8gJ3BpLWNoZXZyb24tbGVmdCcgOiAncGktY2hldnJvbi1yaWdodCdcIlxuICAgID48L2k+XG4gICAgPHNwYW4+e3sgbWVudVRpdGxlIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPHAtcGFuZWxNZW51IFttb2RlbF09XCJtZW51SXRlbXNcIiAoY2xpY2spPVwiY2xpY2tlZE1lbnUobWVudUl0ZW1zKVwiPjwvcC1wYW5lbE1lbnU+XG4gIDwvbmF2PlxuPC9zcGFuPlxuICBcbiAgPHNwYW4gKm5nSWY9XCJjb2xsYXBzZVNpZGViYXJcIiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIHAtMCBncm93LTFcIlxuICAgIGNsYXNzPSdoaWRlLW5hdic+XG4gICAgPHAtcGFuZWxNZW51IFttb2RlbF09XCJtZW51SXRlbXNcIiAoY2xpY2spPVwiY2xpY2tlZE1lbnUobWVudUl0ZW1zKVwiPjwvcC1wYW5lbE1lbnU+XG4gIDwvc3Bhbj5cbjwvc3Bhbj4iXX0=
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFJdEYsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXRDLE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsSUFBYSxjQUFjLENBQUMsR0FBUTtRQUNsQyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEIsUUFBUSxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBQ0QsSUFBYSxZQUFZLENBQUMsZUFBb0I7UUFDNUMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxXQUFXLEdBQVUsRUFBRSxDQUFDO1lBQzVCLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztnQkFDNUIsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUs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QUFDLGdCQUFnQixDQUN0QixDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzNCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7aUlBelhVLGdCQUFnQjtxSEFBaEIsZ0JBQWdCLHVPQ3RCN0IsbXpCQXdCTzs7MkZERk0sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFlBQVk7d1ZBVWIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sY0FBYztzQkFBMUIsS0FBSztnQkFLTyxZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uSW5pdCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgRVNpZGViYXJBY3Rpb24sIElTaWRlYmFyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NpZGViYXIubW9kZWwnO1xuaW1wb3J0IHsgRVBlcm1pc3Npb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEh5cGVybGlua1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9oeXBlcmxpbmsuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdlTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vaWZyYW1lL2lmcmFtZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBkcmFnZ2FibGVEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUR5bmFtaWNGb3JtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1zaWRlYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHRvZ2dsZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbG9hZENvbXBvbmVudE5hbWUgPSAnJztcbiAgZ2xvYmFsTGlzdGVuRnVuYzogRnVuY3Rpb247XG4gIGRpYWxvZ1JlZjogYW55O1xuICBmb3JtOiBJRHluYW1pY0Zvcm07XG4gIEBJbnB1dCgpIG5hdkhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2xsYXBzZVNpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudVRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBhY3RpdmVUZXN0TW9kZSh2YWw6IGFueSkge1xuICAgIGlmICh2YWwgPT09IHRydWUpIHtcbiAgICAgIGRlYnVnZ2VyO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBzZXQgc2lkZWJhckl0ZW1zKG5ld1NpZGViYXJJdGVtczogYW55KSB7XG4gICAgaWYgKG5ld1NpZGViYXJJdGVtcykge1xuICAgICAgbGV0IGxlZnRTaWRlQmFyOiBhbnlbXSA9IFtdO1xuICAgICAgaWYgKG5ld1NpZGViYXJJdGVtcy5mb3JtU2VjdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5mb3JtID0gbmV3U2lkZWJhckl0ZW1zO1xuICAgICAgICBuZXdTaWRlYmFySXRlbXMuZm9ybVNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoc2VjdGlvbiAmJiBzZWN0aW9uPy5pY29uKSB7XG4gICAgICAgICAgICBsZWZ0U2lkZUJhci5wdXNoKHtcbiAgICAgICAgICAgICAgaWNvbjogc2VjdGlvbj8uaWNvbixcbiAgICAgICAgICAgICAgc2VjdGlvbjogc2VjdGlvbj8uY2xhc3MsXG4gICAgICAgICAgICAgIHRvb2x0aXA6IHNlY3Rpb24/Lm5hbWUsXG4gICAgICAgICAgICAgIGFjdGlvbjogRVNpZGViYXJBY3Rpb24uTkFWSUdBVElPTixcbiAgICAgICAgICAgICAgaGlkZGVuOiBzZWN0aW9uPy5oaWRkZW4sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNpZGViYXJJdGVtc0xpc3QgPSBsZWZ0U2lkZUJhcj8ubGVuZ3RoID4gMCA/IGxlZnRTaWRlQmFyIDogbmV3U2lkZWJhckl0ZW1zO1xuICAgICAgdGhpcy5pbml0aWFsaXplU2lkZUJhcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaWRlYmFySXRlbXNMaXN0OiBJU2lkZWJhcltdID0gW107XG4gIHB1YmxpYyBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgcm9sZXM6IHN0cmluZ1tdID0gW107XG4gIGlzU2lkZWJhckhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5zdGFuY2U6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHBhZ2VMb2dnZXJTZXJ2aWNlOiBQYWdlTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGh5cGVybGlua1NlcnZpY2U6IEh5cGVybGlua1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFRvU2VjdGlvbigpO1xuICB9XG5cbiAgc2Nyb2xsVG9TZWN0aW9uKCk6IHZvaWQge1xuICAgIGxldCBzZWN0aW9uTmFtZTtcbiAgICBsZXQgcGFnZVVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICBpZiAocGFnZVVybC5pbmNsdWRlcygnc2VjdGlvbj0nKSkge1xuICAgICAgcGFnZVVybCA9IHBhZ2VVcmwuc3BsaXQoJ3NlY3Rpb249JylbMV07XG4gICAgICBzZWN0aW9uTmFtZSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWdlVXJsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uZm9ybVNlY3Rpb25zPy5sZW5ndGggPiAwICYmIHNlY3Rpb25OYW1lKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZm9ybS5mb3JtU2VjdGlvbnMuZmluZEluZGV4KChzZWN0aW9uKSA9PiBzZWN0aW9uLm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb25OYW1lPy50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChpbmRleCA+IC0xICYmIHRoaXMuZm9ybS5mb3JtU2VjdGlvbnNbaW5kZXhdPy5jbGFzcykge1xuICAgICAgICB0aGlzLmZvcm0uZm9ybVNlY3Rpb25zW2luZGV4XS5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2U/LnNlbGVjdFJvb3RFbGVtZW50KGAuJHt0aGlzLmZvcm0uZm9ybVNlY3Rpb25zW2luZGV4XS5jbGFzcz8ucmVwbGFjZSgvXFxzL2csIFwiXCIpfWAsIHRydWUpPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaW5pdGlhbGl6ZVNpZGVCYXIoKSB7XG4gICAgdGhpcy5yb2xlcyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlclJvbGVzKCk7XG4gICAgLy8gYXBwbHkgdXNlciByb2xlIHBlcm1pc3Npb25zXG4gICAgdGhpcy5hcHBseVVzZXJQZXJtaXNzaW9ucygpO1xuICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5zaWRlYmFySXRlbXNMaXN0Lm1hcCgoeDogYW55KSA9PiAoe1xuICAgICAgbGFiZWw6IHgubGFiZWwsXG4gICAgICBpY29uOiB4Lmljb24sXG4gICAgICBpZDogeC5pZCxcbiAgICAgIHNlY3Rpb246IHguc2VjdGlvbixcbiAgICAgIGV4cGFuZGVkOiB4LmV4cGFuZGVkLFxuICAgICAgYWN0aW9uOiB4LmFjdGlvbixcbiAgICAgIGl0ZW1zOiB4Lml0ZW1zICYmIHguaXRlbXMubGVuZ3RoID4gMCA/IHRoaXMuc2V0TWVudUl0ZW1zKHgpIDogW10sXG4gICAgICB0aXRsZTogdGhpcy5zZXRNZW51VGl0bGUoeCksXG4gICAgICBjb21tYW5kOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoeC5hY3Rpb24gJiYgeC5hY3Rpb24gPT09IEVTaWRlYmFyQWN0aW9uLk5BVklHQVRJT04pIHtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9TZWN0aW9uKHgsIGV2ZW50Lml0ZW0pO1xuICAgICAgICB9IGVsc2UgaWYgKHguYWN0aW9uICYmIHguYWN0aW9uID09PSBFU2lkZWJhckFjdGlvbi5PUEVORElBTE9HKSB7XG4gICAgICAgICAgdGhpcy5vcGVuRGlhbG9nKHgsIGV2ZW50Lml0ZW0sIGV2ZW50Py5vcmlnaW5hbEV2ZW50Py5jdHJsS2V5KTtcbiAgICAgICAgfSBlbHNlIGlmICh4LmFjdGlvbiAmJiB4LmFjdGlvbiA9PT0gRVNpZGViYXJBY3Rpb24uSUZSQU1FKSB7XG4gICAgICAgICAgdGhpcy5sb2FkSUZyYW1lKHgsIGV2ZW50Lml0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aXZlSXRlbShldmVudC5pdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGJvcmRlckJvdHRvbTogJycsIC8vICcxcHggc29saWQgI2U5ZWNlZicsXG4gICAgICAgIGRpc3BsYXk6IHguaGlkZGVuID8gJ25vbmUnIDogJycsXG4gICAgICB9LFxuICAgICAgb25DbGljazogeC5vbkNsaWNrLFxuICAgICAgb25SZXR1cm46IHgub25SZXR1cm4sXG4gICAgICBkaXNhYmxlZDogeC5kaXNhYmxlZCxcbiAgICB9KSk7XG4gIH1cblxuICBzZXRNZW51VGl0bGUoeDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4geC50b29sdGlwID8geC50b29sdGlwIDogIXgubGFiZWwgPyB4LnNlY3Rpb24gOiAnJztcbiAgfVxuXG4gIHNldE1lbnVJdGVtcyh4OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB4Lml0ZW1zLm1hcCgobWVudTogYW55KSA9PiAoe1xuICAgICAgbGFiZWw6IG1lbnUubGFiZWwsXG4gICAgICBpY29uOiBtZW51Lmljb24sXG4gICAgICBpZDogbWVudS5pZCxcbiAgICAgIHNlY3Rpb246IG1lbnUuc2VjdGlvbixcbiAgICAgIGV4cGFuZGVkOiBtZW51LmV4cGFuZGVkLFxuICAgICAgYWN0aW9uOiBtZW51LmFjdGlvbixcbiAgICAgIHRpdGxlOiB0aGlzLnNldE1lbnVUaXRsZSh4KSxcbiAgICAgIGNvbW1hbmQ6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmICh4LmFjdGlvbiAmJiB4LmFjdGlvbiA9PT0gRVNpZGViYXJBY3Rpb24uTkFWSUdBVElPTikge1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1NlY3Rpb24obWVudSwgZXZlbnQuaXRlbSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVudS5hY3Rpb24gJiYgbWVudS5hY3Rpb24gPT09IEVTaWRlYmFyQWN0aW9uLk9QRU5ESUFMT0cpIHtcbiAgICAgICAgICB0aGlzLm9wZW5EaWFsb2cobWVudSwgZXZlbnQuaXRlbSwgZXZlbnQ/Lm9yaWdpbmFsRXZlbnQ/LmN0cmxLZXkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1lbnUuYWN0aW9uICYmIG1lbnUuYWN0aW9uID09PSBFU2lkZWJhckFjdGlvbi5JRlJBTUUpIHtcbiAgICAgICAgICB0aGlzLmxvYWRJRnJhbWUobWVudSwgeCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmVJdGVtKGV2ZW50Lml0ZW0pO1xuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGJvcmRlckJvdHRvbTogJycsIC8vICcxcHggc29saWQgI2U5ZWNlZicsXG4gICAgICAgIGRpc3BsYXk6IG1lbnUuaGlkZGVuID8gJ25vbmUnIDogJycsXG4gICAgICB9LFxuICAgICAgb25DbGljazogbWVudS5vbkNsaWNrLFxuICAgICAgb25SZXR1cm46IG1lbnUub25SZXR1cm4sXG4gICAgICBkaXNhYmxlZDogbWVudS5kaXNhYmxlZCxcbiAgICB9KSlcbiAgfVxuXG4gIGxvYWRJRnJhbWUobWVudTogYW55LCBpdGVtOiBhbnkpIHtcbiAgICBpZihtZW51LmlGcmFtZS5saW5rSWQpe1xuICAgICAgdGhpcy5oeXBlcmxpbmtTZXJ2aWNlLmJ1aWxkVXJsKG1lbnUuaUZyYW1lLmxpbmtJZCkudGhlbigocmVzKT0+e1xuICAgICAgICBpZiAocmVzKXtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbFVybCA9IHRoaXMuaHlwZXJsaW5rU2VydmljZS5zZXRVcmwobWVudT8ucGFyYW1zLCByZXNbMF0pO1xuICAgICAgICAgIG1lbnUuaUZyYW1lWydsaW5rJ10gPSBvcmlnaW5hbFVybDtcbiAgICAgICAgICB0aGlzLmxvYWRJRnJhbWVEYXRhKG1lbnUsIGl0ZW0pO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcIk5vIExpbmsgRm91bmQgQWdhaW5zdCB0aGlzIGxpbmtJZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubG9hZElGcmFtZURhdGEobWVudSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgbG9hZElGcmFtZURhdGEobWVudTogSVNpZGViYXIsIGl0ZW06IGFueSkge1xuICAgIGlmIChtZW51KSB7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihJZnJhbWVDb21wb25lbnQsIHtcbiAgICAgICAgaGVhZGVyOiBtZW51WydkYXRhJ10/LmhlYWRlciA/IG1lbnVbJ2RhdGEnXT8uaGVhZGVyIDogbWVudS5zZWN0aW9uICxcbiAgICAgICAgd2lkdGg6IG1lbnUuaUZyYW1lPy53aWR0aCA/IG1lbnUuaUZyYW1lLndpZHRoIDogJzkwJScsXG4gICAgICAgIGhlaWdodDogbWVudS5pRnJhbWU/LmhlaWdodCA/IG1lbnUuaUZyYW1lLmhlaWdodCA6ICc4MCUnLFxuICAgICAgICBkYXRhOiB7IHZhbHVlOiBtZW51LmlGcmFtZT8ubGluaywgaUZyYW1lSWQ6IG1lbnUuc2VjdGlvbiB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnNldER5bmFtaWNEaWFsb2dSZWYoZGlhbG9nUmVmKTtcbiAgICAgIHRoaXMucGFnZUxvZ2dlclNlcnZpY2Uuc2F2ZVBhZ2VMb2dnZXJJbmZvKHRoaXMucm91dGVyLnVybD8uc3Vic3RyaW5nKDEpLCAnSWZyYW1lQ29tcG9uZW50Jyk7XG5cbiAgICAgIHRoaXMuaGFuZGxlQWN0aXZlSXRlbShpdGVtKTtcbiAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgIC5waXBlKHRha2UoMSkpIC8vIEVtaXQgb25seSBvbmNlIHdoZW4gdGhlIHpvbmUgYmVjb21lcyBzdGFibGVcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZHJhZ2dhYmxlRGlhbG9nKG1lbnUubGFiZWwpXG4gICAgICAgIH0pO1xuICAgICAgZGlhbG9nUmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmVJdGVtKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgaWYgKGRhdGEgJiYgbWVudS5vblJldHVybikge1xuICAgICAgICAgIG1lbnUub25SZXR1cm4oZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXIoKSB7XG4gICAgdGhpcy50b2dnbGVNZW51ID0gIXRoaXMudG9nZ2xlTWVudTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9nZ2xlTWVudScsIEpTT04uc3RyaW5naWZ5KHRoaXMudG9nZ2xlTWVudSkpO1xuICB9XG5cbiAgLy8gYXBwbHkgdXNlciByb2xlIHBlcm1pc3Npb25zXG4gIGFwcGx5VXNlclBlcm1pc3Npb25zKCkge1xuICAgIGlmICh0aGlzLnNpZGViYXJJdGVtc0xpc3QpIHtcbiAgICAgIGxldCB0b3RhbEl0ZW1zOiBudW1iZXIgPSAwO1xuICAgICAgbGV0IGhpZGRlbkl0ZW1zOiBudW1iZXIgPSAwO1xuXG4gICAgICB0aGlzLnNpZGViYXJJdGVtc0xpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgbGV0IHBlcm1pc3Npb25zOiBhbnkgPSBpdGVtLnBlcm1pc3Npb25zO1xuICAgICAgICBsZXQgaGFzVmFsaWRFZGl0UGVybWlzc2lvbiA9IGZhbHNlO1xuXG4gICAgICAgIGl0ZW0uaWQgPSBpbmRleC50b1N0cmluZygpO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMgJiYgcGVybWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHBlcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb246IGFueSkgPT4ge1xuICAgICAgICAgICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uLnJvbGVzICYmIHBlcm1pc3Npb24ucm9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBwZXJtaXNzaW9uLnJvbGVzLmZvckVhY2goKHJvbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZCAmJiB0aGlzLnJvbGVzICYmIHRoaXMucm9sZXMuaW5jbHVkZXMocm9sZSkpIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb24udHlwZSA9PT0gRVBlcm1pc3Npb25UeXBlLlZJRVcgJiZcbiAgICAgICAgICAgICAgICAhaGFzVmFsaWRFZGl0UGVybWlzc2lvblxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocGVybWlzc2lvbi50eXBlID09PSBFUGVybWlzc2lvblR5cGUuRURJVCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICBoYXNWYWxpZEVkaXRQZXJtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdG90YWxJdGVtcysrO1xuXG4gICAgICAgIGlmIChpdGVtLmhpZGRlbikge1xuICAgICAgICAgIGhpZGRlbkl0ZW1zKys7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzU2lkZWJhckhpZGRlbiA9IHRvdGFsSXRlbXMgPiAwICYmIHRvdGFsSXRlbXMgPT09IGhpZGRlbkl0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAIHBhcmFtIG1lbnVcbiAgICogQCBwYXJhbSBpdGVtXG4gICAqIFBhc3NlcyB0aGUgc2lkZWJhciBhcnJheSB0byBjb250YWluIGFsbCBJU2lkZWJhciBwcm9wZXJ0eSBsaWtlXG4gICAqIFBhc3NlcyB0aGUgZXZlbnQgb2YgdGhlIG1lbnVcbiAgICovXG5cbiAgb3BlbkRpYWxvZyhtZW51OiBJU2lkZWJhciwgaXRlbTogYW55LCBjb250cm9sS2V5KTogdm9pZCB7XG4gICAgICBpZiAoY29udHJvbEtleSAmJiBtZW51LmNvbXBvbmVudCkge1xuICAgICAgICAvL29wZW4gY29tcG9uZW50IG9uIG5ldyB0YWJcbiAgICAgICAgY29uc3QgbWVudURhdGE6YW55ID0gbWVudS5kYXRhPy5kYXRhID8gbWVudS5kYXRhLmRhdGEgOiB7fTtcbiAgICAgICAgdGhpcy5oeXBlcmxpbmtTZXJ2aWNlLm9wZW5EaWFsb2dJbk5ld1RhYihtZW51LmNvbXBvbmVudCwgbWVudURhdGEpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvL29wZW4gY29tcG9uZW50IGluIGRpYWxvZ1xuICAgICAgICB0aGlzLm9wZW5Db21wb25lbnRJbkRpYWxvZyhtZW51LCBpdGVtKVxuICAgICAgfVxuICB9XG5cbiAgIC8vIHNldCBkaWFsb2cgcmVmIHdoZW4gcG9wdXAgb3BlblxuICAgc2V0RHluYW1pY0RpYWxvZ1JlZihyZWYpe1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb21wb25lbnRSZWZNYXAuZ2V0KHJlZik7XG4gICAgY29uc3QgZHluYW1pY0NvbXBvbmVudCA9IGRpYWxvZ1JlZj8uaW5zdGFuY2UgYXMgRHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcbiAgICBjb25zdCBhcmlhTGFiZWxsZWRCeSA9IGR5bmFtaWNDb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcbiAgICBkeW5hbWljQ29tcG9uZW50LmdldEFyaWFMYWJlbGxlZEJ5ID0gKCkgPT4gYXJpYUxhYmVsbGVkQnk7XG4gIH1cblxuICBpbnRlcmNlcHREaWFsb2dDbG9zZShldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZ3JpZFNlcnZpY2UuY29sdW1uRm9jdXNlZE91dCB8fCB0aGlzLmZvcm1TZXJ2aWNlLmZpZWxkRm9jdXNlZE91dCkge1xuICAgICAgaWYgKGNvbmZpcm0oXCJZb3Ugd2lsbCBsb3NlIGNoYW5nZXMgbm90IHNhdmVkIG9uIHBhZ2UuIFdvdWxkIHlvdSBsaWtlIHRvIGNvbnRpbnVlP1wiKSA9PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5jb2x1bW5Gb2N1c2VkT3V0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZmllbGRGb2N1c2VkT3V0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuICAgIFxuICBvcGVuQ29tcG9uZW50SW5EaWFsb2cobWVudTpJU2lkZWJhciwgaXRlbTphbnkpe1xuICAgIGNvbnN0IG1lbnVEYXRhOmFueSA9IG1lbnUuZGF0YSA/IG1lbnUuZGF0YSA6IG1lbnU7XG4gICAgbWVudURhdGEuc3R5bGUgPXtiYWNrZ3JvdW5kOiAnI2ZmZid9XG4gICAgaWYobWVudURhdGEuc2Nyb2xsYWJsZSA9PSBmYWxzZSl7XG4gICAgICBtZW51RGF0YS5zdHlsZUNsYXNzID0gXCJzbWFsbC1tb2RlbFwiO1xuICAgIH1lbHNle1xuICAgICAgbWVudURhdGEuc3R5bGVDbGFzcyA9IFwic2lkZWJhci1kYXRlcGlja2VyXCI7XG4gICAgfVxuICAgIGlmIChtZW51LmNvbXBvbmVudCkge1xuICAgICAgXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG1lbnUuY29tcG9uZW50LCBtZW51RGF0YSk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSA9IHRoaXMuaW50ZXJjZXB0RGlhbG9nQ2xvc2UuYmluZCh0aGlzKTtcbiAgICAgIHRoaXMuc2V0RHluYW1pY0RpYWxvZ1JlZih0aGlzLmRpYWxvZ1JlZik7XG4gICAgICB0aGlzLnBhZ2VMb2dnZXJTZXJ2aWNlLnNhdmVQYWdlTG9nZ2VySW5mbyh0aGlzLnJvdXRlci51cmw/LnN1YnN0cmluZygxKSwgIG1lbnUuY29tcG9uZW50Py5uYW1lKTtcbiAgICAgIHRoaXMuaGFuZGxlQWN0aXZlSXRlbShpdGVtKTtcbiAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgIC5waXBlKHRha2UoMSkpIC8vIEVtaXQgb25seSBvbmNlIHdoZW4gdGhlIHpvbmUgYmVjb21lcyBzdGFibGVcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZHJhZ2dhYmxlRGlhbG9nKG1lbnUubGFiZWwpXG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUFjdGl2ZUl0ZW0oaXRlbSwgZmFsc2UpO1xuICAgICAgICBpZiAoZGF0YSAmJiBtZW51Lm9uUmV0dXJuKSB7XG4gICAgICAgICAgbWVudS5vblJldHVybihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEAgcGFyYW0geFxuICAgKiBAIHBhcmFtIGl0ZW1cbiAgICogUGFzc2VzIHRoZSBzaWRlYmFyIGFycmF5IHRvIGNvbnRhaW4gYWxsIElTaWRlYmFyIHByb3BlcnR5IGxpa2VcbiAgICogUGFzc2VzIHRoZSBldmVudCBvZiB0aGUgbWVudVxuICAgKi9cblxuICBuYXZpZ2F0ZVRvU2VjdGlvbih4OiBJU2lkZWJhciwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uZm9ybVNlY3Rpb25zPy5sZW5ndGggPiAwICYmIHguc2VjdGlvbikge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvcm0uZm9ybVNlY3Rpb25zLmZpbmRJbmRleCgoc2VjdGlvbikgPT4gc2VjdGlvbi5jbGFzcyAmJiBzZWN0aW9uLmNsYXNzID09PSB4LnNlY3Rpb24pO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5mb3JtLmZvcm1TZWN0aW9uc1tpbmRleF0uZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmluc3RhbmNlPy5zZWxlY3RSb290RWxlbWVudChgLiR7eC5zZWN0aW9uPy5yZXBsYWNlKC9cXHMvZywgXCJcIil9YCwgdHJ1ZSk/LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIHRoaXMuaGFuZGxlQWN0aXZlSXRlbShpdGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbVxuICAgKiBQYXNzZXMgdGhlIGV2ZW50IG9mIHRoZSBtZW51XG4gICAqL1xuICBoYW5kbGVBY3RpdmVJdGVtKHsgaWNvbiB9OiBhbnksIGNsb3NlRGlhbG9nOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5tZW51SXRlbXMubWFwKCh4KSA9PlxuICAgICAgeC5pY29uID09PSBpY29uICYmIGNsb3NlRGlhbG9nXG4gICAgICAgID8geyAuLi54LCBzdHlsZUNsYXNzOiAnYWN0aXZlLWljb24nIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICBzdHlsZUNsYXNzOiAnJyxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlOWVjZWYnLFxuICAgICAgICAgICAgZGlzcGxheTogeC5zdHlsZT8uZGlzcGxheSA9PT0gJ25vbmUnID8gJ25vbmUnIDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICk7XG4gIH1cblxuICBjbGlja2VkTWVudShtZW51OiBNZW51SXRlbVtdKSB7XG4gICAgbWVudS5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hlZEl0ZW06IGFueSA9IHRoaXMuc2lkZWJhckl0ZW1zTGlzdC5maW5kKCh4KSA9PiB4LmlkID09IGl0ZW0uaWQpO1xuICAgICAgaWYgKFxuICAgICAgICBpdGVtLnN0eWxlQ2xhc3MgPT09ICdhY3RpdmUtaWNvbicgJiZcbiAgICAgICAgbWF0Y2hlZEl0ZW0gJiZcbiAgICAgICAgbWF0Y2hlZEl0ZW0ub25DbGlja1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaHlwZXJsaW5rU2VydmljZVxuICAgICAgICAgIC5hZGRIeXBlcmxpbmtzKG1hdGNoZWRJdGVtKVxuICAgICAgICAgIC50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAobWF0Y2hlZEl0ZW0ubGlua0lkKSB7XG4gICAgICAgICAgICAgIHRoaXMuaHlwZXJsaW5rU2VydmljZS5zZXRTaWRlYmFyTGluayhcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJJdGVtc0xpc3RcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1hdGNoZWRJdGVtLm9uQ2xpY2soaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgXG59IiwiPHNwYW5cbiAgKm5nSWY9XCIhaXNTaWRlYmFySGlkZGVuICYmIHNpZGViYXJJdGVtc0xpc3QgJiYgc2lkZWJhckl0ZW1zTGlzdC5sZW5ndGggPiAwXCJcbj5cbjxzcGFuICpuZ0lmPVwiIW5hdkhpZGRlblwiPlxuICA8bmF2XG4gICpuZ0lmPVwiIWNvbGxhcHNlU2lkZWJhclwiXG4gIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgcC0wIGdyb3ctMVwiXG4gIFtuZ0NsYXNzXT1cInRvZ2dsZU1lbnUgPyAnaGlkZS1uYXYnIDogJydcIlxuICA+XG4gIDxidXR0b24gY2xhc3M9XCJ0b2dnbGUtYnRuXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGViYXIoKVwiPlxuICAgIDxpXG4gICAgICBjbGFzcz1cInBpIHBpLWZ3IHRvZ2dsZS1pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cInRvZ2dsZU1lbnUgPyAncGktY2hldnJvbi1sZWZ0JyA6ICdwaS1jaGV2cm9uLXJpZ2h0J1wiXG4gICAgPjwvaT5cbiAgICA8c3Bhbj57eyBtZW51VGl0bGUgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8cC1wYW5lbE1lbnUgW21vZGVsXT1cIm1lbnVJdGVtc1wiIChjbGljayk9XCJjbGlja2VkTWVudShtZW51SXRlbXMpXCI+PC9wLXBhbmVsTWVudT5cbiAgPC9uYXY+XG48L3NwYW4+XG4gIFxuICA8c3BhbiAqbmdJZj1cImNvbGxhcHNlU2lkZWJhclwiIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgcC0wIGdyb3ctMVwiXG4gICAgY2xhc3M9J2hpZGUtbmF2Jz5cbiAgICA8cC1wYW5lbE1lbnUgW21vZGVsXT1cIm1lbnVJdGVtc1wiIChjbGljayk9XCJjbGlja2VkTWVudShtZW51SXRlbXMpXCI+PC9wLXBhbmVsTWVudT5cbiAgPC9zcGFuPlxuPC9zcGFuPiJdfQ==
@@ -10945,19 +10945,23 @@ class SidebarComponent {
10945
10945
  this.scrollToSection();
10946
10946
  }
10947
10947
  scrollToSection() {
10948
- let decodedPageUrl;
10948
+ let sectionName;
10949
10949
  let pageUrl = this.router.url;
10950
10950
  if (pageUrl.includes('section=')) {
10951
10951
  pageUrl = pageUrl.split('section=')[1];
10952
- decodedPageUrl = decodeURIComponent(pageUrl);
10952
+ sectionName = decodeURIComponent(pageUrl);
10953
10953
  }
10954
- if (this.form && this.form.formSections?.length > 0 && decodedPageUrl) {
10955
- const index = this.form.formSections.findIndex((section) => section.name && section.name.toLowerCase() === decodedPageUrl.toLowerCase());
10956
- if (index > -1) {
10954
+ if (this.form && this.form.formSections?.length > 0 && sectionName) {
10955
+ const index = this.form.formSections.findIndex((section) => section.name?.toLowerCase() === sectionName?.toLowerCase());
10956
+ if (index > -1 && this.form.formSections[index]?.class) {
10957
10957
  this.form.formSections[index].expanded = true;
10958
+ this.ngZone.onStable
10959
+ .pipe(take(1))
10960
+ .subscribe(() => {
10961
+ this.instance?.selectRootElement(`.${this.form.formSections[index].class?.replace(/\s/g, "")}`, true)?.scrollIntoView({ behavior: 'smooth' });
10962
+ });
10958
10963
  }
10959
10964
  }
10960
- this.instance?.selectRootElement(`.${decodedPageUrl?.replace(/\s/g, "")}`, true)?.scrollIntoView({ behavior: 'smooth' });
10961
10965
  }
10962
10966
  initializeSideBar() {
10963
10967
  this.roles = this.authService.getUserRoles();
@@ -11194,8 +11198,6 @@ class SidebarComponent {
11194
11198
  * Passes the event of the menu
11195
11199
  */
11196
11200
  navigateToSection(x, item) {
11197
- console.log('x: ', x);
11198
- console.log('item: ', item);
11199
11201
  if (this.form && this.form.formSections?.length > 0 && x.section) {
11200
11202
  const index = this.form.formSections.findIndex((section) => section.class && section.class === x.section);
11201
11203
  if (index > -1) {