barsa-tiles 2.0.66 → 2.0.67
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.
|
@@ -113,11 +113,11 @@ export class BarsaShellbarComponent extends BaseComponent {
|
|
|
113
113
|
this.cultureChanged.emit(culture);
|
|
114
114
|
}
|
|
115
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaShellbarComponent, deps: [{ token: i1.NotificationService }, { token: i2.DialogService }, { token: i3.Router }, { token: i1.PortalService }, { token: DOCUMENT }, { token: APP_VERSION }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
116
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: { cssCustomUrl: "cssCustomUrl", cssUrl: "cssUrl", multiLanguages: "multiLanguages", userLoggedIn: "userLoggedIn", settings: "settings", productMenuControl: "productMenuControl", deviceSize: "deviceSize", cultures: "cultures", shellbarData: "shellbarData", notificationCount: "notificationCount", notifcationLoaded: "notifcationLoaded", notificationLoading: "notificationLoading", notifications: "notifications", productMenuItems1: "productMenuItems1", bodyClick: "bodyClick", logo: "logo", actions: "actions", userMenu: "userMenu", productSwitcher: "productSwitcher", subtitle: "subtitle", isMobile: "isMobile", hideShellbarActions: "hideShellbarActions", showExtraButton: "showExtraButton", isTablet: "isTablet", userProfileImageUrl: "userProfileImageUrl", isDesktop: "isDesktop", isServiceDesk: "isServiceDesk", isOpenQuickAccess: "isOpenQuickAccess", sideMenuTemplate: "sideMenuTemplate" }, outputs: { isOpenQuickAccessChanged: "isOpenQuickAccessChanged", openNotificationPanel: "openNotificationPanel", openQuickAccessPanel: "openQuickAccessPanel", cultureChanged: "cultureChanged", notificationLoadMore: "notificationLoadMore", removeNotification: "removeNotification", notifiationActionClick: "notifiationActionClick", notificationViewed: "notificationViewed" }, viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ComboboxComponent, descendants: true }, { propertyName: "popoverComponent", first: true, predicate: ["popoverComponent"], descendants: true }, { propertyName: "_notificationsDialog", first: true, predicate: ["notificationsDialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n} @if (userLoggedIn) {\n<fd-shellbar\n [size]=\"deviceSize\"\n [ngClass]=\"deviceSize\"\n routeFormChange\n (stateChanged)=\"onRouteFormStateChange()\"\n [handleBodyClick]=\"true\"\n>\n @if (sideMenuTemplate) {\n <fd-shellbar-action\n [glyph]=\"'apps'\"\n [label]=\"'Quick Access' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Quick Access' | bbbTranslate\"\n [callback]=\"onOpenQuickAccess\"\n >\n </fd-shellbar-action>\n } @if (sideMenuTemplate) {\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccessChanged.emit(!isOpenQuickAccess)\"\n ></button>\n } @if (logo) {\n <fd-shellbar-logo>\n <a\n [style.backgroundImage]=\"'url(' + (logo?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) + ')'\"\n href=\"/\"\n class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\"\n aria-label=\"Barsa Novin Ray\"\n ></a>\n </fd-shellbar-logo>\n } @if (!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0) {\n <fd-product-menu [control]=\"productMenuControl\" [closePopoverOnSelect]=\"true\" [items]=\"productMenuItems1\">\n </fd-product-menu>\n }\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }}</fd-shellbar-subtitle>\n @if (!hideShellbarActions&& user && (userMenu?.length || !settings?.HideLanguage)) {\n <fd-shellbar-actions [user]=\"user\" [userMenu]=\"userMenu\" #langRef>\n @for (action of actions; track action) {\n <fd-shellbar-action\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n notificationLabel=\"login\"\n >\n </fd-shellbar-action>\n } @if (deviceSize === 's' && userLoggedIn && !settings?.HideNotifications) {\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notifications' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Notifications' | bbbTranslate\"\n [callback]=\"onBellNotification\"\n >\n </fd-shellbar-action>\n } @if (!settings?.HideNotifications && userLoggedIn) {\n <fd-popover\n [(isOpen)]=\"isOpenNotificatoin\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [noArrow]=\"true\"\n placement=\"bottom\"\n title=\"Notification Popover\"\n [focusAutoCapture]=\"true\"\n [mobile]=\"deviceSize === 's'\"\n #popoverComponent\n >\n <fd-popover-control>\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notification'\"\n [notificationCount]=\"notificationCount.unread\"\n [notificationLabel]=\"'Notification Label'\"\n [callback]=\"onOpenNotification\"\n >\n </fd-shellbar-action>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 320px; overflow-x: auto; box-shadow: var(--sapContent_Shadow0)\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n } @if (!settings?.HideLanguage && deviceSize !== 's' && multiLanguages) {\n <fd-shellbar-action [glyph]=\"'world'\" [label]=\"'language'\" [fdMenuTrigger]=\"menu\" (callback)=\"(onLanguage)\">\n </fd-shellbar-action>\n } @if (!settings?.HideLanguage && deviceSize === 's' && multiLanguages) { @for (culture of cultures | keyvalue;\n track culture) {\n <fd-shellbar-action\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n } } @if (productSwitcher?.length) {\n <fd-product-switch>\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n }\n </fd-shellbar-actions>\n }\n</fd-shellbar>\n} @if(showExtraButton){\n<div\n [class.fd-shellbar--xl]=\"isDesktop\"\n [class.fd-shellbar--m]=\"isTablet\"\n [class.fd-shellbar--s]=\"isMobile\"\n class=\"extra-button-wrapper\"\n [class.service-desk]=\"isServiceDesk\"\n>\n <ng-content select=\"button\"></ng-content>\n</div>\n}\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<div\n *ngIf=\"sideMenuTemplate\"\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[100] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <ng-container *ngTemplateOutlet=\"sideMenuTemplate\"></ng-container>\n</div>\n\n@if(isOpenQuickAccess) {\n<div\n class=\"sidemenu-h tw-fixed tw-right-0 tw-bg-slate-800/[.5] tw-z-[90] tw-w-screen tw-backdrop-blur-sm\"\n (click)=\"isOpenQuickAccessChanged.emit(false)\"\n></div>\n}\n<fd-menu #menu>\n <ul fd-list>\n @for (culture of cultures | keyvalue; track culture) {\n <li fd-list-item>\n <a fd-list-link (click)=\"onCultureChange(culture.value)\">\n <span fd-list-title>\n <img width=\"14px\" height=\"12px\" [src]=\"'/assets/flags/' + culture.key + '.png'\" />\n <span class=\"culture-abbrivation\" [ngClass]=\"culture.key\"> {{ culture.key }}</span>\n </span>\n </a>\n </li>\n }\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n @if (!notifcationLoaded && notificationLoading === true) {\n <div style=\"position: relative; height: 100px\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n }\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (showEvent)=\"popoverComponent.close(); onShowNotification($event)\"\n (actionClick)=\"popoverComponent.close(); onNotificationAction($event)\"\n (loadMore)=\"onNotificationLoadMore()\"\n [deviceSize]=\"deviceSize\"\n ></bt-notification-group>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #notificationsDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Notification' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"mobile\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep fd-shellbar-actions fd-avatar{background-color:transparent!important;color:var(--sapShell_InteractiveTextColor, #d1e8ff)}:host ::ng-deep fd-combobox .fd-input-group input{min-width:2rem;height:1.625rem;margin-top:.1875rem;margin-bottom:.1875rem;padding:0 .5rem;box-sizing:border-box}:host ::ng-deep fd-combobox .fd-input-group span{min-width:2rem;min-height:1.625rem}:host ::ng-deep .fd-shellbar__subtitle{font-size:1rem}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__subtitle{display:block;overflow:hidden;text-wrap:wrap;width:100%;word-break:break-all}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--product{flex:1}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--actions{max-width:120px}.fd-shellbar__logo{min-height:3rem;height:3rem;width:3rem}.extra-button-wrapper{display:flex;height:100%;align-items:center;position:absolute;left:10px;top:0;gap:.285rem}.sidemenu-h{top:var(--fdShellbar_Height);height:calc(100vh - var(--fdShellbar_Height))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i7.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i7.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i9.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i10.ProductSwitchComponent, selector: "fd-product-switch", inputs: ["placement", "disabled"] }, { kind: "component", type: i10.ProductSwitchBodyComponent, selector: "fd-product-switch-body", inputs: ["dragAndDropEnabled", "products", "forceListMode"], outputs: ["productsChange", "itemClicked"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i12.ShellbarComponent, selector: "fd-shellbar", inputs: ["size", "breakpoints", "sideNav", "groupFlex"] }, { kind: "component", type: i12.ProductMenuComponent, selector: "fd-product-menu", inputs: ["closeOnEscapeKey", "closeOnOutsideClick", "triggers", "placement", "disabled", "fillControlMode", "control", "items", "closePopoverOnSelect"] }, { kind: "component", type: i12.ShellbarSubtitleComponent, selector: "fd-shellbar-subtitle" }, { kind: "component", type: i12.ShellbarActionsComponent, selector: "fd-shellbar-actions", inputs: ["user", "userMenu", "closePopoverOnSelect"], outputs: ["searchOpen"] }, { kind: "component", type: i12.ShellbarActionComponent, selector: "fd-shellbar-action", inputs: ["glyph", "glyphFont", "callback", "label", "notificationLabel", "notificationCount"] }, { kind: "component", type: i12.ShellbarLogoComponent, selector: "fd-shellbar-logo" }, { kind: "directive", type: i12.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i1.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i13.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i14.NotificationGroupComponent, selector: "bt-notification-group", inputs: ["notifications", "loading", "deviceSize", "notificationCount"], outputs: ["viewed", "remove", "actionClick", "showEvent", "loadMore"] }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: { cssCustomUrl: "cssCustomUrl", cssUrl: "cssUrl", multiLanguages: "multiLanguages", userLoggedIn: "userLoggedIn", settings: "settings", productMenuControl: "productMenuControl", deviceSize: "deviceSize", cultures: "cultures", shellbarData: "shellbarData", notificationCount: "notificationCount", notifcationLoaded: "notifcationLoaded", notificationLoading: "notificationLoading", notifications: "notifications", productMenuItems1: "productMenuItems1", bodyClick: "bodyClick", logo: "logo", actions: "actions", userMenu: "userMenu", productSwitcher: "productSwitcher", subtitle: "subtitle", isMobile: "isMobile", hideShellbarActions: "hideShellbarActions", showExtraButton: "showExtraButton", isTablet: "isTablet", userProfileImageUrl: "userProfileImageUrl", isDesktop: "isDesktop", isServiceDesk: "isServiceDesk", isOpenQuickAccess: "isOpenQuickAccess", sideMenuTemplate: "sideMenuTemplate" }, outputs: { isOpenQuickAccessChanged: "isOpenQuickAccessChanged", openNotificationPanel: "openNotificationPanel", openQuickAccessPanel: "openQuickAccessPanel", cultureChanged: "cultureChanged", notificationLoadMore: "notificationLoadMore", removeNotification: "removeNotification", notifiationActionClick: "notifiationActionClick", notificationViewed: "notificationViewed" }, viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ComboboxComponent, descendants: true }, { propertyName: "popoverComponent", first: true, predicate: ["popoverComponent"], descendants: true }, { propertyName: "_notificationsDialog", first: true, predicate: ["notificationsDialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n}\n<fd-shellbar\n [size]=\"deviceSize\"\n [ngClass]=\"deviceSize\"\n routeFormChange\n (stateChanged)=\"onRouteFormStateChange()\"\n [handleBodyClick]=\"true\"\n>\n @if (sideMenuTemplate) {\n <fd-shellbar-action\n [glyph]=\"'apps'\"\n [label]=\"'Quick Access' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Quick Access' | bbbTranslate\"\n [callback]=\"onOpenQuickAccess\"\n >\n </fd-shellbar-action>\n } @if (sideMenuTemplate) {\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccessChanged.emit(!isOpenQuickAccess)\"\n ></button>\n } @if (logo) {\n <fd-shellbar-logo>\n <a\n [style.backgroundImage]=\"'url(' + (logo?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) + ')'\"\n href=\"/\"\n class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\"\n aria-label=\"Barsa Novin Ray\"\n ></a>\n </fd-shellbar-logo>\n } @if (!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0) {\n <fd-product-menu [control]=\"productMenuControl\" [closePopoverOnSelect]=\"true\" [items]=\"productMenuItems1\">\n </fd-product-menu>\n }\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }}</fd-shellbar-subtitle>\n @if (!hideShellbarActions&& user && (userMenu?.length || !settings?.HideLanguage)) {\n <fd-shellbar-actions [user]=\"user\" [userMenu]=\"userMenu\" #langRef>\n @for (action of actions; track action) {\n <fd-shellbar-action\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n notificationLabel=\"login\"\n >\n </fd-shellbar-action>\n } @if (deviceSize === 's' && userLoggedIn && !settings?.HideNotifications) {\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notifications' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Notifications' | bbbTranslate\"\n [callback]=\"onBellNotification\"\n >\n </fd-shellbar-action>\n } @if (!settings?.HideNotifications && userLoggedIn) {\n <fd-popover\n [(isOpen)]=\"isOpenNotificatoin\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [noArrow]=\"true\"\n placement=\"bottom\"\n title=\"Notification Popover\"\n [focusAutoCapture]=\"true\"\n [mobile]=\"deviceSize === 's'\"\n #popoverComponent\n >\n <fd-popover-control>\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notification'\"\n [notificationCount]=\"notificationCount.unread\"\n [notificationLabel]=\"'Notification Label'\"\n [callback]=\"onOpenNotification\"\n >\n </fd-shellbar-action>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 320px; overflow-x: auto; box-shadow: var(--sapContent_Shadow0)\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n } @if (!settings?.HideLanguage && deviceSize !== 's' && multiLanguages) {\n <fd-shellbar-action [glyph]=\"'world'\" [label]=\"'language'\" [fdMenuTrigger]=\"menu\" (callback)=\"(onLanguage)\">\n </fd-shellbar-action>\n } @if (!settings?.HideLanguage && deviceSize === 's' && multiLanguages) { @for (culture of cultures | keyvalue;\n track culture) {\n <fd-shellbar-action\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n } } @if (productSwitcher?.length) {\n <fd-product-switch>\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n }\n </fd-shellbar-actions>\n }\n</fd-shellbar>\n@if(showExtraButton){\n<div\n [class.fd-shellbar--xl]=\"isDesktop\"\n [class.fd-shellbar--m]=\"isTablet\"\n [class.fd-shellbar--s]=\"isMobile\"\n class=\"extra-button-wrapper\"\n [class.service-desk]=\"isServiceDesk\"\n>\n <ng-content select=\"button\"></ng-content>\n</div>\n}\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<div\n *ngIf=\"sideMenuTemplate\"\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[100] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <ng-container *ngTemplateOutlet=\"sideMenuTemplate\"></ng-container>\n</div>\n\n@if(isOpenQuickAccess) {\n<div\n class=\"sidemenu-h tw-fixed tw-right-0 tw-bg-slate-800/[.5] tw-z-[90] tw-w-screen tw-backdrop-blur-sm\"\n (click)=\"isOpenQuickAccessChanged.emit(false)\"\n></div>\n}\n<fd-menu #menu>\n <ul fd-list>\n @for (culture of cultures | keyvalue; track culture) {\n <li fd-list-item>\n <a fd-list-link (click)=\"onCultureChange(culture.value)\">\n <span fd-list-title>\n <img width=\"14px\" height=\"12px\" [src]=\"'/assets/flags/' + culture.key + '.png'\" />\n <span class=\"culture-abbrivation\" [ngClass]=\"culture.key\"> {{ culture.key }}</span>\n </span>\n </a>\n </li>\n }\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n @if (!notifcationLoaded && notificationLoading === true) {\n <div style=\"position: relative; height: 100px\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n }\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (showEvent)=\"popoverComponent.close(); onShowNotification($event)\"\n (actionClick)=\"popoverComponent.close(); onNotificationAction($event)\"\n (loadMore)=\"onNotificationLoadMore()\"\n [deviceSize]=\"deviceSize\"\n ></bt-notification-group>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #notificationsDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Notification' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"mobile\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep fd-shellbar-actions fd-avatar{background-color:transparent!important;color:var(--sapShell_InteractiveTextColor, #d1e8ff)}:host ::ng-deep fd-combobox .fd-input-group input{min-width:2rem;height:1.625rem;margin-top:.1875rem;margin-bottom:.1875rem;padding:0 .5rem;box-sizing:border-box}:host ::ng-deep fd-combobox .fd-input-group span{min-width:2rem;min-height:1.625rem}:host ::ng-deep .fd-shellbar__subtitle{font-size:1rem}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__subtitle{display:block;overflow:hidden;text-wrap:wrap;width:100%;word-break:break-all}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--product{flex:1}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--actions{max-width:120px}.fd-shellbar__logo{min-height:3rem;height:3rem;width:3rem}.extra-button-wrapper{display:flex;height:100%;align-items:center;position:absolute;left:10px;top:0;gap:.285rem}.sidemenu-h{top:var(--fdShellbar_Height);height:calc(100vh - var(--fdShellbar_Height))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i7.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i7.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i9.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i10.ProductSwitchComponent, selector: "fd-product-switch", inputs: ["placement", "disabled"] }, { kind: "component", type: i10.ProductSwitchBodyComponent, selector: "fd-product-switch-body", inputs: ["dragAndDropEnabled", "products", "forceListMode"], outputs: ["productsChange", "itemClicked"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i12.ShellbarComponent, selector: "fd-shellbar", inputs: ["size", "breakpoints", "sideNav", "groupFlex"] }, { kind: "component", type: i12.ProductMenuComponent, selector: "fd-product-menu", inputs: ["closeOnEscapeKey", "closeOnOutsideClick", "triggers", "placement", "disabled", "fillControlMode", "control", "items", "closePopoverOnSelect"] }, { kind: "component", type: i12.ShellbarSubtitleComponent, selector: "fd-shellbar-subtitle" }, { kind: "component", type: i12.ShellbarActionsComponent, selector: "fd-shellbar-actions", inputs: ["user", "userMenu", "closePopoverOnSelect"], outputs: ["searchOpen"] }, { kind: "component", type: i12.ShellbarActionComponent, selector: "fd-shellbar-action", inputs: ["glyph", "glyphFont", "callback", "label", "notificationLabel", "notificationCount"] }, { kind: "component", type: i12.ShellbarLogoComponent, selector: "fd-shellbar-logo" }, { kind: "directive", type: i12.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i1.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i13.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i14.NotificationGroupComponent, selector: "bt-notification-group", inputs: ["notifications", "loading", "deviceSize", "notificationCount"], outputs: ["viewed", "remove", "actionClick", "showEvent", "loadMore"] }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
117
117
|
}
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaShellbarComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
|
-
args: [{ selector: 'bt-barsa-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n}
|
|
120
|
+
args: [{ selector: 'bt-barsa-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n}\n<fd-shellbar\n [size]=\"deviceSize\"\n [ngClass]=\"deviceSize\"\n routeFormChange\n (stateChanged)=\"onRouteFormStateChange()\"\n [handleBodyClick]=\"true\"\n>\n @if (sideMenuTemplate) {\n <fd-shellbar-action\n [glyph]=\"'apps'\"\n [label]=\"'Quick Access' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Quick Access' | bbbTranslate\"\n [callback]=\"onOpenQuickAccess\"\n >\n </fd-shellbar-action>\n } @if (sideMenuTemplate) {\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccessChanged.emit(!isOpenQuickAccess)\"\n ></button>\n } @if (logo) {\n <fd-shellbar-logo>\n <a\n [style.backgroundImage]=\"'url(' + (logo?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) + ')'\"\n href=\"/\"\n class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\"\n aria-label=\"Barsa Novin Ray\"\n ></a>\n </fd-shellbar-logo>\n } @if (!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0) {\n <fd-product-menu [control]=\"productMenuControl\" [closePopoverOnSelect]=\"true\" [items]=\"productMenuItems1\">\n </fd-product-menu>\n }\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }}</fd-shellbar-subtitle>\n @if (!hideShellbarActions&& user && (userMenu?.length || !settings?.HideLanguage)) {\n <fd-shellbar-actions [user]=\"user\" [userMenu]=\"userMenu\" #langRef>\n @for (action of actions; track action) {\n <fd-shellbar-action\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n notificationLabel=\"login\"\n >\n </fd-shellbar-action>\n } @if (deviceSize === 's' && userLoggedIn && !settings?.HideNotifications) {\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notifications' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Notifications' | bbbTranslate\"\n [callback]=\"onBellNotification\"\n >\n </fd-shellbar-action>\n } @if (!settings?.HideNotifications && userLoggedIn) {\n <fd-popover\n [(isOpen)]=\"isOpenNotificatoin\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [noArrow]=\"true\"\n placement=\"bottom\"\n title=\"Notification Popover\"\n [focusAutoCapture]=\"true\"\n [mobile]=\"deviceSize === 's'\"\n #popoverComponent\n >\n <fd-popover-control>\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notification'\"\n [notificationCount]=\"notificationCount.unread\"\n [notificationLabel]=\"'Notification Label'\"\n [callback]=\"onOpenNotification\"\n >\n </fd-shellbar-action>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 320px; overflow-x: auto; box-shadow: var(--sapContent_Shadow0)\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n } @if (!settings?.HideLanguage && deviceSize !== 's' && multiLanguages) {\n <fd-shellbar-action [glyph]=\"'world'\" [label]=\"'language'\" [fdMenuTrigger]=\"menu\" (callback)=\"(onLanguage)\">\n </fd-shellbar-action>\n } @if (!settings?.HideLanguage && deviceSize === 's' && multiLanguages) { @for (culture of cultures | keyvalue;\n track culture) {\n <fd-shellbar-action\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n } } @if (productSwitcher?.length) {\n <fd-product-switch>\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n }\n </fd-shellbar-actions>\n }\n</fd-shellbar>\n@if(showExtraButton){\n<div\n [class.fd-shellbar--xl]=\"isDesktop\"\n [class.fd-shellbar--m]=\"isTablet\"\n [class.fd-shellbar--s]=\"isMobile\"\n class=\"extra-button-wrapper\"\n [class.service-desk]=\"isServiceDesk\"\n>\n <ng-content select=\"button\"></ng-content>\n</div>\n}\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<div\n *ngIf=\"sideMenuTemplate\"\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[100] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <ng-container *ngTemplateOutlet=\"sideMenuTemplate\"></ng-container>\n</div>\n\n@if(isOpenQuickAccess) {\n<div\n class=\"sidemenu-h tw-fixed tw-right-0 tw-bg-slate-800/[.5] tw-z-[90] tw-w-screen tw-backdrop-blur-sm\"\n (click)=\"isOpenQuickAccessChanged.emit(false)\"\n></div>\n}\n<fd-menu #menu>\n <ul fd-list>\n @for (culture of cultures | keyvalue; track culture) {\n <li fd-list-item>\n <a fd-list-link (click)=\"onCultureChange(culture.value)\">\n <span fd-list-title>\n <img width=\"14px\" height=\"12px\" [src]=\"'/assets/flags/' + culture.key + '.png'\" />\n <span class=\"culture-abbrivation\" [ngClass]=\"culture.key\"> {{ culture.key }}</span>\n </span>\n </a>\n </li>\n }\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n @if (!notifcationLoaded && notificationLoading === true) {\n <div style=\"position: relative; height: 100px\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n }\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (showEvent)=\"popoverComponent.close(); onShowNotification($event)\"\n (actionClick)=\"popoverComponent.close(); onNotificationAction($event)\"\n (loadMore)=\"onNotificationLoadMore()\"\n [deviceSize]=\"deviceSize\"\n ></bt-notification-group>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #notificationsDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Notification' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"mobile\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:block;position:relative}:host ::ng-deep fd-shellbar-actions fd-avatar{background-color:transparent!important;color:var(--sapShell_InteractiveTextColor, #d1e8ff)}:host ::ng-deep fd-combobox .fd-input-group input{min-width:2rem;height:1.625rem;margin-top:.1875rem;margin-bottom:.1875rem;padding:0 .5rem;box-sizing:border-box}:host ::ng-deep fd-combobox .fd-input-group span{min-width:2rem;min-height:1.625rem}:host ::ng-deep .fd-shellbar__subtitle{font-size:1rem}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__subtitle{display:block;overflow:hidden;text-wrap:wrap;width:100%;word-break:break-all}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--product{flex:1}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--actions{max-width:120px}.fd-shellbar__logo{min-height:3rem;height:3rem;width:3rem}.extra-button-wrapper{display:flex;height:100%;align-items:center;position:absolute;left:10px;top:0;gap:.285rem}.sidemenu-h{top:var(--fdShellbar_Height);height:calc(100vh - var(--fdShellbar_Height))}\n"] }]
|
|
121
121
|
}], ctorParameters: () => [{ type: i1.NotificationService }, { type: i2.DialogService }, { type: i3.Router }, { type: i1.PortalService }, { type: Document, decorators: [{
|
|
122
122
|
type: Inject,
|
|
123
123
|
args: [DOCUMENT]
|
|
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
208
208
|
type: ViewChild,
|
|
209
209
|
args: ['notificationsDialog', { static: true, read: TemplateRef }]
|
|
210
210
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9iYXJzYS1zaGVsbGJhci9iYXJzYS1zaGVsbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXNoZWxsYmFyL2JhcnNhLXNoZWxsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUNILGlCQUFpQixFQU1wQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFDSCxhQUFhLEVBSWIsV0FBVyxFQU1kLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQjlCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBeUVyRCxZQUNZLG9CQUF5QyxFQUN6QyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsY0FBNkIsRUFDWCxTQUFtQixFQUNqQixVQUFrQjtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQVBBLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNqQixlQUFVLEdBQVYsVUFB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Q0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFdUIsaUJBQWlCO3NCQUE5QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDc0IsZ0JBQWdCO3NCQUFqRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDdUIsb0JBQW9CO3NCQUExRixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgRGlhbG9nU2VydmljZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFByb2R1Y3RTd2l0Y2hJdGVtLFxuICAgIFNoZWxsYmFyTWVudUl0ZW0sXG4gICAgU2hlbGxiYXJVc2VyXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIEZpbGVQaWN0dXJlSW5mb01vZGVsLFxuICAgIE1vRm9yUmVwb3J0TW9kZWwsXG4gICAgQVBQX1ZFUlNJT04sXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBOb3RpZmljYXRpb25JdGVtLFxuICAgIE5vdGlmaWNhdGlvbkFjdGlvbixcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgUG9ydGFsU2VydmljZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbnRlcmZhY2UgU2hlbGxiYXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgc3VidGl0bGU6IHN0cmluZztcbiAgICBjYWxjU3VidGl0bGU6IHN0cmluZztcbiAgICBsb2dvOiBGaWxlUGljdHVyZUluZm9Nb2RlbDtcbiAgICBQcm9kdWN0U3dpdGNoSXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgUHJvZHVjdE1lbnVJdGVtczogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBVc2VyTWVudUl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xuICAgIEFjdGlvbkl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2J0LWJhcnNhLXNoZWxsYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXNoZWxsYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FTaGVsbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNzc0N1c3RvbVVybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbDtcbiAgICBASW5wdXQoKSBjc3NVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGw7XG4gICAgQElucHV0KCkgbXVsdGlMYW5ndWFnZXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHByb2R1Y3RNZW51Q29udHJvbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBjdWx0dXJlczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBASW5wdXQoKSBzaGVsbGJhckRhdGE6IFNoZWxsYmFyU2V0dGluZztcbiAgICBASW5wdXQoKSBub3RpZmljYXRpb25Db3VudDogeyB1bnJlYWQ6IG51bWJlcjsgYWxsOiBudW1iZXIgfTtcbiAgICBASW5wdXQoKSBub3RpZmNhdGlvbkxvYWRlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBub3RpZmljYXRpb25Mb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbkl0ZW1bXTtcbiAgICBASW5wdXQoKSBwcm9kdWN0TWVudUl0ZW1zMTogU2hlbGxiYXJNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIGJvZHlDbGljazogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvZ286IHsgRmlsZUlkOiBzdHJpbmcgfTtcbiAgICBASW5wdXQoKSBhY3Rpb25zOiBBcnJheTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcbiAgICBASW5wdXQoKSB1c2VyTWVudTogeyB0ZXh0OiBzdHJpbmc7IGNhbGxiYWNrOiAoKSA9PiB2b2lkIH1bXTtcbiAgICBASW5wdXQoKSBwcm9kdWN0U3dpdGNoZXI6IFByb2R1Y3RTd2l0Y2hJdGVtW107XG4gICAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlU2hlbGxiYXJBY3Rpb25zOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dFeHRyYUJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1RhYmxldDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB1c2VyUHJvZmlsZUltYWdlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIGlzRGVza3RvcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1NlcnZpY2VEZXNrID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNPcGVuUXVpY2tBY2Nlc3M7XG4gICAgQElucHV0KCkgc2lkZU1lbnVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG5cbiAgICBAT3V0cHV0KCkgaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG4gICAgQE91dHB1dCgpIG9wZW5Ob3RpZmljYXRpb25QYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb3BlblF1aWNrQWNjZXNzUGFuZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGN1bHR1cmVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIG5vdGlmaWNhdGlvbkxvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSByZW1vdmVOb3RpZmljYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0+KCk7XG4gICAgQE91dHB1dCgpIG5vdGlmaWF0aW9uQWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogTm90aWZpY2F0aW9uSXRlbTsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfT4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uVmlld2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOb3RpZmljYXRpb25JdGVtPigpO1xuXG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgY29tYm9ib3hDb21wb25lbnQ6IENvbWJvYm94Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXJDb21wb25lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wb3ZlckNvbXBvbmVudDogUG9wb3ZlckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdub3RpZmljYXRpb25zRGlhbG9nJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9ub3RpZmljYXRpb25zRGlhbG9nOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHJpdmF0ZSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEFycmF5ID0gQXJyYXk7XG4gICAgaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XG5cbiAgICB1c2VyOiBTaGVsbGJhclVzZXIgPSB7XG4gICAgICAgIGluaXRpYWxzOiAnV1cnLFxuICAgICAgICBjb2xvckFjY2VudDogMVxuICAgIH07XG4gICAgc2VhcmNoVGVybXMgPSBbJ9mF2LHYrti124wnLCAn2YXYp9mF2YjYsduM2KonLCAn2KrbjNqp2KonLCAn2b7YsdmI2pjZhyddO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBhY3Rpb25zJDogT2JzZXJ2YWJsZTxTaGVsbGJhck1lbnVJdGVtW10+O1xuXG4gICAgc2hvd1ZlcnNpb24gPSBmYWxzZTtcblxuICAgIF92aWV3ZWROb3RpZmljYXRpb25zJCA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbkl0ZW0+KCk7XG4gICAgb25CZWxsTm90aWZpY2F0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLl9kb2N1bWVudD8uYm9keSAmJiB0aGlzLl9kb2N1bWVudC5ib2R5LmNsaWNrKCk7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuKHRoaXMuX25vdGlmaWNhdGlvbnNEaWFsb2csIHtcbiAgICAgICAgICAgICAgICBtb2JpbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckxvYWRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vdGlmaWNhdGlvblBhbmVsLmVtaXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH07XG4gICAgX3ZpZXdlZE5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbkl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEFQUF9WRVJTSU9OKSBwdWJsaWMgYXBwVmVyc2lvbjogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2hvd1ZlcnNpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyB1c2VyUHJvZmlsZUltYWdlVXJsIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodXNlclByb2ZpbGVJbWFnZVVybCkge1xuICAgICAgICAgICAgdGhpcy51c2VyLmltYWdlID0gdXNlclByb2ZpbGVJbWFnZVVybC5jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Sb3V0ZUZvcm1TdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xvc2VTaWRlTWVudSgpO1xuICAgIH1cbiAgICBvbkN1bHR1cmVDaGFuZ2UoY3VsdHVyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VDdWx0dXJlKGN1bHR1cmUpO1xuICAgIH1cbiAgICBvblNob3dOb3RpZmljYXRpb24oZTogeyB0YWc6IHN0cmluZzsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IG5hbWE6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuU2hvd05vdGlmaWNhdGlvblJlbGF0ZWRNbyhlKTtcbiAgICB9XG4gICAgb25Ob3RpZmljYXRpb25JdGVtVmlld2VkKHZpZXdlZE1vOiBOb3RpZmljYXRpb25JdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uVmlld2VkLmVtaXQodmlld2VkTW8pO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlTm90aWZpY2F0aW9ucyhlOiB7IGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107IHNpbGVudDogYm9vbGVhbiB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uT3BlblF1aWNrQWNjZXNzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5RdWlja0FjY2Vzc1BhbmVsLmVtaXQoKTtcbiAgICB9O1xuICAgIG9uT3Blbk5vdGlmaWNhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5Ob3RpZmljYXRvaW4gPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5Ob3RpZmljYXRpb25QYW5lbC5lbWl0KCk7XG4gICAgfTtcbiAgICBvbk5vdGlmaWNhdGlvbkFjdGlvbihlOiB7IGl0ZW06IE5vdGlmaWNhdGlvbkl0ZW07IGJ0bjogTm90aWZpY2F0aW9uQWN0aW9uIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmlhdGlvbkFjdGlvbkNsaWNrLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uTGFuZ3VhZ2UgPSAoZSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBjdWx0dXJlID0gZS5jdXJyZW50VGFyZ2V0LnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlQ3VsdHVyZShjdWx0dXJlKTtcbiAgICB9O1xuICAgIG9uTm90aWZpY2F0aW9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTG9hZE1vcmUuZW1pdCgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jbG9zZVNpZGVNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuUXVpY2tBY2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlQ3VsdHVyZShjdWx0dXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWx0dXJlQ2hhbmdlZC5lbWl0KGN1bHR1cmUpO1xuICAgIH1cbn1cbiIsIkBpZiAoY3NzVXJsKSB7XG48bGluayB0eXBlPVwidGV4dC9jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgW2hyZWZdPVwiY3NzVXJsXCIgLz5cbn0gQGlmIChjc3NDdXN0b21VcmwpIHtcbjxsaW5rIHR5cGU9XCJ0ZXh0L2Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiBbaHJlZl09XCJjc3NDdXN0b21VcmxcIiAvPlxufSBAaWYgKHVzZXJMb2dnZWRJbikge1xuPGZkLXNoZWxsYmFyXG4gICAgW3NpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgW25nQ2xhc3NdPVwiZGV2aWNlU2l6ZVwiXG4gICAgcm91dGVGb3JtQ2hhbmdlXG4gICAgKHN0YXRlQ2hhbmdlZCk9XCJvblJvdXRlRm9ybVN0YXRlQ2hhbmdlKClcIlxuICAgIFtoYW5kbGVCb2R5Q2xpY2tdPVwidHJ1ZVwiXG4+XG4gICAgQGlmIChzaWRlTWVudVRlbXBsYXRlKSB7XG4gICAgPGZkLXNoZWxsYmFyLWFjdGlvblxuICAgICAgICBbZ2x5cGhdPVwiJ2FwcHMnXCJcbiAgICAgICAgW2xhYmVsXT1cIidRdWljayBBY2Nlc3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cIm5vdGlmaWNhdGlvbkNvdW50LnVucmVhZCA/PyAwXCJcbiAgICAgICAgW25vdGlmaWNhdGlvbkxhYmVsXT1cIidRdWljayBBY2Nlc3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2NhbGxiYWNrXT1cIm9uT3BlblF1aWNrQWNjZXNzXCJcbiAgICA+XG4gICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgfSBAaWYgKHNpZGVNZW51VGVtcGxhdGUpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLXNoZWxsYmFyLXNpZGUtbmF2XG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGdseXBoPVwibWVudTJcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAyLjc1cmVtXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQoIWlzT3BlblF1aWNrQWNjZXNzKVwiXG4gICAgPjwvYnV0dG9uPlxuICAgIH0gQGlmIChsb2dvKSB7XG4gICAgPGZkLXNoZWxsYmFyLWxvZ28+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cIid1cmwoJyArIChsb2dvPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0dldFBpY3R1cmVGcm9tRmlsZUluZm8nOm51bGwpICsgJyknXCJcbiAgICAgICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtc2hlbGxiYXJfX2xvZ28gZmQtc2hlbGxiYXJfX2xvZ28tLWltYWdlLXJlcGxhY2VkXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJCYXJzYSBOb3ZpbiBSYXlcIlxuICAgICAgICA+PC9hPlxuICAgIDwvZmQtc2hlbGxiYXItbG9nbz5cbiAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlUHJvZHVjdE1lbnUgJiYgcHJvZHVjdE1lbnVJdGVtczEgJiYgcHJvZHVjdE1lbnVJdGVtczEubGVuZ3RoID4gMCkge1xuICAgIDxmZC1wcm9kdWN0LW1lbnUgW2NvbnRyb2xdPVwicHJvZHVjdE1lbnVDb250cm9sXCIgW2Nsb3NlUG9wb3Zlck9uU2VsZWN0XT1cInRydWVcIiBbaXRlbXNdPVwicHJvZHVjdE1lbnVJdGVtczFcIj5cbiAgICA8L2ZkLXByb2R1Y3QtbWVudT5cbiAgICB9XG4gICAgPGZkLXNoZWxsYmFyLXN1YnRpdGxlPiB7eyBzdWJ0aXRsZSB8IGJiYlRyYW5zbGF0ZSB9fXt7IHNob3dWZXJzaW9uID8gYXBwVmVyc2lvbiA6ICcnIH19PC9mZC1zaGVsbGJhci1zdWJ0aXRsZT5cbiAgICBAaWYgKCFoaWRlU2hlbGxiYXJBY3Rpb25zJiYgdXNlciAmJiAodXNlck1lbnU/Lmxlbmd0aCB8fCAhc2V0dGluZ3M/LkhpZGVMYW5ndWFnZSkpIHtcbiAgICA8ZmQtc2hlbGxiYXItYWN0aW9ucyBbdXNlcl09XCJ1c2VyXCIgW3VzZXJNZW51XT1cInVzZXJNZW51XCIgI2xhbmdSZWY+XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgPGZkLXNoZWxsYmFyLWFjdGlvblxuICAgICAgICAgICAgW2dseXBoXT1cImFjdGlvbi5JY29uXCJcbiAgICAgICAgICAgIFtjYWxsYmFja109XCJhY3Rpb24uQ2FsbGJhY2tcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImFjdGlvbi5MYWJlbFwiXG4gICAgICAgICAgICBub3RpZmljYXRpb25MYWJlbD1cImxvZ2luXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAgICAgICAgfSBAaWYgKGRldmljZVNpemUgPT09ICdzJyAmJiB1c2VyTG9nZ2VkSW4gJiYgIXNldHRpbmdzPy5IaWRlTm90aWZpY2F0aW9ucykge1xuICAgICAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgICAgICBbZ2x5cGhdPVwiJ2JlbGwnXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInTm90aWZpY2F0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cIm5vdGlmaWNhdGlvbkNvdW50LnVucmVhZCA/PyAwXCJcbiAgICAgICAgICAgIFtub3RpZmljYXRpb25MYWJlbF09XCInTm90aWZpY2F0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2NhbGxiYWNrXT1cIm9uQmVsbE5vdGlmaWNhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgIH0gQGlmICghc2V0dGluZ3M/LkhpZGVOb3RpZmljYXRpb25zICYmIHVzZXJMb2dnZWRJbikge1xuICAgICAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAgICAgWyhpc09wZW4pXT1cImlzT3Blbk5vdGlmaWNhdG9pblwiXG4gICAgICAgICAgICBbdHJpZ2dlcnNdPVwiW11cIlxuICAgICAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtub0Fycm93XT1cInRydWVcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIHRpdGxlPVwiTm90aWZpY2F0aW9uIFBvcG92ZXJcIlxuICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgICAgICAgICAjcG9wb3ZlckNvbXBvbmVudFxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidiZWxsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTm90aWZpY2F0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtub3RpZmljYXRpb25Db3VudF09XCJub3RpZmljYXRpb25Db3VudC51bnJlYWRcIlxuICAgICAgICAgICAgICAgICAgICBbbm90aWZpY2F0aW9uTGFiZWxdPVwiJ05vdGlmaWNhdGlvbiBMYWJlbCdcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGJhY2tdPVwib25PcGVuTm90aWZpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDMyMHB4OyBvdmVyZmxvdy14OiBhdXRvOyBib3gtc2hhZG93OiB2YXIoLS1zYXBDb250ZW50X1NoYWRvdzApXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdGlmaWNhdGlvbkdyb3VwVHBsOyBjb250ZXh0OiB7IG5vdGlmaWNhdGlvbkNvdW50OiBub3RpZmljYXRpb25Db3VudCB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlTGFuZ3VhZ2UgJiYgZGV2aWNlU2l6ZSAhPT0gJ3MnICYmIG11bHRpTGFuZ3VhZ2VzKSB7XG4gICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb24gW2dseXBoXT1cIid3b3JsZCdcIiBbbGFiZWxdPVwiJ2xhbmd1YWdlJ1wiIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIiAoY2FsbGJhY2spPVwiKG9uTGFuZ3VhZ2UpXCI+XG4gICAgICAgIDwvZmQtc2hlbGxiYXItYWN0aW9uPlxuICAgICAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlTGFuZ3VhZ2UgJiYgZGV2aWNlU2l6ZSA9PT0gJ3MnICYmIG11bHRpTGFuZ3VhZ2VzKSB7IEBmb3IgKGN1bHR1cmUgb2YgY3VsdHVyZXMgfCBrZXl2YWx1ZTtcbiAgICAgICAgdHJhY2sgY3VsdHVyZSkge1xuICAgICAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgICAgICBbbGFiZWxdPVwiY3VsdHVyZS52YWx1ZVwiXG4gICAgICAgICAgICBbY2FsbGJhY2tdPVwib25MYW5ndWFnZVwiXG4gICAgICAgICAgICBjbGFzcz1cImN1bHR1cmUtYWJicml2YXRpb25cIlxuICAgICAgICAgICAgW2dseXBoXT1cImN1bHR1cmUua2V5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmbGFncydcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtc2hlbGxiYXItYWN0aW9uPlxuICAgICAgICB9IH0gQGlmIChwcm9kdWN0U3dpdGNoZXI/Lmxlbmd0aCkge1xuICAgICAgICA8ZmQtcHJvZHVjdC1zd2l0Y2g+XG4gICAgICAgICAgICA8ZmQtcHJvZHVjdC1zd2l0Y2gtYm9keSBbcHJvZHVjdHNdPVwicHJvZHVjdFN3aXRjaGVyXCIgW2ZvcmNlTGlzdE1vZGVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCI+XG4gICAgICAgICAgICA8L2ZkLXByb2R1Y3Qtc3dpdGNoLWJvZHk+XG4gICAgICAgIDwvZmQtcHJvZHVjdC1zd2l0Y2g+XG4gICAgICAgIH1cbiAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbnM+XG4gICAgfVxuPC9mZC1zaGVsbGJhcj5cbn0gQGlmKHNob3dFeHRyYUJ1dHRvbil7XG48ZGl2XG4gICAgW2NsYXNzLmZkLXNoZWxsYmFyLS14bF09XCJpc0Rlc2t0b3BcIlxuICAgIFtjbGFzcy5mZC1zaGVsbGJhci0tbV09XCJpc1RhYmxldFwiXG4gICAgW2NsYXNzLmZkLXNoZWxsYmFyLS1zXT1cImlzTW9iaWxlXCJcbiAgICBjbGFzcz1cImV4dHJhLWJ1dHRvbi13cmFwcGVyXCJcbiAgICBbY2xhc3Muc2VydmljZS1kZXNrXT1cImlzU2VydmljZURlc2tcIlxuPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvblwiPjwvbmctY29udGVudD5cbjwvZGl2PlxufVxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAgICpuZ0lmPVwic2lkZU1lbnVUZW1wbGF0ZVwiXG4gICAgY2xhc3M9XCJzaWRlbWVudS1oIHR3LWZpeGVkIHR3LWJnLXdoaXRlIHR3LXRyYW5zaXRpb24tYWxsIHR3LXotWzEwMF0gdHctc2hhZG93LTJ4bCB0dy1vdmVyZmxvdy1hdXRvXCJcbiAgICBbY2xhc3MudHctdy1zY3JlZW5dPVwiaXNNb2JpbGVcIlxuICAgIFtjbGFzcy4tdHctcmlnaHQtZnVsbF09XCJpc01vYmlsZVwiXG4gICAgW2NsYXNzLnR3LXctOTZdPVwiIWlzTW9iaWxlXCJcbiAgICBbY2xhc3MuLXR3LXJpZ2h0LTk2XT1cIiFpc01vYmlsZVwiXG4gICAgW2NsYXNzLiF0dy1yaWdodC0wXT1cImlzT3BlblF1aWNrQWNjZXNzXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZU1lbnVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbkBpZihpc09wZW5RdWlja0FjY2Vzcykge1xuPGRpdlxuICAgIGNsYXNzPVwic2lkZW1lbnUtaCB0dy1maXhlZCB0dy1yaWdodC0wIHR3LWJnLXNsYXRlLTgwMC9bLjVdIHR3LXotWzkwXSB0dy13LXNjcmVlbiB0dy1iYWNrZHJvcC1ibHVyLXNtXCJcbiAgICAoY2xpY2spPVwiaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQoZmFsc2UpXCJcbj48L2Rpdj5cbn1cbjxmZC1tZW51ICNtZW51PlxuICAgIDx1bCBmZC1saXN0PlxuICAgICAgICBAZm9yIChjdWx0dXJlIG9mIGN1bHR1cmVzIHwga2V5dmFsdWU7IHRyYWNrIGN1bHR1cmUpIHtcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25DdWx0dXJlQ2hhbmdlKGN1bHR1cmUudmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGltZyB3aWR0aD1cIjE0cHhcIiBoZWlnaHQ9XCIxMnB4XCIgW3NyY109XCInL2Fzc2V0cy9mbGFncy8nICsgY3VsdHVyZS5rZXkgKyAnLnBuZydcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1bHR1cmUtYWJicml2YXRpb25cIiBbbmdDbGFzc109XCJjdWx0dXJlLmtleVwiPiB7eyBjdWx0dXJlLmtleSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9mZC1tZW51PlxuPG5nLXRlbXBsYXRlICNub3RpZmljYXRpb25Hcm91cFRwbCBsZXQtbm90aWZpY2F0aW9uQ291bnQ9XCJub3RpZmljYXRpb25Db3VudFwiPlxuICAgIEBpZiAoIW5vdGlmY2F0aW9uTG9hZGVkICYmIG5vdGlmaWNhdGlvbkxvYWRpbmcgPT09IHRydWUpIHtcbiAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMHB4XCI+XG4gICAgICAgIDxic3UtbWFzayBzaXplPVwic1wiPjwvYnN1LW1hc2s+XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIDxidC1ub3RpZmljYXRpb24tZ3JvdXBcbiAgICAgICAgW25vdGlmaWNhdGlvbnNdPVwibm90aWZpY2F0aW9uc1wiXG4gICAgICAgIFtub3RpZmljYXRpb25Db3VudF09XCJub3RpZmljYXRpb25Db3VudFwiXG4gICAgICAgIFtsb2FkaW5nXT1cIm5vdGlmaWNhdGlvbkxvYWRpbmcgPT09IHRydWVcIlxuICAgICAgICAodmlld2VkKT1cIm9uTm90aWZpY2F0aW9uSXRlbVZpZXdlZCgkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZSk9XCJvblJlbW92ZU5vdGlmaWNhdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgIChzaG93RXZlbnQpPVwicG9wb3ZlckNvbXBvbmVudC5jbG9zZSgpOyBvblNob3dOb3RpZmljYXRpb24oJGV2ZW50KVwiXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJwb3BvdmVyQ29tcG9uZW50LmNsb3NlKCk7IG9uTm90aWZpY2F0aW9uQWN0aW9uKCRldmVudClcIlxuICAgICAgICAobG9hZE1vcmUpPVwib25Ob3RpZmljYXRpb25Mb2FkTW9yZSgpXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgPjwvYnQtbm90aWZpY2F0aW9uLWdyb3VwPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNub3RpZmljYXRpb25zRGlhbG9nPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItMTBcIiBmZC10aXRsZT57eyAnTm90aWZpY2F0aW9uJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24gKGNsaWNrKT1cImRpYWxvZy5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCJtb2JpbGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdGlmaWNhdGlvbkdyb3VwVHBsOyBjb250ZXh0OiB7IG5vdGlmaWNhdGlvbkNvdW50OiBub3RpZmljYXRpb25Db3VudCB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9iYXJzYS1zaGVsbGJhci9iYXJzYS1zaGVsbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXNoZWxsYmFyL2JhcnNhLXNoZWxsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUNILGlCQUFpQixFQU1wQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFDSCxhQUFhLEVBSWIsV0FBVyxFQU1kLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQjlCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBeUVyRCxZQUNZLG9CQUF5QyxFQUN6QyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsY0FBNkIsRUFDWCxTQUFtQixFQUNqQixVQUFrQjtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQVBBLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNqQixlQUFVLEdBQVYsVUFB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Q0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFdUIsaUJBQWlCO3NCQUE5QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDc0IsZ0JBQWdCO3NCQUFqRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDdUIsb0JBQW9CO3NCQUExRixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgRGlhbG9nU2VydmljZSxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFByb2R1Y3RTd2l0Y2hJdGVtLFxuICAgIFNoZWxsYmFyTWVudUl0ZW0sXG4gICAgU2hlbGxiYXJVc2VyXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIEZpbGVQaWN0dXJlSW5mb01vZGVsLFxuICAgIE1vRm9yUmVwb3J0TW9kZWwsXG4gICAgQVBQX1ZFUlNJT04sXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBOb3RpZmljYXRpb25JdGVtLFxuICAgIE5vdGlmaWNhdGlvbkFjdGlvbixcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgUG9ydGFsU2VydmljZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbnRlcmZhY2UgU2hlbGxiYXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgc3VidGl0bGU6IHN0cmluZztcbiAgICBjYWxjU3VidGl0bGU6IHN0cmluZztcbiAgICBsb2dvOiBGaWxlUGljdHVyZUluZm9Nb2RlbDtcbiAgICBQcm9kdWN0U3dpdGNoSXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgUHJvZHVjdE1lbnVJdGVtczogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBVc2VyTWVudUl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xuICAgIEFjdGlvbkl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2J0LWJhcnNhLXNoZWxsYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXNoZWxsYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FTaGVsbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNzc0N1c3RvbVVybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbDtcbiAgICBASW5wdXQoKSBjc3NVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGw7XG4gICAgQElucHV0KCkgbXVsdGlMYW5ndWFnZXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHByb2R1Y3RNZW51Q29udHJvbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBjdWx0dXJlczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBASW5wdXQoKSBzaGVsbGJhckRhdGE6IFNoZWxsYmFyU2V0dGluZztcbiAgICBASW5wdXQoKSBub3RpZmljYXRpb25Db3VudDogeyB1bnJlYWQ6IG51bWJlcjsgYWxsOiBudW1iZXIgfTtcbiAgICBASW5wdXQoKSBub3RpZmNhdGlvbkxvYWRlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBub3RpZmljYXRpb25Mb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbkl0ZW1bXTtcbiAgICBASW5wdXQoKSBwcm9kdWN0TWVudUl0ZW1zMTogU2hlbGxiYXJNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIGJvZHlDbGljazogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvZ286IHsgRmlsZUlkOiBzdHJpbmcgfTtcbiAgICBASW5wdXQoKSBhY3Rpb25zOiBBcnJheTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcbiAgICBASW5wdXQoKSB1c2VyTWVudTogeyB0ZXh0OiBzdHJpbmc7IGNhbGxiYWNrOiAoKSA9PiB2b2lkIH1bXTtcbiAgICBASW5wdXQoKSBwcm9kdWN0U3dpdGNoZXI6IFByb2R1Y3RTd2l0Y2hJdGVtW107XG4gICAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlU2hlbGxiYXJBY3Rpb25zOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dFeHRyYUJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1RhYmxldDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB1c2VyUHJvZmlsZUltYWdlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIGlzRGVza3RvcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1NlcnZpY2VEZXNrID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNPcGVuUXVpY2tBY2Nlc3M7XG4gICAgQElucHV0KCkgc2lkZU1lbnVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG5cbiAgICBAT3V0cHV0KCkgaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG4gICAgQE91dHB1dCgpIG9wZW5Ob3RpZmljYXRpb25QYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb3BlblF1aWNrQWNjZXNzUGFuZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGN1bHR1cmVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIG5vdGlmaWNhdGlvbkxvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSByZW1vdmVOb3RpZmljYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0+KCk7XG4gICAgQE91dHB1dCgpIG5vdGlmaWF0aW9uQWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogTm90aWZpY2F0aW9uSXRlbTsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfT4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uVmlld2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOb3RpZmljYXRpb25JdGVtPigpO1xuXG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgY29tYm9ib3hDb21wb25lbnQ6IENvbWJvYm94Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXJDb21wb25lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wb3ZlckNvbXBvbmVudDogUG9wb3ZlckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdub3RpZmljYXRpb25zRGlhbG9nJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9ub3RpZmljYXRpb25zRGlhbG9nOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHJpdmF0ZSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEFycmF5ID0gQXJyYXk7XG4gICAgaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XG5cbiAgICB1c2VyOiBTaGVsbGJhclVzZXIgPSB7XG4gICAgICAgIGluaXRpYWxzOiAnV1cnLFxuICAgICAgICBjb2xvckFjY2VudDogMVxuICAgIH07XG4gICAgc2VhcmNoVGVybXMgPSBbJ9mF2LHYrti124wnLCAn2YXYp9mF2YjYsduM2KonLCAn2KrbjNqp2KonLCAn2b7YsdmI2pjZhyddO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBhY3Rpb25zJDogT2JzZXJ2YWJsZTxTaGVsbGJhck1lbnVJdGVtW10+O1xuXG4gICAgc2hvd1ZlcnNpb24gPSBmYWxzZTtcblxuICAgIF92aWV3ZWROb3RpZmljYXRpb25zJCA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbkl0ZW0+KCk7XG4gICAgb25CZWxsTm90aWZpY2F0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLl9kb2N1bWVudD8uYm9keSAmJiB0aGlzLl9kb2N1bWVudC5ib2R5LmNsaWNrKCk7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuKHRoaXMuX25vdGlmaWNhdGlvbnNEaWFsb2csIHtcbiAgICAgICAgICAgICAgICBtb2JpbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckxvYWRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vdGlmaWNhdGlvblBhbmVsLmVtaXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH07XG4gICAgX3ZpZXdlZE5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbkl0ZW1bXSA9IFtdO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KEFQUF9WRVJTSU9OKSBwdWJsaWMgYXBwVmVyc2lvbjogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2hvd1ZlcnNpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyB1c2VyUHJvZmlsZUltYWdlVXJsIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodXNlclByb2ZpbGVJbWFnZVVybCkge1xuICAgICAgICAgICAgdGhpcy51c2VyLmltYWdlID0gdXNlclByb2ZpbGVJbWFnZVVybC5jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Sb3V0ZUZvcm1TdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xvc2VTaWRlTWVudSgpO1xuICAgIH1cbiAgICBvbkN1bHR1cmVDaGFuZ2UoY3VsdHVyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VDdWx0dXJlKGN1bHR1cmUpO1xuICAgIH1cbiAgICBvblNob3dOb3RpZmljYXRpb24oZTogeyB0YWc6IHN0cmluZzsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IG5hbWE6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuU2hvd05vdGlmaWNhdGlvblJlbGF0ZWRNbyhlKTtcbiAgICB9XG4gICAgb25Ob3RpZmljYXRpb25JdGVtVmlld2VkKHZpZXdlZE1vOiBOb3RpZmljYXRpb25JdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uVmlld2VkLmVtaXQodmlld2VkTW8pO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlTm90aWZpY2F0aW9ucyhlOiB7IGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107IHNpbGVudDogYm9vbGVhbiB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uT3BlblF1aWNrQWNjZXNzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5RdWlja0FjY2Vzc1BhbmVsLmVtaXQoKTtcbiAgICB9O1xuICAgIG9uT3Blbk5vdGlmaWNhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5Ob3RpZmljYXRvaW4gPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5Ob3RpZmljYXRpb25QYW5lbC5lbWl0KCk7XG4gICAgfTtcbiAgICBvbk5vdGlmaWNhdGlvbkFjdGlvbihlOiB7IGl0ZW06IE5vdGlmaWNhdGlvbkl0ZW07IGJ0bjogTm90aWZpY2F0aW9uQWN0aW9uIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmlhdGlvbkFjdGlvbkNsaWNrLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uTGFuZ3VhZ2UgPSAoZSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBjdWx0dXJlID0gZS5jdXJyZW50VGFyZ2V0LnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlQ3VsdHVyZShjdWx0dXJlKTtcbiAgICB9O1xuICAgIG9uTm90aWZpY2F0aW9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTG9hZE1vcmUuZW1pdCgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jbG9zZVNpZGVNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuUXVpY2tBY2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlQ3VsdHVyZShjdWx0dXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWx0dXJlQ2hhbmdlZC5lbWl0KGN1bHR1cmUpO1xuICAgIH1cbn1cbiIsIkBpZiAoY3NzVXJsKSB7XG48bGluayB0eXBlPVwidGV4dC9jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgW2hyZWZdPVwiY3NzVXJsXCIgLz5cbn0gQGlmIChjc3NDdXN0b21VcmwpIHtcbjxsaW5rIHR5cGU9XCJ0ZXh0L2Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiBbaHJlZl09XCJjc3NDdXN0b21VcmxcIiAvPlxufVxuPGZkLXNoZWxsYmFyXG4gICAgW3NpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgW25nQ2xhc3NdPVwiZGV2aWNlU2l6ZVwiXG4gICAgcm91dGVGb3JtQ2hhbmdlXG4gICAgKHN0YXRlQ2hhbmdlZCk9XCJvblJvdXRlRm9ybVN0YXRlQ2hhbmdlKClcIlxuICAgIFtoYW5kbGVCb2R5Q2xpY2tdPVwidHJ1ZVwiXG4+XG4gICAgQGlmIChzaWRlTWVudVRlbXBsYXRlKSB7XG4gICAgPGZkLXNoZWxsYmFyLWFjdGlvblxuICAgICAgICBbZ2x5cGhdPVwiJ2FwcHMnXCJcbiAgICAgICAgW2xhYmVsXT1cIidRdWljayBBY2Nlc3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cIm5vdGlmaWNhdGlvbkNvdW50LnVucmVhZCA/PyAwXCJcbiAgICAgICAgW25vdGlmaWNhdGlvbkxhYmVsXT1cIidRdWljayBBY2Nlc3MnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2NhbGxiYWNrXT1cIm9uT3BlblF1aWNrQWNjZXNzXCJcbiAgICA+XG4gICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgfSBAaWYgKHNpZGVNZW51VGVtcGxhdGUpIHtcbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLXNoZWxsYmFyLXNpZGUtbmF2XG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGdseXBoPVwibWVudTJcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAyLjc1cmVtXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQoIWlzT3BlblF1aWNrQWNjZXNzKVwiXG4gICAgPjwvYnV0dG9uPlxuICAgIH0gQGlmIChsb2dvKSB7XG4gICAgPGZkLXNoZWxsYmFyLWxvZ28+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZEltYWdlXT1cIid1cmwoJyArIChsb2dvPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0dldFBpY3R1cmVGcm9tRmlsZUluZm8nOm51bGwpICsgJyknXCJcbiAgICAgICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtc2hlbGxiYXJfX2xvZ28gZmQtc2hlbGxiYXJfX2xvZ28tLWltYWdlLXJlcGxhY2VkXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJCYXJzYSBOb3ZpbiBSYXlcIlxuICAgICAgICA+PC9hPlxuICAgIDwvZmQtc2hlbGxiYXItbG9nbz5cbiAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlUHJvZHVjdE1lbnUgJiYgcHJvZHVjdE1lbnVJdGVtczEgJiYgcHJvZHVjdE1lbnVJdGVtczEubGVuZ3RoID4gMCkge1xuICAgIDxmZC1wcm9kdWN0LW1lbnUgW2NvbnRyb2xdPVwicHJvZHVjdE1lbnVDb250cm9sXCIgW2Nsb3NlUG9wb3Zlck9uU2VsZWN0XT1cInRydWVcIiBbaXRlbXNdPVwicHJvZHVjdE1lbnVJdGVtczFcIj5cbiAgICA8L2ZkLXByb2R1Y3QtbWVudT5cbiAgICB9XG4gICAgPGZkLXNoZWxsYmFyLXN1YnRpdGxlPiB7eyBzdWJ0aXRsZSB8IGJiYlRyYW5zbGF0ZSB9fXt7IHNob3dWZXJzaW9uID8gYXBwVmVyc2lvbiA6ICcnIH19PC9mZC1zaGVsbGJhci1zdWJ0aXRsZT5cbiAgICBAaWYgKCFoaWRlU2hlbGxiYXJBY3Rpb25zJiYgdXNlciAmJiAodXNlck1lbnU/Lmxlbmd0aCB8fCAhc2V0dGluZ3M/LkhpZGVMYW5ndWFnZSkpIHtcbiAgICA8ZmQtc2hlbGxiYXItYWN0aW9ucyBbdXNlcl09XCJ1c2VyXCIgW3VzZXJNZW51XT1cInVzZXJNZW51XCIgI2xhbmdSZWY+XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgPGZkLXNoZWxsYmFyLWFjdGlvblxuICAgICAgICAgICAgW2dseXBoXT1cImFjdGlvbi5JY29uXCJcbiAgICAgICAgICAgIFtjYWxsYmFja109XCJhY3Rpb24uQ2FsbGJhY2tcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImFjdGlvbi5MYWJlbFwiXG4gICAgICAgICAgICBub3RpZmljYXRpb25MYWJlbD1cImxvZ2luXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAgICAgICAgfSBAaWYgKGRldmljZVNpemUgPT09ICdzJyAmJiB1c2VyTG9nZ2VkSW4gJiYgIXNldHRpbmdzPy5IaWRlTm90aWZpY2F0aW9ucykge1xuICAgICAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgICAgICBbZ2x5cGhdPVwiJ2JlbGwnXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInTm90aWZpY2F0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cIm5vdGlmaWNhdGlvbkNvdW50LnVucmVhZCA/PyAwXCJcbiAgICAgICAgICAgIFtub3RpZmljYXRpb25MYWJlbF09XCInTm90aWZpY2F0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2NhbGxiYWNrXT1cIm9uQmVsbE5vdGlmaWNhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgIH0gQGlmICghc2V0dGluZ3M/LkhpZGVOb3RpZmljYXRpb25zICYmIHVzZXJMb2dnZWRJbikge1xuICAgICAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAgICAgWyhpc09wZW4pXT1cImlzT3Blbk5vdGlmaWNhdG9pblwiXG4gICAgICAgICAgICBbdHJpZ2dlcnNdPVwiW11cIlxuICAgICAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtub0Fycm93XT1cInRydWVcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIHRpdGxlPVwiTm90aWZpY2F0aW9uIFBvcG92ZXJcIlxuICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiXG4gICAgICAgICAgICAjcG9wb3ZlckNvbXBvbmVudFxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidiZWxsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTm90aWZpY2F0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtub3RpZmljYXRpb25Db3VudF09XCJub3RpZmljYXRpb25Db3VudC51bnJlYWRcIlxuICAgICAgICAgICAgICAgICAgICBbbm90aWZpY2F0aW9uTGFiZWxdPVwiJ05vdGlmaWNhdGlvbiBMYWJlbCdcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGJhY2tdPVwib25PcGVuTm90aWZpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgc3R5bGU9XCJtaW4td2lkdGg6IDMyMHB4OyBvdmVyZmxvdy14OiBhdXRvOyBib3gtc2hhZG93OiB2YXIoLS1zYXBDb250ZW50X1NoYWRvdzApXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdGlmaWNhdGlvbkdyb3VwVHBsOyBjb250ZXh0OiB7IG5vdGlmaWNhdGlvbkNvdW50OiBub3RpZmljYXRpb25Db3VudCB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlTGFuZ3VhZ2UgJiYgZGV2aWNlU2l6ZSAhPT0gJ3MnICYmIG11bHRpTGFuZ3VhZ2VzKSB7XG4gICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb24gW2dseXBoXT1cIid3b3JsZCdcIiBbbGFiZWxdPVwiJ2xhbmd1YWdlJ1wiIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIiAoY2FsbGJhY2spPVwiKG9uTGFuZ3VhZ2UpXCI+XG4gICAgICAgIDwvZmQtc2hlbGxiYXItYWN0aW9uPlxuICAgICAgICB9IEBpZiAoIXNldHRpbmdzPy5IaWRlTGFuZ3VhZ2UgJiYgZGV2aWNlU2l6ZSA9PT0gJ3MnICYmIG11bHRpTGFuZ3VhZ2VzKSB7IEBmb3IgKGN1bHR1cmUgb2YgY3VsdHVyZXMgfCBrZXl2YWx1ZTtcbiAgICAgICAgdHJhY2sgY3VsdHVyZSkge1xuICAgICAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgICAgICBbbGFiZWxdPVwiY3VsdHVyZS52YWx1ZVwiXG4gICAgICAgICAgICBbY2FsbGJhY2tdPVwib25MYW5ndWFnZVwiXG4gICAgICAgICAgICBjbGFzcz1cImN1bHR1cmUtYWJicml2YXRpb25cIlxuICAgICAgICAgICAgW2dseXBoXT1cImN1bHR1cmUua2V5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmbGFncydcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtc2hlbGxiYXItYWN0aW9uPlxuICAgICAgICB9IH0gQGlmIChwcm9kdWN0U3dpdGNoZXI/Lmxlbmd0aCkge1xuICAgICAgICA8ZmQtcHJvZHVjdC1zd2l0Y2g+XG4gICAgICAgICAgICA8ZmQtcHJvZHVjdC1zd2l0Y2gtYm9keSBbcHJvZHVjdHNdPVwicHJvZHVjdFN3aXRjaGVyXCIgW2ZvcmNlTGlzdE1vZGVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCI+XG4gICAgICAgICAgICA8L2ZkLXByb2R1Y3Qtc3dpdGNoLWJvZHk+XG4gICAgICAgIDwvZmQtcHJvZHVjdC1zd2l0Y2g+XG4gICAgICAgIH1cbiAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbnM+XG4gICAgfVxuPC9mZC1zaGVsbGJhcj5cbkBpZihzaG93RXh0cmFCdXR0b24pe1xuPGRpdlxuICAgIFtjbGFzcy5mZC1zaGVsbGJhci0teGxdPVwiaXNEZXNrdG9wXCJcbiAgICBbY2xhc3MuZmQtc2hlbGxiYXItLW1dPVwiaXNUYWJsZXRcIlxuICAgIFtjbGFzcy5mZC1zaGVsbGJhci0tc109XCJpc01vYmlsZVwiXG4gICAgY2xhc3M9XCJleHRyYS1idXR0b24td3JhcHBlclwiXG4gICAgW2NsYXNzLnNlcnZpY2UtZGVza109XCJpc1NlcnZpY2VEZXNrXCJcbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJidXR0b25cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbn1cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXZcbiAgICAqbmdJZj1cInNpZGVNZW51VGVtcGxhdGVcIlxuICAgIGNsYXNzPVwic2lkZW1lbnUtaCB0dy1maXhlZCB0dy1iZy13aGl0ZSB0dy10cmFuc2l0aW9uLWFsbCB0dy16LVsxMDBdIHR3LXNoYWRvdy0yeGwgdHctb3ZlcmZsb3ctYXV0b1wiXG4gICAgW2NsYXNzLnR3LXctc2NyZWVuXT1cImlzTW9iaWxlXCJcbiAgICBbY2xhc3MuLXR3LXJpZ2h0LWZ1bGxdPVwiaXNNb2JpbGVcIlxuICAgIFtjbGFzcy50dy13LTk2XT1cIiFpc01vYmlsZVwiXG4gICAgW2NsYXNzLi10dy1yaWdodC05Nl09XCIhaXNNb2JpbGVcIlxuICAgIFtjbGFzcy4hdHctcmlnaHQtMF09XCJpc09wZW5RdWlja0FjY2Vzc1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGVNZW51VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG5AaWYoaXNPcGVuUXVpY2tBY2Nlc3MpIHtcbjxkaXZcbiAgICBjbGFzcz1cInNpZGVtZW51LWggdHctZml4ZWQgdHctcmlnaHQtMCB0dy1iZy1zbGF0ZS04MDAvWy41XSB0dy16LVs5MF0gdHctdy1zY3JlZW4gdHctYmFja2Ryb3AtYmx1ci1zbVwiXG4gICAgKGNsaWNrKT1cImlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZC5lbWl0KGZhbHNlKVwiXG4+PC9kaXY+XG59XG48ZmQtbWVudSAjbWVudT5cbiAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgQGZvciAoY3VsdHVyZSBvZiBjdWx0dXJlcyB8IGtleXZhbHVlOyB0cmFjayBjdWx0dXJlKSB7XG4gICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uQ3VsdHVyZUNoYW5nZShjdWx0dXJlLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgd2lkdGg9XCIxNHB4XCIgaGVpZ2h0PVwiMTJweFwiIFtzcmNdPVwiJy9hc3NldHMvZmxhZ3MvJyArIGN1bHR1cmUua2V5ICsgJy5wbmcnXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdWx0dXJlLWFiYnJpdmF0aW9uXCIgW25nQ2xhc3NdPVwiY3VsdHVyZS5rZXlcIj4ge3sgY3VsdHVyZS5rZXkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgPC91bD5cbjwvZmQtbWVudT5cbjxuZy10ZW1wbGF0ZSAjbm90aWZpY2F0aW9uR3JvdXBUcGwgbGV0LW5vdGlmaWNhdGlvbkNvdW50PVwibm90aWZpY2F0aW9uQ291bnRcIj5cbiAgICBAaWYgKCFub3RpZmNhdGlvbkxvYWRlZCAmJiBub3RpZmljYXRpb25Mb2FkaW5nID09PSB0cnVlKSB7XG4gICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxMDBweFwiPlxuICAgICAgICA8YnN1LW1hc2sgc2l6ZT1cInNcIj48L2JzdS1tYXNrPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8YnQtbm90aWZpY2F0aW9uLWdyb3VwXG4gICAgICAgIFtub3RpZmljYXRpb25zXT1cIm5vdGlmaWNhdGlvbnNcIlxuICAgICAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwibm90aWZpY2F0aW9uQ291bnRcIlxuICAgICAgICBbbG9hZGluZ109XCJub3RpZmljYXRpb25Mb2FkaW5nID09PSB0cnVlXCJcbiAgICAgICAgKHZpZXdlZCk9XCJvbk5vdGlmaWNhdGlvbkl0ZW1WaWV3ZWQoJGV2ZW50KVwiXG4gICAgICAgIChyZW1vdmUpPVwib25SZW1vdmVOb3RpZmljYXRpb25zKCRldmVudClcIlxuICAgICAgICAoc2hvd0V2ZW50KT1cInBvcG92ZXJDb21wb25lbnQuY2xvc2UoKTsgb25TaG93Tm90aWZpY2F0aW9uKCRldmVudClcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwicG9wb3ZlckNvbXBvbmVudC5jbG9zZSgpOyBvbk5vdGlmaWNhdGlvbkFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgKGxvYWRNb3JlKT1cIm9uTm90aWZpY2F0aW9uTG9hZE1vcmUoKVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgID48L2J0LW5vdGlmaWNhdGlvbi1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjbm90aWZpY2F0aW9uc0RpYWxvZz5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTEwXCIgZmQtdGl0bGU+e3sgJ05vdGlmaWNhdGlvbicgfCBiYmJUcmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5IGNsYXNzPVwibW9iaWxlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub3RpZmljYXRpb25Hcm91cFRwbDsgY29udGV4dDogeyBub3RpZmljYXRpb25Db3VudDogbm90aWZpY2F0aW9uQ291bnQgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -56,11 +56,11 @@ export class TilesViewerGroupComponent extends BaseComponent {
|
|
|
56
56
|
this.resetGroup.emit(appTileGroup);
|
|
57
57
|
}
|
|
58
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TilesViewerGroupComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: { appTileGroup: "appTileGroup", stackContent: "stackContent", edit: "edit", rtl: "rtl", isAppTileSubGroup: "isAppTileSubGroup", deviceSize: "deviceSize" }, outputs: { tilesDropped: "tilesDropped", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel\n [fixed]=\"true\"\n [attr.editHome]=\"edit\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || !stackContent\"\n [class.empty-tiles-group]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\n>\n @if (edit || stackContent || isAppTileSubGroup) {\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h5>\n </fd-layout-panel-head>\n @if (edit) {\n <fd-layout-panel-actions class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\n } @if (!appTileGroup.Predefined) {\n <button\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n }\n </fd-toolbar>\n </fd-layout-panel-actions>\n }\n </fd-layout-panel-header>\n }\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\n <h5 fd-title></h5>\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\n <div\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [setToStorage]=\"true\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [deviceSize]=\"deviceSize\"\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n } @if (edit) {\n <fd-tile class=\"add-tile\" [routerLink]=\"['/home/appfinder']\">\n <div style=\"margin: 0\">\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n }\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [deviceSize]=\"deviceSize\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n@for (appTileSubGroup of appTileGroup.$Children; track appTileSubGroup) {\n<bt-tiles-viewer-group\n [class]=\"deviceSize\"\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n></bt-tiles-viewer-group>\n}\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none;border-radius:0!important}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:1rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap:3px;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper{display:grid;grid-template-columns:154px 154px;gap:1rem}fd-layout-panel-body.small-size .tile-wrapper .isdouble{grid-column-start:1;grid-column-end:3}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i7.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i7.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i7.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i7.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i7.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "component", type: i10.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "component", type: i11.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i11.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i12.ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit", "deviceSize"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "directive", type: i13.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i14.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: { appTileGroup: "appTileGroup", stackContent: "stackContent", edit: "edit", rtl: "rtl", isAppTileSubGroup: "isAppTileSubGroup", deviceSize: "deviceSize" }, outputs: { tilesDropped: "tilesDropped", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel\n [fixed]=\"true\"\n [attr.editHome]=\"edit\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || !stackContent\"\n [class.empty-tiles-group]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\n>\n @if (edit || stackContent || isAppTileSubGroup) {\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h5>\n </fd-layout-panel-head>\n @if (edit) {\n <fd-layout-panel-actions class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\n } @if (!appTileGroup.Predefined) {\n <button\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n }\n </fd-toolbar>\n </fd-layout-panel-actions>\n }\n </fd-layout-panel-header>\n }\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\n <h5 fd-title></h5>\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\n <div\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [setToStorage]=\"true\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [deviceSize]=\"deviceSize\"\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n } @if (edit) {\n <fd-tile class=\"add-tile\" [routerLink]=\"['/home/appfinder']\">\n <div style=\"margin: 0\">\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n }\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [deviceSize]=\"deviceSize\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n@for (appTileSubGroup of appTileGroup.$Children; track appTileSubGroup) {\n<bt-tiles-viewer-group\n [class]=\"deviceSize\"\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n></bt-tiles-viewer-group>\n}\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none;border-radius:0!important}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:1rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper{display:grid;grid-template-columns:154px 154px;gap:1rem}fd-layout-panel-body.small-size .tile-wrapper .isdouble{grid-column-start:1;grid-column-end:3}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i7.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i7.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i7.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i7.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i7.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i7.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "component", type: i10.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "component", type: i11.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i11.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i12.ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit", "deviceSize"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "directive", type: i13.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i14.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
60
60
|
}
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TilesViewerGroupComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
|
-
args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel\n [fixed]=\"true\"\n [attr.editHome]=\"edit\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || !stackContent\"\n [class.empty-tiles-group]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\n>\n @if (edit || stackContent || isAppTileSubGroup) {\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h5>\n </fd-layout-panel-head>\n @if (edit) {\n <fd-layout-panel-actions class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\n } @if (!appTileGroup.Predefined) {\n <button\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n }\n </fd-toolbar>\n </fd-layout-panel-actions>\n }\n </fd-layout-panel-header>\n }\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\n <h5 fd-title></h5>\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\n <div\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [setToStorage]=\"true\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [deviceSize]=\"deviceSize\"\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n } @if (edit) {\n <fd-tile class=\"add-tile\" [routerLink]=\"['/home/appfinder']\">\n <div style=\"margin: 0\">\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n }\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [deviceSize]=\"deviceSize\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n@for (appTileSubGroup of appTileGroup.$Children; track appTileSubGroup) {\n<bt-tiles-viewer-group\n [class]=\"deviceSize\"\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n></bt-tiles-viewer-group>\n}\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none;border-radius:0!important}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:1rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap
|
|
63
|
+
args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel\n [fixed]=\"true\"\n [attr.editHome]=\"edit\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || !stackContent\"\n [class.empty-tiles-group]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\n>\n @if (edit || stackContent || isAppTileSubGroup) {\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h5>\n </fd-layout-panel-head>\n @if (edit) {\n <fd-layout-panel-actions class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\n } @if (!appTileGroup.Predefined) {\n <button\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n }\n </fd-toolbar>\n </fd-layout-panel-actions>\n }\n </fd-layout-panel-header>\n }\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\n <h5 fd-title></h5>\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\n <div\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [setToStorage]=\"true\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [deviceSize]=\"deviceSize\"\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n } @if (edit) {\n <fd-tile class=\"add-tile\" [routerLink]=\"['/home/appfinder']\">\n <div style=\"margin: 0\">\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n }\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [deviceSize]=\"deviceSize\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n@for (appTileSubGroup of appTileGroup.$Children; track appTileSubGroup) {\n<bt-tiles-viewer-group\n [class]=\"deviceSize\"\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n></bt-tiles-viewer-group>\n}\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none;border-radius:0!important}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:1rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper{display:grid;grid-template-columns:154px 154px;gap:1rem}fd-layout-panel-body.small-size .tile-wrapper .isdouble{grid-column-start:1;grid-column-end:3}\n"] }]
|
|
64
64
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { appTileGroup: [{
|
|
65
65
|
type: Input
|
|
66
66
|
}], stackContent: [{
|
|
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
86
86
|
}], deleteGroup: [{
|
|
87
87
|
type: Output
|
|
88
88
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvdGlsZXMtdmlld2VyLWdyb3VwL3RpbGVzLXZpZXdlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci1ncm91cC90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUWpHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBbUJ4RCxZQUFzQixHQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVgzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0sscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDM0QsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN0RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVoRSxvQkFBZSxHQUFrQixJQUFJLENBQUM7SUFHdEMsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztZQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQ0YsWUFBaUMsRUFDakMsS0FBcUU7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBNEI7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsT0FBNEI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLFlBQWlDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUFpQztRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQWlDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBeERRLHlCQUF5QjtrR0FBekIseUJBQXlCLHFjQ1h0Qyx3MkpBd0hBLGswSkQ3R2EseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTsrRUFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFJRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnQtdGlsZXMtdmlld2VyLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgc3RhY2tDb250ZW50OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzQXBwVGlsZVN1Ykdyb3VwOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG5cclxuICAgIEBPdXRwdXQoKSB0aWxlc0Ryb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICBhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICAgICAgZXZlbnQ6IENka0RyYWdEcm9wPHsgaXNUaWxlOiBib29sZWFuOyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0+O1xyXG4gICAgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBoaWRlQXBwVGlsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIHJlbmFtZUFwcFRpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSB0b2dnbGVHcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSByZXNldEdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG5cclxuICAgIG1hcmdpblJpZ2h0VGlsZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICUgMTU0O1xyXG4gICAgICAgICAgICB0aGlzLm1hcmdpblJpZ2h0VGlsZSA9IHQgLyAzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRyb3AoXHJcbiAgICAgICAgYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgICAgIGV2ZW50OiBDZGtEcmFnRHJvcDx7IGlzVGlsZTogYm9vbGVhbjsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB9PlxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVkaXQgfHwgYXBwVGlsZUdyb3VwLkxvY2tlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGlsZXNEcm9wcGVkLmVtaXQoeyBhcHBUaWxlR3JvdXAsIGV2ZW50IH0pO1xyXG4gICAgfVxyXG4gICAgb25BcHBUaWxlSGlkZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGVBcHBUaWxlQ2xpY2suZW1pdChhcHBUaWxlKTtcclxuICAgIH1cclxuICAgIG9uQXBwVGlsZVJlbmFtZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmFtZUFwcFRpbGVDbGljay5lbWl0KGFwcFRpbGUpO1xyXG4gICAgfVxyXG4gICAgb25EZWxldGUoYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVHcm91cC5lbWl0KGFwcFRpbGVHcm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub2dnbGVTaG93SGlkZShhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZUdyb3VwLmVtaXQoYXBwVGlsZUdyb3VwKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlc2V0KGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVzZXRHcm91cC5lbWl0KGFwcFRpbGVHcm91cCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWxheW91dC1wYW5lbFxuICAgIFtmaXhlZF09XCJ0cnVlXCJcbiAgICBbYXR0ci5lZGl0SG9tZV09XCJlZGl0XCJcbiAgICBjZGtEcmFnXG4gICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdCB8fCAhc3RhY2tDb250ZW50XCJcbiAgICBbY2xhc3MuZW1wdHktdGlsZXMtZ3JvdXBdPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaWxlcy5sZW5ndGggJiYgYXBwVGlsZUdyb3VwLiRUaWxlc0xvYWRlZFwiXG4+XG4gICAgQGlmIChlZGl0IHx8IHN0YWNrQ29udGVudCB8fCBpc0FwcFRpbGVTdWJHcm91cCkge1xuICAgIDxmZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgICAgICA8aDUgZmQtbGF5b3V0LXBhbmVsLXRpdGxlPnt7IGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaXRsZSB9fTwvaDU+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgIEBpZiAoZWRpdCkge1xuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnMgY2xhc3M9XCJncm91cC1idG5zXCI+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwiZmFsc2VcIiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JWaXNpYmxlID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVNob3dIaWRlKGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcFRpbGVHcm91cC5QcmVkZWZpbmVkICYmIGFwcFRpbGVHcm91cC4kVGlsZVNldHRpbmdDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2xhYmVsXT1cIidSZWZyZXNoJyB8IGJiYlRyYW5zbGF0ZVwiIChjbGljayk9XCJvblJlc2V0KGFwcFRpbGVHcm91cClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9IEBpZiAoIWFwcFRpbGVHcm91cC5QcmVkZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCInbmVnYXRpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnM+XG4gICAgICAgIH1cbiAgICA8L2ZkLWxheW91dC1wYW5lbC1oZWFkZXI+XG4gICAgfVxuICAgIDxmZC1sYXlvdXQtcGFuZWwtYm9keSBbYmxlZWRdPVwiIXN0YWNrQ29udGVudFwiIFtjbGFzcy5zbWFsbC1zaXplXT1cImRldmljZVNpemUgPT09ICdzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRpbGUtd3JhcHBlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHJ0bDogcnRsLCBsdHI6ICFydGwsIHM6IGRldmljZVNpemUgPT09ICdzJyB9XCJcbiAgICAgICAgICAgIGZkLXBhbmVsLWNvbnRlbnRcbiAgICAgICAgICAgICN0aWxlcz1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcChhcHBUaWxlR3JvdXAsICRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiYWN0aW9uTGlua3NcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ7XG4gICAgICAgICAgICAgICAgaXNUaWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXMgfHwgW11cbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFlZGl0KSB7IEBpZiAoIWFwcFRpbGVHcm91cC4kVGlsZXNMb2FkZWQpIHtcbiAgICAgICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCI+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXMubGVuZ3RoICYmIGFwcFRpbGVHcm91cC4kVGlsZXNMb2FkZWQpIHtcbiAgICAgICAgICAgIDxoNSBmZC10aXRsZT48L2g1PlxuICAgICAgICAgICAgfSB9IEBmb3IgKGFwcFRpbGUgb2YgYXBwVGlsZUdyb3VwPy5uYXZpZ2F0b3JUaWxlczsgdHJhY2sgYXBwVGlsZS5JZDsgbGV0IGsgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbY2xhc3MuZWRpdC1ob21lXT1cImVkaXRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pc2RvdWJsZV09XCJhcHBUaWxlLkNvbXBvbmVudD8uU2V0dGluZ3M/LlRpbGVTZXR0aW5nPy5Jc0RvdWJsZVwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXQgfHwgYXBwVGlsZUdyb3VwLkxvY2tlZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNDb21tYW5kXT1cImFwcFRpbGUuRHluYW1pY0NvbW1hbmRcIlxuICAgICAgICAgICAgICAgICAgICBbc2V0VG9TdG9yYWdlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbZW5hYmxlQ29tbWFuZF09XCIhZWRpdCAmJiBhcHBUaWxlLkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgIHRpbGVSZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiYXBwVGlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIlxuICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImFwcFRpbGUuQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGhpZGVDbGljayk9XCJvbkFwcFRpbGVIaWRlQ2xpY2soYXBwVGlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAocmVuYW1lQ2xpY2spPVwib25BcHBUaWxlUmVuYW1lQ2xpY2soYXBwVGlsZSlcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGlmIChlZGl0KSB7XG4gICAgICAgICAgICA8ZmQtdGlsZSBjbGFzcz1cImFkZC10aWxlXCIgW3JvdXRlckxpbmtdPVwiWycvaG9tZS9hcHBmaW5kZXInXVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW46IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJhZGRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLXRpbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XG48L2ZkLWxheW91dC1wYW5lbD5cblxuPGJ0LWFjdGlvbnMtbGlua1xuICAgIFtjbGFzcy5hY3Rpb25zLWxpbmstZWRpdC1ob21lXT1cImVkaXRcIlxuICAgIFthY3Rpb25zTGlua109XCJhcHBUaWxlR3JvdXAubmF2aWdhdG9yQWN0aW9uTGlua3NcIlxuICAgIFtlZGl0XT1cImVkaXRcIlxuICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cImVkaXQgPyAnNHJlbScgOiAnYXV0bydcIlxuICAgIGNka0Ryb3BMaXN0XG4gICAgI2FjdGlvbkxpbmtzPVwiY2RrRHJvcExpc3RcIlxuICAgIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJ0aWxlc1wiXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoYXBwVGlsZUdyb3VwLCAkZXZlbnQpXCJcbiAgICBbY2RrRHJvcExpc3REYXRhXT1cIntcbiAgICAgICAgaXNUaWxlOiBmYWxzZSxcbiAgICAgICAgaXRlbXM6IGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JBY3Rpb25MaW5rcyB8fCBbXVxuICAgIH1cIlxuPlxuPC9idC1hY3Rpb25zLWxpbms+XG5AZm9yIChhcHBUaWxlU3ViR3JvdXAgb2YgYXBwVGlsZUdyb3VwLiRDaGlsZHJlbjsgdHJhY2sgYXBwVGlsZVN1Ykdyb3VwKSB7XG48YnQtdGlsZXMtdmlld2VyLWdyb3VwXG4gICAgW2NsYXNzXT1cImRldmljZVNpemVcIlxuICAgIFthcHBUaWxlR3JvdXBdPVwiYXBwVGlsZVN1Ykdyb3VwXCJcbiAgICBbZWRpdF09XCJlZGl0XCJcbiAgICBbcnRsXT1cInJ0bFwiXG4gICAgW3N0YWNrQ29udGVudF09XCJzdGFja0NvbnRlbnRcIlxuICAgIFtpc0FwcFRpbGVTdWJHcm91cF09XCJ0cnVlXCJcbiAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAodGlsZXNEcm9wcGVkKT1cInRpbGVzRHJvcHBlZC5lbWl0KCRldmVudClcIlxuICAgIChyZW5hbWVBcHBUaWxlQ2xpY2spPVwicmVuYW1lQXBwVGlsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgKGhpZGVBcHBUaWxlQ2xpY2spPVwiaGlkZUFwcFRpbGVDbGljay5lbWl0KCRldmVudClcIlxuICAgIChyZXNldEdyb3VwKT1cInJlc2V0R3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAoZGVsZXRlR3JvdXApPVwiZGVsZXRlR3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAodG9nZ2xlR3JvdXApPVwidG9nZ2xlR3JvdXAuZW1pdCgkZXZlbnQpXCJcbj48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cbn1cbiJdfQ==
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvdGlsZXMtdmlld2VyLWdyb3VwL3RpbGVzLXZpZXdlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci1ncm91cC90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUWpHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBbUJ4RCxZQUFzQixHQUFlO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVgzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0sscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDM0QsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN0RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVoRSxvQkFBZSxHQUFrQixJQUFJLENBQUM7SUFHdEMsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztZQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQ0YsWUFBaUMsRUFDakMsS0FBcUU7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBNEI7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsT0FBNEI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLFlBQWlDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUFpQztRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQWlDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBeERRLHlCQUF5QjtrR0FBekIseUJBQXlCLHFjQ1h0Qyx3MkpBd0hBLG8wSkQ3R2EseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTsrRUFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFJRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnQtdGlsZXMtdmlld2VyLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgc3RhY2tDb250ZW50OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzQXBwVGlsZVN1Ykdyb3VwOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG5cclxuICAgIEBPdXRwdXQoKSB0aWxlc0Ryb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICBhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICAgICAgZXZlbnQ6IENka0RyYWdEcm9wPHsgaXNUaWxlOiBib29sZWFuOyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0+O1xyXG4gICAgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBoaWRlQXBwVGlsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIHJlbmFtZUFwcFRpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSB0b2dnbGVHcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSByZXNldEdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG5cclxuICAgIG1hcmdpblJpZ2h0VGlsZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICUgMTU0O1xyXG4gICAgICAgICAgICB0aGlzLm1hcmdpblJpZ2h0VGlsZSA9IHQgLyAzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRyb3AoXHJcbiAgICAgICAgYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgICAgIGV2ZW50OiBDZGtEcmFnRHJvcDx7IGlzVGlsZTogYm9vbGVhbjsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB9PlxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVkaXQgfHwgYXBwVGlsZUdyb3VwLkxvY2tlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGlsZXNEcm9wcGVkLmVtaXQoeyBhcHBUaWxlR3JvdXAsIGV2ZW50IH0pO1xyXG4gICAgfVxyXG4gICAgb25BcHBUaWxlSGlkZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGVBcHBUaWxlQ2xpY2suZW1pdChhcHBUaWxlKTtcclxuICAgIH1cclxuICAgIG9uQXBwVGlsZVJlbmFtZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmFtZUFwcFRpbGVDbGljay5lbWl0KGFwcFRpbGUpO1xyXG4gICAgfVxyXG4gICAgb25EZWxldGUoYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVHcm91cC5lbWl0KGFwcFRpbGVHcm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub2dnbGVTaG93SGlkZShhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZUdyb3VwLmVtaXQoYXBwVGlsZUdyb3VwKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlc2V0KGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVzZXRHcm91cC5lbWl0KGFwcFRpbGVHcm91cCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLWxheW91dC1wYW5lbFxuICAgIFtmaXhlZF09XCJ0cnVlXCJcbiAgICBbYXR0ci5lZGl0SG9tZV09XCJlZGl0XCJcbiAgICBjZGtEcmFnXG4gICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdCB8fCAhc3RhY2tDb250ZW50XCJcbiAgICBbY2xhc3MuZW1wdHktdGlsZXMtZ3JvdXBdPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaWxlcy5sZW5ndGggJiYgYXBwVGlsZUdyb3VwLiRUaWxlc0xvYWRlZFwiXG4+XG4gICAgQGlmIChlZGl0IHx8IHN0YWNrQ29udGVudCB8fCBpc0FwcFRpbGVTdWJHcm91cCkge1xuICAgIDxmZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgICAgICA8aDUgZmQtbGF5b3V0LXBhbmVsLXRpdGxlPnt7IGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaXRsZSB9fTwvaDU+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgIEBpZiAoZWRpdCkge1xuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnMgY2xhc3M9XCJncm91cC1idG5zXCI+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwiZmFsc2VcIiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JWaXNpYmxlID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVNob3dIaWRlKGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcFRpbGVHcm91cC5QcmVkZWZpbmVkICYmIGFwcFRpbGVHcm91cC4kVGlsZVNldHRpbmdDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gW2xhYmVsXT1cIidSZWZyZXNoJyB8IGJiYlRyYW5zbGF0ZVwiIChjbGljayk9XCJvblJlc2V0KGFwcFRpbGVHcm91cClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9IEBpZiAoIWFwcFRpbGVHcm91cC5QcmVkZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCInbmVnYXRpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnM+XG4gICAgICAgIH1cbiAgICA8L2ZkLWxheW91dC1wYW5lbC1oZWFkZXI+XG4gICAgfVxuICAgIDxmZC1sYXlvdXQtcGFuZWwtYm9keSBbYmxlZWRdPVwiIXN0YWNrQ29udGVudFwiIFtjbGFzcy5zbWFsbC1zaXplXT1cImRldmljZVNpemUgPT09ICdzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRpbGUtd3JhcHBlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHJ0bDogcnRsLCBsdHI6ICFydGwsIHM6IGRldmljZVNpemUgPT09ICdzJyB9XCJcbiAgICAgICAgICAgIGZkLXBhbmVsLWNvbnRlbnRcbiAgICAgICAgICAgICN0aWxlcz1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcChhcHBUaWxlR3JvdXAsICRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiYWN0aW9uTGlua3NcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ7XG4gICAgICAgICAgICAgICAgaXNUaWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXMgfHwgW11cbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFlZGl0KSB7IEBpZiAoIWFwcFRpbGVHcm91cC4kVGlsZXNMb2FkZWQpIHtcbiAgICAgICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCI+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXMubGVuZ3RoICYmIGFwcFRpbGVHcm91cC4kVGlsZXNMb2FkZWQpIHtcbiAgICAgICAgICAgIDxoNSBmZC10aXRsZT48L2g1PlxuICAgICAgICAgICAgfSB9IEBmb3IgKGFwcFRpbGUgb2YgYXBwVGlsZUdyb3VwPy5uYXZpZ2F0b3JUaWxlczsgdHJhY2sgYXBwVGlsZS5JZDsgbGV0IGsgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbY2xhc3MuZWRpdC1ob21lXT1cImVkaXRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pc2RvdWJsZV09XCJhcHBUaWxlLkNvbXBvbmVudD8uU2V0dGluZ3M/LlRpbGVTZXR0aW5nPy5Jc0RvdWJsZVwiXG4gICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXQgfHwgYXBwVGlsZUdyb3VwLkxvY2tlZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNDb21tYW5kXT1cImFwcFRpbGUuRHluYW1pY0NvbW1hbmRcIlxuICAgICAgICAgICAgICAgICAgICBbc2V0VG9TdG9yYWdlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbZW5hYmxlQ29tbWFuZF09XCIhZWRpdCAmJiBhcHBUaWxlLkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgIHRpbGVSZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiYXBwVGlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIlxuICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImFwcFRpbGUuQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGhpZGVDbGljayk9XCJvbkFwcFRpbGVIaWRlQ2xpY2soYXBwVGlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAocmVuYW1lQ2xpY2spPVwib25BcHBUaWxlUmVuYW1lQ2xpY2soYXBwVGlsZSlcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGlmIChlZGl0KSB7XG4gICAgICAgICAgICA8ZmQtdGlsZSBjbGFzcz1cImFkZC10aWxlXCIgW3JvdXRlckxpbmtdPVwiWycvaG9tZS9hcHBmaW5kZXInXVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW46IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJhZGRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLXRpbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XG48L2ZkLWxheW91dC1wYW5lbD5cblxuPGJ0LWFjdGlvbnMtbGlua1xuICAgIFtjbGFzcy5hY3Rpb25zLWxpbmstZWRpdC1ob21lXT1cImVkaXRcIlxuICAgIFthY3Rpb25zTGlua109XCJhcHBUaWxlR3JvdXAubmF2aWdhdG9yQWN0aW9uTGlua3NcIlxuICAgIFtlZGl0XT1cImVkaXRcIlxuICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cImVkaXQgPyAnNHJlbScgOiAnYXV0bydcIlxuICAgIGNka0Ryb3BMaXN0XG4gICAgI2FjdGlvbkxpbmtzPVwiY2RrRHJvcExpc3RcIlxuICAgIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJ0aWxlc1wiXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoYXBwVGlsZUdyb3VwLCAkZXZlbnQpXCJcbiAgICBbY2RrRHJvcExpc3REYXRhXT1cIntcbiAgICAgICAgaXNUaWxlOiBmYWxzZSxcbiAgICAgICAgaXRlbXM6IGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JBY3Rpb25MaW5rcyB8fCBbXVxuICAgIH1cIlxuPlxuPC9idC1hY3Rpb25zLWxpbms+XG5AZm9yIChhcHBUaWxlU3ViR3JvdXAgb2YgYXBwVGlsZUdyb3VwLiRDaGlsZHJlbjsgdHJhY2sgYXBwVGlsZVN1Ykdyb3VwKSB7XG48YnQtdGlsZXMtdmlld2VyLWdyb3VwXG4gICAgW2NsYXNzXT1cImRldmljZVNpemVcIlxuICAgIFthcHBUaWxlR3JvdXBdPVwiYXBwVGlsZVN1Ykdyb3VwXCJcbiAgICBbZWRpdF09XCJlZGl0XCJcbiAgICBbcnRsXT1cInJ0bFwiXG4gICAgW3N0YWNrQ29udGVudF09XCJzdGFja0NvbnRlbnRcIlxuICAgIFtpc0FwcFRpbGVTdWJHcm91cF09XCJ0cnVlXCJcbiAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAodGlsZXNEcm9wcGVkKT1cInRpbGVzRHJvcHBlZC5lbWl0KCRldmVudClcIlxuICAgIChyZW5hbWVBcHBUaWxlQ2xpY2spPVwicmVuYW1lQXBwVGlsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgKGhpZGVBcHBUaWxlQ2xpY2spPVwiaGlkZUFwcFRpbGVDbGljay5lbWl0KCRldmVudClcIlxuICAgIChyZXNldEdyb3VwKT1cInJlc2V0R3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAoZGVsZXRlR3JvdXApPVwiZGVsZXRlR3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAodG9nZ2xlR3JvdXApPVwidG9nZ2xlR3JvdXAuZW1pdCgkZXZlbnQpXCJcbj48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cbn1cbiJdfQ==
|