phoenix-ui-components 2.3.0 → 2.5.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/README.md +1 -1
- package/_theming.scss +5 -1
- package/dist/README.md +1 -1
- package/dist/components/embed-menu/embed-menu.component.d.ts +3 -0
- package/dist/components/embed-menu/experiment-link/experiment-link.component.d.ts +3 -0
- package/dist/components/loader/loader.component.d.ts +3 -0
- package/dist/components/nav/nav.component.d.ts +3 -0
- package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +3 -0
- package/dist/components/phoenix-menu/pheonix-menu-item/phoenix-menu-item.component.d.ts +3 -0
- package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +3 -0
- package/dist/components/phoenix-ui.module.d.ts +56 -0
- package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +3 -0
- package/dist/components/ui-menu/animate-event/animate-event.component.d.ts +3 -0
- package/dist/components/ui-menu/ar-toggle/ar-toggle.component.d.ts +3 -0
- package/dist/components/ui-menu/auto-rotate/auto-rotate.component.d.ts +3 -0
- package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +6 -0
- package/dist/components/ui-menu/collections-info/collections-info.component.d.ts +3 -0
- package/dist/components/ui-menu/dark-theme/dark-theme.component.d.ts +3 -0
- package/dist/components/ui-menu/event-selector/event-selector.component.d.ts +3 -0
- package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +3 -0
- package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +5 -0
- package/dist/components/ui-menu/info-panel/info-panel.component.d.ts +3 -0
- package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +3 -0
- package/dist/components/ui-menu/io-options/io-options.component.d.ts +3 -0
- package/dist/components/ui-menu/main-view-toggle/main-view-toggle.component.d.ts +3 -0
- package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +3 -0
- package/dist/components/ui-menu/object-clipping/object-clipping.component.d.ts +3 -0
- package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +3 -0
- package/dist/components/ui-menu/object-selection/object-selection.component.d.ts +3 -0
- package/dist/components/ui-menu/overlay/overlay.component.d.ts +3 -0
- package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +3 -0
- package/dist/components/ui-menu/overlay-view/overlay-view.component.d.ts +3 -0
- package/dist/components/ui-menu/performance-toggle/performance-toggle.component.d.ts +3 -0
- package/dist/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.d.ts +10 -2
- package/dist/components/ui-menu/share-link/share-link.component.d.ts +3 -0
- package/dist/components/ui-menu/ss-mode/ss-mode.component.d.ts +3 -0
- package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +3 -0
- package/dist/components/ui-menu/tree-menu/tree-menu.component.d.ts +3 -0
- package/dist/components/ui-menu/ui-menu.component.d.ts +3 -0
- package/dist/components/ui-menu/view-options/view-options.component.d.ts +3 -0
- package/dist/components/ui-menu/vr-toggle/vr-toggle.component.d.ts +3 -0
- package/dist/components/ui-menu/zoom-controls/zoom-controls.component.d.ts +3 -0
- package/dist/esm2020/components/embed-menu/embed-menu.component.mjs +17 -0
- package/dist/esm2020/components/embed-menu/experiment-link/experiment-link.component.mjs +18 -0
- package/dist/esm2020/components/loader/loader.component.mjs +19 -0
- package/dist/esm2020/components/nav/nav.component.mjs +14 -0
- package/dist/esm2020/components/phoenix-menu/config/config-slider/config-slider.component.mjs +38 -0
- package/dist/{esm2015/components/phoenix-menu/index.js → esm2020/components/phoenix-menu/index.mjs} +1 -1
- package/dist/esm2020/components/phoenix-menu/pheonix-menu-item/phoenix-menu-item.component.mjs +32 -0
- package/dist/esm2020/components/phoenix-menu/phoenix-menu.component.mjs +14 -0
- package/dist/esm2020/components/phoenix-ui.module.mjs +201 -0
- package/dist/esm2020/components/ui-menu/animate-camera/animate-camera.component.mjs +76 -0
- package/dist/esm2020/components/ui-menu/animate-event/animate-event.component.mjs +25 -0
- package/dist/esm2020/components/ui-menu/ar-toggle/ar-toggle.component.mjs +47 -0
- package/dist/esm2020/components/ui-menu/auto-rotate/auto-rotate.component.mjs +21 -0
- package/dist/esm2020/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +81 -0
- package/dist/esm2020/components/ui-menu/collections-info/collections-info.component.mjs +32 -0
- package/dist/esm2020/components/ui-menu/dark-theme/dark-theme.component.mjs +24 -0
- package/dist/esm2020/components/ui-menu/event-selector/event-selector.component.mjs +24 -0
- package/dist/esm2020/components/ui-menu/experiment-info/experiment-info.component.mjs +26 -0
- package/dist/{esm2015/components/ui-menu/index.js → esm2020/components/ui-menu/index.mjs} +1 -1
- package/dist/esm2020/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +37 -0
- package/dist/esm2020/components/ui-menu/info-panel/info-panel.component.mjs +49 -0
- package/dist/esm2020/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +196 -0
- package/dist/esm2020/components/ui-menu/io-options/io-options.component.mjs +28 -0
- package/dist/esm2020/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +24 -0
- package/dist/esm2020/components/ui-menu/menu-toggle/menu-toggle.component.mjs +24 -0
- package/dist/esm2020/components/ui-menu/object-clipping/object-clipping.component.mjs +31 -0
- package/dist/esm2020/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +24 -0
- package/dist/esm2020/components/ui-menu/object-selection/object-selection.component.mjs +36 -0
- package/dist/esm2020/components/ui-menu/overlay/overlay.component.mjs +99 -0
- package/dist/esm2020/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +53 -0
- package/dist/esm2020/components/ui-menu/overlay-view/overlay-view.component.mjs +32 -0
- package/dist/esm2020/components/ui-menu/performance-toggle/performance-toggle.component.mjs +21 -0
- package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +73 -0
- package/dist/esm2020/components/ui-menu/share-link/share-link.component.mjs +20 -0
- package/dist/esm2020/components/ui-menu/ss-mode/ss-mode.component.mjs +41 -0
- package/dist/esm2020/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +33 -0
- package/dist/esm2020/components/ui-menu/tree-menu/tree-menu.component.mjs +71 -0
- package/dist/esm2020/components/ui-menu/ui-menu.component.mjs +43 -0
- package/dist/esm2020/components/ui-menu/view-options/view-options.component.mjs +34 -0
- package/dist/esm2020/components/ui-menu/vr-toggle/vr-toggle.component.mjs +44 -0
- package/dist/esm2020/components/ui-menu/zoom-controls/zoom-controls.component.mjs +61 -0
- package/dist/esm2020/phoenix-ui-components.mjs +5 -0
- package/dist/esm2020/public_api.mjs +9 -0
- package/dist/esm2020/services/event-display.service.mjs +23 -0
- package/dist/esm2020/services/extras/attribute.pipe.mjs +33 -0
- package/dist/{esm2015/services/extras/event-data-import.js → esm2020/services/extras/event-data-import.mjs} +1 -1
- package/dist/esm2020/services/index.mjs +4 -0
- package/dist/fesm2015/phoenix-ui-components.mjs +1644 -0
- package/dist/fesm2015/phoenix-ui-components.mjs.map +1 -0
- package/dist/fesm2020/phoenix-ui-components.mjs +1644 -0
- package/dist/fesm2020/phoenix-ui-components.mjs.map +1 -0
- package/dist/phoenix-ui-components.d.ts +2 -6
- package/dist/{index.d.ts → public_api.d.ts} +2 -0
- package/dist/services/event-display.service.d.ts +3 -0
- package/dist/services/extras/attribute.pipe.d.ts +3 -0
- package/dist/services/index.d.ts +1 -0
- package/package.json +13 -13
- package/dist/bundles/phoenix-ui-components.umd.js +0 -2147
- package/dist/bundles/phoenix-ui-components.umd.js.map +0 -1
- package/dist/esm2015/components/embed-menu/embed-menu.component.js +0 -11
- package/dist/esm2015/components/embed-menu/experiment-link/experiment-link.component.js +0 -17
- package/dist/esm2015/components/loader/loader.component.js +0 -18
- package/dist/esm2015/components/nav/nav.component.js +0 -14
- package/dist/esm2015/components/phoenix-menu/config/config-slider/config-slider.component.js +0 -32
- package/dist/esm2015/components/phoenix-menu/pheonix-menu-item/phoenix-menu-item.component.js +0 -29
- package/dist/esm2015/components/phoenix-menu/phoenix-menu.component.js +0 -14
- package/dist/esm2015/components/phoenix-ui.module.js +0 -94
- package/dist/esm2015/components/ui-menu/animate-camera/animate-camera.component.js +0 -77
- package/dist/esm2015/components/ui-menu/animate-event/animate-event.component.js +0 -27
- package/dist/esm2015/components/ui-menu/ar-toggle/ar-toggle.component.js +0 -46
- package/dist/esm2015/components/ui-menu/auto-rotate/auto-rotate.component.js +0 -23
- package/dist/esm2015/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.js +0 -72
- package/dist/esm2015/components/ui-menu/collections-info/collections-info.component.js +0 -34
- package/dist/esm2015/components/ui-menu/dark-theme/dark-theme.component.js +0 -26
- package/dist/esm2015/components/ui-menu/event-selector/event-selector.component.js +0 -25
- package/dist/esm2015/components/ui-menu/experiment-info/experiment-info.component.js +0 -27
- package/dist/esm2015/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.js +0 -36
- package/dist/esm2015/components/ui-menu/info-panel/info-panel.component.js +0 -51
- package/dist/esm2015/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.js +0 -202
- package/dist/esm2015/components/ui-menu/io-options/io-options.component.js +0 -31
- package/dist/esm2015/components/ui-menu/main-view-toggle/main-view-toggle.component.js +0 -25
- package/dist/esm2015/components/ui-menu/menu-toggle/menu-toggle.component.js +0 -20
- package/dist/esm2015/components/ui-menu/object-clipping/object-clipping.component.js +0 -30
- package/dist/esm2015/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.js +0 -25
- package/dist/esm2015/components/ui-menu/object-selection/object-selection.component.js +0 -39
- package/dist/esm2015/components/ui-menu/overlay/overlay.component.js +0 -90
- package/dist/esm2015/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.js +0 -52
- package/dist/esm2015/components/ui-menu/overlay-view/overlay-view.component.js +0 -34
- package/dist/esm2015/components/ui-menu/performance-toggle/performance-toggle.component.js +0 -23
- package/dist/esm2015/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.js +0 -64
- package/dist/esm2015/components/ui-menu/share-link/share-link.component.js +0 -22
- package/dist/esm2015/components/ui-menu/ss-mode/ss-mode.component.js +0 -43
- package/dist/esm2015/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.js +0 -32
- package/dist/esm2015/components/ui-menu/tree-menu/tree-menu.component.js +0 -71
- package/dist/esm2015/components/ui-menu/ui-menu.component.js +0 -22
- package/dist/esm2015/components/ui-menu/view-options/view-options.component.js +0 -33
- package/dist/esm2015/components/ui-menu/vr-toggle/vr-toggle.component.js +0 -45
- package/dist/esm2015/components/ui-menu/zoom-controls/zoom-controls.component.js +0 -63
- package/dist/esm2015/index.js +0 -7
- package/dist/esm2015/phoenix-ui-components.js +0 -10
- package/dist/esm2015/services/event-display.service.js +0 -22
- package/dist/esm2015/services/extras/attribute.pipe.js +0 -29
- package/dist/esm2015/services/index.js +0 -3
- package/dist/fesm2015/phoenix-ui-components.js +0 -1619
- package/dist/fesm2015/phoenix-ui-components.js.map +0 -1
- package/dist/phoenix-ui-components.metadata.json +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { ResizeSensor } from 'css-element-queries';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/cdk/drag-drop";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/material/tooltip";
|
|
7
|
+
/**
|
|
8
|
+
* Component for overlay panel.
|
|
9
|
+
*/
|
|
10
|
+
export class OverlayComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
/** If the overlay is open or not. */
|
|
13
|
+
this.active = false;
|
|
14
|
+
/** If the overlay is resizable. */
|
|
15
|
+
this.resizable = false;
|
|
16
|
+
/** If the overlay body is transparent or not. */
|
|
17
|
+
this.transparentBody = false;
|
|
18
|
+
/** If the overlay body is visible or not. */
|
|
19
|
+
this.showBody = true;
|
|
20
|
+
/** Minimum resizable width. */
|
|
21
|
+
this.MIN_RES_WIDTH = 300;
|
|
22
|
+
/** Minimum resizable height */
|
|
23
|
+
this.MIN_RES_HEIGHT = 100;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Move the resizable handle to the bottom right after the component is created.
|
|
27
|
+
*/
|
|
28
|
+
ngAfterViewInit() {
|
|
29
|
+
if (this.resizable) {
|
|
30
|
+
const resizeHandleElement = this.resizeHandleCorner.nativeElement;
|
|
31
|
+
resizeHandleElement.style.bottom = '0';
|
|
32
|
+
resizeHandleElement.style.right = '0';
|
|
33
|
+
new ResizeSensor(this.overlayCard.nativeElement, () => {
|
|
34
|
+
this.resetHandlePosition();
|
|
35
|
+
});
|
|
36
|
+
window.addEventListener('resize', () => {
|
|
37
|
+
this.resetHandlePosition();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resize the overlay card when the resize handle is dragged.
|
|
43
|
+
*/
|
|
44
|
+
onResize() {
|
|
45
|
+
const resizeHandleElement = this.resizeHandleCorner.nativeElement;
|
|
46
|
+
const overlayCardElement = this.overlayCard.nativeElement;
|
|
47
|
+
const dragRect = resizeHandleElement.getBoundingClientRect();
|
|
48
|
+
const overlayRect = overlayCardElement.getBoundingClientRect();
|
|
49
|
+
const width = dragRect.left - overlayRect.left + dragRect.width;
|
|
50
|
+
const height = dragRect.top - overlayRect.top + dragRect.height;
|
|
51
|
+
this.setHandleTransform(overlayRect, dragRect);
|
|
52
|
+
if (width > this.MIN_RES_WIDTH && height > this.MIN_RES_HEIGHT) {
|
|
53
|
+
overlayCardElement.style.width = width + 'px';
|
|
54
|
+
overlayCardElement.style.height = height + 'px';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Reset resize handle position.
|
|
59
|
+
*/
|
|
60
|
+
resetHandlePosition() {
|
|
61
|
+
const resizeHandleElement = this.resizeHandleCorner.nativeElement;
|
|
62
|
+
this.setHandleTransform(this.overlayCard.nativeElement.getBoundingClientRect(), resizeHandleElement.getBoundingClientRect());
|
|
63
|
+
resizeHandleElement.style.bottom = null;
|
|
64
|
+
resizeHandleElement.style.right = null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Set the position of the resize handle using transform3d.
|
|
68
|
+
* @param overlayRect Bounding client rectangle of the overlay card.
|
|
69
|
+
* @param dragRect Bounding client rectangle of the resize handle.
|
|
70
|
+
*/
|
|
71
|
+
setHandleTransform(overlayRect, dragRect) {
|
|
72
|
+
const translateX = overlayRect.width - dragRect.width;
|
|
73
|
+
const translateY = overlayRect.height - dragRect.height;
|
|
74
|
+
this.resizeHandleCorner.nativeElement.style.transform = `translate3d(${translateX}px, ${translateY}px, 0)`;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
OverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
OverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: OverlayComponent, selector: "app-overlay", inputs: { overlayTitle: "overlayTitle", active: "active", icon: "icon", resizable: "resizable", transparentBody: "transparentBody" }, viewQueries: [{ propertyName: "overlayCard", first: true, predicate: ["overlayCard"], descendants: true }, { propertyName: "resizeHandleCorner", first: true, predicate: ["resizeHandleCorner"], descendants: true }], ngImport: i0, template: "<div\n #overlayCard\n class=\"overlay-card card\"\n [hidden]=\"!active\"\n cdkDrag\n cdkDragBoundary=\"body\"\n>\n <div\n class=\"card-header d-flex justify-content-between\"\n [ngClass]=\"{ 'with-body': showBody }\"\n cdkDragHandle\n *ngIf=\"overlayTitle\"\n >\n <div class=\"align-self-center card-icon\" *ngIf=\"icon\">\n <svg>\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n </div>\n <h5 class=\"align-self-center m-0 px-2\">{{ overlayTitle }}</h5>\n <button\n class=\"align-self-center card-icon btn-blank expandCollapse\"\n matTooltip=\"Expand / Collapse\"\n matTooltipPosition=\"right\"\n [ngClass]=\"{ expand: showBody }\"\n (click)=\"showBody = !showBody\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n <div\n class=\"overlay-card-content\"\n *ngIf=\"showBody\"\n [ngClass]=\"{ 'transparent-bg': transparentBody }\"\n >\n <ng-content></ng-content>\n </div>\n <!-- Making the overlay resizable -->\n <span\n #resizeHandleCorner\n class=\"resize-handle corner\"\n *ngIf=\"resizable\"\n [hidden]=\"!showBody\"\n cdkDrag\n (cdkDragMoved)=\"onResize()\"\n ></span>\n</div>\n", styles: [".overlay-card.card{color:var(--phoenix-text-color);background:none;max-width:100vw;font-size:12px;min-width:300px;height:100%;max-height:70vh;box-shadow:none;border:none;position:relative;z-index:200}.overlay-card.card .card-header{width:12rem;background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);padding:.4rem .8rem;border-radius:10px;border:none;cursor:move;text-align:center;transition:all .2s}.overlay-card.card .card-header.with-body{border-bottom-left-radius:0;border-bottom-right-radius:0}.overlay-card.card .card-header .card-icon{display:flex;height:.7rem;width:.7rem}.overlay-card.card .card-header h5{font-size:.9rem}.overlay-card.card .card-header .expandCollapse{cursor:pointer;transition:all .2s}.overlay-card.card .card-header .expandCollapse.expand{transform:scaleY(-1)}.overlay-card.card .card-header .expandCollapse svg{width:100%;height:100%}.overlay-card.card .overlay-card-content{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);border-radius:0 10px 10px;overflow:auto;height:100%}.overlay-card.card .overlay-card-content.transparent-bg{background:none}.overlay-card.card .list-group{color:var(--phoenix-text-color-secondary);background:var(--phoenix-background-color-secondary);max-height:40vh;overflow:auto}.overlay-card.card .list-group .list-group-item{background-color:var(--phoenix-background-color-secondary);border-color:var(--phoenix-border)}.overlay-card.card .resize-handle{width:1rem;height:1rem;cursor:nwse-resize;position:absolute}.overlay-card.card .resize-handle.corner{border-right:.2rem solid var(--phoenix-text-color);border-bottom:.2rem solid var(--phoenix-text-color)}\n"], directives: [{ type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'app-overlay', encapsulation: ViewEncapsulation.None, template: "<div\n #overlayCard\n class=\"overlay-card card\"\n [hidden]=\"!active\"\n cdkDrag\n cdkDragBoundary=\"body\"\n>\n <div\n class=\"card-header d-flex justify-content-between\"\n [ngClass]=\"{ 'with-body': showBody }\"\n cdkDragHandle\n *ngIf=\"overlayTitle\"\n >\n <div class=\"align-self-center card-icon\" *ngIf=\"icon\">\n <svg>\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n </div>\n <h5 class=\"align-self-center m-0 px-2\">{{ overlayTitle }}</h5>\n <button\n class=\"align-self-center card-icon btn-blank expandCollapse\"\n matTooltip=\"Expand / Collapse\"\n matTooltipPosition=\"right\"\n [ngClass]=\"{ expand: showBody }\"\n (click)=\"showBody = !showBody\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n <div\n class=\"overlay-card-content\"\n *ngIf=\"showBody\"\n [ngClass]=\"{ 'transparent-bg': transparentBody }\"\n >\n <ng-content></ng-content>\n </div>\n <!-- Making the overlay resizable -->\n <span\n #resizeHandleCorner\n class=\"resize-handle corner\"\n *ngIf=\"resizable\"\n [hidden]=\"!showBody\"\n cdkDrag\n (cdkDragMoved)=\"onResize()\"\n ></span>\n</div>\n", styles: [".overlay-card.card{color:var(--phoenix-text-color);background:none;max-width:100vw;font-size:12px;min-width:300px;height:100%;max-height:70vh;box-shadow:none;border:none;position:relative;z-index:200}.overlay-card.card .card-header{width:12rem;background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);padding:.4rem .8rem;border-radius:10px;border:none;cursor:move;text-align:center;transition:all .2s}.overlay-card.card .card-header.with-body{border-bottom-left-radius:0;border-bottom-right-radius:0}.overlay-card.card .card-header .card-icon{display:flex;height:.7rem;width:.7rem}.overlay-card.card .card-header h5{font-size:.9rem}.overlay-card.card .card-header .expandCollapse{cursor:pointer;transition:all .2s}.overlay-card.card .card-header .expandCollapse.expand{transform:scaleY(-1)}.overlay-card.card .card-header .expandCollapse svg{width:100%;height:100%}.overlay-card.card .overlay-card-content{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);border-radius:0 10px 10px;overflow:auto;height:100%}.overlay-card.card .overlay-card-content.transparent-bg{background:none}.overlay-card.card .list-group{color:var(--phoenix-text-color-secondary);background:var(--phoenix-background-color-secondary);max-height:40vh;overflow:auto}.overlay-card.card .list-group .list-group-item{background-color:var(--phoenix-background-color-secondary);border-color:var(--phoenix-border)}.overlay-card.card .resize-handle{width:1rem;height:1rem;cursor:nwse-resize;position:absolute}.overlay-card.card .resize-handle.corner{border-right:.2rem solid var(--phoenix-text-color);border-bottom:.2rem solid var(--phoenix-text-color)}\n"] }]
|
|
82
|
+
}], propDecorators: { overlayTitle: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], active: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], icon: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], resizable: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], transparentBody: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], overlayCard: [{
|
|
93
|
+
type: ViewChild,
|
|
94
|
+
args: ['overlayCard']
|
|
95
|
+
}], resizeHandleCorner: [{
|
|
96
|
+
type: ViewChild,
|
|
97
|
+
args: ['resizeHandleCorner']
|
|
98
|
+
}] } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L292ZXJsYXkvb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFFbkQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBU0UscUNBQXFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHakMsbUNBQW1DO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDcEMsaURBQWlEO1FBQ3hDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQzFDLDZDQUE2QztRQUM3QyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBVXpCLCtCQUErQjtRQUN2QixrQkFBYSxHQUFXLEdBQUcsQ0FBQztRQUNwQywrQkFBK0I7UUFDdkIsbUJBQWMsR0FBVyxHQUFHLENBQUM7S0FtRXRDO0lBakVDOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7WUFDbEUsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDdkMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFFdEMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztRQUNsRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBRTFELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUUvRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDOUQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzlDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7UUFFbEUsSUFBSSxDQUFDLGtCQUFrQixDQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxFQUN0RCxtQkFBbUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUM1QyxDQUFDO1FBRUYsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDeEMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxrQkFBa0IsQ0FBQyxXQUFnQixFQUFFLFFBQWE7UUFDeEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsZUFBZSxVQUFVLE9BQU8sVUFBVSxRQUFRLENBQUM7SUFDN0csQ0FBQzs7NkdBM0ZVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLGdaQ25CN0IsK3dDQWdEQTsyRkQ3QmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGFBQWEsaUJBR1IsaUJBQWlCLENBQUMsSUFBSTs4QkFJNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFTb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUVTLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplU2Vuc29yIH0gZnJvbSAnY3NzLWVsZW1lbnQtcXVlcmllcyc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBvdmVybGF5IHBhbmVsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBUaXRsZSBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgQElucHV0KCkgb3ZlcmxheVRpdGxlOiBzdHJpbmc7XG4gIC8qKiBJZiB0aGUgb3ZlcmxheSBpcyBvcGVuIG9yIG5vdC4gKi9cbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBJY29uIG9mIHRoZSBvdmVybGF5IGhlYWRlci4gKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICAvKiogSWYgdGhlIG92ZXJsYXkgaXMgcmVzaXphYmxlLiAqL1xuICBASW5wdXQoKSByZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIElmIHRoZSBvdmVybGF5IGJvZHkgaXMgdHJhbnNwYXJlbnQgb3Igbm90LiAqL1xuICBASW5wdXQoKSB0cmFuc3BhcmVudEJvZHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIElmIHRoZSBvdmVybGF5IGJvZHkgaXMgdmlzaWJsZSBvciBub3QuICovXG4gIHNob3dCb2R5OiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAvLyAqIEJlbG93IGNvZGUgaXMgc3BlY2lmaWMgdG8gdGhlIG92ZXJsYXkgcmVzaXplIGZlYXR1cmUuIChMT09LIElOVE8gQ1NTIFJFU0laRSkgKlxuICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gIC8qKiBDb21wbGV0ZSBvdmVybGF5IGNhcmQgY29udGFpbmluZyBib3RoIGhlYWRlciBhbmQgYm9keS4gKi9cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNhcmQnKSBvdmVybGF5Q2FyZDogRWxlbWVudFJlZjtcbiAgLyoqIEhhbmRsZSBmb3IgcmVzaXppbmcgdGhlIG92ZXJsYXkuICovXG4gIEBWaWV3Q2hpbGQoJ3Jlc2l6ZUhhbmRsZUNvcm5lcicpIHJlc2l6ZUhhbmRsZUNvcm5lcjogRWxlbWVudFJlZjtcbiAgLyoqIE1pbmltdW0gcmVzaXphYmxlIHdpZHRoLiAqL1xuICBwcml2YXRlIE1JTl9SRVNfV0lEVEg6IG51bWJlciA9IDMwMDtcbiAgLyoqIE1pbmltdW0gcmVzaXphYmxlIGhlaWdodCAqL1xuICBwcml2YXRlIE1JTl9SRVNfSEVJR0hUOiBudW1iZXIgPSAxMDA7XG5cbiAgLyoqXG4gICAqIE1vdmUgdGhlIHJlc2l6YWJsZSBoYW5kbGUgdG8gdGhlIGJvdHRvbSByaWdodCBhZnRlciB0aGUgY29tcG9uZW50IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XG4gICAgICBjb25zdCByZXNpemVIYW5kbGVFbGVtZW50ID0gdGhpcy5yZXNpemVIYW5kbGVDb3JuZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIHJlc2l6ZUhhbmRsZUVsZW1lbnQuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgcmVzaXplSGFuZGxlRWxlbWVudC5zdHlsZS5yaWdodCA9ICcwJztcblxuICAgICAgbmV3IFJlc2l6ZVNlbnNvcih0aGlzLm92ZXJsYXlDYXJkLm5hdGl2ZUVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldEhhbmRsZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldEhhbmRsZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzaXplIHRoZSBvdmVybGF5IGNhcmQgd2hlbiB0aGUgcmVzaXplIGhhbmRsZSBpcyBkcmFnZ2VkLlxuICAgKi9cbiAgb25SZXNpemUoKSB7XG4gICAgY29uc3QgcmVzaXplSGFuZGxlRWxlbWVudCA9IHRoaXMucmVzaXplSGFuZGxlQ29ybmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgb3ZlcmxheUNhcmRFbGVtZW50ID0gdGhpcy5vdmVybGF5Q2FyZC5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgZHJhZ1JlY3QgPSByZXNpemVIYW5kbGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG92ZXJsYXlSZWN0ID0gb3ZlcmxheUNhcmRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBkcmFnUmVjdC5sZWZ0IC0gb3ZlcmxheVJlY3QubGVmdCArIGRyYWdSZWN0LndpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGRyYWdSZWN0LnRvcCAtIG92ZXJsYXlSZWN0LnRvcCArIGRyYWdSZWN0LmhlaWdodDtcblxuICAgIHRoaXMuc2V0SGFuZGxlVHJhbnNmb3JtKG92ZXJsYXlSZWN0LCBkcmFnUmVjdCk7XG5cbiAgICBpZiAod2lkdGggPiB0aGlzLk1JTl9SRVNfV0lEVEggJiYgaGVpZ2h0ID4gdGhpcy5NSU5fUkVTX0hFSUdIVCkge1xuICAgICAgb3ZlcmxheUNhcmRFbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgb3ZlcmxheUNhcmRFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHJlc2l6ZSBoYW5kbGUgcG9zaXRpb24uXG4gICAqL1xuICByZXNldEhhbmRsZVBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHJlc2l6ZUhhbmRsZUVsZW1lbnQgPSB0aGlzLnJlc2l6ZUhhbmRsZUNvcm5lci5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5zZXRIYW5kbGVUcmFuc2Zvcm0oXG4gICAgICB0aGlzLm92ZXJsYXlDYXJkLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICByZXNpemVIYW5kbGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgKTtcblxuICAgIHJlc2l6ZUhhbmRsZUVsZW1lbnQuc3R5bGUuYm90dG9tID0gbnVsbDtcbiAgICByZXNpemVIYW5kbGVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSByZXNpemUgaGFuZGxlIHVzaW5nIHRyYW5zZm9ybTNkLlxuICAgKiBAcGFyYW0gb3ZlcmxheVJlY3QgQm91bmRpbmcgY2xpZW50IHJlY3RhbmdsZSBvZiB0aGUgb3ZlcmxheSBjYXJkLlxuICAgKiBAcGFyYW0gZHJhZ1JlY3QgQm91bmRpbmcgY2xpZW50IHJlY3RhbmdsZSBvZiB0aGUgcmVzaXplIGhhbmRsZS5cbiAgICovXG4gIHByaXZhdGUgc2V0SGFuZGxlVHJhbnNmb3JtKG92ZXJsYXlSZWN0OiBhbnksIGRyYWdSZWN0OiBhbnkpIHtcbiAgICBjb25zdCB0cmFuc2xhdGVYID0gb3ZlcmxheVJlY3Qud2lkdGggLSBkcmFnUmVjdC53aWR0aDtcbiAgICBjb25zdCB0cmFuc2xhdGVZID0gb3ZlcmxheVJlY3QuaGVpZ2h0IC0gZHJhZ1JlY3QuaGVpZ2h0O1xuICAgIHRoaXMucmVzaXplSGFuZGxlQ29ybmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7dHJhbnNsYXRlWH1weCwgJHt0cmFuc2xhdGVZfXB4LCAwKWA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI292ZXJsYXlDYXJkXG4gIGNsYXNzPVwib3ZlcmxheS1jYXJkIGNhcmRcIlxuICBbaGlkZGVuXT1cIiFhY3RpdmVcIlxuICBjZGtEcmFnXG4gIGNka0RyYWdCb3VuZGFyeT1cImJvZHlcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLWhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3dpdGgtYm9keSc6IHNob3dCb2R5IH1cIlxuICAgIGNka0RyYWdIYW5kbGVcbiAgICAqbmdJZj1cIm92ZXJsYXlUaXRsZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgY2FyZC1pY29uXCIgKm5nSWY9XCJpY29uXCI+XG4gICAgICA8c3ZnPlxuICAgICAgICA8dXNlIGF0dHIuaHJlZj1cImFzc2V0cy9pY29ucy97eyBpY29uIH19LnN2ZyN7eyBpY29uIH19XCI+PC91c2U+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8aDUgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlciBtLTAgcHgtMlwiPnt7IG92ZXJsYXlUaXRsZSB9fTwvaDU+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlciBjYXJkLWljb24gYnRuLWJsYW5rIGV4cGFuZENvbGxhcHNlXCJcbiAgICAgIG1hdFRvb2x0aXA9XCJFeHBhbmQgLyBDb2xsYXBzZVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICBbbmdDbGFzc109XCJ7IGV4cGFuZDogc2hvd0JvZHkgfVwiXG4gICAgICAoY2xpY2spPVwic2hvd0JvZHkgPSAhc2hvd0JvZHlcIlxuICAgID5cbiAgICAgIDxzdmc+XG4gICAgICAgIDx1c2UgaHJlZj1cImFzc2V0cy9pY29ucy9leHBhbmQuc3ZnI2V4cGFuZFwiPjwvdXNlPlxuICAgICAgPC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvdmVybGF5LWNhcmQtY29udGVudFwiXG4gICAgKm5nSWY9XCJzaG93Qm9keVwiXG4gICAgW25nQ2xhc3NdPVwieyAndHJhbnNwYXJlbnQtYmcnOiB0cmFuc3BhcmVudEJvZHkgfVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8IS0tIE1ha2luZyB0aGUgb3ZlcmxheSByZXNpemFibGUgLS0+XG4gIDxzcGFuXG4gICAgI3Jlc2l6ZUhhbmRsZUNvcm5lclxuICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSBjb3JuZXJcIlxuICAgICpuZ0lmPVwicmVzaXphYmxlXCJcbiAgICBbaGlkZGVuXT1cIiFzaG93Qm9keVwiXG4gICAgY2RrRHJhZ1xuICAgIChjZGtEcmFnTW92ZWQpPVwib25SZXNpemUoKVwiXG4gID48L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, ViewChild, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../../services/event-display.service";
|
|
4
|
+
import * as i2 from "../../overlay/overlay.component";
|
|
5
|
+
import * as i3 from "../../menu-toggle/menu-toggle.component";
|
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
|
7
|
+
export class OverlayViewWindowComponent {
|
|
8
|
+
constructor(eventDisplay) {
|
|
9
|
+
this.eventDisplay = eventDisplay;
|
|
10
|
+
this.showOverlay = true;
|
|
11
|
+
this.transparentBody = false;
|
|
12
|
+
this.orthographicView = false;
|
|
13
|
+
this.overlayViewFixed = false;
|
|
14
|
+
}
|
|
15
|
+
ngAfterViewInit() {
|
|
16
|
+
const canvas = this.initializeCanvas(this.overlayWindow.nativeElement);
|
|
17
|
+
this.eventDisplay.setOverlayRenderer(canvas);
|
|
18
|
+
}
|
|
19
|
+
initializeCanvas(canvas) {
|
|
20
|
+
const width = window.innerWidth / 2.5;
|
|
21
|
+
const height = window.innerHeight / 2.5;
|
|
22
|
+
canvas.width = width;
|
|
23
|
+
canvas.height = height;
|
|
24
|
+
canvas.style.width = width.toString() + ' px';
|
|
25
|
+
canvas.style.height = height.toString() + ' px';
|
|
26
|
+
return canvas;
|
|
27
|
+
}
|
|
28
|
+
switchOverlayView() {
|
|
29
|
+
this.orthographicView = !this.orthographicView;
|
|
30
|
+
this.eventDisplay
|
|
31
|
+
.getUIManager()
|
|
32
|
+
.toggleOrthographicView(this.orthographicView);
|
|
33
|
+
}
|
|
34
|
+
fixOverlayView() {
|
|
35
|
+
this.overlayViewFixed = !this.overlayViewFixed;
|
|
36
|
+
this.eventDisplay.fixOverlayView(this.overlayViewFixed);
|
|
37
|
+
}
|
|
38
|
+
toggleBgTransparency() {
|
|
39
|
+
this.transparentBody = !this.transparentBody;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
OverlayViewWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayViewWindowComponent, deps: [{ token: i1.EventDisplayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
OverlayViewWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: OverlayViewWindowComponent, selector: "app-overlay-view-window", inputs: { showOverlay: "showOverlay" }, viewQueries: [{ propertyName: "overlayWindow", first: true, predicate: ["overlayWindow"], descendants: true }], ngImport: i0, template: "<app-overlay\n overlayTitle=\"Overlay View\"\n icon=\"overlay\"\n [resizable]=\"true\"\n [transparentBody]=\"transparentBody\"\n [active]=\"showOverlay\"\n>\n <div class=\"overlay-view-wrapper\">\n <canvas #overlayWindow id=\"overlay-canvas\" [hidden]=\"!showOverlay\">\n </canvas>\n <div class=\"overlay-view-controls position-absolute d-flex flex-row\">\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"transparent\"\n matTooltip=\"Toggle background transparency\"\n (click)=\"toggleBgTransparency()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"move-lock\"\n [matTooltip]=\"(overlayViewFixed ? 'Restore' : 'Fix') + ' overlay view'\"\n [active]=\"overlayViewFixed\"\n (click)=\"fixOverlayView()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n [icon]=\"orthographicView ? 'orthographic' : 'perspective'\"\n [matTooltip]=\"\n 'Switch to ' +\n (orthographicView ? 'orthographic' : 'perspective') +\n ' view'\n \"\n (click)=\"switchOverlayView()\"\n >\n </app-menu-toggle>\n </div>\n </div>\n</app-overlay>\n", styles: ["#overlay-canvas{background-color:#0000001a;width:100%}.overlay-view-controls{bottom:1em;right:1em;opacity:0;transition:opacity .2s}.overlay-view-controls .overlay-view-control{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);overflow:hidden;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;justify-content:center;align-items:center}.overlay-view-wrapper:hover .overlay-view-controls{opacity:1;transition:opacity .2s}\n"], components: [{ type: i2.OverlayComponent, selector: "app-overlay", inputs: ["overlayTitle", "active", "icon", "resizable", "transparentBody"] }, { type: i3.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }], directives: [{ type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayViewWindowComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'app-overlay-view-window', template: "<app-overlay\n overlayTitle=\"Overlay View\"\n icon=\"overlay\"\n [resizable]=\"true\"\n [transparentBody]=\"transparentBody\"\n [active]=\"showOverlay\"\n>\n <div class=\"overlay-view-wrapper\">\n <canvas #overlayWindow id=\"overlay-canvas\" [hidden]=\"!showOverlay\">\n </canvas>\n <div class=\"overlay-view-controls position-absolute d-flex flex-row\">\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"transparent\"\n matTooltip=\"Toggle background transparency\"\n (click)=\"toggleBgTransparency()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"move-lock\"\n [matTooltip]=\"(overlayViewFixed ? 'Restore' : 'Fix') + ' overlay view'\"\n [active]=\"overlayViewFixed\"\n (click)=\"fixOverlayView()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n [icon]=\"orthographicView ? 'orthographic' : 'perspective'\"\n [matTooltip]=\"\n 'Switch to ' +\n (orthographicView ? 'orthographic' : 'perspective') +\n ' view'\n \"\n (click)=\"switchOverlayView()\"\n >\n </app-menu-toggle>\n </div>\n </div>\n</app-overlay>\n", styles: ["#overlay-canvas{background-color:#0000001a;width:100%}.overlay-view-controls{bottom:1em;right:1em;opacity:0;transition:opacity .2s}.overlay-view-controls .overlay-view-control{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);overflow:hidden;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;justify-content:center;align-items:center}.overlay-view-wrapper:hover .overlay-view-controls{opacity:1;transition:opacity .2s}\n"] }]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.EventDisplayService }]; }, propDecorators: { showOverlay: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], overlayWindow: [{
|
|
50
|
+
type: ViewChild,
|
|
51
|
+
args: ['overlayWindow']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS12aWV3LXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L292ZXJsYXktdmlldy9vdmVybGF5LXZpZXctd2luZG93L292ZXJsYXktdmlldy13aW5kb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9vdmVybGF5LXZpZXcvb3ZlcmxheS12aWV3LXdpbmRvdy9vdmVybGF5LXZpZXctd2luZG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVMzRSxNQUFNLE9BQU8sMEJBQTBCO0lBT3JDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQU41QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUM1QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRytCLENBQUM7SUFFekQsZUFBZTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQXlCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDOUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZO2FBQ2QsWUFBWSxFQUFFO2FBQ2Qsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDOzt1SEF0Q1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsdU5DVHZDLG93Q0F3Q0E7MkZEL0JhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7MEdBSzFCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSXNCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW92ZXJsYXktdmlldy13aW5kb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3ZlcmxheS12aWV3LXdpbmRvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXktdmlldy13aW5kb3cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVZpZXdXaW5kb3dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2hvd092ZXJsYXkgPSB0cnVlO1xuICB0cmFuc3BhcmVudEJvZHkgPSBmYWxzZTtcbiAgb3J0aG9ncmFwaGljVmlldyA9IGZhbHNlO1xuICBvdmVybGF5Vmlld0ZpeGVkID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlXaW5kb3cnKSBvdmVybGF5V2luZG93OiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5pbml0aWFsaXplQ2FudmFzKHRoaXMub3ZlcmxheVdpbmRvdy5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5zZXRPdmVybGF5UmVuZGVyZXIoY2FudmFzKTtcbiAgfVxuXG4gIGluaXRpYWxpemVDYW52YXMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCk6IEhUTUxDYW52YXNFbGVtZW50IHtcbiAgICBjb25zdCB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC8gMi41O1xuICAgIGNvbnN0IGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAvIDIuNTtcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IHdpZHRoLnRvU3RyaW5nKCkgKyAnIHB4JztcbiAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0LnRvU3RyaW5nKCkgKyAnIHB4JztcbiAgICByZXR1cm4gY2FudmFzO1xuICB9XG5cbiAgc3dpdGNoT3ZlcmxheVZpZXcoKSB7XG4gICAgdGhpcy5vcnRob2dyYXBoaWNWaWV3ID0gIXRoaXMub3J0aG9ncmFwaGljVmlldztcbiAgICB0aGlzLmV2ZW50RGlzcGxheVxuICAgICAgLmdldFVJTWFuYWdlcigpXG4gICAgICAudG9nZ2xlT3J0aG9ncmFwaGljVmlldyh0aGlzLm9ydGhvZ3JhcGhpY1ZpZXcpO1xuICB9XG5cbiAgZml4T3ZlcmxheVZpZXcoKSB7XG4gICAgdGhpcy5vdmVybGF5Vmlld0ZpeGVkID0gIXRoaXMub3ZlcmxheVZpZXdGaXhlZDtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5maXhPdmVybGF5Vmlldyh0aGlzLm92ZXJsYXlWaWV3Rml4ZWQpO1xuICB9XG5cbiAgdG9nZ2xlQmdUcmFuc3BhcmVuY3koKSB7XG4gICAgdGhpcy50cmFuc3BhcmVudEJvZHkgPSAhdGhpcy50cmFuc3BhcmVudEJvZHk7XG4gIH1cbn1cbiIsIjxhcHAtb3ZlcmxheVxuICBvdmVybGF5VGl0bGU9XCJPdmVybGF5IFZpZXdcIlxuICBpY29uPVwib3ZlcmxheVwiXG4gIFtyZXNpemFibGVdPVwidHJ1ZVwiXG4gIFt0cmFuc3BhcmVudEJvZHldPVwidHJhbnNwYXJlbnRCb2R5XCJcbiAgW2FjdGl2ZV09XCJzaG93T3ZlcmxheVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJvdmVybGF5LXZpZXctd3JhcHBlclwiPlxuICAgIDxjYW52YXMgI292ZXJsYXlXaW5kb3cgaWQ9XCJvdmVybGF5LWNhbnZhc1wiIFtoaWRkZW5dPVwiIXNob3dPdmVybGF5XCI+XG4gICAgPC9jYW52YXM+XG4gICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktdmlldy1jb250cm9scyBwb3NpdGlvbi1hYnNvbHV0ZSBkLWZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxhcHAtbWVudS10b2dnbGVcbiAgICAgICAgY2xhc3M9XCJvdmVybGF5LXZpZXctY29udHJvbFwiXG4gICAgICAgIGljb249XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIG1hdFRvb2x0aXA9XCJUb2dnbGUgYmFja2dyb3VuZCB0cmFuc3BhcmVuY3lcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQmdUcmFuc3BhcmVuY3koKVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1tZW51LXRvZ2dsZT5cbiAgICAgIDxhcHAtbWVudS10b2dnbGVcbiAgICAgICAgY2xhc3M9XCJvdmVybGF5LXZpZXctY29udHJvbFwiXG4gICAgICAgIGljb249XCJtb3ZlLWxvY2tcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCIob3ZlcmxheVZpZXdGaXhlZCA/ICdSZXN0b3JlJyA6ICdGaXgnKSArICcgb3ZlcmxheSB2aWV3J1wiXG4gICAgICAgIFthY3RpdmVdPVwib3ZlcmxheVZpZXdGaXhlZFwiXG4gICAgICAgIChjbGljayk9XCJmaXhPdmVybGF5VmlldygpXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLW1lbnUtdG9nZ2xlPlxuICAgICAgPGFwcC1tZW51LXRvZ2dsZVxuICAgICAgICBjbGFzcz1cIm92ZXJsYXktdmlldy1jb250cm9sXCJcbiAgICAgICAgW2ljb25dPVwib3J0aG9ncmFwaGljVmlldyA/ICdvcnRob2dyYXBoaWMnIDogJ3BlcnNwZWN0aXZlJ1wiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAgICdTd2l0Y2ggdG8gJyArXG4gICAgICAgICAgKG9ydGhvZ3JhcGhpY1ZpZXcgPyAnb3J0aG9ncmFwaGljJyA6ICdwZXJzcGVjdGl2ZScpICtcbiAgICAgICAgICAnIHZpZXcnXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hPdmVybGF5VmlldygpXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLW1lbnUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYXBwLW92ZXJsYXk+XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
+
import { OverlayViewWindowComponent } from './overlay-view-window/overlay-view-window.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
+
import * as i2 from "../menu-toggle/menu-toggle.component";
|
|
7
|
+
export class OverlayViewComponent {
|
|
8
|
+
constructor(overlay) {
|
|
9
|
+
this.overlay = overlay;
|
|
10
|
+
this.showOverlay = false;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
const overlayRef = this.overlay.create();
|
|
14
|
+
const overlayPortal = new ComponentPortal(OverlayViewWindowComponent);
|
|
15
|
+
this.overlayWindow = overlayRef.attach(overlayPortal);
|
|
16
|
+
this.overlayWindow.instance.showOverlay = this.showOverlay;
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
this.overlayWindow.destroy();
|
|
20
|
+
}
|
|
21
|
+
toggleOverlay() {
|
|
22
|
+
this.showOverlay = !this.showOverlay;
|
|
23
|
+
this.overlayWindow.instance.showOverlay = this.showOverlay;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
OverlayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayViewComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
OverlayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: OverlayViewComponent, selector: "app-overlay-view", ngImport: i0, template: "<app-menu-toggle\n tooltip=\"Overlay view\"\n icon=\"overlay\"\n [active]=\"showOverlay\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n", styles: [""], components: [{ type: i2.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OverlayViewComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'app-overlay-view', template: "<app-menu-toggle\n tooltip=\"Overlay view\"\n icon=\"overlay\"\n [active]=\"showOverlay\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n", styles: [""] }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvb3ZlcmxheS12aWV3L292ZXJsYXktdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L292ZXJsYXktdmlldy9vdmVybGF5LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7O0FBT2pHLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUZwQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUVtQixDQUFDO0lBRXhDLFFBQVE7UUFDTixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzdELENBQUM7O2lIQXBCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3RENWakMsc0pBT0E7MkZER2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgT3ZlcmxheVZpZXdXaW5kb3dDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXktdmlldy13aW5kb3cvb3ZlcmxheS12aWV3LXdpbmRvdy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb3ZlcmxheS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXktdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXktdmlldy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgb3ZlcmxheVdpbmRvdzogQ29tcG9uZW50UmVmPE92ZXJsYXlWaWV3V2luZG93Q29tcG9uZW50PjtcbiAgc2hvd092ZXJsYXkgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXkpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoKTtcbiAgICBjb25zdCBvdmVybGF5UG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChPdmVybGF5Vmlld1dpbmRvd0NvbXBvbmVudCk7XG4gICAgdGhpcy5vdmVybGF5V2luZG93ID0gb3ZlcmxheVJlZi5hdHRhY2gob3ZlcmxheVBvcnRhbCk7XG4gICAgdGhpcy5vdmVybGF5V2luZG93Lmluc3RhbmNlLnNob3dPdmVybGF5ID0gdGhpcy5zaG93T3ZlcmxheTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub3ZlcmxheVdpbmRvdy5kZXN0cm95KCk7XG4gIH1cblxuICB0b2dnbGVPdmVybGF5KCkge1xuICAgIHRoaXMuc2hvd092ZXJsYXkgPSAhdGhpcy5zaG93T3ZlcmxheTtcbiAgICB0aGlzLm92ZXJsYXlXaW5kb3cuaW5zdGFuY2Uuc2hvd092ZXJsYXkgPSB0aGlzLnNob3dPdmVybGF5O1xuICB9XG59XG4iLCI8YXBwLW1lbnUtdG9nZ2xlXG4gIHRvb2x0aXA9XCJPdmVybGF5IHZpZXdcIlxuICBpY29uPVwib3ZlcmxheVwiXG4gIFthY3RpdmVdPVwic2hvd092ZXJsYXlcIlxuICAoY2xpY2spPVwidG9nZ2xlT3ZlcmxheSgpXCJcbj5cbjwvYXBwLW1lbnUtdG9nZ2xlPlxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../services/event-display.service";
|
|
4
|
+
import * as i2 from "../menu-toggle/menu-toggle.component";
|
|
5
|
+
export class PerformanceToggleComponent {
|
|
6
|
+
constructor(eventDisplay) {
|
|
7
|
+
this.eventDisplay = eventDisplay;
|
|
8
|
+
this.performanceMode = false;
|
|
9
|
+
}
|
|
10
|
+
togglePerformance() {
|
|
11
|
+
this.performanceMode = !this.performanceMode;
|
|
12
|
+
this.eventDisplay.getThreeManager().setAntialiasing(!this.performanceMode);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
PerformanceToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PerformanceToggleComponent, deps: [{ token: i1.EventDisplayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
PerformanceToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PerformanceToggleComponent, selector: "app-performance-toggle", ngImport: i0, template: "<app-menu-toggle\n tooltip=\"Performance mode\"\n [active]=\"performanceMode\"\n icon=\"performance\"\n (click)=\"togglePerformance()\"\n>\n</app-menu-toggle>\n", styles: [""], components: [{ type: i2.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PerformanceToggleComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'app-performance-toggle', template: "<app-menu-toggle\n tooltip=\"Performance mode\"\n [active]=\"performanceMode\"\n icon=\"performance\"\n (click)=\"togglePerformance()\"\n>\n</app-menu-toggle>\n", styles: [""] }]
|
|
20
|
+
}], ctorParameters: function () { return [{ type: i1.EventDisplayService }]; } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvcGVyZm9ybWFuY2UtdG9nZ2xlL3BlcmZvcm1hbmNlLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3BlcmZvcm1hbmNlLXRvZ2dsZS9wZXJmb3JtYW5jZS10b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExQyxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUZyRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztJQUV1QixDQUFDO0lBRXpELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7O3VIQVJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDhEQ1J2QyxzS0FPQTsyRkRDYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXBlcmZvcm1hbmNlLXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZXJmb3JtYW5jZS10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wZXJmb3JtYW5jZS10b2dnbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVyZm9ybWFuY2VUb2dnbGVDb21wb25lbnQge1xuICBwZXJmb3JtYW5jZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge31cblxuICB0b2dnbGVQZXJmb3JtYW5jZSgpIHtcbiAgICB0aGlzLnBlcmZvcm1hbmNlTW9kZSA9ICF0aGlzLnBlcmZvcm1hbmNlTW9kZTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRUaHJlZU1hbmFnZXIoKS5zZXRBbnRpYWxpYXNpbmcoIXRoaXMucGVyZm9ybWFuY2VNb2RlKTtcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICB0b29sdGlwPVwiUGVyZm9ybWFuY2UgbW9kZVwiXG4gIFthY3RpdmVdPVwicGVyZm9ybWFuY2VNb2RlXCJcbiAgaWNvbj1cInBlcmZvcm1hbmNlXCJcbiAgKGNsaWNrKT1cInRvZ2dsZVBlcmZvcm1hbmNlKClcIlxuPlxuPC9hcHAtbWVudS10b2dnbGU+XG4iXX0=
|
package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { ActiveVariable, phoenixURLOptions } from 'phoenix-event-display';
|
|
3
|
+
import QRCode from 'qrcode';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "@angular/material/checkbox";
|
|
7
|
+
import * as i3 from "@angular/material/button";
|
|
8
|
+
export class ShareLinkDialogComponent {
|
|
9
|
+
constructor(dialogRef) {
|
|
10
|
+
this.dialogRef = dialogRef;
|
|
11
|
+
this.urlOptions = Object.assign({}, phoenixURLOptions);
|
|
12
|
+
const locationHref = window.location.href;
|
|
13
|
+
const lastIndex = locationHref.lastIndexOf('?') === -1
|
|
14
|
+
? locationHref.length
|
|
15
|
+
: locationHref.lastIndexOf('?');
|
|
16
|
+
this.baseLink = locationHref.slice(0, lastIndex);
|
|
17
|
+
this.shareLink = new ActiveVariable(this.baseLink);
|
|
18
|
+
this.embedLink = this.getEmbedLink();
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewInit() {
|
|
21
|
+
this.updateQRCode(this.shareLink.value);
|
|
22
|
+
this.shareLink.onUpdate(this.updateQRCode.bind(this));
|
|
23
|
+
}
|
|
24
|
+
onClose() {
|
|
25
|
+
this.dialogRef.close();
|
|
26
|
+
}
|
|
27
|
+
getEmbedLink(urlParametersString = '') {
|
|
28
|
+
return `<iframe src="${this.baseLink}?embed=true${urlParametersString ? '&' : ''}${urlParametersString}"></iframe>`;
|
|
29
|
+
}
|
|
30
|
+
setOptionValue(option, value) {
|
|
31
|
+
this.urlOptions[option] = value;
|
|
32
|
+
this.onOptionsChange();
|
|
33
|
+
}
|
|
34
|
+
onOptionsChange() {
|
|
35
|
+
const urlParametersString = Object.getOwnPropertyNames(this.urlOptions)
|
|
36
|
+
.reduce((filteredOptions, option) => {
|
|
37
|
+
if (this.urlOptions[option]) {
|
|
38
|
+
filteredOptions.push(`${option}=${encodeURI(this.urlOptions[option])}`);
|
|
39
|
+
}
|
|
40
|
+
return filteredOptions;
|
|
41
|
+
}, [])
|
|
42
|
+
.join('&');
|
|
43
|
+
this.shareLink.update(this.baseLink + (urlParametersString ? '?' : '') + urlParametersString);
|
|
44
|
+
this.embedLink = this.getEmbedLink(urlParametersString);
|
|
45
|
+
}
|
|
46
|
+
copyText(text, element) {
|
|
47
|
+
const inputElement = document.createElement('input');
|
|
48
|
+
document.body.appendChild(inputElement);
|
|
49
|
+
inputElement.value = text;
|
|
50
|
+
inputElement.select();
|
|
51
|
+
document.execCommand('copy');
|
|
52
|
+
document.body.removeChild(inputElement);
|
|
53
|
+
element.focus();
|
|
54
|
+
// Set text on copying
|
|
55
|
+
element.innerText = 'COPIED';
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
element.innerText = 'COPY';
|
|
58
|
+
}, 2000);
|
|
59
|
+
}
|
|
60
|
+
updateQRCode(link) {
|
|
61
|
+
QRCode.toCanvas(this.qrcodeCanvas.nativeElement, link);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
ShareLinkDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ShareLinkDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
ShareLinkDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ShareLinkDialogComponent, selector: "app-share-link-dialog", viewQueries: [{ propertyName: "qrcodeCanvas", first: true, predicate: ["qrcodeCanvas"], descendants: true }], ngImport: i0, template: "<div class=\"dialog\">\n <h1 mat-dialog-title>Create shareable link</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <h5>URL options</h5>\n <div class=\"form-group mt-2\">\n <label for=\"eventDataFile\">Event data file (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"eventDataFile\"\n placeholder=\"assets/files/event_data/atlaseventdump2.json\"\n [value]=\"urlOptions.file\"\n (input)=\"setOptionValue('file', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"eventDataType\">Event data type</label>\n <select\n class=\"form-control\"\n id=\"eventDataType\"\n (input)=\"setOptionValue('type', $event.target.value)\"\n >\n <option selected value=\"\">Select</option>\n <option value=\"jivexml\">JiveXML</option>\n <option value=\"json\">JSON</option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"configuration\">Configuration (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"configuration\"\n placeholder=\"assets/files/config/phoenix-config.json\"\n [value]=\"urlOptions.config\"\n (input)=\"setOptionValue('config', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <mat-checkbox\n [checked]=\"urlOptions.hideWidgets\"\n (change)=\"setOptionValue('hideWidgets', $event.checked)\"\n >\n Hide all widgets\n </mat-checkbox>\n </div>\n\n <h5>Share</h5>\n <div class=\"share-box my-2\">\n <span>{{ shareLink.value }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(shareLink.value, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>Embed</h5>\n <div class=\"share-box my-2\">\n <span>{{ embedLink }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(embedLink, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>QR Code</h5>\n <div class=\"qrcode d-flex justify-content-center\">\n <canvas #qrcodeCanvas></canvas>\n </div>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n", styles: [".share-box{width:30rem;max-width:100%;position:relative;background:var(--phoenix-background-color-tertiary);border:1px solid var(--phoenix-border);border-radius:.5rem;padding:1.25rem;word-wrap:break-word}.share-box .share-box-copy{position:absolute;top:-1px;right:-1px;background:transparent;color:inherit;cursor:pointer;padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--phoenix-border);border-radius:.5rem}.share-box .share-box-copy:hover{background:var(--phoenix-border)}\n"], components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ShareLinkDialogComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{ selector: 'app-share-link-dialog', template: "<div class=\"dialog\">\n <h1 mat-dialog-title>Create shareable link</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <h5>URL options</h5>\n <div class=\"form-group mt-2\">\n <label for=\"eventDataFile\">Event data file (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"eventDataFile\"\n placeholder=\"assets/files/event_data/atlaseventdump2.json\"\n [value]=\"urlOptions.file\"\n (input)=\"setOptionValue('file', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"eventDataType\">Event data type</label>\n <select\n class=\"form-control\"\n id=\"eventDataType\"\n (input)=\"setOptionValue('type', $event.target.value)\"\n >\n <option selected value=\"\">Select</option>\n <option value=\"jivexml\">JiveXML</option>\n <option value=\"json\">JSON</option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"configuration\">Configuration (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"configuration\"\n placeholder=\"assets/files/config/phoenix-config.json\"\n [value]=\"urlOptions.config\"\n (input)=\"setOptionValue('config', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <mat-checkbox\n [checked]=\"urlOptions.hideWidgets\"\n (change)=\"setOptionValue('hideWidgets', $event.checked)\"\n >\n Hide all widgets\n </mat-checkbox>\n </div>\n\n <h5>Share</h5>\n <div class=\"share-box my-2\">\n <span>{{ shareLink.value }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(shareLink.value, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>Embed</h5>\n <div class=\"share-box my-2\">\n <span>{{ embedLink }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(embedLink, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>QR Code</h5>\n <div class=\"qrcode d-flex justify-content-center\">\n <canvas #qrcodeCanvas></canvas>\n </div>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n", styles: [".share-box{width:30rem;max-width:100%;position:relative;background:var(--phoenix-background-color-tertiary);border:1px solid var(--phoenix-border);border-radius:.5rem;padding:1.25rem;word-wrap:break-word}.share-box .share-box-copy{position:absolute;top:-1px;right:-1px;background:transparent;color:inherit;cursor:pointer;padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--phoenix-border);border-radius:.5rem}.share-box .share-box-copy:hover{background:var(--phoenix-border)}\n"] }]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; }, propDecorators: { qrcodeCanvas: [{
|
|
70
|
+
type: ViewChild,
|
|
71
|
+
args: ['qrcodeCanvas']
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtbGluay1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9zaGFyZS1saW5rL3NoYXJlLWxpbmstZGlhbG9nL3NoYXJlLWxpbmstZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvc2hhcmUtbGluay9zaGFyZS1saW5rLWRpYWxvZy9zaGFyZS1saW5rLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFPNUIsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQyxZQUFvQixTQUFpRDtRQUFqRCxjQUFTLEdBQVQsU0FBUyxDQUF3QztRQUhyRSxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUloRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FDYixZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDckIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLHNCQUE4QixFQUFFO1FBQzNDLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxRQUFRLGNBQ2xDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQzlCLEdBQUcsbUJBQW1CLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxLQUFhO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDcEUsTUFBTSxDQUFDLENBQUMsZUFBeUIsRUFBRSxNQUFjLEVBQUUsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLEdBQUcsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FDbEQsQ0FBQzthQUNIO1lBQ0QsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsbUJBQW1CLENBQ3ZFLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxPQUFvQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVoQixzQkFBc0I7UUFDdEIsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7O3FIQTNFVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwyS0NWckMsdzFFQTRFQTsyRkRsRWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QjttR0FTTixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFjdGl2ZVZhcmlhYmxlLCBwaG9lbml4VVJMT3B0aW9ucyB9IGZyb20gJ3Bob2VuaXgtZXZlbnQtZGlzcGxheSc7XG5pbXBvcnQgUVJDb2RlIGZyb20gJ3FyY29kZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zaGFyZS1saW5rLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1saW5rLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWxpbmstZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlTGlua0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBiYXNlTGluazogc3RyaW5nO1xuICBzaGFyZUxpbms6IEFjdGl2ZVZhcmlhYmxlPHN0cmluZz47XG4gIGVtYmVkTGluazogc3RyaW5nO1xuICB1cmxPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgcGhvZW5peFVSTE9wdGlvbnMpO1xuICBAVmlld0NoaWxkKCdxcmNvZGVDYW52YXMnKSBxcmNvZGVDYW52YXM6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2hhcmVMaW5rRGlhbG9nQ29tcG9uZW50Pikge1xuICAgIGNvbnN0IGxvY2F0aW9uSHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9XG4gICAgICBsb2NhdGlvbkhyZWYubGFzdEluZGV4T2YoJz8nKSA9PT0gLTFcbiAgICAgICAgPyBsb2NhdGlvbkhyZWYubGVuZ3RoXG4gICAgICAgIDogbG9jYXRpb25IcmVmLmxhc3RJbmRleE9mKCc/Jyk7XG5cbiAgICB0aGlzLmJhc2VMaW5rID0gbG9jYXRpb25IcmVmLnNsaWNlKDAsIGxhc3RJbmRleCk7XG4gICAgdGhpcy5zaGFyZUxpbmsgPSBuZXcgQWN0aXZlVmFyaWFibGUodGhpcy5iYXNlTGluayk7XG4gICAgdGhpcy5lbWJlZExpbmsgPSB0aGlzLmdldEVtYmVkTGluaygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudXBkYXRlUVJDb2RlKHRoaXMuc2hhcmVMaW5rLnZhbHVlKTtcbiAgICB0aGlzLnNoYXJlTGluay5vblVwZGF0ZSh0aGlzLnVwZGF0ZVFSQ29kZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIGdldEVtYmVkTGluayh1cmxQYXJhbWV0ZXJzU3RyaW5nOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiBgPGlmcmFtZSBzcmM9XCIke3RoaXMuYmFzZUxpbmt9P2VtYmVkPXRydWUke1xuICAgICAgdXJsUGFyYW1ldGVyc1N0cmluZyA/ICcmJyA6ICcnXG4gICAgfSR7dXJsUGFyYW1ldGVyc1N0cmluZ31cIj48L2lmcmFtZT5gO1xuICB9XG5cbiAgc2V0T3B0aW9uVmFsdWUob3B0aW9uOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVybE9wdGlvbnNbb3B0aW9uXSA9IHZhbHVlO1xuICAgIHRoaXMub25PcHRpb25zQ2hhbmdlKCk7XG4gIH1cblxuICBvbk9wdGlvbnNDaGFuZ2UoKSB7XG4gICAgY29uc3QgdXJsUGFyYW1ldGVyc1N0cmluZyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMudXJsT3B0aW9ucylcbiAgICAgIC5yZWR1Y2UoKGZpbHRlcmVkT3B0aW9uczogc3RyaW5nW10sIG9wdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnVybE9wdGlvbnNbb3B0aW9uXSkge1xuICAgICAgICAgIGZpbHRlcmVkT3B0aW9ucy5wdXNoKFxuICAgICAgICAgICAgYCR7b3B0aW9ufT0ke2VuY29kZVVSSSh0aGlzLnVybE9wdGlvbnNbb3B0aW9uXSl9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkT3B0aW9ucztcbiAgICAgIH0sIFtdKVxuICAgICAgLmpvaW4oJyYnKTtcblxuICAgIHRoaXMuc2hhcmVMaW5rLnVwZGF0ZShcbiAgICAgIHRoaXMuYmFzZUxpbmsgKyAodXJsUGFyYW1ldGVyc1N0cmluZyA/ICc/JyA6ICcnKSArIHVybFBhcmFtZXRlcnNTdHJpbmdcbiAgICApO1xuICAgIHRoaXMuZW1iZWRMaW5rID0gdGhpcy5nZXRFbWJlZExpbmsodXJsUGFyYW1ldGVyc1N0cmluZyk7XG4gIH1cblxuICBjb3B5VGV4dCh0ZXh0OiBzdHJpbmcsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0RWxlbWVudCk7XG4gICAgaW5wdXRFbGVtZW50LnZhbHVlID0gdGV4dDtcbiAgICBpbnB1dEVsZW1lbnQuc2VsZWN0KCk7XG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0RWxlbWVudCk7XG4gICAgZWxlbWVudC5mb2N1cygpO1xuXG4gICAgLy8gU2V0IHRleHQgb24gY29weWluZ1xuICAgIGVsZW1lbnQuaW5uZXJUZXh0ID0gJ0NPUElFRCc7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBlbGVtZW50LmlubmVyVGV4dCA9ICdDT1BZJztcbiAgICB9LCAyMDAwKTtcbiAgfVxuXG4gIHVwZGF0ZVFSQ29kZShsaW5rOiBzdHJpbmcpIHtcbiAgICBRUkNvZGUudG9DYW52YXModGhpcy5xcmNvZGVDYW52YXMubmF0aXZlRWxlbWVudCwgbGluayk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2dcIj5cbiAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+Q3JlYXRlIHNoYXJlYWJsZSBsaW5rPC9oMT5cbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICAgIDxoNT5VUkwgb3B0aW9uczwvaDU+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxuICAgICAgPGxhYmVsIGZvcj1cImV2ZW50RGF0YUZpbGVcIj5FdmVudCBkYXRhIGZpbGUgKFVSTCBvciBwYXRoKTwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwiZXZlbnREYXRhRmlsZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiYXNzZXRzL2ZpbGVzL2V2ZW50X2RhdGEvYXRsYXNldmVudGR1bXAyLmpzb25cIlxuICAgICAgICBbdmFsdWVdPVwidXJsT3B0aW9ucy5maWxlXCJcbiAgICAgICAgKGlucHV0KT1cInNldE9wdGlvblZhbHVlKCdmaWxlJywgJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImV2ZW50RGF0YVR5cGVcIj5FdmVudCBkYXRhIHR5cGU8L2xhYmVsPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIGlkPVwiZXZlbnREYXRhVHlwZVwiXG4gICAgICAgIChpbnB1dCk9XCJzZXRPcHRpb25WYWx1ZSgndHlwZScsICRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT1cIlwiPlNlbGVjdDwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaml2ZXhtbFwiPkppdmVYTUw8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImpzb25cIj5KU09OPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImNvbmZpZ3VyYXRpb25cIj5Db25maWd1cmF0aW9uIChVUkwgb3IgcGF0aCk8L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBpZD1cImNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cImFzc2V0cy9maWxlcy9jb25maWcvcGhvZW5peC1jb25maWcuanNvblwiXG4gICAgICAgIFt2YWx1ZV09XCJ1cmxPcHRpb25zLmNvbmZpZ1wiXG4gICAgICAgIChpbnB1dCk9XCJzZXRPcHRpb25WYWx1ZSgnY29uZmlnJywgJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICBbY2hlY2tlZF09XCJ1cmxPcHRpb25zLmhpZGVXaWRnZXRzXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZXRPcHRpb25WYWx1ZSgnaGlkZVdpZGdldHMnLCAkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgPlxuICAgICAgICBIaWRlIGFsbCB3aWRnZXRzXG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cblxuICAgIDxoNT5TaGFyZTwvaDU+XG4gICAgPGRpdiBjbGFzcz1cInNoYXJlLWJveCBteS0yXCI+XG4gICAgICA8c3Bhbj57eyBzaGFyZUxpbmsudmFsdWUgfX08L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2hhcmUtYm94LWNvcHlcIlxuICAgICAgICAoY2xpY2spPVwiY29weVRleHQoc2hhcmVMaW5rLnZhbHVlLCAkZXZlbnQudGFyZ2V0KVwiXG4gICAgICA+XG4gICAgICAgIENPUFlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxoNT5FbWJlZDwvaDU+XG4gICAgPGRpdiBjbGFzcz1cInNoYXJlLWJveCBteS0yXCI+XG4gICAgICA8c3Bhbj57eyBlbWJlZExpbmsgfX08L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2hhcmUtYm94LWNvcHlcIlxuICAgICAgICAoY2xpY2spPVwiY29weVRleHQoZW1iZWRMaW5rLCAkZXZlbnQudGFyZ2V0KVwiXG4gICAgICA+XG4gICAgICAgIENPUFlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxoNT5RUiBDb2RlPC9oNT5cbiAgICA8ZGl2IGNsYXNzPVwicXJjb2RlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICA8Y2FudmFzICNxcmNvZGVDYW52YXM+PC9jYW52YXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIGNka0ZvY3VzSW5pdGlhbD5DbG9zZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ShareLinkDialogComponent } from './share-link-dialog/share-link-dialog.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "../menu-toggle/menu-toggle.component";
|
|
6
|
+
export class ShareLinkComponent {
|
|
7
|
+
constructor(dialog) {
|
|
8
|
+
this.dialog = dialog;
|
|
9
|
+
}
|
|
10
|
+
openShareLinkDialog() {
|
|
11
|
+
this.dialog.open(ShareLinkDialogComponent);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
ShareLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ShareLinkComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
ShareLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ShareLinkComponent, selector: "app-share-link", ngImport: i0, template: "<app-menu-toggle\n tooltip=\"Create shareable link\"\n icon=\"share\"\n [active]=\"false\"\n (click)=\"openShareLinkDialog()\"\n>\n</app-menu-toggle>\n", styles: [""], components: [{ type: i2.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ShareLinkComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'app-share-link', template: "<app-menu-toggle\n tooltip=\"Create shareable link\"\n icon=\"share\"\n [active]=\"false\"\n (click)=\"openShareLinkDialog()\"\n>\n</app-menu-toggle>\n", styles: [""] }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtbGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3NoYXJlLWxpbmsvc2hhcmUtbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3NoYXJlLWxpbmsvc2hhcmUtbGluay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBTzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUFHLENBQUM7SUFFekMsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0MsQ0FBQzs7K0dBTFUsa0JBQWtCO21HQUFsQixrQkFBa0Isc0RDVC9CLDZKQU9BOzJGREVhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTaGFyZUxpbmtEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlLWxpbmstZGlhbG9nL3NoYXJlLWxpbmstZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zaGFyZS1saW5rJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWxpbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1saW5rLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlTGlua0NvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgb3BlblNoYXJlTGlua0RpYWxvZygpIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFNoYXJlTGlua0RpYWxvZ0NvbXBvbmVudCk7XG4gIH1cbn1cbiIsIjxhcHAtbWVudS10b2dnbGVcbiAgdG9vbHRpcD1cIkNyZWF0ZSBzaGFyZWFibGUgbGlua1wiXG4gIGljb249XCJzaGFyZVwiXG4gIFthY3RpdmVdPVwiZmFsc2VcIlxuICAoY2xpY2spPVwib3BlblNoYXJlTGlua0RpYWxvZygpXCJcbj5cbjwvYXBwLW1lbnUtdG9nZ2xlPlxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../menu-toggle/menu-toggle.component";
|
|
4
|
+
export class SSModeComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.ssMode = false;
|
|
7
|
+
this.onDocumentClick = () => {
|
|
8
|
+
document.exitFullscreen?.();
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
document.onfullscreenchange = () => {
|
|
13
|
+
if (!document.fullscreenElement) {
|
|
14
|
+
this.toggleSSMode();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
toggleSSMode() {
|
|
19
|
+
this.ssMode = !this.ssMode;
|
|
20
|
+
document.body.classList.toggle('ss-mode');
|
|
21
|
+
if (this.ssMode) {
|
|
22
|
+
// WORKAROUND - Adding the event listener directly somehow calls it on the first click
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
document.addEventListener('click', this.onDocumentClick);
|
|
25
|
+
document.addEventListener('touchstart', this.onDocumentClick);
|
|
26
|
+
}, 1);
|
|
27
|
+
document.documentElement.requestFullscreen?.();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
document.removeEventListener('click', this.onDocumentClick);
|
|
31
|
+
document.removeEventListener('touchstart', this.onDocumentClick);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
SSModeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SSModeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
SSModeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SSModeComponent, selector: "app-ss-mode", ngImport: i0, template: "<app-menu-toggle\n tooltip=\"Screenshot mode\"\n [active]=\"ssMode\"\n icon=\"ss-mode\"\n (click)=\"toggleSSMode()\"\n>\n</app-menu-toggle>\n", styles: ["app-ui-menu #uiMenu,app-phoenix-menu #phoenixMenu,app-nav #mainLogo,#statsElement{visibility:visible;opacity:1;transition:opacity .4s}.ss-mode app-ui-menu #uiMenu,.ss-mode app-phoenix-menu #phoenixMenu,.ss-mode app-nav #mainLogo,.ss-mode #statsElement{visibility:hidden;opacity:0}\n"], components: [{ type: i1.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SSModeComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'app-ss-mode', encapsulation: ViewEncapsulation.None, template: "<app-menu-toggle\n tooltip=\"Screenshot mode\"\n [active]=\"ssMode\"\n icon=\"ss-mode\"\n (click)=\"toggleSSMode()\"\n>\n</app-menu-toggle>\n", styles: ["app-ui-menu #uiMenu,app-phoenix-menu #phoenixMenu,app-nav #mainLogo,#statsElement{visibility:visible;opacity:1;transition:opacity .4s}.ss-mode app-ui-menu #uiMenu,.ss-mode app-phoenix-menu #phoenixMenu,.ss-mode app-nav #mainLogo,.ss-mode #statsElement{visibility:hidden;opacity:0}\n"] }]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3MtbW9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3NzLW1vZGUvc3MtbW9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3NzLW1vZGUvc3MtbW9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRN0QsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFPRSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBMEJoQixvQkFBZSxHQUFHLEdBQUcsRUFBRTtZQUM3QixRQUFRLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7S0FDSDtJQTNCQyxRQUFRO1FBQ04sUUFBUSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixzRkFBc0Y7WUFDdEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDekQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDaEUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sUUFBUSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7U0FDaEQ7YUFBTTtZQUNMLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzVELFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQzs7NEdBekJVLGVBQWU7Z0dBQWYsZUFBZSxtRENUNUIsbUpBT0E7MkZERWEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNzLW1vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3MtbW9kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NzLW1vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU1NNb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3NNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgZG9jdW1lbnQub25mdWxsc2NyZWVuY2hhbmdlID0gKCkgPT4ge1xuICAgICAgaWYgKCFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCkge1xuICAgICAgICB0aGlzLnRvZ2dsZVNTTW9kZSgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICB0b2dnbGVTU01vZGUoKSB7XG4gICAgdGhpcy5zc01vZGUgPSAhdGhpcy5zc01vZGU7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdzcy1tb2RlJyk7XG4gICAgaWYgKHRoaXMuc3NNb2RlKSB7XG4gICAgICAvLyBXT1JLQVJPVU5EIC0gQWRkaW5nIHRoZSBldmVudCBsaXN0ZW5lciBkaXJlY3RseSBzb21laG93IGNhbGxzIGl0IG9uIHRoZSBmaXJzdCBjbGlja1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkRvY3VtZW50Q2xpY2spO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vbkRvY3VtZW50Q2xpY2spO1xuICAgICAgfSwgMSk7XG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4/LigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25Eb2N1bWVudENsaWNrKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uRG9jdW1lbnRDbGljayk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkRvY3VtZW50Q2xpY2sgPSAoKSA9PiB7XG4gICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpO1xuICB9O1xufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICB0b29sdGlwPVwiU2NyZWVuc2hvdCBtb2RlXCJcbiAgW2FjdGl2ZV09XCJzc01vZGVcIlxuICBpY29uPVwic3MtbW9kZVwiXG4gIChjbGljayk9XCJ0b2dnbGVTU01vZGUoKVwiXG4+XG48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, Input, ViewChildren } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../../services/event-display.service";
|
|
4
|
+
import * as i2 from "@angular/material/button";
|
|
5
|
+
import * as i3 from "@angular/material/icon";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
export class TreeMenuItemComponent {
|
|
8
|
+
constructor(eventDisplay) {
|
|
9
|
+
this.eventDisplay = eventDisplay;
|
|
10
|
+
this.isExpanded = false;
|
|
11
|
+
this.visible = true;
|
|
12
|
+
}
|
|
13
|
+
toggleVisibility(visible) {
|
|
14
|
+
console.log("hi! it's " + this.node.name);
|
|
15
|
+
this.eventDisplay
|
|
16
|
+
.getUIManager()
|
|
17
|
+
.geometryVisibility(this.node.geometryId, visible);
|
|
18
|
+
this.visible = visible;
|
|
19
|
+
this.children.forEach((child) => child.toggleVisibility(visible));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
TreeMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeMenuItemComponent, deps: [{ token: i1.EventDisplayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
TreeMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TreeMenuItemComponent, selector: "app-tree-menu-item", inputs: { node: "node" }, viewQueries: [{ propertyName: "children", predicate: TreeMenuItemComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"node\">\n <div class=\"header\" [ngClass]=\"{ visible: visible }\">\n <button\n *ngIf=\"node.children\"\n mat-icon-button\n matTreeNodeToggle\n (click)=\"isExpanded = !isExpanded\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ isExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <div (click)=\"toggleVisibility(!visible)\" class=\"node-name\">\n {{ node.name }}\n </div>\n </div>\n <ul [hidden]=\"!isExpanded\" hid>\n <div class=\"children\">\n <li *ngFor=\"let node of node.children\">\n <app-tree-menu-item [node]=\"node\"></app-tree-menu-item>\n </li>\n </div>\n </ul>\n</ng-container>\n", styles: [".header{cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;display:flex;flex-direction:row;align-items:center}.header .node-name,.header .mat-icon-rtl-mirror{color:var(--phoenix-text-color-secondary)}.header.visible .node-name,.header.visible .mat-icon-rtl-mirror{color:var(--phoenix-accent)}.children li{list-style-type:none}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: TreeMenuItemComponent, selector: "app-tree-menu-item", inputs: ["node"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeMenuItemComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'app-tree-menu-item', template: "<ng-container *ngIf=\"node\">\n <div class=\"header\" [ngClass]=\"{ visible: visible }\">\n <button\n *ngIf=\"node.children\"\n mat-icon-button\n matTreeNodeToggle\n (click)=\"isExpanded = !isExpanded\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ isExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <div (click)=\"toggleVisibility(!visible)\" class=\"node-name\">\n {{ node.name }}\n </div>\n </div>\n <ul [hidden]=\"!isExpanded\" hid>\n <div class=\"children\">\n <li *ngFor=\"let node of node.children\">\n <app-tree-menu-item [node]=\"node\"></app-tree-menu-item>\n </li>\n </div>\n </ul>\n</ng-container>\n", styles: [".header{cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;display:flex;flex-direction:row;align-items:center}.header .node-name,.header .mat-icon-rtl-mirror{color:var(--phoenix-text-color-secondary)}.header.visible .node-name,.header.visible .mat-icon-rtl-mirror{color:var(--phoenix-accent)}.children li{list-style-type:none}\n"] }]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.EventDisplayService }]; }, propDecorators: { children: [{
|
|
28
|
+
type: ViewChildren,
|
|
29
|
+
args: [TreeMenuItemComponent]
|
|
30
|
+
}], node: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS90cmVlLW1lbnUvdHJlZS1tZW51LWl0ZW0vdHJlZS1tZW51LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS90cmVlLW1lbnUvdHJlZS1tZW51LWl0ZW0vdHJlZS1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTL0QsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFIckQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBRXlDLENBQUM7SUFFbEQsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWTthQUNkLFlBQVksRUFBRTthQUNkLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOztrSEFoQlUscUJBQXFCO3NHQUFyQixxQkFBcUIsaUhBQ2xCLHFCQUFxQixnRENWckMsd3RCQXdCQSxpMkJEZmEscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9COzBHQU05QixRQUFRO3NCQURQLFlBQVk7dUJBQUMscUJBQXFCO2dCQUUxQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRyZWUtbWVudS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1tZW51LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZU1lbnVJdGVtQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZHJlbihUcmVlTWVudUl0ZW1Db21wb25lbnQpXG4gIGNoaWxkcmVuITogUXVlcnlMaXN0PFRyZWVNZW51SXRlbUNvbXBvbmVudD47XG4gIEBJbnB1dCgpIG5vZGU6IHsgbmFtZTogc3RyaW5nOyBnZW9tZXRyeUlkOiBzdHJpbmc7IGNoaWxkcmVuOiBbXSB9O1xuICBpc0V4cGFuZGVkID0gZmFsc2U7XG4gIHZpc2libGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnREaXNwbGF5OiBFdmVudERpc3BsYXlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyB0b2dnbGVWaXNpYmlsaXR5KHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICBjb25zb2xlLmxvZyhcImhpISBpdCdzIFwiICsgdGhpcy5ub2RlLm5hbWUpO1xuICAgIHRoaXMuZXZlbnREaXNwbGF5XG4gICAgICAuZ2V0VUlNYW5hZ2VyKClcbiAgICAgIC5nZW9tZXRyeVZpc2liaWxpdHkodGhpcy5ub2RlLmdlb21ldHJ5SWQsIHZpc2libGUpO1xuICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gY2hpbGQudG9nZ2xlVmlzaWJpbGl0eSh2aXNpYmxlKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIiBbbmdDbGFzc109XCJ7IHZpc2libGU6IHZpc2libGUgfVwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwibm9kZS5jaGlsZHJlblwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAoY2xpY2spPVwiaXNFeHBhbmRlZCA9ICFpc0V4cGFuZGVkXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgIHt7IGlzRXhwYW5kZWQgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoIXZpc2libGUpXCIgY2xhc3M9XCJub2RlLW5hbWVcIj5cbiAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHVsIFtoaWRkZW5dPVwiIWlzRXhwYW5kZWRcIiBoaWQ+XG4gICAgPGRpdiBjbGFzcz1cImNoaWxkcmVuXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZS5jaGlsZHJlblwiPlxuICAgICAgICA8YXBwLXRyZWUtbWVudS1pdGVtIFtub2RlXT1cIm5vZGVcIj48L2FwcC10cmVlLW1lbnUtaXRlbT5cbiAgICAgIDwvbGk+XG4gICAgPC9kaXY+XG4gIDwvdWw+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./tree-menu-item/tree-menu-item.component";
|
|
4
|
+
export class TreeMenuComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.rootNode = {
|
|
7
|
+
name: 'Atlas Detector',
|
|
8
|
+
geometryId: 'AtlasDetector',
|
|
9
|
+
children: [
|
|
10
|
+
{
|
|
11
|
+
name: 'Magnet systems',
|
|
12
|
+
geometryId: 'MagnetSys',
|
|
13
|
+
children: [
|
|
14
|
+
{
|
|
15
|
+
name: 'Toroids',
|
|
16
|
+
geometryId: 'Toroids',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'Calorimeters',
|
|
22
|
+
geometryId: 'CaloSys',
|
|
23
|
+
children: [
|
|
24
|
+
{
|
|
25
|
+
name: 'LAr Barrel',
|
|
26
|
+
geometryId: 'LAr Barrel',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'LAr EC1',
|
|
30
|
+
geometryId: 'LAr EC1',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'LAr EC2',
|
|
34
|
+
geometryId: 'LAr EC2',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Tile Cal',
|
|
38
|
+
geometryId: 'Tile Cal',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Inner detector',
|
|
44
|
+
geometryId: 'InDetSys',
|
|
45
|
+
children: [
|
|
46
|
+
{
|
|
47
|
+
name: 'Pixel',
|
|
48
|
+
geometryId: 'Pixel',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'SCT',
|
|
52
|
+
geometryId: 'SCT',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'TRT',
|
|
56
|
+
geometryId: 'TRT',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() { }
|
|
64
|
+
}
|
|
65
|
+
TreeMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
TreeMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TreeMenuComponent, selector: "app-tree-menu", ngImport: i0, template: "<div class=\"tree-wrapper\">\n <div class=\"tree-menu\">\n <app-tree-menu-item [node]=\"rootNode\"></app-tree-menu-item>\n </div>\n</div>\n", styles: [".tree-wrapper{position:absolute;top:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center;align-content:center}.tree-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;align-content:center;max-height:70vh;overflow-y:scroll}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}\n"], components: [{ type: i1.TreeMenuItemComponent, selector: "app-tree-menu-item", inputs: ["node"] }] });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeMenuComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'app-tree-menu', template: "<div class=\"tree-wrapper\">\n <div class=\"tree-menu\">\n <app-tree-menu-item [node]=\"rootNode\"></app-tree-menu-item>\n </div>\n</div>\n", styles: [".tree-wrapper{position:absolute;top:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center;align-content:center}.tree-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;align-content:center;max-height:70vh;overflow-y:scroll}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}\n"] }]
|
|
70
|
+
}], ctorParameters: function () { return []; } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvdHJlZS1tZW51L3RyZWUtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3RyZWUtbWVudS90cmVlLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWxELE1BQU0sT0FBTyxpQkFBaUI7SUEwRDVCO1FBekRBLGFBQVEsR0FBRztZQUNULElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLFVBQVUsRUFBRSxXQUFXO29CQUN2QixRQUFRLEVBQUU7d0JBQ1I7NEJBQ0UsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsVUFBVSxFQUFFLFNBQVM7eUJBQ3RCO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsU0FBUztvQkFDckIsUUFBUSxFQUFFO3dCQUNSOzRCQUNFLElBQUksRUFBRSxZQUFZOzRCQUNsQixVQUFVLEVBQUUsWUFBWTt5QkFDekI7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsVUFBVSxFQUFFLFNBQVM7eUJBQ3RCO3dCQUNEOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLFVBQVUsRUFBRSxTQUFTO3lCQUN0Qjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsVUFBVTs0QkFDaEIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLFVBQVUsRUFBRSxVQUFVO29CQUN0QixRQUFRLEVBQUU7d0JBQ1I7NEJBQ0UsSUFBSSxFQUFFLE9BQU87NEJBQ2IsVUFBVSxFQUFFLE9BQU87eUJBQ3BCO3dCQUNEOzRCQUNFLElBQUksRUFBRSxLQUFLOzRCQUNYLFVBQVUsRUFBRSxLQUFLO3lCQUNsQjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsS0FBSzs0QkFDWCxVQUFVLEVBQUUsS0FBSzt5QkFDbEI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFFYSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOzs4R0E1RFIsaUJBQWlCO2tHQUFqQixpQkFBaUIscURDUjlCLGtKQUtBOzJGREdhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyZWVNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1tZW51LWl0ZW0vdHJlZS1tZW51LWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRyZWUtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZU1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByb290Tm9kZSA9IHtcbiAgICBuYW1lOiAnQXRsYXMgRGV0ZWN0b3InLFxuICAgIGdlb21ldHJ5SWQ6ICdBdGxhc0RldGVjdG9yJyxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnTWFnbmV0IHN5c3RlbXMnLFxuICAgICAgICBnZW9tZXRyeUlkOiAnTWFnbmV0U3lzJyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnVG9yb2lkcycsXG4gICAgICAgICAgICBnZW9tZXRyeUlkOiAnVG9yb2lkcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdDYWxvcmltZXRlcnMnLFxuICAgICAgICBnZW9tZXRyeUlkOiAnQ2Fsb1N5cycsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0xBciBCYXJyZWwnLFxuICAgICAgICAgICAgZ2VvbWV0cnlJZDogJ0xBciBCYXJyZWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0xBciBFQzEnLFxuICAgICAgICAgICAgZ2VvbWV0cnlJZDogJ0xBciBFQzEnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0xBciBFQzInLFxuICAgICAgICAgICAgZ2VvbWV0cnlJZDogJ0xBciBFQzInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1RpbGUgQ2FsJyxcbiAgICAgICAgICAgIGdlb21ldHJ5SWQ6ICdUaWxlIENhbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdJbm5lciBkZXRlY3RvcicsXG4gICAgICAgIGdlb21ldHJ5SWQ6ICdJbkRldFN5cycsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1BpeGVsJyxcbiAgICAgICAgICAgIGdlb21ldHJ5SWQ6ICdQaXhlbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU0NUJyxcbiAgICAgICAgICAgIGdlb21ldHJ5SWQ6ICdTQ1QnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1RSVCcsXG4gICAgICAgICAgICBnZW9tZXRyeUlkOiAnVFJUJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidHJlZS13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmVlLW1lbnVcIj5cbiAgICA8YXBwLXRyZWUtbWVudS1pdGVtIFtub2RlXT1cInJvb3ROb2RlXCI+PC9hcHAtdHJlZS1tZW51LWl0ZW0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|