{"version":3,"file":"finastra-angular-components-breadcrumb.mjs","sources":["../tmp-esm2022/breadcrumb/src/breadcrumb.component.js","../tmp-esm2022/breadcrumb/finastra-angular-components-breadcrumb.js"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Breakpoints } from '@angular/cdk/layout';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Attribute, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterLink } from '@angular/router';\nimport { Subject, combineLatest } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/cdk/layout\";\nimport * as i3 from \"@angular/material/icon\";\nimport * as i4 from \"@angular/material/button\";\nimport * as i5 from \"@angular/material/menu\";\nimport * as i6 from \"@angular/material/list\";\nexport class UxgBreadcrumbComponent {\n    get breadcrumbs() {\n        if (this.shouldDisplayBackButton) {\n            return this._breadcrumbs && this._breadcrumbs.length > 0 ? [this._breadcrumbs[this._breadcrumbs.length - 1]] : [];\n        }\n        return this._breadcrumbs;\n    }\n    set breadcrumbs(value) {\n        this._breadcrumbs = value;\n        this.breadcrumbs$.next(value);\n    }\n    get enableBackButton() {\n        return this._enableBackButton;\n    }\n    set enableBackButton(value) {\n        this._enableBackButton = coerceBooleanProperty(value);\n    }\n    constructor(dense, color, router, breakpointObserver, cd) {\n        this.dense = dense;\n        this.color = color;\n        this.router = router;\n        this.breakpointObserver = breakpointObserver;\n        this.cd = cd;\n        this.breadcrumbs$ = new Subject();\n        this._breadcrumbs = [];\n        this._enableBackButton = true;\n        /**\n         * Back button can be displayed only in mobile mode and if breadscrumb have more than two items.\n         */\n        this.shouldDisplayBackButton = false;\n        this.destroyed$ = new Subject();\n        combineLatest([this.breakpointObserver.observe([Breakpoints.HandsetPortrait]).pipe(map((result) => result.matches)), this.breadcrumbs$])\n            .pipe(map(([isMobile, breadcrumbs]) => {\n            return isMobile && breadcrumbs && breadcrumbs.length > 2;\n        }), takeUntil(this.destroyed$))\n            .subscribe((value) => {\n            this.shouldDisplayBackButton = value;\n            this.cd.markForCheck();\n        });\n    }\n    ngOnDestroy() {\n        this.destroyed$.next();\n        this.destroyed$.complete();\n    }\n    backToPreviousPage() {\n        if (this._breadcrumbs.length > 2) {\n            const parentUrl = this._breadcrumbs[this._breadcrumbs.length - 2].url;\n            if (parentUrl) {\n                this.router.navigateByUrl(parentUrl);\n            }\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: UxgBreadcrumbComponent, deps: [{ token: 'dense', attribute: true }, { token: 'color', attribute: true }, { token: i1.Router }, { token: i2.BreakpointObserver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: UxgBreadcrumbComponent, isStandalone: true, selector: \"uxg-breadcrumb\", inputs: { breadcrumbs: \"breadcrumbs\", enableBackButton: \"enableBackButton\" }, host: { classAttribute: \"uxg-breadcrumb\" }, ngImport: i0, template: \"<ul class=\\\"uxg-breadcrumb\\\" [attr.dense]=\\\"dense === '' ? '' : null\\\" [attr.color]=\\\"color !== '' ? color : null\\\">\\n  <!-- back button -->\\n  @if (shouldDisplayBackButton && enableBackButton) {\\n    <li class=\\\"uxg-breadcrumb-back\\\">\\n      <mat-icon class=\\\"uxg-breadcrumb-back\\\" [color]=\\\"color\\\" (click)=\\\"backToPreviousPage()\\\">chevron_left</mat-icon>\\n    </li>\\n  }\\n\\n  @for (breadcrumbItem of breadcrumbs; track breadcrumbItem.url; let isLast = $last) {\\n    @if (!isLast) {\\n      <ng-template [ngTemplateOutlet]=\\\"linkItem\\\" [ngTemplateOutletContext]=\\\"{ item: breadcrumbItem }\\\"></ng-template>\\n    } @else {\\n      <!-- whether last item has items data -->\\n      @if (breadcrumbItem.items) {\\n        <li>\\n          <button mat-flat-button [matMenuTriggerFor]=\\\"menu\\\" disableRipple=\\\"true\\\" [color]=\\\"color\\\">\\n            <span [class]=\\\"breadcrumbItem.itemClass\\\">{{ breadcrumbItem.label }}</span>\\n            <mat-icon>expand_more</mat-icon>\\n          </button>\\n          <mat-menu #menu=\\\"matMenu\\\" class=\\\"uxg-breadcrumb-menu\\\">\\n            <mat-nav-list class=\\\"uxg-nav-list-level\\\">\\n              @for (item of breadcrumbItem.items; track item.url) {\\n                <a\\n                  [routerLink]=\\\"item.url\\\"\\n                  [queryParamsHandling]=\\\"item.queryParamsHandling\\\"\\n                  [ngClass]=\\\"{ 'uxg-list-item-selected': item.label === breadcrumbItem.label }\\\"\\n                  mat-list-item\\n                >\\n                  <mat-icon matListItemIcon>{{ item.icon ? item.icon : 'filter_none' }}</mat-icon>\\n                  <p matListItemTitle>{{ item.label }}</p>\\n                </a>\\n              }\\n            </mat-nav-list>\\n          </mat-menu>\\n        </li>\\n      }\\n      <!-- display last item as a normal linkItem -->\\n      @if (!breadcrumbItem.items) {\\n        <ng-template [ngTemplateOutlet]=\\\"linkItem\\\" [ngTemplateOutletContext]=\\\"{ item: breadcrumbItem }\\\"></ng-template>\\n      }\\n    }\\n    <!-- Last item template -->\\n  }\\n</ul>\\n\\n<!-- LinkItem template -->\\n<ng-template #linkItem let-breadcrumbItem=\\\"item\\\">\\n  <li [class]=\\\"breadcrumbItem.itemClass\\\">\\n    @if (breadcrumbItem.url) {\\n      <a [routerLink]=\\\"breadcrumbItem.url\\\" [queryParamsHandling]=\\\"breadcrumbItem.queryParamsHandling\\\">{{ breadcrumbItem.label }}</a>\\n    }\\n    @if (!breadcrumbItem.url) {\\n      {{ breadcrumbItem.label }}\\n    }\\n  </li>\\n</ng-template>\\n\", dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i4.MatButton, selector: \"    button[matButton], a[matButton], button[mat-button], button[mat-raised-button],    button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button],    a[mat-flat-button], a[mat-stroked-button]  \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i5.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"directive\", type: i5.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"ngmodule\", type: MatListModule }, { kind: \"component\", type: i6.MatNavList, selector: \"mat-nav-list\", exportAs: [\"matNavList\"] }, { kind: \"component\", type: i6.MatListItem, selector: \"mat-list-item, a[mat-list-item], button[mat-list-item]\", inputs: [\"activated\"], exportAs: [\"matListItem\"] }, { kind: \"directive\", type: i6.MatListItemIcon, selector: \"[matListItemIcon]\" }, { kind: \"directive\", type: i6.MatListItemTitle, selector: \"[matListItemTitle]\" }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: UxgBreadcrumbComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'uxg-breadcrumb', host: {\n                        class: 'uxg-breadcrumb'\n                    }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, NgTemplateOutlet, MatButtonModule, MatMenuModule, MatListModule, RouterLink, NgClass], template: \"<ul class=\\\"uxg-breadcrumb\\\" [attr.dense]=\\\"dense === '' ? '' : null\\\" [attr.color]=\\\"color !== '' ? color : null\\\">\\n  <!-- back button -->\\n  @if (shouldDisplayBackButton && enableBackButton) {\\n    <li class=\\\"uxg-breadcrumb-back\\\">\\n      <mat-icon class=\\\"uxg-breadcrumb-back\\\" [color]=\\\"color\\\" (click)=\\\"backToPreviousPage()\\\">chevron_left</mat-icon>\\n    </li>\\n  }\\n\\n  @for (breadcrumbItem of breadcrumbs; track breadcrumbItem.url; let isLast = $last) {\\n    @if (!isLast) {\\n      <ng-template [ngTemplateOutlet]=\\\"linkItem\\\" [ngTemplateOutletContext]=\\\"{ item: breadcrumbItem }\\\"></ng-template>\\n    } @else {\\n      <!-- whether last item has items data -->\\n      @if (breadcrumbItem.items) {\\n        <li>\\n          <button mat-flat-button [matMenuTriggerFor]=\\\"menu\\\" disableRipple=\\\"true\\\" [color]=\\\"color\\\">\\n            <span [class]=\\\"breadcrumbItem.itemClass\\\">{{ breadcrumbItem.label }}</span>\\n            <mat-icon>expand_more</mat-icon>\\n          </button>\\n          <mat-menu #menu=\\\"matMenu\\\" class=\\\"uxg-breadcrumb-menu\\\">\\n            <mat-nav-list class=\\\"uxg-nav-list-level\\\">\\n              @for (item of breadcrumbItem.items; track item.url) {\\n                <a\\n                  [routerLink]=\\\"item.url\\\"\\n                  [queryParamsHandling]=\\\"item.queryParamsHandling\\\"\\n                  [ngClass]=\\\"{ 'uxg-list-item-selected': item.label === breadcrumbItem.label }\\\"\\n                  mat-list-item\\n                >\\n                  <mat-icon matListItemIcon>{{ item.icon ? item.icon : 'filter_none' }}</mat-icon>\\n                  <p matListItemTitle>{{ item.label }}</p>\\n                </a>\\n              }\\n            </mat-nav-list>\\n          </mat-menu>\\n        </li>\\n      }\\n      <!-- display last item as a normal linkItem -->\\n      @if (!breadcrumbItem.items) {\\n        <ng-template [ngTemplateOutlet]=\\\"linkItem\\\" [ngTemplateOutletContext]=\\\"{ item: breadcrumbItem }\\\"></ng-template>\\n      }\\n    }\\n    <!-- Last item template -->\\n  }\\n</ul>\\n\\n<!-- LinkItem template -->\\n<ng-template #linkItem let-breadcrumbItem=\\\"item\\\">\\n  <li [class]=\\\"breadcrumbItem.itemClass\\\">\\n    @if (breadcrumbItem.url) {\\n      <a [routerLink]=\\\"breadcrumbItem.url\\\" [queryParamsHandling]=\\\"breadcrumbItem.queryParamsHandling\\\">{{ breadcrumbItem.label }}</a>\\n    }\\n    @if (!breadcrumbItem.url) {\\n      {{ breadcrumbItem.label }}\\n    }\\n  </li>\\n</ng-template>\\n\" }]\n        }], ctorParameters: () => [{ type: undefined, decorators: [{\n                    type: Attribute,\n                    args: ['dense']\n                }] }, { type: undefined, decorators: [{\n                    type: Attribute,\n                    args: ['color']\n                }] }, { type: i1.Router }, { type: i2.BreakpointObserver }, { type: i0.ChangeDetectorRef }], propDecorators: { breadcrumbs: [{\n                type: Input\n            }], enableBackButton: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9icmVhZGNydW1iL3NyYy9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL2JyZWFkY3J1bWIvc3JjL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBYWhELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsSUFDVyxXQUFXO1FBQ3BCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFD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bENULHNCQUFzQixvTUN2Qm5DLHkzRUF3REEsMkNEbkNZLGFBQWEsb0xBQUUsZ0JBQWdCLG1KQUFFLGVBQWUsbVhBQUUsYUFBYSx5bUJBQUUsYUFBYSxvY0FBRSxVQUFVLG9PQUFFLE9BQU87OzJGQUVsRyxzQkFBc0I7a0JBWGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLFFBRXBCO3dCQUNKLEtBQUssRUFBRSxnQkFBZ0I7cUJBQ3hCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7OzBCQW1DM0csU0FBUzsyQkFBQyxPQUFPOzswQkFDakIsU0FBUzsyQkFBQyxPQUFPOytIQTdCVCxXQUFXO3NCQURyQixLQUFLO2dCQWNLLGdCQUFnQjtzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4vYnJlYWRjcnVtYic7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1eGctYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAndXhnLWJyZWFkY3J1bWInXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBNYXRMaXN0TW9kdWxlLCBSb3V0ZXJMaW5rLCBOZ0NsYXNzXVxufSlcbmV4cG9ydCBjbGFzcyBVeGdCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBicmVhZGNydW1icyQgPSBuZXcgU3ViamVjdDxCcmVhZGNydW1iW10+KCk7XG5cbiAgcHJpdmF0ZSBfYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGJyZWFkY3J1bWJzKCk6IEJyZWFkY3J1bWJbXSB7XG4gICAgaWYgKHRoaXMuc2hvdWxkRGlzcGxheUJhY2tCdXR0b24pIHtcbiAgICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1icyAmJiB0aGlzLl9icmVhZGNydW1icy5sZW5ndGggPiAwID8gW3RoaXMuX2JyZWFkY3J1bWJzW3RoaXMuX2JyZWFkY3J1bWJzLmxlbmd0aCAtIDFdXSA6IFtdO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM7XG4gIH1cbiAgcHVibGljIHNldCBicmVhZGNydW1icyh2YWx1ZTogQnJlYWRjcnVtYltdKSB7XG4gICAgdGhpcy5fYnJlYWRjcnVtYnMgPSB2YWx1ZTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZUJhY2tCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGVuYWJsZUJhY2tCdXR0b24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZUJhY2tCdXR0b247XG4gIH1cbiAgcHVibGljIHNldCBlbmFibGVCYWNrQnV0dG9uKHZhbHVlKSB7XG4gICAgdGhpcy5fZW5hYmxlQmFja0J1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQmFjayBidXR0b24gY2FuIGJlIGRpc3BsYXllZCBvbmx5IGluIG1vYmlsZSBtb2RlIGFuZCBpZiBicmVhZHNjcnVtYiBoYXZlIG1vcmUgdGhhbiB0d28gaXRlbXMuXG4gICAqL1xuICBzaG91bGREaXNwbGF5QmFja0J1dHRvbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgnZGVuc2UnKSBwdWJsaWMgZGVuc2U6IGFueSxcbiAgICBAQXR0cmlidXRlKCdjb2xvcicpIHB1YmxpYyBjb2xvcjogYW55LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0UG9ydHJhaXRdKS5waXBlKG1hcCgocmVzdWx0KSA9PiByZXN1bHQubWF0Y2hlcykpLCB0aGlzLmJyZWFkY3J1bWJzJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbaXNNb2JpbGUsIGJyZWFkY3J1bWJzXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpc01vYmlsZSAmJiBicmVhZGNydW1icyAmJiBicmVhZGNydW1icy5sZW5ndGggPiAyO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheUJhY2tCdXR0b24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGJhY2tUb1ByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoID4gMikge1xuICAgICAgY29uc3QgcGFyZW50VXJsID0gdGhpcy5fYnJlYWRjcnVtYnNbdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoIC0gMl0udXJsO1xuICAgICAgaWYgKHBhcmVudFVybCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHBhcmVudFVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJ1eGctYnJlYWRjcnVtYlwiIFthdHRyLmRlbnNlXT1cImRlbnNlID09PSAnJyA/ICcnIDogbnVsbFwiIFthdHRyLmNvbG9yXT1cImNvbG9yICE9PSAnJyA/IGNvbG9yIDogbnVsbFwiPlxuICA8IS0tIGJhY2sgYnV0dG9uIC0tPlxuICBAaWYgKHNob3VsZERpc3BsYXlCYWNrQnV0dG9uICYmIGVuYWJsZUJhY2tCdXR0b24pIHtcbiAgICA8bGkgY2xhc3M9XCJ1eGctYnJlYWRjcnVtYi1iYWNrXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJ1eGctYnJlYWRjcnVtYi1iYWNrXCIgW2NvbG9yXT1cImNvbG9yXCIgKGNsaWNrKT1cImJhY2tUb1ByZXZpb3VzUGFnZSgpXCI+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICA8L2xpPlxuICB9XG5cbiAgQGZvciAoYnJlYWRjcnVtYkl0ZW0gb2YgYnJlYWRjcnVtYnM7IHRyYWNrIGJyZWFkY3J1bWJJdGVtLnVybDsgbGV0IGlzTGFzdCA9ICRsYXN0KSB7XG4gICAgQGlmICghaXNMYXN0KSB7XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlua0l0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBicmVhZGNydW1iSXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDwhLS0gd2hldGhlciBsYXN0IGl0ZW0gaGFzIGl0ZW1zIGRhdGEgLS0+XG4gICAgICBAaWYgKGJyZWFkY3J1bWJJdGVtLml0ZW1zKSB7XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGRpc2FibGVSaXBwbGU9XCJ0cnVlXCIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiYnJlYWRjcnVtYkl0ZW0uaXRlbUNsYXNzXCI+e3sgYnJlYWRjcnVtYkl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInV4Zy1icmVhZGNydW1iLW1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtbmF2LWxpc3QgY2xhc3M9XCJ1eGctbmF2LWxpc3QtbGV2ZWxcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBicmVhZGNydW1iSXRlbS5pdGVtczsgdHJhY2sgaXRlbS51cmwpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiaXRlbS5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3V4Zy1saXN0LWl0ZW0tc2VsZWN0ZWQnOiBpdGVtLmxhYmVsID09PSBicmVhZGNydW1iSXRlbS5sYWJlbCB9XCJcbiAgICAgICAgICAgICAgICAgIG1hdC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uPnt7IGl0ZW0uaWNvbiA/IGl0ZW0uaWNvbiA6ICdmaWx0ZXJfbm9uZScgfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPHAgbWF0TGlzdEl0ZW1UaXRsZT57eyBpdGVtLmxhYmVsIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtbmF2LWxpc3Q+XG4gICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIDwhLS0gZGlzcGxheSBsYXN0IGl0ZW0gYXMgYSBub3JtYWwgbGlua0l0ZW0gLS0+XG4gICAgICBAaWYgKCFicmVhZGNydW1iSXRlbS5pdGVtcykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlua0l0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBicmVhZGNydW1iSXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICB9XG4gICAgPCEtLSBMYXN0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gIH1cbjwvdWw+XG5cbjwhLS0gTGlua0l0ZW0gdGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI2xpbmtJdGVtIGxldC1icmVhZGNydW1iSXRlbT1cIml0ZW1cIj5cbiAgPGxpIFtjbGFzc109XCJicmVhZGNydW1iSXRlbS5pdGVtQ2xhc3NcIj5cbiAgICBAaWYgKGJyZWFkY3J1bWJJdGVtLnVybCkge1xuICAgICAgPGEgW3JvdXRlckxpbmtdPVwiYnJlYWRjcnVtYkl0ZW0udXJsXCIgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiYnJlYWRjcnVtYkl0ZW0ucXVlcnlQYXJhbXNIYW5kbGluZ1wiPnt7IGJyZWFkY3J1bWJJdGVtLmxhYmVsIH19PC9hPlxuICAgIH1cbiAgICBAaWYgKCFicmVhZGNydW1iSXRlbS51cmwpIHtcbiAgICAgIHt7IGJyZWFkY3J1bWJJdGVtLmxhYmVsIH19XG4gICAgfVxuICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYXN0cmEtYW5ndWxhci1jb21wb25lbnRzLWJyZWFkY3J1bWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9icmVhZGNydW1iL2ZpbmFzdHJhLWFuZ3VsYXItY29tcG9uZW50cy1icmVhZGNydW1iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}