aril 1.2.18 → 2.0.1-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/boot/bridge/src/mfe-bridge.d.ts +42 -2
- package/boot/config/apps/index.d.ts +7 -1
- package/boot/config/apps/src/custom-reuse-outlet.component.d.ts +37 -0
- package/boot/config/apps/src/custom-route-reuse-strategy.class.d.ts +156 -0
- package/boot/config/apps/src/nav-link-context-menu.service.d.ts +33 -0
- package/boot/config/apps/src/nav-link.directive.d.ts +29 -0
- package/boot/config/apps/src/nav.service.d.ts +198 -0
- package/boot/config/apps/src/route-close.service.d.ts +9 -0
- package/boot/config/apps/src/safe-navigate.d.ts +17 -0
- package/boot/config/apps/src/tab-aware-url-serializer.d.ts +22 -0
- package/boot/config/plugins/src/getNgZone.d.ts +9 -1
- package/boot/mfe/src/app.component.d.ts +15 -4
- package/boot/mfe/src/isolated-location-strategy.d.ts +57 -0
- package/esm2022/boot/bridge/src/mfe-bridge.mjs +36 -5
- package/esm2022/boot/config/api/src/api.service.mjs +12 -3
- package/esm2022/boot/config/apps/index.mjs +8 -2
- package/esm2022/boot/config/apps/src/apps.service.mjs +14 -6
- package/esm2022/boot/config/apps/src/custom-reuse-outlet.component.mjs +207 -0
- package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +540 -0
- package/esm2022/boot/config/apps/src/nav-link-context-menu.service.mjs +105 -0
- package/esm2022/boot/config/apps/src/nav-link.directive.mjs +45 -0
- package/esm2022/boot/config/apps/src/nav.service.mjs +675 -0
- package/esm2022/boot/config/apps/src/route-close.service.mjs +19 -0
- package/esm2022/boot/config/apps/src/safe-navigate.mjs +50 -0
- package/esm2022/boot/config/apps/src/tab-aware-url-serializer.mjs +50 -0
- package/esm2022/boot/config/plugins/src/getNgZone.mjs +13 -5
- package/esm2022/boot/host/src/app.component.mjs +1 -2
- package/esm2022/boot/host/src/bootstrap.mjs +22 -7
- package/esm2022/boot/mfe/src/app.component.mjs +143 -39
- package/esm2022/boot/mfe/src/bootstrap.mjs +197 -20
- package/esm2022/boot/mfe/src/isolated-location-strategy.mjs +142 -0
- package/esm2022/keycloak/src/auth.interceptor.mjs +17 -2
- package/esm2022/provider/src/prodiveHost.mjs +3 -5
- package/esm2022/provider/src/prodiveHostRouter.mjs +88 -9
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +81 -19
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +6 -4
- package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
- package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +6 -4
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +422 -20
- package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +24 -35
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +6 -4
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +85 -27
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +3 -3
- package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +86 -0
- package/esm2022/theme/layout/service/tab-session.service.mjs +126 -0
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +15 -7
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +29 -9
- package/fesm2022/aril-app.component-s14ruALV.mjs +183 -0
- package/fesm2022/aril-app.component-s14ruALV.mjs.map +1 -0
- package/fesm2022/aril-boot-bridge.mjs +35 -4
- package/fesm2022/aril-boot-bridge.mjs.map +1 -1
- package/fesm2022/aril-boot-config-api.mjs +11 -2
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +1678 -10
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +12 -4
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +21 -7
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/aril-boot-mfe-app.component-a34GeuUv.mjs +183 -0
- package/fesm2022/aril-boot-mfe-app.component-a34GeuUv.mjs.map +1 -0
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-KFO_X7yR.mjs +631 -0
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-KFO_X7yR.mjs.map +1 -0
- package/fesm2022/aril-boot-mfe.mjs +5 -3
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs +16 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-provider.mjs +90 -12
- package/fesm2022/aril-provider.mjs.map +1 -1
- package/fesm2022/aril-theme-layout.mjs +2630 -2017
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-business-ref-value.mjs +14 -6
- package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs +28 -8
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
- package/fesm2022/aril.mjs +354 -25
- package/fesm2022/aril.mjs.map +1 -1
- package/keycloak/src/auth.interceptor.d.ts +7 -0
- package/package.json +216 -216
- package/provider/src/prodiveHost.d.ts +1 -0
- package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +21 -4
- package/theme/layout/app/expandableMenu/expandable-menu.component.html +19 -5
- package/theme/layout/app/expandableMenu/expandable-menu.component.ts +69 -9
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +1 -0
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +3 -1
- package/theme/layout/app/general-search/general-search.component.html +2 -1
- package/theme/layout/app/general-search/general-search.component.ts +2 -2
- package/theme/layout/app/history/history-sidebar.component.html +3 -1
- package/theme/layout/app/history/history-sidebar.component.ts +3 -1
- package/theme/layout/app/layout/app.layout.component.d.ts +105 -5
- package/theme/layout/app/layout/app.layout.component.html +102 -1
- package/theme/layout/app/layout/app.layout.component.scss +372 -0
- package/theme/layout/app/layout/app.layout.component.ts +452 -13
- package/theme/layout/app/layout/mfe.layout.component.d.ts +7 -5
- package/theme/layout/app/layout/mfe.layout.component.ts +13 -39
- package/theme/layout/app/site-map/site-map-sidebar.component.html +1 -0
- package/theme/layout/app/site-map/site-map-sidebar.component.ts +3 -1
- package/theme/layout/app/static-sidebar/static-sidebar.component.d.ts +26 -5
- package/theme/layout/app/static-sidebar/static-sidebar.component.html +11 -5
- package/theme/layout/app/static-sidebar/static-sidebar.component.ts +68 -13
- package/theme/layout/app/topbar/app.topbar.component.html +0 -1
- package/theme/layout/app/topbar/app.topbar.component.scss +1 -1
- package/theme/layout/service/breadcrumb-publisher.service.d.ts +24 -0
- package/theme/layout/service/breadcrumb-publisher.service.ts +95 -0
- package/theme/layout/service/tab-session.service.d.ts +52 -0
- package/theme/layout/service/tab-session.service.ts +138 -0
- package/theme/styles/layout/_breadcrumb.scss +95 -0
- package/theme/styles/layout/_content.scss +2 -2
- package/ui-business/ref-value/src/ref-value.component.d.ts +4 -2
- package/util/sync-active-tab-route/src/sync-active-tab-route.directive.d.ts +15 -2
- package/boot/config/apps/src/reuse-strategy.d.ts +0 -4
- package/esm2022/boot/config/apps/src/reuse-strategy.mjs +0 -9
- package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +0 -107
- package/fesm2022/aril-app.component-wxP3y8dg.mjs +0 -81
- package/fesm2022/aril-app.component-wxP3y8dg.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-app.component-7IjAmjz0.mjs +0 -80
- package/fesm2022/aril-boot-mfe-app.component-7IjAmjz0.mjs.map +0 -1
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs +0 -315
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map +0 -1
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +0 -25
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +0 -8
- package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +0 -127
|
@@ -10,6 +10,7 @@ import { SidebarModule } from 'primeng/sidebar';
|
|
|
10
10
|
import { TooltipModule } from 'primeng/tooltip';
|
|
11
11
|
import { TranslocoModule } from '@ngneat/transloco';
|
|
12
12
|
import { Subject, switchMap } from 'rxjs';
|
|
13
|
+
import { NavLinkDirective } from 'aril/boot/config/apps';
|
|
13
14
|
import { ButtonComponent } from 'aril/ui/button';
|
|
14
15
|
import { AddEditFavoriteModalComponent } from './modals/add-edit-favorite-modal/add-edit-favorite-modal.component';
|
|
15
16
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
@@ -197,7 +198,7 @@ export class FavoritePagesSidebarComponent {
|
|
|
197
198
|
return this.favoritePagesService.getFullUrl(url);
|
|
198
199
|
}
|
|
199
200
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FavoritePagesSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.FavoritePagesService }, { token: i3.ConfirmationService }, { token: i3.MessageService }, { token: i4.DialogService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
200
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: FavoritePagesSidebarComponent, isStandalone: true, selector: "app-favorite-pages-sidebar", providers: [ConfirmationService, DialogService], ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-favorite-pages-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'favoritePages'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"favorite-pages-content\">\r\n\t\t@if (isCurrentPageFavorited()) {\r\n\t\t\t<div class=\"current-favorited-message\">\r\n\t\t\t\t<div class=\"message-content\">\r\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\r\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"add-section\">\r\n\t\t\t@if (!isCurrentPageFavorited()) {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t} @else {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\r\n\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (favoritePages().length > 0) {\r\n\t\t\t<div class=\"favorites-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"favorites-items\">\r\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\r\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\r\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-heart empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t\t<div>\r\n\t\t\t<p-paginator\r\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\r\n\t\t\t\t[rows]=\"pageSize()\"\r\n\t\t\t\t[totalRecords]=\"totalItems()\"\r\n\t\t\t\t[showCurrentPageReport]=\"true\"\r\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\r\n\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\r\n\t\t\t</p-paginator>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i9.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "ngmodule", type: DynamicDialogModule }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i11.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
201
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: FavoritePagesSidebarComponent, isStandalone: true, selector: "app-favorite-pages-sidebar", providers: [ConfirmationService, DialogService], ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-favorite-pages-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'favoritePages'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"favorite-pages-content\">\r\n\t\t@if (isCurrentPageFavorited()) {\r\n\t\t\t<div class=\"current-favorited-message\">\r\n\t\t\t\t<div class=\"message-content\">\r\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\r\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"add-section\">\r\n\t\t\t@if (!isCurrentPageFavorited()) {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t} @else {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\r\n\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (favoritePages().length > 0) {\r\n\t\t\t<div class=\"favorites-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"favorites-items\">\r\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\r\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\r\n\t\t\t\t\t\t\t\t[arilNavLink]=\"{ tabId: '', navLink: favorite.url, navName: favorite.label }\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\r\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-heart empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t\t<div>\r\n\t\t\t<p-paginator\r\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\r\n\t\t\t\t[rows]=\"pageSize()\"\r\n\t\t\t\t[totalRecords]=\"totalItems()\"\r\n\t\t\t\t[showCurrentPageReport]=\"true\"\r\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\r\n\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\r\n\t\t\t</p-paginator>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i9.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "ngmodule", type: DynamicDialogModule }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i11.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: NavLinkDirective, selector: "[arilNavLink]", inputs: ["arilNavLink"] }] }); }
|
|
201
202
|
}
|
|
202
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FavoritePagesSidebarComponent, decorators: [{
|
|
203
204
|
type: Component,
|
|
@@ -211,7 +212,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
211
212
|
ButtonComponent,
|
|
212
213
|
TranslocoModule,
|
|
213
214
|
TooltipModule,
|
|
214
|
-
FontAwesomeModule
|
|
215
|
-
|
|
215
|
+
FontAwesomeModule,
|
|
216
|
+
NavLinkDirective
|
|
217
|
+
], providers: [ConfirmationService, DialogService], template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-favorite-pages-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'favoritePages'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"favorite-pages-content\">\r\n\t\t@if (isCurrentPageFavorited()) {\r\n\t\t\t<div class=\"current-favorited-message\">\r\n\t\t\t\t<div class=\"message-content\">\r\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\r\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"add-section\">\r\n\t\t\t@if (!isCurrentPageFavorited()) {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t} @else {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\r\n\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (favoritePages().length > 0) {\r\n\t\t\t<div class=\"favorites-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"favorites-items\">\r\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\r\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\r\n\t\t\t\t\t\t\t\t[arilNavLink]=\"{ tabId: '', navLink: favorite.url, navName: favorite.label }\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\r\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-heart empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t\t<div>\r\n\t\t\t<p-paginator\r\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\r\n\t\t\t\t[rows]=\"pageSize()\"\r\n\t\t\t\t[totalRecords]=\"totalItems()\"\r\n\t\t\t\t[showCurrentPageReport]=\"true\"\r\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\r\n\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\r\n\t\t\t</p-paginator>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"] }]
|
|
216
218
|
}], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.FavoritePagesService }, { type: i3.ConfirmationService }, { type: i3.MessageService }, { type: i4.DialogService }, { type: i5.TranslocoService }] });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvZmF2b3JpdGUtcGFnZXMvZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvZmF2b3JpdGUtcGFnZXMvZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUs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LENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0F0TlcsNkJBQTZCO2tHQUE3Qiw2QkFBNkIseUVBRjlCLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLDBCQ3hDaEQsb3JJQThHQSxpbEZEbkZFLFlBQVksOEJBQ1osYUFBYSxtZEFDYixpQkFBaUIsK0lBQ2pCLG1CQUFtQixvbUJBQ25CLGVBQWUscWhCQUNmLG1CQUFtQiwrQkFDbkIsZUFBZSw2TkFDZixlQUFlLGdPQUNmLGFBQWEsc1hBQ2IsaUJBQWlCOzsyRkFNTiw2QkFBNkI7a0JBbkJ6QyxTQUFTO2lDQUNHLElBQUksWUFDTiw0QkFBNEIsV0FDN0I7d0JBQ1IsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNqQixhQUdVLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgU2Nyb2xsUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Njcm9sbHBhbmVsJztcclxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvYnV0dG9uJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhdm9yaXRlUGFnZVJlc3BvbnNlRFRPLCBGYXZvcml0ZVBhZ2VzU2VydmljZSB9IGZyb20gJy4vZmF2b3JpdGUtcGFnZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZEVkaXRGYXZvcml0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbHMvYWRkLWVkaXQtZmF2b3JpdGUtbW9kYWwvYWRkLWVkaXQtZmF2b3JpdGUtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IHNvbGlkSWNvbnMgfSBmcm9tICdhcmlsL3V0aWwvbGliJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtZmF2b3JpdGUtcGFnZXMtc2lkZWJhcicsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdFNjcm9sbFBhbmVsTW9kdWxlLFxyXG5cdFx0Q29uZmlybURpYWxvZ01vZHVsZSxcclxuXHRcdFBhZ2luYXRvck1vZHVsZSxcclxuXHRcdER5bmFtaWNEaWFsb2dNb2R1bGUsXHJcblx0XHRCdXR0b25Db21wb25lbnQsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRUb29sdGlwTW9kdWxlLFxyXG5cdFx0Rm9udEF3ZXNvbWVNb2R1bGVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9mYXZvcml0ZS1wYWdlcy1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9mYXZvcml0ZS1wYWdlcy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZSwgRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZhdm9yaXRlUGFnZXNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRmYXZvcml0ZVBhZ2VzID0gc2lnbmFsPEZhdm9yaXRlUGFnZVJlc3BvbnNlRFRPW10+KFtdKTtcclxuXHRpc0N1cnJlbnRQYWdlRmF2b3JpdGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzb2xpZEljb25zID0gc29saWRJY29ucztcclxuXHRjdXJyZW50UGFnZSA9IHNpZ25hbDxudW1iZXI+KDEpO1xyXG5cdHBhZ2VTaXplID0gc2lnbmFsPG51bWJlcj4oMTApO1xyXG5cdHRvdGFsSXRlbXMgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuXHR0b3RhbFBhZ2VzID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcblx0YWxsRmF2b3JpdGVQYWdlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuYWxsRmF2b3JpdGVQYWdlcygpKTtcclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGxvYWRBbGxGYXZvcml0ZXM6IG5ldyBTdWJqZWN0PHZvaWQ+KCksXHJcblx0XHRkZWxldGVGYXZvcml0ZTogbmV3IFN1YmplY3Q8bnVtYmVyPigpXHJcblx0fTtcclxuXHJcblx0bG9hZEFsbEZhdm9yaXRlc1NlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMubG9hZEFsbEZhdm9yaXRlcy5waXBlKFxyXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT5cclxuXHRcdFx0XHR0aGlzLmZhdm9yaXRlUGFnZXNTZXJ2aWNlLmZpbHRlckZhdm9yaXRlUGFnZXMoe1xyXG5cdFx0XHRcdFx0cGFnZVNpemU6IDEwMDAsXHJcblx0XHRcdFx0XHRwYWdlTnVtYmVyOiAxXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KVxyXG5cdFx0KVxyXG5cdCk7XHJcblxyXG5cdGRlbGV0ZUZhdm9yaXRlU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5kZWxldGVGYXZvcml0ZS5waXBlKHN3aXRjaE1hcCgoaWQpID0+IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZGVsZXRlRmF2b3JpdGVQYWdlKGlkKSkpXHJcblx0KTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuXHRcdHByaXZhdGUgZmF2b3JpdGVQYWdlc1NlcnZpY2U6IEZhdm9yaXRlUGFnZXNTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMuaW5pdGlhbGl6ZUVmZmVjdHMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sb2FkRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0dGhpcy5jaGVja0N1cnJlbnRQYWdlU3RhdHVzKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCk6IHZvaWQge1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMubG9hZEFsbEZhdm9yaXRlc1NlcnZpY2UoKTtcclxuXHRcdFx0XHRpZiAoc2VydmljZT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuYWxsRmF2b3JpdGVQYWdlcy5zZXQoc2VydmljZS5yZXNwb25zZS5yZXN1bHQpO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbEl0ZW1zLnNldChzZXJ2aWNlLnJlc3BvbnNlLnJlc3VsdC5sZW5ndGgpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVDbGllbnRTaWRlUGFnaW5hdGlvbigpO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVja0N1cnJlbnRQYWdlU3RhdHVzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuXHRcdCk7XHJcblxyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMuZGVsZXRlRmF2b3JpdGVTZXJ2aWNlKCk7XHJcblx0XHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRGYXZvcml0ZVBhZ2VzKCk7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdHNldmVyaXR5OiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuc3VjY2VzcycpLFxyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZGVsZXRlZFN1Y2Nlc3NmdWxseScpLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuZmF2b3JpdGVQYWdlc1NpZGViYXJWaXNpYmxlO1xyXG5cdH1cclxuXHJcblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5mYXZvcml0ZVBhZ2VzU2lkZWJhclZpc2libGUgPSB2YWx1ZTtcclxuXHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHR0aGlzLmNoZWNrQ3VycmVudFBhZ2VTdGF0dXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZEZhdm9yaXRlUGFnZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnN1YmplY3RzLmxvYWRBbGxGYXZvcml0ZXMubmV4dCgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVDbGllbnRTaWRlUGFnaW5hdGlvbigpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGFsbEZhdm9yaXRlcyA9IHRoaXMuYWxsRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0Y29uc3QgdG90YWxJdGVtcyA9IGFsbEZhdm9yaXRlcy5sZW5ndGg7XHJcblx0XHRjb25zdCBwYWdlU2l6ZSA9IHRoaXMucGFnZVNpemUoKTtcclxuXHRcdGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpO1xyXG5cclxuXHRcdGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHBhZ2VTaXplKTtcclxuXHRcdHRoaXMudG90YWxQYWdlcy5zZXQodG90YWxQYWdlcyk7XHJcblxyXG5cdFx0Y29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XHJcblx0XHRjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKHN0YXJ0SW5kZXggKyBwYWdlU2l6ZSwgdG90YWxJdGVtcyk7XHJcblxyXG5cdFx0Y29uc3QgY3VycmVudFBhZ2VEYXRhID0gYWxsRmF2b3JpdGVzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuXHRcdHRoaXMuZmF2b3JpdGVQYWdlcy5zZXQoY3VycmVudFBhZ2VEYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2hlY2tDdXJyZW50UGFnZVN0YXR1cygpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGN1cnJlbnRQYXRoID0gdGhpcy5mYXZvcml0ZVBhZ2VzU2VydmljZS5nZXRDdXJyZW50Um91dGVQYXRoKCk7XHJcblx0XHRjb25zdCBhbGxGYXZvcml0ZXMgPSB0aGlzLmFsbEZhdm9yaXRlUGFnZXMoKTtcclxuXHRcdGNvbnN0IGlzRm91bmQgPSBhbGxGYXZvcml0ZXMuc29tZSgoZmF2KSA9PiBmYXYudXJsID09PSBjdXJyZW50UGF0aCk7XHJcblxyXG5cdFx0dGhpcy5pc0N1cnJlbnRQYWdlRmF2b3JpdGVkLnNldChpc0ZvdW5kKTtcclxuXHR9XHJcblxyXG5cdGFkZEN1cnJlbnRQYWdlVG9GYXZvcml0ZXMoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjdXJyZW50UGF0aCA9IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZ2V0Q3VycmVudFJvdXRlUGF0aCgpO1xyXG5cclxuXHRcdGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFkZEVkaXRGYXZvcml0ZU1vZGFsQ29tcG9uZW50LCB7XHJcblx0XHRcdGhlYWRlcjogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5hZGRUb0Zhdm9yaXRlcycpLFxyXG5cdFx0XHR3aWR0aDogJzUwMHB4JyxcclxuXHRcdFx0bW9kYWw6IHRydWUsXHJcblx0XHRcdGNsb3NhYmxlOiB0cnVlLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0bW9kZTogJ2FkZCcsXHJcblx0XHRcdFx0dXJsOiBjdXJyZW50UGF0aFxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZWYub25DbG9zZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRpZiAocmVzdWx0Py5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG5cdFx0XHRcdHRoaXMubG9hZEZhdm9yaXRlUGFnZXMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRyZW1vdmVDdXJyZW50UGFnZUZyb21GYXZvcml0ZXMoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjdXJyZW50UGF0aCA9IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZ2V0Q3VycmVudFJvdXRlUGF0aCgpO1xyXG5cdFx0Y29uc3QgZmF2b3JpdGVzID0gdGhpcy5mYXZvcml0ZVBhZ2VzKCk7XHJcblx0XHRjb25zdCBjdXJyZW50RmF2b3JpdGUgPSBmYXZvcml0ZXMuZmluZCgoZmF2KSA9PiBmYXYudXJsID09PSBjdXJyZW50UGF0aCk7XHJcblxyXG5cdFx0aWYgKGN1cnJlbnRGYXZvcml0ZSkge1xyXG5cdFx0XHR0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcblx0XHRcdFx0bWVzc2FnZTogYCcke2N1cnJlbnRGYXZvcml0ZS5sYWJlbH0nIGAgKyB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdmYXZvcml0ZVBhZ2VzLmNvbmZpcm1EZWxldGUnKSxcclxuXHRcdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZGVsZXRlQ29uZmlybVRpdGxlJyksXHJcblx0XHRcdFx0aWNvbjogJ3BpIHBpLWluZm8tY2lyY2xlJyxcclxuXHRcdFx0XHRhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnYWNjZXB0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRyZWplY3RMYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVqZWN0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiAncC1idXR0b24tc3VjY2VzcycsXHJcblx0XHRcdFx0cmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLWRhbmdlcicsXHJcblx0XHRcdFx0YWNjZXB0OiAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnN1YmplY3RzLmRlbGV0ZUZhdm9yaXRlLm5leHQoY3VycmVudEZhdm9yaXRlLmlkKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZWRpdEZhdm9yaXRlKGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTywgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHRjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihBZGRFZGl0RmF2b3JpdGVNb2RhbENvbXBvbmVudCwge1xyXG5cdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZWRpdEZhdm9yaXRlJyksXHJcblx0XHRcdHdpZHRoOiAnNTAwcHgnLFxyXG5cdFx0XHRtb2RhbDogdHJ1ZSxcclxuXHRcdFx0Y2xvc2FibGU6IHRydWUsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRtb2RlOiAnZWRpdCcsXHJcblx0XHRcdFx0ZmF2b3JpdGU6IGZhdm9yaXRlXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlZi5vbkNsb3NlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblx0XHRcdGlmIChyZXN1bHQ/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcblx0XHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRlbGV0ZUZhdm9yaXRlKGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTywgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHR0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcblx0XHRcdHRhcmdldDogZXZlbnQudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0LFxyXG5cdFx0XHRtZXNzYWdlOiBgJyR7ZmF2b3JpdGUubGFiZWx9JyBgICsgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5jb25maXJtRGVsZXRlJyksXHJcblx0XHRcdGhlYWRlcjogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5kZWxldGVDb25maXJtVGl0bGUnKSxcclxuXHRcdFx0aWNvbjogJ3BpIHBpLWluZm8tY2lyY2xlJyxcclxuXHRcdFx0YWNjZXB0TGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2FjY2VwdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWplY3RCdXR0b25MYWJlbCcpLFxyXG5cdFx0XHRhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiAncC1idXR0b24tc3VjY2VzcycsXHJcblx0XHRcdHJlamVjdEJ1dHRvblN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi1kYW5nZXInLFxyXG5cdFx0XHRhY2NlcHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnN1YmplY3RzLmRlbGV0ZUZhdm9yaXRlLm5leHQoZmF2b3JpdGUuaWQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5hdmlnYXRlVG9GYXZvcml0ZShmYXZvcml0ZTogRmF2b3JpdGVQYWdlUmVzcG9uc2VEVE8pOiB2b2lkIHtcclxuXHRcdHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UubmF2aWdhdGVUb0Zhdm9yaXRlUGFnZShmYXZvcml0ZSk7XHJcblx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlGYXZvcml0ZUlkKGluZGV4OiBudW1iZXIsIGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTyk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gZmF2b3JpdGUuaWQ7XHJcblx0fVxyXG5cclxuXHRvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5jdXJyZW50UGFnZS5zZXQoZXZlbnQucGFnZSArIDEpO1xyXG5cdFx0dGhpcy5wYWdlU2l6ZS5zZXQoZXZlbnQucm93cyk7XHJcblx0XHR0aGlzLnVwZGF0ZUNsaWVudFNpZGVQYWdpbmF0aW9uKCk7IC8vIFVwZGF0ZSBwYWdpbmF0aW9uIGNsaWVudC1zaWRlLCBubyBBUEkgY2FsbFxyXG5cdH1cclxuXHJcblx0Z2V0RnVsbFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5mYXZvcml0ZVBhZ2VzU2VydmljZS5nZXRGdWxsVXJsKHVybCk7XHJcblx0fVxyXG5cclxuXHJcbn1cclxuIiwiPHAtc2lkZWJhclxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcblx0cG9zaXRpb249XCJyaWdodFwiXHJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcclxuXHRzdHlsZUNsYXNzPVwibGF5b3V0LWZhdm9yaXRlLXBhZ2VzLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ2Zhdm9yaXRlUGFnZXMnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWhlYXJ0IHRleHQtcHJpbWFyeSB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj57eyB0KCdmYXZvcml0ZVBhZ2VzJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cImZhdm9yaXRlLXBhZ2VzLWNvbnRlbnRcIj5cclxuXHRcdEBpZiAoaXNDdXJyZW50UGFnZUZhdm9yaXRlZCgpKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjdXJyZW50LWZhdm9yaXRlZC1tZXNzYWdlXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jaGVjay1jaXJjbGUgdGV4dC1ncmVlbi01MDBcIj48L2k+XHJcblx0XHRcdFx0XHQ8c3Bhbj57eyB0KCdjdXJyZW50UGFnZUZhdm9yaXRlZCcpIH19PC9zcGFuPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8ZGl2IGNsYXNzPVwiYWRkLXNlY3Rpb25cIj5cclxuXHRcdFx0QGlmICghaXNDdXJyZW50UGFnZUZhdm9yaXRlZCgpKSB7XHJcblx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRbbGFiZWxdPVwidCgnYWRkQ3VycmVudFBhZ2UnKVwiXHJcblx0XHRcdFx0XHRpY29uPVwiUExVU1wiXHJcblx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImFkZEN1cnJlbnRQYWdlVG9GYXZvcml0ZXMoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0W2xhYmVsXT1cInQoJ3JlbW92ZUN1cnJlbnRQYWdlJylcIlxyXG5cdFx0XHRcdFx0aWNvbj1cIlRJTUVTXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJyZW1vdmVDdXJyZW50UGFnZUZyb21GYXZvcml0ZXMoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdEBpZiAoZmF2b3JpdGVQYWdlcygpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZhdm9yaXRlcy1saXN0XCI+XHJcblx0XHRcdFx0PHAtc2Nyb2xsUGFuZWwgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZhdm9yaXRlcy1pdGVtc1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChmYXZvcml0ZSBvZiBmYXZvcml0ZVBhZ2VzKCk7IHRyYWNrIHRyYWNrQnlGYXZvcml0ZUlkKCRpbmRleCwgZmF2b3JpdGUpKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJmYXZvcml0ZS1pdGVtXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtjbGFzcy5kZWZhdWx0LWl0ZW1dPVwiZmF2b3JpdGUuaWQgPCAwXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJuYXZpZ2F0ZVRvRmF2b3JpdGUoZmF2b3JpdGUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJnZXRGdWxsVXJsKGZhdm9yaXRlLnVybClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWV4dGVybmFsLWxpbmsgdGV4dC1wcmltYXJ5IG1yLTJcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlLXRleHRcIj57eyBmYXZvcml0ZS5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYVBlblRvU3F1YXJlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cImxnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogdmFyKC0teWVsbG93LTUwMClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbC0yIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImVkaXRGYXZvcml0ZShmYXZvcml0ZSwgJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9mYS1pY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYVRyYXNoXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cImxnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogdmFyKC0tcmVkLTUwMClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbC0yIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImRlbGV0ZUZhdm9yaXRlKGZhdm9yaXRlLCAkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2ZhLWljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1zY3JvbGxQYW5lbD5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktaGVhcnQgZW1wdHktaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxoMyBjbGFzcz1cImVtcHR5LXRpdGxlXCI+e3sgdCgnbm9GYXZvcml0ZXMnKSB9fTwvaDM+XHJcblx0XHRcdFx0XHQ8cCBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj57eyB0KCdzdGFydEFkZGluZ0Zhdm9yaXRlcycpIH19PC9wPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHRcdDxkaXY+XHJcblx0XHRcdDxwLXBhZ2luYXRvclxyXG5cdFx0XHRcdFtmaXJzdF09XCIoY3VycmVudFBhZ2UoKSAtIDEpICogcGFnZVNpemUoKVwiXHJcblx0XHRcdFx0W3Jvd3NdPVwicGFnZVNpemUoKVwiXHJcblx0XHRcdFx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbEl0ZW1zKClcIlxyXG5cdFx0XHRcdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0W2N1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGVdPVwidCgncGFnaW5hdG9yVGVtcGxhdGUnKVwiXHJcblx0XHRcdFx0W3Nob3dGaXJzdExhc3RJY29uXT1cImZhbHNlXCJcclxuXHRcdFx0XHRbc2hvd1BhZ2VMaW5rc109XCJmYWxzZVwiXHJcblx0XHRcdFx0KG9uUGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG5cdFx0XHQ8L3AtcGFnaW5hdG9yPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbjwvcC1zaWRlYmFyPlxyXG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvZmF2b3JpdGUtcGFnZXMvZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvZmF2b3JpdGUtcGFnZXMvZmF2b3JpdGUtcGFnZXMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUs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QUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0F0TlcsNkJBQTZCO2tHQUE3Qiw2QkFBNkIseUVBRjlCLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLDBCQzFDaEQsdXhJQStHQSxpbEZEbkZFLFlBQVksOEJBQ1osYUFBYSxtZEFDYixpQkFBaUIsK0lBQ2pCLG1CQUFtQixvbUJBQ25CLGVBQWUscWhCQUNmLG1CQUFtQiwrQkFDbkIsZUFBZSw2TkFDZixlQUFlLGdPQUNmLGFBQWEsc1hBQ2IsaUJBQWlCLG9TQUNqQixnQkFBZ0I7OzJGQU1MLDZCQUE2QjtrQkFwQnpDLFNBQVM7aUNBQ0csSUFBSSxZQUNOLDRCQUE0QixXQUM3Qjt3QkFDUixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjtxQkFDaEIsYUFHVSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBlZmZlY3QsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNjcm9sbFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zY3JvbGxwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBOYXZMaW5rRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmF2b3JpdGVQYWdlUmVzcG9uc2VEVE8sIEZhdm9yaXRlUGFnZXNTZXJ2aWNlIH0gZnJvbSAnLi9mYXZvcml0ZS1wYWdlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRkRWRpdEZhdm9yaXRlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFscy9hZGQtZWRpdC1mYXZvcml0ZS1tb2RhbC9hZGQtZWRpdC1mYXZvcml0ZS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgc29saWRJY29ucyB9IGZyb20gJ2FyaWwvdXRpbC9saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1mYXZvcml0ZS1wYWdlcy1zaWRlYmFyJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRDb21tb25Nb2R1bGUsXHJcblx0XHRTaWRlYmFyTW9kdWxlLFxyXG5cdFx0U2Nyb2xsUGFuZWxNb2R1bGUsXHJcblx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxyXG5cdFx0UGFnaW5hdG9yTW9kdWxlLFxyXG5cdFx0RHluYW1pY0RpYWxvZ01vZHVsZSxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRGb250QXdlc29tZU1vZHVsZSxcclxuXHRcdE5hdkxpbmtEaXJlY3RpdmVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9mYXZvcml0ZS1wYWdlcy1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9mYXZvcml0ZS1wYWdlcy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZSwgRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZhdm9yaXRlUGFnZXNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRmYXZvcml0ZVBhZ2VzID0gc2lnbmFsPEZhdm9yaXRlUGFnZVJlc3BvbnNlRFRPW10+KFtdKTtcclxuXHRpc0N1cnJlbnRQYWdlRmF2b3JpdGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzb2xpZEljb25zID0gc29saWRJY29ucztcclxuXHRjdXJyZW50UGFnZSA9IHNpZ25hbDxudW1iZXI+KDEpO1xyXG5cdHBhZ2VTaXplID0gc2lnbmFsPG51bWJlcj4oMTApO1xyXG5cdHRvdGFsSXRlbXMgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuXHR0b3RhbFBhZ2VzID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcblx0YWxsRmF2b3JpdGVQYWdlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuYWxsRmF2b3JpdGVQYWdlcygpKTtcclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGxvYWRBbGxGYXZvcml0ZXM6IG5ldyBTdWJqZWN0PHZvaWQ+KCksXHJcblx0XHRkZWxldGVGYXZvcml0ZTogbmV3IFN1YmplY3Q8bnVtYmVyPigpXHJcblx0fTtcclxuXHJcblx0bG9hZEFsbEZhdm9yaXRlc1NlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMubG9hZEFsbEZhdm9yaXRlcy5waXBlKFxyXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT5cclxuXHRcdFx0XHR0aGlzLmZhdm9yaXRlUGFnZXNTZXJ2aWNlLmZpbHRlckZhdm9yaXRlUGFnZXMoe1xyXG5cdFx0XHRcdFx0cGFnZVNpemU6IDEwMDAsXHJcblx0XHRcdFx0XHRwYWdlTnVtYmVyOiAxXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KVxyXG5cdFx0KVxyXG5cdCk7XHJcblxyXG5cdGRlbGV0ZUZhdm9yaXRlU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5kZWxldGVGYXZvcml0ZS5waXBlKHN3aXRjaE1hcCgoaWQpID0+IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZGVsZXRlRmF2b3JpdGVQYWdlKGlkKSkpXHJcblx0KTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuXHRcdHByaXZhdGUgZmF2b3JpdGVQYWdlc1NlcnZpY2U6IEZhdm9yaXRlUGFnZXNTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMuaW5pdGlhbGl6ZUVmZmVjdHMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sb2FkRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0dGhpcy5jaGVja0N1cnJlbnRQYWdlU3RhdHVzKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCk6IHZvaWQge1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMubG9hZEFsbEZhdm9yaXRlc1NlcnZpY2UoKTtcclxuXHRcdFx0XHRpZiAoc2VydmljZT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuYWxsRmF2b3JpdGVQYWdlcy5zZXQoc2VydmljZS5yZXNwb25zZS5yZXN1bHQpO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbEl0ZW1zLnNldChzZXJ2aWNlLnJlc3BvbnNlLnJlc3VsdC5sZW5ndGgpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGVDbGllbnRTaWRlUGFnaW5hdGlvbigpO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVja0N1cnJlbnRQYWdlU3RhdHVzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuXHRcdCk7XHJcblxyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMuZGVsZXRlRmF2b3JpdGVTZXJ2aWNlKCk7XHJcblx0XHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRGYXZvcml0ZVBhZ2VzKCk7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdHNldmVyaXR5OiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuc3VjY2VzcycpLFxyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZGVsZXRlZFN1Y2Nlc3NmdWxseScpLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuZmF2b3JpdGVQYWdlc1NpZGViYXJWaXNpYmxlO1xyXG5cdH1cclxuXHJcblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5mYXZvcml0ZVBhZ2VzU2lkZWJhclZpc2libGUgPSB2YWx1ZTtcclxuXHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHR0aGlzLmNoZWNrQ3VycmVudFBhZ2VTdGF0dXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZEZhdm9yaXRlUGFnZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnN1YmplY3RzLmxvYWRBbGxGYXZvcml0ZXMubmV4dCgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVDbGllbnRTaWRlUGFnaW5hdGlvbigpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGFsbEZhdm9yaXRlcyA9IHRoaXMuYWxsRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0Y29uc3QgdG90YWxJdGVtcyA9IGFsbEZhdm9yaXRlcy5sZW5ndGg7XHJcblx0XHRjb25zdCBwYWdlU2l6ZSA9IHRoaXMucGFnZVNpemUoKTtcclxuXHRcdGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpO1xyXG5cclxuXHRcdGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHBhZ2VTaXplKTtcclxuXHRcdHRoaXMudG90YWxQYWdlcy5zZXQodG90YWxQYWdlcyk7XHJcblxyXG5cdFx0Y29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XHJcblx0XHRjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKHN0YXJ0SW5kZXggKyBwYWdlU2l6ZSwgdG90YWxJdGVtcyk7XHJcblxyXG5cdFx0Y29uc3QgY3VycmVudFBhZ2VEYXRhID0gYWxsRmF2b3JpdGVzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuXHRcdHRoaXMuZmF2b3JpdGVQYWdlcy5zZXQoY3VycmVudFBhZ2VEYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2hlY2tDdXJyZW50UGFnZVN0YXR1cygpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGN1cnJlbnRQYXRoID0gdGhpcy5mYXZvcml0ZVBhZ2VzU2VydmljZS5nZXRDdXJyZW50Um91dGVQYXRoKCk7XHJcblx0XHRjb25zdCBhbGxGYXZvcml0ZXMgPSB0aGlzLmFsbEZhdm9yaXRlUGFnZXMoKTtcclxuXHRcdGNvbnN0IGlzRm91bmQgPSBhbGxGYXZvcml0ZXMuc29tZSgoZmF2KSA9PiBmYXYudXJsID09PSBjdXJyZW50UGF0aCk7XHJcblxyXG5cdFx0dGhpcy5pc0N1cnJlbnRQYWdlRmF2b3JpdGVkLnNldChpc0ZvdW5kKTtcclxuXHR9XHJcblxyXG5cdGFkZEN1cnJlbnRQYWdlVG9GYXZvcml0ZXMoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjdXJyZW50UGF0aCA9IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZ2V0Q3VycmVudFJvdXRlUGF0aCgpO1xyXG5cclxuXHRcdGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEFkZEVkaXRGYXZvcml0ZU1vZGFsQ29tcG9uZW50LCB7XHJcblx0XHRcdGhlYWRlcjogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5hZGRUb0Zhdm9yaXRlcycpLFxyXG5cdFx0XHR3aWR0aDogJzUwMHB4JyxcclxuXHRcdFx0bW9kYWw6IHRydWUsXHJcblx0XHRcdGNsb3NhYmxlOiB0cnVlLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0bW9kZTogJ2FkZCcsXHJcblx0XHRcdFx0dXJsOiBjdXJyZW50UGF0aFxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZWYub25DbG9zZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRpZiAocmVzdWx0Py5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG5cdFx0XHRcdHRoaXMubG9hZEZhdm9yaXRlUGFnZXMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRyZW1vdmVDdXJyZW50UGFnZUZyb21GYXZvcml0ZXMoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjdXJyZW50UGF0aCA9IHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UuZ2V0Q3VycmVudFJvdXRlUGF0aCgpO1xyXG5cdFx0Y29uc3QgZmF2b3JpdGVzID0gdGhpcy5mYXZvcml0ZVBhZ2VzKCk7XHJcblx0XHRjb25zdCBjdXJyZW50RmF2b3JpdGUgPSBmYXZvcml0ZXMuZmluZCgoZmF2KSA9PiBmYXYudXJsID09PSBjdXJyZW50UGF0aCk7XHJcblxyXG5cdFx0aWYgKGN1cnJlbnRGYXZvcml0ZSkge1xyXG5cdFx0XHR0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcblx0XHRcdFx0bWVzc2FnZTogYCcke2N1cnJlbnRGYXZvcml0ZS5sYWJlbH0nIGAgKyB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdmYXZvcml0ZVBhZ2VzLmNvbmZpcm1EZWxldGUnKSxcclxuXHRcdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZGVsZXRlQ29uZmlybVRpdGxlJyksXHJcblx0XHRcdFx0aWNvbjogJ3BpIHBpLWluZm8tY2lyY2xlJyxcclxuXHRcdFx0XHRhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnYWNjZXB0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRyZWplY3RMYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncmVqZWN0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiAncC1idXR0b24tc3VjY2VzcycsXHJcblx0XHRcdFx0cmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLWRhbmdlcicsXHJcblx0XHRcdFx0YWNjZXB0OiAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnN1YmplY3RzLmRlbGV0ZUZhdm9yaXRlLm5leHQoY3VycmVudEZhdm9yaXRlLmlkKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZWRpdEZhdm9yaXRlKGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTywgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHRjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihBZGRFZGl0RmF2b3JpdGVNb2RhbENvbXBvbmVudCwge1xyXG5cdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2Zhdm9yaXRlUGFnZXMuZWRpdEZhdm9yaXRlJyksXHJcblx0XHRcdHdpZHRoOiAnNTAwcHgnLFxyXG5cdFx0XHRtb2RhbDogdHJ1ZSxcclxuXHRcdFx0Y2xvc2FibGU6IHRydWUsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRtb2RlOiAnZWRpdCcsXHJcblx0XHRcdFx0ZmF2b3JpdGU6IGZhdm9yaXRlXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlZi5vbkNsb3NlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblx0XHRcdGlmIChyZXN1bHQ/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcblx0XHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQYWdlcygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRlbGV0ZUZhdm9yaXRlKGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTywgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHR0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcblx0XHRcdHRhcmdldDogZXZlbnQudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0LFxyXG5cdFx0XHRtZXNzYWdlOiBgJyR7ZmF2b3JpdGUubGFiZWx9JyBgICsgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5jb25maXJtRGVsZXRlJyksXHJcblx0XHRcdGhlYWRlcjogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnZmF2b3JpdGVQYWdlcy5kZWxldGVDb25maXJtVGl0bGUnKSxcclxuXHRcdFx0aWNvbjogJ3BpIHBpLWluZm8tY2lyY2xlJyxcclxuXHRcdFx0YWNjZXB0TGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2FjY2VwdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdyZWplY3RCdXR0b25MYWJlbCcpLFxyXG5cdFx0XHRhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiAncC1idXR0b24tc3VjY2VzcycsXHJcblx0XHRcdHJlamVjdEJ1dHRvblN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi1kYW5nZXInLFxyXG5cdFx0XHRhY2NlcHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnN1YmplY3RzLmRlbGV0ZUZhdm9yaXRlLm5leHQoZmF2b3JpdGUuaWQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5hdmlnYXRlVG9GYXZvcml0ZShmYXZvcml0ZTogRmF2b3JpdGVQYWdlUmVzcG9uc2VEVE8pOiB2b2lkIHtcclxuXHRcdHRoaXMuZmF2b3JpdGVQYWdlc1NlcnZpY2UubmF2aWdhdGVUb0Zhdm9yaXRlUGFnZShmYXZvcml0ZSk7XHJcblx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlGYXZvcml0ZUlkKGluZGV4OiBudW1iZXIsIGZhdm9yaXRlOiBGYXZvcml0ZVBhZ2VSZXNwb25zZURUTyk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gZmF2b3JpdGUuaWQ7XHJcblx0fVxyXG5cclxuXHRvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5jdXJyZW50UGFnZS5zZXQoZXZlbnQucGFnZSArIDEpO1xyXG5cdFx0dGhpcy5wYWdlU2l6ZS5zZXQoZXZlbnQucm93cyk7XHJcblx0XHR0aGlzLnVwZGF0ZUNsaWVudFNpZGVQYWdpbmF0aW9uKCk7IC8vIFVwZGF0ZSBwYWdpbmF0aW9uIGNsaWVudC1zaWRlLCBubyBBUEkgY2FsbFxyXG5cdH1cclxuXHJcblx0Z2V0RnVsbFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5mYXZvcml0ZVBhZ2VzU2VydmljZS5nZXRGdWxsVXJsKHVybCk7XHJcblx0fVxyXG5cclxuXHJcbn1cclxuIiwiPHAtc2lkZWJhclxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcblx0cG9zaXRpb249XCJyaWdodFwiXHJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcclxuXHRzdHlsZUNsYXNzPVwibGF5b3V0LWZhdm9yaXRlLXBhZ2VzLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ2Zhdm9yaXRlUGFnZXMnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWhlYXJ0IHRleHQtcHJpbWFyeSB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj57eyB0KCdmYXZvcml0ZVBhZ2VzJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cImZhdm9yaXRlLXBhZ2VzLWNvbnRlbnRcIj5cclxuXHRcdEBpZiAoaXNDdXJyZW50UGFnZUZhdm9yaXRlZCgpKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjdXJyZW50LWZhdm9yaXRlZC1tZXNzYWdlXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jaGVjay1jaXJjbGUgdGV4dC1ncmVlbi01MDBcIj48L2k+XHJcblx0XHRcdFx0XHQ8c3Bhbj57eyB0KCdjdXJyZW50UGFnZUZhdm9yaXRlZCcpIH19PC9zcGFuPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8ZGl2IGNsYXNzPVwiYWRkLXNlY3Rpb25cIj5cclxuXHRcdFx0QGlmICghaXNDdXJyZW50UGFnZUZhdm9yaXRlZCgpKSB7XHJcblx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRbbGFiZWxdPVwidCgnYWRkQ3VycmVudFBhZ2UnKVwiXHJcblx0XHRcdFx0XHRpY29uPVwiUExVU1wiXHJcblx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImFkZEN1cnJlbnRQYWdlVG9GYXZvcml0ZXMoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0W2xhYmVsXT1cInQoJ3JlbW92ZUN1cnJlbnRQYWdlJylcIlxyXG5cdFx0XHRcdFx0aWNvbj1cIlRJTUVTXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJyZW1vdmVDdXJyZW50UGFnZUZyb21GYXZvcml0ZXMoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdEBpZiAoZmF2b3JpdGVQYWdlcygpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZhdm9yaXRlcy1saXN0XCI+XHJcblx0XHRcdFx0PHAtc2Nyb2xsUGFuZWwgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZhdm9yaXRlcy1pdGVtc1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChmYXZvcml0ZSBvZiBmYXZvcml0ZVBhZ2VzKCk7IHRyYWNrIHRyYWNrQnlGYXZvcml0ZUlkKCRpbmRleCwgZmF2b3JpdGUpKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJmYXZvcml0ZS1pdGVtXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtjbGFzcy5kZWZhdWx0LWl0ZW1dPVwiZmF2b3JpdGUuaWQgPCAwXCJcclxuXHRcdFx0XHRcdFx0XHRcdFthcmlsTmF2TGlua109XCJ7IHRhYklkOiAnJywgbmF2TGluazogZmF2b3JpdGUudXJsLCBuYXZOYW1lOiBmYXZvcml0ZS5sYWJlbCB9XCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJuYXZpZ2F0ZVRvRmF2b3JpdGUoZmF2b3JpdGUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJnZXRGdWxsVXJsKGZhdm9yaXRlLnVybClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWV4dGVybmFsLWxpbmsgdGV4dC1wcmltYXJ5IG1yLTJcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlLXRleHRcIj57eyBmYXZvcml0ZS5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYVBlblRvU3F1YXJlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cImxnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogdmFyKC0teWVsbG93LTUwMClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbC0yIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImVkaXRGYXZvcml0ZShmYXZvcml0ZSwgJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9mYS1pY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYVRyYXNoXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cImxnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogdmFyKC0tcmVkLTUwMClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbC0yIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImRlbGV0ZUZhdm9yaXRlKGZhdm9yaXRlLCAkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2ZhLWljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1zY3JvbGxQYW5lbD5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktaGVhcnQgZW1wdHktaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxoMyBjbGFzcz1cImVtcHR5LXRpdGxlXCI+e3sgdCgnbm9GYXZvcml0ZXMnKSB9fTwvaDM+XHJcblx0XHRcdFx0XHQ8cCBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj57eyB0KCdzdGFydEFkZGluZ0Zhdm9yaXRlcycpIH19PC9wPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHRcdDxkaXY+XHJcblx0XHRcdDxwLXBhZ2luYXRvclxyXG5cdFx0XHRcdFtmaXJzdF09XCIoY3VycmVudFBhZ2UoKSAtIDEpICogcGFnZVNpemUoKVwiXHJcblx0XHRcdFx0W3Jvd3NdPVwicGFnZVNpemUoKVwiXHJcblx0XHRcdFx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbEl0ZW1zKClcIlxyXG5cdFx0XHRcdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0W2N1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGVdPVwidCgncGFnaW5hdG9yVGVtcGxhdGUnKVwiXHJcblx0XHRcdFx0W3Nob3dGaXJzdExhc3RJY29uXT1cImZhbHNlXCJcclxuXHRcdFx0XHRbc2hvd1BhZ2VMaW5rc109XCJmYWxzZVwiXHJcblx0XHRcdFx0KG9uUGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG5cdFx0XHQ8L3AtcGFnaW5hdG9yPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbjwvcC1zaWRlYmFyPlxyXG4iXX0=
|
|
@@ -7,7 +7,7 @@ import { TranslocoModule } from '@ngneat/transloco';
|
|
|
7
7
|
import { of, startWith, Subject } from 'rxjs';
|
|
8
8
|
import { catchError, filter, map, switchMap } from 'rxjs/operators';
|
|
9
9
|
import { bridge } from 'aril/boot/bridge';
|
|
10
|
-
import { Apps } from 'aril/boot/config/apps';
|
|
10
|
+
import { Apps, NavLinkDirective } from 'aril/boot/config/apps';
|
|
11
11
|
import { getPresentableData } from './helpers';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@angular/router";
|
|
@@ -67,10 +67,10 @@ export class GeneralSearchComponent {
|
|
|
67
67
|
this.goToDetail(item.value);
|
|
68
68
|
}
|
|
69
69
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GeneralSearchComponent, deps: [{ token: i1.Router }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: GeneralSearchComponent, isStandalone: true, selector: "app-general-search", ngImport: i0, template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: GeneralSearchComponent, isStandalone: true, selector: "app-general-search", ngImport: i0, template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\"\r\n\t\t\t\t\t\t[arilNavLink]=\"result.url ? { tabId: '', navLink: result.url, navName: result.title } : null\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NavLinkDirective, selector: "[arilNavLink]", inputs: ["arilNavLink"] }] }); }
|
|
71
71
|
}
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GeneralSearchComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
|
-
args: [{ selector: 'app-general-search', standalone: true, imports: [CommonModule, FormsModule, TranslocoModule, AutoCompleteModule], template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"] }]
|
|
74
|
+
args: [{ selector: 'app-general-search', standalone: true, imports: [CommonModule, FormsModule, TranslocoModule, AutoCompleteModule, NavLinkDirective], template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\"\r\n\t\t\t\t\t\t[arilNavLink]=\"result.url ? { tabId: '', navLink: result.url, navName: result.title } : null\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"] }]
|
|
75
75
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.SearchService }] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2dlbmVyYWwtc2VhcmNoL2dlbmVyYWwtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9nZW5lcmFsLXNlYXJjaC9nZW5lcmFsLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQVUvQyxNQUFNLE9BQU8sc0JBQXNCO0lBNEJsQyxZQUNrQixNQUFjLEVBQ2QsYUFBNEI7UUFENUIsV0FBTSxHQUFOLE1B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Q0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBakVXLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhFQzFCbkMsKzBFQXlEQSx1YURuQ1csWUFBWSx5RkFBRSxXQUFXLDhWQUFFLGVBQWUsZ09BQUUsa0JBQWtCOzsyRkFJNUQsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNDLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU1vZHVsZSwgQXV0b0NvbXBsZXRlU2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IG9mLCBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IGJyaWRnZSB9IGZyb20gJ2FyaWwvYm9vdC9icmlkZ2UnO1xyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0UHJlc2VudGFibGVEYXRhIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQ2FjaGVTZWFyY2hSZXF1ZXN0RFRPLCBEZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGUsIFByZXNlbnRhYmxlRGF0YSB9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWdlbmVyYWwtc2VhcmNoJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBUcmFuc2xvY29Nb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2dlbmVyYWwtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9nZW5lcmFsLXNlYXJjaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsU2VhcmNoQ29tcG9uZW50IHtcclxuXHRxdWVyeSA9ICcnO1xyXG5cdGFjdGl2ZVRhYiA9ICdhbGwnO1xyXG5cdGRhdGE6IERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSA9IHt9O1xyXG5cdHByZXNlbnRhYmxlRGF0YTogUHJlc2VudGFibGVEYXRhW10gPSBbXTtcclxuXHRwcml2YXRlIHF1ZXJ5U3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHRyZXN1bHRzU2lnID0gdG9TaWduYWw8RGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlIHwgbnVsbD4oXHJcblx0XHR0aGlzLnF1ZXJ5U3ViamVjdC5waXBlKFxyXG5cdFx0XHRtYXAoKHEpID0+IHEudHJpbSgpKSxcclxuXHRcdFx0ZmlsdGVyKChxKSA9PiBxLmxlbmd0aCA+IDIpLFxyXG5cdFx0XHRzd2l0Y2hNYXAoKHEpID0+IHtcclxuXHRcdFx0XHRjb25zdCBwYXlsb2FkOiBDYWNoZVNlYXJjaFJlcXVlc3REVE8gPSB7XHJcblx0XHRcdFx0XHRzZWFyY2hUZXh0OiBxLFxyXG5cdFx0XHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZXM6IFtdLFxyXG5cdFx0XHRcdFx0cGFnZXI6IHsgcGFnZVNpemU6IDUsIHBhZ2VOdW1iZXI6IDEgfVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hGb3JBc3NldHMocGF5bG9hZCkucGlwZShcclxuXHRcdFx0XHRcdG1hcCgocmVzKSA9PiByZXMucmVzcG9uc2UpLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvZih7fSBhcyBEZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGUpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRzdGFydFdpdGgobnVsbClcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KVxyXG5cdFx0KSxcclxuXHRcdHsgaW5pdGlhbFZhbHVlOiBudWxsIH1cclxuXHQpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSB0aGlzLnJlc3VsdHNTaWcoKTtcclxuXHRcdFx0aWYgKHJlc3VsdHMpIHtcclxuXHRcdFx0XHR0aGlzLmRhdGEgPSByZXN1bHRzO1xyXG5cdFx0XHRcdHRoaXMucHJlc2VudGFibGVEYXRhID0gZ2V0UHJlc2VudGFibGVEYXRhKHJlc3VsdHMsIHRoaXMuYWN0aXZlVGFiKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRzZWFyY2gocXVlcnk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5xdWVyeSA9IChxdWVyeSA/PyAnJykudHJpbSgpO1xyXG5cdFx0dGhpcy5xdWVyeVN1YmplY3QubmV4dCh0aGlzLnF1ZXJ5KTtcclxuXHR9XHJcblxyXG5cdHNldFRhYih0YWI6IHN0cmluZykge1xyXG5cdFx0dGhpcy5hY3RpdmVUYWIgPSB0YWI7XHJcblx0XHR0aGlzLnByZXNlbnRhYmxlRGF0YSA9IGdldFByZXNlbnRhYmxlRGF0YSh0aGlzLmRhdGEsIHRhYik7XHJcblx0fVxyXG5cclxuXHRnb1RvRGV0YWlsKGl0ZW06IFByZXNlbnRhYmxlRGF0YSkge1xyXG5cdFx0Y29uc3QgaXNIb3N0WWVhcCA9IGJyaWRnZS5hY3RpdmVIb3N0KCkgPT09IEFwcHMuWUVBUDtcclxuXHJcblx0XHRpZiAoaXNIb3N0WWVhcCkge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ21uZy9tYXN0ZXItZGF0YS92aWV3LW1kLWRhdGEnXSwge1xyXG5cdFx0XHRcdHF1ZXJ5UGFyYW1zOiB7IGFzc2V0SWQ6IGl0ZW0uYXNzZXRJZCB9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvblJlc3VsdENsaWNrKGl0ZW06IEF1dG9Db21wbGV0ZVNlbGVjdEV2ZW50KSB7XHJcblx0XHR0aGlzLmdvVG9EZXRhaWwoaXRlbS52YWx1ZSk7XHJcblx0fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCBnXCI+XHJcblx0PG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICdnZW5lcmFsU2VhcmNoJ1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImdsb2JhbC1zZWFyY2hcIj5cclxuXHRcdFx0PHAtYXV0b0NvbXBsZXRlXHJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJxdWVyeVwiXHJcblx0XHRcdFx0b3B0aW9uTGFiZWw9XCJ0aXRsZVwiXHJcblx0XHRcdFx0bWluTGVuZ3RoPVwiM1wiXHJcblx0XHRcdFx0W2RlbGF5XT1cIjUwMFwiXHJcblx0XHRcdFx0KGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaCgkZXZlbnQucXVlcnkpXCJcclxuXHRcdFx0XHRbc3VnZ2VzdGlvbnNdPVwicHJlc2VudGFibGVEYXRhXCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgncGxhY2Vob2xkZXInKVwiXHJcblx0XHRcdFx0KG9uU2VsZWN0KT1cIm9uUmVzdWx0Q2xpY2soJGV2ZW50KVwiPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInB4LTNcIj5cclxuXHRcdFx0XHRcdFx0e3sgdCgnbm9SZXN1bHRzJykgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYnMgZmxleCBnYXAtMiBvdmVyZmxvdy14LWF1dG8gd2hpdGUtc3BhY2Utbm93cmFwIHAtMiBib3JkZXItYm90dG9tLTEgYm9yZGVyLWdyYXktMjAwXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuIChjbGljayk9XCJzZXRUYWIoJ2FsbCcpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBweS0xIHB4LTJcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gJ2FsbCdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0KCdhbGwnKSB9fVxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRAZm9yICh0YWIgb2YgZGF0YSB8IGtleXZhbHVlOyB0cmFjayB0YWIpIHtcclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiAoY2xpY2spPVwic2V0VGFiKHRhYi5rZXkpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBweS0xIHB4LTJcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gdGFiLmtleVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgZGF0YVt0YWIua2V5XS5yZXN1bHRbMF0uYXNzZXREZWZpbml0aW9uTmFtZSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LXJlc3VsdCBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlc3VsdC1pY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSB7eyByZXN1bHQuaWNvbiB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyZXN1bHQtdGV4dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0aXRsZSBtYi0yXCI+e3sgcmVzdWx0LnRpdGxlIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0QGlmIChyZXN1bHQuc3VidGl0bGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJzdWJ0aXRsZVwiPnt7IHJlc3VsdC5zdWJ0aXRsZSB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdEBpZiAocmVzdWx0LnVybCkge1xyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJvcGVuLWJ0biBtbC1hdXRvIGFsaWduLXNlbGYtY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInB4LTMgcHktMyBib3JkZXItdG9wLTEgYm9yZGVyLWdyYXktMjAwXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuPnt7IHByZXNlbnRhYmxlRGF0YS5sZW5ndGggfX0ge3sgdCgncmVzdWx0cycpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9wLWF1dG9Db21wbGV0ZT5cclxuXHRcdDwvZGl2PlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2dlbmVyYWwtc2VhcmNoL2dlbmVyYWwtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9nZW5lcmFsLXNlYXJjaC9nZW5lcmFsLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQVUvQyxNQUFNLE9BQU8sc0JBQXNCO0lBNEJsQyxZQUNrQixNQUFjLEVBQ2QsYUFBNEI7UUFENUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBN0I5QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixTQUFJLEdBQXlDLEVBQUUsQ0FBQztRQUNoRCxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzdDLGVBQVUsR0FBRyxRQUFRLENBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNyQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQzNCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQTBCO2dCQUN0QyxVQUFVLEVBQUUsQ0FBQztnQkFDYixvQkFBb0IsRUFBRSxFQUFFO2dCQUN4QixLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUU7YUFDckMsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixPQUFPLEVBQUUsQ0FBQyxFQUEwQyxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUNmLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDRixFQUNELEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFDO1FBTUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO2dCQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFxQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQztRQUVyRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsOEJBQThCLENBQUMsRUFBRTtnQkFDdEQsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7YUFDdEMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDRixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQTZCO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBakVXLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhFQzFCbkMsODdFQTBEQSx1YURwQ1csWUFBWSx5RkFBRSxXQUFXLDhWQUFFLGVBQWUsZ09BQUUsa0JBQWtCLHF6Q0FBRSxnQkFBZ0I7OzJGQUk5RSxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Msb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlLCBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgb2YsIHN0YXJ0V2l0aCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgYnJpZGdlIH0gZnJvbSAnYXJpbC9ib290L2JyaWRnZSc7XHJcbmltcG9ydCB7IEFwcHMsIE5hdkxpbmtEaXJlY3RpdmUgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRQcmVzZW50YWJsZURhdGEgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBDYWNoZVNlYXJjaFJlcXVlc3REVE8sIERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSwgUHJlc2VudGFibGVEYXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZ2VuZXJhbC1zZWFyY2gnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbG9jb01vZHVsZSwgQXV0b0NvbXBsZXRlTW9kdWxlLCBOYXZMaW5rRGlyZWN0aXZlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2dlbmVyYWwtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyYWxTZWFyY2hDb21wb25lbnQge1xyXG5cdHF1ZXJ5ID0gJyc7XHJcblx0YWN0aXZlVGFiID0gJ2FsbCc7XHJcblx0ZGF0YTogRGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlID0ge307XHJcblx0cHJlc2VudGFibGVEYXRhOiBQcmVzZW50YWJsZURhdGFbXSA9IFtdO1xyXG5cdHByaXZhdGUgcXVlcnlTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cdHJlc3VsdHNTaWcgPSB0b1NpZ25hbDxEZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGUgfCBudWxsPihcclxuXHRcdHRoaXMucXVlcnlTdWJqZWN0LnBpcGUoXHJcblx0XHRcdG1hcCgocSkgPT4gcS50cmltKCkpLFxyXG5cdFx0XHRmaWx0ZXIoKHEpID0+IHEubGVuZ3RoID4gMiksXHJcblx0XHRcdHN3aXRjaE1hcCgocSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHBheWxvYWQ6IENhY2hlU2VhcmNoUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0XHRcdHNlYXJjaFRleHQ6IHEsXHJcblx0XHRcdFx0XHRhc3NldERlZmluaXRpb25Db2RlczogW10sXHJcblx0XHRcdFx0XHRwYWdlcjogeyBwYWdlU2l6ZTogNSwgcGFnZU51bWJlcjogMSB9XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaEZvckFzc2V0cyhwYXlsb2FkKS5waXBlKFxyXG5cdFx0XHRcdFx0bWFwKChyZXMpID0+IHJlcy5yZXNwb25zZSksXHJcblx0XHRcdFx0XHRjYXRjaEVycm9yKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIG9mKHt9IGFzIERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHN0YXJ0V2l0aChudWxsKVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0pXHJcblx0XHQpLFxyXG5cdFx0eyBpbml0aWFsVmFsdWU6IG51bGwgfVxyXG5cdCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZVxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3QgcmVzdWx0cyA9IHRoaXMucmVzdWx0c1NpZygpO1xyXG5cdFx0XHRpZiAocmVzdWx0cykge1xyXG5cdFx0XHRcdHRoaXMuZGF0YSA9IHJlc3VsdHM7XHJcblx0XHRcdFx0dGhpcy5wcmVzZW50YWJsZURhdGEgPSBnZXRQcmVzZW50YWJsZURhdGEocmVzdWx0cywgdGhpcy5hY3RpdmVUYWIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHNlYXJjaChxdWVyeTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLnF1ZXJ5ID0gKHF1ZXJ5ID8/ICcnKS50cmltKCk7XHJcblx0XHR0aGlzLnF1ZXJ5U3ViamVjdC5uZXh0KHRoaXMucXVlcnkpO1xyXG5cdH1cclxuXHJcblx0c2V0VGFiKHRhYjogc3RyaW5nKSB7XHJcblx0XHR0aGlzLmFjdGl2ZVRhYiA9IHRhYjtcclxuXHRcdHRoaXMucHJlc2VudGFibGVEYXRhID0gZ2V0UHJlc2VudGFibGVEYXRhKHRoaXMuZGF0YSwgdGFiKTtcclxuXHR9XHJcblxyXG5cdGdvVG9EZXRhaWwoaXRlbTogUHJlc2VudGFibGVEYXRhKSB7XHJcblx0XHRjb25zdCBpc0hvc3RZZWFwID0gYnJpZGdlLmFjdGl2ZUhvc3QoKSA9PT0gQXBwcy5ZRUFQO1xyXG5cclxuXHRcdGlmIChpc0hvc3RZZWFwKSB7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbW5nL21hc3Rlci1kYXRhL3ZpZXctbWQtZGF0YSddLCB7XHJcblx0XHRcdFx0cXVlcnlQYXJhbXM6IHsgYXNzZXRJZDogaXRlbS5hc3NldElkIH1cclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uUmVzdWx0Q2xpY2soaXRlbTogQXV0b0NvbXBsZXRlU2VsZWN0RXZlbnQpIHtcclxuXHRcdHRoaXMuZ29Ub0RldGFpbChpdGVtLnZhbHVlKTtcclxuXHR9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IGdcIj5cclxuXHQ8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ2dlbmVyYWxTZWFyY2gnXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZ2xvYmFsLXNlYXJjaFwiPlxyXG5cdFx0XHQ8cC1hdXRvQ29tcGxldGVcclxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cInF1ZXJ5XCJcclxuXHRcdFx0XHRvcHRpb25MYWJlbD1cInRpdGxlXCJcclxuXHRcdFx0XHRtaW5MZW5ndGg9XCIzXCJcclxuXHRcdFx0XHRbZGVsYXldPVwiNTAwXCJcclxuXHRcdFx0XHQoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudC5xdWVyeSlcIlxyXG5cdFx0XHRcdFtzdWdnZXN0aW9uc109XCJwcmVzZW50YWJsZURhdGFcIlxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdwbGFjZWhvbGRlcicpXCJcclxuXHRcdFx0XHQob25TZWxlY3QpPVwib25SZXN1bHRDbGljaygkZXZlbnQpXCI+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicHgtM1wiPlxyXG5cdFx0XHRcdFx0XHR7eyB0KCdub1Jlc3VsdHMnKSB9fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFicyBmbGV4IGdhcC0yIG92ZXJmbG93LXgtYXV0byB3aGl0ZS1zcGFjZS1ub3dyYXAgcC0yIGJvcmRlci1ib3R0b20tMSBib3JkZXItZ3JheS0yMDBcIj5cclxuXHRcdFx0XHRcdFx0PHNwYW4gKGNsaWNrKT1cInNldFRhYignYWxsJylcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHB5LTEgcHgtMlwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSAnYWxsJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHQoJ2FsbCcpIH19XHJcblx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHJcblx0XHRcdFx0XHRcdEBmb3IgKHRhYiBvZiBkYXRhIHwga2V5dmFsdWU7IHRyYWNrIHRhYikge1xyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIChjbGljayk9XCJzZXRUYWIodGFiLmtleSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHB5LTEgcHgtMlwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWIua2V5XCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhW3RhYi5rZXldLnJlc3VsdFswXS5hc3NldERlZmluaXRpb25OYW1lIH19XHJcblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtcmVzdWx0IHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcblx0XHRcdFx0XHRcdFthcmlsTmF2TGlua109XCJyZXN1bHQudXJsID8geyB0YWJJZDogJycsIG5hdkxpbms6IHJlc3VsdC51cmwsIG5hdk5hbWU6IHJlc3VsdC50aXRsZSB9IDogbnVsbFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicmVzdWx0LWljb25cIj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHt7IHJlc3VsdC5pY29uIH19XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlc3VsdC10ZXh0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRpdGxlIG1iLTJcIj57eyByZXN1bHQudGl0bGUgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKHJlc3VsdC5zdWJ0aXRsZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInN1YnRpdGxlXCI+e3sgcmVzdWx0LnN1YnRpdGxlIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0QGlmIChyZXN1bHQudXJsKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm9wZW4tYnRuIG1sLWF1dG8gYWxpZ24tc2VsZi1jZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hldnJvbi1yaWdodFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicHgtMyBweS0zIGJvcmRlci10b3AtMSBib3JkZXItZ3JheS0yMDBcIj5cclxuXHRcdFx0XHRcdFx0PHNwYW4+e3sgcHJlc2VudGFibGVEYXRhLmxlbmd0aCB9fSB7eyB0KCdyZXN1bHRzJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L3AtYXV0b0NvbXBsZXRlPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -10,6 +10,7 @@ import { SidebarModule } from 'primeng/sidebar';
|
|
|
10
10
|
import { TooltipModule } from 'primeng/tooltip';
|
|
11
11
|
import { TranslocoModule } from '@ngneat/transloco';
|
|
12
12
|
import { Subject, takeUntil } from 'rxjs';
|
|
13
|
+
import { NavLinkDirective } from 'aril/boot/config/apps';
|
|
13
14
|
import { ButtonComponent } from 'aril/ui/button';
|
|
14
15
|
import { TextComponent } from 'aril/ui/text';
|
|
15
16
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
@@ -111,7 +112,7 @@ export class HistorySidebarComponent {
|
|
|
111
112
|
return item.title;
|
|
112
113
|
}
|
|
113
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HistorySidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.HistoryService }, { token: i3.ConfirmationService }, { token: i3.MessageService }, { token: i4.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HistorySidebarComponent, isStandalone: true, selector: "app-history-sidebar", providers: [ConfirmationService], ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-history-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'history'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"history-content\">\r\n\t\t@if (history().length > 0) {\r\n\t\t\t<div class=\"search-section\">\r\n\t\t\t\t<div class=\"flex justify-content-center align-items-center grid p-fluid m-0\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"col-10\"\r\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\r\n\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t@if (filteredHistory().length > 0) {\r\n\t\t\t<div class=\"history-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"history-items\">\r\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\r\n\t\t\t\t\t\t\t<div class=\"history-item\" (click)=\"navigateToItem(item)\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-history empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : t('startBrowsing') }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HistorySidebarComponent, isStandalone: true, selector: "app-history-sidebar", providers: [ConfirmationService], ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-history-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'history'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"history-content\">\r\n\t\t@if (history().length > 0) {\r\n\t\t\t<div class=\"search-section\">\r\n\t\t\t\t<div class=\"flex justify-content-center align-items-center grid p-fluid m-0\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"col-10\"\r\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\r\n\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t@if (filteredHistory().length > 0) {\r\n\t\t\t<div class=\"history-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"history-items\">\r\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\r\n\t\t\t\t\t\t\t<div class=\"history-item\"\r\n\t\t\t\t\t\t\t\t[arilNavLink]=\"{ tabId: '', navLink: item.url, navName: getLocalizedTitle(item) }\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToItem(item)\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-history empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : t('startBrowsing') }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: NavLinkDirective, selector: "[arilNavLink]", inputs: ["arilNavLink"] }] }); }
|
|
115
116
|
}
|
|
116
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HistorySidebarComponent, decorators: [{
|
|
117
118
|
type: Component,
|
|
@@ -127,7 +128,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
127
128
|
BadgeModule,
|
|
128
129
|
TranslocoModule,
|
|
129
130
|
TextComponent,
|
|
130
|
-
FontAwesomeModule
|
|
131
|
-
|
|
131
|
+
FontAwesomeModule,
|
|
132
|
+
NavLinkDirective
|
|
133
|
+
], providers: [ConfirmationService], template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-history-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'history'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"history-content\">\r\n\t\t@if (history().length > 0) {\r\n\t\t\t<div class=\"search-section\">\r\n\t\t\t\t<div class=\"flex justify-content-center align-items-center grid p-fluid m-0\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"col-10\"\r\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\r\n\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t@if (filteredHistory().length > 0) {\r\n\t\t\t<div class=\"history-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"history-items\">\r\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\r\n\t\t\t\t\t\t\t<div class=\"history-item\"\r\n\t\t\t\t\t\t\t\t[arilNavLink]=\"{ tabId: '', navLink: item.url, navName: getLocalizedTitle(item) }\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToItem(item)\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-history empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : t('startBrowsing') }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
|
|
132
134
|
}], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.HistoryService }, { type: i3.ConfirmationService }, { type: i3.MessageService }, { type: i4.TranslocoService }] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9oaXN0b3J5L2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvaGlzdG9yeS9oaXN0b3J5LXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7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RixDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDOzhHQWpHVyx1QkFBdUI7a0dBQXZCLHVCQUF1QixrRUFGeEIsQ0FBQyxtQkFBbUIsQ0FBQywwQkMxQ2pDLGl5R0F1RkEsMmdGRDVERSxZQUFZLDhCQUNaLFdBQVcsOFZBQ1gsYUFBYSxvZEFDYixlQUFlLDZOQUNmLGVBQWUsOEJBQ2YsaUJBQWlCLCtJQUNqQixtQkFBbUIsb21CQUNuQixhQUFhLHFYQUNiLFdBQVcsOEJBQ1gsZUFBZSxpT0FDZixhQUFhLGtMQUNiLGlCQUFpQjs7MkZBTU4sdUJBQXVCO2tCQXJCbkMsU0FBUztpQ0FDRyxJQUFJLFlBQ04scUJBQXFCLFdBQ3RCO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2pCLGFBR1UsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYmFkZ2UnO1xyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBTY3JvbGxQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2Nyb2xscGFuZWwnO1xyXG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0JztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpc3RvcnlJdGVtLCBIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vaGlzdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IHNvbGlkSWNvbnMgfSBmcm9tICdhcmlsL3V0aWwvbGliJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtaGlzdG9yeS1zaWRlYmFyJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRDb21tb25Nb2R1bGUsXHJcblx0XHRGb3Jtc01vZHVsZSxcclxuXHRcdFNpZGViYXJNb2R1bGUsXHJcblx0XHRCdXR0b25Db21wb25lbnQsXHJcblx0XHRJbnB1dFRleHRNb2R1bGUsXHJcblx0XHRTY3JvbGxQYW5lbE1vZHVsZSxcclxuXHRcdENvbmZpcm1EaWFsb2dNb2R1bGUsXHJcblx0XHRUb29sdGlwTW9kdWxlLFxyXG5cdFx0QmFkZ2VNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRUZXh0Q29tcG9uZW50LFxyXG5cdFx0Rm9udEF3ZXNvbWVNb2R1bGVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9oaXN0b3J5LXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXN0b3J5U2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRoaXN0b3J5ID0gc2lnbmFsPEhpc3RvcnlJdGVtW10+KFtdKTtcclxuXHRmaWx0ZXJlZEhpc3RvcnkgPSBzaWduYWw8SGlzdG9yeUl0ZW1bXT4oW10pO1xyXG5cdHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblx0c29saWRJY29ucyA9IHNvbGlkSWNvbnM7XHJcblx0XHJcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGhpc3RvcnlTZXJ2aWNlOiBIaXN0b3J5U2VydmljZSxcclxuXHRcdHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuaGlzdG9yeVNlcnZpY2UuaGlzdG9yeSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoaGlzdG9yeSkgPT4ge1xyXG5cdFx0XHR0aGlzLmhpc3Rvcnkuc2V0KGhpc3RvcnkpO1xyXG5cdFx0XHR0aGlzLmFwcGx5RmlsdGVyKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcblx0XHR0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuaGlzdG9yeVNpZGViYXJWaXNpYmxlO1xyXG5cdH1cclxuXHJcblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5oaXN0b3J5U2lkZWJhclZpc2libGUgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hcHBseUZpbHRlcigpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhcHBseUZpbHRlcigpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKTtcclxuXHRcdGlmICghc2VhcmNoVGVybS50cmltKCkpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZEhpc3Rvcnkuc2V0KHRoaXMuaGlzdG9yeSgpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IGZpbHRlcmVkID0gdGhpcy5oaXN0b3J5U2VydmljZS5nZXRIaXN0b3J5SXRlbXNCeVNlYXJjaFRlcm0oc2VhcmNoVGVybSk7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRIaXN0b3J5LnNldChmaWx0ZXJlZCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuYXZpZ2F0ZVRvSXRlbShpdGVtOiBIaXN0b3J5SXRlbSk6IHZvaWQge1xyXG5cdFx0dGhpcy5oaXN0b3J5U2VydmljZS5uYXZpZ2F0ZVRvSGlzdG9yeUl0ZW0oaXRlbSk7XHJcblx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGNsZWFyQWxsSGlzdG9yeShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuXHRcdHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuXHRcdFx0dGFyZ2V0OiBldmVudC50YXJnZXQgYXMgRXZlbnRUYXJnZXQsXHJcblx0XHRcdG1lc3NhZ2U6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuY29uZmlybUNsZWFyQWxsTWVzc2FnZScpLFxyXG5cdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuZGVsZXRlQ29uZmlybWF0aW9uJyksXHJcblx0XHRcdGljb246ICdwaSBwaS1pbmZvLWNpcmNsZScsXHJcblx0XHRcdGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdoaXN0b3J5LmFjY2VwdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdoaXN0b3J5LnJlamVjdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi1zdWNjZXNzJyxcclxuXHRcdFx0cmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLWRhbmdlcicsXHJcblx0XHRcdGFjY2VwdDogKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaGlzdG9yeVNlcnZpY2UuY2xlYXJIaXN0b3J5KCk7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuYWNjZXB0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnaGlzdG9yeS5jbGVhckFsbCcpXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dHJhY2tCeUl0ZW1JZChpbmRleDogbnVtYmVyLCBpdGVtOiBIaXN0b3J5SXRlbSkge1xyXG5cdFx0cmV0dXJuIGl0ZW0uaWQgfHwgaW5kZXg7XHJcblx0fVxyXG5cclxuXHRnZXRMb2NhbGl6ZWRUaXRsZShpdGVtOiBIaXN0b3J5SXRlbSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkgYXMgJ3RyJyB8ICdlbic7XHJcblxyXG5cdFx0Ly8gVXNlIG11bHRpTGFuZ3VhZ2VUaXRsZSBpZiBhdmFpbGFibGVcclxuXHRcdGlmIChpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZSkge1xyXG5cdFx0XHRjb25zdCBsb2NhbGl6ZWRUaXRsZSA9IGl0ZW0ubXVsdGlMYW5ndWFnZVRpdGxlW2N1cnJlbnRMYW5nXTtcclxuXHRcdFx0aWYgKGxvY2FsaXplZFRpdGxlKSB7XHJcblx0XHRcdFx0cmV0dXJuIGxvY2FsaXplZFRpdGxlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEZhbGxiYWNrIHRvIFR1cmtpc2ggaWYgY3VycmVudCBsYW5ndWFnZSBub3QgYXZhaWxhYmxlXHJcblx0XHRcdGlmIChpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZS50cikge1xyXG5cdFx0XHRcdHJldHVybiBpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZS50cjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZhbGxiYWNrIHRvIG9yaWdpbmFsIHRpdGxlXHJcblx0XHRyZXR1cm4gaXRlbS50aXRsZTtcclxuXHR9XHJcbn1cclxuIiwiPHAtc2lkZWJhclxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcblx0cG9zaXRpb249XCJyaWdodFwiXHJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcclxuXHRzdHlsZUNsYXNzPVwibGF5b3V0LWhpc3Rvcnktc2lkZWJhciB3LWZ1bGwgc206dy0zMHJlbVwiXHJcblx0KnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAnaGlzdG9yeSdcIj5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy1mdWxsXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktaGlzdG9yeSB0ZXh0LXByaW1hcnkgdGV4dC14bFwiPjwvaT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+e3sgdCgncGFnZUhpc3RvcnknKSB9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1jb250ZW50XCI+XHJcblx0XHRAaWYgKGhpc3RvcnkoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtc2VjdGlvblwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdyaWQgcC1mbHVpZCBtLTBcIj5cclxuXHRcdFx0XHRcdDxhcmlsLXRleHRcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2wtMTBcIlxyXG5cdFx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VhcmNoSGlzdG9yeScpXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuXHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoKVwiPlxyXG5cdFx0XHRcdFx0PC9hcmlsLXRleHQ+XHJcblx0XHRcdFx0XHQ8ZmEtaWNvblxyXG5cdFx0XHRcdFx0XHRbaWNvbl09XCJzb2xpZEljb25zLmZhVHJhc2hcIlxyXG5cdFx0XHRcdFx0XHRzaXplPVwieGxcIlxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiB2YXIoLS1yZWQtNTAwKVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29sLTIgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidCgnY29uZmlybUNsZWFyQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY2xlYXJBbGxIaXN0b3J5KCRldmVudClcIj5cclxuXHRcdFx0XHRcdDwvZmEtaWNvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblxyXG5cdFx0QGlmIChmaWx0ZXJlZEhpc3RvcnkoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJoaXN0b3J5LWxpc3RcIj5cclxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1pdGVtc1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIGZpbHRlcmVkSGlzdG9yeSgpOyB0cmFjayB0cmFja0J5SXRlbUlkKCRpbmRleCwgaXRlbSkpIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1pdGVtXCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9JdGVtKGl0ZW0pXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWV4dGVybmFsLWxpbmsgdGV4dC1wcmltYXJ5IG1yLTJcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGl0bGUtaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlLXRleHRcIj57eyBnZXRMb2NhbGl6ZWRUaXRsZShpdGVtKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJyb3V0ZS10ZXh0XCI+e3sgaXRlbS51cmwgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9wLXNjcm9sbFBhbmVsPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZW1wdHktY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1oaXN0b3J5IGVtcHR5LWljb25cIj48L2k+XHJcblx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJlbXB0eS10aXRsZVwiPlxyXG5cdFx0XHRcdFx0XHR7eyBzZWFyY2hUZXJtKCkgPyB0KCdub1NlYXJjaFJlc3VsdHMnKSA6IHQoJ25vSGlzdG9yeScpIH19XHJcblx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ3RyeURpZmZlcmVudEtleXdvcmRzJykgOiB0KCdzdGFydEJyb3dzaW5nJykgfX1cclxuXHRcdFx0XHRcdDwvcD5cclxuXHRcdFx0XHRcdEBpZiAoc2VhcmNoVGVybSgpKSB7XHJcblx0XHRcdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFtsYWJlbF09XCJ0KCdjbGVhclNlYXJjaCcpXCJcclxuXHRcdFx0XHRcdFx0XHRpY29uPVwiVElNRVNcIlxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yPVwic2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRbb3V0bGluZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJzZWFyY2hUZXJtLnNldCgnJyk7IG9uU2VhcmNoQ2hhbmdlKClcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbjwvcC1zaWRlYmFyPlxyXG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9oaXN0b3J5L2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvaGlzdG9yeS9oaXN0b3J5LXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFrQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBd0IzQyxNQUFNLE9BQU8sdUJBQXVCO0lBUW5DLFlBQ1EsYUFBNEIsRUFDM0IsY0FBOEIsRUFDOUIsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLGdCQUFrQztRQUpuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVozQyxZQUFPLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoQyxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWhCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBUXBDLENBQUM7SUFFSixRQUFRO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFdBQVc7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNGLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVk7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUNoQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQXFCO1lBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDO1lBQzFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDO1lBQ3JFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUM7WUFDekUsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUM7WUFDekUsc0JBQXNCLEVBQUUsa0JBQWtCO1lBQzFDLHNCQUFzQixFQUFFLGlCQUFpQjtZQUN6QyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN2QixRQUFRLEVBQUUsU0FBUztvQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUM7b0JBQ3JFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDO2lCQUMzRCxDQUFDLENBQUM7WUFDSixDQUFDO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhLEVBQUUsSUFBaUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBaUI7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBaUIsQ0FBQztRQUV6RSxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxjQUFjLENBQUM7WUFDdkIsQ0FBQztZQUNELHdEQUF3RDtZQUN4RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDRixDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDOzhHQWpHVyx1QkFBdUI7a0dBQXZCLHVCQUF1QixrRUFGeEIsQ0FBQyxtQkFBbUIsQ0FBQywwQkM1Q2pDLDQ1R0F5RkEsMmdGRDdERSxZQUFZLDhCQUNaLFdBQVcsOFZBQ1gsYUFBYSxvZEFDYixlQUFlLDZOQUNmLGVBQWUsOEJBQ2YsaUJBQWlCLCtJQUNqQixtQkFBbUIsb21CQUNuQixhQUFhLHFYQUNiLFdBQVcsOEJBQ1gsZUFBZSxpT0FDZixhQUFhLGtMQUNiLGlCQUFpQixvU0FDakIsZ0JBQWdCOzsyRkFNTCx1QkFBdUI7a0JBdEJuQyxTQUFTO2lDQUNHLElBQUksWUFDTixxQkFBcUIsV0FDdEI7d0JBQ1IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3FCQUNoQixhQUdVLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL2JhZGdlJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcclxuaW1wb3J0IHsgU2Nyb2xsUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Njcm9sbHBhbmVsJztcclxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5hdkxpbmtEaXJlY3RpdmUgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RleHQnO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGlzdG9yeUl0ZW0sIEhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgc29saWRJY29ucyB9IGZyb20gJ2FyaWwvdXRpbC9saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1oaXN0b3J5LXNpZGViYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdElucHV0VGV4dE1vZHVsZSxcclxuXHRcdFNjcm9sbFBhbmVsTW9kdWxlLFxyXG5cdFx0Q29uZmlybURpYWxvZ01vZHVsZSxcclxuXHRcdFRvb2x0aXBNb2R1bGUsXHJcblx0XHRCYWRnZU1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdFRleHRDb21wb25lbnQsXHJcblx0XHRGb250QXdlc29tZU1vZHVsZSxcclxuXHRcdE5hdkxpbmtEaXJlY3RpdmVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9oaXN0b3J5LXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXN0b3J5U2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRoaXN0b3J5ID0gc2lnbmFsPEhpc3RvcnlJdGVtW10+KFtdKTtcclxuXHRmaWx0ZXJlZEhpc3RvcnkgPSBzaWduYWw8SGlzdG9yeUl0ZW1bXT4oW10pO1xyXG5cdHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblx0c29saWRJY29ucyA9IHNvbGlkSWNvbnM7XHJcblx0XHJcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGhpc3RvcnlTZXJ2aWNlOiBIaXN0b3J5U2VydmljZSxcclxuXHRcdHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuaGlzdG9yeVNlcnZpY2UuaGlzdG9yeSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoaGlzdG9yeSkgPT4ge1xyXG5cdFx0XHR0aGlzLmhpc3Rvcnkuc2V0KGhpc3RvcnkpO1xyXG5cdFx0XHR0aGlzLmFwcGx5RmlsdGVyKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcblx0XHR0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuaGlzdG9yeVNpZGViYXJWaXNpYmxlO1xyXG5cdH1cclxuXHJcblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5oaXN0b3J5U2lkZWJhclZpc2libGUgPSB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hcHBseUZpbHRlcigpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhcHBseUZpbHRlcigpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKTtcclxuXHRcdGlmICghc2VhcmNoVGVybS50cmltKCkpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZEhpc3Rvcnkuc2V0KHRoaXMuaGlzdG9yeSgpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IGZpbHRlcmVkID0gdGhpcy5oaXN0b3J5U2VydmljZS5nZXRIaXN0b3J5SXRlbXNCeVNlYXJjaFRlcm0oc2VhcmNoVGVybSk7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRIaXN0b3J5LnNldChmaWx0ZXJlZCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuYXZpZ2F0ZVRvSXRlbShpdGVtOiBIaXN0b3J5SXRlbSk6IHZvaWQge1xyXG5cdFx0dGhpcy5oaXN0b3J5U2VydmljZS5uYXZpZ2F0ZVRvSGlzdG9yeUl0ZW0oaXRlbSk7XHJcblx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGNsZWFyQWxsSGlzdG9yeShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuXHRcdHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuXHRcdFx0dGFyZ2V0OiBldmVudC50YXJnZXQgYXMgRXZlbnRUYXJnZXQsXHJcblx0XHRcdG1lc3NhZ2U6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuY29uZmlybUNsZWFyQWxsTWVzc2FnZScpLFxyXG5cdFx0XHRoZWFkZXI6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuZGVsZXRlQ29uZmlybWF0aW9uJyksXHJcblx0XHRcdGljb246ICdwaSBwaS1pbmZvLWNpcmNsZScsXHJcblx0XHRcdGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdoaXN0b3J5LmFjY2VwdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdoaXN0b3J5LnJlamVjdEJ1dHRvbkxhYmVsJyksXHJcblx0XHRcdGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6ICdwLWJ1dHRvbi1zdWNjZXNzJyxcclxuXHRcdFx0cmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLWRhbmdlcicsXHJcblx0XHRcdGFjY2VwdDogKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaGlzdG9yeVNlcnZpY2UuY2xlYXJIaXN0b3J5KCk7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2hpc3RvcnkuYWNjZXB0QnV0dG9uTGFiZWwnKSxcclxuXHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnaGlzdG9yeS5jbGVhckFsbCcpXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dHJhY2tCeUl0ZW1JZChpbmRleDogbnVtYmVyLCBpdGVtOiBIaXN0b3J5SXRlbSkge1xyXG5cdFx0cmV0dXJuIGl0ZW0uaWQgfHwgaW5kZXg7XHJcblx0fVxyXG5cclxuXHRnZXRMb2NhbGl6ZWRUaXRsZShpdGVtOiBIaXN0b3J5SXRlbSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkgYXMgJ3RyJyB8ICdlbic7XHJcblxyXG5cdFx0Ly8gVXNlIG11bHRpTGFuZ3VhZ2VUaXRsZSBpZiBhdmFpbGFibGVcclxuXHRcdGlmIChpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZSkge1xyXG5cdFx0XHRjb25zdCBsb2NhbGl6ZWRUaXRsZSA9IGl0ZW0ubXVsdGlMYW5ndWFnZVRpdGxlW2N1cnJlbnRMYW5nXTtcclxuXHRcdFx0aWYgKGxvY2FsaXplZFRpdGxlKSB7XHJcblx0XHRcdFx0cmV0dXJuIGxvY2FsaXplZFRpdGxlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEZhbGxiYWNrIHRvIFR1cmtpc2ggaWYgY3VycmVudCBsYW5ndWFnZSBub3QgYXZhaWxhYmxlXHJcblx0XHRcdGlmIChpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZS50cikge1xyXG5cdFx0XHRcdHJldHVybiBpdGVtLm11bHRpTGFuZ3VhZ2VUaXRsZS50cjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZhbGxiYWNrIHRvIG9yaWdpbmFsIHRpdGxlXHJcblx0XHRyZXR1cm4gaXRlbS50aXRsZTtcclxuXHR9XHJcbn1cclxuIiwiPHAtc2lkZWJhclxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcblx0cG9zaXRpb249XCJyaWdodFwiXHJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcclxuXHRzdHlsZUNsYXNzPVwibGF5b3V0LWhpc3Rvcnktc2lkZWJhciB3LWZ1bGwgc206dy0zMHJlbVwiXHJcblx0KnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAnaGlzdG9yeSdcIj5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy1mdWxsXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktaGlzdG9yeSB0ZXh0LXByaW1hcnkgdGV4dC14bFwiPjwvaT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+e3sgdCgncGFnZUhpc3RvcnknKSB9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1jb250ZW50XCI+XHJcblx0XHRAaWYgKGhpc3RvcnkoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtc2VjdGlvblwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdyaWQgcC1mbHVpZCBtLTBcIj5cclxuXHRcdFx0XHRcdDxhcmlsLXRleHRcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2wtMTBcIlxyXG5cdFx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VhcmNoSGlzdG9yeScpXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuXHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoKVwiPlxyXG5cdFx0XHRcdFx0PC9hcmlsLXRleHQ+XHJcblx0XHRcdFx0XHQ8ZmEtaWNvblxyXG5cdFx0XHRcdFx0XHRbaWNvbl09XCJzb2xpZEljb25zLmZhVHJhc2hcIlxyXG5cdFx0XHRcdFx0XHRzaXplPVwieGxcIlxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiB2YXIoLS1yZWQtNTAwKVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29sLTIgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidCgnY29uZmlybUNsZWFyQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY2xlYXJBbGxIaXN0b3J5KCRldmVudClcIj5cclxuXHRcdFx0XHRcdDwvZmEtaWNvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblxyXG5cdFx0QGlmIChmaWx0ZXJlZEhpc3RvcnkoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJoaXN0b3J5LWxpc3RcIj5cclxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1pdGVtc1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIGZpbHRlcmVkSGlzdG9yeSgpOyB0cmFjayB0cmFja0J5SXRlbUlkKCRpbmRleCwgaXRlbSkpIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaGlzdG9yeS1pdGVtXCJcclxuXHRcdFx0XHRcdFx0XHRcdFthcmlsTmF2TGlua109XCJ7IHRhYklkOiAnJywgbmF2TGluazogaXRlbS51cmwsIG5hdk5hbWU6IGdldExvY2FsaXplZFRpdGxlKGl0ZW0pIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm5hdmlnYXRlVG9JdGVtKGl0ZW0pXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWV4dGVybmFsLWxpbmsgdGV4dC1wcmltYXJ5IG1yLTJcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGl0bGUtaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlLXRleHRcIj57eyBnZXRMb2NhbGl6ZWRUaXRsZShpdGVtKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJyb3V0ZS10ZXh0XCI+e3sgaXRlbS51cmwgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9wLXNjcm9sbFBhbmVsPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZW1wdHktY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1oaXN0b3J5IGVtcHR5LWljb25cIj48L2k+XHJcblx0XHRcdFx0XHQ8aDMgY2xhc3M9XCJlbXB0eS10aXRsZVwiPlxyXG5cdFx0XHRcdFx0XHR7eyBzZWFyY2hUZXJtKCkgPyB0KCdub1NlYXJjaFJlc3VsdHMnKSA6IHQoJ25vSGlzdG9yeScpIH19XHJcblx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ3RyeURpZmZlcmVudEtleXdvcmRzJykgOiB0KCdzdGFydEJyb3dzaW5nJykgfX1cclxuXHRcdFx0XHRcdDwvcD5cclxuXHRcdFx0XHRcdEBpZiAoc2VhcmNoVGVybSgpKSB7XHJcblx0XHRcdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFtsYWJlbF09XCJ0KCdjbGVhclNlYXJjaCcpXCJcclxuXHRcdFx0XHRcdFx0XHRpY29uPVwiVElNRVNcIlxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yPVwic2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRbb3V0bGluZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJzZWFyY2hUZXJtLnNldCgnJyk7IG9uU2VhcmNoQ2hhbmdlKClcIj5cclxuXHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcblxyXG5cdDxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbjwvcC1zaWRlYmFyPlxyXG4iXX0=
|