barsa-tiles 1.0.456 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/barsa-tiles.mjs +4 -4
- package/esm2022/lib/action-item/action-item.component.mjs +17 -0
- package/{esm2020 → esm2022}/lib/action-links.pipe.mjs +16 -16
- package/esm2022/lib/actions-link/actions-link.component.mjs +41 -0
- package/esm2022/lib/app-finder/app-finder.component.mjs +52 -0
- package/esm2022/lib/app-finder-app-list/app-finder-app-list.component.mjs +39 -0
- package/esm2022/lib/app-finder-group/app-finder-group.component.mjs +41 -0
- package/esm2022/lib/app-finder.service.mjs +121 -0
- package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +183 -0
- package/esm2022/lib/barsa-tiles.module.mjs +225 -0
- package/esm2022/lib/change-app-tile/change-app-tile.component.mjs +46 -0
- package/esm2022/lib/create-app-group/create-app-group.component.mjs +43 -0
- package/esm2022/lib/directives/emptylist.directive.mjs +36 -0
- package/esm2022/lib/feed-tile/feed-tile.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/footer-edit-tile/footer-edit-tile.component.mjs +13 -13
- package/esm2022/lib/footer-tile/footer-tile.component.mjs +27 -0
- package/esm2022/lib/form-app-finder/form-app-finder.component.mjs +95 -0
- package/esm2022/lib/form-tile/form-tile.component.mjs +34 -0
- package/esm2022/lib/logo-tile/logo-tile.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +40 -40
- package/{esm2020 → esm2022}/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +29 -29
- package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +26 -0
- package/{esm2020 → esm2022}/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +20 -20
- package/{esm2020 → esm2022}/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +27 -27
- package/{esm2020 → esm2022}/lib/models/app-tile-footer-section.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/app-tile-footer.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/app-tile-group-pin.mjs +1 -1
- package/esm2022/lib/models/base-bt-tile-component.mjs +26 -0
- package/{esm2020 → esm2022}/lib/models/base-tile-component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/models/base-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/feed-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/index.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/logo-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/micro-tile-chart-bullet-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/news-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/numeric-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/profile-tile-setting.mjs +1 -1
- package/esm2022/lib/models/tile-setting.mjs +2 -0
- package/{esm2020 → esm2022}/lib/models/user-portal-settings.mjs +1 -1
- package/esm2022/lib/news-tile/news-tile.component.mjs +53 -0
- package/esm2022/lib/notification-group/notification-group.component.mjs +116 -0
- package/esm2022/lib/notification-group-header/notification-group-header.component.mjs +38 -0
- package/esm2022/lib/numeric-tile/numeric-tile.component.mjs +64 -0
- package/esm2022/lib/pin-tile/pin-tile.component.mjs +110 -0
- package/esm2022/lib/pipes/group-tiles.pipe.mjs +31 -0
- package/{esm2020 → esm2022}/lib/pipes/home-group.pipe.mjs +17 -17
- package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +28 -0
- package/esm2022/lib/pipes/tile-prop.pipe.mjs +32 -0
- package/esm2022/lib/popover-app-finder/filter-apps-grouped.pipe.mjs +36 -0
- package/esm2022/lib/popover-app-finder/popover-app-finder.component.mjs +112 -0
- package/esm2022/lib/profile-tile/profile-tile.component.mjs +25 -0
- package/esm2022/lib/shellbar/shellbar.component.mjs +201 -0
- package/esm2022/lib/simple-tile/simple-tile.component.mjs +22 -0
- package/esm2022/lib/tile/tile.component.mjs +70 -0
- package/esm2022/lib/tile-renderer.directive.mjs +70 -0
- package/esm2022/lib/tile-style.directive.mjs +29 -0
- package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +167 -0
- package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +164 -0
- package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +88 -0
- package/esm2022/lib/tiles-viewer.service.mjs +130 -0
- package/esm2022/lib/tiles.service.mjs +589 -0
- package/{esm2020 → esm2022}/public-api.mjs +46 -45
- package/fesm2022/barsa-tiles.mjs +3179 -0
- package/fesm2022/barsa-tiles.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action-item/action-item.component.d.ts +6 -6
- package/lib/action-links.pipe.d.ts +7 -7
- package/lib/actions-link/actions-link.component.d.ts +17 -17
- package/lib/app-finder/app-finder.component.d.ts +24 -24
- package/lib/app-finder-app-list/app-finder-app-list.component.d.ts +20 -20
- package/lib/app-finder-group/app-finder-group.component.d.ts +14 -14
- package/lib/app-finder.service.d.ts +33 -33
- package/lib/barsa-shellbar/barsa-shellbar.component.d.ts +104 -97
- package/lib/barsa-tiles.module.d.ts +91 -86
- package/lib/change-app-tile/change-app-tile.component.d.ts +20 -20
- package/lib/create-app-group/create-app-group.component.d.ts +19 -19
- package/lib/directives/emptylist.directive.d.ts +14 -14
- package/lib/feed-tile/feed-tile.component.d.ts +11 -11
- package/lib/footer-edit-tile/footer-edit-tile.component.d.ts +6 -6
- package/lib/footer-tile/footer-tile.component.d.ts +11 -11
- package/lib/form-app-finder/form-app-finder.component.d.ts +38 -38
- package/lib/form-tile/form-tile.component.d.ts +24 -24
- package/lib/logo-tile/logo-tile.component.d.ts +7 -7
- package/lib/micro-tile-chart-area/micro-tile-chart-area.component.d.ts +8 -8
- package/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.d.ts +12 -12
- package/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.d.ts +16 -16
- package/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.d.ts +7 -7
- package/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.d.ts +8 -8
- package/lib/micro-tile-chart-line/micro-tile-chart-line.component.d.ts +8 -8
- package/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.d.ts +8 -8
- package/lib/models/app-tile-footer-section.d.ts +6 -6
- package/lib/models/app-tile-footer.d.ts +8 -8
- package/lib/models/app-tile-group-pin.d.ts +5 -5
- package/lib/models/base-bt-tile-component.d.ts +9 -9
- package/lib/models/base-tile-component.d.ts +26 -26
- package/lib/models/base-tile-setting.d.ts +5 -5
- package/lib/models/feed-tile-setting.d.ts +7 -7
- package/lib/models/index.d.ts +13 -13
- package/lib/models/logo-tile-setting.d.ts +6 -6
- package/lib/models/micro-tile-chart-bullet-setting.d.ts +10 -10
- package/lib/models/news-tile-setting.d.ts +4 -4
- package/lib/models/numeric-tile-setting.d.ts +9 -9
- package/lib/models/profile-tile-setting.d.ts +7 -7
- package/lib/models/tile-setting.d.ts +10 -10
- package/lib/models/user-portal-settings.d.ts +9 -9
- package/lib/news-tile/news-tile.component.d.ts +19 -19
- package/lib/notification-group/notification-group.component.d.ts +54 -55
- package/lib/notification-group-header/notification-group-header.component.d.ts +15 -15
- package/lib/numeric-tile/numeric-tile.component.d.ts +16 -12
- package/lib/pin-tile/pin-tile.component.d.ts +30 -30
- package/lib/pipes/group-tiles.pipe.d.ts +14 -14
- package/lib/pipes/home-group.pipe.d.ts +9 -9
- package/lib/pipes/tile-home-filter.pipe.d.ts +8 -8
- package/lib/pipes/tile-prop.pipe.d.ts +8 -8
- package/lib/popover-app-finder/filter-apps-grouped.pipe.d.ts +13 -0
- package/lib/popover-app-finder/popover-app-finder.component.d.ts +39 -0
- package/lib/profile-tile/profile-tile.component.d.ts +7 -7
- package/lib/shellbar/shellbar.component.d.ts +94 -94
- package/lib/simple-tile/simple-tile.component.d.ts +10 -10
- package/lib/tile/tile.component.d.ts +22 -20
- package/lib/tile-renderer.directive.d.ts +28 -28
- package/lib/tile-style.directive.d.ts +12 -0
- package/lib/tiles-viewer/tiles-viewer.component.d.ts +65 -63
- package/lib/tiles-viewer-container/tiles-viewer-container.component.d.ts +59 -57
- package/lib/tiles-viewer-group/tiles-viewer-group.component.d.ts +39 -39
- package/lib/tiles-viewer.service.d.ts +42 -42
- package/lib/tiles.service.d.ts +75 -75
- package/package.json +7 -13
- package/public-api.d.ts +42 -41
- package/esm2020/lib/action-item/action-item.component.mjs +0 -18
- package/esm2020/lib/actions-link/actions-link.component.mjs +0 -42
- package/esm2020/lib/app-finder/app-finder.component.mjs +0 -53
- package/esm2020/lib/app-finder-app-list/app-finder-app-list.component.mjs +0 -40
- package/esm2020/lib/app-finder-group/app-finder-group.component.mjs +0 -42
- package/esm2020/lib/app-finder.service.mjs +0 -121
- package/esm2020/lib/barsa-shellbar/barsa-shellbar.component.mjs +0 -166
- package/esm2020/lib/barsa-tiles.module.mjs +0 -206
- package/esm2020/lib/change-app-tile/change-app-tile.component.mjs +0 -47
- package/esm2020/lib/create-app-group/create-app-group.component.mjs +0 -44
- package/esm2020/lib/directives/emptylist.directive.mjs +0 -36
- package/esm2020/lib/feed-tile/feed-tile.component.mjs +0 -32
- package/esm2020/lib/footer-tile/footer-tile.component.mjs +0 -28
- package/esm2020/lib/form-app-finder/form-app-finder.component.mjs +0 -95
- package/esm2020/lib/form-tile/form-tile.component.mjs +0 -35
- package/esm2020/lib/logo-tile/logo-tile.component.mjs +0 -23
- package/esm2020/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +0 -27
- package/esm2020/lib/models/base-bt-tile-component.mjs +0 -30
- package/esm2020/lib/models/tile-setting.mjs +0 -2
- package/esm2020/lib/news-tile/news-tile.component.mjs +0 -54
- package/esm2020/lib/notification-group/notification-group.component.mjs +0 -116
- package/esm2020/lib/notification-group-header/notification-group-header.component.mjs +0 -39
- package/esm2020/lib/numeric-tile/numeric-tile.component.mjs +0 -34
- package/esm2020/lib/pin-tile/pin-tile.component.mjs +0 -111
- package/esm2020/lib/pipes/group-tiles.pipe.mjs +0 -31
- package/esm2020/lib/pipes/tile-home-filter.pipe.mjs +0 -28
- package/esm2020/lib/pipes/tile-prop.pipe.mjs +0 -32
- package/esm2020/lib/profile-tile/profile-tile.component.mjs +0 -26
- package/esm2020/lib/shellbar/shellbar.component.mjs +0 -200
- package/esm2020/lib/simple-tile/simple-tile.component.mjs +0 -23
- package/esm2020/lib/tile/tile.component.mjs +0 -61
- package/esm2020/lib/tile-renderer.directive.mjs +0 -70
- package/esm2020/lib/tiles-viewer/tiles-viewer.component.mjs +0 -157
- package/esm2020/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +0 -158
- package/esm2020/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +0 -88
- package/esm2020/lib/tiles-viewer.service.mjs +0 -130
- package/esm2020/lib/tiles.service.mjs +0 -589
- package/fesm2015/barsa-tiles.mjs +0 -2977
- package/fesm2015/barsa-tiles.mjs.map +0 -1
- package/fesm2020/barsa-tiles.mjs +0 -2941
- package/fesm2020/barsa-tiles.mjs.map +0 -1
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { BaseComponent, BarsaApi, IntersectionStatus, fromIntersectionObserver } from 'barsa-novin-ray-core';
|
|
3
|
-
import { TabListComponent } from '@fundamental-ngx/core';
|
|
4
|
-
import { takeUntil } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "@angular/cdk/drag-drop";
|
|
9
|
-
import * as i4 from "@fundamental-ngx/core/bar";
|
|
10
|
-
import * as i5 from "@fundamental-ngx/core/button";
|
|
11
|
-
import * as i6 from "@fundamental-ngx/core/dynamic-page";
|
|
12
|
-
import * as i7 from "@fundamental-ngx/core/form";
|
|
13
|
-
import * as i8 from "@fundamental-ngx/core/switch";
|
|
14
|
-
import * as i9 from "@fundamental-ngx/core/tabs";
|
|
15
|
-
import * as i10 from "@fundamental-ngx/core/toolbar";
|
|
16
|
-
import * as i11 from "barsa-sap-ui";
|
|
17
|
-
import * as i12 from "../tiles-viewer-group/tiles-viewer-group.component";
|
|
18
|
-
export class TilesViewerComponent extends BaseComponent {
|
|
19
|
-
constructor(_cdr, _saveScrollPosition) {
|
|
20
|
-
super();
|
|
21
|
-
this._cdr = _cdr;
|
|
22
|
-
this._saveScrollPosition = _saveScrollPosition;
|
|
23
|
-
this.pageContentClass = true;
|
|
24
|
-
this.stackContentChange = new EventEmitter();
|
|
25
|
-
this.closeEditHome = new EventEmitter();
|
|
26
|
-
this.save = new EventEmitter();
|
|
27
|
-
this.listDropped = new EventEmitter();
|
|
28
|
-
this.tabChanged = new EventEmitter();
|
|
29
|
-
this.toggleGroup = new EventEmitter();
|
|
30
|
-
this.resetGroup = new EventEmitter();
|
|
31
|
-
this.deleteGroup = new EventEmitter();
|
|
32
|
-
this.hideAppTileClick = new EventEmitter();
|
|
33
|
-
this.renameAppTileClick = new EventEmitter();
|
|
34
|
-
this.tilesDropped = new EventEmitter();
|
|
35
|
-
this._rtl = BarsaApi.LoginFormData.IsRtl;
|
|
36
|
-
this.id = 'tilesviewer';
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
super.ngOnInit();
|
|
40
|
-
const elDom = this.contentPageRef.nativeElement;
|
|
41
|
-
elDom.addEventListener('scroll', () => {
|
|
42
|
-
this._saveScrollPosition.setScrollPosition(this.id, elDom.scrollTop);
|
|
43
|
-
});
|
|
44
|
-
this._tilesIntersection = fromIntersectionObserver(elDom, {
|
|
45
|
-
root: null,
|
|
46
|
-
rootMargin: '0px',
|
|
47
|
-
threshold: 0
|
|
48
|
-
}, 0, false)
|
|
49
|
-
.pipe(takeUntil(this._onDestroy$))
|
|
50
|
-
.subscribe((e) => {
|
|
51
|
-
this._onInView(e);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
onSelectedTabChange(selectedTab, appTileGroups) {
|
|
55
|
-
let firstSelected = false;
|
|
56
|
-
if (!this.selectedTabTitle) {
|
|
57
|
-
firstSelected = true;
|
|
58
|
-
}
|
|
59
|
-
const selectedTabTitle = selectedTab.title || '';
|
|
60
|
-
this.selectedTabTitle = selectedTabTitle;
|
|
61
|
-
setTimeout(() => {
|
|
62
|
-
this.tabChanged.emit({
|
|
63
|
-
firstSelected,
|
|
64
|
-
selectedTabTitle,
|
|
65
|
-
tabPanels: this.tabListComponent.tabPanels.toArray(),
|
|
66
|
-
appTileGroups
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
onDropGroup(appTileGroups, event) {
|
|
71
|
-
if (!this.edit) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.listDropped.emit({ appTileGroups, event });
|
|
75
|
-
}
|
|
76
|
-
onDrop($event) {
|
|
77
|
-
this.tilesDropped.emit($event);
|
|
78
|
-
}
|
|
79
|
-
onStackContentChanged(checked) {
|
|
80
|
-
this.stackContentChange.emit(checked);
|
|
81
|
-
}
|
|
82
|
-
onExitEditHome(appGroups) {
|
|
83
|
-
this.save.emit(appGroups);
|
|
84
|
-
}
|
|
85
|
-
onCloseEditHome() {
|
|
86
|
-
this.closeEditHome.emit();
|
|
87
|
-
}
|
|
88
|
-
_trackById(item, index) {
|
|
89
|
-
return item ? item.Id : index;
|
|
90
|
-
}
|
|
91
|
-
_onInView(e) {
|
|
92
|
-
this.formVisibilityStatus = e;
|
|
93
|
-
if (this.formVisibilityStatus === IntersectionStatus.Visible) {
|
|
94
|
-
const scrollTop = this._saveScrollPosition.getScrollPosition(this.id);
|
|
95
|
-
// window.scrollTo({ top: scrollTop, behavior: 'smooth' });
|
|
96
|
-
this.contentPageRef.nativeElement.scrollTop = scrollTop;
|
|
97
|
-
// this._cdr.detectChanges();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
TilesViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SaveScrollPositionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
TilesViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TilesViewerComponent, selector: "bt-tiles-viewer", inputs: { appTileGroups: "appTileGroups", loading: "loading", edit: "edit", rtl: "rtl", stackContent: "stackContent", deviceSize: "deviceSize", selectedAppGroupId: "selectedAppGroupId", DynamicComponents: "DynamicComponents" }, outputs: { stackContentChange: "stackContentChange", closeEditHome: "closeEditHome", save: "save", listDropped: "listDropped", tabChanged: "tabChanged", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", tilesDropped: "tilesDropped" }, host: { properties: { "class.page-content": "this.pageContentClass", "attr.rtl": "this._rtl" } }, viewQueries: [{ propertyName: "tabListComponent", first: true, predicate: TabListComponent, descendants: true }, { propertyName: "contentPageRef", first: true, predicate: ["contentPage"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-dynamic-page\n size=\"large\"\n [ariaLabel]=\"'HomeEdit' | bbbTranslate\"\n [autoResponsive]=\"true\"\n [class.stack-mode]=\"stackContent\"\n>\n <fd-dynamic-page-header *ngIf=\"edit\" [title]=\"'HomeEdit' | bbbTranslate\">\n <fd-dynamic-page-global-actions>\n <fd-toolbar *ngIf=\"edit\" fdType=\"transparent\" [clearBorder]=\"true\">\n <label fd-form-label fd-toolbar-item>Stacked Content </label>\n <fd-switch\n fd-toolbar-item\n [checked]=\"stackContent\"\n (checkedChange)=\"onStackContentChanged($event)\"\n ></fd-switch>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" title=\"Close\" (click)=\"onCloseEditHome()\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-content #contentPage>\n <ng-container\n *ngTemplateOutlet=\"\n stackContent ? renderTabsStacked : renderTabs;\n context: {\n $implicit: appTileGroups,\n stackContent: stackContent,\n edit: edit\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer>\n <div fd-bar barDesign=\"footer\" *ngIf=\"edit\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"'SaveAndClose' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onExitEditHome(appTileGroups)\"\n ></fd-button-bar>\n </div>\n </div>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<ng-template #renderTabs let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n (selectedTabChange)=\"onSelectedTabChange($event, appTileGroups)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [class.is-expanded]=\"selectedTabTitle === (appTileGroup.navigatorTitle | bbbTranslate)\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderTabsStacked let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n [stackContent]=\"true\"\n [maxContentHeight]=\"stackContent ? 'calc(99vh - 2.75rem - 44px)' : 'calc(100vh - 44px)'\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [count]=\"appTileGroup.$Children?.length\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template\n #renderGroup\n let-appTileGroup\n let-stackContent=\"stackContent\"\n let-edit=\"edit\"\n let-isAppTileSubGroup=\"isAppTileSubGroup\"\n>\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"isAppTileSubGroup\"\n (tilesDropped)=\"onDrop($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</ng-template>\n", styles: [":host{display:block}:host ::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}:host ::ng-deep fd-tab-list[noSpy] .fd-tabs__content{overflow-y:initial}:host ::ng-deep fd-dynamic-page section{height:calc(100vh - 44px)!important}:host ::ng-deep .footer-spacer{height:0}.fd-tabs__panel:not(.is-expanded){display:none}fd-dynamic-page.stack-mode fd-dynamic-page-content{overflow-y:hidden}fd-dynamic-page-content{padding:0!important}@media (max-width: 599px){bnrc-dynamic-component{margin-right:0!important;margin-left:0!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.SwitchComponent, selector: "fd-switch", inputs: ["activeText", "inactiveText", "disabled", "id", "name", "required", "checked", "semantic", "ariaLabel", "ariaLabelledby", "ariaLabelledBy", "semanticAcceptLabel", "semanticDeclineLabel"], outputs: ["checkedChange"] }, { kind: "component", type: i9.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i9.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerComponent, decorators: [{
|
|
104
|
-
type: Component,
|
|
105
|
-
args: [{ selector: 'bt-tiles-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dynamic-page\n size=\"large\"\n [ariaLabel]=\"'HomeEdit' | bbbTranslate\"\n [autoResponsive]=\"true\"\n [class.stack-mode]=\"stackContent\"\n>\n <fd-dynamic-page-header *ngIf=\"edit\" [title]=\"'HomeEdit' | bbbTranslate\">\n <fd-dynamic-page-global-actions>\n <fd-toolbar *ngIf=\"edit\" fdType=\"transparent\" [clearBorder]=\"true\">\n <label fd-form-label fd-toolbar-item>Stacked Content </label>\n <fd-switch\n fd-toolbar-item\n [checked]=\"stackContent\"\n (checkedChange)=\"onStackContentChanged($event)\"\n ></fd-switch>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" title=\"Close\" (click)=\"onCloseEditHome()\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-content #contentPage>\n <ng-container\n *ngTemplateOutlet=\"\n stackContent ? renderTabsStacked : renderTabs;\n context: {\n $implicit: appTileGroups,\n stackContent: stackContent,\n edit: edit\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer>\n <div fd-bar barDesign=\"footer\" *ngIf=\"edit\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"'SaveAndClose' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onExitEditHome(appTileGroups)\"\n ></fd-button-bar>\n </div>\n </div>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<ng-template #renderTabs let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n (selectedTabChange)=\"onSelectedTabChange($event, appTileGroups)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [class.is-expanded]=\"selectedTabTitle === (appTileGroup.navigatorTitle | bbbTranslate)\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderTabsStacked let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n [stackContent]=\"true\"\n [maxContentHeight]=\"stackContent ? 'calc(99vh - 2.75rem - 44px)' : 'calc(100vh - 44px)'\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [count]=\"appTileGroup.$Children?.length\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template\n #renderGroup\n let-appTileGroup\n let-stackContent=\"stackContent\"\n let-edit=\"edit\"\n let-isAppTileSubGroup=\"isAppTileSubGroup\"\n>\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"isAppTileSubGroup\"\n (tilesDropped)=\"onDrop($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</ng-template>\n", styles: [":host{display:block}:host ::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}:host ::ng-deep fd-tab-list[noSpy] .fd-tabs__content{overflow-y:initial}:host ::ng-deep fd-dynamic-page section{height:calc(100vh - 44px)!important}:host ::ng-deep .footer-spacer{height:0}.fd-tabs__panel:not(.is-expanded){display:none}fd-dynamic-page.stack-mode fd-dynamic-page-content{overflow-y:hidden}fd-dynamic-page-content{padding:0!important}@media (max-width: 599px){bnrc-dynamic-component{margin-right:0!important;margin-left:0!important}}\n"] }]
|
|
106
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SaveScrollPositionService }]; }, propDecorators: { tabListComponent: [{
|
|
107
|
-
type: ViewChild,
|
|
108
|
-
args: [TabListComponent]
|
|
109
|
-
}], contentPageRef: [{
|
|
110
|
-
type: ViewChild,
|
|
111
|
-
args: ['contentPage', { static: true, read: ElementRef }]
|
|
112
|
-
}], pageContentClass: [{
|
|
113
|
-
type: HostBinding,
|
|
114
|
-
args: ['class.page-content']
|
|
115
|
-
}], appTileGroups: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], loading: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], edit: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], rtl: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], stackContent: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], deviceSize: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], selectedAppGroupId: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], DynamicComponents: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], stackContentChange: [{
|
|
132
|
-
type: Output
|
|
133
|
-
}], closeEditHome: [{
|
|
134
|
-
type: Output
|
|
135
|
-
}], save: [{
|
|
136
|
-
type: Output
|
|
137
|
-
}], listDropped: [{
|
|
138
|
-
type: Output
|
|
139
|
-
}], tabChanged: [{
|
|
140
|
-
type: Output
|
|
141
|
-
}], toggleGroup: [{
|
|
142
|
-
type: Output
|
|
143
|
-
}], resetGroup: [{
|
|
144
|
-
type: Output
|
|
145
|
-
}], deleteGroup: [{
|
|
146
|
-
type: Output
|
|
147
|
-
}], hideAppTileClick: [{
|
|
148
|
-
type: Output
|
|
149
|
-
}], renameAppTileClick: [{
|
|
150
|
-
type: Output
|
|
151
|
-
}], tilesDropped: [{
|
|
152
|
-
type: Output
|
|
153
|
-
}], _rtl: [{
|
|
154
|
-
type: HostBinding,
|
|
155
|
-
args: ['attr.rtl']
|
|
156
|
-
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvdGlsZXMtdmlld2VyL3RpbGVzLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci90aWxlcy12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILGFBQWEsRUFFYixRQUFRLEVBR1Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUMzQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBWSxnQkFBZ0IsRUFBcUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFqQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQTRDbkQsWUFBc0IsSUFBdUIsRUFBWSxtQkFBOEM7UUFDbkcsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFZLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMkI7UUF6Q3BFLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQVdqRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2pELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUdwQyxDQUFDO1FBQ0ssZUFBVSxHQUFHLElB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YTtzQkFBdEIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNO2dCQU9HLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTTtnQkFLa0IsSUFBSTtzQkFBNUIsV0FBVzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBCYXJzYUFwaSxcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgU2F2ZVNjcm9sbFBvc2l0aW9uU2VydmljZSxcbiAgICBJbnRlcnNlY3Rpb25TdGF0dXMsXG4gICAgZnJvbUludGVyc2VjdGlvbk9ic2VydmVyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlLCBUYWJMaXN0Q29tcG9uZW50LCBUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdidC10aWxlcy12aWV3ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aWxlcy12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbGVzLXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRpbGVzVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChUYWJMaXN0Q29tcG9uZW50KSB0YWJMaXN0Q29tcG9uZW50OiBUYWJMaXN0Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRQYWdlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgY29udGVudFBhZ2VSZWY6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhZ2UtY29udGVudCcpIHBhZ2VDb250ZW50Q2xhc3MgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFwcFRpbGVHcm91cHM6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+O1xuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc3RhY2tDb250ZW50OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZEFwcEdyb3VwSWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIER5bmFtaWNDb21wb25lbnRzOiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgc3RhY2tDb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBjbG9zZUVkaXRIb21lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBsaXN0RHJvcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBhcHBUaWxlR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgICAgIGV2ZW50OiBDZGtEcmFnRHJvcDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIHRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgZmlyc3RTZWxlY3RlZDogYm9vbGVhbjtcbiAgICAgICAgc2VsZWN0ZWRUYWJUaXRsZTogc3RyaW5nO1xuICAgICAgICB0YWJQYW5lbHM6IFRhYlBhbmVsQ29tcG9uZW50W107XG4gICAgICAgIGFwcFRpbGVHcm91cHM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcbiAgICB9PigpO1xuXG4gICAgQE91dHB1dCgpIHRvZ2dsZUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSByZXNldEdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBkZWxldGVHcm91cCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgaGlkZUFwcFRpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgcmVuYW1lQXBwVGlsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuXG4gICAgQE91dHB1dCgpIHRpbGVzRHJvcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgICAgIGV2ZW50OiBDZGtEcmFnRHJvcDx7IGlzVGlsZTogYm9vbGVhbjsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB9PjtcbiAgICB9PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJ0bCcpIF9ydGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsO1xuICAgIHNlbGVjdGVkVGFiVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG4gICAgc2VsZWN0ZWRUYWJJZDogc3RyaW5nO1xuICAgIF90aWxlc0ludGVyc2VjdGlvbjogYW55O1xuICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzOiBJbnRlcnNlY3Rpb25TdGF0dXM7XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgX3NhdmVTY3JvbGxQb3NpdGlvbjogU2F2ZVNjcm9sbFBvc2l0aW9uU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBpZCA9ICd0aWxlc3ZpZXdlcic7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGVsRG9tID0gdGhpcy5jb250ZW50UGFnZVJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbERvbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zYXZlU2Nyb2xsUG9zaXRpb24uc2V0U2Nyb2xsUG9zaXRpb24odGhpcy5pZCwgZWxEb20uc2Nyb2xsVG9wKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3RpbGVzSW50ZXJzZWN0aW9uID0gZnJvbUludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICAgICAgZWxEb20sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcm9vdDogbnVsbCxcbiAgICAgICAgICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX29uSW5WaWV3KGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uU2VsZWN0ZWRUYWJDaGFuZ2Uoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50LCBhcHBUaWxlR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgbGV0IGZpcnN0U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFiVGl0bGUpIHtcbiAgICAgICAgICAgIGZpcnN0U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGFiVGl0bGUgPSBzZWxlY3RlZFRhYi50aXRsZSB8fCAnJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYlRpdGxlID0gc2VsZWN0ZWRUYWJUaXRsZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYkNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlyc3RTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFRhYlRpdGxlLFxuICAgICAgICAgICAgICAgIHRhYlBhbmVsczogdGhpcy50YWJMaXN0Q29tcG9uZW50LnRhYlBhbmVscy50b0FycmF5KCksXG4gICAgICAgICAgICAgICAgYXBwVGlsZUdyb3Vwc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbkRyb3BHcm91cChhcHBUaWxlR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sIGV2ZW50OiBDZGtEcmFnRHJvcDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0RHJvcHBlZC5lbWl0KHsgYXBwVGlsZUdyb3VwcywgZXZlbnQgfSk7XG4gICAgfVxuICAgIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aWxlc0Ryb3BwZWQuZW1pdCgkZXZlbnQpO1xuICAgIH1cbiAgICBvblN0YWNrQ29udGVudENoYW5nZWQoY2hlY2tlZCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YWNrQ29udGVudENoYW5nZS5lbWl0KGNoZWNrZWQpO1xuICAgIH1cbiAgICBvbkV4aXRFZGl0SG9tZShhcHBHcm91cHM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmUuZW1pdChhcHBHcm91cHMpO1xuICAgIH1cbiAgICBvbkNsb3NlRWRpdEhvbWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VFZGl0SG9tZS5lbWl0KCk7XG4gICAgfVxuICAgIF90cmFja0J5SWQoaXRlbSwgaW5kZXgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0uSWQgOiBpbmRleDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX29uSW5WaWV3KGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtVmlzaWJpbGl0eVN0YXR1cyA9IGU7XG4gICAgICAgIGlmICh0aGlzLmZvcm1WaXNpYmlsaXR5U3RhdHVzID09PSBJbnRlcnNlY3Rpb25TdGF0dXMuVmlzaWJsZSkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5fc2F2ZVNjcm9sbFBvc2l0aW9uLmdldFNjcm9sbFBvc2l0aW9uKHRoaXMuaWQpO1xuICAgICAgICAgICAgLy8gd2luZG93LnNjcm9sbFRvKHsgdG9wOiBzY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgICh0aGlzLmNvbnRlbnRQYWdlUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICAgICAgICAgIC8vIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZmQtZHluYW1pYy1wYWdlXG4gICAgc2l6ZT1cImxhcmdlXCJcbiAgICBbYXJpYUxhYmVsXT1cIidIb21lRWRpdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgIFthdXRvUmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICBbY2xhc3Muc3RhY2stbW9kZV09XCJzdGFja0NvbnRlbnRcIlxuPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyICpuZ0lmPVwiZWRpdFwiIFt0aXRsZV09XCInSG9tZUVkaXQnIHwgYmJiVHJhbnNsYXRlXCI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciAqbmdJZj1cImVkaXRcIiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZmQtdG9vbGJhci1pdGVtPlN0YWNrZWQgQ29udGVudCA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxmZC1zd2l0Y2hcbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInN0YWNrQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGVja2VkQ2hhbmdlKT1cIm9uU3RhY2tDb250ZW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1zd2l0Y2g+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgdGl0bGU9XCJDbG9zZVwiIChjbGljayk9XCJvbkNsb3NlRWRpdEhvbWUoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInNhcC1pY29uLS1kZWNsaW5lXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mZC10b29sYmFyPlxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXI+XG4gICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50ICNjb250ZW50UGFnZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBzdGFja0NvbnRlbnQgPyByZW5kZXJUYWJzU3RhY2tlZCA6IHJlbmRlclRhYnM7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGFwcFRpbGVHcm91cHMsXG4gICAgICAgICAgICAgICAgICAgIHN0YWNrQ29udGVudDogc3RhY2tDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBlZGl0OiBlZGl0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XG4gICAgPGZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XG4gICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiICpuZ0lmPVwiZWRpdFwiPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTYXZlQW5kQ2xvc2UnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkV4aXRFZGl0SG9tZShhcHBUaWxlR3JvdXBzKVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XG48L2ZkLWR5bmFtaWMtcGFnZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZW5kZXJUYWJzIGxldC1hcHBUaWxlR3JvdXBzIGxldC1zdGFja0NvbnRlbnQ9XCJzdGFja0NvbnRlbnRcIiBsZXQtZWRpdD1cImVkaXRcIj5cbiAgICA8ZmQtdGFiLWxpc3RcbiAgICAgICAgY2xhc3M9XCJ0aWxlLXRhYnNcIlxuICAgICAgICBbc2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2NvbGxhcHNlT3ZlcmZsb3ddPVwidHJ1ZVwiXG4gICAgICAgIFtleHBhbmRPdmVyZmxvd1RleHRdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3BHcm91cChhcHBUaWxlR3JvdXBzLCAkZXZlbnQpXCJcbiAgICAgICAgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIm9uU2VsZWN0ZWRUYWJDaGFuZ2UoJGV2ZW50LCBhcHBUaWxlR3JvdXBzKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlJZFwiPlxuICAgICAgICAgICAgPGZkLXRhYlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWRpdCB8fCBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaXRsZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2ZkLXRhYnMtLScgKyBkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwic2VsZWN0ZWRUYWJUaXRsZSA9PT0gKGFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaXRsZSB8IGJiYlRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCBbaWRdPVwiYXBwVGlsZUdyb3VwLklkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyR3JvdXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGFwcFRpbGVHcm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tDb250ZW50OiBzdGFja0NvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXQ6IGVkaXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXBwVGlsZVN1Ykdyb3VwOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuICAgICAgICAgICAgPC9mZC10YWI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZmQtdGFiLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJUYWJzU3RhY2tlZCBsZXQtYXBwVGlsZUdyb3VwcyBsZXQtc3RhY2tDb250ZW50PVwic3RhY2tDb250ZW50XCIgbGV0LWVkaXQ9XCJlZGl0XCI+XG4gICAgPGZkLXRhYi1saXN0XG4gICAgICAgIGNsYXNzPVwidGlsZS10YWJzXCJcbiAgICAgICAgW3NpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtjb2xsYXBzZU92ZXJmbG93XT1cInRydWVcIlxuICAgICAgICBbZXhwYW5kT3ZlcmZsb3dUZXh0XT1cIidNb3JlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFttYXhDb250ZW50SGVpZ2h0XT1cInN0YWNrQ29udGVudCA/ICdjYWxjKDk5dmggLSAyLjc1cmVtIC0gNDRweCknIDogJ2NhbGMoMTAwdmggLSA0NHB4KSdcIlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcEdyb3VwKGFwcFRpbGVHcm91cHMsICRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXBwVGlsZUdyb3VwIG9mIGFwcFRpbGVHcm91cHM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5SWRcIj5cbiAgICAgICAgICAgIDxmZC10YWJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImVkaXQgfHwgYXBwVGlsZUdyb3VwLm5hdmlnYXRvclZpc2libGVcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmZC10YWJzLS0nICsgZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2NvdW50XT1cImFwcFRpbGVHcm91cC4kQ2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtpZF09XCJhcHBUaWxlR3JvdXAuSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJHcm91cDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogYXBwVGlsZUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja0NvbnRlbnQ6IHN0YWNrQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdDogZWRpdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBcHBUaWxlU3ViR3JvdXA6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2ZkLXRhYj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mZC10YWItbGlzdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcmVuZGVyR3JvdXBcbiAgICBsZXQtYXBwVGlsZUdyb3VwXG4gICAgbGV0LXN0YWNrQ29udGVudD1cInN0YWNrQ29udGVudFwiXG4gICAgbGV0LWVkaXQ9XCJlZGl0XCJcbiAgICBsZXQtaXNBcHBUaWxlU3ViR3JvdXA9XCJpc0FwcFRpbGVTdWJHcm91cFwiXG4+XG4gICAgPGJ0LXRpbGVzLXZpZXdlci1ncm91cFxuICAgICAgICBbYXBwVGlsZUdyb3VwXT1cImFwcFRpbGVHcm91cFwiXG4gICAgICAgIFtlZGl0XT1cImVkaXRcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbc3RhY2tDb250ZW50XT1cInN0YWNrQ29udGVudFwiXG4gICAgICAgIFtpc0FwcFRpbGVTdWJHcm91cF09XCJpc0FwcFRpbGVTdWJHcm91cFwiXG4gICAgICAgICh0aWxlc0Ryb3BwZWQpPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAocmVuYW1lQXBwVGlsZUNsaWNrKT1cInJlbmFtZUFwcFRpbGVDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAoaGlkZUFwcFRpbGVDbGljayk9XCJoaWRlQXBwVGlsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyZXNldEdyb3VwKT1cInJlc2V0R3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGRlbGV0ZUdyb3VwKT1cImRlbGV0ZUdyb3VwLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh0b2dnbGVHcm91cCk9XCJ0b2dnbGVHcm91cC5lbWl0KCRldmVudClcIlxuICAgID48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
2
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { takeUntil, map, distinctUntilChanged, withLatestFrom } from 'rxjs/operators';
|
|
4
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
5
|
-
import { TilesViewerService } from '../tiles-viewer.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
8
|
-
import * as i2 from "../tiles.service";
|
|
9
|
-
import * as i3 from "../tiles-viewer.service";
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
11
|
-
import * as i5 from "barsa-sap-ui";
|
|
12
|
-
import * as i6 from "../tiles-viewer/tiles-viewer.component";
|
|
13
|
-
export class TilesViewerContainerComponent extends BaseComponent {
|
|
14
|
-
constructor(_portalService, _tilesService, _tilesViewerService) {
|
|
15
|
-
super();
|
|
16
|
-
this._portalService = _portalService;
|
|
17
|
-
this._tilesService = _tilesService;
|
|
18
|
-
this._tilesViewerService = _tilesViewerService;
|
|
19
|
-
this.changedOrder = false;
|
|
20
|
-
this.userStackContent = false;
|
|
21
|
-
this.initialStackContentValue = false;
|
|
22
|
-
this.firstSelected = false;
|
|
23
|
-
this.stackContent$ = this._portalService.userPortalSettings$.pipe(takeUntil(this._onDestroy$), map((settings) => settings['UserPortalSettings']), map((settings) => settings?.TilesStackContent), distinctUntilChanged());
|
|
24
|
-
this.stackContent$.subscribe((stackContent) => {
|
|
25
|
-
this.initialStackContentValue = this.userStackContent = stackContent;
|
|
26
|
-
if (stackContent) {
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
super.ngOnInit();
|
|
32
|
-
this.viewLoading$ = this._tilesViewerService.viewLoading$;
|
|
33
|
-
this.rtl$ = this._portalService.rtl$;
|
|
34
|
-
this.deviceSize$ = this._portalService.deviceSize$;
|
|
35
|
-
this.edit$ = this._tilesService.edit$;
|
|
36
|
-
this.appTileGroups$ = this._tilesService.homeAppTileGroups$;
|
|
37
|
-
this.appTileGroups$.pipe(withLatestFrom(this.stackContent$)).subscribe(([tiles, stackContent]) => {
|
|
38
|
-
if (tiles && stackContent) {
|
|
39
|
-
tiles.forEach((c) => {
|
|
40
|
-
this._tilesService.loadAppTileGroups(c);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
super.ngOnDestroy();
|
|
47
|
-
this._tilesService.setEditHome(false);
|
|
48
|
-
}
|
|
49
|
-
onSelectedTabChange(e) {
|
|
50
|
-
const { firstSelected, selectedTabTitle, appTileGroups: appGroups, tabPanels } = e;
|
|
51
|
-
let appTileGroup;
|
|
52
|
-
if (firstSelected) {
|
|
53
|
-
const lastSelectedAppGroupId = this._tilesViewerService.selectedAppGroupId;
|
|
54
|
-
if (lastSelectedAppGroupId) {
|
|
55
|
-
appTileGroup = appGroups.find((c) => c.Id === lastSelectedAppGroupId);
|
|
56
|
-
if (appTileGroup) {
|
|
57
|
-
const lastTab = tabPanels.find((c) => c.title === appTileGroup?.navigatorTitle);
|
|
58
|
-
if (lastTab) {
|
|
59
|
-
appTileGroup = appGroups.find((c) => c.Id === lastSelectedAppGroupId);
|
|
60
|
-
lastTab.open(true);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (!appTileGroup) {
|
|
66
|
-
appTileGroup = appGroups.find((c) => c.navigatorTitle === selectedTabTitle);
|
|
67
|
-
}
|
|
68
|
-
if (appTileGroup) {
|
|
69
|
-
this._tilesViewerService.setSelectedTab(appTileGroup);
|
|
70
|
-
this._tilesViewerService.loadAppGroup(appTileGroup);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
onDropGroup(e) {
|
|
74
|
-
const { event, appTileGroups: appGroups } = e;
|
|
75
|
-
moveItemInArray(appGroups, event.previousIndex, event.currentIndex);
|
|
76
|
-
this.changedOrder = true;
|
|
77
|
-
// this.saveOrderAppTiles(allApps, group);
|
|
78
|
-
}
|
|
79
|
-
onDrop(e) {
|
|
80
|
-
const { appTileGroup: group, event } = e;
|
|
81
|
-
const previousContainer = event.previousContainer;
|
|
82
|
-
const container = event.container;
|
|
83
|
-
const containerIsTile = container.data.isTile;
|
|
84
|
-
const previousItems = previousContainer.data.items;
|
|
85
|
-
const containerItems = container.data.items;
|
|
86
|
-
const { previousIndex, currentIndex } = event;
|
|
87
|
-
if (previousContainer === container) {
|
|
88
|
-
moveItemInArray(previousItems, previousIndex, currentIndex);
|
|
89
|
-
if (containerIsTile) {
|
|
90
|
-
this._saveOrderAppTiles(group);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
this._saveOrderActionLinks(group);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
transferArrayItem(previousItems, containerItems, previousIndex, currentIndex);
|
|
98
|
-
const appTileIdTransferedId = containerItems[currentIndex]?.AppTile?.Id ?? containerItems[currentIndex].Id;
|
|
99
|
-
if (containerIsTile) {
|
|
100
|
-
this._saveOrderActionLinks(group);
|
|
101
|
-
this._saveOrderAppTiles(group, appTileIdTransferedId);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
this._saveOrderAppTiles(group);
|
|
105
|
-
this._saveOrderActionLinks(group, appTileIdTransferedId);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
onStackContentChanged(checked) {
|
|
110
|
-
this.userStackContent = checked;
|
|
111
|
-
}
|
|
112
|
-
onExitEditHome(appTileGroups) {
|
|
113
|
-
if (this.changedOrder) {
|
|
114
|
-
this._tilesViewerService.saveAppGroupOrders(appTileGroups);
|
|
115
|
-
this.changedOrder = false;
|
|
116
|
-
}
|
|
117
|
-
if (this.userStackContent !== this.initialStackContentValue) {
|
|
118
|
-
this._tilesService.saveTilesStackContent(this.userStackContent);
|
|
119
|
-
}
|
|
120
|
-
this._setEditHome(false);
|
|
121
|
-
}
|
|
122
|
-
onCloseEditHome() {
|
|
123
|
-
this._setEditHome(false);
|
|
124
|
-
}
|
|
125
|
-
onDelete(appTileGroup) {
|
|
126
|
-
this._tilesViewerService.deleteAppGroup(appTileGroup);
|
|
127
|
-
}
|
|
128
|
-
onToggleShowHide(appTileGroup) {
|
|
129
|
-
this._tilesViewerService.toggleAppGroupSettingVisible(appTileGroup);
|
|
130
|
-
}
|
|
131
|
-
onReset(appTileGroup) {
|
|
132
|
-
this._tilesViewerService.resetAppGroup(appTileGroup);
|
|
133
|
-
}
|
|
134
|
-
onHideAppTile(appTile) {
|
|
135
|
-
this._tilesViewerService.hideTile(appTile);
|
|
136
|
-
}
|
|
137
|
-
onRenameAppTile(appTile) {
|
|
138
|
-
this._tilesViewerService.openRenameForm(appTile);
|
|
139
|
-
}
|
|
140
|
-
_setEditHome(val) {
|
|
141
|
-
this._tilesService.setEditHome(val);
|
|
142
|
-
}
|
|
143
|
-
_saveOrderAppTiles(appTileGroup, appTileIdTransferedId = '0') {
|
|
144
|
-
const appTiles = appTileGroup.navigatorTiles.map((appTile) => appTile.AppTile ? appTile.AppTile.Id : appTile.Id);
|
|
145
|
-
this._tilesService.saveOrderAppTiles(appTileGroup, appTiles, false, appTileIdTransferedId);
|
|
146
|
-
}
|
|
147
|
-
_saveOrderActionLinks(appTileGroup, appTileIdTransferedId = '0') {
|
|
148
|
-
const actionLinks = appTileGroup.navigatorActionLinks.map((appTile) => appTile.AppTile ? appTile.AppTile.Id : appTile.Id);
|
|
149
|
-
this._tilesService.saveOrderAppTiles(appTileGroup, actionLinks, true, appTileIdTransferedId);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
TilesViewerContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerContainerComponent, deps: [{ token: i1.PortalService }, { token: i2.TilesService }, { token: i3.TilesViewerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
TilesViewerContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TilesViewerContainerComponent, selector: "bt-tiles-viewer-container", providers: [TilesViewerService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"appTileGroups$ | async as appTileGroups; else loading\">\n <bt-tiles-viewer\n *ngIf=\"appTileGroups; else empty\"\n [appTileGroups]=\"appTileGroups\"\n [loading]=\"(viewLoading$ | async)!!\"\n [edit]=\"(edit$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [stackContent]=\"(stackContent$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n (stackContentChange)=\"onStackContentChanged($event)\"\n (closeEditHome)=\"onCloseEditHome()\"\n (save)=\"onExitEditHome($event)\"\n (listDropped)=\"onDropGroup($event)\"\n (tabChanged)=\"onSelectedTabChange($event)\"\n (toggleGroup)=\"onToggleShowHide($event)\"\n (resetGroup)=\"onReset($event)\"\n (deleteGroup)=\"onDelete($event)\"\n (tilesDropped)=\"onDrop($event)\"\n (hideAppTileClick)=\"onHideAppTile($event)\"\n (renameAppTileClick)=\"onRenameAppTile($event)\"\n ></bt-tiles-viewer>\n</ng-container>\n<ng-template #empty>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i6.TilesViewerComponent, selector: "bt-tiles-viewer", inputs: ["appTileGroups", "loading", "edit", "rtl", "stackContent", "deviceSize", "selectedAppGroupId", "DynamicComponents"], outputs: ["stackContentChange", "closeEditHome", "save", "listDropped", "tabChanged", "toggleGroup", "resetGroup", "deleteGroup", "hideAppTileClick", "renameAppTileClick", "tilesDropped"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerContainerComponent, decorators: [{
|
|
155
|
-
type: Component,
|
|
156
|
-
args: [{ selector: 'bt-tiles-viewer-container', providers: [TilesViewerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"appTileGroups$ | async as appTileGroups; else loading\">\n <bt-tiles-viewer\n *ngIf=\"appTileGroups; else empty\"\n [appTileGroups]=\"appTileGroups\"\n [loading]=\"(viewLoading$ | async)!!\"\n [edit]=\"(edit$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [stackContent]=\"(stackContent$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n (stackContentChange)=\"onStackContentChanged($event)\"\n (closeEditHome)=\"onCloseEditHome()\"\n (save)=\"onExitEditHome($event)\"\n (listDropped)=\"onDropGroup($event)\"\n (tabChanged)=\"onSelectedTabChange($event)\"\n (toggleGroup)=\"onToggleShowHide($event)\"\n (resetGroup)=\"onReset($event)\"\n (deleteGroup)=\"onDelete($event)\"\n (tilesDropped)=\"onDrop($event)\"\n (hideAppTileClick)=\"onHideAppTile($event)\"\n (renameAppTileClick)=\"onRenameAppTile($event)\"\n ></bt-tiles-viewer>\n</ng-container>\n<ng-template #empty>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
157
|
-
}], ctorParameters: function () { return [{ type: i1.PortalService }, { type: i2.TilesService }, { type: i3.TilesViewerService }]; } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci1jb250YWluZXIvdGlsZXMtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci1jb250YWluZXIvdGlsZXMtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEYsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxzQkFBc0IsQ0FBQztBQUVoSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGFBQWE7SUFhNUQsWUFDYyxjQUE2QixFQUM3QixhQUEyQixFQUMzQixtQkFBdUM7UUFFakQsS0FBSyxFQUFFLENBQUM7UUFKRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBWHJELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFHakMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFTbEIsSUFB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QUFhLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU8scUJBQXFCLENBQUMsWUFBaUMsRUFBRSx3QkFBZ0MsR0FBRztRQUNoRyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3BELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDakcsQ0FBQzs7MEhBeEtRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLG9EQUgzQixDQUFDLGtCQUFrQixDQUFDLGlEQ2RuQyw0bkNBNkJBOzJGRFphLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSwyQkFBMkIsYUFHMUIsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFiUGFuZWxDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBQb3J0YWxTZXJ2aWNlLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBUaWxlc1NlcnZpY2UgfSBmcm9tICcuLi90aWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbGVzVmlld2VyU2VydmljZSB9IGZyb20gJy4uL3RpbGVzLXZpZXdlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdidC10aWxlcy12aWV3ZXItY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGlsZXMtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGlsZXMtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1RpbGVzVmlld2VyU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGlsZXNWaWV3ZXJDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGFwcFRpbGVHcm91cHMkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgdmlld0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgZWRpdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY2hhbmdlZE9yZGVyID0gZmFsc2U7XG4gICAgdXNlclN0YWNrQ29udGVudCA9IGZhbHNlO1xuICAgIGluaXRpYWxTdGFja0NvbnRlbnRWYWx1ZSA9IGZhbHNlO1xuICAgIHVzZXJQb3J0YWxTZXR0aW5nczogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBzdGFja0NvbnRlbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZpcnN0U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF90aWxlc1NlcnZpY2U6IFRpbGVzU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF90aWxlc1ZpZXdlclNlcnZpY2U6IFRpbGVzVmlld2VyU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnN0YWNrQ29udGVudCQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnVzZXJQb3J0YWxTZXR0aW5ncyQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIG1hcCgoc2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIE1ldGFvYmplY3REYXRhTW9kZWw+KSA9PiBzZXR0aW5nc1snVXNlclBvcnRhbFNldHRpbmdzJ10pLFxuICAgICAgICAgICAgbWFwKChzZXR0aW5nczogTWV0YW9iamVjdERhdGFNb2RlbCkgPT4gc2V0dGluZ3M/LlRpbGVzU3RhY2tDb250ZW50KSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdGFja0NvbnRlbnQkLnN1YnNjcmliZSgoc3RhY2tDb250ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxTdGFja0NvbnRlbnRWYWx1ZSA9IHRoaXMudXNlclN0YWNrQ29udGVudCA9IHN0YWNrQ29udGVudDtcbiAgICAgICAgICAgIGlmIChzdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMudmlld0xvYWRpbmckID0gdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLnZpZXdMb2FkaW5nJDtcblxuICAgICAgICB0aGlzLnJ0bCQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xuICAgICAgICB0aGlzLmVkaXQkID0gdGhpcy5fdGlsZXNTZXJ2aWNlLmVkaXQkO1xuICAgICAgICB0aGlzLmFwcFRpbGVHcm91cHMkID0gdGhpcy5fdGlsZXNTZXJ2aWNlLmhvbWVBcHBUaWxlR3JvdXBzJDtcbiAgICAgICAgdGhpcy5hcHBUaWxlR3JvdXBzJC5waXBlKHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RhY2tDb250ZW50JCkpLnN1YnNjcmliZSgoW3RpbGVzLCBzdGFja0NvbnRlbnRdKSA9PiB7XG4gICAgICAgICAgICBpZiAodGlsZXMgJiYgc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgdGlsZXMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2UubG9hZEFwcFRpbGVHcm91cHMoYyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fdGlsZXNTZXJ2aWNlLnNldEVkaXRIb21lKGZhbHNlKTtcbiAgICB9XG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZShlOiB7XG4gICAgICAgIGZpcnN0U2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgICAgIHNlbGVjdGVkVGFiVGl0bGU6IHN0cmluZztcbiAgICAgICAgdGFiUGFuZWxzOiBUYWJQYW5lbENvbXBvbmVudFtdO1xuICAgICAgICBhcHBUaWxlR3JvdXBzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpcnN0U2VsZWN0ZWQsIHNlbGVjdGVkVGFiVGl0bGUsIGFwcFRpbGVHcm91cHM6IGFwcEdyb3VwcywgdGFiUGFuZWxzIH0gPSBlO1xuXG4gICAgICAgIGxldCBhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChmaXJzdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0U2VsZWN0ZWRBcHBHcm91cElkID0gdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLnNlbGVjdGVkQXBwR3JvdXBJZDtcbiAgICAgICAgICAgIGlmIChsYXN0U2VsZWN0ZWRBcHBHcm91cElkKSB7XG4gICAgICAgICAgICAgICAgYXBwVGlsZUdyb3VwID0gYXBwR3JvdXBzLmZpbmQoKGMpID0+IGMuSWQgPT09IGxhc3RTZWxlY3RlZEFwcEdyb3VwSWQpO1xuICAgICAgICAgICAgICAgIGlmIChhcHBUaWxlR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFRhYiA9IHRhYlBhbmVscy5maW5kKChjKSA9PiBjLnRpdGxlID09PSBhcHBUaWxlR3JvdXA/Lm5hdmlnYXRvclRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUYWIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFRpbGVHcm91cCA9IGFwcEdyb3Vwcy5maW5kKChjKSA9PiBjLklkID09PSBsYXN0U2VsZWN0ZWRBcHBHcm91cElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUYWIub3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFwcFRpbGVHcm91cCkge1xuICAgICAgICAgICAgYXBwVGlsZUdyb3VwID0gYXBwR3JvdXBzLmZpbmQoKGMpID0+IGMubmF2aWdhdG9yVGl0bGUgPT09IHNlbGVjdGVkVGFiVGl0bGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcHBUaWxlR3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbGVzVmlld2VyU2VydmljZS5zZXRTZWxlY3RlZFRhYihhcHBUaWxlR3JvdXApO1xuICAgICAgICAgICAgdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLmxvYWRBcHBHcm91cChhcHBUaWxlR3JvdXApO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRHJvcEdyb3VwKGU6IHsgYXBwVGlsZUdyb3VwczogTWV0YW9iamVjdERhdGFNb2RlbFtdOyBldmVudDogQ2RrRHJhZ0Ryb3A8TWV0YW9iamVjdERhdGFNb2RlbFtdPiB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZXZlbnQsIGFwcFRpbGVHcm91cHM6IGFwcEdyb3VwcyB9ID0gZTtcblxuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoYXBwR3JvdXBzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlZE9yZGVyID0gdHJ1ZTtcbiAgICAgICAgLy8gdGhpcy5zYXZlT3JkZXJBcHBUaWxlcyhhbGxBcHBzLCBncm91cCk7XG4gICAgfVxuICAgIG9uRHJvcChlOiB7IGFwcFRpbGVHcm91cDsgZXZlbnQ6IENka0RyYWdEcm9wPHsgaXNUaWxlOiBib29sZWFuOyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0+IH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBhcHBUaWxlR3JvdXA6IGdyb3VwLCBldmVudCB9ID0gZTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNDb250YWluZXIgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBjb250YWluZXJJc1RpbGUgPSBjb250YWluZXIuZGF0YS5pc1RpbGU7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbXMgPSBwcmV2aW91c0NvbnRhaW5lci5kYXRhLml0ZW1zO1xuICAgICAgICBjb25zdCBjb250YWluZXJJdGVtcyA9IGNvbnRhaW5lci5kYXRhLml0ZW1zO1xuICAgICAgICBjb25zdCB7IHByZXZpb3VzSW5kZXgsIGN1cnJlbnRJbmRleCB9ID0gZXZlbnQ7XG4gICAgICAgIGlmIChwcmV2aW91c0NvbnRhaW5lciA9PT0gY29udGFpbmVyKSB7XG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkocHJldmlvdXNJdGVtcywgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJJc1RpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zYXZlT3JkZXJBcHBUaWxlcyhncm91cCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVPcmRlckFjdGlvbkxpbmtzKGdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKHByZXZpb3VzSXRlbXMsIGNvbnRhaW5lckl0ZW1zLCBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgYXBwVGlsZUlkVHJhbnNmZXJlZElkID0gY29udGFpbmVySXRlbXNbY3VycmVudEluZGV4XT8uQXBwVGlsZT8uSWQgPz8gY29udGFpbmVySXRlbXNbY3VycmVudEluZGV4XS5JZDtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJJc1RpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zYXZlT3JkZXJBY3Rpb25MaW5rcyhncm91cCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2F2ZU9yZGVyQXBwVGlsZXMoZ3JvdXAsIGFwcFRpbGVJZFRyYW5zZmVyZWRJZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVPcmRlckFwcFRpbGVzKGdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zYXZlT3JkZXJBY3Rpb25MaW5rcyhncm91cCwgYXBwVGlsZUlkVHJhbnNmZXJlZElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvblN0YWNrQ29udGVudENoYW5nZWQoY2hlY2tlZCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVzZXJTdGFja0NvbnRlbnQgPSBjaGVja2VkO1xuICAgIH1cblxuICAgIG9uRXhpdEVkaXRIb21lKGFwcFRpbGVHcm91cHM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGFuZ2VkT3JkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbGVzVmlld2VyU2VydmljZS5zYXZlQXBwR3JvdXBPcmRlcnMoYXBwVGlsZUdyb3Vwcyk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZWRPcmRlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVzZXJTdGFja0NvbnRlbnQgIT09IHRoaXMuaW5pdGlhbFN0YWNrQ29udGVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2Uuc2F2ZVRpbGVzU3RhY2tDb250ZW50KHRoaXMudXNlclN0YWNrQ29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0RWRpdEhvbWUoZmFsc2UpO1xuICAgIH1cbiAgICBvbkNsb3NlRWRpdEhvbWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldEVkaXRIb21lKGZhbHNlKTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLmRlbGV0ZUFwcEdyb3VwKGFwcFRpbGVHcm91cCk7XG4gICAgfVxuXG4gICAgb25Ub2dnbGVTaG93SGlkZShhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLnRvZ2dsZUFwcEdyb3VwU2V0dGluZ1Zpc2libGUoYXBwVGlsZUdyb3VwKTtcbiAgICB9XG5cbiAgICBvblJlc2V0KGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWxlc1ZpZXdlclNlcnZpY2UucmVzZXRBcHBHcm91cChhcHBUaWxlR3JvdXApO1xuICAgIH1cbiAgICBvbkhpZGVBcHBUaWxlKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGlsZXNWaWV3ZXJTZXJ2aWNlLmhpZGVUaWxlKGFwcFRpbGUpO1xuICAgIH1cbiAgICBvblJlbmFtZUFwcFRpbGUoYXBwVGlsZTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWxlc1ZpZXdlclNlcnZpY2Uub3BlblJlbmFtZUZvcm0oYXBwVGlsZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldEVkaXRIb21lKHZhbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2Uuc2V0RWRpdEhvbWUodmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zYXZlT3JkZXJBcHBUaWxlcyhhcHBUaWxlR3JvdXA6IE1ldGFvYmplY3REYXRhTW9kZWwsIGFwcFRpbGVJZFRyYW5zZmVyZWRJZDogc3RyaW5nID0gJzAnKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFwcFRpbGVzID0gYXBwVGlsZUdyb3VwLm5hdmlnYXRvclRpbGVzLm1hcCgoYXBwVGlsZSkgPT5cbiAgICAgICAgICAgIGFwcFRpbGUuQXBwVGlsZSA/IGFwcFRpbGUuQXBwVGlsZS5JZCA6IGFwcFRpbGUuSWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fdGlsZXNTZXJ2aWNlLnNhdmVPcmRlckFwcFRpbGVzKGFwcFRpbGVHcm91cCwgYXBwVGlsZXMsIGZhbHNlLCBhcHBUaWxlSWRUcmFuc2ZlcmVkSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NhdmVPcmRlckFjdGlvbkxpbmtzKGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbCwgYXBwVGlsZUlkVHJhbnNmZXJlZElkOiBzdHJpbmcgPSAnMCcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aW9uTGlua3MgPSBhcHBUaWxlR3JvdXAubmF2aWdhdG9yQWN0aW9uTGlua3MubWFwKChhcHBUaWxlKSA9PlxuICAgICAgICAgICAgYXBwVGlsZS5BcHBUaWxlID8gYXBwVGlsZS5BcHBUaWxlLklkIDogYXBwVGlsZS5JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2Uuc2F2ZU9yZGVyQXBwVGlsZXMoYXBwVGlsZUdyb3VwLCBhY3Rpb25MaW5rcywgdHJ1ZSwgYXBwVGlsZUlkVHJhbnNmZXJlZElkKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVGlsZUdyb3VwcyQgfCBhc3luYyBhcyBhcHBUaWxlR3JvdXBzOyBlbHNlIGxvYWRpbmdcIj5cbiAgICA8YnQtdGlsZXMtdmlld2VyXG4gICAgICAgICpuZ0lmPVwiYXBwVGlsZUdyb3VwczsgZWxzZSBlbXB0eVwiXG4gICAgICAgIFthcHBUaWxlR3JvdXBzXT1cImFwcFRpbGVHcm91cHNcIlxuICAgICAgICBbbG9hZGluZ109XCIodmlld0xvYWRpbmckIHwgYXN5bmMpISFcIlxuICAgICAgICBbZWRpdF09XCIoZWRpdCQgfCBhc3luYykhIVwiXG4gICAgICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwiKHN0YWNrQ29udGVudCQgfCBhc3luYykhIVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgKHN0YWNrQ29udGVudENoYW5nZSk9XCJvblN0YWNrQ29udGVudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZUVkaXRIb21lKT1cIm9uQ2xvc2VFZGl0SG9tZSgpXCJcbiAgICAgICAgKHNhdmUpPVwib25FeGl0RWRpdEhvbWUoJGV2ZW50KVwiXG4gICAgICAgIChsaXN0RHJvcHBlZCk9XCJvbkRyb3BHcm91cCgkZXZlbnQpXCJcbiAgICAgICAgKHRhYkNoYW5nZWQpPVwib25TZWxlY3RlZFRhYkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHRvZ2dsZUdyb3VwKT1cIm9uVG9nZ2xlU2hvd0hpZGUoJGV2ZW50KVwiXG4gICAgICAgIChyZXNldEdyb3VwKT1cIm9uUmVzZXQoJGV2ZW50KVwiXG4gICAgICAgIChkZWxldGVHcm91cCk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgKHRpbGVzRHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgIChoaWRlQXBwVGlsZUNsaWNrKT1cIm9uSGlkZUFwcFRpbGUoJGV2ZW50KVwiXG4gICAgICAgIChyZW5hbWVBcHBUaWxlQ2xpY2spPVwib25SZW5hbWVBcHBUaWxlKCRldmVudClcIlxuICAgID48L2J0LXRpbGVzLXZpZXdlcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICA8YnN1LW5vLWRhdGE+PC9ic3Utbm8tZGF0YT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/cdk/drag-drop";
|
|
6
|
-
import * as i3 from "@fundamental-ngx/core/busy-indicator";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/button";
|
|
8
|
-
import * as i5 from "@fundamental-ngx/core/icon";
|
|
9
|
-
import * as i6 from "@fundamental-ngx/core/layout-panel";
|
|
10
|
-
import * as i7 from "@fundamental-ngx/core/title";
|
|
11
|
-
import * as i8 from "@fundamental-ngx/core/panel";
|
|
12
|
-
import * as i9 from "@fundamental-ngx/core/tile";
|
|
13
|
-
import * as i10 from "@fundamental-ngx/core/toolbar";
|
|
14
|
-
import * as i11 from "../actions-link/actions-link.component";
|
|
15
|
-
import * as i12 from "../tile-renderer.directive";
|
|
16
|
-
import * as i13 from "barsa-novin-ray-core";
|
|
17
|
-
export class TilesViewerGroupComponent extends BaseComponent {
|
|
18
|
-
constructor(_el) {
|
|
19
|
-
super();
|
|
20
|
-
this._el = _el;
|
|
21
|
-
this.tilesDropped = new EventEmitter();
|
|
22
|
-
this.hideAppTileClick = new EventEmitter();
|
|
23
|
-
this.renameAppTileClick = new EventEmitter();
|
|
24
|
-
this.toggleGroup = new EventEmitter();
|
|
25
|
-
this.resetGroup = new EventEmitter();
|
|
26
|
-
this.deleteGroup = new EventEmitter();
|
|
27
|
-
this.marginRightTile = null;
|
|
28
|
-
}
|
|
29
|
-
ngAfterViewInit() {
|
|
30
|
-
super.ngAfterViewInit();
|
|
31
|
-
if (this.deviceSize === 's') {
|
|
32
|
-
const t = document.body.clientWidth % 154;
|
|
33
|
-
this.marginRightTile = t / 3;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
onDrop(appTileGroup, event) {
|
|
37
|
-
if (!this.edit || appTileGroup.Locked) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
this.tilesDropped.emit({ appTileGroup, event });
|
|
41
|
-
}
|
|
42
|
-
onAppTileHideClick(appTile) {
|
|
43
|
-
this.hideAppTileClick.emit(appTile);
|
|
44
|
-
}
|
|
45
|
-
onAppTileRenameClick(appTile) {
|
|
46
|
-
this.renameAppTileClick.emit(appTile);
|
|
47
|
-
}
|
|
48
|
-
onDelete(appTileGroup) {
|
|
49
|
-
this.deleteGroup.emit(appTileGroup);
|
|
50
|
-
}
|
|
51
|
-
onToggleShowHide(appTileGroup) {
|
|
52
|
-
this.toggleGroup.emit(appTileGroup);
|
|
53
|
-
}
|
|
54
|
-
onReset(appTileGroup) {
|
|
55
|
-
this.resetGroup.emit(appTileGroup);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
TilesViewerGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerGroupComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
-
TilesViewerGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 [fixed]=\"true\" [attr.editHome]=\"edit\" cdkDrag [cdkDragDisabled]=\"!edit || !stackContent\">\n <fd-layout-panel-header *ngIf=\"edit || stackContent || isAppTileSubGroup\">\n <fd-layout-panel-head>\n <h2 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h2>\n </fd-layout-panel-head>\n <fd-layout-panel-actions *ngIf=\"edit\" 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 <button\n fd-button\n *ngIf=\"appTileGroup.Predefined && appTileGroup.$TileSettingChanged\"\n [label]=\"'Refresh' | bbbTranslate\"\n (click)=\"onReset(appTileGroup)\"\n ></button>\n <button\n *ngIf=\"!appTileGroup.Predefined\"\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n </fd-toolbar>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\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 <ng-container *ngIf=\"!edit\">\n <fd-busy-indicator fd-title *ngIf=\"!appTileGroup.$TilesLoaded\" [loading]=\"true\"></fd-busy-indicator>\n\n <h5 fd-title *ngIf=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"></h5>\n </ng-container>\n <div\n *ngFor=\"let appTile of appTileGroup.navigatorTiles; let k = index\"\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 [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n <fd-tile class=\"add-tile\" *ngIf=\"edit\" [routerLink]=\"['/home/appfinder']\">\n <div>\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\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 [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<ng-container *ngFor=\"let appTileSubGroup of appTileGroup.$Children\">\n <bt-tiles-viewer-group\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</ng-container>\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:.5rem}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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.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: i3.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i6.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage"] }, { kind: "component", type: i6.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i6.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i6.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i6.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i6.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i8.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "component", type: i9.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i11.ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit"] }, { 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: i12.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i13.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerGroupComponent, decorators: [{
|
|
61
|
-
type: Component,
|
|
62
|
-
args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel [fixed]=\"true\" [attr.editHome]=\"edit\" cdkDrag [cdkDragDisabled]=\"!edit || !stackContent\">\n <fd-layout-panel-header *ngIf=\"edit || stackContent || isAppTileSubGroup\">\n <fd-layout-panel-head>\n <h2 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h2>\n </fd-layout-panel-head>\n <fd-layout-panel-actions *ngIf=\"edit\" 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 <button\n fd-button\n *ngIf=\"appTileGroup.Predefined && appTileGroup.$TileSettingChanged\"\n [label]=\"'Refresh' | bbbTranslate\"\n (click)=\"onReset(appTileGroup)\"\n ></button>\n <button\n *ngIf=\"!appTileGroup.Predefined\"\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n </fd-toolbar>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\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 <ng-container *ngIf=\"!edit\">\n <fd-busy-indicator fd-title *ngIf=\"!appTileGroup.$TilesLoaded\" [loading]=\"true\"></fd-busy-indicator>\n\n <h5 fd-title *ngIf=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"></h5>\n </ng-container>\n <div\n *ngFor=\"let appTile of appTileGroup.navigatorTiles; let k = index\"\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 [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n <fd-tile class=\"add-tile\" *ngIf=\"edit\" [routerLink]=\"['/home/appfinder']\">\n <div>\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\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 [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<ng-container *ngFor=\"let appTileSubGroup of appTileGroup.$Children\">\n <bt-tiles-viewer-group\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</ng-container>\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:.5rem}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"] }]
|
|
63
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { appTileGroup: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], stackContent: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], edit: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], rtl: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], isAppTileSubGroup: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], deviceSize: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], tilesDropped: [{
|
|
76
|
-
type: Output
|
|
77
|
-
}], hideAppTileClick: [{
|
|
78
|
-
type: Output
|
|
79
|
-
}], renameAppTileClick: [{
|
|
80
|
-
type: Output
|
|
81
|
-
}], toggleGroup: [{
|
|
82
|
-
type: Output
|
|
83
|
-
}], resetGroup: [{
|
|
84
|
-
type: Output
|
|
85
|
-
}], deleteGroup: [{
|
|
86
|
-
type: Output
|
|
87
|
-
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvdGlsZXMtdmlld2VyLWdyb3VwL3RpbGVzLXZpZXdlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGVzLXZpZXdlci1ncm91cC90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRakcsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGFBQWE7SUFtQnhELFlBQXNCLEdBQWU7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEVSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWDNCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBR3JDLENBQUM7UUFDSyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUMzRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUM3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3RELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNyRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRWhFLG9CQUFlLEdBQWtCLElBQUksQ0FBQztJQUd0QyxDQUFDO0lBRUQsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztZQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUNGLFlBQWlDLEVBQ2pDLEtBQXFFO1FBRXJFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBNEI7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsT0FBNEI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLFlBQWlDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUFpQztRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQWlDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O3NIQXhEUSx5QkFBeUI7MEdBQXpCLHlCQUF5QixxY0NYdEMsc3JKQTRHQSwrK0lEakdhLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTtpR0FHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFJRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtdGlsZXMtdmlld2VyLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGlsZXMtdmlld2VyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aWxlcy12aWV3ZXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaWxlc1ZpZXdlckdyb3VwQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHN0YWNrQ29udGVudDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBlZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0FwcFRpbGVTdWJHcm91cDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG5cbiAgICBAT3V0cHV0KCkgdGlsZXNEcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICAgICAgZXZlbnQ6IENka0RyYWdEcm9wPHsgaXNUaWxlOiBib29sZWFuOyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0+O1xuICAgIH0+KCk7XG4gICAgQE91dHB1dCgpIGhpZGVBcHBUaWxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIHJlbmFtZUFwcFRpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgdG9nZ2xlR3JvdXAgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIHJlc2V0R3JvdXAgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuXG4gICAgbWFyZ2luUmlnaHRUaWxlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XG4gICAgICAgICAgICBjb25zdCB0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAlIDE1NDtcbiAgICAgICAgICAgIHRoaXMubWFyZ2luUmlnaHRUaWxlID0gdCAvIDM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyb3AoXG4gICAgICAgIGFwcFRpbGVHcm91cDogTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICAgICAgZXZlbnQ6IENka0RyYWdEcm9wPHsgaXNUaWxlOiBib29sZWFuOyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0IHx8IGFwcFRpbGVHcm91cC5Mb2NrZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpbGVzRHJvcHBlZC5lbWl0KHsgYXBwVGlsZUdyb3VwLCBldmVudCB9KTtcbiAgICB9XG4gICAgb25BcHBUaWxlSGlkZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlQXBwVGlsZUNsaWNrLmVtaXQoYXBwVGlsZSk7XG4gICAgfVxuICAgIG9uQXBwVGlsZVJlbmFtZUNsaWNrKGFwcFRpbGU6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5hbWVBcHBUaWxlQ2xpY2suZW1pdChhcHBUaWxlKTtcbiAgICB9XG4gICAgb25EZWxldGUoYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVsZXRlR3JvdXAuZW1pdChhcHBUaWxlR3JvdXApO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlU2hvd0hpZGUoYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG9nZ2xlR3JvdXAuZW1pdChhcHBUaWxlR3JvdXApO1xuICAgIH1cblxuICAgIG9uUmVzZXQoYXBwVGlsZUdyb3VwOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXRHcm91cC5lbWl0KGFwcFRpbGVHcm91cCk7XG4gICAgfVxufVxuIiwiPGZkLWxheW91dC1wYW5lbCBbZml4ZWRdPVwidHJ1ZVwiIFthdHRyLmVkaXRIb21lXT1cImVkaXRcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXQgfHwgIXN0YWNrQ29udGVudFwiPlxuICAgIDxmZC1sYXlvdXQtcGFuZWwtaGVhZGVyICpuZ0lmPVwiZWRpdCB8fCBzdGFja0NvbnRlbnQgfHwgaXNBcHBUaWxlU3ViR3JvdXBcIj5cbiAgICAgICAgPGZkLWxheW91dC1wYW5lbC1oZWFkPlxuICAgICAgICAgICAgPGgyIGZkLWxheW91dC1wYW5lbC10aXRsZT57eyBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGl0bGUgfX08L2gyPlxuICAgICAgICA8L2ZkLWxheW91dC1wYW5lbC1oZWFkPlxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnMgKm5nSWY9XCJlZGl0XCIgY2xhc3M9XCJncm91cC1idG5zXCI+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwiZmFsc2VcIiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JWaXNpYmxlID8gKCdTaG93JyB8IGJiYlRyYW5zbGF0ZSkgOiAoJ0hpZGUnIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVNob3dIaWRlKGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcFRpbGVHcm91cC5QcmVkZWZpbmVkICYmIGFwcFRpbGVHcm91cC4kVGlsZVNldHRpbmdDaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidSZWZyZXNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlc2V0KGFwcFRpbGVHcm91cClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWFwcFRpbGVHcm91cC5QcmVkZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRGVsZXRlJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ25lZ2F0aXZlJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZShhcHBUaWxlR3JvdXApXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnM+XG4gICAgPC9mZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgIDxmZC1sYXlvdXQtcGFuZWwtYm9keSBbYmxlZWRdPVwiIXN0YWNrQ29udGVudFwiIFtjbGFzcy5zbWFsbC1zaXplXT1cImRldmljZVNpemUgPT09ICdzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRpbGUtd3JhcHBlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHJ0bDogcnRsLCBsdHI6ICFydGwsIHM6IGRldmljZVNpemUgPT09ICdzJyB9XCJcbiAgICAgICAgICAgIGZkLXBhbmVsLWNvbnRlbnRcbiAgICAgICAgICAgICN0aWxlcz1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcChhcHBUaWxlR3JvdXAsICRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiYWN0aW9uTGlua3NcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ7XG4gICAgICAgICAgICAgICAgaXNUaWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXMgfHwgW11cbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWVkaXRcIj5cbiAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgZmQtdGl0bGUgKm5nSWY9XCIhYXBwVGlsZUdyb3VwLiRUaWxlc0xvYWRlZFwiIFtsb2FkaW5nXT1cInRydWVcIj48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxuXG4gICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlICpuZ0lmPVwiIWFwcFRpbGVHcm91cC5uYXZpZ2F0b3JUaWxlcy5sZW5ndGggJiYgYXBwVGlsZUdyb3VwLiRUaWxlc0xvYWRlZFwiPjwvaDU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYXBwVGlsZSBvZiBhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGlsZXM7IGxldCBrID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5lZGl0LWhvbWVdPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzZG91YmxlXT1cImFwcFRpbGUuQ29tcG9uZW50Py5TZXR0aW5ncz8uVGlsZVNldHRpbmc/LklzRG91YmxlXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdCB8fCBhcHBUaWxlR3JvdXAuTG9ja2VkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBbZHluYW1pY0NvbW1hbmRdPVwiYXBwVGlsZS5EeW5hbWljQ29tbWFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtlbmFibGVDb21tYW5kXT1cIiFlZGl0ICYmIGFwcFRpbGUuQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdGlsZVJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFwcFRpbGVcIlxuICAgICAgICAgICAgICAgICAgICBbZWRpdF09XCJlZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJhcHBUaWxlLkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChoaWRlQ2xpY2spPVwib25BcHBUaWxlSGlkZUNsaWNrKGFwcFRpbGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKHJlbmFtZUNsaWNrKT1cIm9uQXBwVGlsZVJlbmFtZUNsaWNrKGFwcFRpbGUpXCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZmQtdGlsZSBjbGFzcz1cImFkZC10aWxlXCIgKm5nSWY9XCJlZGl0XCIgW3JvdXRlckxpbmtdPVwiWycvaG9tZS9hcHBmaW5kZXInXVwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiYWRkXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mZC10aWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWxheW91dC1wYW5lbC1ib2R5PlxuPC9mZC1sYXlvdXQtcGFuZWw+XG5cbjxidC1hY3Rpb25zLWxpbmtcbiAgICBbY2xhc3MuYWN0aW9ucy1saW5rLWVkaXQtaG9tZV09XCJlZGl0XCJcbiAgICBbYWN0aW9uc0xpbmtdPVwiYXBwVGlsZUdyb3VwLm5hdmlnYXRvckFjdGlvbkxpbmtzXCJcbiAgICBbZWRpdF09XCJlZGl0XCJcbiAgICBbc3R5bGUubWluLWhlaWdodF09XCJlZGl0ID8gJzRyZW0nIDogJ2F1dG8nXCJcbiAgICBjZGtEcm9wTGlzdFxuICAgICNhY3Rpb25MaW5rcz1cImNka0Ryb3BMaXN0XCJcbiAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwidGlsZXNcIlxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKGFwcFRpbGVHcm91cCwgJGV2ZW50KVwiXG4gICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ7XG4gICAgICAgIGlzVGlsZTogZmFsc2UsXG4gICAgICAgIGl0ZW1zOiBhcHBUaWxlR3JvdXAubmF2aWdhdG9yQWN0aW9uTGlua3MgfHwgW11cbiAgICB9XCJcbj5cbjwvYnQtYWN0aW9ucy1saW5rPlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXBwVGlsZVN1Ykdyb3VwIG9mIGFwcFRpbGVHcm91cC4kQ2hpbGRyZW5cIj5cbiAgICA8YnQtdGlsZXMtdmlld2VyLWdyb3VwXG4gICAgICAgIFthcHBUaWxlR3JvdXBdPVwiYXBwVGlsZVN1Ykdyb3VwXCJcbiAgICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW3N0YWNrQ29udGVudF09XCJzdGFja0NvbnRlbnRcIlxuICAgICAgICBbaXNBcHBUaWxlU3ViR3JvdXBdPVwidHJ1ZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAodGlsZXNEcm9wcGVkKT1cInRpbGVzRHJvcHBlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAocmVuYW1lQXBwVGlsZUNsaWNrKT1cInJlbmFtZUFwcFRpbGVDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAoaGlkZUFwcFRpbGVDbGljayk9XCJoaWRlQXBwVGlsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyZXNldEdyb3VwKT1cInJlc2V0R3JvdXAuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGRlbGV0ZUdyb3VwKT1cImRlbGV0ZUdyb3VwLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh0b2dnbGVHcm91cCk9XCJ0b2dnbGVHcm91cC5lbWl0KCRldmVudClcIlxuICAgID48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cbjwvbmctY29udGFpbmVyPlxuIl19
|