@bizdoc/core 2.3.34 → 2.3.35
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/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -5
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -5
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -5
- package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -5
- package/esm2022/lib/admin/utility.pane.component.mjs +3 -6
- package/esm2022/lib/browse/browse.pane.component.mjs +3 -5
- package/esm2022/lib/chat/chat-info.mjs +2 -2
- package/esm2022/lib/chat/contacts.pane.component.mjs +3 -6
- package/esm2022/lib/chat/conversation.component.mjs +3 -4
- package/esm2022/lib/chat/conversation.pane.component.mjs +3 -5
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -5
- package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
- package/esm2022/lib/compose/comments/comments.component.mjs +3 -4
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -5
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
- package/esm2022/lib/compose/compose.pane.component.mjs +3 -5
- package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -5
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -5
- package/esm2022/lib/core/animations.mjs +6 -1
- package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
- package/esm2022/lib/core/slots/slots.component.mjs +9 -9
- package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
- package/esm2022/lib/core/translations.mjs +10 -8
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -5
- package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -5
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -5
- package/esm2022/lib/cube/view.pane.component.mjs +3 -5
- package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
- package/esm2022/lib/home/home.desktop.component.mjs +3 -3
- package/esm2022/lib/home/options/options.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -6
- package/esm2022/lib/options/options.component.mjs +21 -16
- package/esm2022/lib/options/options.service.mjs +2 -1
- package/esm2022/lib/reports/report.pane.component.mjs +3 -5
- package/esm2022/lib/routes.desktop.mjs +2 -2
- package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -6
- package/fesm2022/bizdoc-core.mjs +268 -302
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/chat/conversation.component.d.ts +0 -1
- package/lib/compose/comments/comments.component.d.ts +0 -1
- package/lib/core/animations.d.ts +2 -0
- package/lib/core/slots/slots.component.d.ts +1 -1
- package/lib/core/translations.d.ts +7 -5
- package/lib/options/options.component.d.ts +6 -5
- package/package.json +1 -1
@@ -295,11 +295,11 @@ export class HomeComponent extends HomeBase {
|
|
295
295
|
item.instance.onPick();
|
296
296
|
}
|
297
297
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: HomeComponent, deps: [{ token: i1.PanesRouter }, { token: i2.SearchService }, { token: i3.MailboxService }, { token: i4.Popup }, { token: i5.PromptService }, { token: i6.GuideService }, { token: i0.Injector }, { token: i7.SessionService }, { token: i8.HubService }, { token: i9.TranslateService }, { token: i10.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
298
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "main", first: true, predicate: SlotsComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger }], usesInheritance: true, ngImport: i0, template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <!--[class.loading]=\"loading\"-->\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <!--@animate-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleAnimation\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--tool-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-basis:100%}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"], dependencies: [{ kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i12.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i14.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i14.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i14.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i15.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i17.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i18.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i18.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i19.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i20.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i21.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i22.AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: i23.SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: i24.CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i25.ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i26.FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i27.ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i28.AsyncPipe, name: "async" }, { kind: "pipe", type: i29.TranslatePipe, name: "translate" }], animations: [submenuAnimation, panesTitleAnimation, searchAnimation] }); }
|
298
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "main", first: true, predicate: SlotsComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger }], usesInheritance: true, ngImport: i0, template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleVariant\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--notifications-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n <!--panes & tabs-->\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;height:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex:1;overflow-x:hidden;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"], dependencies: [{ kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i12.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i14.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i14.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i14.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i15.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i17.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i18.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i18.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i19.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i20.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i21.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i22.AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: i23.SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: i24.CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i25.ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i26.FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i27.ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i28.AsyncPipe, name: "async" }, { kind: "pipe", type: i29.TranslatePipe, name: "translate" }], animations: [submenuAnimation, panesTitleAnimation, searchAnimation] }); }
|
299
299
|
}
|
300
300
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: HomeComponent, decorators: [{
|
301
301
|
type: Component,
|
302
|
-
args: [{ selector: 'bizdoc-home', host: { class: 'mat-app-background' }, animations: [submenuAnimation, panesTitleAnimation, searchAnimation], template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <!--[class.loading]=\"loading\"-->\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <!--@animate-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleAnimation\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--tool-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-basis:100%}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"] }]
|
302
|
+
args: [{ selector: 'bizdoc-home', host: { class: 'mat-app-background' }, animations: [submenuAnimation, panesTitleAnimation, searchAnimation], template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleVariant\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--notifications-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n <!--panes & tabs-->\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;height:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex:1;overflow-x:hidden;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"] }]
|
303
303
|
}], ctorParameters: () => [{ type: i1.PanesRouter }, { type: i2.SearchService }, { type: i3.MailboxService }, { type: i4.Popup }, { type: i5.PromptService }, { type: i6.GuideService }, { type: i0.Injector }, { type: i7.SessionService }, { type: i8.HubService }, { type: i9.TranslateService }, { type: i10.MatSnackBar }, { type: undefined, decorators: [{
|
304
304
|
type: Inject,
|
305
305
|
args: [BIZDOC_CONFIG]
|
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
319
319
|
type: HostListener,
|
320
320
|
args: ['document:keydown', ['$event']]
|
321
321
|
}] } });
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9ob21lL2hvbWUuZGVza3RvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxPQUFPLEVBQWdDLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMkJB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QUM7OzBCQTJFakUsTUFBTTsyQkFBQyxhQUFhO3lDQXJCa0IsTUFBTTtzQkFBOUMsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNaLElBQUk7c0JBQTlCLFNBQVM7dUJBQUMsY0FBYztnQkFDTCxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ29DLE9BQU87c0JBQTVELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQThIcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEluamVjdCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgRWxlbWVudFJlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIE9wZW5Qb2xpY3kgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBwYW5lc1RpdGxlQW5pbWF0aW9uLCBzZWFyY2hBbmltYXRpb24sIHN1Ym1lbnVBbmltYXRpb24gfSBmcm9tICcuLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9maWxlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEhvbWVCYXNlIH0gZnJvbSAnLi9ob21lLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblBhbmVCYXNlLCBOYXZpZ2F0aW9uU3RhcnQgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1aWNrT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1aWNrU2lnbkNvbXBvbmVudCB9IGZyb20gJy4vc2lnbi9zaWduLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNsb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9zbG90cy9zbG90cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpc3RpbmdJdGVtLCBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IExpc3RpbmdDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gvZGVjbGFyYXRpb25zJztcclxuaW1wb3J0IHsgUXVpY2tOb3RpZmljYXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50JztcclxuXHJcbi8qKiBkZXNrdG9wIGhvbWUgY29tcCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1ob21lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ob21lLmRlc2t0b3AuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7IGNsYXNzOiAnbWF0LWFwcC1iYWNrZ3JvdW5kJyB9LFxyXG4gIGFuaW1hdGlvbnM6IFtzdWJtZW51QW5pbWF0aW9uLCBwYW5lc1RpdGxlQW5pbWF0aW9uLCBzZWFyY2hBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lQ29tcG9uZW50IGV4dGVuZHMgSG9tZUJhc2Uge1xyXG4gIGRpYWxvZzogYm9vbGVhbjtcclxuICByZWFkb25seSBzeXNBZG1pbiA9IHRoaXMuX3Nlc3Npb24uaXNTeXN0ZW07XHJcbiAgcmVhZG9ubHkgZm9ybXMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmlsdGVyKGYgPT4gZi5jcmVhdGFibGUpO1xyXG4gIGNyZWF0aW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX3N1Ym1lbnVNb2RlOiAnZnVsbCcgfCAnc2hyaW5rJyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51TW9kZScpIGFzIGFueSB8fCAnZnVsbCc7XHJcbiAgcHVibGljIGdldCBzdWJtZW51TW9kZSgpOiAnZnVsbCcgfCAnc2hyaW5rJyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudU1vZGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc3VibWVudU1vZGUodmFsdWU6ICdmdWxsJyB8ICdzaHJpbmsnKSB7XHJcbiAgICB0aGlzLl9zdWJtZW51TW9kZSA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnVNb2RlJywgdmFsdWUpXHJcbiAgfVxyXG4gIHByaXZhdGUgX3N1Ym1lbnU6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51Jyk7XHJcbiAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xyXG4gIGdldCBhY3RpdmVNZW51KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1lbnUgfHwgdGhpcy5fcGF0aDtcclxuICB9XHJcbiAgcHVibGljIGdldCBzdWJtZW51KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzdWJtZW51KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3N1Ym1lbnUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnUnLCB2YWx1ZSk7XHJcbiAgICBlbHNlIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdWJtZW51Jyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzKG5hbWUsIHZhbD86IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZClcclxuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpID09PSAnMSc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIHZhbCA/ICcxJyA6ICcwJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzT3JEZWZhdWx0KG5hbWUsICRkZWZhdWx0KSB7XHJcbiAgICBjb25zdCB2YWwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcclxuICAgIHJldHVybiB2YWwgPyB2YWwgPT09ICcxJyA6ICRkZWZhdWx0O1xyXG4gIH1cclxuICBwcml2YXRlIF9jb2xsYXBzZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgnY29sbGFwc2VkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBjb2xsYXBzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGNvbGxhcHNlZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fY29sbGFwc2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygnY29sbGFwc2VkJywgdGhpcy5jb2xsYXBzZWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9waW5uZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgncGlubmVkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBwaW5uZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlubmVkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHBpbm5lZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGlubmVkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygncGlubmVkJywgdmFsdWUpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyOiBNYXRTaWRlbmF2O1xyXG4gIEBWaWV3Q2hpbGQoU2xvdHNDb21wb25lbnQpIG1haW46IFNsb3RzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgdHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBwcm9maWxlOiBQcm9maWxlO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlc3VsdHM6IE9ic2VydmFibGU8TGlzdGluZ0l0ZW1bXT47XHJcbiAgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfY29sbGFwc2VUb2dnbGUgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHN1cGVyKHNlc3Npb24sIG1lc3NhZ2luZywgdHJhbnNsYXRlLCBzbmFja0JhciwgaW5qZWN0b3IsIGNvbmZpZyk7XHJcbiAgICB0aGlzLnByb2ZpbGUgPSBzZXNzaW9uLnByb2ZpbGU7XHJcbiAgICBfcm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgJiYgZS5wYW5lLnBhdGggJiYgZS5wYW5lLm1vZGUgPT09ICdwYW5lJykpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZSkgPT5cclxuICAgICAgICB0aGlzLl9wYXRoID0gZS5wYW5lLnBhdGguc3BsaXQoJy8nKVswXVxyXG4gICAgICApO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzdWx0cyA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgbWFwKHYgPT4gdGhpcy5fc2VydmljZS5zZWFyY2godikpKTtcclxuICB9XHJcbiAgLyoqIG9wdGlvbnMgKi9cclxuICBvcHRpb25zKGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tPcHRpb25zQ29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgc2lnbm91dChldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKFF1aWNrU2lnbkNvbXBvbmVudCwgZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCwgeyBwb3NpdGlvbjogJ2VuZCcgfSk7XHJcbiAgfVxyXG4gIG5hdihwYXRoKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW3BhdGhdKTtcclxuICAgIHRoaXMuc3VibWVudSA9IG51bGw7XHJcbiAgICB0aGlzLmNvbGxhcHNlc3VibWVudSgpO1xyXG4gIH1cclxuICBvbk5ld01lc3NhZ2UobW9kZWw6IFJlY2lwaWVudE1vZGVsKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBtb2RlbC5pZC5lbmNvZGVJZCgpXSxcclxuICAgICAge1xyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW06IG1vZGVsIH0sXHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBjbG9zZXN1Ym1lbnUoKSB7XHJcbiAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gIH1cclxuICBvcGVubmV3KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybXMubGVuZ3RoID4gMSkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ID09PSAnbmV3JylcclxuICAgICAgICB0aGlzLmNsb3Nlc3VibWVudSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5vcGVuc3VibWVudSgnbmV3Jyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHRoaXMuX2NyZWF0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGUoKSB7XHJcbiAgICB0aGlzLmNyZWF0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX21haWxib3guY3JlYXRlKHRoaXMuZm9ybXNbMF0ubmFtZSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCByLmlkLmVuY29kZUlkKCldLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyLFxyXG4gICAgICAgICAgICAgIHN0YXRlOiB7IGl0ZW06IHIgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnJvcjogKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnIoZSk7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXJyKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcikge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoICgocmVzcG9uc2UgYXMgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2Ugc3dpdGNoICgocmVzcG9uc2UgYXMgSHR0cEVycm9yUmVzcG9uc2UpLnN0YXR1cykge1xyXG4gICAgICBjYXNlIDQwMTpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcignVW5hdXRob3JpemVkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgNDA2OlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKChyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSkuZXJyb3IpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDQyNjogLy8gbGljZW5zZVxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKCdMaWNlbnNlRXJyJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5zdWJtZW51KG1lbnU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc3VibWVudSA9PT0gbWVudSlcclxuICAgICAgdGhpcy5zdWJtZW51TW9kZSA9IHRoaXMuc3VibWVudU1vZGUgPT09ICdmdWxsJyA/ICdzaHJpbmsnIDogJ2Z1bGwnO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWVudSA9IG1lbnU7XHJcbiAgICAgIHRoaXMuc3VibWVudU1vZGUgPSAnZnVsbCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbGxhcHNlc3VibWVudSgpIHtcclxuICAgIGlmICghdGhpcy5waW5uZWQgJiYgdGhpcy5zdWJtZW51ICE9PSAnbmV3JykgdGhpcy5zdWJtZW51TW9kZSA9ICdzaHJpbmsnO1xyXG4gIH1cclxuICB0b2dnbGVQaW5uZWQoKSB7XHJcbiAgICB0aGlzLnBpbm5lZCA9ICF0aGlzLnBpbm5lZDtcclxuICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnBpbm5lZCA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gIH1cclxuICBvdmVycmlkZSBtYWlscygpIHtcclxuICAgIHN1cGVyLm1haWxzKCk7XHJcbiAgICB0aGlzLm9wZW5zdWJtZW51KCdtYWlsYm94Jyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEFsdCtuLCBBbHQrYSwgQ3RybCArIC5cclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XHJcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnbicgfHwgZXZlbnQua2V5ID09PSAnTicpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSA9PT0gJ25ldycpXHJcbiAgICAgICAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybXMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGUoKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1lbnUgPSAnbmV3JztcclxuICAgICAgICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09ICdhJyB8fCBldmVudC5rZXkgPT09ICdBJykge1xyXG4gICAgICAgIGlmICh0aGlzLnN1Ym1lbnUgPT09ICdjdWJlJylcclxuICAgICAgICAgIHRoaXMuc3VibWVudSA9IG51bGw7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5wcm9maWxlLmN1YmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucHJvZmlsZS5jdWJlcy5sZW5ndGggPT09IDEgJiYgdGhpcy5wcm9maWxlLmN1YmVzWzBdLnZpZXdzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdWJlID0gdGhpcy5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjdWJlJywgY3ViZS5uYW1lLCAndicsIGN1YmUudmlld3NbMF0ubmFtZV0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtZW51ID0gJ2N1YmUnO1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1lbnVNb2RlID0gJ2Z1bGwnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICgoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpICYmIGxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJy9tYWlsYm94L2YnKSA8IDApIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoaW5nKVxyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ2gnIHx8IGV2ZW50LmtleSA9PT0gJ0gnKSB7XHJcbiAgICAgICAgY29uc3QgeyBoZWxwIH0gPSB0aGlzLm1haW4ucGFuZXNbdGhpcy5tYWluLnNlbGVjdGVkSW5kZXhdO1xyXG4gICAgICAgIHRoaXMuZ3VpZGUoaGVscCA/PyAnaW50cm8nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICcuJykge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ICYmICF0aGlzLl9jb2xsYXBzZVRvZ2dsZSkge1xyXG4gICAgICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJyA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gICAgICAgIHRoaXMuX2NvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgICAgICB0aGlzLl9jb2xsYXBzZVRvZ2dsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGd1aWRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQobmFtZSk7XHJcbiAgfVxyXG4gIG5vdGlmcyhldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLnByb2ZpbGUubm90aWZpY2F0aW9ucy5sZW5ndGggJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5ub3RpZmljYXRpb25zVG91Y2goKTtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tOb3RpZmljYXRpb25zQ29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnc3RhcnQnIH0pO1xyXG4gICAgc3VwZXIubm90aWZzKCk7XHJcbiAgfVxyXG4gIHRvZ2dsZShldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHRoaXMuY29sbGFwc2UoZXZ0KTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gIH1cclxuICBjb2xsYXBzZShldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlUGFuZWwoKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpLCAyMDApO1xyXG4gIH1cclxuICBkaXNwbGF5V2l0aCA9IF8gPT4gbnVsbDtcclxuICBvbkF0dGFjaGVkKGl0ZW06IExpc3RpbmdJdGVtLCBjb21wUmVmOiBDb21wb25lbnRSZWY8TGlzdGluZ0NvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgaXRlbS5pbnN0YW5jZSA9IGNvbXBSZWYuaW5zdGFuY2U7XHJcbiAgICBjb21wUmVmLmluc3RhbmNlLm9uQmluZChpdGVtLm1vZGVsKTtcclxuICB9XHJcbiAgZ290byhldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdCBpdGVtID0gZXZ0Lm9wdGlvbi52YWx1ZSBhcyBMaXN0aW5nSXRlbTtcclxuICAgIGl0ZW0uaW5zdGFuY2Uub25QaWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gbWVudSAtLT5cbjxkaXYgW2NsYXNzLm5hdi1jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgW2NsYXNzLm5hdi1vcGVuXT1cInN1Ym1lbnVcIlxuICAgICBbY2xhc3MuZGlhbG9nXT1cImRpYWxvZ1wiXG4gICAgIGNsYXNzPVwibmF2LW1lbnUgcm93XCI+XG4gIDwhLS1bY2xhc3MubG9hZGluZ109XCJsb2FkaW5nXCItLT5cbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGZvcm1zLmxlbmd0aCkge1xuICAgICAgPGRpdiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICduZXcnXCIgY2xhc3M9XCJuZXctY29udGFpbmVyXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInQ29tcG9zZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbm5ldygpXCIgW2Rpc2FibGVkXT1cImNyZWF0aW5nXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb21wb3NlJ3wgdHJhbnNsYXRlXCIgY29sb3I9XCJwcmltYXJ5XCIgZGF0YS1oZWxwPVwiY29tcG9zZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCI+e3snQ29tcG9zZSd8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPG1hdC1uYXYtbGlzdD5cbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInRGFzaGJvYXJkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXYoJ2Rhc2hib2FyZCcpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnZGFzaGJvYXJkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVscD1cImRhc2hib2FyZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidEYXNoYm9hcmQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+YXBwczwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIiBtYXRMaXN0SXRlbVRpdGxlPnt7J0Rhc2hib2FyZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwibWFpbHMoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidNYWlsYm94J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdtYWlsYm94J1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01haWxib3gnIHwgdHJhbnNsYXRlXCIgZGF0YS1oZWxwPVwiZm9sZGVyc1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24gW21hdEJhZGdlXT1cInByb2ZpbGUuaW5ib3hDb3VudFwiIFttYXRCYWRnZUhpZGRlbl09XCJwcm9maWxlLmluYm94Q291bnQgPCAxXCIgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIj5pbmJveDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIiBtYXRMaXN0SXRlbVRpdGxlPnt7J01haWxib3gnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgQGlmIChzY2hlZHVsZXJFbmFibGVkKSB7XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NjaGVkdWxlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdzY2hlZHVsZScpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnc2NoZWR1bGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1NjaGVkdWxlcid8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5kYXRlX3JhbmdlPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiIG1hdExpc3RJdGVtVGl0bGU+e3sgJ1NjaGVkdWxlcicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY2hhdEVuYWJsZWQpIHtcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gZGF0YS1oZWxwPVwiY2hhdFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdignY29udGFjdHMnKVwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ2NvbnRhY3RzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidDaGF0J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIFttYXRCYWRnZV09XCJwcm9maWxlLmNvbnZlcnNhdGlvbnNDb3VudFwiIFttYXRCYWRnZUhpZGRlbl09XCIhcHJvZmlsZS5jb252ZXJzYXRpb25zQ291bnRcIiBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiPmNoYXQ8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCIgbWF0TGlzdEl0ZW1UaXRsZT57eyAnQ2hhdCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICB9XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICBAaWYgKGVuYWJsZUFuYWx5c2lzICYmIHByb2ZpbGUuY3ViZXMubGVuZ3RoKSB7XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJvcGVuc3VibWVudSgnY3ViZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnY3ViZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInQ3ViZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1oZWxwPVwiY3ViZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0N1YmUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj5lcXVhbGl6ZXI8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCIgbWF0TGlzdEl0ZW1UaXRsZT57eydDdWJlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChwcm9maWxlLnJlcG9ydHMubGVuZ3RoKSB7XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJvcGVuc3VibWVudSgncmVwb3J0cycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAncmVwb3J0cydcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInUmVwb3J0cyd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCIgZGF0YS1oZWxwPVwicmVwb3J0c1wiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlcG9ydHMnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj5saXN0X2FsdDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIiBtYXRMaXN0SXRlbVRpdGxlPnt7J1JlcG9ydHMnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN5c0FkbWluKSB7XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2FkbWluJylcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdhZG1pbidcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInU3lzdGVtJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTeXN0ZW0nIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj5kZXZpY2VfaHViPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiIG1hdExpc3RJdGVtVGl0bGU+e3snV29ya2Zsb3cnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtbmF2LWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgIDwhLS08bG90dGllIG5hbWU9XCJsZjMwX2VkaXRvcl9xcjd6Z21jc1wiICpuZ0lmPVwibG9hZGluZ1wiPjwvbG90dGllPi0tPlxuICAgIDwhLS1AYW5pbWF0ZS0tPlxuICAgIDxkaXYgY2xhc3M9XCJzaWduLWluXCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkYXRhLWhlbHA9XCJzaWduLWluXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2V0dGluZ3MnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9wdGlvbnMoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPnNldHRpbmdzb248L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQb3dlcicgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwic2lnbm91dCgkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0V4aXQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5sb2dvdXQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIC0tPlxuICBAaWYgKHN1Ym1lbnUpIHtcbiAgPGRpdiBjbGFzcz1cInN1Yi1tZW51XCIgKG1vdXNlbGVhdmUpPVwiY29sbGFwc2VzdWJtZW51KClcIiBbQHN1Ym1lbnVdPVwic3VibWVudU1vZGVcIiAoQHN1Ym1lbnUuZG9uZSk9XCJyZXNpemUoKVwiPlxuICAgIEBpZiAoc3VibWVudSAhPT0gJ25ldycpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uXCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlUGlubmVkKClcIiBbYml6ZG9jVG9vbHRpcF09XCIocGlubmVkPydDb2xsYXBzZSc6J0V4cGFuZCcpfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj57e3Bpbm5lZCA/ICdwdXNoX3BpbicgOiAnbWVudSd9fTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIEBzd2l0Y2ggKHN1Ym1lbnUpIHtcbiAgICBAY2FzZSAoJ25ldycpIHtcbiAgICA8Yml6ZG9jLW5ldy1tZW51IChjaGFuZ2UpPVwiY2xvc2VzdWJtZW51KClcIj48L2JpemRvYy1uZXctbWVudT5cbiAgICB9XG4gICAgQGNhc2UgKCdtYWlsYm94Jykge1xuICAgIDxiaXpkb2MtZm9sZGVycy1tZW51IFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLWZvbGRlcnMtbWVudT5cbiAgICB9XG4gICAgQGNhc2UgKCdhZG1pbicpIHtcbiAgICA8Yml6ZG9jLWFkbWluLW1lbnUgW2NvbGxhcHNlZF09XCJzdWJtZW51TW9kZSA9PT0gJ3NocmluaydcIj48L2JpemRvYy1hZG1pbi1tZW51PlxuICAgIH1cbiAgICBAY2FzZSAoJ3JlcG9ydHMnKSB7XG4gICAgPGJpemRvYy1yZXBvcnRzLW1lbnUgW2NvbGxhcHNlZF09XCJzdWJtZW51TW9kZSA9PT0gJ3NocmluaydcIiAoY2hhbmdlKT1cImNvbGxhcHNlc3VibWVudSgpXCI+PC9iaXpkb2MtcmVwb3J0cy1tZW51PlxuICAgIH1cbiAgICBAY2FzZSAoJ2N1YmUnKSB7XG4gICAgPGJpemRvYy1jdWJlLW1lbnUgW2NvbGxhcHNlZF09XCJzdWJtZW51TW9kZSA9PT0gJ3NocmluaydcIiAoY2hhbmdlKT1cImNvbGxhcHNlc3VibWVudSgpXCI+PC9iaXpkb2MtY3ViZS1tZW51PlxuICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuICB9XG4gIEBpZiAoZGlhbG9nKSB7XG4gIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiPjwvZGl2PlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtYWluXCI+XG4gIDwhLS0gdGl0bGUgLS0+XG4gIDxkaXYgY2xhc3M9XCJyb3cgaGVhZGVyXCIgW0B0aXRsZV09XCJtYWluLnRpdGxlQW5pbWF0aW9uXCI+XG4gICAgPGgxPlxuICAgICAgQGlmIChtYWluLnN3YXApIHtcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJtYWluLmJhY2soKVwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+YXJyb3dfY2lyY2xlX2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGZvciAocCBvZiBtYWluLnBhbmVzOyB0cmFjayBwOyBsZXQgZmlyc3QgPSAkZmlyc3QpIHtcbiAgICAgIEBpZiAoIWZpcnN0KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImJyZWFkY3J1bWJzXCI+XFw8L3NwYW4+XG4gICAgICB9XG4gICAgICB7e3AudGl0bGV9fVxuICAgICAgfVxuICAgICAgQGlmIChtYWluLnBhbmVzWzBdPy5ndWlkZSkge1xuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImd1aWRlKG1haW4ucGFuZXNbMF0uZ3VpZGUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5oZWxwPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2gxPlxuICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPlxuICAgIDwvc3Bhbj5cbiAgICA8IS0tc2VhcmNoLS0+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW0BzZWFyY2hdPVwic2VhcmNoaW5nXCJcbiAgICAgICAgICAgKEBzZWFyY2guZG9uZSk9XCJzZWFyY2hpbmcgJiYgZm9jdXMoKVwiXG4gICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY29sbGFwc2UoJGV2ZW50KVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFwiXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIGNsYXNzPVwic2VhcmNoLWJveFwiPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJnb3RvKCRldmVudClcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhcIj5cbiAgICAgIEBmb3IgKG8gb2YgcmVzdWx0cyB8IGFzeW5jOyB0cmFjayBvKSB7XG4gICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAoYXR0YWNoZWQpPVwib25BdHRhY2hlZChvLCAkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvLnBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInU2VhcmNoJ3x0cmFuc2xhdGVcIiBjbGFzcz1cInRvb2xcIj48bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICA8IS0tdG9vbC0tPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3RpZnMoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidOb3RpZmljYXRpb25zJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJzdGFydFwiIGNsYXNzPVwidG9vbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidOb3RpZmljYXRpb25zJ3wgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGRhdGEtaGVscD1cIm5vdGlmaWNhdGlvbnNcIj5cbiAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24gW21hdEJhZGdlXT1cInByb2ZpbGUubm90aWZpY2F0aW9uc0NvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cIiFwcm9maWxlLm5vdGlmaWNhdGlvbnNDb3VudFwiXG4gICAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwicHJvZmlsZS5ub3RpZmljYXRpb25zQ291bnRcIj5cbiAgICAgICAge3twcm9maWxlLm9wdGlvbnMubm90aWZpY2F0aW9ucy5hY3RpdmUgPyAnbm90aWZpY2F0aW9ucyc6J25vdGlmaWNhdGlvbnNfb2ZmJ319XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8Yml6ZG9jLXBhbmVzLW91dGxldCAoZGlhbG9nQ2hhbmdlKT1cImRpYWxvZyA9ICRldmVudFwiICNtYWluPjwvYml6ZG9jLXBhbmVzLW91dGxldD5cbjwvZGl2PlxuIl19
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9ob21lL2hvbWUuZGVza3RvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxPQUFPLEVBQWdDLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMkJB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QUM7OzBCQTJFakUsTUFBTTsyQkFBQyxhQUFhO3lDQXJCa0IsTUFBTTtzQkFBOUMsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNaLElBQUk7c0JBQTlCLFNBQVM7dUJBQUMsY0FBYztnQkFDTCxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ29DLE9BQU87c0JBQTVELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQThIcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEluamVjdCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgRWxlbWVudFJlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIE9wZW5Qb2xpY3kgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBwYW5lc1RpdGxlQW5pbWF0aW9uLCBzZWFyY2hBbmltYXRpb24sIHN1Ym1lbnVBbmltYXRpb24gfSBmcm9tICcuLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9maWxlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEhvbWVCYXNlIH0gZnJvbSAnLi9ob21lLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblBhbmVCYXNlLCBOYXZpZ2F0aW9uU3RhcnQgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1aWNrT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1aWNrU2lnbkNvbXBvbmVudCB9IGZyb20gJy4vc2lnbi9zaWduLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNsb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9zbG90cy9zbG90cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpc3RpbmdJdGVtLCBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IExpc3RpbmdDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gvZGVjbGFyYXRpb25zJztcclxuaW1wb3J0IHsgUXVpY2tOb3RpZmljYXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50JztcclxuXHJcbi8qKiBkZXNrdG9wIGhvbWUgY29tcCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1ob21lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ob21lLmRlc2t0b3AuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7IGNsYXNzOiAnbWF0LWFwcC1iYWNrZ3JvdW5kJyB9LFxyXG4gIGFuaW1hdGlvbnM6IFtzdWJtZW51QW5pbWF0aW9uLCBwYW5lc1RpdGxlQW5pbWF0aW9uLCBzZWFyY2hBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lQ29tcG9uZW50IGV4dGVuZHMgSG9tZUJhc2Uge1xyXG4gIGRpYWxvZzogYm9vbGVhbjtcclxuICByZWFkb25seSBzeXNBZG1pbiA9IHRoaXMuX3Nlc3Npb24uaXNTeXN0ZW07XHJcbiAgcmVhZG9ubHkgZm9ybXMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmlsdGVyKGYgPT4gZi5jcmVhdGFibGUpO1xyXG4gIGNyZWF0aW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX3N1Ym1lbnVNb2RlOiAnZnVsbCcgfCAnc2hyaW5rJyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51TW9kZScpIGFzIGFueSB8fCAnZnVsbCc7XHJcbiAgcHVibGljIGdldCBzdWJtZW51TW9kZSgpOiAnZnVsbCcgfCAnc2hyaW5rJyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudU1vZGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc3VibWVudU1vZGUodmFsdWU6ICdmdWxsJyB8ICdzaHJpbmsnKSB7XHJcbiAgICB0aGlzLl9zdWJtZW51TW9kZSA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnVNb2RlJywgdmFsdWUpXHJcbiAgfVxyXG4gIHByaXZhdGUgX3N1Ym1lbnU6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51Jyk7XHJcbiAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xyXG4gIGdldCBhY3RpdmVNZW51KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1lbnUgfHwgdGhpcy5fcGF0aDtcclxuICB9XHJcbiAgcHVibGljIGdldCBzdWJtZW51KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzdWJtZW51KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3N1Ym1lbnUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnUnLCB2YWx1ZSk7XHJcbiAgICBlbHNlIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdWJtZW51Jyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzKG5hbWUsIHZhbD86IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZClcclxuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpID09PSAnMSc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIHZhbCA/ICcxJyA6ICcwJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzT3JEZWZhdWx0KG5hbWUsICRkZWZhdWx0KSB7XHJcbiAgICBjb25zdCB2YWwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcclxuICAgIHJldHVybiB2YWwgPyB2YWwgPT09ICcxJyA6ICRkZWZhdWx0O1xyXG4gIH1cclxuICBwcml2YXRlIF9jb2xsYXBzZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgnY29sbGFwc2VkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBjb2xsYXBzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGNvbGxhcHNlZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fY29sbGFwc2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygnY29sbGFwc2VkJywgdGhpcy5jb2xsYXBzZWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9waW5uZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgncGlubmVkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBwaW5uZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlubmVkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHBpbm5lZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGlubmVkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygncGlubmVkJywgdmFsdWUpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyOiBNYXRTaWRlbmF2O1xyXG4gIEBWaWV3Q2hpbGQoU2xvdHNDb21wb25lbnQpIG1haW46IFNsb3RzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgdHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBwcm9maWxlOiBQcm9maWxlO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlc3VsdHM6IE9ic2VydmFibGU8TGlzdGluZ0l0ZW1bXT47XHJcbiAgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfY29sbGFwc2VUb2dnbGUgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHN1cGVyKHNlc3Npb24sIG1lc3NhZ2luZywgdHJhbnNsYXRlLCBzbmFja0JhciwgaW5qZWN0b3IsIGNvbmZpZyk7XHJcbiAgICB0aGlzLnByb2ZpbGUgPSBzZXNzaW9uLnByb2ZpbGU7XHJcbiAgICBfcm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgJiYgZS5wYW5lLnBhdGggJiYgZS5wYW5lLm1vZGUgPT09ICdwYW5lJykpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZSkgPT5cclxuICAgICAgICB0aGlzLl9wYXRoID0gZS5wYW5lLnBhdGguc3BsaXQoJy8nKVswXVxyXG4gICAgICApO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzdWx0cyA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgbWFwKHYgPT4gdGhpcy5fc2VydmljZS5zZWFyY2godikpKTtcclxuICB9XHJcbiAgLyoqIG9wdGlvbnMgKi9cclxuICBvcHRpb25zKGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tPcHRpb25zQ29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgc2lnbm91dChldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKFF1aWNrU2lnbkNvbXBvbmVudCwgZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCwgeyBwb3NpdGlvbjogJ2VuZCcgfSk7XHJcbiAgfVxyXG4gIG5hdihwYXRoKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW3BhdGhdKTtcclxuICAgIHRoaXMuc3VibWVudSA9IG51bGw7XHJcbiAgICB0aGlzLmNvbGxhcHNlc3VibWVudSgpO1xyXG4gIH1cclxuICBvbk5ld01lc3NhZ2UobW9kZWw6IFJlY2lwaWVudE1vZGVsKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBtb2RlbC5pZC5lbmNvZGVJZCgpXSxcclxuICAgICAge1xyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW06IG1vZGVsIH0sXHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBjbG9zZXN1Ym1lbnUoKSB7XHJcbiAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gIH1cclxuICBvcGVubmV3KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybXMubGVuZ3RoID4gMSkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ID09PSAnbmV3JylcclxuICAgICAgICB0aGlzLmNsb3Nlc3VibWVudSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5vcGVuc3VibWVudSgnbmV3Jyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHRoaXMuX2NyZWF0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGUoKSB7XHJcbiAgICB0aGlzLmNyZWF0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX21haWxib3guY3JlYXRlKHRoaXMuZm9ybXNbMF0ubmFtZSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCByLmlkLmVuY29kZUlkKCldLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyLFxyXG4gICAgICAgICAgICAgIHN0YXRlOiB7IGl0ZW06IHIgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnJvcjogKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnIoZSk7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXJyKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcikge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoICgocmVzcG9uc2UgYXMgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2Ugc3dpdGNoICgocmVzcG9uc2UgYXMgSHR0cEVycm9yUmVzcG9uc2UpLnN0YXR1cykge1xyXG4gICAgICBjYXNlIDQwMTpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcignVW5hdXRob3JpemVkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgNDA2OlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKChyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSkuZXJyb3IpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDQyNjogLy8gbGljZW5zZVxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKCdMaWNlbnNlRXJyJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5zdWJtZW51KG1lbnU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc3VibWVudSA9PT0gbWVudSlcclxuICAgICAgdGhpcy5zdWJtZW51TW9kZSA9IHRoaXMuc3VibWVudU1vZGUgPT09ICdmdWxsJyA/ICdzaHJpbmsnIDogJ2Z1bGwnO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWVudSA9IG1lbnU7XHJcbiAgICAgIHRoaXMuc3VibWVudU1vZGUgPSAnZnVsbCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbGxhcHNlc3VibWVudSgpIHtcclxuICAgIGlmICghdGhpcy5waW5uZWQgJiYgdGhpcy5zdWJtZW51ICE9PSAnbmV3JykgdGhpcy5zdWJtZW51TW9kZSA9ICdzaHJpbmsnO1xyXG4gIH1cclxuICB0b2dnbGVQaW5uZWQoKSB7XHJcbiAgICB0aGlzLnBpbm5lZCA9ICF0aGlzLnBpbm5lZDtcclxuICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnBpbm5lZCA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gIH1cclxuICBvdmVycmlkZSBtYWlscygpIHtcclxuICAgIHN1cGVyLm1haWxzKCk7XHJcbiAgICB0aGlzLm9wZW5zdWJtZW51KCdtYWlsYm94Jyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEFsdCtuLCBBbHQrYSwgQ3RybCArIC5cclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XHJcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnbicgfHwgZXZlbnQua2V5ID09PSAnTicpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSA9PT0gJ25ldycpXHJcbiAgICAgICAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybXMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGUoKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1lbnUgPSAnbmV3JztcclxuICAgICAgICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09ICdhJyB8fCBldmVudC5rZXkgPT09ICdBJykge1xyXG4gICAgICAgIGlmICh0aGlzLnN1Ym1lbnUgPT09ICdjdWJlJylcclxuICAgICAgICAgIHRoaXMuc3VibWVudSA9IG51bGw7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5wcm9maWxlLmN1YmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucHJvZmlsZS5jdWJlcy5sZW5ndGggPT09IDEgJiYgdGhpcy5wcm9maWxlLmN1YmVzWzBdLnZpZXdzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdWJlID0gdGhpcy5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjdWJlJywgY3ViZS5uYW1lLCAndicsIGN1YmUudmlld3NbMF0ubmFtZV0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtZW51ID0gJ2N1YmUnO1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1lbnVNb2RlID0gJ2Z1bGwnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICgoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpICYmIGxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJy9tYWlsYm94L2YnKSA8IDApIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoaW5nKVxyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ2gnIHx8IGV2ZW50LmtleSA9PT0gJ0gnKSB7XHJcbiAgICAgICAgY29uc3QgeyBoZWxwIH0gPSB0aGlzLm1haW4ucGFuZXNbdGhpcy5tYWluLnNlbGVjdGVkSW5kZXhdO1xyXG4gICAgICAgIHRoaXMuZ3VpZGUoaGVscCA/PyAnaW50cm8nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICcuJykge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ICYmICF0aGlzLl9jb2xsYXBzZVRvZ2dsZSkge1xyXG4gICAgICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJyA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gICAgICAgIHRoaXMuX2NvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgICAgICB0aGlzLl9jb2xsYXBzZVRvZ2dsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGd1aWRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQobmFtZSk7XHJcbiAgfVxyXG4gIG5vdGlmcyhldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLnByb2ZpbGUubm90aWZpY2F0aW9ucy5sZW5ndGggJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5ub3RpZmljYXRpb25zVG91Y2goKTtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tOb3RpZmljYXRpb25zQ29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnc3RhcnQnIH0pO1xyXG4gICAgc3VwZXIubm90aWZzKCk7XHJcbiAgfVxyXG4gIHRvZ2dsZShldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHRoaXMuY29sbGFwc2UoZXZ0KTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gIH1cclxuICBjb2xsYXBzZShldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlUGFuZWwoKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpLCAyMDApO1xyXG4gIH1cclxuICBkaXNwbGF5V2l0aCA9IF8gPT4gbnVsbDtcclxuICBvbkF0dGFjaGVkKGl0ZW06IExpc3RpbmdJdGVtLCBjb21wUmVmOiBDb21wb25lbnRSZWY8TGlzdGluZ0NvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgaXRlbS5pbnN0YW5jZSA9IGNvbXBSZWYuaW5zdGFuY2U7XHJcbiAgICBjb21wUmVmLmluc3RhbmNlLm9uQmluZChpdGVtLm1vZGVsKTtcclxuICB9XHJcbiAgZ290byhldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdCBpdGVtID0gZXZ0Lm9wdGlvbi52YWx1ZSBhcyBMaXN0aW5nSXRlbTtcclxuICAgIGl0ZW0uaW5zdGFuY2Uub25QaWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gbWVudSAtLT5cbjxkaXYgW2NsYXNzLm5hdi1jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgW2NsYXNzLm5hdi1vcGVuXT1cInN1Ym1lbnVcIlxuICAgICBbY2xhc3MuZGlhbG9nXT1cImRpYWxvZ1wiXG4gICAgIGNsYXNzPVwibmF2LW1lbnUgcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICA8ZGl2PlxuICAgICAgQGlmIChmb3Jtcy5sZW5ndGgpIHtcbiAgICAgIDxkaXYgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnbmV3J1wiIGNsYXNzPVwibmV3LWNvbnRhaW5lclwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbXBvc2UnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5uZXcoKVwiIFtkaXNhYmxlZF09XCJjcmVhdGluZ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ29tcG9zZSd8IHRyYW5zbGF0ZVwiIGNvbG9yPVwicHJpbWFyeVwiIGRhdGEtaGVscD1cImNvbXBvc2VcIj5cbiAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J0NvbXBvc2UnfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxtYXQtbmF2LWxpc3Q+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Rhc2hib2FyZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdkYXNoYm9hcmQnKVwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ2Rhc2hib2FyZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlbHA9XCJkYXNoYm9hcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInRGFzaGJvYXJkJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uPmFwcHM8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCIgbWF0TGlzdEl0ZW1UaXRsZT57eydEYXNoYm9hcmQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIm1haWxzKClcIiBbYml6ZG9jVG9vbHRpcF09XCInTWFpbGJveCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnbWFpbGJveCdcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNYWlsYm94JyB8IHRyYW5zbGF0ZVwiIGRhdGEtaGVscD1cImZvbGRlcnNcIj5cbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIFttYXRCYWRnZV09XCJwcm9maWxlLmluYm94Q291bnRcIiBbbWF0QmFkZ2VIaWRkZW5dPVwicHJvZmlsZS5pbmJveENvdW50IDwgMVwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCI+aW5ib3g8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCIgbWF0TGlzdEl0ZW1UaXRsZT57eydNYWlsYm94JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIEBpZiAoc2NoZWR1bGVyRW5hYmxlZCkge1xuICAgICAgICA8bWF0LWxpc3QtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidTY2hlZHVsZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdignc2NoZWR1bGUnKVwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ3NjaGVkdWxlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidTY2hlZHVsZXInfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+ZGF0ZV9yYW5nZTwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIiBtYXRMaXN0SXRlbVRpdGxlPnt7ICdTY2hlZHVsZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNoYXRFbmFibGVkKSB7XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIGRhdGEtaGVscD1cImNoYXRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDaGF0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXYoJ2NvbnRhY3RzJylcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdjb250YWN0cydcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbiBbbWF0QmFkZ2VdPVwicHJvZmlsZS5jb252ZXJzYXRpb25zQ291bnRcIiBbbWF0QmFkZ2VIaWRkZW5dPVwiIXByb2ZpbGUuY29udmVyc2F0aW9uc0NvdW50XCIgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIj5jaGF0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiIG1hdExpc3RJdGVtVGl0bGU+e3sgJ0NoYXQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgQGlmIChlbmFibGVBbmFseXNpcyAmJiBwcm9maWxlLmN1YmVzLmxlbmd0aCkge1xuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2N1YmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ2N1YmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ0N1YmUnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVscD1cImN1YmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDdWJlJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+ZXF1YWxpemVyPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiIG1hdExpc3RJdGVtVGl0bGU+e3snQ3ViZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocHJvZmlsZS5yZXBvcnRzLmxlbmd0aCkge1xuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ3JlcG9ydHMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ3JlcG9ydHMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlcG9ydHMnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiIGRhdGEtaGVscD1cInJlcG9ydHNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXBvcnRzJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+bGlzdF9hbHQ8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCIgbWF0TGlzdEl0ZW1UaXRsZT57eydSZXBvcnRzJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzeXNBZG1pbikge1xuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIm9wZW5zdWJtZW51KCdhZG1pbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnYWRtaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1N5c3RlbSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInU3lzdGVtJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+ZGV2aWNlX2h1YjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIiBtYXRMaXN0SXRlbVRpdGxlPnt7J1dvcmtmbG93JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LW5hdi1saXN0PlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICA8IS0tPGxvdHRpZSBuYW1lPVwibGYzMF9lZGl0b3JfcXI3emdtY3NcIiAqbmdJZj1cImxvYWRpbmdcIj48L2xvdHRpZT4tLT5cbiAgICA8ZGl2IGNsYXNzPVwic2lnbi1pblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGF0YS1oZWxwPVwic2lnbi1pblwiIFtiaXpkb2NUb29sdGlwXT1cIidTZXR0aW5ncycgfCB0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJvcHRpb25zKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uIG1hdEFuaW1hdGU9XCJyb3RhdGVcIj5zZXR0aW5nc29uPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCInUG93ZXInIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cInNpZ25vdXQoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidFeGl0J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+bG9nb3V0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSAtLT5cbiAgQGlmIChzdWJtZW51KSB7XG4gIDxkaXYgY2xhc3M9XCJzdWItbWVudVwiIChtb3VzZWxlYXZlKT1cImNvbGxhcHNlc3VibWVudSgpXCIgW0BzdWJtZW51XT1cInN1Ym1lbnVNb2RlXCIgKEBzdWJtZW51LmRvbmUpPVwicmVzaXplKClcIj5cbiAgICBAaWYgKHN1Ym1lbnUgIT09ICduZXcnKSB7XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVBpbm5lZCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiKHBpbm5lZD8nQ29sbGFwc2UnOidFeHBhbmQnKXx0cmFuc2xhdGVcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+e3twaW5uZWQgPyAncHVzaF9waW4nIDogJ21lbnUnfX08L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICBAc3dpdGNoIChzdWJtZW51KSB7XG4gICAgQGNhc2UgKCduZXcnKSB7XG4gICAgPGJpemRvYy1uZXctbWVudSAoY2hhbmdlKT1cImNsb3Nlc3VibWVudSgpXCI+PC9iaXpkb2MtbmV3LW1lbnU+XG4gICAgfVxuICAgIEBjYXNlICgnbWFpbGJveCcpIHtcbiAgICA8Yml6ZG9jLWZvbGRlcnMtbWVudSBbY29sbGFwc2VkXT1cInN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJ1wiIChjaGFuZ2UpPVwiY29sbGFwc2VzdWJtZW51KClcIj48L2JpemRvYy1mb2xkZXJzLW1lbnU+XG4gICAgfVxuICAgIEBjYXNlICgnYWRtaW4nKSB7XG4gICAgPGJpemRvYy1hZG1pbi1tZW51IFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCI+PC9iaXpkb2MtYWRtaW4tbWVudT5cbiAgICB9XG4gICAgQGNhc2UgKCdyZXBvcnRzJykge1xuICAgIDxiaXpkb2MtcmVwb3J0cy1tZW51IFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLXJlcG9ydHMtbWVudT5cbiAgICB9XG4gICAgQGNhc2UgKCdjdWJlJykge1xuICAgIDxiaXpkb2MtY3ViZS1tZW51IFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLWN1YmUtbWVudT5cbiAgICB9XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuICBAaWYgKGRpYWxvZykge1xuICA8ZGl2IGNsYXNzPVwiYmFja2Ryb3BcIj48L2Rpdj5cbiAgfVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWFpblwiPlxuICA8IS0tIHRpdGxlIC0tPlxuICA8ZGl2IGNsYXNzPVwicm93IGhlYWRlclwiIFtAdGl0bGVdPVwibWFpbi50aXRsZVZhcmlhbnRcIj5cbiAgICA8aDE+XG4gICAgICBAaWYgKG1haW4uc3dhcCkge1xuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1haW4uYmFjaygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0JhY2snfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5hcnJvd19jaXJjbGVfbGVmdDwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICB9XG4gICAgICBAZm9yIChwIG9mIG1haW4ucGFuZXM7IHRyYWNrIHA7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgQGlmICghZmlyc3QpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYnJlYWRjcnVtYnNcIj5cXDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIHt7cC50aXRsZX19XG4gICAgICB9XG4gICAgICBAaWYgKG1haW4ucGFuZXNbMF0/Lmd1aWRlKSB7XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZ3VpZGUobWFpbi5wYW5lc1swXS5ndWlkZSlcIiBbYml6ZG9jVG9vbHRpcF09XCInSGVscCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHA8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvaDE+XG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+XG4gICAgPC9zcGFuPlxuICAgIDwhLS1zZWFyY2gtLT5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBbQHNlYXJjaF09XCJzZWFyY2hpbmdcIlxuICAgICAgICAgICAoQHNlYXJjaC5kb25lKT1cInNlYXJjaGluZyAmJiBmb2N1cygpXCJcbiAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjb2xsYXBzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VhcmNoJ3x0cmFuc2xhdGVcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgY2xhc3M9XCJzZWFyY2gtYm94XCI+XG4gICAgPG1hdC1hdXRvY29tcGxldGUgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImdvdG8oJGV2ZW50KVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiPlxuICAgICAgQGZvciAobyBvZiByZXN1bHRzIHwgYXN5bmM7IHRyYWNrIG8pIHtcbiAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKGF0dGFjaGVkKT1cIm9uQXR0YWNoZWQobywgJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiby5wb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+PC9idXR0b24+XG4gICAgPCEtLW5vdGlmaWNhdGlvbnMtLT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm90aWZzKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInTm90aWZpY2F0aW9ucyd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwic3RhcnRcIiBjbGFzcz1cInRvb2xcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTm90aWZpY2F0aW9ucyd8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBkYXRhLWhlbHA9XCJub3RpZmljYXRpb25zXCI+XG4gICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIFttYXRCYWRnZV09XCJwcm9maWxlLm5vdGlmaWNhdGlvbnNDb3VudFwiIFttYXRCYWRnZUhpZGRlbl09XCIhcHJvZmlsZS5ub3RpZmljYXRpb25zQ291bnRcIlxuICAgICAgICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZmlsbGVkXT1cInByb2ZpbGUubm90aWZpY2F0aW9uc0NvdW50XCI+XG4gICAgICAgIHt7cHJvZmlsZS5vcHRpb25zLm5vdGlmaWNhdGlvbnMuYWN0aXZlID8gJ25vdGlmaWNhdGlvbnMnOidub3RpZmljYXRpb25zX29mZid9fVxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDwhLS1wYW5lcyAmIHRhYnMtLT5cbiAgPGJpemRvYy1wYW5lcy1vdXRsZXQgKGRpYWxvZ0NoYW5nZSk9XCJkaWFsb2cgPSAkZXZlbnRcIiAjbWFpbj48L2JpemRvYy1wYW5lcy1vdXRsZXQ+XG48L2Rpdj5cbiJdfQ==
|
@@ -83,15 +83,15 @@ export class QuickOptionsComponent {
|
|
83
83
|
this._destroy.complete();
|
84
84
|
}
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: QuickOptionsComponent, deps: [{ token: i1.PromptService }, { token: i2.FormBuilder }, { token: i3.GuideService }, { token: i4.PopupRef, optional: true }, { token: i5.HubService }, { token: i6.SessionService }, { token: i7.MatDialog }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: QuickOptionsComponent, selector: "bizdoc-quick-options", ngImport: i0, template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" bizdocTooltip=\"Theme\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"], dependencies: [{ kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.OptionsComponent, selector: "bizdoc-options", inputs: ["section"] }, { kind: "directive", type: i10.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i11.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: i11.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i8.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] }); }
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: QuickOptionsComponent, selector: "bizdoc-quick-options", ngImport: i0, template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"], dependencies: [{ kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.OptionsComponent, selector: "bizdoc-options", inputs: ["section"] }, { kind: "directive", type: i10.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i11.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: i11.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i8.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] }); }
|
87
87
|
}
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: QuickOptionsComponent, decorators: [{
|
89
89
|
type: Component,
|
90
|
-
args: [{ selector: 'bizdoc-quick-options', template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" bizdocTooltip=\"Theme\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"] }]
|
90
|
+
args: [{ selector: 'bizdoc-quick-options', template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"] }]
|
91
91
|
}], ctorParameters: () => [{ type: i1.PromptService }, { type: i2.FormBuilder }, { type: i3.GuideService }, { type: i4.PopupRef, decorators: [{
|
92
92
|
type: Optional
|
93
93
|
}] }, { type: i5.HubService }, { type: i6.SessionService }, { type: i7.MatDialog }, { type: undefined, decorators: [{
|
94
94
|
type: Inject,
|
95
95
|
args: [BIZDOC_CONFIG]
|
96
96
|
}] }] });
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2hvbWUvb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9vcHRpb25zL29wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQXVCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHOUUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUF3QixDQUFDO0FBT3JHLHVCQUF1QjtBQUN2QixNQUFNLE9BQU8scUJBQXFCO0lBYWhDLG1CQUFtQjtJQUNuQixZQUFvQixHQUFrQixFQUM1QixHQUFnQixFQUNoQixNQUFvQixFQUNSLFNBQTBDLEVBQ3RELElBQWdCLEVBQ2hCLFFBQXdCLEVBQ3hCLE9BQWtCLEVBQ0gsTUFBb0I7UUFQekIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUFpQztRQUN0RCxTQUFJ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QUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbEVVLHFCQUFxQiwrTkFxQnRCLGFBQWE7a0dBckJaLHFCQUFxQiw0REN2QmxDLDhtRkFrRkE7OzJGRDNEYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usc0JBQXNCOzswQkFzQjdCLFFBQVE7OzBCQUlSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuaW1wb3J0IHsgQXZhaWxhYmlsaXR5U3RhdGUsIEd1aWRlLCBQcm9maWxlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFib3V0RGlhbG9nIH0gZnJvbSAnLi4vYWJvdXQvYWJvdXQuZGlhbG9nJztcclxuaW1wb3J0IHsgUG9wdXBSZWYgfSBmcm9tIFwiLi4vLi4vY29yZS9wb3B1cC9wb3B1cC1yZWZcIjtcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBUaGVtZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgTW9kZXMgPSBbJ09mZmxpbmUnLCAnT25saW5lJywgJ091dE9mT2ZmaWNlJywgJ1ZhY2F0aW9uJywgJ1dvcmtpbmdIb21lJ10gYXMgQXZhaWxhYmlsaXR5U3RhdGVbXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXF1aWNrLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbi8qKiBvcHRpb25zIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBRdWlja09wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgb25saW5lOiBib29sZWFuO1xyXG4gIHRoZW1lOiBzdHJpbmc7XHJcbiAgYXZhaWxhYmxlOiBBdmFpbGFiaWxpdHlTdGF0ZTtcclxuICBndWlkZXNDb3VudDogbnVtYmVyO1xyXG4gIHNhdmVpbmcgPSBmYWxzZTtcclxuICByZWFkb25seSBsYW5ndWFnZXMgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlcztcclxuICByZWFkb25seSB0aGVtZXMgPSB0aGlzLl9zZXNzaW9uLlRoZW1lcztcclxuICByZWFkb25seSBndWlkZXM6IEd1aWRlW107XHJcbiAgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgcHJvZmlsZTogUHJvZmlsZTtcclxuICByZWFkb25seSBtb2RlcyA9IE1vZGVzO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBvcHRpb25zIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wb3B1cFJlZjogUG9wdXBSZWY8UXVpY2tPcHRpb25zQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLmd1aWRlcyA9IHRoaXMuX2d1aWRlLmd1aWRlcy5maWx0ZXIoZyA9PiBnLm1vZGUgIT09ICdQcml2YXRlJyk7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2VzO1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlO1xyXG4gICAgdGhpcy5hdmFpbGFibGUgPSB0aGlzLl9zZXNzaW9uLnN0YXRlO1xyXG4gICAgdGhpcy50aGVtZSA9IHRoaXMuX3Nlc3Npb24udGhlbWUubmFtZTtcclxuICAgIHRoaXMucHJvZmlsZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9odWIuc3RhdGUkLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2h1Yi5zdGF0ZSksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHMgPT5cclxuICAgICAgdGhpcy5vbmxpbmUgPSBzID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkXHJcbiAgICApO1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uLmlzSW1wZXJzb25hdGluZykge1xyXG4gICAgICB0aGlzLmd1aWRlc0NvdW50ID0gdGhpcy5ndWlkZXMuZmlsdGVyKHcgPT4gdy5tb2RlID09PSAnRWFnZXInKS5sZW5ndGggfHwgbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV2aXZlKCkge1xyXG4gICAgdGhpcy5faHViLnN0YXJ0KCk7XHJcbiAgfVxyXG4gIGFib3V0KCkge1xyXG4gICAgdGhpcy5fY2xvc2UoKTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFib3V0RGlhbG9nKTtcclxuICB9XHJcbiAgZ3VpZGUoZ3VpZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY2xvc2UoKTtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KGd1aWRlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY2xvc2UoKSB7XHJcbiAgICB0aGlzLl9wb3B1cFJlZj8uY2xvc2UoKTtcclxuICB9XHJcbiAgc2V0QXZhaWxhYmxlKHZhbDogQXZhaWxhYmlsaXR5U3RhdGUpIHtcclxuICAgIHRoaXMuX2Nsb3NlKCk7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnN0YXRlID0gdmFsO1xyXG4gIH1cclxuICBjaGFuZ2VUaGVtZShuYW1lOiBUaGVtZSkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZSA9IG5hbWU7XHJcbiAgfVxyXG4gIGNoYW5nZUxhbmd1YWdlKGNvZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSA9IGNvZGU7XHJcbiAgICB0aGlzLl9wcy5tYXNrKCdSZWZyZXNoaW5nJyk7XHJcbiAgICBsb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtaGVhZGxpbmUtNlwiPlxuICAgICAgQGlmIChwcm9maWxlLmJ5TmFtZSkge1xuICAgICAge3twcm9maWxlLmJ5TmFtZX19IFxcXG4gICAgICB9XG4gICAgICB7e3Byb2ZpbGUubmFtZX19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPG1hdC1kaXZpZGVyIC8+XG4gIDxiaXpkb2Mtb3B0aW9ucyBzZWN0aW9uPVwibm90aWZpY2F0aW9uc1wiPjwvYml6ZG9jLW9wdGlvbnM+XG4gIDxtYXQtZGl2aWRlciAvPlxuICA8IS0ta2V5cy0tPlxuICA8ZGl2ICpuZ1RlbXBsYXRlT3V0bGV0PVwia2V5c1RtcGxcIj48L2Rpdj5cbiAgPCEtLXRoZW1lcy0tPlxuICBAaWYgKHRoZW1lcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyXCI+XG4gICAgQGZvciAodCBvZiB0aGVtZXM7IHRyYWNrIHQpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VUaGVtZSh0KVwiIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cInRoZW1lXCIgW3N0eWxlLmJhY2tncm91bmRdPVwidC5jb2xvclwiIFtjbGFzcy5hY3RpdmVdPVwidC5uYW1lID09PSB0aGVtZVwiIFtjbGFzcy5kYXJrXT1cInQuZGFya1wiIGJpemRvY1Rvb2x0aXA9XCJUaGVtZVwiPjwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuPCEtLWd1aWRlLS0+XG48bWF0LW5hdi1saXN0IHJvbGU9XCJsaXN0XCI+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8aDMgbWF0LXN1YmhlYWRlciBbbWF0QmFkZ2VdPVwiZ3VpZGVzQ291bnRcIiBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCIgbWF0QmFkZ2VPdmVybGFwPVwiZmFsc2VcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiPnt7J0hlbHAnfHRyYW5zbGF0ZX19PC9oMz5cbiAgQGZvciAoZyBvZiBndWlkZXM7IHRyYWNrIGcpIHtcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJndWlkZShnLm5hbWUpXCI+e3tnLnRpdGxlfX08L2J1dHRvbj5cbiAgfVxuPC9tYXQtbmF2LWxpc3Q+XG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbjwhLS1mb290ZXItLT5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIHJvbGU9XCJsaXN0aXRlbVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYW5ndWFnZVwiPlxuICAgIHt7Y3VycmVudExhbmd1YWdlIHwgdHJhbnNsYXRlfX1cbiAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICA8IS0tJ0NoYW5nZUxhbmd1YWdlJy0tPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1tZW51ICNsYW5ndWFnZT5cbiAgICBAZm9yIChsIG9mIGxhbmd1YWdlczsgdHJhY2sgbCkge1xuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlTGFuZ3VhZ2UobClcIj57e2wgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtbWVudT5cbiAgQGlmIChvbmxpbmUpIHtcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJhdmFpbGFiaWxpdHlcIj5cbiAgICB7eydTaG93QXMnIHwgdHJhbnNsYXRlIDogKGF2YWlsYWJsZSB8IHRyYW5zbGF0ZSB8IGxvd2VyY2FzZSl9fVxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgfVxuICA8bWF0LW1lbnUgI2F2YWlsYWJpbGl0eT5cbiAgICBAZm9yIChtIG9mIG1vZGVzOyB0cmFjayBtKSB7XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZXRBdmFpbGFibGUobSlcIj57e20gfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtbWVudT5cbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICA8YnV0dG9uIG1hdC1idXR0b24gcm9sZT1cImxpc3RpdGVtXCIgKGNsaWNrKT1cImFib3V0KClcIj57eyAnQWJvdXQnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgQGlmICghb25saW5lKSB7XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZXZpdmUoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDb25uZWN0J3x0cmFuc2xhdGVcIj5cbiAgICA8bWF0LWljb24+d2lmaV9vZmY8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG48IS0tLS0+XG48bmctdGVtcGxhdGUgI2tleXNUbXBsPlxuICA8ZGwgY2xhc3M9XCJrZXlzIG1hdC1ib2R5LTJcIj5cbiAgICA8ZHQ+QWx0K248L2R0PlxuICAgIDxkZD57eydBbHROSGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICAgIDxkdD5DdHJsK3M8L2R0PlxuICAgIDxkZD57eydDdHJsU0hlbHAnfHRyYW5zbGF0ZX19PC9kZD5cbiAgICA8ZHQ+QWx0K3M8L2R0PlxuICAgIDxkZD57eydBbHRTSGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICAgIDxkdD5BbHQrcTwvZHQ+XG4gICAgPGRkPnt7J0FsdFFIZWxwJ3x0cmFuc2xhdGV9fTwvZGQ+XG4gICAgPGR0PkFsdCthPC9kdD5cbiAgICA8ZGQ+e3snQWx0QUhlbHAnfHRyYW5zbGF0ZX19PC9kZD5cbiAgICA8ZHQ+QWx0K2g8L2R0PlxuICAgIDxkZD57eydBbHRISGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICAgIDxkdD5DdHJsKy48L2R0PlxuICAgIDxkZD57eydDdHJsRG90SGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICA8L2RsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2hvbWUvb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9vcHRpb25zL29wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQXVCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHOUUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUF3QixDQUFDO0FBT3JHLHVCQUF1QjtBQUN2QixNQUFNLE9BQU8scUJBQXFCO0lBYWhDLG1CQUFtQjtJQUNuQixZQUFvQixHQUFrQixFQUM1QixHQUFnQixFQUNoQixNQUFvQixFQUNSLFNBQTBDLEVBQ3RELElBQWdCLEVBQ2hCLFFBQXdCLEVBQ3hCLE9BQWtCLEVBQ0gsTUFBb0I7UUFQekIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUFpQztRQUN0RCxTQUFJ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QUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbEVVLHFCQUFxQiwrTkFxQnRCLGFBQWE7a0dBckJaLHFCQUFxQiw0REN2QmxDLDRuRkFrRkE7OzJGRDNEYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usc0JBQXNCOzswQkFzQjdCLFFBQVE7OzBCQUlSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuaW1wb3J0IHsgQXZhaWxhYmlsaXR5U3RhdGUsIEd1aWRlLCBQcm9maWxlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFib3V0RGlhbG9nIH0gZnJvbSAnLi4vYWJvdXQvYWJvdXQuZGlhbG9nJztcclxuaW1wb3J0IHsgUG9wdXBSZWYgfSBmcm9tIFwiLi4vLi4vY29yZS9wb3B1cC9wb3B1cC1yZWZcIjtcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBUaGVtZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgTW9kZXMgPSBbJ09mZmxpbmUnLCAnT25saW5lJywgJ091dE9mT2ZmaWNlJywgJ1ZhY2F0aW9uJywgJ1dvcmtpbmdIb21lJ10gYXMgQXZhaWxhYmlsaXR5U3RhdGVbXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXF1aWNrLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbi8qKiBvcHRpb25zIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBRdWlja09wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgb25saW5lOiBib29sZWFuO1xyXG4gIHRoZW1lOiBzdHJpbmc7XHJcbiAgYXZhaWxhYmxlOiBBdmFpbGFiaWxpdHlTdGF0ZTtcclxuICBndWlkZXNDb3VudDogbnVtYmVyO1xyXG4gIHNhdmVpbmcgPSBmYWxzZTtcclxuICByZWFkb25seSBsYW5ndWFnZXMgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlcztcclxuICByZWFkb25seSB0aGVtZXMgPSB0aGlzLl9zZXNzaW9uLlRoZW1lcztcclxuICByZWFkb25seSBndWlkZXM6IEd1aWRlW107XHJcbiAgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgcHJvZmlsZTogUHJvZmlsZTtcclxuICByZWFkb25seSBtb2RlcyA9IE1vZGVzO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBvcHRpb25zIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wb3B1cFJlZjogUG9wdXBSZWY8UXVpY2tPcHRpb25zQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLmd1aWRlcyA9IHRoaXMuX2d1aWRlLmd1aWRlcy5maWx0ZXIoZyA9PiBnLm1vZGUgIT09ICdQcml2YXRlJyk7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2VzO1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlO1xyXG4gICAgdGhpcy5hdmFpbGFibGUgPSB0aGlzLl9zZXNzaW9uLnN0YXRlO1xyXG4gICAgdGhpcy50aGVtZSA9IHRoaXMuX3Nlc3Npb24udGhlbWUubmFtZTtcclxuICAgIHRoaXMucHJvZmlsZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9odWIuc3RhdGUkLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2h1Yi5zdGF0ZSksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHMgPT5cclxuICAgICAgdGhpcy5vbmxpbmUgPSBzID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkXHJcbiAgICApO1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uLmlzSW1wZXJzb25hdGluZykge1xyXG4gICAgICB0aGlzLmd1aWRlc0NvdW50ID0gdGhpcy5ndWlkZXMuZmlsdGVyKHcgPT4gdy5tb2RlID09PSAnRWFnZXInKS5sZW5ndGggfHwgbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV2aXZlKCkge1xyXG4gICAgdGhpcy5faHViLnN0YXJ0KCk7XHJcbiAgfVxyXG4gIGFib3V0KCkge1xyXG4gICAgdGhpcy5fY2xvc2UoKTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFib3V0RGlhbG9nKTtcclxuICB9XHJcbiAgZ3VpZGUoZ3VpZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY2xvc2UoKTtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KGd1aWRlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY2xvc2UoKSB7XHJcbiAgICB0aGlzLl9wb3B1cFJlZj8uY2xvc2UoKTtcclxuICB9XHJcbiAgc2V0QXZhaWxhYmxlKHZhbDogQXZhaWxhYmlsaXR5U3RhdGUpIHtcclxuICAgIHRoaXMuX2Nsb3NlKCk7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnN0YXRlID0gdmFsO1xyXG4gIH1cclxuICBjaGFuZ2VUaGVtZShuYW1lOiBUaGVtZSkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZSA9IG5hbWU7XHJcbiAgfVxyXG4gIGNoYW5nZUxhbmd1YWdlKGNvZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSA9IGNvZGU7XHJcbiAgICB0aGlzLl9wcy5tYXNrKCdSZWZyZXNoaW5nJyk7XHJcbiAgICBsb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtaGVhZGxpbmUtNlwiPlxuICAgICAgQGlmIChwcm9maWxlLmJ5TmFtZSkge1xuICAgICAge3twcm9maWxlLmJ5TmFtZX19IFxcXG4gICAgICB9XG4gICAgICB7e3Byb2ZpbGUubmFtZX19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPG1hdC1kaXZpZGVyIC8+XG4gIDxiaXpkb2Mtb3B0aW9ucyBzZWN0aW9uPVwibm90aWZpY2F0aW9uc1wiPjwvYml6ZG9jLW9wdGlvbnM+XG4gIDxtYXQtZGl2aWRlciAvPlxuICA8IS0ta2V5cy0tPlxuICA8ZGl2ICpuZ1RlbXBsYXRlT3V0bGV0PVwia2V5c1RtcGxcIj48L2Rpdj5cbiAgPCEtLXRoZW1lcy0tPlxuICBAaWYgKHRoZW1lcy5sZW5ndGggPiAxKSB7XG4gIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyXCI+XG4gICAgQGZvciAodCBvZiB0aGVtZXM7IHRyYWNrIHQpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VUaGVtZSh0KVwiIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cInRoZW1lXCIgW3N0eWxlLmJhY2tncm91bmRdPVwidC5jb2xvclwiIFtjbGFzcy5hY3RpdmVdPVwidC5uYW1lID09PSB0aGVtZVwiIFtjbGFzcy5kYXJrXT1cInQuZGFya1wiIFtiaXpkb2NUb29sdGlwXT1cIidUaGVtZSd8dHJhbnNsYXRlXCI+PC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG48IS0tZ3VpZGUtLT5cbjxtYXQtbmF2LWxpc3Qgcm9sZT1cImxpc3RcIj5cbiAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDxoMyBtYXQtc3ViaGVhZGVyIFttYXRCYWRnZV09XCJndWlkZXNDb3VudFwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIiBtYXRCYWRnZU92ZXJsYXA9XCJmYWxzZVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+e3snSGVscCd8dHJhbnNsYXRlfX08L2gzPlxuICBAZm9yIChnIG9mIGd1aWRlczsgdHJhY2sgZykge1xuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImd1aWRlKGcubmFtZSlcIj57e2cudGl0bGV9fTwvYnV0dG9uPlxuICB9XG48L21hdC1uYXYtbGlzdD5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuPCEtLWZvb3Rlci0tPlxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8YnV0dG9uIG1hdC1idXR0b24gcm9sZT1cImxpc3RpdGVtXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxhbmd1YWdlXCI+XG4gICAge3tjdXJyZW50TGFuZ3VhZ2UgfCB0cmFuc2xhdGV9fVxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICAgIDwhLS0nQ2hhbmdlTGFuZ3VhZ2UnLS0+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI2xhbmd1YWdlPlxuICAgIEBmb3IgKGwgb2YgbGFuZ3VhZ2VzOyB0cmFjayBsKSB7XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VMYW5ndWFnZShsKVwiPnt7bCB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgfVxuICA8L21hdC1tZW51PlxuICBAaWYgKG9ubGluZSkge1xuICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImF2YWlsYWJpbGl0eVwiPlxuICAgIHt7J1Nob3dBcycgfCB0cmFuc2xhdGUgOiAoYXZhaWxhYmxlIHwgdHJhbnNsYXRlIHwgbG93ZXJjYXNlKX19XG4gICAgPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICB9XG4gIDxtYXQtbWVudSAjYXZhaWxhYmlsaXR5PlxuICAgIEBmb3IgKG0gb2YgbW9kZXM7IHRyYWNrIG0pIHtcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNldEF2YWlsYWJsZShtKVwiPnt7bSB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgfVxuICA8L21hdC1tZW51PlxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gIDxidXR0b24gbWF0LWJ1dHRvbiByb2xlPVwibGlzdGl0ZW1cIiAoY2xpY2spPVwiYWJvdXQoKVwiPnt7ICdBYm91dCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICBAaWYgKCFvbmxpbmUpIHtcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJldml2ZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Nvbm5lY3QnfHRyYW5zbGF0ZVwiPlxuICAgIDxtYXQtaWNvbj53aWZpX29mZjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cbjwhLS0tLT5cbjxuZy10ZW1wbGF0ZSAja2V5c1RtcGw+XG4gIDxkbCBjbGFzcz1cImtleXMgbWF0LWJvZHktMlwiPlxuICAgIDxkdD5BbHQrbjwvZHQ+XG4gICAgPGRkPnt7J0FsdE5IZWxwJ3x0cmFuc2xhdGV9fTwvZGQ+XG4gICAgPGR0PkN0cmwrczwvZHQ+XG4gICAgPGRkPnt7J0N0cmxTSGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICAgIDxkdD5BbHQrczwvZHQ+XG4gICAgPGRkPnt7J0FsdFNIZWxwJ3x0cmFuc2xhdGV9fTwvZGQ+XG4gICAgPGR0PkFsdCtxPC9kdD5cbiAgICA8ZGQ+e3snQWx0UUhlbHAnfHRyYW5zbGF0ZX19PC9kZD5cbiAgICA8ZHQ+QWx0K2E8L2R0PlxuICAgIDxkZD57eydBbHRBSGVscCd8dHJhbnNsYXRlfX08L2RkPlxuICAgIDxkdD5BbHQraDwvZHQ+XG4gICAgPGRkPnt7J0FsdEhIZWxwJ3x0cmFuc2xhdGV9fTwvZGQ+XG4gICAgPGR0PkN0cmwrLjwvZHQ+XG4gICAgPGRkPnt7J0N0cmxEb3RIZWxwJ3x0cmFuc2xhdGV9fTwvZGQ+XG4gIDwvZGw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -9,15 +9,12 @@ export class NotificationsPaneComponent {
|
|
9
9
|
pane.title = translate.get('Notifications');
|
10
10
|
}
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NotificationsPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NotificationsPaneComponent, selector: "ng-component",
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NotificationsPaneComponent, selector: "ng-component", ngImport: i0, template: '<bizdoc-notifications-table></bizdoc-notifications-table>', isInline: true, dependencies: [{ kind: "component", type: i3.NotificationsTableComponent, selector: "bizdoc-notifications-table" }] }); }
|
13
13
|
}
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NotificationsPaneComponent, decorators: [{
|
15
15
|
type: Component,
|
16
16
|
args: [{
|
17
|
-
template: '<bizdoc-notifications-table></bizdoc-notifications-table>'
|
18
|
-
host: {
|
19
|
-
class: 'pane'
|
20
|
-
}
|
17
|
+
template: '<bizdoc-notifications-table></bizdoc-notifications-table>'
|
21
18
|
}]
|
22
19
|
}], ctorParameters: () => [{ type: i1.PaneRef }, { type: i2.TranslateService }] });
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLnBhbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTzFDLDZCQUE2QjtBQUM3QixNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQVksSUFBYSxFQUFFLFNBQTJCO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQUhRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLG9EQUZ6QiwyREFBMkQ7OzJGQUU1RCwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJEQUEyRDtpQkFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiAnPGJpemRvYy1ub3RpZmljYXRpb25zLXRhYmxlPjwvYml6ZG9jLW5vdGlmaWNhdGlvbnMtdGFibGU+J30pXHJcbi8qKiBub3RpZmljYXRpb25zIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zUGFuZUNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihwYW5lOiBQYW5lUmVmLCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgICBwYW5lLnRpdGxlID0gdHJhbnNsYXRlLmdldCgnTm90aWZpY2F0aW9ucycpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|