phoenix-ui-components 2.14.1 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/README.md +2 -2
- package/dist/components/file-explorer/file-explorer.component.d.ts +9 -3
- package/dist/components/loader/loader.component.d.ts +1 -1
- package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +1 -1
- package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +1 -1
- package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +1 -1
- package/dist/components/phoenix-ui.module.d.ts +62 -59
- package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +1 -1
- package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +3 -1
- package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +7 -2
- package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +7 -8
- package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +1 -1
- package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +1 -1
- package/dist/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.d.ts +22 -0
- package/dist/components/ui-menu/geometry-browser/geometry-browser.component.d.ts +15 -0
- package/dist/components/ui-menu/index.d.ts +3 -0
- package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +1 -1
- package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +1 -1
- package/dist/components/ui-menu/io-options/io-options.component.d.ts +1 -1
- package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +3 -0
- package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +1 -1
- package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +1 -1
- package/dist/components/ui-menu/overlay/overlay.component.d.ts +1 -1
- package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +1 -1
- package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +1 -1
- package/dist/components/ui-menu/ui-menu.component.d.ts +1 -1
- package/dist/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.d.ts +51 -0
- package/dist/components/ui-menu/view-options/view-options.component.d.ts +21 -4
- package/dist/esm2022/components/embed-menu/embed-menu.component.mjs +22 -0
- package/dist/esm2022/components/embed-menu/experiment-link/experiment-link.component.mjs +27 -0
- package/dist/esm2022/components/file-explorer/file-explorer.component.mjs +109 -0
- package/dist/esm2022/components/loader/loader.component.mjs +71 -0
- package/dist/esm2022/components/nav/nav.component.mjs +19 -0
- package/dist/esm2022/components/phoenix-menu/config/config-slider/config-slider.component.mjs +81 -0
- package/dist/esm2022/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +304 -0
- package/dist/esm2022/components/phoenix-menu/phoenix-menu.component.mjs +23 -0
- package/dist/esm2022/components/phoenix-ui.module.mjs +254 -0
- package/dist/esm2022/components/ring-loader/ring-loader.component.mjs +16 -0
- package/dist/esm2022/components/ui-menu/animate-camera/animate-camera.component.mjs +120 -0
- package/dist/esm2022/components/ui-menu/animate-event/animate-event.component.mjs +33 -0
- package/dist/esm2022/components/ui-menu/ar-toggle/ar-toggle.component.mjs +83 -0
- package/dist/esm2022/components/ui-menu/auto-rotate/auto-rotate.component.mjs +29 -0
- package/dist/esm2022/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +273 -0
- package/dist/esm2022/components/ui-menu/collections-info/collections-info.component.mjs +44 -0
- package/dist/esm2022/components/ui-menu/cycle-events/cycle-events.component.mjs +90 -0
- package/dist/esm2022/components/ui-menu/dark-theme/dark-theme.component.mjs +32 -0
- package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +128 -0
- package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +35 -0
- package/dist/esm2022/components/ui-menu/event-selector/event-selector.component.mjs +54 -0
- package/dist/esm2022/components/ui-menu/experiment-info/experiment-info.component.mjs +100 -0
- package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.mjs +172 -0
- package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser.component.mjs +44 -0
- package/dist/esm2022/components/ui-menu/index.mjs +40 -0
- package/dist/esm2022/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +69 -0
- package/dist/esm2022/components/ui-menu/info-panel/info-panel.component.mjs +59 -0
- package/dist/esm2022/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +294 -0
- package/dist/esm2022/components/ui-menu/io-options/io-options.component.mjs +36 -0
- package/dist/esm2022/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +32 -0
- package/dist/esm2022/components/ui-menu/make-picture/make-picture.component.mjs +109 -0
- package/dist/esm2022/components/ui-menu/menu-toggle/menu-toggle.component.mjs +40 -0
- package/dist/esm2022/components/ui-menu/object-clipping/object-clipping.component.mjs +72 -0
- package/dist/esm2022/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +59 -0
- package/dist/esm2022/components/ui-menu/object-selection/object-selection.component.mjs +46 -0
- package/dist/esm2022/components/ui-menu/overlay/overlay.component.mjs +197 -0
- package/dist/esm2022/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +83 -0
- package/dist/esm2022/components/ui-menu/overlay-view/overlay-view.component.mjs +41 -0
- package/dist/esm2022/components/ui-menu/performance-toggle/performance-toggle.component.mjs +29 -0
- package/dist/esm2022/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +165 -0
- package/dist/esm2022/components/ui-menu/share-link/share-link.component.mjs +28 -0
- package/dist/esm2022/components/ui-menu/ss-mode/ss-mode.component.mjs +46 -0
- package/dist/esm2022/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +94 -0
- package/dist/esm2022/components/ui-menu/tree-menu/tree-menu.component.mjs +78 -0
- package/dist/esm2022/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +34 -0
- package/dist/esm2022/components/ui-menu/ui-menu.component.mjs +54 -0
- package/dist/esm2022/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.mjs +247 -0
- package/dist/esm2022/components/ui-menu/view-options/view-options.component.mjs +170 -0
- package/dist/esm2022/components/ui-menu/vr-toggle/vr-toggle.component.mjs +52 -0
- package/dist/esm2022/components/ui-menu/zoom-controls/zoom-controls.component.mjs +79 -0
- package/dist/esm2022/services/error-message-service.mjs +30 -0
- package/dist/{esm2020 → esm2022}/services/event-display.service.mjs +5 -5
- package/dist/esm2022/services/extras/attribute.pipe.mjs +33 -0
- package/dist/{esm2020 → esm2022}/services/extras/event-data-import.mjs +5 -1
- package/dist/esm2022/services/file-loader.service.mjs +86 -0
- package/dist/esm2022/services/global-error-handler.mjs +30 -0
- package/dist/fesm2022/phoenix-ui-components.mjs +4302 -0
- package/dist/fesm2022/phoenix-ui-components.mjs.map +1 -0
- package/dist/services/file-loader.service.d.ts +17 -0
- package/package.json +27 -16
- package/dist/esm2020/components/embed-menu/embed-menu.component.mjs +0 -21
- package/dist/esm2020/components/embed-menu/experiment-link/experiment-link.component.mjs +0 -25
- package/dist/esm2020/components/file-explorer/file-explorer.component.mjs +0 -97
- package/dist/esm2020/components/loader/loader.component.mjs +0 -68
- package/dist/esm2020/components/nav/nav.component.mjs +0 -18
- package/dist/esm2020/components/phoenix-menu/config/config-slider/config-slider.component.mjs +0 -82
- package/dist/esm2020/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +0 -309
- package/dist/esm2020/components/phoenix-menu/phoenix-menu.component.mjs +0 -21
- package/dist/esm2020/components/phoenix-ui.module.mjs +0 -254
- package/dist/esm2020/components/ring-loader/ring-loader.component.mjs +0 -15
- package/dist/esm2020/components/ui-menu/animate-camera/animate-camera.component.mjs +0 -117
- package/dist/esm2020/components/ui-menu/animate-event/animate-event.component.mjs +0 -31
- package/dist/esm2020/components/ui-menu/ar-toggle/ar-toggle.component.mjs +0 -81
- package/dist/esm2020/components/ui-menu/auto-rotate/auto-rotate.component.mjs +0 -27
- package/dist/esm2020/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +0 -261
- package/dist/esm2020/components/ui-menu/collections-info/collections-info.component.mjs +0 -38
- package/dist/esm2020/components/ui-menu/cycle-events/cycle-events.component.mjs +0 -42
- package/dist/esm2020/components/ui-menu/dark-theme/dark-theme.component.mjs +0 -30
- package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +0 -176
- package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +0 -32
- package/dist/esm2020/components/ui-menu/event-selector/event-selector.component.mjs +0 -50
- package/dist/esm2020/components/ui-menu/experiment-info/experiment-info.component.mjs +0 -96
- package/dist/esm2020/components/ui-menu/index.mjs +0 -37
- package/dist/esm2020/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +0 -66
- package/dist/esm2020/components/ui-menu/info-panel/info-panel.component.mjs +0 -55
- package/dist/esm2020/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +0 -290
- package/dist/esm2020/components/ui-menu/io-options/io-options.component.mjs +0 -34
- package/dist/esm2020/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +0 -30
- package/dist/esm2020/components/ui-menu/make-picture/make-picture.component.mjs +0 -88
- package/dist/esm2020/components/ui-menu/menu-toggle/menu-toggle.component.mjs +0 -38
- package/dist/esm2020/components/ui-menu/object-clipping/object-clipping.component.mjs +0 -67
- package/dist/esm2020/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +0 -55
- package/dist/esm2020/components/ui-menu/object-selection/object-selection.component.mjs +0 -42
- package/dist/esm2020/components/ui-menu/overlay/overlay.component.mjs +0 -189
- package/dist/esm2020/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +0 -79
- package/dist/esm2020/components/ui-menu/overlay-view/overlay-view.component.mjs +0 -38
- package/dist/esm2020/components/ui-menu/performance-toggle/performance-toggle.component.mjs +0 -27
- package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +0 -158
- package/dist/esm2020/components/ui-menu/share-link/share-link.component.mjs +0 -26
- package/dist/esm2020/components/ui-menu/ss-mode/ss-mode.component.mjs +0 -47
- package/dist/esm2020/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +0 -90
- package/dist/esm2020/components/ui-menu/tree-menu/tree-menu.component.mjs +0 -78
- package/dist/esm2020/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +0 -35
- package/dist/esm2020/components/ui-menu/ui-menu.component.mjs +0 -54
- package/dist/esm2020/components/ui-menu/view-options/view-options.component.mjs +0 -81
- package/dist/esm2020/components/ui-menu/vr-toggle/vr-toggle.component.mjs +0 -50
- package/dist/esm2020/components/ui-menu/zoom-controls/zoom-controls.component.mjs +0 -73
- package/dist/esm2020/services/error-message-service.mjs +0 -32
- package/dist/esm2020/services/extras/attribute.pipe.mjs +0 -33
- package/dist/esm2020/services/global-error-handler.mjs +0 -29
- package/dist/fesm2015/phoenix-ui-components.mjs +0 -3994
- package/dist/fesm2015/phoenix-ui-components.mjs.map +0 -1
- package/dist/fesm2020/phoenix-ui-components.mjs +0 -3552
- package/dist/fesm2020/phoenix-ui-components.mjs.map +0 -1
- /package/dist/{esm2020 → esm2022}/components/phoenix-menu/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/phoenix-ui-components.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/services/index.mjs +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { FileNode, } from '../../../file-explorer/file-explorer.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../../services/event-display.service";
|
|
6
|
+
import * as i2 from "../../../../services/file-loader.service";
|
|
7
|
+
import * as i3 from "@angular/material/dialog";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "@angular/material/button";
|
|
10
|
+
import * as i6 from "@angular/material/tabs";
|
|
11
|
+
import * as i7 from "../../../file-explorer/file-explorer.component";
|
|
12
|
+
import * as i8 from "../../../ring-loader/ring-loader.component";
|
|
13
|
+
function EventDataExplorerDialogComponent_app_ring_loader_4_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelement(0, "app-ring-loader");
|
|
15
|
+
} }
|
|
16
|
+
function EventDataExplorerDialogComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "div");
|
|
18
|
+
i0.ɵɵtext(1, "Error processing request.");
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
20
|
+
} }
|
|
21
|
+
function EventDataExplorerDialogComponent_mat_tab_group_7_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
23
|
+
i0.ɵɵelementStart(0, "mat-tab-group", 8)(1, "mat-tab", 9)(2, "div", 10)(3, "app-file-explorer", 11);
|
|
24
|
+
i0.ɵɵlistener("onFileSelect", function EventDataExplorerDialogComponent_mat_tab_group_7_Template_app_file_explorer_onFileSelect_3_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.loadEvent($event)); });
|
|
25
|
+
i0.ɵɵelementEnd()()();
|
|
26
|
+
i0.ɵɵelementStart(4, "mat-tab", 12)(5, "div", 10)(6, "app-file-explorer", 11);
|
|
27
|
+
i0.ɵɵlistener("onFileSelect", function EventDataExplorerDialogComponent_mat_tab_group_7_Template_app_file_explorer_onFileSelect_6_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.loadConfig($event)); });
|
|
28
|
+
i0.ɵɵelementEnd()()()();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
31
|
+
i0.ɵɵadvance(3);
|
|
32
|
+
i0.ɵɵproperty("rootFileNode", ctx_r1.eventDataFileNode);
|
|
33
|
+
i0.ɵɵadvance(3);
|
|
34
|
+
i0.ɵɵproperty("rootFileNode", ctx_r1.configFileNode);
|
|
35
|
+
} }
|
|
36
|
+
const supportFileTypes = ['json', 'xml'];
|
|
37
|
+
export class EventDataExplorerDialogComponent {
|
|
38
|
+
eventDisplay;
|
|
39
|
+
fileLoader;
|
|
40
|
+
dialogRef;
|
|
41
|
+
dialogData;
|
|
42
|
+
eventDataFileNode;
|
|
43
|
+
configFileNode;
|
|
44
|
+
loading = true;
|
|
45
|
+
error = false;
|
|
46
|
+
constructor(eventDisplay, fileLoader, dialogRef, dialogData) {
|
|
47
|
+
this.eventDisplay = eventDisplay;
|
|
48
|
+
this.fileLoader = fileLoader;
|
|
49
|
+
this.dialogRef = dialogRef;
|
|
50
|
+
this.dialogData = dialogData;
|
|
51
|
+
// Event data
|
|
52
|
+
fileLoader.makeRequest(this.dialogData.apiURL, 'json', (res) => {
|
|
53
|
+
const filePaths = res.filter((file) => supportFileTypes.includes(file.name.split('.').pop()));
|
|
54
|
+
this.eventDataFileNode = this.buildFileNode(filePaths);
|
|
55
|
+
});
|
|
56
|
+
// Config
|
|
57
|
+
fileLoader.makeRequest(`${this.dialogData.apiURL}?type=config`, 'json', (res) => {
|
|
58
|
+
const filePaths = res.filter((file) => file.name.split('.').pop() === 'json');
|
|
59
|
+
this.configFileNode = this.buildFileNode(filePaths);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
loadEvent(file) {
|
|
63
|
+
this.loading = true;
|
|
64
|
+
this.error = this.fileLoader.loadEvent(file.url, this.eventDisplay, file.nocache ? { cache: 'no-cache' } : {});
|
|
65
|
+
this.loading = false;
|
|
66
|
+
if (!this.error)
|
|
67
|
+
this.onClose();
|
|
68
|
+
}
|
|
69
|
+
loadConfig(file) {
|
|
70
|
+
this.loading = true;
|
|
71
|
+
this.error = this.fileLoader.makeRequest(`${this.dialogData.apiURL}?type=config&f=${file.url}`, 'text', (config) => {
|
|
72
|
+
const stateManager = this.eventDisplay.getStateManager();
|
|
73
|
+
stateManager.loadStateFromJSON(JSON.parse(config));
|
|
74
|
+
this.onClose();
|
|
75
|
+
});
|
|
76
|
+
this.loading = false;
|
|
77
|
+
}
|
|
78
|
+
// Helpers
|
|
79
|
+
onClose() {
|
|
80
|
+
this.dialogRef.close();
|
|
81
|
+
}
|
|
82
|
+
buildFileNode(filePaths) {
|
|
83
|
+
const rootNode = new FileNode();
|
|
84
|
+
let fileNode = rootNode;
|
|
85
|
+
for (const filePath of filePaths) {
|
|
86
|
+
filePath.name.split('/').forEach((name) => {
|
|
87
|
+
fileNode.children = fileNode.children ?? {};
|
|
88
|
+
fileNode.children[name] = fileNode.children[name] ?? new FileNode(name);
|
|
89
|
+
fileNode = fileNode.children[name];
|
|
90
|
+
});
|
|
91
|
+
fileNode.url = filePath.url;
|
|
92
|
+
fileNode.nocache = filePath.nocache;
|
|
93
|
+
fileNode = rootNode;
|
|
94
|
+
}
|
|
95
|
+
return rootNode;
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = function EventDataExplorerDialogComponent_Factory(t) { return new (t || EventDataExplorerDialogComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService), i0.ɵɵdirectiveInject(i2.FileLoaderService), i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
98
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventDataExplorerDialogComponent, selectors: [["app-event-data-explorer-dialog"]], decls: 11, vars: 3, consts: [[1, "dialog"], [1, "d-flex"], ["mat-dialog-title", ""], [4, "ngIf"], ["mat-dialog-content", "", 1, "dialog-content"], ["mat-align-tabs", "start", "animationDuration", "0ms", "disableRipple", "", "opacity", "transparent", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-button", "", "cdkFocusInitial", "", 3, "click"], ["mat-align-tabs", "start", "animationDuration", "0ms", "disableRipple", "", "opacity", "transparent"], ["label", "Event data"], [1, "py-3"], [3, "onFileSelect", "rootFileNode"], ["label", "Config"]], template: function EventDataExplorerDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h1", 2);
|
|
100
|
+
i0.ɵɵtext(3, "Event data from directory");
|
|
101
|
+
i0.ɵɵelementEnd();
|
|
102
|
+
i0.ɵɵtemplate(4, EventDataExplorerDialogComponent_app_ring_loader_4_Template, 1, 0, "app-ring-loader", 3);
|
|
103
|
+
i0.ɵɵelementEnd();
|
|
104
|
+
i0.ɵɵelementStart(5, "div", 4);
|
|
105
|
+
i0.ɵɵtemplate(6, EventDataExplorerDialogComponent_div_6_Template, 2, 0, "div", 3)(7, EventDataExplorerDialogComponent_mat_tab_group_7_Template, 7, 2, "mat-tab-group", 5);
|
|
106
|
+
i0.ɵɵelementEnd();
|
|
107
|
+
i0.ɵɵelementStart(8, "div", 6)(9, "button", 7);
|
|
108
|
+
i0.ɵɵlistener("click", function EventDataExplorerDialogComponent_Template_button_click_9_listener() { return ctx.onClose(); });
|
|
109
|
+
i0.ɵɵtext(10, "Close");
|
|
110
|
+
i0.ɵɵelementEnd()()();
|
|
111
|
+
} if (rf & 2) {
|
|
112
|
+
i0.ɵɵadvance(4);
|
|
113
|
+
i0.ɵɵproperty("ngIf", ctx.loading);
|
|
114
|
+
i0.ɵɵadvance(2);
|
|
115
|
+
i0.ɵɵproperty("ngIf", ctx.error);
|
|
116
|
+
i0.ɵɵadvance();
|
|
117
|
+
i0.ɵɵproperty("ngIf", !ctx.error);
|
|
118
|
+
} }, dependencies: [i4.NgIf, i3.MatDialogTitle, i3.MatDialogActions, i3.MatDialogContent, i5.MatButton, i6.MatTab, i6.MatTabGroup, i7.FileExplorerComponent, i8.RingLoaderComponent], styles: [".dialog[_ngcontent-%COMP%]{width:30rem;max-width:95%}.file-path-button[_ngcontent-%COMP%]{width:100%;color:var(--phoenix-text-color);background:var(--phoenix-background-color-tertiary);text-align:left;border-radius:1rem;margin-bottom:.5rem;padding:.5rem 1rem}.file-path-button[_ngcontent-%COMP%]:last-child{margin-bottom:0}.file-path-button[_ngcontent-%COMP%]:hover{background:var(--phoenix-background-color-secondary)}.file-path-button[_ngcontent-%COMP%]:focus{border:1px solid var(--phoenix-text-color-secondary);box-shadow:none}"] });
|
|
119
|
+
}
|
|
120
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventDataExplorerDialogComponent, [{
|
|
121
|
+
type: Component,
|
|
122
|
+
args: [{ selector: 'app-event-data-explorer-dialog', template: "<div class=\"dialog\">\n <div class=\"d-flex\">\n <h1 mat-dialog-title>Event data from directory</h1>\n <app-ring-loader *ngIf=\"loading\"></app-ring-loader>\n </div>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"error\">Error processing request.</div>\n <mat-tab-group\n *ngIf=\"!error\"\n mat-align-tabs=\"start\"\n animationDuration=\"0ms\"\n disableRipple\n opacity=\"transparent\"\n >\n <mat-tab label=\"Event data\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"eventDataFileNode\"\n (onFileSelect)=\"loadEvent($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n <mat-tab label=\"Config\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"configFileNode\"\n (onFileSelect)=\"loadConfig($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n", styles: [".dialog{width:30rem;max-width:95%}.file-path-button{width:100%;color:var(--phoenix-text-color);background:var(--phoenix-background-color-tertiary);text-align:left;border-radius:1rem;margin-bottom:.5rem;padding:.5rem 1rem}.file-path-button:last-child{margin-bottom:0}.file-path-button:hover{background:var(--phoenix-background-color-secondary)}.file-path-button:focus{border:1px solid var(--phoenix-text-color-secondary);box-shadow:none}\n"] }]
|
|
123
|
+
}], () => [{ type: i1.EventDisplayService }, { type: i2.FileLoaderService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
|
|
124
|
+
type: Inject,
|
|
125
|
+
args: [MAT_DIALOG_DATA]
|
|
126
|
+
}] }], null); })();
|
|
127
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventDataExplorerDialogComponent, { className: "EventDataExplorerDialogComponent", filePath: "components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.ts", lineNumber: 24 }); })();
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGF0YS1leHBsb3Jlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9ldmVudC1kYXRhLWV4cGxvcmVyL2V2ZW50LWRhdGEtZXhwbG9yZXItZGlhbG9nL2V2ZW50LWRhdGEtZXhwbG9yZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvZXZlbnQtZGF0YS1leHBsb3Jlci9ldmVudC1kYXRhLWV4cGxvcmVyLWRpYWxvZy9ldmVudC1kYXRhLWV4cGxvcmVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFDTCxRQUFRLEdBRVQsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7SUNIcEQsa0NBQW1EOzs7SUFHbkQsMkJBQW1CO0lBQUEseUNBQXlCO0lBQUEsaUJBQU07Ozs7SUFVNUMsQUFERixBQURGLEFBUEYsd0NBTUMsaUJBQzZCLGNBQ1IsNEJBSWY7SUFEQyxxT0FBZ0Isd0JBQWlCLEtBQUM7SUFHeEMsQUFERSxBQURHLGlCQUFvQixFQUNqQixFQUNFO0lBR04sQUFERixBQURGLG1DQUF3QixjQUNKLDRCQUlmO0lBREMscU9BQWdCLHlCQUFrQixLQUFDO0lBSTNDLEFBREUsQUFERSxBQURHLGlCQUFvQixFQUNqQixFQUNFLEVBQ0k7OztJQWJSLGVBQWtDO0lBQWxDLHVEQUFrQztJQVFsQyxlQUErQjtJQUEvQixvREFBK0I7O0FEZjNDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFhekMsTUFBTSxPQUFPLGdDQUFnQztJQU9qQztJQUNBO0lBQ0E7SUFDeUI7SUFUbkMsaUJBQWlCLENBQVc7SUFDNUIsY0FBYyxDQUFXO0lBQ3pCLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDZixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWQsWUFDVSxZQUFpQyxFQUNqQyxVQUE2QixFQUM3QixTQUF5RCxFQUNoQyxVQUF1QztRQUhoRSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBZ0Q7UUFDaEMsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFFeEUsYUFBYTtRQUNiLFVBQVUsQ0FBQyxXQUFXLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUN0QixNQUFNLEVBQ04sQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDdEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3BDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUN0RCxDQUFDO1lBRUYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUNGLENBQUM7UUFFRixTQUFTO1FBQ1QsVUFBVSxDQUFDLFdBQVcsQ0FDcEIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sY0FBYyxFQUN2QyxNQUFNLEVBQ04sQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDdEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sQ0FDaEQsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBZTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUNwQyxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzFDLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQ3RDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLGtCQUFrQixJQUFJLENBQUMsR0FBRyxFQUFFLEVBQ3JELE1BQU0sRUFDTixDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6RCxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVO0lBQ1YsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUF5QjtRQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV4QixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QyxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUM1QyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hFLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzVCLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNwQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzBGQXRGVSxnQ0FBZ0Msd0pBVWpDLGVBQWU7NkRBVmQsZ0NBQWdDO1lDckJ6QyxBQURGLEFBREYsOEJBQW9CLGFBQ0UsWUFDRztZQUFBLHlDQUF5QjtZQUFBLGlCQUFLO1lBQ25ELHlHQUFpQztZQUNuQyxpQkFBTTtZQUNOLDhCQUErQztZQUU3QyxBQURBLGlGQUFtQix3RkFPbEI7WUFrQkgsaUJBQU07WUFFSixBQURGLDhCQUF3QixnQkFDaUM7WUFBcEMsNkdBQVMsYUFBUyxJQUFDO1lBQWlCLHNCQUFLO1lBRWhFLEFBREUsQUFEOEQsaUJBQVMsRUFDakUsRUFDRjs7WUFoQ2dCLGVBQWE7WUFBYixrQ0FBYTtZQUd6QixlQUFXO1lBQVgsZ0NBQVc7WUFFZCxjQUFZO1lBQVosaUNBQVk7OztpRkRlTixnQ0FBZ0M7Y0FMNUMsU0FBUzsyQkFDRSxnQ0FBZ0M7O3NCQWN2QyxNQUFNO3VCQUFDLGVBQWU7O2tGQVZkLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEZpbGVOb2RlLFxuICBGaWxlRXZlbnQsXG59IGZyb20gJy4uLy4uLy4uL2ZpbGUtZXhwbG9yZXIvZmlsZS1leHBsb3Jlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9maWxlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50RGF0YUV4cGxvcmVyRGlhbG9nRGF0YSB9IGZyb20gJy4uL2V2ZW50LWRhdGEtZXhwbG9yZXIuY29tcG9uZW50JztcblxuY29uc3Qgc3VwcG9ydEZpbGVUeXBlcyA9IFsnanNvbicsICd4bWwnXTtcblxuZXhwb3J0IHR5cGUgRmlsZVJlc3BvbnNlID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBub2NhY2hlOiBib29sZWFuO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV2ZW50LWRhdGEtZXhwbG9yZXItZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWRhdGEtZXhwbG9yZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXZlbnQtZGF0YS1leHBsb3Jlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhRXhwbG9yZXJEaWFsb2dDb21wb25lbnQge1xuICBldmVudERhdGFGaWxlTm9kZTogRmlsZU5vZGU7XG4gIGNvbmZpZ0ZpbGVOb2RlOiBGaWxlTm9kZTtcbiAgbG9hZGluZyA9IHRydWU7XG4gIGVycm9yID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaWxlTG9hZGVyOiBGaWxlTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEV2ZW50RGF0YUV4cGxvcmVyRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkaWFsb2dEYXRhOiBFdmVudERhdGFFeHBsb3JlckRpYWxvZ0RhdGEsXG4gICkge1xuICAgIC8vIEV2ZW50IGRhdGFcbiAgICBmaWxlTG9hZGVyLm1ha2VSZXF1ZXN0KFxuICAgICAgdGhpcy5kaWFsb2dEYXRhLmFwaVVSTCxcbiAgICAgICdqc29uJyxcbiAgICAgIChyZXM6IEZpbGVSZXNwb25zZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRocyA9IHJlcy5maWx0ZXIoKGZpbGUpID0+XG4gICAgICAgICAgc3VwcG9ydEZpbGVUeXBlcy5pbmNsdWRlcyhmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5ldmVudERhdGFGaWxlTm9kZSA9IHRoaXMuYnVpbGRGaWxlTm9kZShmaWxlUGF0aHMpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gQ29uZmlnXG4gICAgZmlsZUxvYWRlci5tYWtlUmVxdWVzdChcbiAgICAgIGAke3RoaXMuZGlhbG9nRGF0YS5hcGlVUkx9P3R5cGU9Y29uZmlnYCxcbiAgICAgICdqc29uJyxcbiAgICAgIChyZXM6IEZpbGVSZXNwb25zZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRocyA9IHJlcy5maWx0ZXIoXG4gICAgICAgICAgKGZpbGUpID0+IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpID09PSAnanNvbicsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25maWdGaWxlTm9kZSA9IHRoaXMuYnVpbGRGaWxlTm9kZShmaWxlUGF0aHMpO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgbG9hZEV2ZW50KGZpbGU6IEZpbGVFdmVudCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvciA9IHRoaXMuZmlsZUxvYWRlci5sb2FkRXZlbnQoXG4gICAgICBmaWxlLnVybCxcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LFxuICAgICAgZmlsZS5ub2NhY2hlID8geyBjYWNoZTogJ25vLWNhY2hlJyB9IDoge30sXG4gICAgKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZXJyb3IpIHRoaXMub25DbG9zZSgpO1xuICB9XG5cbiAgbG9hZENvbmZpZyhmaWxlOiBGaWxlRXZlbnQpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3IgPSB0aGlzLmZpbGVMb2FkZXIubWFrZVJlcXVlc3QoXG4gICAgICBgJHt0aGlzLmRpYWxvZ0RhdGEuYXBpVVJMfT90eXBlPWNvbmZpZyZmPSR7ZmlsZS51cmx9YCxcbiAgICAgICd0ZXh0JyxcbiAgICAgIChjb25maWcpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGVNYW5hZ2VyID0gdGhpcy5ldmVudERpc3BsYXkuZ2V0U3RhdGVNYW5hZ2VyKCk7XG4gICAgICAgIHN0YXRlTWFuYWdlci5sb2FkU3RhdGVGcm9tSlNPTihKU09OLnBhcnNlKGNvbmZpZykpO1xuICAgICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIEhlbHBlcnNcbiAgb25DbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZpbGVOb2RlKGZpbGVQYXRoczogRmlsZVJlc3BvbnNlW10pOiBGaWxlTm9kZSB7XG4gICAgY29uc3Qgcm9vdE5vZGUgPSBuZXcgRmlsZU5vZGUoKTtcbiAgICBsZXQgZmlsZU5vZGUgPSByb290Tm9kZTtcblxuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsZVBhdGhzKSB7XG4gICAgICBmaWxlUGF0aC5uYW1lLnNwbGl0KCcvJykuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBmaWxlTm9kZS5jaGlsZHJlbiA9IGZpbGVOb2RlLmNoaWxkcmVuID8/IHt9O1xuICAgICAgICBmaWxlTm9kZS5jaGlsZHJlbltuYW1lXSA9IGZpbGVOb2RlLmNoaWxkcmVuW25hbWVdID8/IG5ldyBGaWxlTm9kZShuYW1lKTtcbiAgICAgICAgZmlsZU5vZGUgPSBmaWxlTm9kZS5jaGlsZHJlbltuYW1lXTtcbiAgICAgIH0pO1xuXG4gICAgICBmaWxlTm9kZS51cmwgPSBmaWxlUGF0aC51cmw7XG4gICAgICBmaWxlTm9kZS5ub2NhY2hlID0gZmlsZVBhdGgubm9jYWNoZTtcbiAgICAgIGZpbGVOb2RlID0gcm9vdE5vZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvb3ROb2RlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8aDEgbWF0LWRpYWxvZy10aXRsZT5FdmVudCBkYXRhIGZyb20gZGlyZWN0b3J5PC9oMT5cbiAgICA8YXBwLXJpbmctbG9hZGVyICpuZ0lmPVwibG9hZGluZ1wiPjwvYXBwLXJpbmctbG9hZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvclwiPkVycm9yIHByb2Nlc3NpbmcgcmVxdWVzdC48L2Rpdj5cbiAgICA8bWF0LXRhYi1ncm91cFxuICAgICAgKm5nSWY9XCIhZXJyb3JcIlxuICAgICAgbWF0LWFsaWduLXRhYnM9XCJzdGFydFwiXG4gICAgICBhbmltYXRpb25EdXJhdGlvbj1cIjBtc1wiXG4gICAgICBkaXNhYmxlUmlwcGxlXG4gICAgICBvcGFjaXR5PVwidHJhbnNwYXJlbnRcIlxuICAgID5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiRXZlbnQgZGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgIDxhcHAtZmlsZS1leHBsb3JlclxuICAgICAgICAgICAgW3Jvb3RGaWxlTm9kZV09XCJldmVudERhdGFGaWxlTm9kZVwiXG4gICAgICAgICAgICAob25GaWxlU2VsZWN0KT1cImxvYWRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtZmlsZS1leHBsb3Jlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbmZpZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgIDxhcHAtZmlsZS1leHBsb3JlclxuICAgICAgICAgICAgW3Jvb3RGaWxlTm9kZV09XCJjb25maWdGaWxlTm9kZVwiXG4gICAgICAgICAgICAob25GaWxlU2VsZWN0KT1cImxvYWRDb25maWcoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWZpbGUtZXhwbG9yZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9kaXY+XG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2RrRm9jdXNJbml0aWFsPkNsb3NlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { EventDataExplorerDialogComponent } from './event-data-explorer-dialog/event-data-explorer-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 EventDataExplorerComponent {
|
|
7
|
+
dialog;
|
|
8
|
+
apiURL;
|
|
9
|
+
constructor(dialog) {
|
|
10
|
+
this.dialog = dialog;
|
|
11
|
+
}
|
|
12
|
+
openEventDataExplorerDialog() {
|
|
13
|
+
this.dialog.open(EventDataExplorerDialogComponent, {
|
|
14
|
+
data: {
|
|
15
|
+
apiURL: this.apiURL,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
static ɵfac = function EventDataExplorerComponent_Factory(t) { return new (t || EventDataExplorerComponent)(i0.ɵɵdirectiveInject(i1.MatDialog)); };
|
|
20
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventDataExplorerComponent, selectors: [["app-event-data-explorer"]], inputs: { apiURL: "apiURL" }, decls: 1, vars: 1, consts: [["tooltip", "Browse events in data directory", "icon", "server", 3, "click", "active"]], template: function EventDataExplorerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
i0.ɵɵelementStart(0, "app-menu-toggle", 0);
|
|
22
|
+
i0.ɵɵlistener("click", function EventDataExplorerComponent_Template_app_menu_toggle_click_0_listener() { return ctx.openEventDataExplorerDialog(); });
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
} if (rf & 2) {
|
|
25
|
+
i0.ɵɵproperty("active", false);
|
|
26
|
+
} }, dependencies: [i2.MenuToggleComponent] });
|
|
27
|
+
}
|
|
28
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventDataExplorerComponent, [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'app-event-data-explorer', template: "<app-menu-toggle\n tooltip=\"Browse events in data directory\"\n icon=\"server\"\n [active]=\"false\"\n (click)=\"openEventDataExplorerDialog()\"\n>\n</app-menu-toggle>\n" }]
|
|
31
|
+
}], () => [{ type: i1.MatDialog }], { apiURL: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] }); })();
|
|
34
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventDataExplorerComponent, { className: "EventDataExplorerComponent", filePath: "components/ui-menu/event-data-explorer/event-data-explorer.component.ts", lineNumber: 14 }); })();
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGF0YS1leHBsb3Jlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2V2ZW50LWRhdGEtZXhwbG9yZXIvZXZlbnQtZGF0YS1leHBsb3Jlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2V2ZW50LWRhdGEtZXhwbG9yZXIvZXZlbnQtZGF0YS1leHBsb3Jlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7OztBQVdySCxNQUFNLE9BQU8sMEJBQTBCO0lBR2pCO0lBRlgsTUFBTSxDQUFTO0lBRXhCLFlBQW9CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7SUFBRyxDQUFDO0lBRXpDLDJCQUEyQjtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FHZCxnQ0FBZ0MsRUFBRTtZQUNsQyxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ3BCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztvRkFkVSwwQkFBMEI7NkRBQTFCLDBCQUEwQjtZQ2J2QywwQ0FLQztZQURDLGdIQUFTLGlDQUE2QixJQUFDO1lBRXpDLGlCQUFrQjs7WUFIaEIsOEJBQWdCOzs7aUZEVUwsMEJBQTBCO2NBTHRDLFNBQVM7MkJBQ0UseUJBQXlCOzBDQUsxQixNQUFNO2tCQUFkLEtBQUs7O2tGQURLLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFdmVudERhdGFFeHBsb3JlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZXZlbnQtZGF0YS1leHBsb3Jlci1kaWFsb2cvZXZlbnQtZGF0YS1leHBsb3Jlci1kaWFsb2cuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgRXZlbnREYXRhRXhwbG9yZXJEaWFsb2dEYXRhID0ge1xuICBhcGlVUkw6IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ldmVudC1kYXRhLWV4cGxvcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWRhdGEtZXhwbG9yZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ldmVudC1kYXRhLWV4cGxvcmVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50RGF0YUV4cGxvcmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgYXBpVVJMOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge31cblxuICBvcGVuRXZlbnREYXRhRXhwbG9yZXJEaWFsb2coKSB7XG4gICAgdGhpcy5kaWFsb2cub3BlbjxcbiAgICAgIEV2ZW50RGF0YUV4cGxvcmVyRGlhbG9nQ29tcG9uZW50LFxuICAgICAgRXZlbnREYXRhRXhwbG9yZXJEaWFsb2dEYXRhXG4gICAgPihFdmVudERhdGFFeHBsb3JlckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBhcGlVUkw6IHRoaXMuYXBpVVJMLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICB0b29sdGlwPVwiQnJvd3NlIGV2ZW50cyBpbiBkYXRhIGRpcmVjdG9yeVwiXG4gIGljb249XCJzZXJ2ZXJcIlxuICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgKGNsaWNrKT1cIm9wZW5FdmVudERhdGFFeHBsb3JlckRpYWxvZygpXCJcbj5cbjwvYXBwLW1lbnUtdG9nZ2xlPlxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
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 "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/tooltip";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
function EventSelectorComponent_div_0_option_2_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelementStart(0, "option", 4);
|
|
9
|
+
i0.ɵɵtext(1);
|
|
10
|
+
i0.ɵɵelementEnd();
|
|
11
|
+
} if (rf & 2) {
|
|
12
|
+
const event_r3 = ctx.$implicit;
|
|
13
|
+
i0.ɵɵproperty("value", event_r3);
|
|
14
|
+
i0.ɵɵadvance();
|
|
15
|
+
i0.ɵɵtextInterpolate1(" ", event_r3, " ");
|
|
16
|
+
} }
|
|
17
|
+
function EventSelectorComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
19
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "select", 2);
|
|
20
|
+
i0.ɵɵlistener("change", function EventSelectorComponent_div_0_Template_select_change_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeEvent($event)); });
|
|
21
|
+
i0.ɵɵtemplate(2, EventSelectorComponent_div_0_option_2_Template, 2, 2, "option", 3);
|
|
22
|
+
i0.ɵɵelementEnd()();
|
|
23
|
+
} if (rf & 2) {
|
|
24
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
25
|
+
i0.ɵɵadvance(2);
|
|
26
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.events);
|
|
27
|
+
} }
|
|
28
|
+
export class EventSelectorComponent {
|
|
29
|
+
eventDisplay;
|
|
30
|
+
// Array containing the keys of the multiple loaded events
|
|
31
|
+
events;
|
|
32
|
+
constructor(eventDisplay) {
|
|
33
|
+
this.eventDisplay = eventDisplay;
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.eventDisplay.listenToLoadedEventsChange((events) => (this.events = events));
|
|
37
|
+
}
|
|
38
|
+
changeEvent(selected) {
|
|
39
|
+
const value = selected.target.value;
|
|
40
|
+
this.eventDisplay.loadEvent(value);
|
|
41
|
+
}
|
|
42
|
+
static ɵfac = function EventSelectorComponent_Factory(t) { return new (t || EventSelectorComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
43
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventSelectorComponent, selectors: [["app-event-selector"]], decls: 1, vars: 1, consts: [["class", "eventSelector mx-2", "matTooltip", "Event selector", "matTooltipPosition", "above", 4, "ngIf"], ["matTooltip", "Event selector", "matTooltipPosition", "above", 1, "eventSelector", "mx-2"], ["name", "event", 3, "change"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"]], template: function EventSelectorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
i0.ɵɵtemplate(0, EventSelectorComponent_div_0_Template, 3, 1, "div", 0);
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
i0.ɵɵproperty("ngIf", ctx.events != null);
|
|
47
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.MatTooltip, i4.NgSelectOption, i4.ɵNgSelectMultipleOption], styles: [".eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"] });
|
|
48
|
+
}
|
|
49
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventSelectorComponent, [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'app-event-selector', template: "<div\n class=\"eventSelector mx-2\"\n *ngIf=\"events != null\"\n matTooltip=\"Event selector\"\n matTooltipPosition=\"above\"\n>\n <select name=\"event\" (change)=\"changeEvent($event)\">\n <option *ngFor=\"let event of events\" [value]=\"event\">\n {{ event }}\n </option>\n </select>\n</div>\n", styles: [".eventSelector select{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}\n"] }]
|
|
52
|
+
}], () => [{ type: i1.EventDisplayService }], null); })();
|
|
53
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventSelectorComponent, { className: "EventSelectorComponent", filePath: "components/ui-menu/event-selector/event-selector.component.ts", lineNumber: 9 }); })();
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9ldmVudC1zZWxlY3Rvci9ldmVudC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2V2ZW50LXNlbGVjdG9yL2V2ZW50LXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7SUNPOUMsaUNBQXFEO0lBQ25ELFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRjRCLGdDQUFlO0lBQ2xELGNBQ0Y7SUFERSx5Q0FDRjs7OztJQUhGLEFBTkYsOEJBS0MsZ0JBQ3FEO0lBQS9CLDBMQUFVLDBCQUFtQixLQUFDO0lBQ2pELG1GQUFxRDtJQUl6RCxBQURFLGlCQUFTLEVBQ0w7OztJQUp3QixlQUFTO0lBQVQsdUNBQVM7O0FEQ3ZDLE1BQU0sT0FBTyxzQkFBc0I7SUFJYjtJQUhwQiwwREFBMEQ7SUFDMUQsTUFBTSxDQUFXO0lBRWpCLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFFekQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQzFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWE7UUFDdkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztnRkFmVSxzQkFBc0I7NkRBQXRCLHNCQUFzQjtZQ1JuQyx1RUFLQzs7WUFIRSx5Q0FBb0I7OztpRkRNVixzQkFBc0I7Y0FMbEMsU0FBUzsyQkFDRSxvQkFBb0I7O2tGQUluQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ldmVudC1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V2ZW50LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBBcnJheSBjb250YWluaW5nIHRoZSBrZXlzIG9mIHRoZSBtdWx0aXBsZSBsb2FkZWQgZXZlbnRzXG4gIGV2ZW50czogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXkubGlzdGVuVG9Mb2FkZWRFdmVudHNDaGFuZ2UoXG4gICAgICAoZXZlbnRzKSA9PiAodGhpcy5ldmVudHMgPSBldmVudHMpLFxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VFdmVudChzZWxlY3RlZDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBzZWxlY3RlZC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5ldmVudERpc3BsYXkubG9hZEV2ZW50KHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImV2ZW50U2VsZWN0b3IgbXgtMlwiXG4gICpuZ0lmPVwiZXZlbnRzICE9IG51bGxcIlxuICBtYXRUb29sdGlwPVwiRXZlbnQgc2VsZWN0b3JcIlxuICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4+XG4gIDxzZWxlY3QgbmFtZT1cImV2ZW50XCIgKGNoYW5nZSk9XCJjaGFuZ2VFdmVudCgkZXZlbnQpXCI+XG4gICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgZXZlbnQgb2YgZXZlbnRzXCIgW3ZhbHVlXT1cImV2ZW50XCI+XG4gICAgICB7eyBldmVudCB9fVxuICAgIDwvb3B0aW9uPlxuICA8L3NlbGVjdD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Component, 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 "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/cdk/drag-drop";
|
|
6
|
+
function ExperimentInfoComponent_a_1_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelementStart(0, "a", 5);
|
|
8
|
+
i0.ɵɵelement(1, "img", 6);
|
|
9
|
+
i0.ɵɵelementEnd();
|
|
10
|
+
} if (rf & 2) {
|
|
11
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
12
|
+
i0.ɵɵproperty("href", ctx_r0.url, i0.ɵɵsanitizeUrl);
|
|
13
|
+
i0.ɵɵadvance();
|
|
14
|
+
i0.ɵɵproperty("src", ctx_r0.logo, i0.ɵɵsanitizeUrl);
|
|
15
|
+
} }
|
|
16
|
+
function ExperimentInfoComponent_p_3_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "p")(1, "b");
|
|
18
|
+
i0.ɵɵtext(2);
|
|
19
|
+
i0.ɵɵelementEnd()();
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
22
|
+
i0.ɵɵadvance(2);
|
|
23
|
+
i0.ɵɵtextInterpolate(ctx_r0.tagline);
|
|
24
|
+
} }
|
|
25
|
+
function ExperimentInfoComponent_p_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementContainerStart(0);
|
|
27
|
+
i0.ɵɵelementStart(1, "b");
|
|
28
|
+
i0.ɵɵtext(2);
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
i0.ɵɵtext(3);
|
|
31
|
+
i0.ɵɵelementContainerEnd();
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const infoField_r2 = i0.ɵɵnextContext().$implicit;
|
|
34
|
+
i0.ɵɵadvance(2);
|
|
35
|
+
i0.ɵɵtextInterpolate1("", infoField_r2.label, ": ");
|
|
36
|
+
i0.ɵɵadvance();
|
|
37
|
+
i0.ɵɵtextInterpolate1("", infoField_r2.value, " ");
|
|
38
|
+
} }
|
|
39
|
+
function ExperimentInfoComponent_p_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementContainerStart(0);
|
|
41
|
+
i0.ɵɵtext(1);
|
|
42
|
+
i0.ɵɵelementContainerEnd();
|
|
43
|
+
} if (rf & 2) {
|
|
44
|
+
const infoField_r2 = i0.ɵɵnextContext().$implicit;
|
|
45
|
+
i0.ɵɵadvance();
|
|
46
|
+
i0.ɵɵtextInterpolate1(" ", infoField_r2, " ");
|
|
47
|
+
} }
|
|
48
|
+
function ExperimentInfoComponent_p_4_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelementStart(0, "p");
|
|
50
|
+
i0.ɵɵtemplate(1, ExperimentInfoComponent_p_4_ng_container_1_Template, 4, 2, "ng-container", 3)(2, ExperimentInfoComponent_p_4_ng_container_2_Template, 2, 1, "ng-container", 3);
|
|
51
|
+
i0.ɵɵelementEnd();
|
|
52
|
+
} if (rf & 2) {
|
|
53
|
+
const infoField_r2 = ctx.$implicit;
|
|
54
|
+
i0.ɵɵadvance();
|
|
55
|
+
i0.ɵɵproperty("ngIf", infoField_r2.label);
|
|
56
|
+
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵproperty("ngIf", !infoField_r2.label);
|
|
58
|
+
} }
|
|
59
|
+
export class ExperimentInfoComponent {
|
|
60
|
+
eventDisplay;
|
|
61
|
+
experimentInfo;
|
|
62
|
+
url;
|
|
63
|
+
logo;
|
|
64
|
+
tagline;
|
|
65
|
+
constructor(eventDisplay) {
|
|
66
|
+
this.eventDisplay = eventDisplay;
|
|
67
|
+
}
|
|
68
|
+
ngOnInit() {
|
|
69
|
+
this.eventDisplay.listenToDisplayedEventChange(() => {
|
|
70
|
+
this.experimentInfo = this.eventDisplay.getEventMetadata();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
static ɵfac = function ExperimentInfoComponent_Factory(t) { return new (t || ExperimentInfoComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
74
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExperimentInfoComponent, selectors: [["app-experiment-info"]], inputs: { url: "url", logo: "logo", tagline: "tagline" }, decls: 5, vars: 3, consts: [["id", "experimentInfo", "cdkDrag", "", "cdkDragBoundary", "body", 1, "experimentInfo"], ["class", "experimentLogoWrapper", "target", "_blank", "rel", "noopener noreferrer", 3, "href", 4, "ngIf"], [1, "textInfo"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["target", "_blank", "rel", "noopener noreferrer", 1, "experimentLogoWrapper", 3, "href"], ["alt", "", 1, "experimentLogo", 3, "src"]], template: function ExperimentInfoComponent_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
76
|
+
i0.ɵɵtemplate(1, ExperimentInfoComponent_a_1_Template, 2, 2, "a", 1);
|
|
77
|
+
i0.ɵɵelementStart(2, "div", 2);
|
|
78
|
+
i0.ɵɵtemplate(3, ExperimentInfoComponent_p_3_Template, 3, 1, "p", 3)(4, ExperimentInfoComponent_p_4_Template, 3, 2, "p", 4);
|
|
79
|
+
i0.ɵɵelementEnd()();
|
|
80
|
+
} if (rf & 2) {
|
|
81
|
+
i0.ɵɵadvance();
|
|
82
|
+
i0.ɵɵproperty("ngIf", ctx.url);
|
|
83
|
+
i0.ɵɵadvance(2);
|
|
84
|
+
i0.ɵɵproperty("ngIf", ctx.tagline);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵproperty("ngForOf", ctx.experimentInfo);
|
|
87
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.CdkDrag], styles: [".experimentInfo[_ngcontent-%COMP%]{position:absolute;top:5rem;left:1rem;display:flex;flex-direction:row;justify-items:flex-end;justify-content:flex-end;align-items:center;align-content:center;font-family:Courier New,Lucida Console,monospace;cursor:move}.experimentLogoWrapper[_ngcontent-%COMP%]{width:6rem}.experimentLogoWrapper[_ngcontent-%COMP%] .experimentLogo[_ngcontent-%COMP%]{width:100%;height:100%}.textInfo[_ngcontent-%COMP%]{margin-left:1rem}.textInfo[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);font-size:.8rem;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}@media screen and (max-width: 768px){.experimentInfo[_ngcontent-%COMP%]{top:4rem;max-width:40%}.experimentLogoWrapper[_ngcontent-%COMP%]{height:4rem}.textInfo[_ngcontent-%COMP%]{display:none}}"] });
|
|
88
|
+
}
|
|
89
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExperimentInfoComponent, [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'app-experiment-info', template: "<div id=\"experimentInfo\" class=\"experimentInfo\" cdkDrag cdkDragBoundary=\"body\">\n <a\n class=\"experimentLogoWrapper\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n *ngIf=\"url\"\n [href]=\"url\"\n >\n <img class=\"experimentLogo\" [src]=\"logo\" alt=\"\" />\n </a>\n <div class=\"textInfo\">\n <p *ngIf=\"tagline\">\n <b>{{ tagline }}</b>\n </p>\n <p *ngFor=\"let infoField of experimentInfo\">\n <ng-container *ngIf=\"infoField.label\">\n <b>{{ infoField.label }}: </b>{{ infoField.value }}\n </ng-container>\n <ng-container *ngIf=\"!infoField.label\">\n {{ infoField }}\n </ng-container>\n </p>\n </div>\n</div>\n", styles: [".experimentInfo{position:absolute;top:5rem;left:1rem;display:flex;flex-direction:row;justify-items:flex-end;justify-content:flex-end;align-items:center;align-content:center;font-family:Courier New,Lucida Console,monospace;cursor:move}.experimentLogoWrapper{width:6rem}.experimentLogoWrapper .experimentLogo{width:100%;height:100%}.textInfo{margin-left:1rem}.textInfo p{color:var(--phoenix-text-color-secondary);font-size:.8rem;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}@media screen and (max-width: 768px){.experimentInfo{top:4rem;max-width:40%}.experimentLogoWrapper{height:4rem}.textInfo{display:none}}\n"] }]
|
|
92
|
+
}], () => [{ type: i1.EventDisplayService }], { url: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], logo: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], tagline: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] }); })();
|
|
99
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExperimentInfoComponent, { className: "ExperimentInfoComponent", filePath: "components/ui-menu/experiment-info/experiment-info.component.ts", lineNumber: 9 }); })();
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvZXhwZXJpbWVudC1pbmZvL2V4cGVyaW1lbnQtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2V4cGVyaW1lbnQtaW5mby9leHBlcmltZW50LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztJQ0N2RCw0QkFNQztJQUNDLHlCQUFrRDtJQUNwRCxpQkFBSTs7O0lBSEYsbURBQVk7SUFFZ0IsY0FBWTtJQUFaLG1EQUFZOzs7SUFJdEMsQUFERix5QkFBbUIsUUFDZDtJQUFBLFlBQWE7SUFDbEIsQUFEa0IsaUJBQUksRUFDbEI7OztJQURDLGVBQWE7SUFBYixvQ0FBYTs7O0lBR2hCLDZCQUFzQztJQUNwQyx5QkFBRztJQUFBLFlBQXVCO0lBQUEsaUJBQUk7SUFBQSxZQUNoQzs7OztJQURLLGVBQXVCO0lBQXZCLG1EQUF1QjtJQUFJLGNBQ2hDO0lBRGdDLGtEQUNoQzs7O0lBQ0EsNkJBQXVDO0lBQ3JDLFlBQ0Y7Ozs7SUFERSxjQUNGO0lBREUsNkNBQ0Y7OztJQU5GLHlCQUE0QztJQUkxQyxBQUhBLDhGQUFzQyxpRkFHQztJQUd6QyxpQkFBSTs7O0lBTmEsY0FBcUI7SUFBckIseUNBQXFCO0lBR3JCLGNBQXNCO0lBQXRCLDBDQUFzQjs7QURWM0MsTUFBTSxPQUFPLHVCQUF1QjtJQU1kO0lBTHBCLGNBQWMsQ0FBUTtJQUNiLEdBQUcsQ0FBUztJQUNaLElBQUksQ0FBUztJQUNiLE9BQU8sQ0FBUztJQUV6QixZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7SUFBRyxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7aUZBWlUsdUJBQXVCOzZEQUF2Qix1QkFBdUI7WUNScEMsOEJBQStFO1lBQzdFLG9FQU1DO1lBR0QsOEJBQXNCO1lBSXBCLEFBSEEsb0VBQW1CLHVEQUd5QjtZQVNoRCxBQURFLGlCQUFNLEVBQ0Y7O1lBbEJELGNBQVM7WUFBVCw4QkFBUztZQU1OLGVBQWE7WUFBYixrQ0FBYTtZQUdRLGNBQWlCO1lBQWpCLDRDQUFpQjs7O2lGRE5qQyx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxxQkFBcUI7b0RBTXRCLEdBQUc7a0JBQVgsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSzs7a0ZBSkssdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV4cGVyaW1lbnQtaW5mbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBlcmltZW50LWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBlcmltZW50LWluZm8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRXhwZXJpbWVudEluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBleHBlcmltZW50SW5mbzogYW55W107XG4gIEBJbnB1dCgpIHVybDogc3RyaW5nO1xuICBASW5wdXQoKSBsb2dvOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhZ2xpbmU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5saXN0ZW5Ub0Rpc3BsYXllZEV2ZW50Q2hhbmdlKCgpID0+IHtcbiAgICAgIHRoaXMuZXhwZXJpbWVudEluZm8gPSB0aGlzLmV2ZW50RGlzcGxheS5nZXRFdmVudE1ldGFkYXRhKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJleHBlcmltZW50SW5mb1wiIGNsYXNzPVwiZXhwZXJpbWVudEluZm9cIiBjZGtEcmFnIGNka0RyYWdCb3VuZGFyeT1cImJvZHlcIj5cbiAgPGFcbiAgICBjbGFzcz1cImV4cGVyaW1lbnRMb2dvV3JhcHBlclwiXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAqbmdJZj1cInVybFwiXG4gICAgW2hyZWZdPVwidXJsXCJcbiAgPlxuICAgIDxpbWcgY2xhc3M9XCJleHBlcmltZW50TG9nb1wiIFtzcmNdPVwibG9nb1wiIGFsdD1cIlwiIC8+XG4gIDwvYT5cbiAgPGRpdiBjbGFzcz1cInRleHRJbmZvXCI+XG4gICAgPHAgKm5nSWY9XCJ0YWdsaW5lXCI+XG4gICAgICA8Yj57eyB0YWdsaW5lIH19PC9iPlxuICAgIDwvcD5cbiAgICA8cCAqbmdGb3I9XCJsZXQgaW5mb0ZpZWxkIG9mIGV4cGVyaW1lbnRJbmZvXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5mb0ZpZWxkLmxhYmVsXCI+XG4gICAgICAgIDxiPnt7IGluZm9GaWVsZC5sYWJlbCB9fTogPC9iPnt7IGluZm9GaWVsZC52YWx1ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluZm9GaWVsZC5sYWJlbFwiPlxuICAgICAgICB7eyBpbmZvRmllbGQgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { Component, 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 "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/tooltip";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
import * as i5 from "../../overlay/overlay.component";
|
|
8
|
+
const _c0 = a0 => ({ "active-object": a0 });
|
|
9
|
+
function GeometryBrowserOverlayComponent_div_1_div_1_option_8_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵelementStart(0, "option", 13);
|
|
11
|
+
i0.ɵɵtext(1);
|
|
12
|
+
i0.ɵɵelementEnd();
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const child_r3 = ctx.$implicit;
|
|
15
|
+
i0.ɵɵproperty("value", child_r3.name);
|
|
16
|
+
i0.ɵɵadvance();
|
|
17
|
+
i0.ɵɵtextInterpolate1(" ", child_r3.name, " ");
|
|
18
|
+
} }
|
|
19
|
+
function GeometryBrowserOverlayComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
21
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "div", 8)(2, "span");
|
|
22
|
+
i0.ɵɵtext(3, "Choose a collection: ");
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
i0.ɵɵelementStart(4, "div", 9)(5, "select", 10);
|
|
25
|
+
i0.ɵɵlistener("change", function GeometryBrowserOverlayComponent_div_1_div_1_Template_select_change_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.changeCollection($event.target.value)); });
|
|
26
|
+
i0.ɵɵelementStart(6, "option", 11);
|
|
27
|
+
i0.ɵɵtext(7, "Choose Collection");
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
i0.ɵɵtemplate(8, GeometryBrowserOverlayComponent_div_1_div_1_option_8_Template, 2, 2, "option", 12);
|
|
30
|
+
i0.ɵɵelementEnd()()()();
|
|
31
|
+
} if (rf & 2) {
|
|
32
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
33
|
+
i0.ɵɵadvance(8);
|
|
34
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.children);
|
|
35
|
+
} }
|
|
36
|
+
function GeometryBrowserOverlayComponent_div_1_table_3_tr_8_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
38
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "button", 19);
|
|
39
|
+
i0.ɵɵlistener("click", function GeometryBrowserOverlayComponent_div_1_table_3_tr_8_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const object_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.lookAtObject(object_r5.uuid)); });
|
|
40
|
+
i0.ɵɵnamespaceSVG();
|
|
41
|
+
i0.ɵɵelementStart(2, "svg");
|
|
42
|
+
i0.ɵɵelement(3, "use", 20);
|
|
43
|
+
i0.ɵɵelementEnd()();
|
|
44
|
+
i0.ɵɵnamespaceHTML();
|
|
45
|
+
i0.ɵɵelementStart(4, "button", 21);
|
|
46
|
+
i0.ɵɵlistener("click", function GeometryBrowserOverlayComponent_div_1_table_3_tr_8_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const object_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.highlightObject(object_r5.uuid)); });
|
|
47
|
+
i0.ɵɵnamespaceSVG();
|
|
48
|
+
i0.ɵɵelementStart(5, "svg");
|
|
49
|
+
i0.ɵɵelement(6, "use", 22);
|
|
50
|
+
i0.ɵɵelementEnd()()();
|
|
51
|
+
} }
|
|
52
|
+
function GeometryBrowserOverlayComponent_div_1_table_3_tr_8_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵelementStart(0, "tr", 16)(1, "td");
|
|
54
|
+
i0.ɵɵtext(2);
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
i0.ɵɵelementStart(3, "td");
|
|
57
|
+
i0.ɵɵtemplate(4, GeometryBrowserOverlayComponent_div_1_table_3_tr_8_div_4_Template, 7, 0, "div", 17);
|
|
58
|
+
i0.ɵɵelementEnd()();
|
|
59
|
+
} if (rf & 2) {
|
|
60
|
+
const object_r5 = ctx.$implicit;
|
|
61
|
+
const i_r6 = ctx.index;
|
|
62
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
63
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r1.activeObject && ctx_r1.activeObject.value === object_r5.uuid));
|
|
64
|
+
i0.ɵɵattribute("id", object_r5.uuid);
|
|
65
|
+
i0.ɵɵadvance(2);
|
|
66
|
+
i0.ɵɵtextInterpolate1("#", i_r6, "");
|
|
67
|
+
i0.ɵɵadvance(2);
|
|
68
|
+
i0.ɵɵproperty("ngIf", object_r5.uuid);
|
|
69
|
+
} }
|
|
70
|
+
function GeometryBrowserOverlayComponent_div_1_table_3_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementStart(0, "table", 14)(1, "thead")(2, "tr")(3, "th");
|
|
72
|
+
i0.ɵɵtext(4, "No.");
|
|
73
|
+
i0.ɵɵelementEnd();
|
|
74
|
+
i0.ɵɵelementStart(5, "th");
|
|
75
|
+
i0.ɵɵtext(6, "Selection");
|
|
76
|
+
i0.ɵɵelementEnd()()();
|
|
77
|
+
i0.ɵɵelementStart(7, "tbody");
|
|
78
|
+
i0.ɵɵtemplate(8, GeometryBrowserOverlayComponent_div_1_table_3_tr_8_Template, 5, 6, "tr", 15);
|
|
79
|
+
i0.ɵɵelementEnd()();
|
|
80
|
+
} if (rf & 2) {
|
|
81
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
82
|
+
i0.ɵɵadvance(8);
|
|
83
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.showingCollection);
|
|
84
|
+
} }
|
|
85
|
+
function GeometryBrowserOverlayComponent_div_1_p_4_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "p", 23);
|
|
87
|
+
i0.ɵɵtext(1, " Load event data to be able to display information about the collections here. ");
|
|
88
|
+
i0.ɵɵelementEnd();
|
|
89
|
+
} }
|
|
90
|
+
function GeometryBrowserOverlayComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
92
|
+
i0.ɵɵtemplate(1, GeometryBrowserOverlayComponent_div_1_div_1_Template, 9, 1, "div", 3);
|
|
93
|
+
i0.ɵɵelementStart(2, "div", 4);
|
|
94
|
+
i0.ɵɵtemplate(3, GeometryBrowserOverlayComponent_div_1_table_3_Template, 9, 1, "table", 5)(4, GeometryBrowserOverlayComponent_div_1_p_4_Template, 2, 0, "p", 6);
|
|
95
|
+
i0.ɵɵelementEnd()();
|
|
96
|
+
} if (rf & 2) {
|
|
97
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
98
|
+
i0.ɵɵadvance();
|
|
99
|
+
i0.ɵɵproperty("ngIf", ctx_r1.children != null);
|
|
100
|
+
i0.ɵɵadvance(2);
|
|
101
|
+
i0.ɵɵproperty("ngIf", ctx_r1.showingCollection);
|
|
102
|
+
i0.ɵɵadvance();
|
|
103
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.children);
|
|
104
|
+
} }
|
|
105
|
+
export class GeometryBrowserOverlayComponent {
|
|
106
|
+
eventDisplay;
|
|
107
|
+
browseDetectorParts;
|
|
108
|
+
selectedCollection;
|
|
109
|
+
showingCollection;
|
|
110
|
+
activeObject;
|
|
111
|
+
children;
|
|
112
|
+
constructor(eventDisplay) {
|
|
113
|
+
this.eventDisplay = eventDisplay;
|
|
114
|
+
}
|
|
115
|
+
ngOnInit() {
|
|
116
|
+
this.children = this.eventDisplay
|
|
117
|
+
.getThreeManager()
|
|
118
|
+
.getSceneManager()
|
|
119
|
+
.getGeometries().children;
|
|
120
|
+
this.activeObject = this.eventDisplay.getActiveObjectId();
|
|
121
|
+
this.activeObject.onUpdate((value) => {
|
|
122
|
+
if (document.getElementById(value)) {
|
|
123
|
+
document.getElementById(value).scrollIntoView(false);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
changeCollection(selectedCollection) {
|
|
128
|
+
this.selectedCollection = selectedCollection;
|
|
129
|
+
for (const child of this.children) {
|
|
130
|
+
if (child.name === this.selectedCollection) {
|
|
131
|
+
this.showingCollection = child.children;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
lookAtObject(uuid) {
|
|
137
|
+
if (uuid) {
|
|
138
|
+
this.activeObject.update(uuid);
|
|
139
|
+
this.eventDisplay.lookAtObject(uuid, true);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
highlightObject(uuid) {
|
|
143
|
+
if (uuid) {
|
|
144
|
+
this.activeObject.update(uuid);
|
|
145
|
+
this.eventDisplay.highlightObject(uuid, true);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
enableHighlighting() {
|
|
149
|
+
this.eventDisplay.enableHighlighting();
|
|
150
|
+
}
|
|
151
|
+
disableHighlighting() {
|
|
152
|
+
this.eventDisplay.disableHighlighting();
|
|
153
|
+
}
|
|
154
|
+
static ɵfac = function GeometryBrowserOverlayComponent_Factory(t) { return new (t || GeometryBrowserOverlayComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
155
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GeometryBrowserOverlayComponent, selectors: [["app-geometry-browser-overlay"]], inputs: { browseDetectorParts: "browseDetectorParts" }, decls: 2, vars: 3, consts: [["overlayTitle", "Browse Display", "icon", "info", 3, "resizable", "active"], ["class", "collectionsInfo m-2", 4, "ngIf"], [1, "collectionsInfo", "m-2"], ["class", "collectionSelector mb-2 d-flex align-items-center", 4, "ngIf"], [1, "boxBody", "table-responsive"], ["id", "collectionTable", "class", "table table-borderless table-sm", 4, "ngIf"], ["class", "emptyBox", 4, "ngIf"], [1, "collectionSelector", "mb-2", "d-flex", "align-items-center"], [1, "d-flex", "align-items-center"], [1, "eventSelector"], ["id", "detectorCollection", "name", "detectorCollection", 3, "change"], ["value", "", "selected", "", "disabled", "", "hidden", ""], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], ["id", "collectionTable", 1, "table", "table-borderless", "table-sm"], [3, "ngClass", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["class", "row justify-content-center icon-wrapper", 4, "ngIf"], [1, "row", "justify-content-center", "icon-wrapper"], ["matTooltip", "Move camera to object", 1, "object-select", "btn-blank", 3, "click"], ["href", "assets/icons/views.svg#views"], ["matTooltip", "Highlight object", 1, "object-select", "btn-blank", 3, "click"], ["href", "assets/icons/cursor.svg#cursor"], [1, "emptyBox"]], template: function GeometryBrowserOverlayComponent_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵelementStart(0, "app-overlay", 0);
|
|
157
|
+
i0.ɵɵtemplate(1, GeometryBrowserOverlayComponent_div_1_Template, 5, 3, "div", 1);
|
|
158
|
+
i0.ɵɵelementEnd();
|
|
159
|
+
} if (rf & 2) {
|
|
160
|
+
i0.ɵɵproperty("resizable", true)("active", ctx.browseDetectorParts);
|
|
161
|
+
i0.ɵɵadvance();
|
|
162
|
+
i0.ɵɵproperty("ngIf", ctx.browseDetectorParts);
|
|
163
|
+
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.MatTooltip, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i5.OverlayComponent], styles: [".collectionsInfo[_ngcontent-%COMP%]{height:95%}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%]{height:15%;min-height:2rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);margin-right:1rem}.boxBody[_ngcontent-%COMP%]{height:85%;overflow:scroll}.boxBody[_ngcontent-%COMP%] p.emptyBox[_ngcontent-%COMP%]{max-width:21em}#collectionTable[_ngcontent-%COMP%]{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{margin-right:10px;margin-left:-92px}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding-right:1.2rem}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]:last-child{padding-right:0}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%]{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] div.icon-wrapper[_ngcontent-%COMP%]{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:last-child{margin-right:0}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector[_ngcontent-%COMP%]{display:flex}.eventSelector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"] });
|
|
164
|
+
}
|
|
165
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GeometryBrowserOverlayComponent, [{
|
|
166
|
+
type: Component,
|
|
167
|
+
args: [{ selector: 'app-geometry-browser-overlay', template: "<!-- Show objects -->\n<app-overlay\n overlayTitle=\"Browse Display\"\n icon=\"info\"\n [resizable]=\"true\"\n [active]=\"browseDetectorParts\"\n>\n <!-- Using ngIf to remove it from DOM since this panel requires heavy computing -->\n <div *ngIf=\"browseDetectorParts\" class=\"collectionsInfo m-2\">\n <div\n class=\"collectionSelector mb-2 d-flex align-items-center\"\n *ngIf=\"children != null\"\n >\n <div class=\"d-flex align-items-center\">\n <span>Choose a collection: </span>\n <div class=\"eventSelector\">\n <select\n id=\"detectorCollection\"\n name=\"detectorCollection\"\n (change)=\"changeCollection($event.target.value)\"\n >\n <option value=\"\" selected disabled hidden>Choose Collection</option>\n <option *ngFor=\"let child of children\" [value]=\"child.name\">\n {{ child.name }}\n </option>\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"boxBody table-responsive\">\n <table\n id=\"collectionTable\"\n class=\"table table-borderless table-sm\"\n *ngIf=\"showingCollection\"\n >\n <thead>\n <tr>\n <th>No.</th>\n <th>Selection</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let object of showingCollection; index as i\"\n [attr.id]=\"object.uuid\"\n [ngClass]=\"{\n 'active-object':\n activeObject && activeObject.value === object.uuid\n }\"\n >\n <td>#{{ i }}</td>\n <td>\n <div\n *ngIf=\"object.uuid\"\n class=\"row justify-content-center icon-wrapper\"\n >\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Move camera to object\"\n (click)=\"lookAtObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/views.svg#views\"></use>\n </svg>\n </button>\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Highlight object\"\n (click)=\"highlightObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/cursor.svg#cursor\"></use>\n </svg>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"!children\">\n Load event data to be able to display information about the collections\n here.\n </p>\n </div>\n </div>\n</app-overlay>\n", styles: [".collectionsInfo{height:95%}.collectionsInfo .collectionSelector{height:15%;min-height:2rem}.collectionsInfo .collectionSelector span{color:var(--phoenix-text-color-secondary);margin-right:1rem}.boxBody{height:85%;overflow:scroll}.boxBody p.emptyBox{max-width:21em}#collectionTable{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable thead tr th{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable thead tr th .row{margin-right:10px;margin-left:-92px}#collectionTable thead tr th .icon-wrapper{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable thead tr th .icon-wrapper svg{width:100%;height:100%}#collectionTable tr *{padding-right:1.2rem}#collectionTable tr *:last-child{padding-right:0}#collectionTable tr.active-object{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable tr.active-object div.icon-wrapper{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable td .object-select{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable td .object-select:last-child{margin-right:0}#collectionTable td .object-select:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable td .object-select svg{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector{display:flex}.eventSelector label{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector select{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}\n"] }]
|
|
168
|
+
}], () => [{ type: i1.EventDisplayService }], { browseDetectorParts: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}] }); })();
|
|
171
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GeometryBrowserOverlayComponent, { className: "GeometryBrowserOverlayComponent", filePath: "components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.ts", lineNumber: 11 }); })();
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktYnJvd3Nlci1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvZ2VvbWV0cnktYnJvd3Nlci9nZW9tZXRyeS1icm93c2VyLW92ZXJsYXkvZ2VvbWV0cnktYnJvd3Nlci1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvZ2VvbWV0cnktYnJvd3Nlci9nZW9tZXRyeS1icm93c2VyLW92ZXJsYXkvZ2VvbWV0cnktYnJvd3Nlci1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7SUNzQjdDLGtDQUE0RDtJQUMxRCxZQUNGO0lBQUEsaUJBQVM7OztJQUY4QixxQ0FBb0I7SUFDekQsY0FDRjtJQURFLDhDQUNGOzs7O0lBVkosQUFERixBQUpGLDhCQUdDLGFBQ3dDLFdBQy9CO0lBQUEscUNBQXFCO0lBQUEsaUJBQU87SUFFaEMsQUFERiw4QkFBMkIsaUJBS3hCO0lBREMsME1BQVUsNENBQXFDLEtBQUM7SUFFaEQsa0NBQTBDO0lBQUEsaUNBQWlCO0lBQUEsaUJBQVM7SUFDcEUsbUdBQTREO0lBTXBFLEFBREUsQUFERSxBQURFLGlCQUFTLEVBQ0wsRUFDRixFQUNGOzs7SUFONEIsZUFBVztJQUFYLHlDQUFXOzs7O0lBbUNqQyxBQUpGLCtCQUdDLGlCQUtFO0lBREMsK1BBQVMsbUNBQXlCLEtBQUM7O0lBRW5DLDJCQUFLO0lBQ0gsMEJBQStDO0lBRW5ELEFBREUsaUJBQU0sRUFDQzs7SUFDVCxrQ0FJQztJQURDLCtQQUFTLHNDQUE0QixLQUFDOztJQUV0QywyQkFBSztJQUNILDBCQUFpRDtJQUd2RCxBQURFLEFBREUsaUJBQU0sRUFDQyxFQUNMOzs7SUF4QlIsQUFSRiw4QkFPQyxTQUNLO0lBQUEsWUFBUTtJQUFBLGlCQUFLO0lBQ2pCLDBCQUFJO0lBQ0Ysb0dBR0M7SUFxQkwsQUFERSxpQkFBSyxFQUNGOzs7OztJQS9CSCx5SEFHRTs7SUFFRSxlQUFRO0lBQVIsb0NBQVE7SUFHUCxlQUFpQjtJQUFqQixxQ0FBaUI7OztJQWhCdEIsQUFERixBQURGLEFBTEYsaUNBSUMsWUFDUSxTQUNELFNBQ0U7SUFBQSxtQkFBRztJQUFBLGlCQUFLO0lBQ1osMEJBQUk7SUFBQSx5QkFBUztJQUVqQixBQURFLEFBRGUsaUJBQUssRUFDZixFQUNDO0lBQ1IsNkJBQU87SUFDTCw2RkFPQztJQTZCTCxBQURFLGlCQUFRLEVBQ0Y7OztJQW5DaUIsZUFBc0I7SUFBdEIsa0RBQXNCOzs7SUFvQy9DLDZCQUFzQztJQUNwQywrRkFFRjtJQUFBLGlCQUFJOzs7SUEzRVIsOEJBQTZEO0lBQzNELHNGQUdDO0lBa0JELDhCQUFzQztJQWtEcEMsQUFqREEsMEZBSUMscUVBNkNxQztJQUsxQyxBQURFLGlCQUFNLEVBQ0Y7OztJQTFFRCxjQUFzQjtJQUF0Qiw4Q0FBc0I7SUF1QnBCLGVBQXVCO0lBQXZCLCtDQUF1QjtJQThDTCxjQUFlO0lBQWYsdUNBQWU7O0FEdEUxQyxNQUFNLE9BQU8sK0JBQStCO0lBT3RCO0lBTlgsbUJBQW1CLENBQVU7SUFDdEMsa0JBQWtCLENBQVM7SUFDM0IsaUJBQWlCLENBQU07SUFDdkIsWUFBWSxDQUF5QjtJQUNyQyxRQUFRLENBQStCO0lBRXZDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFFekQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDOUIsZUFBZSxFQUFFO2FBQ2pCLGVBQWUsRUFBRTthQUNqQixhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUMzQyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLGtCQUEwQjtRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWTtRQUMxQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMxQyxDQUFDO3lGQXJEVSwrQkFBK0I7NkRBQS9CLCtCQUErQjtZQ1Q1QyxzQ0FLQztZQUVDLGdGQUE2RDtZQThFL0QsaUJBQWM7O1lBakZaLEFBREEsZ0NBQWtCLG1DQUNZO1lBR3hCLGNBQXlCO1lBQXpCLDhDQUF5Qjs7O2lGREVwQiwrQkFBK0I7Y0FMM0MsU0FBUzsyQkFDRSw4QkFBOEI7b0RBSy9CLG1CQUFtQjtrQkFBM0IsS0FBSzs7a0ZBREssK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVWYXJpYWJsZSB9IGZyb20gJ3Bob2VuaXgtZXZlbnQtZGlzcGxheSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcbmltcG9ydCB7IE9iamVjdDNELCBPYmplY3QzREV2ZW50TWFwIH0gZnJvbSAndGhyZWUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZ2VvbWV0cnktYnJvd3Nlci1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlb21ldHJ5LWJyb3dzZXItb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dlb21ldHJ5LWJyb3dzZXItb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUJyb3dzZXJPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYnJvd3NlRGV0ZWN0b3JQYXJ0czogYm9vbGVhbjtcbiAgc2VsZWN0ZWRDb2xsZWN0aW9uOiBzdHJpbmc7XG4gIHNob3dpbmdDb2xsZWN0aW9uOiBhbnk7XG4gIGFjdGl2ZU9iamVjdDogQWN0aXZlVmFyaWFibGU8c3RyaW5nPjtcbiAgY2hpbGRyZW46IE9iamVjdDNEPE9iamVjdDNERXZlbnRNYXA+W107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuZXZlbnREaXNwbGF5XG4gICAgICAuZ2V0VGhyZWVNYW5hZ2VyKClcbiAgICAgIC5nZXRTY2VuZU1hbmFnZXIoKVxuICAgICAgLmdldEdlb21ldHJpZXMoKS5jaGlsZHJlbjtcblxuICAgIHRoaXMuYWN0aXZlT2JqZWN0ID0gdGhpcy5ldmVudERpc3BsYXkuZ2V0QWN0aXZlT2JqZWN0SWQoKTtcbiAgICB0aGlzLmFjdGl2ZU9iamVjdC5vblVwZGF0ZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHZhbHVlKSkge1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh2YWx1ZSkuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlQ29sbGVjdGlvbihzZWxlY3RlZENvbGxlY3Rpb246IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uID0gc2VsZWN0ZWRDb2xsZWN0aW9uO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuc2hvd2luZ0NvbGxlY3Rpb24gPSBjaGlsZC5jaGlsZHJlbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9va0F0T2JqZWN0KHV1aWQ6IHN0cmluZykge1xuICAgIGlmICh1dWlkKSB7XG4gICAgICB0aGlzLmFjdGl2ZU9iamVjdC51cGRhdGUodXVpZCk7XG4gICAgICB0aGlzLmV2ZW50RGlzcGxheS5sb29rQXRPYmplY3QodXVpZCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgaGlnaGxpZ2h0T2JqZWN0KHV1aWQ6IHN0cmluZykge1xuICAgIGlmICh1dWlkKSB7XG4gICAgICB0aGlzLmFjdGl2ZU9iamVjdC51cGRhdGUodXVpZCk7XG4gICAgICB0aGlzLmV2ZW50RGlzcGxheS5oaWdobGlnaHRPYmplY3QodXVpZCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlSGlnaGxpZ2h0aW5nKCkge1xuICAgIHRoaXMuZXZlbnREaXNwbGF5LmVuYWJsZUhpZ2hsaWdodGluZygpO1xuICB9XG5cbiAgZGlzYWJsZUhpZ2hsaWdodGluZygpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5kaXNhYmxlSGlnaGxpZ2h0aW5nKCk7XG4gIH1cbn1cbiIsIjwhLS0gU2hvdyBvYmplY3RzIC0tPlxuPGFwcC1vdmVybGF5XG4gIG92ZXJsYXlUaXRsZT1cIkJyb3dzZSBEaXNwbGF5XCJcbiAgaWNvbj1cImluZm9cIlxuICBbcmVzaXphYmxlXT1cInRydWVcIlxuICBbYWN0aXZlXT1cImJyb3dzZURldGVjdG9yUGFydHNcIlxuPlxuICA8IS0tIFVzaW5nIG5nSWYgdG8gcmVtb3ZlIGl0IGZyb20gRE9NIHNpbmNlIHRoaXMgcGFuZWwgcmVxdWlyZXMgaGVhdnkgY29tcHV0aW5nIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYnJvd3NlRGV0ZWN0b3JQYXJ0c1wiIGNsYXNzPVwiY29sbGVjdGlvbnNJbmZvIG0tMlwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY29sbGVjdGlvblNlbGVjdG9yIG1iLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAqbmdJZj1cImNoaWxkcmVuICE9IG51bGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxzcGFuPkNob29zZSBhIGNvbGxlY3Rpb246IDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50U2VsZWN0b3JcIj5cbiAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICBpZD1cImRldGVjdG9yQ29sbGVjdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGV0ZWN0b3JDb2xsZWN0aW9uXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlQ29sbGVjdGlvbigkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkIGRpc2FibGVkIGhpZGRlbj5DaG9vc2UgQ29sbGVjdGlvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgY2hpbGRyZW5cIiBbdmFsdWVdPVwiY2hpbGQubmFtZVwiPlxuICAgICAgICAgICAgICB7eyBjaGlsZC5uYW1lIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib3hCb2R5IHRhYmxlLXJlc3BvbnNpdmVcIj5cbiAgICAgIDx0YWJsZVxuICAgICAgICBpZD1cImNvbGxlY3Rpb25UYWJsZVwiXG4gICAgICAgIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVybGVzcyB0YWJsZS1zbVwiXG4gICAgICAgICpuZ0lmPVwic2hvd2luZ0NvbGxlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPk5vLjwvdGg+XG4gICAgICAgICAgICA8dGg+U2VsZWN0aW9uPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIHNob3dpbmdDb2xsZWN0aW9uOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cIm9iamVjdC51dWlkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2FjdGl2ZS1vYmplY3QnOlxuICAgICAgICAgICAgICAgIGFjdGl2ZU9iamVjdCAmJiBhY3RpdmVPYmplY3QudmFsdWUgPT09IG9iamVjdC51dWlkXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGQ+I3t7IGkgfX08L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJvYmplY3QudXVpZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBpY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvYmplY3Qtc2VsZWN0IGJ0bi1ibGFua1wiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTW92ZSBjYW1lcmEgdG8gb2JqZWN0XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJsb29rQXRPYmplY3Qob2JqZWN0LnV1aWQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3ZnPlxuICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvdmlld3Muc3ZnI3ZpZXdzXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm9iamVjdC1zZWxlY3QgYnRuLWJsYW5rXCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJIaWdobGlnaHQgb2JqZWN0XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoaWdobGlnaHRPYmplY3Qob2JqZWN0LnV1aWQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3ZnPlxuICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvY3Vyc29yLnN2ZyNjdXJzb3JcIj48L3VzZT5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8cCBjbGFzcz1cImVtcHR5Qm94XCIgKm5nSWY9XCIhY2hpbGRyZW5cIj5cbiAgICAgICAgTG9hZCBldmVudCBkYXRhIHRvIGJlIGFibGUgdG8gZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGVjdGlvbnNcbiAgICAgICAgaGVyZS5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2FwcC1vdmVybGF5PlxuIl19
|