@festo-ui/angular 7.0.0-dev.303 → 7.0.0-dev.310

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.
@@ -423,11 +423,11 @@ export class FngTabsComponent {
423
423
  return -1;
424
424
  }
425
425
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FngTabsComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: FngTabsComponent, isStandalone: true, selector: "fng-tabs", inputs: { viewType: ["fngTabsViewType", "viewType"], showDivider: ["fngTabsUseBottomDivider", "showDivider"], config: "config" }, outputs: { fngBeforeTabChange: "fngBeforeTabChange", fngTabChange: "fngTabChange" }, queries: [{ propertyName: "panes", predicate: FngTabPaneComponent }], viewQueries: [{ propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "scrollAera", first: true, predicate: ["scrollAera"], descendants: true }, { propertyName: "scrollContent", first: true, predicate: ["scrollContent"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-btn-text);background-color:var(--fwe-btn-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-btn-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-icon-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-icon-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-btn-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
426
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: FngTabsComponent, isStandalone: true, selector: "fng-tabs", inputs: { viewType: ["fngTabsViewType", "viewType"], showDivider: ["fngTabsUseBottomDivider", "showDivider"], config: "config" }, outputs: { fngBeforeTabChange: "fngBeforeTabChange", fngTabChange: "fngTabChange" }, queries: [{ propertyName: "panes", predicate: FngTabPaneComponent }], viewQueries: [{ propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "scrollAera", first: true, predicate: ["scrollAera"], descendants: true }, { propertyName: "scrollContent", first: true, predicate: ["scrollContent"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
427
427
  }
428
428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FngTabsComponent, decorators: [{
429
429
  type: Component,
430
- args: [{ standalone: true, imports: [CommonModule], selector: 'fng-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-btn-text);background-color:var(--fwe-btn-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-btn-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-icon-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-icon-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-btn-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"] }]
430
+ args: [{ standalone: true, imports: [CommonModule], selector: 'fng-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"] }]
431
431
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: Document, decorators: [{
432
432
  type: Inject,
433
433
  args: [DOCUMENT]
@@ -456,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
456
456
  type: ViewChild,
457
457
  args: ['scrollContent']
458
458
  }] } });
459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBNkRwRSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ3BCLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQXdCbEIsWUFDVSxLQUFpQixFQUNDLFFBQWtCLEVBQ3BDLFFBQW1CLEVBQ25CLEVBQXFCO1FBSHJCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUEzQkwsYUFBUSxHQUFtQixZQUFZLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFdEQsV0FBTSxHQUFnQyxJQUFJLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENB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LENBQUMsWUFDYixVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTZCbEMsTUFBTTsyQkFBQyxRQUFRO2lHQXpCUSxRQUFRO3NCQUFqQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDVSxXQUFXO3NCQUE1QyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFFdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUUrQixLQUFLO3NCQUExQyxlQUFlO3VCQUFDLG1CQUFtQjtnQkFDYixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0ksVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG5vb3AsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRm5nVGFiUGFuZUNvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmUvdGFiLXBhbmUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm5nVGFiIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcGFuZUlkOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vLyBmaWxsOiB1c2UgdGhlIHJlbWFpbmluZyBzcGFjZSBhbmQgYWRkIGluIHNhbWUgcHJvcG9ydGlvbiB0byBldmVyeSB0YWIgaXRlbVxyXG4vLyBlcXVhbDogbWFrZSBhbGwgdGFiIGl0ZW1zIHNhbWUgd2lkdGggKGFzIHRoZSBvbmUgd2l0aCBsYXJnZXN0IGNvbnRlbnQpXHJcbmV4cG9ydCB0eXBlIEZuZ1RhYkl0ZW1BcHBlYXJhbmNlID0gJ2ZpbGwnIHwgJ2VxdWFsJyB8ICdkZWZhdWx0JztcclxuXHJcbi8vIGxlZ2FjeTogcmVjb21tZW5kZWQgZm9yIGRlc2t0b3Agb25seSBhcHBsaWNhdGlvbnNcclxuLy8gcmVzcG9uc2l2ZTogZGVza3RvcCwgdGFibGV0LCBtb2JpbGUgd2l0aCBzY3JvbGxhYmxlIHRhYnNcclxuZXhwb3J0IHR5cGUgRm5nVGFiVmlld1R5cGUgPSAnbGVnYWN5JyB8ICdyZXNwb25zaXZlJztcclxuXHJcbi8vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgbGVnYWN5IHRhYiB2aWV3IHR5cGVcclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJzQ29uZmlndXJhdGlvbiB7XHJcbiAgdGFiQmFyPzoge1xyXG4gICAgZnVsbFdpZHRoPzogYm9vbGVhbjtcclxuICB9O1xyXG4gIHRhYkl0ZW1zPzoge1xyXG4gICAgYXBwZWFyYW5jZTogRm5nVGFiSXRlbUFwcGVhcmFuY2U7XHJcbiAgfTtcclxufVxyXG5cclxuLy8gcHJvdmlkZXMgZGV0YWlscyBhYm91dCB0aGUgbGVmdCBhbmQgcmlnaHQgZWRnZXMgb2YgdGhlIHRhYiBlbGVtZW50IGFuZCB0aGUgdGFiIGNvbnRlbnQgZWxlbWVudFxyXG4vLyB0aGVzZSB2YWx1ZXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2aXN1YWwgcG9zaXRpb24gb2YgdGhlIHRhYiB3aXRoIHJlc3BlY3Qgb2YgaXRzIHBhcmVudCBjb250YWluZXJcclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJEaW1lbnNpb25zIHtcclxuICByb290TGVmdDogbnVtYmVyO1xyXG4gIHJvb3RSaWdodDogbnVtYmVyO1xyXG4gIGNvbnRlbnRMZWZ0OiBudW1iZXI7XHJcbiAgY29udGVudFJpZ2h0OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm5nVGFiU2Nyb2xsQW5pbWF0aW9uIHtcclxuICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBudW1iZXI7XHJcbiAgc2Nyb2xsRGVsdGE6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJTY3JvbGxIb3Jpem9udGFsRWRnZXMge1xyXG4gIGxlZnQ6IG51bWJlcjtcclxuICByaWdodDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZuZ0JlZm9yZVRhYkNoYW5nZUV2ZW50IHtcclxuICBvazogKCkgPT4gdm9pZDtcclxuICBjYW5jZWw6ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgc2VsZWN0b3I6ICdmbmctdGFicycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYnMuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbmdUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASW5wdXQoJ2ZuZ1RhYnNWaWV3VHlwZScpIHZpZXdUeXBlOiBGbmdUYWJWaWV3VHlwZSA9ICdyZXNwb25zaXZlJztcclxuICBASW5wdXQoJ2ZuZ1RhYnNVc2VCb3R0b21EaXZpZGVyJykgc2hvd0RpdmlkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBGbmdUYWJzQ29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIEBPdXRwdXQoKSBmbmdCZWZvcmVUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZuZ0JlZm9yZVRhYkNoYW5nZUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmbmdUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcHJldmlvdXM6IHN0cmluZzsgY3VycmVudDogc3RyaW5nIH0+KCk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oRm5nVGFiUGFuZUNvbXBvbmVudCkgcGFuZXM6IFF1ZXJ5TGlzdDxGbmdUYWJQYW5lQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdzY3JvbGxlcicpIHNjcm9sbGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbEFlcmEnKSBzY3JvbGxBZXJhOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbENvbnRlbnQnKSBzY3JvbGxDb250ZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb21wb25lbnRJZCA9IGB0YWJzLSR7KytGbmdUYWJzQ29tcG9uZW50Lm5leHRJZH1gO1xyXG4gIHRhYnM6IEZuZ1RhYltdID0gW107XHJcbiAgdXNlQ29tcGFjdERlbnNpdHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgYWN0aXZlVGFiOiBGbmdUYWIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBlbGVtU2Nyb2xsZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZWxlbVNjcm9sbEFyZWE6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZWxlbVNjcm9sbENvbnRlbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0ZWRXaW5kb3c6IFdpbmRvdyB8IG51bGw7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHByaXZhdGUgY29tcGxldGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluamVjdGVkV2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdFRhYnMoKTtcclxuICAgIGlmIChudWxsID09IHRoaXMuYWN0aXZlVGFiKSB7XHJcbiAgICAgIHRoaXMucGFuZXM/Lm1hcCgocGFuZSwgaSkgPT4ge1xyXG4gICAgICAgIGlmICgwID09PSBpKSB7XHJcbiAgICAgICAgICBwYW5lLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLnBhbmVzPy5maW5kKHBhbmUgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVGFiLnBhbmVJZCAhPSBudWxsICYmIHBhbmUudGFiUGFuZUlkID09PSB0aGlzLmFjdGl2ZVRhYi5wYW5lSWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAocGFuZSkge1xyXG4gICAgICAgIHBhbmUuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtU2Nyb2xsZXIgPSB0aGlzLnNjcm9sbGVyPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5lbGVtU2Nyb2xsQXJlYSA9IHRoaXMuc2Nyb2xsQWVyYT8ubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuZWxlbVNjcm9sbENvbnRlbnQgPSB0aGlzLnNjcm9sbENvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsZXIgPT0gbnVsbCB8fCB0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwgfHwgdGhpcy5lbGVtU2Nyb2xsQ29udGVudCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGluaXRpYWxXaWR0aCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEub2Zmc2V0V2lkdGg7XHJcbiAgICBpZiAoaW5pdGlhbFdpZHRoICE9IG51bGwgJiYgaW5pdGlhbFdpZHRoID4gNzY4KSB7XHJcbiAgICAgIHRoaXMudXNlQ29tcGFjdERlbnNpdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmVsZW1TY3JvbGxBcmVhLm9mZnNldFdpZHRoO1xyXG4gICAgICBpZiAod2lkdGggIT0gbnVsbCAmJiB3aWR0aCA+IDc2OCAmJiB0aGlzLnVzZUNvbXBhY3REZW5zaXR5ID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51c2VDb21wYWN0RGVuc2l0eSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9IGVsc2UgaWYgKHdpZHRoICE9IG51bGwgJiYgd2lkdGggPD0gNzY4ICYmIHRoaXMudXNlQ29tcGFjdERlbnNpdHkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy51c2VDb21wYWN0RGVuc2l0eSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbVNjcm9sbEFyZWEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaGFuZGxlVGFiUGFuZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wbGV0ZS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5jb21wbGV0ZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1RhYlBhbmUoaWQ6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYW5lID0gdGhpcy5wYW5lcz8uZmluZChwID0+IHAudGFiUGFuZUlkID09PSBpZCk7XHJcbiAgICBjb25zdCBoYW5kbGVUYWJDaGFuZ2UgPSAoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAocGFuZSAhPSBudWxsICYmIHBhbmUuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnBhbmVzPy5tYXAocCA9PiB7XHJcbiAgICAgICAgICBwLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhbmUuaXNWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJzLm1hcCh0YWIgPT4ge1xyXG4gICAgICAgICAgaWYgKHRhYi5wYW5lSWQgIT09IHBhbmUudGFiUGFuZUlkKSB7XHJcbiAgICAgICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRhYi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZm5nVGFiQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgcHJldmlvdXM6IHRoaXMuYWN0aXZlVGFiPy5wYW5lSWQgfHwgJycsXHJcbiAgICAgICAgICBjdXJyZW50OiBpZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGhpcy50YWJzLmZpbmQodGFiID0+ICEhdGFiLmFjdGl2ZSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuZm5nQmVmb3JlVGFiQ2hhbmdlPy5vYnNlcnZlcnM/Lmxlbmd0aCA+IDAgJiYgcGFuZT8uZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy5mbmdCZWZvcmVUYWJDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgb2s6ICgpID0+IHtcclxuICAgICAgICAgIGhhbmRsZVRhYkNoYW5nZShpZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjYW5jZWw6ICgpID0+IHtcclxuICAgICAgICAgIG5vb3AoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaGFuZGxlVGFiQ2hhbmdlKGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVRhYlNjcm9sbChldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQ29udGVudCA9PSBudWxsIHx8IHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxDb250ZW50V2lkdGggPSB0aGlzLmVsZW1TY3JvbGxDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3Qgc2Nyb2xsQXJlYVdpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBubyBzY3JvbGwgaXMgbmVlZGVkXHJcbiAgICBpZiAoc2Nyb2xsQXJlYVdpZHRoID4gc2Nyb2xsQ29udGVudFdpZHRoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjaGVjayBpbmRleFxyXG4gICAgaWYgKCF0aGlzLmluZGV4SXNJblJhbmdlKGluZGV4KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYWx3YXlzIHNjcm9sbCB0byAwIGlmIHNjcm9sbGluZyB0byB0aGUgZmlyc3QgdGFiXHJcbiAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgdGhpcy5zY3JvbGxUbygwKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFsd2F5cyBzY3JvbGwgdG8gdGhlIG1heCB2YWx1ZSBpZiBzY3JvbGxpbmcgdG8gdGhlIGxhc3QgdGFiXHJcbiAgICBpZiAoaW5kZXggPT09IHRoaXMudGFicy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5lbGVtU2Nyb2xsQ29udGVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXJyZW50VGFiOiBIVE1MRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgIHRoaXMuc2Nyb2xsSW50b1ZpZXcoaW5kZXgsIGN1cnJlbnRUYWIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VGFicygpIHtcclxuICAgIHRoaXMudGFicyA9IFtdO1xyXG4gICAgdGhpcy5wYW5lcz8ubWFwKChwYW5lLCBpKSA9PiB7XHJcbiAgICAgIHBhbmUudGFiSWQgPSB0aGlzLmNvbXBvbmVudElkICsgJy10YWItJyArIGk7XHJcbiAgICAgIGNvbnN0IHRhYjogRm5nVGFiID0ge1xyXG4gICAgICAgIG5hbWU6IG51bGwgIT0gcGFuZS5uYW1lID8gcGFuZS5uYW1lIDogJycsXHJcbiAgICAgICAgcGFuZUlkOiBudWxsICE9IHBhbmUudGFiUGFuZUlkID8gcGFuZS50YWJQYW5lSWQgOiBudWxsLFxyXG4gICAgICAgIGljb246IG51bGwgIT0gcGFuZS5pY29uID8gcGFuZS5pY29uIDogbnVsbCxcclxuICAgICAgICBhY3RpdmU6IG51bGwgIT0gcGFuZS5hY3RpdmUgPyBwYW5lLmFjdGl2ZSA6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkOiBudWxsICE9IHBhbmUuZGlzYWJsZWQgPyBwYW5lLmRpc2FibGVkIDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgdGhpcy50YWJzLnB1c2godGFiKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW5pdEFjdGl2ZVRhYigpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRBY3RpdmVUYWIoKSB7XHJcbiAgICBjb25zdCBhY3RpdmVUYWI6IEZuZ1RhYiB8IHVuZGVmaW5lZCA9IHRoaXMudGFicy5maW5kKCh0YWI6IEZuZ1RhYikgPT4gISF0YWIuYWN0aXZlKTtcclxuICAgIGlmICghYWN0aXZlVGFiICYmIDAgPCB0aGlzLnRhYnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudGFic1swXSA9IHsgLi4udGhpcy50YWJzWzBdLCBhY3RpdmU6IHRydWUgfTtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnRhYnNbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9IGFjdGl2ZVRhYjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGFiUGFuZUNoYW5nZXMoKSB7XHJcbiAgICAvLyBmaXJzdCBzdWJzY3JpYmUgdG8gYW55IGNoYW5nZXMgaW4gdGFiIHBhbmUsIHNvIHRoYXQgdGhlIHRhYnMgaW4gdGhpcyB2aWV3IHdpaWwgYmUgdXBkYXRlZFxyXG4gICAgdGhpcy5wYW5lcz8uZm9yRWFjaChwYW5lID0+IHtcclxuICAgICAgcGFuZS5jaGFuZ2VzJC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAvLyBvbiBjaGFuZ2VzIGluIGEgdGFiIHBhbmUsIHdlIGluaXQgdGhlIHRhYnMgYWdhaW5cclxuICAgICAgICB0aGlzLmluaXRUYWJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvKHNjcm9sbFg6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHNjcm9sbFggPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsWCA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcclxuICAgIGNvbnN0IHNhZmVTY3JvbGxYID0gdGhpcy5jbGFtcFNjcm9sbFZhbHVlKHNjcm9sbFgpO1xyXG4gICAgaWYgKHNhZmVTY3JvbGxYID09IG51bGwgfHwgY3VycmVudFNjcm9sbFggPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHNhZmVTY3JvbGxYIC0gY3VycmVudFNjcm9sbFg7XHJcbiAgICB0aGlzLmFuaW1hdGUoe1xyXG4gICAgICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBzYWZlU2Nyb2xsWCxcclxuICAgICAgc2Nyb2xsRGVsdGFcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxJbnRvVmlldyhpbmRleDogbnVtYmVyLCB0YWI6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQXJlYSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcclxuICAgIGNvbnN0IGJhcldpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuICAgIGlmIChiYXJXaWR0aCA9PSBudWxsIHx8IHNjcm9sbFBvc2l0aW9uID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhYkRpbWVuc2lvbnMgPSB0aGlzLmNvbXB1dGVEaW1lbnNpb25zKHRhYik7XHJcbiAgICBpZiAodGFiRGltZW5zaW9ucyA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmZpbmRBZGphY2VudFRhYkluZGV4Q2xvc2VzdFRvRWRnZShpbmRleCwgdGFiRGltZW5zaW9ucywgc2Nyb2xsUG9zaXRpb24sIGJhcldpZHRoKTtcclxuICAgIGlmICghdGhpcy5pbmRleElzSW5SYW5nZShuZXh0SW5kZXgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzY3JvbGxJbmNyZW1lbnQgPSB0aGlzLmNhbGN1bGF0ZVNjcm9sbEluY3JlbWVudChpbmRleCwgbmV4dEluZGV4LCBzY3JvbGxQb3NpdGlvbiwgYmFyV2lkdGgpO1xyXG4gICAgaWYgKHNjcm9sbEluY3JlbWVudCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluY3JlbWVudFNjcm9sbChzY3JvbGxJbmNyZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmNyZW1lbnRTY3JvbGwoc2Nyb2xsWEluY3JlbWVudDogbnVtYmVyKSB7XHJcbiAgICAvLyBubyBzY3JvbGwgbmVlZGVkXHJcbiAgICBpZiAoc2Nyb2xsWEluY3JlbWVudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxPcGVyYXRpb24gPSB0aGlzLmdldEluY3JlbWVudFNjcm9sbE9wZXJhdGlvbihzY3JvbGxYSW5jcmVtZW50KTtcclxuICAgIGlmIChzY3JvbGxPcGVyYXRpb24gPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFuaW1hdGUoc2Nyb2xsT3BlcmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW5pbWF0ZShhbmltYXRpb246IEZuZ1RhYlNjcm9sbEFuaW1hdGlvbikge1xyXG4gICAgLy8gbm8gYW5pbWF0aW9uIG5lZWRlZFxyXG4gICAgaWYgKGFuaW1hdGlvbi5zY3JvbGxEZWx0YSA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbm8gYW5pbWF0aW9uIHBvc3NpYmxlXHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQXJlYSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0b3BTY3JvbGxBbmltYXRpb24oKTtcclxuXHJcbiAgICAvLyB0aGlzIGFuaW1hdGlvbiB1c2VzIHRoZSBmbGlwIGFwcHJvYWNoXHJcbiAgICAvLyBodHRwczovL2Flcm90d2lzdC5jb20vYmxvZy9mbGlwLXlvdXItYW5pbWF0aW9ucy9cclxuICAgIC8vIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYW5pbWF0aW5nLWxheW91dHMtd2l0aC10aGUtZmxpcC10ZWNobmlxdWUvXHJcbiAgICB0aGlzLmVsZW1TY3JvbGxBcmVhLnNjcm9sbExlZnQgPSBhbmltYXRpb24uZmluYWxTY3JvbGxQb3NpdGlvbjtcclxuICAgIHRoaXMuc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGVYKCR7YW5pbWF0aW9uLnNjcm9sbERlbHRhfXB4KWApO1xyXG4gICAgLy8gZm9yY2UgcmVwYWludFxyXG4gICAgdGhpcy5lbGVtU2Nyb2xsQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbVNjcm9sbGVyLCAnZm5nLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nJyk7XHJcbiAgICAgIHRoaXMuc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkoJ3RyYW5zZm9ybScsICdub25lJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcFNjcm9sbEFuaW1hdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gdGhpcy5nZXRBbmltYXRpbmdTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbVNjcm9sbGVyLCAnZm5nLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nJyk7XHJcbiAgICB0aGlzLnNldFNjcm9sbENvbnRlbnRTdHlsZVByb3BlcnR5KCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlWCgwcHgpJyk7XHJcbiAgICB0aGlzLmVsZW1TY3JvbGxBcmVhLnNjcm9sbExlZnQgPSBjdXJyZW50U2Nyb2xsUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFuaW1hdGluZ1Njcm9sbFBvc2l0aW9uKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gdGhpcy5jYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpO1xyXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEuc2Nyb2xsTGVmdDtcclxuICAgIHJldHVybiBzY3JvbGxMZWZ0IC0gY3VycmVudFRyYW5zbGF0ZVg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEluY3JlbWVudFNjcm9sbE9wZXJhdGlvbihzY3JvbGxYOiBudW1iZXIpOiBGbmdUYWJTY3JvbGxBbmltYXRpb24gfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxYID0gdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgaWYgKGN1cnJlbnRTY3JvbGxYID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0U2Nyb2xsWCA9IHNjcm9sbFggKyBjdXJyZW50U2Nyb2xsWDtcclxuICAgIGNvbnN0IHNhZmVTY3JvbGxYID0gdGhpcy5jbGFtcFNjcm9sbFZhbHVlKHRhcmdldFNjcm9sbFgpO1xyXG4gICAgaWYgKHNhZmVTY3JvbGxYID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHNhZmVTY3JvbGxYIC0gY3VycmVudFNjcm9sbFg7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBzYWZlU2Nyb2xsWCxcclxuICAgICAgc2Nyb2xsRGVsdGFcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsYW1wU2Nyb2xsVmFsdWUoc2Nyb2xsWDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBlZGdlcyA9IHRoaXMuY2FsY3VsYXRlU2Nyb2xsRWRnZXMoKTtcclxuICAgIGlmIChlZGdlcyA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGVkZ2VzLmxlZnQsIHNjcm9sbFgpLCBlZGdlcy5yaWdodCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVNjcm9sbEVkZ2VzKCk6IEZuZ1RhYlNjcm9sbEhvcml6b250YWxFZGdlcyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCB8fCB0aGlzLmVsZW1TY3JvbGxDb250ZW50ID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxDb250ZW50V2lkdGggPSB0aGlzLmVsZW1TY3JvbGxDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3Qgc2Nyb2xsQXJlYVdpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxlZnQ6IDAsXHJcbiAgICAgIHJpZ2h0OiBzY3JvbGxDb250ZW50V2lkdGggLSBzY3JvbGxBcmVhV2lkdGhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVEaW1lbnNpb25zKHRhYjogSFRNTEVsZW1lbnQpOiBGbmdUYWJEaW1lbnNpb25zIHwgbnVsbCB7XHJcbiAgICBjb25zdCByb290V2lkdGggPSB0YWIub2Zmc2V0V2lkdGg7XHJcbiAgICBjb25zdCByb290TGVmdCA9IHRhYi5vZmZzZXRMZWZ0O1xyXG5cclxuICAgIGNvbnN0IHRhYkNvbnRlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IHRhYi5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmZuZy10YWItY29udGVudCcpO1xyXG4gICAgaWYgKHRhYkNvbnRlbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZW50V2lkdGggPSB0YWJDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3QgY29udGVudExlZnQgPSB0YWJDb250ZW50Lm9mZnNldExlZnQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29udGVudExlZnQ6IHJvb3RMZWZ0ICsgY29udGVudExlZnQsXHJcbiAgICAgIGNvbnRlbnRSaWdodDogcm9vdExlZnQgKyBjb250ZW50TGVmdCArIGNvbnRlbnRXaWR0aCxcclxuICAgICAgcm9vdExlZnQsXHJcbiAgICAgIHJvb3RSaWdodDogcm9vdExlZnQgKyByb290V2lkdGhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVNjcm9sbEluY3JlbWVudChpbmRleDogbnVtYmVyLCBuZXh0SW5kZXg6IG51bWJlciwgc2Nyb2xsUG9zaXRpb246IG51bWJlciwgYmFyV2lkdGg6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xyXG4gICAgY29uc3QgbmV4dFRhYjogSFRNTEVsZW1lbnQgfCBudWxsID0gKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXHJcbiAgICAgIGAjJHt0aGlzLmNvbXBvbmVudElkfS10YWItJHtuZXh0SW5kZXh9YFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAobmV4dFRhYiA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5leHRUYWJEaW1lbnNpb25zID0gdGhpcy5jb21wdXRlRGltZW5zaW9ucyhuZXh0VGFiKTtcclxuXHJcbiAgICBpZiAobmV4dFRhYkRpbWVuc2lvbnMgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWxhdGl2ZUNvbnRlbnRMZWZ0ID0gbmV4dFRhYkRpbWVuc2lvbnMuY29udGVudExlZnQgLSBzY3JvbGxQb3NpdGlvbiAtIGJhcldpZHRoO1xyXG4gICAgY29uc3QgcmVsYXRpdmVDb250ZW50UmlnaHQgPSBuZXh0VGFiRGltZW5zaW9ucy5jb250ZW50UmlnaHQgLSBzY3JvbGxQb3NpdGlvbjtcclxuICAgIGNvbnN0IGxlZnRJbmNyZW1lbnQgPSByZWxhdGl2ZUNvbnRlbnRSaWdodCAtIDQ4O1xyXG4gICAgY29uc3QgcmlnaHRJbmNyZW1lbnQgPSByZWxhdGl2ZUNvbnRlbnRMZWZ0ICsgNDg7XHJcblxyXG4gICAgaWYgKG5leHRJbmRleCA8IGluZGV4KSB7XHJcbiAgICAgIHJldHVybiBNYXRoLm1pbihsZWZ0SW5jcmVtZW50LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gTWF0aC5tYXgocmlnaHRJbmNyZW1lbnQsIDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmRleElzSW5SYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMudGFicy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjcm9sbFBvc2l0aW9uKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gdGhpcy5jYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpO1xyXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEuc2Nyb2xsTGVmdDtcclxuXHJcbiAgICByZXR1cm4gc2Nyb2xsTGVmdCAtIGN1cnJlbnRUcmFuc2xhdGVYO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSB0aGlzLmdldFNjcm9sbENvbnRlbnRTdHlsZVZhbHVlKCd0cmFuc2Zvcm0nKTtcclxuICAgIGlmICh0cmFuc2Zvcm1WYWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0cmFuc2Zvcm1WYWx1ZSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoZSB0cmFuc2Zvcm0gdmFsdWUgaXMgaW4gZm9ybSBvZiAnbWF0cml4KGEsIGIsIGMsIGQsIHR4LCB0eSknXHJcbiAgICAvLyBnZXQgYWxsIHRoZSBwYXJlbnRoZXNpemVkIHZhbHVlc1xyXG4gICAgY29uc3QgbWF0Y2ggPSAvXFwoKC4rPylcXCkvLmV4ZWModHJhbnNmb3JtVmFsdWUpO1xyXG4gICAgaWYgKCFtYXRjaCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXRyaXhQYXJhbXMgPSBtYXRjaFsxXTtcclxuICAgIC8vIHdlIG5lZWQgdmFsdWUgb2YgdHggLT4gdHJhbnNsYXRlWFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgY29uc3QgW2EsIGIsIGMsIGQsIHR4LCB0eV0gPSBtYXRyaXhQYXJhbXMuc3BsaXQoJywnKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHR4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2Nyb2xsQ29udGVudFN0eWxlVmFsdWUocHJvcE5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbENvbnRlbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3RlZFdpbmRvdz8uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1TY3JvbGxDb250ZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkocHJvcE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1TY3JvbGxDb250ZW50LCBwcm9wTmFtZSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQWRqYWNlbnRUYWJJbmRleENsb3Nlc3RUb0VkZ2UoXHJcbiAgICBpbmRleDogbnVtYmVyLFxyXG4gICAgdGFiRGltZW5zaW9uczogRm5nVGFiRGltZW5zaW9ucyxcclxuICAgIHNjcm9sbFBvc2l0aW9uOiBudW1iZXIsXHJcbiAgICBiYXJXaWR0aDogbnVtYmVyXHJcbiAgKTogbnVtYmVyIHtcclxuICAgIC8qKlxyXG4gICAgICogdGFicyBhcmUgbGFpZCBvdXQgaW4gdGhlIHRhYiBzY3JvbGxlciBsaWtlIHRoaXM6XHJcbiAgICAgKlxyXG4gICAgICogICAgc2Nyb2xsIHBvc2l0aW9uXHJcbiAgICAgKiAgICArLS0tK1xyXG4gICAgICogICAgfCAgIHwgICBiYXIgd2lkdGhcclxuICAgICAqICAgIHwgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKiAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxyXG4gICAgICogICAgfCAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZcclxuICAgICAqICAgIHwgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKiAgICB2ICAgfCAgICAgICAgICAgICB0YWIgc2Nyb2xsZXIgICAgICAgICAgfFxyXG4gICAgICogICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tK1xyXG4gICAgICogICAgfCAgICB0YWIgICAgIHwgICAgICB0YWIgICAgIHwgICAgICAgIHRhYiAgICAgICAgfFxyXG4gICAgICogICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tK1xyXG4gICAgICogICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcclxuICAgICAqICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKlxyXG4gICAgICogdG8gZGV0ZXJtaW5lIHRoZSBuZXh0IGFkamFjZW50IGluZGV4LCB3ZSBsb29rIGF0IHRoZSB0YWIgcm9vdCBsZWZ0IGFuZFxyXG4gICAgICogdGFiIHJvb3QgcmlnaHQsIGJvdGggcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBwb3NpdGlvbi4gaWYgdGhlIHRhYiByb290XHJcbiAgICAgKiBsZWZ0IGlzIGxlc3MgdGhhbiAwLCB0aGVuIHdlIGtub3cgaXQncyBvdXQgb2YgdmlldyB0byB0aGUgbGVmdC4gaWYgdGhlXHJcbiAgICAgKiB0YWIgcm9vdCByaWdodCBtaW51cyB0aGUgYmFyIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiAwLCB3ZSBrbm93IHRoZSB0YWIgaXNcclxuICAgICAqIG91dCBvZiB2aWV3IHRvIHRoZSByaWdodC4gZnJvbSB0aGVyZSwgd2UgZWl0aGVyIGluY3JlbWVudCBvciBkZWNyZW1lbnRcclxuICAgICAqIHRoZSBpbmRleC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgcmVsYXRpdmVSb290TGVmdCA9IHRhYkRpbWVuc2lvbnMucm9vdExlZnQgLSBzY3JvbGxQb3NpdGlvbjtcclxuICAgIGNvbnN0IHJlbGF0aXZlUm9vdFJpZ2h0ID0gdGFiRGltZW5zaW9ucy5yb290UmlnaHQgLSBzY3JvbGxQb3NpdGlvbiAtIGJhcldpZHRoO1xyXG4gICAgY29uc3QgcmVsYXRpdmVSb290RGVsdGEgPSByZWxhdGl2ZVJvb3RMZWZ0ICsgcmVsYXRpdmVSb290UmlnaHQ7XHJcbiAgICBjb25zdCBsZWZ0RWRnZUlzQ2xvc2VyID0gcmVsYXRpdmVSb290TGVmdCA8IDAgfHwgcmVsYXRpdmVSb290RGVsdGEgPCAwO1xyXG4gICAgY29uc3QgcmlnaHRFZGdlSXNDbG9zZXIgPSByZWxhdGl2ZVJvb3RSaWdodCA+IDAgfHwgcmVsYXRpdmVSb290RGVsdGEgPiAwO1xyXG5cclxuICAgIGlmIChsZWZ0RWRnZUlzQ2xvc2VyKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCAtIDE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJpZ2h0RWRnZUlzQ2xvc2VyKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCArIDE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1R5cGUgPT09ICdsZWdhY3knXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFic1wiPlxyXG4gICAgPHVsXHJcbiAgICAgIHJvbGU9XCJ0YWJsaXN0XCJcclxuICAgICAgY2xhc3M9XCJmd2UtbGVnYWN5LXRhYi1iYXJcIlxyXG4gICAgICBbY2xhc3MuZndlLWxlZ2FjeS10YWItYmFyLWZ1bGwtd2lkdGhdPVwiY29uZmlnPy50YWJCYXI/LmZ1bGxXaWR0aFwiXHJcbiAgICAgIFtjbGFzcy5md2UtbGVnYWN5LXRhYi1pdGVtcy1lcXVhbC13aWR0aF09XCInZXF1YWwnID09PSBjb25maWc/LnRhYkl0ZW1zPy5hcHBlYXJhbmNlXCJcclxuICAgICAgW2NsYXNzLmZ3ZS1sZWdhY3ktdGFiLWl0ZW1zLWZpbGxdPVwiJ2ZpbGwnID09PSBjb25maWc/LnRhYkl0ZW1zPy5hcHBlYXJhbmNlXCJcclxuICAgID5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Z3ZS1hY3RpdmUnOiB0YWI/LmFjdGl2ZSwgJ2Z3ZS1kaXNhYmxlZCc6IHRhYj8uZGlzYWJsZWQgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibnVsbCA9PSB0YWI/Lmljb25cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidHJ1ZSA9PT0gdGFiPy5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWxpbmtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd1RhYlBhbmUodGFiLnBhbmVJZClcIlxyXG4gICAgICAgICAgICA+e3sgdGFiLm5hbWUgfX08L2FcclxuICAgICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibnVsbCAhPSB0YWI/Lmljb25cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidHJ1ZSA9PT0gdGFiPy5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWxpbmtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd1RhYlBhbmUodGFiLnBhbmVJZClcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZndlLWNhbi1zd2FwLWljb25dPVwiMiA9PT0gdGFicy5sZW5ndGggJiYgMSA9PT0gaVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCInZndlLWljb24gJyArIHRhYi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyB0YWIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZndlLWxlZ2FjeS10YWItcGFuZWwtY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiUGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1R5cGUgIT09ICdsZWdhY3knXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZuZy10YWItYmFyXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyXCIgI3Njcm9sbGVyPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyLXNjcm9sbC1hcmVhIGZuZy10YWItc2Nyb2xsZXItc2Nyb2xsLWFyZWEtLXNjcm9sbFwiXHJcbiAgICAgICAgW2NsYXNzLmZuZy10YWItc2Nyb2xsZXItc2Nyb2xsLWFyZWEtLWNvbXBhY3RdPVwidXNlQ29tcGFjdERlbnNpdHlcIlxyXG4gICAgICAgICNzY3JvbGxBZXJhXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm5nLXRhYi1zY3JvbGxlci1zY3JvbGwtY29udGVudFwiIFtjbGFzcy5mbmctdGFiLXNjcm9sbGVyLXNjcm9sbC1jb250ZW50LS13aXRoLWRpdmlkZXJdPVwic2hvd0RpdmlkZXJcIiAjc2Nyb2xsQ29udGVudD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm5nLXRhYlwiXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJpID09PSAwID8gMCA6IC0xXCJcclxuICAgICAgICAgICAgW2NsYXNzLmZuZy10YWItLWFjdGl2ZV09XCJ0YWI/LmFjdGl2ZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5mbmctdGFiLS1kaXNhYmxlZF09XCJ0YWI/LmRpc2FibGVkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRhYlNjcm9sbCgkZXZlbnQsIGkpOyBzaG93VGFiUGFuZSh0YWIucGFuZUlkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm5nLXRhYi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbmctdGFiLXRleHQtbGFiZWxcIj57eyB0YWIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZuZy10YWItaW5kaWNhdG9yXCIgW2NsYXNzLmZuZy10YWItaW5kaWNhdG9yLS1hY3RpdmVdPVwidGFiPy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZuZy10YWItaW5kaWNhdG9yLWNvbnRlbnQgZm5nLXRhYi1pbmRpY2F0b3ItY29udGVudC0tdW5kZXJsaW5lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyLWRpdmlkZXItbGluZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZuZy10YWItcGFuZWwtY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiUGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI3RhYlBhbmVsQ29udGVudD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBNkRwRSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ3BCLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQXdCbEIsWUFDVSxLQUFpQixFQUNDLFFBQWtCLEVBQ3BDLFFBQW1CLEVBQ25CLEVBQXFCO1FBSHJCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUEzQkwsYUFBUSxHQUFtQixZQUFZLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFdEQsV0FBTSxHQUFnQyxJQUFJLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENB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LENBQUMsWUFDYixVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTZCbEMsTUFBTTsyQkFBQyxRQUFRO2lHQXpCUSxRQUFRO3NCQUFqQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDVSxXQUFXO3NCQUE1QyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFFdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUUrQixLQUFLO3NCQUExQyxlQUFlO3VCQUFDLG1CQUFtQjtnQkFDYixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0ksVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG5vb3AsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRm5nVGFiUGFuZUNvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmUvdGFiLXBhbmUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm5nVGFiIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcGFuZUlkOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vLyBmaWxsOiB1c2UgdGhlIHJlbWFpbmluZyBzcGFjZSBhbmQgYWRkIGluIHNhbWUgcHJvcG9ydGlvbiB0byBldmVyeSB0YWIgaXRlbVxyXG4vLyBlcXVhbDogbWFrZSBhbGwgdGFiIGl0ZW1zIHNhbWUgd2lkdGggKGFzIHRoZSBvbmUgd2l0aCBsYXJnZXN0IGNvbnRlbnQpXHJcbmV4cG9ydCB0eXBlIEZuZ1RhYkl0ZW1BcHBlYXJhbmNlID0gJ2ZpbGwnIHwgJ2VxdWFsJyB8ICdkZWZhdWx0JztcclxuXHJcbi8vIGxlZ2FjeTogcmVjb21tZW5kZWQgZm9yIGRlc2t0b3Agb25seSBhcHBsaWNhdGlvbnNcclxuLy8gcmVzcG9uc2l2ZTogZGVza3RvcCwgdGFibGV0LCBtb2JpbGUgd2l0aCBzY3JvbGxhYmxlIHRhYnNcclxuZXhwb3J0IHR5cGUgRm5nVGFiVmlld1R5cGUgPSAnbGVnYWN5JyB8ICdyZXNwb25zaXZlJztcclxuXHJcbi8vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgbGVnYWN5IHRhYiB2aWV3IHR5cGVcclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJzQ29uZmlndXJhdGlvbiB7XHJcbiAgdGFiQmFyPzoge1xyXG4gICAgZnVsbFdpZHRoPzogYm9vbGVhbjtcclxuICB9O1xyXG4gIHRhYkl0ZW1zPzoge1xyXG4gICAgYXBwZWFyYW5jZTogRm5nVGFiSXRlbUFwcGVhcmFuY2U7XHJcbiAgfTtcclxufVxyXG5cclxuLy8gcHJvdmlkZXMgZGV0YWlscyBhYm91dCB0aGUgbGVmdCBhbmQgcmlnaHQgZWRnZXMgb2YgdGhlIHRhYiBlbGVtZW50IGFuZCB0aGUgdGFiIGNvbnRlbnQgZWxlbWVudFxyXG4vLyB0aGVzZSB2YWx1ZXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2aXN1YWwgcG9zaXRpb24gb2YgdGhlIHRhYiB3aXRoIHJlc3BlY3Qgb2YgaXRzIHBhcmVudCBjb250YWluZXJcclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJEaW1lbnNpb25zIHtcclxuICByb290TGVmdDogbnVtYmVyO1xyXG4gIHJvb3RSaWdodDogbnVtYmVyO1xyXG4gIGNvbnRlbnRMZWZ0OiBudW1iZXI7XHJcbiAgY29udGVudFJpZ2h0OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm5nVGFiU2Nyb2xsQW5pbWF0aW9uIHtcclxuICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBudW1iZXI7XHJcbiAgc2Nyb2xsRGVsdGE6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGbmdUYWJTY3JvbGxIb3Jpem9udGFsRWRnZXMge1xyXG4gIGxlZnQ6IG51bWJlcjtcclxuICByaWdodDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZuZ0JlZm9yZVRhYkNoYW5nZUV2ZW50IHtcclxuICBvazogKCkgPT4gdm9pZDtcclxuICBjYW5jZWw6ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgc2VsZWN0b3I6ICdmbmctdGFicycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYnMuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbmdUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASW5wdXQoJ2ZuZ1RhYnNWaWV3VHlwZScpIHZpZXdUeXBlOiBGbmdUYWJWaWV3VHlwZSA9ICdyZXNwb25zaXZlJztcclxuICBASW5wdXQoJ2ZuZ1RhYnNVc2VCb3R0b21EaXZpZGVyJykgc2hvd0RpdmlkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBGbmdUYWJzQ29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIEBPdXRwdXQoKSBmbmdCZWZvcmVUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZuZ0JlZm9yZVRhYkNoYW5nZUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmbmdUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcHJldmlvdXM6IHN0cmluZzsgY3VycmVudDogc3RyaW5nIH0+KCk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oRm5nVGFiUGFuZUNvbXBvbmVudCkgcGFuZXM6IFF1ZXJ5TGlzdDxGbmdUYWJQYW5lQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdzY3JvbGxlcicpIHNjcm9sbGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbEFlcmEnKSBzY3JvbGxBZXJhOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbENvbnRlbnQnKSBzY3JvbGxDb250ZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb21wb25lbnRJZCA9IGB0YWJzLSR7KytGbmdUYWJzQ29tcG9uZW50Lm5leHRJZH1gO1xyXG4gIHRhYnM6IEZuZ1RhYltdID0gW107XHJcbiAgdXNlQ29tcGFjdERlbnNpdHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgYWN0aXZlVGFiOiBGbmdUYWIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBlbGVtU2Nyb2xsZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZWxlbVNjcm9sbEFyZWE6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZWxlbVNjcm9sbENvbnRlbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0ZWRXaW5kb3c6IFdpbmRvdyB8IG51bGw7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHByaXZhdGUgY29tcGxldGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluamVjdGVkV2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdFRhYnMoKTtcclxuICAgIGlmIChudWxsID09IHRoaXMuYWN0aXZlVGFiKSB7XHJcbiAgICAgIHRoaXMucGFuZXM/Lm1hcCgocGFuZSwgaSkgPT4ge1xyXG4gICAgICAgIGlmICgwID09PSBpKSB7XHJcbiAgICAgICAgICBwYW5lLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLnBhbmVzPy5maW5kKHBhbmUgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVGFiLnBhbmVJZCAhPSBudWxsICYmIHBhbmUudGFiUGFuZUlkID09PSB0aGlzLmFjdGl2ZVRhYi5wYW5lSWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAocGFuZSkge1xyXG4gICAgICAgIHBhbmUuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtU2Nyb2xsZXIgPSB0aGlzLnNjcm9sbGVyPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5lbGVtU2Nyb2xsQXJlYSA9IHRoaXMuc2Nyb2xsQWVyYT8ubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuZWxlbVNjcm9sbENvbnRlbnQgPSB0aGlzLnNjcm9sbENvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsZXIgPT0gbnVsbCB8fCB0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwgfHwgdGhpcy5lbGVtU2Nyb2xsQ29udGVudCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGluaXRpYWxXaWR0aCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEub2Zmc2V0V2lkdGg7XHJcbiAgICBpZiAoaW5pdGlhbFdpZHRoICE9IG51bGwgJiYgaW5pdGlhbFdpZHRoID4gNzY4KSB7XHJcbiAgICAgIHRoaXMudXNlQ29tcGFjdERlbnNpdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmVsZW1TY3JvbGxBcmVhLm9mZnNldFdpZHRoO1xyXG4gICAgICBpZiAod2lkdGggIT0gbnVsbCAmJiB3aWR0aCA+IDc2OCAmJiB0aGlzLnVzZUNvbXBhY3REZW5zaXR5ID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51c2VDb21wYWN0RGVuc2l0eSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9IGVsc2UgaWYgKHdpZHRoICE9IG51bGwgJiYgd2lkdGggPD0gNzY4ICYmIHRoaXMudXNlQ29tcGFjdERlbnNpdHkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy51c2VDb21wYWN0RGVuc2l0eSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbVNjcm9sbEFyZWEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaGFuZGxlVGFiUGFuZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wbGV0ZS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5jb21wbGV0ZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1RhYlBhbmUoaWQ6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYW5lID0gdGhpcy5wYW5lcz8uZmluZChwID0+IHAudGFiUGFuZUlkID09PSBpZCk7XHJcbiAgICBjb25zdCBoYW5kbGVUYWJDaGFuZ2UgPSAoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAocGFuZSAhPSBudWxsICYmIHBhbmUuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnBhbmVzPy5tYXAocCA9PiB7XHJcbiAgICAgICAgICBwLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhbmUuaXNWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJzLm1hcCh0YWIgPT4ge1xyXG4gICAgICAgICAgaWYgKHRhYi5wYW5lSWQgIT09IHBhbmUudGFiUGFuZUlkKSB7XHJcbiAgICAgICAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRhYi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZm5nVGFiQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgcHJldmlvdXM6IHRoaXMuYWN0aXZlVGFiPy5wYW5lSWQgfHwgJycsXHJcbiAgICAgICAgICBjdXJyZW50OiBpZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGhpcy50YWJzLmZpbmQodGFiID0+ICEhdGFiLmFjdGl2ZSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuZm5nQmVmb3JlVGFiQ2hhbmdlPy5vYnNlcnZlcnM/Lmxlbmd0aCA+IDAgJiYgcGFuZT8uZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy5mbmdCZWZvcmVUYWJDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgb2s6ICgpID0+IHtcclxuICAgICAgICAgIGhhbmRsZVRhYkNoYW5nZShpZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjYW5jZWw6ICgpID0+IHtcclxuICAgICAgICAgIG5vb3AoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaGFuZGxlVGFiQ2hhbmdlKGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVRhYlNjcm9sbChldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQ29udGVudCA9PSBudWxsIHx8IHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxDb250ZW50V2lkdGggPSB0aGlzLmVsZW1TY3JvbGxDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3Qgc2Nyb2xsQXJlYVdpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBubyBzY3JvbGwgaXMgbmVlZGVkXHJcbiAgICBpZiAoc2Nyb2xsQXJlYVdpZHRoID4gc2Nyb2xsQ29udGVudFdpZHRoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjaGVjayBpbmRleFxyXG4gICAgaWYgKCF0aGlzLmluZGV4SXNJblJhbmdlKGluZGV4KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYWx3YXlzIHNjcm9sbCB0byAwIGlmIHNjcm9sbGluZyB0byB0aGUgZmlyc3QgdGFiXHJcbiAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgdGhpcy5zY3JvbGxUbygwKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFsd2F5cyBzY3JvbGwgdG8gdGhlIG1heCB2YWx1ZSBpZiBzY3JvbGxpbmcgdG8gdGhlIGxhc3QgdGFiXHJcbiAgICBpZiAoaW5kZXggPT09IHRoaXMudGFicy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5lbGVtU2Nyb2xsQ29udGVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXJyZW50VGFiOiBIVE1MRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgIHRoaXMuc2Nyb2xsSW50b1ZpZXcoaW5kZXgsIGN1cnJlbnRUYWIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VGFicygpIHtcclxuICAgIHRoaXMudGFicyA9IFtdO1xyXG4gICAgdGhpcy5wYW5lcz8ubWFwKChwYW5lLCBpKSA9PiB7XHJcbiAgICAgIHBhbmUudGFiSWQgPSB0aGlzLmNvbXBvbmVudElkICsgJy10YWItJyArIGk7XHJcbiAgICAgIGNvbnN0IHRhYjogRm5nVGFiID0ge1xyXG4gICAgICAgIG5hbWU6IG51bGwgIT0gcGFuZS5uYW1lID8gcGFuZS5uYW1lIDogJycsXHJcbiAgICAgICAgcGFuZUlkOiBudWxsICE9IHBhbmUudGFiUGFuZUlkID8gcGFuZS50YWJQYW5lSWQgOiBudWxsLFxyXG4gICAgICAgIGljb246IG51bGwgIT0gcGFuZS5pY29uID8gcGFuZS5pY29uIDogbnVsbCxcclxuICAgICAgICBhY3RpdmU6IG51bGwgIT0gcGFuZS5hY3RpdmUgPyBwYW5lLmFjdGl2ZSA6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkOiBudWxsICE9IHBhbmUuZGlzYWJsZWQgPyBwYW5lLmRpc2FibGVkIDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgdGhpcy50YWJzLnB1c2godGFiKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW5pdEFjdGl2ZVRhYigpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRBY3RpdmVUYWIoKSB7XHJcbiAgICBjb25zdCBhY3RpdmVUYWI6IEZuZ1RhYiB8IHVuZGVmaW5lZCA9IHRoaXMudGFicy5maW5kKCh0YWI6IEZuZ1RhYikgPT4gISF0YWIuYWN0aXZlKTtcclxuICAgIGlmICghYWN0aXZlVGFiICYmIDAgPCB0aGlzLnRhYnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudGFic1swXSA9IHsgLi4udGhpcy50YWJzWzBdLCBhY3RpdmU6IHRydWUgfTtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnRhYnNbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9IGFjdGl2ZVRhYjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGFiUGFuZUNoYW5nZXMoKSB7XHJcbiAgICAvLyBmaXJzdCBzdWJzY3JpYmUgdG8gYW55IGNoYW5nZXMgaW4gdGFiIHBhbmUsIHNvIHRoYXQgdGhlIHRhYnMgaW4gdGhpcyB2aWV3IHdpaWwgYmUgdXBkYXRlZFxyXG4gICAgdGhpcy5wYW5lcz8uZm9yRWFjaChwYW5lID0+IHtcclxuICAgICAgcGFuZS5jaGFuZ2VzJC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAvLyBvbiBjaGFuZ2VzIGluIGEgdGFiIHBhbmUsIHdlIGluaXQgdGhlIHRhYnMgYWdhaW5cclxuICAgICAgICB0aGlzLmluaXRUYWJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvKHNjcm9sbFg6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHNjcm9sbFggPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsWCA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcclxuICAgIGNvbnN0IHNhZmVTY3JvbGxYID0gdGhpcy5jbGFtcFNjcm9sbFZhbHVlKHNjcm9sbFgpO1xyXG4gICAgaWYgKHNhZmVTY3JvbGxYID09IG51bGwgfHwgY3VycmVudFNjcm9sbFggPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHNhZmVTY3JvbGxYIC0gY3VycmVudFNjcm9sbFg7XHJcbiAgICB0aGlzLmFuaW1hdGUoe1xyXG4gICAgICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBzYWZlU2Nyb2xsWCxcclxuICAgICAgc2Nyb2xsRGVsdGFcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxJbnRvVmlldyhpbmRleDogbnVtYmVyLCB0YWI6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQXJlYSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcclxuICAgIGNvbnN0IGJhcldpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuICAgIGlmIChiYXJXaWR0aCA9PSBudWxsIHx8IHNjcm9sbFBvc2l0aW9uID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhYkRpbWVuc2lvbnMgPSB0aGlzLmNvbXB1dGVEaW1lbnNpb25zKHRhYik7XHJcbiAgICBpZiAodGFiRGltZW5zaW9ucyA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmZpbmRBZGphY2VudFRhYkluZGV4Q2xvc2VzdFRvRWRnZShpbmRleCwgdGFiRGltZW5zaW9ucywgc2Nyb2xsUG9zaXRpb24sIGJhcldpZHRoKTtcclxuICAgIGlmICghdGhpcy5pbmRleElzSW5SYW5nZShuZXh0SW5kZXgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzY3JvbGxJbmNyZW1lbnQgPSB0aGlzLmNhbGN1bGF0ZVNjcm9sbEluY3JlbWVudChpbmRleCwgbmV4dEluZGV4LCBzY3JvbGxQb3NpdGlvbiwgYmFyV2lkdGgpO1xyXG4gICAgaWYgKHNjcm9sbEluY3JlbWVudCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluY3JlbWVudFNjcm9sbChzY3JvbGxJbmNyZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmNyZW1lbnRTY3JvbGwoc2Nyb2xsWEluY3JlbWVudDogbnVtYmVyKSB7XHJcbiAgICAvLyBubyBzY3JvbGwgbmVlZGVkXHJcbiAgICBpZiAoc2Nyb2xsWEluY3JlbWVudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxPcGVyYXRpb24gPSB0aGlzLmdldEluY3JlbWVudFNjcm9sbE9wZXJhdGlvbihzY3JvbGxYSW5jcmVtZW50KTtcclxuICAgIGlmIChzY3JvbGxPcGVyYXRpb24gPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFuaW1hdGUoc2Nyb2xsT3BlcmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW5pbWF0ZShhbmltYXRpb246IEZuZ1RhYlNjcm9sbEFuaW1hdGlvbikge1xyXG4gICAgLy8gbm8gYW5pbWF0aW9uIG5lZWRlZFxyXG4gICAgaWYgKGFuaW1hdGlvbi5zY3JvbGxEZWx0YSA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbm8gYW5pbWF0aW9uIHBvc3NpYmxlXHJcbiAgICBpZiAodGhpcy5lbGVtU2Nyb2xsQXJlYSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0b3BTY3JvbGxBbmltYXRpb24oKTtcclxuXHJcbiAgICAvLyB0aGlzIGFuaW1hdGlvbiB1c2VzIHRoZSBmbGlwIGFwcHJvYWNoXHJcbiAgICAvLyBodHRwczovL2Flcm90d2lzdC5jb20vYmxvZy9mbGlwLXlvdXItYW5pbWF0aW9ucy9cclxuICAgIC8vIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYW5pbWF0aW5nLWxheW91dHMtd2l0aC10aGUtZmxpcC10ZWNobmlxdWUvXHJcbiAgICB0aGlzLmVsZW1TY3JvbGxBcmVhLnNjcm9sbExlZnQgPSBhbmltYXRpb24uZmluYWxTY3JvbGxQb3NpdGlvbjtcclxuICAgIHRoaXMuc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGVYKCR7YW5pbWF0aW9uLnNjcm9sbERlbHRhfXB4KWApO1xyXG4gICAgLy8gZm9yY2UgcmVwYWludFxyXG4gICAgdGhpcy5lbGVtU2Nyb2xsQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbVNjcm9sbGVyLCAnZm5nLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nJyk7XHJcbiAgICAgIHRoaXMuc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkoJ3RyYW5zZm9ybScsICdub25lJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcFNjcm9sbEFuaW1hdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmVsZW1TY3JvbGxBcmVhID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gdGhpcy5nZXRBbmltYXRpbmdTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbVNjcm9sbGVyLCAnZm5nLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nJyk7XHJcbiAgICB0aGlzLnNldFNjcm9sbENvbnRlbnRTdHlsZVByb3BlcnR5KCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlWCgwcHgpJyk7XHJcbiAgICB0aGlzLmVsZW1TY3JvbGxBcmVhLnNjcm9sbExlZnQgPSBjdXJyZW50U2Nyb2xsUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFuaW1hdGluZ1Njcm9sbFBvc2l0aW9uKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gdGhpcy5jYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpO1xyXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEuc2Nyb2xsTGVmdDtcclxuICAgIHJldHVybiBzY3JvbGxMZWZ0IC0gY3VycmVudFRyYW5zbGF0ZVg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEluY3JlbWVudFNjcm9sbE9wZXJhdGlvbihzY3JvbGxYOiBudW1iZXIpOiBGbmdUYWJTY3JvbGxBbmltYXRpb24gfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxYID0gdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpO1xyXG4gICAgaWYgKGN1cnJlbnRTY3JvbGxYID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0U2Nyb2xsWCA9IHNjcm9sbFggKyBjdXJyZW50U2Nyb2xsWDtcclxuICAgIGNvbnN0IHNhZmVTY3JvbGxYID0gdGhpcy5jbGFtcFNjcm9sbFZhbHVlKHRhcmdldFNjcm9sbFgpO1xyXG4gICAgaWYgKHNhZmVTY3JvbGxYID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHNhZmVTY3JvbGxYIC0gY3VycmVudFNjcm9sbFg7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaW5hbFNjcm9sbFBvc2l0aW9uOiBzYWZlU2Nyb2xsWCxcclxuICAgICAgc2Nyb2xsRGVsdGFcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsYW1wU2Nyb2xsVmFsdWUoc2Nyb2xsWDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBlZGdlcyA9IHRoaXMuY2FsY3VsYXRlU2Nyb2xsRWRnZXMoKTtcclxuICAgIGlmIChlZGdlcyA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGVkZ2VzLmxlZnQsIHNjcm9sbFgpLCBlZGdlcy5yaWdodCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVNjcm9sbEVkZ2VzKCk6IEZuZ1RhYlNjcm9sbEhvcml6b250YWxFZGdlcyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCB8fCB0aGlzLmVsZW1TY3JvbGxDb250ZW50ID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JvbGxDb250ZW50V2lkdGggPSB0aGlzLmVsZW1TY3JvbGxDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3Qgc2Nyb2xsQXJlYVdpZHRoID0gdGhpcy5lbGVtU2Nyb2xsQXJlYS5vZmZzZXRXaWR0aDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxlZnQ6IDAsXHJcbiAgICAgIHJpZ2h0OiBzY3JvbGxDb250ZW50V2lkdGggLSBzY3JvbGxBcmVhV2lkdGhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVEaW1lbnNpb25zKHRhYjogSFRNTEVsZW1lbnQpOiBGbmdUYWJEaW1lbnNpb25zIHwgbnVsbCB7XHJcbiAgICBjb25zdCByb290V2lkdGggPSB0YWIub2Zmc2V0V2lkdGg7XHJcbiAgICBjb25zdCByb290TGVmdCA9IHRhYi5vZmZzZXRMZWZ0O1xyXG5cclxuICAgIGNvbnN0IHRhYkNvbnRlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IHRhYi5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmZuZy10YWItY29udGVudCcpO1xyXG4gICAgaWYgKHRhYkNvbnRlbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZW50V2lkdGggPSB0YWJDb250ZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3QgY29udGVudExlZnQgPSB0YWJDb250ZW50Lm9mZnNldExlZnQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29udGVudExlZnQ6IHJvb3RMZWZ0ICsgY29udGVudExlZnQsXHJcbiAgICAgIGNvbnRlbnRSaWdodDogcm9vdExlZnQgKyBjb250ZW50TGVmdCArIGNvbnRlbnRXaWR0aCxcclxuICAgICAgcm9vdExlZnQsXHJcbiAgICAgIHJvb3RSaWdodDogcm9vdExlZnQgKyByb290V2lkdGhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVNjcm9sbEluY3JlbWVudChpbmRleDogbnVtYmVyLCBuZXh0SW5kZXg6IG51bWJlciwgc2Nyb2xsUG9zaXRpb246IG51bWJlciwgYmFyV2lkdGg6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xyXG4gICAgY29uc3QgbmV4dFRhYjogSFRNTEVsZW1lbnQgfCBudWxsID0gKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXHJcbiAgICAgIGAjJHt0aGlzLmNvbXBvbmVudElkfS10YWItJHtuZXh0SW5kZXh9YFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAobmV4dFRhYiA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5leHRUYWJEaW1lbnNpb25zID0gdGhpcy5jb21wdXRlRGltZW5zaW9ucyhuZXh0VGFiKTtcclxuXHJcbiAgICBpZiAobmV4dFRhYkRpbWVuc2lvbnMgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWxhdGl2ZUNvbnRlbnRMZWZ0ID0gbmV4dFRhYkRpbWVuc2lvbnMuY29udGVudExlZnQgLSBzY3JvbGxQb3NpdGlvbiAtIGJhcldpZHRoO1xyXG4gICAgY29uc3QgcmVsYXRpdmVDb250ZW50UmlnaHQgPSBuZXh0VGFiRGltZW5zaW9ucy5jb250ZW50UmlnaHQgLSBzY3JvbGxQb3NpdGlvbjtcclxuICAgIGNvbnN0IGxlZnRJbmNyZW1lbnQgPSByZWxhdGl2ZUNvbnRlbnRSaWdodCAtIDQ4O1xyXG4gICAgY29uc3QgcmlnaHRJbmNyZW1lbnQgPSByZWxhdGl2ZUNvbnRlbnRMZWZ0ICsgNDg7XHJcblxyXG4gICAgaWYgKG5leHRJbmRleCA8IGluZGV4KSB7XHJcbiAgICAgIHJldHVybiBNYXRoLm1pbihsZWZ0SW5jcmVtZW50LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gTWF0aC5tYXgocmlnaHRJbmNyZW1lbnQsIDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmRleElzSW5SYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMudGFicy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjcm9sbFBvc2l0aW9uKCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbEFyZWEgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGVYID0gdGhpcy5jYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpO1xyXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuZWxlbVNjcm9sbEFyZWEuc2Nyb2xsTGVmdDtcclxuXHJcbiAgICByZXR1cm4gc2Nyb2xsTGVmdCAtIGN1cnJlbnRUcmFuc2xhdGVYO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVDdXJyZW50VHJhbnNsYXRlWCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSB0aGlzLmdldFNjcm9sbENvbnRlbnRTdHlsZVZhbHVlKCd0cmFuc2Zvcm0nKTtcclxuICAgIGlmICh0cmFuc2Zvcm1WYWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0cmFuc2Zvcm1WYWx1ZSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoZSB0cmFuc2Zvcm0gdmFsdWUgaXMgaW4gZm9ybSBvZiAnbWF0cml4KGEsIGIsIGMsIGQsIHR4LCB0eSknXHJcbiAgICAvLyBnZXQgYWxsIHRoZSBwYXJlbnRoZXNpemVkIHZhbHVlc1xyXG4gICAgY29uc3QgbWF0Y2ggPSAvXFwoKC4rPylcXCkvLmV4ZWModHJhbnNmb3JtVmFsdWUpO1xyXG4gICAgaWYgKCFtYXRjaCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXRyaXhQYXJhbXMgPSBtYXRjaFsxXTtcclxuICAgIC8vIHdlIG5lZWQgdmFsdWUgb2YgdHggLT4gdHJhbnNsYXRlWFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgY29uc3QgW2EsIGIsIGMsIGQsIHR4LCB0eV0gPSBtYXRyaXhQYXJhbXMuc3BsaXQoJywnKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHR4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2Nyb2xsQ29udGVudFN0eWxlVmFsdWUocHJvcE5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZWxlbVNjcm9sbENvbnRlbnQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3RlZFdpbmRvdz8uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1TY3JvbGxDb250ZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U2Nyb2xsQ29udGVudFN0eWxlUHJvcGVydHkocHJvcE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1TY3JvbGxDb250ZW50LCBwcm9wTmFtZSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQWRqYWNlbnRUYWJJbmRleENsb3Nlc3RUb0VkZ2UoXHJcbiAgICBpbmRleDogbnVtYmVyLFxyXG4gICAgdGFiRGltZW5zaW9uczogRm5nVGFiRGltZW5zaW9ucyxcclxuICAgIHNjcm9sbFBvc2l0aW9uOiBudW1iZXIsXHJcbiAgICBiYXJXaWR0aDogbnVtYmVyXHJcbiAgKTogbnVtYmVyIHtcclxuICAgIC8qKlxyXG4gICAgICogdGFicyBhcmUgbGFpZCBvdXQgaW4gdGhlIHRhYiBzY3JvbGxlciBsaWtlIHRoaXM6XHJcbiAgICAgKlxyXG4gICAgICogICAgc2Nyb2xsIHBvc2l0aW9uXHJcbiAgICAgKiAgICArLS0tK1xyXG4gICAgICogICAgfCAgIHwgICBiYXIgd2lkdGhcclxuICAgICAqICAgIHwgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKiAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxyXG4gICAgICogICAgfCAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZcclxuICAgICAqICAgIHwgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKiAgICB2ICAgfCAgICAgICAgICAgICB0YWIgc2Nyb2xsZXIgICAgICAgICAgfFxyXG4gICAgICogICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tK1xyXG4gICAgICogICAgfCAgICB0YWIgICAgIHwgICAgICB0YWIgICAgIHwgICAgICAgIHRhYiAgICAgICAgfFxyXG4gICAgICogICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tK1xyXG4gICAgICogICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcclxuICAgICAqICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAgICAgKlxyXG4gICAgICogdG8gZGV0ZXJtaW5lIHRoZSBuZXh0IGFkamFjZW50IGluZGV4LCB3ZSBsb29rIGF0IHRoZSB0YWIgcm9vdCBsZWZ0IGFuZFxyXG4gICAgICogdGFiIHJvb3QgcmlnaHQsIGJvdGggcmVsYXRpdmUgdG8gdGhlIHNjcm9sbCBwb3NpdGlvbi4gaWYgdGhlIHRhYiByb290XHJcbiAgICAgKiBsZWZ0IGlzIGxlc3MgdGhhbiAwLCB0aGVuIHdlIGtub3cgaXQncyBvdXQgb2YgdmlldyB0byB0aGUgbGVmdC4gaWYgdGhlXHJcbiAgICAgKiB0YWIgcm9vdCByaWdodCBtaW51cyB0aGUgYmFyIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiAwLCB3ZSBrbm93IHRoZSB0YWIgaXNcclxuICAgICAqIG91dCBvZiB2aWV3IHRvIHRoZSByaWdodC4gZnJvbSB0aGVyZSwgd2UgZWl0aGVyIGluY3JlbWVudCBvciBkZWNyZW1lbnRcclxuICAgICAqIHRoZSBpbmRleC5cclxuICAgICAqL1xyXG4gICAgY29uc3QgcmVsYXRpdmVSb290TGVmdCA9IHRhYkRpbWVuc2lvbnMucm9vdExlZnQgLSBzY3JvbGxQb3NpdGlvbjtcclxuICAgIGNvbnN0IHJlbGF0aXZlUm9vdFJpZ2h0ID0gdGFiRGltZW5zaW9ucy5yb290UmlnaHQgLSBzY3JvbGxQb3NpdGlvbiAtIGJhcldpZHRoO1xyXG4gICAgY29uc3QgcmVsYXRpdmVSb290RGVsdGEgPSByZWxhdGl2ZVJvb3RMZWZ0ICsgcmVsYXRpdmVSb290UmlnaHQ7XHJcbiAgICBjb25zdCBsZWZ0RWRnZUlzQ2xvc2VyID0gcmVsYXRpdmVSb290TGVmdCA8IDAgfHwgcmVsYXRpdmVSb290RGVsdGEgPCAwO1xyXG4gICAgY29uc3QgcmlnaHRFZGdlSXNDbG9zZXIgPSByZWxhdGl2ZVJvb3RSaWdodCA+IDAgfHwgcmVsYXRpdmVSb290RGVsdGEgPiAwO1xyXG5cclxuICAgIGlmIChsZWZ0RWRnZUlzQ2xvc2VyKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCAtIDE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJpZ2h0RWRnZUlzQ2xvc2VyKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCArIDE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1R5cGUgPT09ICdsZWdhY3knXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFic1wiPlxyXG4gICAgPHVsXHJcbiAgICAgIHJvbGU9XCJ0YWJsaXN0XCJcclxuICAgICAgY2xhc3M9XCJmd2UtbGVnYWN5LXRhYi1iYXJcIlxyXG4gICAgICBbY2xhc3MuZndlLWxlZ2FjeS10YWItYmFyLWZ1bGwtd2lkdGhdPVwiY29uZmlnPy50YWJCYXI/LmZ1bGxXaWR0aFwiXHJcbiAgICAgIFtjbGFzcy5md2UtbGVnYWN5LXRhYi1pdGVtcy1lcXVhbC13aWR0aF09XCInZXF1YWwnID09PSBjb25maWc/LnRhYkl0ZW1zPy5hcHBlYXJhbmNlXCJcclxuICAgICAgW2NsYXNzLmZ3ZS1sZWdhY3ktdGFiLWl0ZW1zLWZpbGxdPVwiJ2ZpbGwnID09PSBjb25maWc/LnRhYkl0ZW1zPy5hcHBlYXJhbmNlXCJcclxuICAgID5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Z3ZS1hY3RpdmUnOiB0YWI/LmFjdGl2ZSwgJ2Z3ZS1kaXNhYmxlZCc6IHRhYj8uZGlzYWJsZWQgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibnVsbCA9PSB0YWI/Lmljb25cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidHJ1ZSA9PT0gdGFiPy5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWxpbmtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd1RhYlBhbmUodGFiLnBhbmVJZClcIlxyXG4gICAgICAgICAgICA+e3sgdGFiLm5hbWUgfX08L2FcclxuICAgICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibnVsbCAhPSB0YWI/Lmljb25cIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidHJ1ZSA9PT0gdGFiPy5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3ZS1sZWdhY3ktdGFiLWxpbmtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd1RhYlBhbmUodGFiLnBhbmVJZClcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZndlLWNhbi1zd2FwLWljb25dPVwiMiA9PT0gdGFicy5sZW5ndGggJiYgMSA9PT0gaVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCInZndlLWljb24gJyArIHRhYi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyB0YWIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZndlLWxlZ2FjeS10YWItcGFuZWwtY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiUGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1R5cGUgIT09ICdsZWdhY3knXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZuZy10YWItYmFyXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyXCIgI3Njcm9sbGVyPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyLXNjcm9sbC1hcmVhIGZuZy10YWItc2Nyb2xsZXItc2Nyb2xsLWFyZWEtLXNjcm9sbFwiXHJcbiAgICAgICAgW2NsYXNzLmZuZy10YWItc2Nyb2xsZXItc2Nyb2xsLWFyZWEtLWNvbXBhY3RdPVwidXNlQ29tcGFjdERlbnNpdHlcIlxyXG4gICAgICAgICNzY3JvbGxBZXJhXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm5nLXRhYi1zY3JvbGxlci1zY3JvbGwtY29udGVudFwiIFtjbGFzcy5mbmctdGFiLXNjcm9sbGVyLXNjcm9sbC1jb250ZW50LS13aXRoLWRpdmlkZXJdPVwic2hvd0RpdmlkZXJcIiAjc2Nyb2xsQ29udGVudD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm5nLXRhYlwiXHJcbiAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCArICctdGFiLScgKyBpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWIucGFuZUlkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlID09PSB0YWI/LmFjdGl2ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJpID09PSAwID8gMCA6IC0xXCJcclxuICAgICAgICAgICAgW2NsYXNzLmZuZy10YWItLWFjdGl2ZV09XCJ0YWI/LmFjdGl2ZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5mbmctdGFiLS1kaXNhYmxlZF09XCJ0YWI/LmRpc2FibGVkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRhYlNjcm9sbCgkZXZlbnQsIGkpOyBzaG93VGFiUGFuZSh0YWIucGFuZUlkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm5nLXRhYi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbmctdGFiLXRleHQtbGFiZWxcIj57eyB0YWIubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZuZy10YWItaW5kaWNhdG9yXCIgW2NsYXNzLmZuZy10YWItaW5kaWNhdG9yLS1hY3RpdmVdPVwidGFiPy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZuZy10YWItaW5kaWNhdG9yLWNvbnRlbnQgZm5nLXRhYi1pbmRpY2F0b3ItY29udGVudC0tdW5kZXJsaW5lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbmctdGFiLXNjcm9sbGVyLWRpdmlkZXItbGluZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZuZy10YWItcGFuZWwtY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiUGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI3RhYlBhbmVsQ29udGVudD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -115,7 +115,7 @@ export class FngCheckboxComponent {
115
115
  useExisting: forwardRef(() => FngCheckboxComponent),
116
116
  multi: true
117
117
  }
118
- ], ngImport: i0, template: "<label\n class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\"\n>\n <input\n type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-checkbox-container{font-family:var(--fwe-font-family-sans-serif);-webkit-user-select:none;user-select:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start}.fwe-checkbox-container.fwe-label-below{align-items:center;flex-direction:column}.fwe-checkbox-container.fwe-label-below .fwe-checkbox-title{text-align:center;margin:8px 0 0}.fwe-checkbox-container.fwe-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-checkbox-container.fwe-label-before .fwe-checkbox-title{margin:0 8px 0 0}.fwe-checkbox-container .fwe-checkbox-indicator-container{margin-top:4px;position:relative}.fwe-checkbox-container input{opacity:0;cursor:pointer;height:0;width:0}.fwe-checkbox-container .fwe-checkbox-title{margin-left:8px;line-height:24px;color:var(--fwe-text);-webkit-user-select:none;user-select:none}.fwe-checkbox-container .fwe-checkbox-indicator-background{box-sizing:border-box;background:var(--fwe-white);border:1px solid var(--fwe-text-light);border-radius:2px;height:16px;width:16px;transition:border-width .2s ease-out}.fwe-checkbox-container .fwe-indeterminate-indicator{position:absolute;height:2px;width:10px;top:7px;left:3px;background:#fff}.fwe-checkbox-container svg{display:block;position:absolute;top:0;left:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-container{margin-top:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-background{height:24px;width:24px;border-radius:4px}.fwe-checkbox-container.fng-checkbox-large .fwe-indeterminate-indicator{top:11px;width:14px;left:5px}.fwe-checkbox-container.fng-checkbox-large.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-large.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:12px solid var(--fwe-hero)}.fwe-checkbox-container:hover .fwe-checkbox-indicator-background{background-color:var(--fwe-control)}.fwe-checkbox-container:active .fwe-checkbox-indicator-background{background-color:var(--fwe-control-dark)}.fwe-checkbox-container.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:8px solid var(--fwe-hero)}.fwe-checkbox-container.fwe-checked:hover .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:hover .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-dark)}.fwe-checkbox-container.fwe-checked:active .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:active .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-darker)}.fwe-checkbox-container.fng-checkbox-invalid .fwe-checkbox-indicator-background{border:1px solid var(--fwe-red);background:var(--fwe-white)}.fwe-checkbox-container.fwe-disabled{cursor:default}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fwe-disabled.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-invalid .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-title{color:var(--fwe-text-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
118
+ ], ngImport: i0, template: "<label\n class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\"\n>\n <input\n type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-checkbox-container{font-family:var(--fwe-font-family-sans-serif);-webkit-user-select:none;user-select:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start}.fwe-checkbox-container.fwe-label-below{align-items:center;flex-direction:column}.fwe-checkbox-container.fwe-label-below .fwe-checkbox-title{text-align:center;margin:8px 0 0}.fwe-checkbox-container.fwe-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-checkbox-container.fwe-label-before .fwe-checkbox-title{margin:0 8px 0 0}.fwe-checkbox-container .fwe-checkbox-indicator-container{margin-top:4px;position:relative}.fwe-checkbox-container input{opacity:0;cursor:pointer;height:0;width:0}.fwe-checkbox-container .fwe-checkbox-title{margin-left:8px;line-height:24px;color:var(--fwe-text);-webkit-user-select:none;user-select:none}.fwe-checkbox-container .fwe-checkbox-indicator-background{box-sizing:border-box;background:var(--fwe-white);border:1px solid var(--fwe-text-light);border-radius:2px;height:16px;width:16px;transition:border-width .2s ease-out}.fwe-checkbox-container .fwe-indeterminate-indicator{position:absolute;height:2px;width:10px;top:7px;left:3px;background:#fff}.fwe-checkbox-container svg{display:block;position:absolute;top:0;left:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-container{margin-top:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-background{height:24px;width:24px;border-radius:4px}.fwe-checkbox-container.fng-checkbox-large .fwe-indeterminate-indicator{top:11px;width:14px;left:5px}.fwe-checkbox-container.fng-checkbox-large.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-large.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:12px solid var(--fwe-hero)}.fwe-checkbox-container:hover .fwe-checkbox-indicator-background{background-color:var(--fwe-control)}.fwe-checkbox-container:active .fwe-checkbox-indicator-background{background-color:var(--fwe-control-hover)}.fwe-checkbox-container.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:8px solid var(--fwe-hero)}.fwe-checkbox-container.fwe-checked:hover .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:hover .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-hover)}.fwe-checkbox-container.fwe-checked:active .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:active .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-active)}.fwe-checkbox-container.fng-checkbox-invalid .fwe-checkbox-indicator-background{border:1px solid var(--fwe-red);background:var(--fwe-white)}.fwe-checkbox-container.fwe-disabled{cursor:default}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fwe-disabled.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-invalid .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-title{color:var(--fwe-text-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
119
119
  }
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FngCheckboxComponent, decorators: [{
121
121
  type: Component,
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
125
125
  useExisting: forwardRef(() => FngCheckboxComponent),
126
126
  multi: true
127
127
  }
128
- ], template: "<label\n class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\"\n>\n <input\n type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-checkbox-container{font-family:var(--fwe-font-family-sans-serif);-webkit-user-select:none;user-select:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start}.fwe-checkbox-container.fwe-label-below{align-items:center;flex-direction:column}.fwe-checkbox-container.fwe-label-below .fwe-checkbox-title{text-align:center;margin:8px 0 0}.fwe-checkbox-container.fwe-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-checkbox-container.fwe-label-before .fwe-checkbox-title{margin:0 8px 0 0}.fwe-checkbox-container .fwe-checkbox-indicator-container{margin-top:4px;position:relative}.fwe-checkbox-container input{opacity:0;cursor:pointer;height:0;width:0}.fwe-checkbox-container .fwe-checkbox-title{margin-left:8px;line-height:24px;color:var(--fwe-text);-webkit-user-select:none;user-select:none}.fwe-checkbox-container .fwe-checkbox-indicator-background{box-sizing:border-box;background:var(--fwe-white);border:1px solid var(--fwe-text-light);border-radius:2px;height:16px;width:16px;transition:border-width .2s ease-out}.fwe-checkbox-container .fwe-indeterminate-indicator{position:absolute;height:2px;width:10px;top:7px;left:3px;background:#fff}.fwe-checkbox-container svg{display:block;position:absolute;top:0;left:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-container{margin-top:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-background{height:24px;width:24px;border-radius:4px}.fwe-checkbox-container.fng-checkbox-large .fwe-indeterminate-indicator{top:11px;width:14px;left:5px}.fwe-checkbox-container.fng-checkbox-large.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-large.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:12px solid var(--fwe-hero)}.fwe-checkbox-container:hover .fwe-checkbox-indicator-background{background-color:var(--fwe-control)}.fwe-checkbox-container:active .fwe-checkbox-indicator-background{background-color:var(--fwe-control-dark)}.fwe-checkbox-container.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:8px solid var(--fwe-hero)}.fwe-checkbox-container.fwe-checked:hover .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:hover .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-dark)}.fwe-checkbox-container.fwe-checked:active .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:active .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-darker)}.fwe-checkbox-container.fng-checkbox-invalid .fwe-checkbox-indicator-background{border:1px solid var(--fwe-red);background:var(--fwe-white)}.fwe-checkbox-container.fwe-disabled{cursor:default}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fwe-disabled.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-invalid .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-title{color:var(--fwe-text-disabled)}\n"] }]
128
+ ], template: "<label\n class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\"\n>\n <input\n type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-checkbox-container{font-family:var(--fwe-font-family-sans-serif);-webkit-user-select:none;user-select:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start}.fwe-checkbox-container.fwe-label-below{align-items:center;flex-direction:column}.fwe-checkbox-container.fwe-label-below .fwe-checkbox-title{text-align:center;margin:8px 0 0}.fwe-checkbox-container.fwe-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-checkbox-container.fwe-label-before .fwe-checkbox-title{margin:0 8px 0 0}.fwe-checkbox-container .fwe-checkbox-indicator-container{margin-top:4px;position:relative}.fwe-checkbox-container input{opacity:0;cursor:pointer;height:0;width:0}.fwe-checkbox-container .fwe-checkbox-title{margin-left:8px;line-height:24px;color:var(--fwe-text);-webkit-user-select:none;user-select:none}.fwe-checkbox-container .fwe-checkbox-indicator-background{box-sizing:border-box;background:var(--fwe-white);border:1px solid var(--fwe-text-light);border-radius:2px;height:16px;width:16px;transition:border-width .2s ease-out}.fwe-checkbox-container .fwe-indeterminate-indicator{position:absolute;height:2px;width:10px;top:7px;left:3px;background:#fff}.fwe-checkbox-container svg{display:block;position:absolute;top:0;left:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-container{margin-top:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-background{height:24px;width:24px;border-radius:4px}.fwe-checkbox-container.fng-checkbox-large .fwe-indeterminate-indicator{top:11px;width:14px;left:5px}.fwe-checkbox-container.fng-checkbox-large.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-large.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:12px solid var(--fwe-hero)}.fwe-checkbox-container:hover .fwe-checkbox-indicator-background{background-color:var(--fwe-control)}.fwe-checkbox-container:active .fwe-checkbox-indicator-background{background-color:var(--fwe-control-hover)}.fwe-checkbox-container.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:8px solid var(--fwe-hero)}.fwe-checkbox-container.fwe-checked:hover .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:hover .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-hover)}.fwe-checkbox-container.fwe-checked:active .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:active .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-active)}.fwe-checkbox-container.fng-checkbox-invalid .fwe-checkbox-indicator-background{border:1px solid var(--fwe-red);background:var(--fwe-white)}.fwe-checkbox-container.fwe-disabled{cursor:default}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fwe-disabled.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-invalid .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-title{color:var(--fwe-text-disabled)}\n"] }]
129
129
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { name: [{
130
130
  type: Input
131
131
  }], large: [{
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
151
151
  }], change: [{
152
152
  type: Output
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFrQnJCLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUNJLEVBQUUsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJ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bkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCxnNkNBd0NBLDg2R0R0QlksWUFBWTs7MkZBY1gsb0JBQW9CO2tCQWhCaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYixjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3NGQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0YsRUFBRTtzQkFETCxLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY0YsYUFBYTtzQkFEaEIsS0FBSztnQkFjRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNhLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFDWSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdmbmctY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdDaGVja2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGbmdDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGxhcmdlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbGlkID0gdHJ1ZTtcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInIHwgJ2JlbG93JyA9ICdhZnRlcic7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1jaGVja2JveC0keysrbmV4dFVuaXF1ZUlkfWA7XG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlubmVySWQ7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlubmVySWQgPSB2YWx1ZSA/IGAke3ZhbHVlfS0keysrbmV4dFVuaXF1ZUlkfWAgOiBgZm5nLWNoZWNrYm94LSR7KytuZXh0VW5pcXVlSWR9YDtcbiAgfVxuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW5uZXJJZH0taW5wdXRgO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDaGVja2VkO1xuICB9XG4gIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuaXNDaGVja2VkID0gdmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzQ2hlY2tlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luZGV0ZXJtaW5hdGU7XG4gIH1cbiAgc2V0IGluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdmFsdWUgIT09IHRoaXMuaXNJbmRldGVybWluYXRlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5pc0luZGV0ZXJtaW5hdGUpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICdmYWxzZSc7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiBudWxsO1xuXG4gIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4gbnVsbDtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbkludGVyYWN0aW9uRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbklucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLmlzSW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICAgIHRoaXMudmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWxcbiAgY2xhc3M9XCJmd2UtY2hlY2tib3gtY29udGFpbmVyXCJcbiAgW2NsYXNzLmZuZy1jaGVja2JveC1sYXJnZV09XCJsYXJnZVwiXG4gIFtjbGFzcy5mbmctY2hlY2tib3gtaW52YWxpZF09XCIhdmFsaWQgfHwgcmVxdWlyZWRcIlxuICBbY2xhc3MuZndlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmZuZy1jaGVja2JveC1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICBbY2xhc3MuZndlLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2UtbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1sYWJlbC1iZWZvcmUnOiBsYWJlbFBvc2l0aW9uID09ICdiZWZvcmUnXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIudmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgKGNoYW5nZSk9XCJvbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC1pbmRpY2F0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC1pbmRpY2F0b3ItYmFja2dyb3VuZFwiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5kZXRlcm1pbmF0ZSAmJiBjaGVja2VkXCI+XG4gICAgICA8c3ZnICpuZ0lmPVwibGFyZ2VcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNMTcuNSA3TDEwIDE0LjUgNy41MDEgMTJsLTEuNSAxLjUwMUwxMCAxNy41bDktOXpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxzdmcgKm5nSWY9XCIhbGFyZ2VcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNiAxMkwzIDlsMS4yNS0xLjI1TDYgOS41bDUuNzUtNS43NUwxMyA1bC03IDd6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cImluZGV0ZXJtaW5hdGUgJiYgIWNoZWNrZWRcIiBjbGFzcz1cImZ3ZS1pbmRldGVybWluYXRlLWluZGljYXRvclwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC10aXRsZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFrQnJCLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUNJLEVBQUUsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJ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bkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCxnNkNBd0NBLGc3R0R0QlksWUFBWTs7MkZBY1gsb0JBQW9CO2tCQWhCaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYixjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3NGQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0YsRUFBRTtzQkFETCxLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY0YsYUFBYTtzQkFEaEIsS0FBSztnQkFjRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNhLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFDWSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdmbmctY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdDaGVja2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGbmdDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGxhcmdlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbGlkID0gdHJ1ZTtcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInIHwgJ2JlbG93JyA9ICdhZnRlcic7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1jaGVja2JveC0keysrbmV4dFVuaXF1ZUlkfWA7XG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlubmVySWQ7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlubmVySWQgPSB2YWx1ZSA/IGAke3ZhbHVlfS0keysrbmV4dFVuaXF1ZUlkfWAgOiBgZm5nLWNoZWNrYm94LSR7KytuZXh0VW5pcXVlSWR9YDtcbiAgfVxuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW5uZXJJZH0taW5wdXRgO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDaGVja2VkO1xuICB9XG4gIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuaXNDaGVja2VkID0gdmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzQ2hlY2tlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luZGV0ZXJtaW5hdGU7XG4gIH1cbiAgc2V0IGluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjaGFuZ2VkID0gdmFsdWUgIT09IHRoaXMuaXNJbmRldGVybWluYXRlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5pc0luZGV0ZXJtaW5hdGUpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICdmYWxzZSc7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiBudWxsO1xuXG4gIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4gbnVsbDtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbkludGVyYWN0aW9uRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbklucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLmlzSW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICAgIHRoaXMudmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWxcbiAgY2xhc3M9XCJmd2UtY2hlY2tib3gtY29udGFpbmVyXCJcbiAgW2NsYXNzLmZuZy1jaGVja2JveC1sYXJnZV09XCJsYXJnZVwiXG4gIFtjbGFzcy5mbmctY2hlY2tib3gtaW52YWxpZF09XCIhdmFsaWQgfHwgcmVxdWlyZWRcIlxuICBbY2xhc3MuZndlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmZuZy1jaGVja2JveC1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICBbY2xhc3MuZndlLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2UtbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1sYWJlbC1iZWZvcmUnOiBsYWJlbFBvc2l0aW9uID09ICdiZWZvcmUnXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIudmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgKGNoYW5nZSk9XCJvbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC1pbmRpY2F0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC1pbmRpY2F0b3ItYmFja2dyb3VuZFwiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5kZXRlcm1pbmF0ZSAmJiBjaGVja2VkXCI+XG4gICAgICA8c3ZnICpuZ0lmPVwibGFyZ2VcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNMTcuNSA3TDEwIDE0LjUgNy41MDEgMTJsLTEuNSAxLjUwMUwxMCAxNy41bDktOXpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxzdmcgKm5nSWY9XCIhbGFyZ2VcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNiAxMkwzIDlsMS4yNS0xLjI1TDYgOS41bDUuNzUtNS43NUwxMyA1bC03IDd6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cImluZGV0ZXJtaW5hdGUgJiYgIWNoZWNrZWRcIiBjbGFzcz1cImZ3ZS1pbmRldGVybWluYXRlLWluZGljYXRvclwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1jaGVja2JveC10aXRsZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19
@@ -88,7 +88,7 @@ export class FngSwitchComponent {
88
88
  useExisting: forwardRef(() => FngSwitchComponent),
89
89
  multi: true
90
90
  }
91
- ], ngImport: i0, template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-dark)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-darker)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-dark)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-darker)}.fwe-switch-container.fwe-disabled .fwe-switch-track,.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
91
+ ], ngImport: i0, template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-hover)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-active)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-hover)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-active)}.fwe-switch-container.fwe-disabled .fwe-switch-track,.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
92
92
  }
93
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FngSwitchComponent, decorators: [{
94
94
  type: Component,
@@ -98,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
98
98
  useExisting: forwardRef(() => FngSwitchComponent),
99
99
  multi: true
100
100
  }
101
- ], template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-dark)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-darker)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-dark)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-darker)}.fwe-switch-container.fwe-disabled .fwe-switch-track,.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"] }]
101
+ ], template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{min-width:32px;box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-hover)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-active)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-hover)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-active)}.fwe-switch-container.fwe-disabled .fwe-switch-track,.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"] }]
102
102
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { name: [{
103
103
  type: Input
104
104
  }], large: [{
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
118
118
  }], change: [{
119
119
  type: Output
120
120
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQWtCckIsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQ0ksRUFBRSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFVO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBS0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUtELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXRENUMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGtCQUFhLEdBQWlDLFFBQVEsQ0FBQztRQUV4RCxZQUFPLEdBQUcsY0FBYyxFQUFFLFlBQVksRUFBRSxDQUFDO1FBdUJ6QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBYWxCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFXbkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVqQixXQUFNLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFFdkIsQ0FBQztJQU16RCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQXdCO1FBQ3ZDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFZO1FBQzdCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyw0QkFBNEIsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0FsR1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsNFBBUmxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCw2cEJBeUJBLHc0RURQWSxZQUFZOzsyRkFjWCxrQkFBa0I7a0JBaEI5QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0ZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9GLEVBQUU7c0JBREwsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFHLEtBQUs7c0JBQWIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBU2EsTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXN3aXRjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm5nU3dpdGNoQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1N3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBsYXJnZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCAnYmVsb3cnID0gJ2JlZm9yZSc7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lcklkO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbm5lcklkID0gdmFsdWUgPyBgJHt2YWx1ZX0tJHsrK25leHRVbmlxdWVJZH1gIDogYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICB9XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pbm5lcklkfS1pbnB1dGA7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrZWQ7XG4gIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNDaGVja2VkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKCh2YWx1ZTogYW55KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBvblRvdWNoZWQ6ICgoKSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWxcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2Utc3dpdGNoLWNvbnRhaW5lcic6IHRydWUsXG4gICAgJ2Z3ZS1jaGVja2VkJzogY2hlY2tlZCxcbiAgICAnZndlLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVmb3JlJzogbGFiZWxQb3NpdGlvbiA9PSAnYmVmb3JlJyxcbiAgICAnZndlLXN3aXRjaC1sZyc6IGxhcmdlXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICB0aXRsZT1cImNoZWNrYm94XCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIChjaGFuZ2UpPVwib25JbnRlcmFjdGlvbkV2ZW50KCRldmVudClcIlxuICAgIChjbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtdHJhY2tcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtbGFiZWwtY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQWtCckIsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQ0ksRUFBRSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxL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QkFBa0IsQ0FBQztnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCw2cEJBeUJBLDA0RURQWSxZQUFZOzsyRkFjWCxrQkFBa0I7a0JBaEI5QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0ZBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9GLEVBQUU7c0JBREwsS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFHLEtBQUs7c0JBQWIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBU2EsTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXN3aXRjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zd2l0Y2guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm5nU3dpdGNoQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1N3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBsYXJnZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCAnYmVsb3cnID0gJ2JlZm9yZSc7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lcklkO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbm5lcklkID0gdmFsdWUgPyBgJHt2YWx1ZX0tJHsrK25leHRVbmlxdWVJZH1gIDogYGZuZy1zd2l0Y2gtJHsrK25leHRVbmlxdWVJZH1gO1xuICB9XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pbm5lcklkfS1pbnB1dGA7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrZWQ7XG4gIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNDaGVja2VkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKCh2YWx1ZTogYW55KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBvblRvdWNoZWQ6ICgoKSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGFiZWxcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2Utc3dpdGNoLWNvbnRhaW5lcic6IHRydWUsXG4gICAgJ2Z3ZS1jaGVja2VkJzogY2hlY2tlZCxcbiAgICAnZndlLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1zd2l0Y2gtbGFiZWwtYmVmb3JlJzogbGFiZWxQb3NpdGlvbiA9PSAnYmVmb3JlJyxcbiAgICAnZndlLXN3aXRjaC1sZyc6IGxhcmdlXG4gIH1cIlxuPlxuICA8aW5wdXRcbiAgICB0aXRsZT1cImNoZWNrYm94XCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIChjaGFuZ2UpPVwib25JbnRlcmFjdGlvbkV2ZW50KCRldmVudClcIlxuICAgIChjbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtdHJhY2tcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zd2l0Y2gtbGFiZWwtY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2xhYmVsPlxuIl19