phoenix-ui-components 3.0.4 → 4.0.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 +66 -0
- package/dist/README.md +66 -0
- package/dist/fesm2022/phoenix-ui-components.mjs +3875 -490
- package/dist/fesm2022/phoenix-ui-components.mjs.map +1 -1
- package/dist/index.d.ts +1370 -3
- package/package.json +10 -19
- package/dist/components/embed-menu/embed-menu.component.d.ts +0 -5
- package/dist/components/embed-menu/experiment-link/experiment-link.component.d.ts +0 -9
- package/dist/components/file-explorer/file-explorer.component.d.ts +0 -35
- package/dist/components/loader/loader.component.d.ts +0 -11
- package/dist/components/nav/nav.component.d.ts +0 -8
- package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +0 -18
- package/dist/components/phoenix-menu/index.d.ts +0 -3
- package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +0 -14
- package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +0 -7
- package/dist/components/phoenix-ui.module.d.ts +0 -71
- package/dist/components/ring-loader/ring-loader.component.d.ts +0 -5
- package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +0 -20
- package/dist/components/ui-menu/animate-event/animate-event.component.d.ts +0 -10
- package/dist/components/ui-menu/ar-toggle/ar-toggle.component.d.ts +0 -11
- package/dist/components/ui-menu/auto-rotate/auto-rotate.component.d.ts +0 -10
- package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +0 -29
- package/dist/components/ui-menu/collections-info/collections-info.component.d.ts +0 -15
- package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +0 -21
- package/dist/components/ui-menu/dark-theme/dark-theme.component.d.ts +0 -12
- package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +0 -28
- package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +0 -13
- package/dist/components/ui-menu/event-selector/event-selector.component.d.ts +0 -12
- package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +0 -14
- package/dist/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.d.ts +0 -22
- package/dist/components/ui-menu/geometry-browser/geometry-browser.component.d.ts +0 -15
- package/dist/components/ui-menu/index.d.ts +0 -39
- package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +0 -26
- package/dist/components/ui-menu/info-panel/info-panel.component.d.ts +0 -33
- package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +0 -34
- package/dist/components/ui-menu/io-options/io-options.component.d.ts +0 -11
- package/dist/components/ui-menu/main-view-toggle/main-view-toggle.component.d.ts +0 -10
- package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +0 -20
- package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +0 -9
- package/dist/components/ui-menu/object-clipping/object-clipping.component.d.ts +0 -15
- package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +0 -15
- package/dist/components/ui-menu/object-selection/object-selection.component.d.ts +0 -17
- package/dist/components/ui-menu/overlay/overlay.component.d.ts +0 -52
- package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +0 -20
- package/dist/components/ui-menu/overlay-view/overlay-view.component.d.ts +0 -15
- package/dist/components/ui-menu/performance-toggle/performance-toggle.component.d.ts +0 -10
- package/dist/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.d.ts +0 -28
- package/dist/components/ui-menu/share-link/share-link.component.d.ts +0 -9
- package/dist/components/ui-menu/ss-mode/ss-mode.component.d.ts +0 -10
- package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +0 -19
- package/dist/components/ui-menu/tree-menu/tree-menu.component.d.ts +0 -10
- package/dist/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.d.ts +0 -6
- package/dist/components/ui-menu/ui-menu.component.d.ts +0 -10
- package/dist/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.d.ts +0 -51
- package/dist/components/ui-menu/view-options/view-options.component.d.ts +0 -33
- package/dist/components/ui-menu/vr-toggle/vr-toggle.component.d.ts +0 -11
- package/dist/components/ui-menu/zoom-controls/zoom-controls.component.d.ts +0 -39
- package/dist/esm2022/components/embed-menu/embed-menu.component.mjs +0 -22
- package/dist/esm2022/components/embed-menu/experiment-link/experiment-link.component.mjs +0 -27
- package/dist/esm2022/components/file-explorer/file-explorer.component.mjs +0 -109
- package/dist/esm2022/components/loader/loader.component.mjs +0 -71
- package/dist/esm2022/components/nav/nav.component.mjs +0 -19
- package/dist/esm2022/components/phoenix-menu/config/config-slider/config-slider.component.mjs +0 -82
- package/dist/esm2022/components/phoenix-menu/index.mjs +0 -4
- package/dist/esm2022/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +0 -308
- package/dist/esm2022/components/phoenix-menu/phoenix-menu.component.mjs +0 -23
- package/dist/esm2022/components/phoenix-ui.module.mjs +0 -257
- package/dist/esm2022/components/ring-loader/ring-loader.component.mjs +0 -16
- package/dist/esm2022/components/ui-menu/animate-camera/animate-camera.component.mjs +0 -120
- package/dist/esm2022/components/ui-menu/animate-event/animate-event.component.mjs +0 -33
- package/dist/esm2022/components/ui-menu/ar-toggle/ar-toggle.component.mjs +0 -83
- package/dist/esm2022/components/ui-menu/auto-rotate/auto-rotate.component.mjs +0 -29
- package/dist/esm2022/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +0 -274
- package/dist/esm2022/components/ui-menu/collections-info/collections-info.component.mjs +0 -47
- package/dist/esm2022/components/ui-menu/cycle-events/cycle-events.component.mjs +0 -90
- package/dist/esm2022/components/ui-menu/dark-theme/dark-theme.component.mjs +0 -32
- package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +0 -128
- package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +0 -35
- package/dist/esm2022/components/ui-menu/event-selector/event-selector.component.mjs +0 -54
- package/dist/esm2022/components/ui-menu/experiment-info/experiment-info.component.mjs +0 -100
- package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.mjs +0 -172
- package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser.component.mjs +0 -45
- package/dist/esm2022/components/ui-menu/index.mjs +0 -40
- package/dist/esm2022/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +0 -69
- package/dist/esm2022/components/ui-menu/info-panel/info-panel.component.mjs +0 -59
- package/dist/esm2022/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +0 -304
- package/dist/esm2022/components/ui-menu/io-options/io-options.component.mjs +0 -36
- package/dist/esm2022/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +0 -32
- package/dist/esm2022/components/ui-menu/make-picture/make-picture.component.mjs +0 -109
- package/dist/esm2022/components/ui-menu/menu-toggle/menu-toggle.component.mjs +0 -40
- package/dist/esm2022/components/ui-menu/object-clipping/object-clipping.component.mjs +0 -72
- package/dist/esm2022/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +0 -59
- package/dist/esm2022/components/ui-menu/object-selection/object-selection.component.mjs +0 -46
- package/dist/esm2022/components/ui-menu/overlay/overlay.component.mjs +0 -197
- package/dist/esm2022/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +0 -83
- package/dist/esm2022/components/ui-menu/overlay-view/overlay-view.component.mjs +0 -41
- package/dist/esm2022/components/ui-menu/performance-toggle/performance-toggle.component.mjs +0 -29
- package/dist/esm2022/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +0 -165
- package/dist/esm2022/components/ui-menu/share-link/share-link.component.mjs +0 -28
- package/dist/esm2022/components/ui-menu/ss-mode/ss-mode.component.mjs +0 -46
- package/dist/esm2022/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +0 -94
- package/dist/esm2022/components/ui-menu/tree-menu/tree-menu.component.mjs +0 -78
- package/dist/esm2022/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +0 -34
- package/dist/esm2022/components/ui-menu/ui-menu.component.mjs +0 -54
- package/dist/esm2022/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.mjs +0 -247
- package/dist/esm2022/components/ui-menu/view-options/view-options.component.mjs +0 -170
- package/dist/esm2022/components/ui-menu/vr-toggle/vr-toggle.component.mjs +0 -52
- package/dist/esm2022/components/ui-menu/zoom-controls/zoom-controls.component.mjs +0 -79
- package/dist/esm2022/phoenix-ui-components.mjs +0 -5
- package/dist/esm2022/public_api.mjs +0 -11
- package/dist/esm2022/services/error-message-service.mjs +0 -30
- package/dist/esm2022/services/event-display.service.mjs +0 -23
- package/dist/esm2022/services/extras/attribute.pipe.mjs +0 -33
- package/dist/esm2022/services/extras/event-data-import.mjs +0 -21
- package/dist/esm2022/services/file-loader.service.mjs +0 -93
- package/dist/esm2022/services/global-error-handler.mjs +0 -30
- package/dist/esm2022/services/index.mjs +0 -4
- package/dist/public_api.d.ts +0 -10
- package/dist/services/error-message-service.d.ts +0 -17
- package/dist/services/event-display.service.d.ts +0 -13
- package/dist/services/extras/attribute.pipe.d.ts +0 -16
- package/dist/services/extras/event-data-import.d.ts +0 -15
- package/dist/services/file-loader.service.d.ts +0 -17
- package/dist/services/global-error-handler.d.ts +0 -20
- package/dist/services/index.d.ts +0 -3
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { EventDataFormat, } from '../../services/extras/event-data-import';
|
|
3
|
-
import { defaultAnimationPresets } from './animate-camera/animate-camera.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./ui-menu-wrapper/ui-menu-wrapper.component";
|
|
6
|
-
import * as i2 from "./collections-info/collections-info.component";
|
|
7
|
-
import * as i3 from "./geometry-browser/geometry-browser.component";
|
|
8
|
-
import * as i4 from "./io-options/io-options.component";
|
|
9
|
-
import * as i5 from "./overlay-view/overlay-view.component";
|
|
10
|
-
import * as i6 from "./object-selection/object-selection.component";
|
|
11
|
-
import * as i7 from "./event-selector/event-selector.component";
|
|
12
|
-
import * as i8 from "./object-clipping/object-clipping.component";
|
|
13
|
-
import * as i9 from "./dark-theme/dark-theme.component";
|
|
14
|
-
import * as i10 from "./auto-rotate/auto-rotate.component";
|
|
15
|
-
import * as i11 from "./view-options/view-options.component";
|
|
16
|
-
import * as i12 from "./info-panel/info-panel.component";
|
|
17
|
-
import * as i13 from "./main-view-toggle/main-view-toggle.component";
|
|
18
|
-
import * as i14 from "./zoom-controls/zoom-controls.component";
|
|
19
|
-
import * as i15 from "./animate-camera/animate-camera.component";
|
|
20
|
-
import * as i16 from "./animate-event/animate-event.component";
|
|
21
|
-
import * as i17 from "./vr-toggle/vr-toggle.component";
|
|
22
|
-
import * as i18 from "./ar-toggle/ar-toggle.component";
|
|
23
|
-
import * as i19 from "./ss-mode/ss-mode.component";
|
|
24
|
-
import * as i20 from "./make-picture/make-picture.component";
|
|
25
|
-
import * as i21 from "./performance-toggle/performance-toggle.component";
|
|
26
|
-
import * as i22 from "./share-link/share-link.component";
|
|
27
|
-
const _c0 = ["*"];
|
|
28
|
-
export class UiMenuComponent {
|
|
29
|
-
eventDataImportOptions = Object.values(EventDataFormat);
|
|
30
|
-
animationPresets = defaultAnimationPresets;
|
|
31
|
-
static ɵfac = function UiMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UiMenuComponent)(); };
|
|
32
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UiMenuComponent, selectors: [["app-ui-menu"]], inputs: { eventDataImportOptions: "eventDataImportOptions", animationPresets: "animationPresets" }, ngContentSelectors: _c0, decls: 23, vars: 2, consts: [[3, "animationPresets"], [3, "eventDataImportOptions"]], template: function UiMenuComponent_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
-
i0.ɵɵprojectionDef();
|
|
34
|
-
i0.ɵɵelementStart(0, "app-ui-menu-wrapper");
|
|
35
|
-
i0.ɵɵelement(1, "app-event-selector")(2, "app-zoom-controls")(3, "app-view-options")(4, "app-auto-rotate")(5, "app-dark-theme")(6, "app-object-clipping")(7, "app-main-view-toggle")(8, "app-overlay-view")(9, "app-object-selection")(10, "app-info-panel")(11, "app-animate-event")(12, "app-animate-camera", 0)(13, "app-collections-info")(14, "app-geometry-browser")(15, "app-performance-toggle")(16, "app-vr-toggle")(17, "app-ar-toggle")(18, "app-ss-mode")(19, "app-make-picture")(20, "app-io-options", 1)(21, "app-share-link");
|
|
36
|
-
i0.ɵɵprojection(22);
|
|
37
|
-
i0.ɵɵelementEnd();
|
|
38
|
-
} if (rf & 2) {
|
|
39
|
-
i0.ɵɵadvance(12);
|
|
40
|
-
i0.ɵɵproperty("animationPresets", ctx.animationPresets);
|
|
41
|
-
i0.ɵɵadvance(8);
|
|
42
|
-
i0.ɵɵproperty("eventDataImportOptions", ctx.eventDataImportOptions);
|
|
43
|
-
} }, dependencies: [i1.UiMenuWrapperComponent, i2.CollectionsInfoComponent, i3.GeometryBrowserComponent, i4.IoOptionsComponent, i5.OverlayViewComponent, i6.ObjectSelectionComponent, i7.EventSelectorComponent, i8.ObjectClippingComponent, i9.DarkThemeComponent, i10.AutoRotateComponent, i11.ViewOptionsComponent, i12.InfoPanelComponent, i13.MainViewToggleComponent, i14.ZoomControlsComponent, i15.AnimateCameraComponent, i16.AnimateEventComponent, i17.VrToggleComponent, i18.ArToggleComponent, i19.SSModeComponent, i20.MakePictureComponent, i21.PerformanceToggleComponent, i22.ShareLinkComponent] });
|
|
44
|
-
}
|
|
45
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UiMenuComponent, [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: 'app-ui-menu', template: "<app-ui-menu-wrapper>\n <!-- Event selector -->\n <app-event-selector></app-event-selector>\n\n <!-- Zoom in and zoom out controls -->\n <app-zoom-controls></app-zoom-controls>\n\n <app-view-options></app-view-options>\n\n <app-auto-rotate></app-auto-rotate>\n\n <!-- Dark theme toggle -->\n <app-dark-theme></app-dark-theme>\n\n <!-- Toggle for clipping geometries -->\n <app-object-clipping></app-object-clipping>\n\n <!-- Main view toggle -->\n <app-main-view-toggle></app-main-view-toggle>\n\n <!-- Toggle for overlay panel -->\n <app-overlay-view></app-overlay-view>\n\n <!-- Toggle for selected object panel -->\n <app-object-selection></app-object-selection>\n\n <!-- Info panel -->\n <app-info-panel></app-info-panel>\n\n <!-- Toggle for animating the event data -->\n <app-animate-event></app-animate-event>\n\n <!-- Toggle for animating camera through event -->\n <app-animate-camera\n [animationPresets]=\"animationPresets\"\n ></app-animate-camera>\n\n <!-- Toggle for collections info -->\n <app-collections-info></app-collections-info>\n\n <!-- Toggle for geometry browser -->\n <app-geometry-browser></app-geometry-browser>\n\n <!-- Toggle for performance -->\n <app-performance-toggle></app-performance-toggle>\n\n <!-- Toggle for VR -->\n <app-vr-toggle></app-vr-toggle>\n\n <!-- Toggle for AR -->\n <app-ar-toggle></app-ar-toggle>\n\n <!-- Toggle for screenshot mode -->\n <app-ss-mode></app-ss-mode>\n\n <!-- Make pictures from scene -->\n <app-make-picture></app-make-picture>\n\n <!-- Toggle for loading geometries modal-->\n <app-io-options\n [eventDataImportOptions]=\"eventDataImportOptions\"\n ></app-io-options>\n\n <!-- Toggle for shareable link constructor modal-->\n <app-share-link></app-share-link>\n\n <!-- Extra options -->\n <ng-content></ng-content>\n</app-ui-menu-wrapper>\n" }]
|
|
48
|
-
}], null, { eventDataImportOptions: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], animationPresets: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}] }); })();
|
|
53
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UiMenuComponent, { className: "UiMenuComponent", filePath: "components/ui-menu/ui-menu.component.ts", lineNumber: 13 }); })();
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3VpLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS91aS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDTCxlQUFlLEdBRWhCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLGVBQWU7SUFFMUIsc0JBQXNCLEdBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFakMsZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUM7eUdBTGhDLGVBQWU7NkRBQWYsZUFBZTs7WUNaNUIsMkNBQXFCO1lBZ0VuQixBQUxBLEFBSEEsQUFIQSxBQUhBLEFBSEEsQUFIQSxBQUhBLEFBSEEsQUFMQSxBQUhBLEFBSEEsQUFIQSxBQUhBLEFBSEEsQUFIQSxBQUhBLEFBSEEsQUFGQSxBQUZBLEFBSEEscUNBQXlDLHdCQUdGLHVCQUVGLHNCQUVGLHFCQUdGLDBCQUdVLDJCQUdFLHVCQUdSLDJCQUdRLHNCQUdaLHlCQUdNLDZCQUtqQiw0QkFHdUIsNEJBR0EsOEJBR0kscUJBR2xCLHFCQUdBLG1CQUdKLHdCQUdVLHlCQUtuQixzQkFHZTtZQUdqQyxtQkFBeUI7WUFDM0IsaUJBQXNCOztZQWxDbEIsZ0JBQXFDO1lBQXJDLHVEQUFxQztZQTBCckMsZUFBaUQ7WUFBakQsbUVBQWlEOzs7aUZEaER4QyxlQUFlO2NBTDNCLFNBQVM7MkJBQ0UsYUFBYTtnQkFNdkIsc0JBQXNCO2tCQURyQixLQUFLO1lBSU4sZ0JBQWdCO2tCQURmLEtBQUs7O2tGQUpLLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFdmVudERhdGFGb3JtYXQsXG4gIHR5cGUgRXZlbnREYXRhSW1wb3J0T3B0aW9uLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRyYXMvZXZlbnQtZGF0YS1pbXBvcnQnO1xuaW1wb3J0IHsgZGVmYXVsdEFuaW1hdGlvblByZXNldHMgfSBmcm9tICcuL2FuaW1hdGUtY2FtZXJhL2FuaW1hdGUtY2FtZXJhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11aS1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91aS1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVpTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGV2ZW50RGF0YUltcG9ydE9wdGlvbnM6IEV2ZW50RGF0YUltcG9ydE9wdGlvbltdID1cbiAgICBPYmplY3QudmFsdWVzKEV2ZW50RGF0YUZvcm1hdCk7XG4gIEBJbnB1dCgpXG4gIGFuaW1hdGlvblByZXNldHMgPSBkZWZhdWx0QW5pbWF0aW9uUHJlc2V0cztcbn1cbiIsIjxhcHAtdWktbWVudS13cmFwcGVyPlxuICA8IS0tIEV2ZW50IHNlbGVjdG9yIC0tPlxuICA8YXBwLWV2ZW50LXNlbGVjdG9yPjwvYXBwLWV2ZW50LXNlbGVjdG9yPlxuXG4gIDwhLS0gWm9vbSBpbiBhbmQgem9vbSBvdXQgY29udHJvbHMgLS0+XG4gIDxhcHAtem9vbS1jb250cm9scz48L2FwcC16b29tLWNvbnRyb2xzPlxuXG4gIDxhcHAtdmlldy1vcHRpb25zPjwvYXBwLXZpZXctb3B0aW9ucz5cblxuICA8YXBwLWF1dG8tcm90YXRlPjwvYXBwLWF1dG8tcm90YXRlPlxuXG4gIDwhLS0gRGFyayB0aGVtZSB0b2dnbGUgLS0+XG4gIDxhcHAtZGFyay10aGVtZT48L2FwcC1kYXJrLXRoZW1lPlxuXG4gIDwhLS0gVG9nZ2xlIGZvciBjbGlwcGluZyBnZW9tZXRyaWVzIC0tPlxuICA8YXBwLW9iamVjdC1jbGlwcGluZz48L2FwcC1vYmplY3QtY2xpcHBpbmc+XG5cbiAgPCEtLSBNYWluIHZpZXcgdG9nZ2xlIC0tPlxuICA8YXBwLW1haW4tdmlldy10b2dnbGU+PC9hcHAtbWFpbi12aWV3LXRvZ2dsZT5cblxuICA8IS0tIFRvZ2dsZSBmb3Igb3ZlcmxheSBwYW5lbCAtLT5cbiAgPGFwcC1vdmVybGF5LXZpZXc+PC9hcHAtb3ZlcmxheS12aWV3PlxuXG4gIDwhLS0gVG9nZ2xlIGZvciBzZWxlY3RlZCBvYmplY3QgcGFuZWwgLS0+XG4gIDxhcHAtb2JqZWN0LXNlbGVjdGlvbj48L2FwcC1vYmplY3Qtc2VsZWN0aW9uPlxuXG4gIDwhLS0gSW5mbyBwYW5lbCAtLT5cbiAgPGFwcC1pbmZvLXBhbmVsPjwvYXBwLWluZm8tcGFuZWw+XG5cbiAgPCEtLSBUb2dnbGUgZm9yIGFuaW1hdGluZyB0aGUgZXZlbnQgZGF0YSAtLT5cbiAgPGFwcC1hbmltYXRlLWV2ZW50PjwvYXBwLWFuaW1hdGUtZXZlbnQ+XG5cbiAgPCEtLSBUb2dnbGUgZm9yIGFuaW1hdGluZyBjYW1lcmEgdGhyb3VnaCBldmVudCAtLT5cbiAgPGFwcC1hbmltYXRlLWNhbWVyYVxuICAgIFthbmltYXRpb25QcmVzZXRzXT1cImFuaW1hdGlvblByZXNldHNcIlxuICA+PC9hcHAtYW5pbWF0ZS1jYW1lcmE+XG5cbiAgPCEtLSBUb2dnbGUgZm9yIGNvbGxlY3Rpb25zIGluZm8gLS0+XG4gIDxhcHAtY29sbGVjdGlvbnMtaW5mbz48L2FwcC1jb2xsZWN0aW9ucy1pbmZvPlxuXG4gIDwhLS0gVG9nZ2xlIGZvciBnZW9tZXRyeSBicm93c2VyIC0tPlxuICA8YXBwLWdlb21ldHJ5LWJyb3dzZXI+PC9hcHAtZ2VvbWV0cnktYnJvd3Nlcj5cblxuICA8IS0tIFRvZ2dsZSBmb3IgcGVyZm9ybWFuY2UgLS0+XG4gIDxhcHAtcGVyZm9ybWFuY2UtdG9nZ2xlPjwvYXBwLXBlcmZvcm1hbmNlLXRvZ2dsZT5cblxuICA8IS0tIFRvZ2dsZSBmb3IgVlIgLS0+XG4gIDxhcHAtdnItdG9nZ2xlPjwvYXBwLXZyLXRvZ2dsZT5cblxuICA8IS0tIFRvZ2dsZSBmb3IgQVIgLS0+XG4gIDxhcHAtYXItdG9nZ2xlPjwvYXBwLWFyLXRvZ2dsZT5cblxuICA8IS0tIFRvZ2dsZSBmb3Igc2NyZWVuc2hvdCBtb2RlIC0tPlxuICA8YXBwLXNzLW1vZGU+PC9hcHAtc3MtbW9kZT5cblxuICA8IS0tIE1ha2UgcGljdHVyZXMgZnJvbSBzY2VuZSAtLT5cbiAgPGFwcC1tYWtlLXBpY3R1cmU+PC9hcHAtbWFrZS1waWN0dXJlPlxuXG4gIDwhLS0gVG9nZ2xlIGZvciBsb2FkaW5nIGdlb21ldHJpZXMgbW9kYWwtLT5cbiAgPGFwcC1pby1vcHRpb25zXG4gICAgW2V2ZW50RGF0YUltcG9ydE9wdGlvbnNdPVwiZXZlbnREYXRhSW1wb3J0T3B0aW9uc1wiXG4gID48L2FwcC1pby1vcHRpb25zPlxuXG4gIDwhLS0gVG9nZ2xlIGZvciBzaGFyZWFibGUgbGluayBjb25zdHJ1Y3RvciBtb2RhbC0tPlxuICA8YXBwLXNoYXJlLWxpbms+PC9hcHAtc2hhcmUtbGluaz5cblxuICA8IS0tIEV4dHJhIG9wdGlvbnMgLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvYXBwLXVpLW1lbnUtd3JhcHBlcj5cbiJdfQ==
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { Vector3 } from 'three';
|
|
3
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/material/dialog";
|
|
6
|
-
import * as i2 from "../../../../services/event-display.service";
|
|
7
|
-
import * as i3 from "@angular/material/button";
|
|
8
|
-
import * as i4 from "@angular/forms";
|
|
9
|
-
import * as i5 from "@angular/material/menu";
|
|
10
|
-
import * as i6 from "@angular/material/slider";
|
|
11
|
-
import * as i7 from "@angular/material/checkbox";
|
|
12
|
-
import * as i8 from "@angular/common";
|
|
13
|
-
export class CartesianGridConfigComponent {
|
|
14
|
-
data;
|
|
15
|
-
dialogRef;
|
|
16
|
-
eventDisplay;
|
|
17
|
-
cartesianPos = new Vector3();
|
|
18
|
-
originChangedSub = null;
|
|
19
|
-
stopShiftingSub = null;
|
|
20
|
-
showCartesianGrid;
|
|
21
|
-
gridConfig;
|
|
22
|
-
scale;
|
|
23
|
-
shiftGrid;
|
|
24
|
-
constructor(data, dialogRef, eventDisplay) {
|
|
25
|
-
this.data = data;
|
|
26
|
-
this.dialogRef = dialogRef;
|
|
27
|
-
this.eventDisplay = eventDisplay;
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.shiftGrid = this.eventDisplay.getThreeManager().shiftGrid;
|
|
31
|
-
this.showCartesianGrid = this.data.gridVisible;
|
|
32
|
-
this.scale = this.data.scale;
|
|
33
|
-
this.gridConfig = this.eventDisplay.getUIManager().getCartesianGridConfig();
|
|
34
|
-
this.cartesianPos = this.eventDisplay.getThreeManager().origin;
|
|
35
|
-
}
|
|
36
|
-
onClose() {
|
|
37
|
-
this.dialogRef.close();
|
|
38
|
-
}
|
|
39
|
-
onSave(x, y, z) {
|
|
40
|
-
this.shiftCartesianGridByValues(new Vector3(x * 10, y * 10, z * 10));
|
|
41
|
-
}
|
|
42
|
-
shiftCartesianGridByPointer() {
|
|
43
|
-
this.shiftGrid = true;
|
|
44
|
-
this.eventDisplay.getUIManager().shiftCartesianGridByPointer();
|
|
45
|
-
this.originChangedSub = this.eventDisplay
|
|
46
|
-
.getThreeManager()
|
|
47
|
-
.originChanged.subscribe((intersect) => {
|
|
48
|
-
this.translateGrid(intersect);
|
|
49
|
-
});
|
|
50
|
-
this.stopShiftingSub = this.eventDisplay
|
|
51
|
-
.getThreeManager()
|
|
52
|
-
.stopShifting.subscribe((stop) => {
|
|
53
|
-
if (stop) {
|
|
54
|
-
this.originChangedSub.unsubscribe();
|
|
55
|
-
this.stopShiftingSub.unsubscribe();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
this.onClose();
|
|
59
|
-
}
|
|
60
|
-
shiftCartesianGridByValues(position) {
|
|
61
|
-
this.translateGrid(position);
|
|
62
|
-
this.eventDisplay.getThreeManager().originChangedEmit(position);
|
|
63
|
-
}
|
|
64
|
-
translateGrid(position) {
|
|
65
|
-
const finalPos = position;
|
|
66
|
-
const initialPos = this.cartesianPos;
|
|
67
|
-
const difference = new Vector3(finalPos.x - initialPos.x, finalPos.y - initialPos.y, finalPos.z - initialPos.z);
|
|
68
|
-
this.eventDisplay.getUIManager().translateCartesianGrid(difference.clone());
|
|
69
|
-
this.eventDisplay
|
|
70
|
-
.getUIManager()
|
|
71
|
-
.translateCartesianLabels(difference.clone());
|
|
72
|
-
this.cartesianPos = finalPos;
|
|
73
|
-
}
|
|
74
|
-
addXYPlanes(zDistance) {
|
|
75
|
-
this.gridConfig.zDistance = Number(zDistance.target.value);
|
|
76
|
-
this.callSetShowCartesianGrid();
|
|
77
|
-
}
|
|
78
|
-
addYZPlanes(xDistance) {
|
|
79
|
-
this.gridConfig.xDistance = Number(xDistance.target.value);
|
|
80
|
-
this.callSetShowCartesianGrid();
|
|
81
|
-
}
|
|
82
|
-
addZXPlanes(yDistance) {
|
|
83
|
-
this.gridConfig.yDistance = Number(yDistance.target.value);
|
|
84
|
-
this.callSetShowCartesianGrid();
|
|
85
|
-
}
|
|
86
|
-
changeSparsity(sparsity) {
|
|
87
|
-
this.gridConfig.sparsity = Number(sparsity.target.value);
|
|
88
|
-
this.callSetShowCartesianGrid();
|
|
89
|
-
}
|
|
90
|
-
showXYPlanes(change) {
|
|
91
|
-
this.gridConfig.showXY = change.checked;
|
|
92
|
-
this.callSetShowCartesianGrid();
|
|
93
|
-
}
|
|
94
|
-
showYZPlanes(change) {
|
|
95
|
-
this.gridConfig.showYZ = change.checked;
|
|
96
|
-
this.callSetShowCartesianGrid();
|
|
97
|
-
}
|
|
98
|
-
showZXPlanes(change) {
|
|
99
|
-
this.gridConfig.showZX = change.checked;
|
|
100
|
-
this.callSetShowCartesianGrid();
|
|
101
|
-
}
|
|
102
|
-
callSetShowCartesianGrid() {
|
|
103
|
-
this.eventDisplay
|
|
104
|
-
.getUIManager()
|
|
105
|
-
.setShowCartesianGrid(this.showCartesianGrid, this.scale, this.gridConfig);
|
|
106
|
-
}
|
|
107
|
-
// helper function to calculate number of planes
|
|
108
|
-
calcPlanes(dis) {
|
|
109
|
-
return Math.max(0, 1 + 2 * Math.floor((dis * 10) / (this.scale * this.gridConfig.sparsity)));
|
|
110
|
-
}
|
|
111
|
-
static ɵfac = function CartesianGridConfigComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CartesianGridConfigComponent)(i0.ɵɵdirectiveInject(MAT_DIALOG_DATA), i0.ɵɵdirectiveInject(i1.MatDialogRef), i0.ɵɵdirectiveInject(i2.EventDisplayService)); };
|
|
112
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CartesianGridConfigComponent, selectors: [["app-cartesian-grid-config"]], decls: 65, vars: 28, consts: [["xPos", ""], ["yPos", ""], ["zPos", ""], ["showXYPlanesCheckbox", ""], ["xyPlaneSlider", ""], ["showYZPlanesCheckbox", ""], ["yzPlaneSlider", ""], ["showZXPlanesCheckbox", ""], ["zxPlaneSlider", ""], ["sparsitySlider", ""], ["mat-dialog-title", ""], ["mat-dialog-content", "", 1, "container", "dialog-content"], [1, "item-config-single"], [1, "item-config-group"], ["for", "xPos", 1, "item-config-label"], ["type", "number", "placeholder", "Origin X", "name", "xPos", "id", "xPos", 1, "form-control", 3, "value"], ["for", "yPos", 1, "item-config-label"], ["type", "number", "placeholder", "Origin Y", "name", "yPos", "id", "yPos", 1, "form-control", 3, "value"], ["for", "zPos", 1, "item-config-label"], ["type", "number", "placeholder", "Origin Z", "name", "zPos", "id", "zPos", 1, "form-control", 3, "value"], ["mat-stroked-button", "", 3, "click", "disabled"], ["mat-menu-item", "", 1, "explain-button", 2, "margin", "0.5rem 0", 3, "click", "disabled"], [1, "explain-text"], ["mat-menu-item", "", 3, "click"], [3, "ngModelChange", "click", "change", "ngModel"], ["mat-menu-item", "", 1, "slider-btn", 3, "focus"], ["min", "-300", "step", "300", "thumbLabel", "", 3, "max"], ["matSliderThumb", "", 3, "input", "value"], ["min", "1", "max", "5", "step", "1", "thumbLabel", ""], ["mat-dialog-actions", "", "align", "end"], ["mat-flat-button", "", "color", "primary", "cdkFocusInitial", "", 3, "click"]], template: function CartesianGridConfigComponent_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
114
|
-
i0.ɵɵelementStart(0, "div")(1, "h1", 10);
|
|
115
|
-
i0.ɵɵtext(2, "Customize Cartesian Grid");
|
|
116
|
-
i0.ɵɵelementEnd();
|
|
117
|
-
i0.ɵɵelementStart(3, "div", 11)(4, "div", 12)(5, "div", 13)(6, "label", 14);
|
|
118
|
-
i0.ɵɵtext(7, "x (cm) : ");
|
|
119
|
-
i0.ɵɵelementEnd();
|
|
120
|
-
i0.ɵɵelement(8, "input", 15, 0);
|
|
121
|
-
i0.ɵɵpipe(10, "number");
|
|
122
|
-
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵelementStart(11, "div", 13)(12, "label", 16);
|
|
124
|
-
i0.ɵɵtext(13, "y (cm) : ");
|
|
125
|
-
i0.ɵɵelementEnd();
|
|
126
|
-
i0.ɵɵelement(14, "input", 17, 1);
|
|
127
|
-
i0.ɵɵpipe(16, "number");
|
|
128
|
-
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(17, "div", 13)(18, "label", 18);
|
|
130
|
-
i0.ɵɵtext(19, "z (cm) : ");
|
|
131
|
-
i0.ɵɵelementEnd();
|
|
132
|
-
i0.ɵɵelement(20, "input", 19, 2);
|
|
133
|
-
i0.ɵɵpipe(22, "number");
|
|
134
|
-
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵelementStart(23, "button", 20);
|
|
136
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r1); const xPos_r2 = i0.ɵɵreference(9); const yPos_r3 = i0.ɵɵreference(15); const zPos_r4 = i0.ɵɵreference(21); return i0.ɵɵresetView(ctx.onSave(xPos_r2.value, yPos_r3.value, zPos_r4.value)); });
|
|
137
|
-
i0.ɵɵtext(24, " Save ");
|
|
138
|
-
i0.ɵɵelementEnd();
|
|
139
|
-
i0.ɵɵelementStart(25, "button", 21);
|
|
140
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_25_listener($event) { i0.ɵɵrestoreView(_r1); $event.stopPropagation(); return i0.ɵɵresetView(ctx.shiftCartesianGridByPointer()); });
|
|
141
|
-
i0.ɵɵtext(26, " Shift Cartesian Grid on click ");
|
|
142
|
-
i0.ɵɵelementStart(27, "p", 22);
|
|
143
|
-
i0.ɵɵtext(28, " Click on a point to shift the grid. Keep clicking at various points to continue shifting. Right click to stop. ");
|
|
144
|
-
i0.ɵɵelementEnd()()();
|
|
145
|
-
i0.ɵɵelementStart(29, "div")(30, "button", 23);
|
|
146
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r1); const showXYPlanesCheckbox_r5 = i0.ɵɵreference(32); return i0.ɵɵresetView(showXYPlanesCheckbox_r5._inputElement.nativeElement.click()); });
|
|
147
|
-
i0.ɵɵelementStart(31, "mat-checkbox", 24, 3);
|
|
148
|
-
i0.ɵɵtwoWayListener("ngModelChange", function CartesianGridConfigComponent_Template_mat_checkbox_ngModelChange_31_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.gridConfig.showXY, $event) || (ctx.gridConfig.showXY = $event); return i0.ɵɵresetView($event); });
|
|
149
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_mat_checkbox_click_31_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function CartesianGridConfigComponent_Template_mat_checkbox_change_31_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showXYPlanes($event)); });
|
|
150
|
-
i0.ɵɵtext(33, "Show XY Planes ");
|
|
151
|
-
i0.ɵɵelementEnd()();
|
|
152
|
-
i0.ɵɵelementStart(34, "button", 25);
|
|
153
|
-
i0.ɵɵlistener("focus", function CartesianGridConfigComponent_Template_button_focus_34_listener() { i0.ɵɵrestoreView(_r1); const xyPlaneSlider_r6 = i0.ɵɵreference(37); return i0.ɵɵresetView(xyPlaneSlider_r6.focus()); });
|
|
154
|
-
i0.ɵɵelementStart(35, "mat-slider", 26)(36, "input", 27, 4);
|
|
155
|
-
i0.ɵɵlistener("input", function CartesianGridConfigComponent_Template_input_input_36_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addXYPlanes($event)); });
|
|
156
|
-
i0.ɵɵelementEnd()();
|
|
157
|
-
i0.ɵɵtext(38);
|
|
158
|
-
i0.ɵɵelementEnd();
|
|
159
|
-
i0.ɵɵelementStart(39, "button", 23);
|
|
160
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_39_listener() { i0.ɵɵrestoreView(_r1); const showYZPlanesCheckbox_r7 = i0.ɵɵreference(41); return i0.ɵɵresetView(showYZPlanesCheckbox_r7._inputElement.nativeElement.click()); });
|
|
161
|
-
i0.ɵɵelementStart(40, "mat-checkbox", 24, 5);
|
|
162
|
-
i0.ɵɵtwoWayListener("ngModelChange", function CartesianGridConfigComponent_Template_mat_checkbox_ngModelChange_40_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.gridConfig.showYZ, $event) || (ctx.gridConfig.showYZ = $event); return i0.ɵɵresetView($event); });
|
|
163
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_mat_checkbox_click_40_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function CartesianGridConfigComponent_Template_mat_checkbox_change_40_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showYZPlanes($event)); });
|
|
164
|
-
i0.ɵɵtext(42, "Show YZ Planes ");
|
|
165
|
-
i0.ɵɵelementEnd()();
|
|
166
|
-
i0.ɵɵelementStart(43, "button", 25);
|
|
167
|
-
i0.ɵɵlistener("focus", function CartesianGridConfigComponent_Template_button_focus_43_listener() { i0.ɵɵrestoreView(_r1); const yzPlaneSlider_r8 = i0.ɵɵreference(46); return i0.ɵɵresetView(yzPlaneSlider_r8.focus()); });
|
|
168
|
-
i0.ɵɵelementStart(44, "mat-slider", 26)(45, "input", 27, 6);
|
|
169
|
-
i0.ɵɵlistener("input", function CartesianGridConfigComponent_Template_input_input_45_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addYZPlanes($event)); });
|
|
170
|
-
i0.ɵɵelementEnd()();
|
|
171
|
-
i0.ɵɵtext(47);
|
|
172
|
-
i0.ɵɵelementEnd();
|
|
173
|
-
i0.ɵɵelementStart(48, "button", 23);
|
|
174
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r1); const showZXPlanesCheckbox_r9 = i0.ɵɵreference(50); return i0.ɵɵresetView(showZXPlanesCheckbox_r9._inputElement.nativeElement.click()); });
|
|
175
|
-
i0.ɵɵelementStart(49, "mat-checkbox", 24, 7);
|
|
176
|
-
i0.ɵɵtwoWayListener("ngModelChange", function CartesianGridConfigComponent_Template_mat_checkbox_ngModelChange_49_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.gridConfig.showZX, $event) || (ctx.gridConfig.showZX = $event); return i0.ɵɵresetView($event); });
|
|
177
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_mat_checkbox_click_49_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function CartesianGridConfigComponent_Template_mat_checkbox_change_49_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showZXPlanes($event)); });
|
|
178
|
-
i0.ɵɵtext(51, "Show ZX Planes ");
|
|
179
|
-
i0.ɵɵelementEnd()();
|
|
180
|
-
i0.ɵɵelementStart(52, "button", 25);
|
|
181
|
-
i0.ɵɵlistener("focus", function CartesianGridConfigComponent_Template_button_focus_52_listener() { i0.ɵɵrestoreView(_r1); const zxPlaneSlider_r10 = i0.ɵɵreference(55); return i0.ɵɵresetView(zxPlaneSlider_r10.focus()); });
|
|
182
|
-
i0.ɵɵelementStart(53, "mat-slider", 26)(54, "input", 27, 8);
|
|
183
|
-
i0.ɵɵlistener("input", function CartesianGridConfigComponent_Template_input_input_54_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addZXPlanes($event)); });
|
|
184
|
-
i0.ɵɵelementEnd()();
|
|
185
|
-
i0.ɵɵtext(56);
|
|
186
|
-
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵelementStart(57, "button", 25);
|
|
188
|
-
i0.ɵɵlistener("focus", function CartesianGridConfigComponent_Template_button_focus_57_listener() { i0.ɵɵrestoreView(_r1); const sparsitySlider_r11 = i0.ɵɵreference(60); return i0.ɵɵresetView(sparsitySlider_r11.focus()); });
|
|
189
|
-
i0.ɵɵelementStart(58, "mat-slider", 28)(59, "input", 27, 9);
|
|
190
|
-
i0.ɵɵlistener("input", function CartesianGridConfigComponent_Template_input_input_59_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeSparsity($event)); });
|
|
191
|
-
i0.ɵɵelementEnd()();
|
|
192
|
-
i0.ɵɵtext(61);
|
|
193
|
-
i0.ɵɵelementEnd()()();
|
|
194
|
-
i0.ɵɵelementStart(62, "div", 29)(63, "button", 30);
|
|
195
|
-
i0.ɵɵlistener("click", function CartesianGridConfigComponent_Template_button_click_63_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onClose()); });
|
|
196
|
-
i0.ɵɵtext(64, " Close ");
|
|
197
|
-
i0.ɵɵelementEnd()()();
|
|
198
|
-
} if (rf & 2) {
|
|
199
|
-
i0.ɵɵadvance(8);
|
|
200
|
-
i0.ɵɵproperty("value", i0.ɵɵpipeBind2(10, 19, ctx.cartesianPos.x / 10, "1.2-2"));
|
|
201
|
-
i0.ɵɵadvance(6);
|
|
202
|
-
i0.ɵɵproperty("value", i0.ɵɵpipeBind2(16, 22, ctx.cartesianPos.y / 10, "1.2-2"));
|
|
203
|
-
i0.ɵɵadvance(6);
|
|
204
|
-
i0.ɵɵproperty("value", i0.ɵɵpipeBind2(22, 25, ctx.cartesianPos.z / 10, "1.2-2"));
|
|
205
|
-
i0.ɵɵadvance(3);
|
|
206
|
-
i0.ɵɵproperty("disabled", ctx.shiftGrid);
|
|
207
|
-
i0.ɵɵadvance(2);
|
|
208
|
-
i0.ɵɵproperty("disabled", ctx.shiftGrid);
|
|
209
|
-
i0.ɵɵadvance(6);
|
|
210
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.gridConfig.showXY);
|
|
211
|
-
i0.ɵɵadvance(4);
|
|
212
|
-
i0.ɵɵproperty("max", ctx.scale);
|
|
213
|
-
i0.ɵɵadvance();
|
|
214
|
-
i0.ɵɵproperty("value", ctx.gridConfig.zDistance);
|
|
215
|
-
i0.ɵɵadvance(2);
|
|
216
|
-
i0.ɵɵtextInterpolate1(" XY Plane (", ctx.calcPlanes(ctx.gridConfig.zDistance), ") ");
|
|
217
|
-
i0.ɵɵadvance(2);
|
|
218
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.gridConfig.showYZ);
|
|
219
|
-
i0.ɵɵadvance(4);
|
|
220
|
-
i0.ɵɵproperty("max", ctx.scale);
|
|
221
|
-
i0.ɵɵadvance();
|
|
222
|
-
i0.ɵɵproperty("value", ctx.gridConfig.xDistance);
|
|
223
|
-
i0.ɵɵadvance(2);
|
|
224
|
-
i0.ɵɵtextInterpolate1(" YZ Plane (", ctx.calcPlanes(ctx.gridConfig.xDistance), ") ");
|
|
225
|
-
i0.ɵɵadvance(2);
|
|
226
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.gridConfig.showZX);
|
|
227
|
-
i0.ɵɵadvance(4);
|
|
228
|
-
i0.ɵɵproperty("max", ctx.scale);
|
|
229
|
-
i0.ɵɵadvance();
|
|
230
|
-
i0.ɵɵproperty("value", ctx.gridConfig.yDistance);
|
|
231
|
-
i0.ɵɵadvance(2);
|
|
232
|
-
i0.ɵɵtextInterpolate1(" ZX Plane (", ctx.calcPlanes(ctx.gridConfig.yDistance), ") ");
|
|
233
|
-
i0.ɵɵadvance(3);
|
|
234
|
-
i0.ɵɵproperty("value", ctx.gridConfig.sparsity);
|
|
235
|
-
i0.ɵɵadvance(2);
|
|
236
|
-
i0.ɵɵtextInterpolate1(" Sparsity (", ctx.gridConfig.sparsity, ") ");
|
|
237
|
-
} }, dependencies: [i1.MatDialogTitle, i1.MatDialogActions, i1.MatDialogContent, i3.MatButton, i4.NgControlStatus, i4.NgModel, i5.MatMenuItem, i6.MatSlider, i6.MatSliderThumb, i7.MatCheckbox, i8.DecimalPipe], styles: [".container[_ngcontent-%COMP%]{display:flex;flex-direction:row}.item-config-single[_ngcontent-%COMP%]{display:flex;flex-direction:column}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%]{margin:.1rem 2rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .item-config-label[_ngcontent-%COMP%]{display:inline;margin:1rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{width:60%;display:inline}.item-config-single[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:.5rem 4rem}.item-config-single[_ngcontent-%COMP%] .explain-button[_ngcontent-%COMP%]{padding-top:1rem}.item-config-single[_ngcontent-%COMP%] .explain-text[_ngcontent-%COMP%]{width:20rem;opacity:.7;margin-top:.5rem;font-size:.9rem}"] });
|
|
238
|
-
}
|
|
239
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CartesianGridConfigComponent, [{
|
|
240
|
-
type: Component,
|
|
241
|
-
args: [{ selector: 'app-cartesian-grid-config', template: "<div>\n <h1 mat-dialog-title>Customize Cartesian Grid</h1>\n\n <div class=\"container dialog-content\" mat-dialog-content>\n <div class=\"item-config-single\">\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"xPos\">x (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin X\"\n [value]=\"cartesianPos.x / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"xPos\"\n id=\"xPos\"\n #xPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"yPos\">y (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Y\"\n [value]=\"cartesianPos.y / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"yPos\"\n id=\"yPos\"\n #yPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"zPos\">z (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Z\"\n [value]=\"cartesianPos.z / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"zPos\"\n id=\"zPos\"\n #zPos\n />\n </div>\n\n <button\n mat-stroked-button\n (click)=\"onSave(xPos.value, yPos.value, zPos.value)\"\n [disabled]=\"shiftGrid\"\n >\n Save\n </button>\n\n <button\n style=\"margin: 0.5rem 0\"\n mat-menu-item\n class=\"explain-button\"\n [disabled]=\"shiftGrid\"\n (click)=\"$event.stopPropagation(); shiftCartesianGridByPointer()\"\n >\n Shift Cartesian Grid on click\n <p class=\"explain-text\">\n Click on a point to shift the grid. Keep clicking at various points to\n continue shifting. Right click to stop.\n </p>\n </button>\n </div>\n\n <div>\n <button\n mat-menu-item\n (click)=\"showXYPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showXYPlanesCheckbox\n [(ngModel)]=\"gridConfig.showXY\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showXYPlanes($event)\"\n >Show XY Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"xyPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #xyPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.zDistance\"\n (input)=\"addXYPlanes($event)\"\n />\n </mat-slider>\n XY Plane ({{ calcPlanes(gridConfig.zDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showYZPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showYZPlanesCheckbox\n [(ngModel)]=\"gridConfig.showYZ\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showYZPlanes($event)\"\n >Show YZ Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"yzPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #yzPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.xDistance\"\n (input)=\"addYZPlanes($event)\"\n />\n </mat-slider>\n YZ Plane ({{ calcPlanes(gridConfig.xDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showZXPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showZXPlanesCheckbox\n [(ngModel)]=\"gridConfig.showZX\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showZXPlanes($event)\"\n >Show ZX Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"zxPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #zxPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.yDistance\"\n (input)=\"addZXPlanes($event)\"\n />\n </mat-slider>\n ZX Plane ({{ calcPlanes(gridConfig.yDistance) }})\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"sparsitySlider.focus()\">\n <mat-slider min=\"1\" max=\"5\" step=\"1\" thumbLabel>\n <input\n #sparsitySlider\n matSliderThumb\n [value]=\"gridConfig.sparsity\"\n (input)=\"changeSparsity($event)\"\n />\n </mat-slider>\n Sparsity ({{ gridConfig.sparsity }})\n </button>\n </div>\n </div>\n\n <div mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onClose()\" cdkFocusInitial>\n Close\n </button>\n </div>\n</div>\n", styles: [".container{display:flex;flex-direction:row}.item-config-single{display:flex;flex-direction:column}.item-config-single .item-config-group{margin:.1rem 2rem}.item-config-single .item-config-group .item-config-label{display:inline;margin:1rem}.item-config-single .item-config-group .form-control{width:60%;display:inline}.item-config-single button{margin:.5rem 4rem}.item-config-single .explain-button{padding-top:1rem}.item-config-single .explain-text{width:20rem;opacity:.7;margin-top:.5rem;font-size:.9rem}\n"] }]
|
|
242
|
-
}], () => [{ type: undefined, decorators: [{
|
|
243
|
-
type: Inject,
|
|
244
|
-
args: [MAT_DIALOG_DATA]
|
|
245
|
-
}] }, { type: i1.MatDialogRef }, { type: i2.EventDisplayService }], null); })();
|
|
246
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CartesianGridConfigComponent, { className: "CartesianGridConfigComponent", filePath: "components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.ts", lineNumber: 13 }); })();
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydGVzaWFuLWdyaWQtY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvdmlldy1vcHRpb25zL2NhcnRlc2lhbi1ncmlkLWNvbmZpZy9jYXJ0ZXNpYW4tZ3JpZC1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS92aWV3LW9wdGlvbnMvY2FydGVzaWFuLWdyaWQtY29uZmlnL2NhcnRlc2lhbi1ncmlkLWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7QUFTekUsTUFBTSxPQUFPLDRCQUE0QjtJQW1COUI7SUFDQztJQUNBO0lBcEJWLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixHQUFpQixJQUFJLENBQUM7SUFDdEMsZUFBZSxHQUFpQixJQUFJLENBQUM7SUFDckMsaUJBQWlCLENBQVU7SUFDM0IsVUFBVSxDQVFSO0lBQ0YsS0FBSyxDQUFTO0lBQ2QsU0FBUyxDQUFVO0lBRW5CLFlBRVMsSUFBNkMsRUFDNUMsU0FBcUQsRUFDckQsWUFBaUM7UUFGbEMsU0FBSSxHQUFKLElBQUksQ0FBeUM7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFDckQsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ3hDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUMvRCxJQUFJ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aUJBQVMsRUFDTCxFQUNGOztZQWxKSSxlQUErQztZQUEvQyxnRkFBK0M7WUFhL0MsZUFBK0M7WUFBL0MsZ0ZBQStDO1lBYS9DLGVBQStDO1lBQS9DLGdGQUErQztZQVdqRCxlQUFzQjtZQUF0Qix3Q0FBc0I7WUFTdEIsZUFBc0I7WUFBdEIsd0NBQXNCO1lBa0JwQixlQUErQjtZQUEvQixxREFBK0I7WUFPVixlQUFhO1lBQWIsK0JBQWE7WUFJaEMsY0FBOEI7WUFBOUIsZ0RBQThCO1lBSWxDLGVBQ0Y7WUFERSxvRkFDRjtZQU9JLGVBQStCO1lBQS9CLHFEQUErQjtZQU9WLGVBQWE7WUFBYiwrQkFBYTtZQUloQyxjQUE4QjtZQUE5QixnREFBOEI7WUFJbEMsZUFDRjtZQURFLG9GQUNGO1lBT0ksZUFBK0I7WUFBL0IscURBQStCO1lBT1YsZUFBYTtZQUFiLCtCQUFhO1lBSWhDLGNBQThCO1lBQTlCLGdEQUE4QjtZQUlsQyxlQUNGO1lBREUsb0ZBQ0Y7WUFNTSxlQUE2QjtZQUE3QiwrQ0FBNkI7WUFJakMsZUFDRjtZQURFLG1FQUNGOzs7aUZEdklPLDRCQUE0QjtjQUx4QyxTQUFTOzJCQUNFLDJCQUEyQjs7c0JBc0JsQyxNQUFNO3VCQUFDLGVBQWU7O2tGQWxCZCw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgdHlwZSBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYXJ0ZXNpYW4tZ3JpZC1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydGVzaWFuLWdyaWQtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FydGVzaWFuLWdyaWQtY29uZmlnLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhcnRlc2lhbkdyaWRDb25maWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjYXJ0ZXNpYW5Qb3MgPSBuZXcgVmVjdG9yMygpO1xuICBvcmlnaW5DaGFuZ2VkU3ViOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuICBzdG9wU2hpZnRpbmdTdWI6IFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIHNob3dDYXJ0ZXNpYW5HcmlkOiBib29sZWFuO1xuICBncmlkQ29uZmlnOiB7XG4gICAgc2hvd1hZOiBib29sZWFuO1xuICAgIHNob3dZWjogYm9vbGVhbjtcbiAgICBzaG93Wlg6IGJvb2xlYW47XG4gICAgeERpc3RhbmNlOiBudW1iZXI7XG4gICAgeURpc3RhbmNlOiBudW1iZXI7XG4gICAgekRpc3RhbmNlOiBudW1iZXI7XG4gICAgc3BhcnNpdHk6IG51bWJlcjtcbiAgfTtcbiAgc2NhbGU6IG51bWJlcjtcbiAgc2hpZnRHcmlkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhOiB7IGdyaWRWaXNpYmxlOiBib29sZWFuOyBzY2FsZTogbnVtYmVyIH0sXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDYXJ0ZXNpYW5HcmlkQ29uZmlnQ29tcG9uZW50PixcbiAgICBwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hpZnRHcmlkID0gdGhpcy5ldmVudERpc3BsYXkuZ2V0VGhyZWVNYW5hZ2VyKCkuc2hpZnRHcmlkO1xuICAgIHRoaXMuc2hvd0NhcnRlc2lhbkdyaWQgPSB0aGlzLmRhdGEuZ3JpZFZpc2libGU7XG4gICAgdGhpcy5zY2FsZSA9IHRoaXMuZGF0YS5zY2FsZTtcbiAgICB0aGlzLmdyaWRDb25maWcgPSB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5nZXRDYXJ0ZXNpYW5HcmlkQ29uZmlnKCk7XG4gICAgdGhpcy5jYXJ0ZXNpYW5Qb3MgPSB0aGlzLmV2ZW50RGlzcGxheS5nZXRUaHJlZU1hbmFnZXIoKS5vcmlnaW47XG4gIH1cblxuICBvbkNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICBvblNhdmUoeCwgeSwgeikge1xuICAgIHRoaXMuc2hpZnRDYXJ0ZXNpYW5HcmlkQnlWYWx1ZXMobmV3IFZlY3RvcjMoeCAqIDEwLCB5ICogMTAsIHogKiAxMCkpO1xuICB9XG5cbiAgc2hpZnRDYXJ0ZXNpYW5HcmlkQnlQb2ludGVyKCkge1xuICAgIHRoaXMuc2hpZnRHcmlkID0gdHJ1ZTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5zaGlmdENhcnRlc2lhbkdyaWRCeVBvaW50ZXIoKTtcbiAgICB0aGlzLm9yaWdpbkNoYW5nZWRTdWIgPSB0aGlzLmV2ZW50RGlzcGxheVxuICAgICAgLmdldFRocmVlTWFuYWdlcigpXG4gICAgICAub3JpZ2luQ2hhbmdlZC5zdWJzY3JpYmUoKGludGVyc2VjdCkgPT4ge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZUdyaWQoaW50ZXJzZWN0KTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc3RvcFNoaWZ0aW5nU3ViID0gdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRUaHJlZU1hbmFnZXIoKVxuICAgICAgLnN0b3BTaGlmdGluZy5zdWJzY3JpYmUoKHN0b3ApID0+IHtcbiAgICAgICAgaWYgKHN0b3ApIHtcbiAgICAgICAgICB0aGlzLm9yaWdpbkNoYW5nZWRTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLnN0b3BTaGlmdGluZ1N1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHNoaWZ0Q2FydGVzaWFuR3JpZEJ5VmFsdWVzKHBvc2l0aW9uOiBWZWN0b3IzKSB7XG4gICAgdGhpcy50cmFuc2xhdGVHcmlkKHBvc2l0aW9uKTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRUaHJlZU1hbmFnZXIoKS5vcmlnaW5DaGFuZ2VkRW1pdChwb3NpdGlvbik7XG4gIH1cblxuICB0cmFuc2xhdGVHcmlkKHBvc2l0aW9uOiBWZWN0b3IzKSB7XG4gICAgY29uc3QgZmluYWxQb3MgPSBwb3NpdGlvbjtcbiAgICBjb25zdCBpbml0aWFsUG9zID0gdGhpcy5jYXJ0ZXNpYW5Qb3M7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IG5ldyBWZWN0b3IzKFxuICAgICAgZmluYWxQb3MueCAtIGluaXRpYWxQb3MueCxcbiAgICAgIGZpbmFsUG9zLnkgLSBpbml0aWFsUG9zLnksXG4gICAgICBmaW5hbFBvcy56IC0gaW5pdGlhbFBvcy56LFxuICAgICk7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0VUlNYW5hZ2VyKCkudHJhbnNsYXRlQ2FydGVzaWFuR3JpZChkaWZmZXJlbmNlLmNsb25lKCkpO1xuICAgIHRoaXMuZXZlbnREaXNwbGF5XG4gICAgICAuZ2V0VUlNYW5hZ2VyKClcbiAgICAgIC50cmFuc2xhdGVDYXJ0ZXNpYW5MYWJlbHMoZGlmZmVyZW5jZS5jbG9uZSgpKTtcbiAgICB0aGlzLmNhcnRlc2lhblBvcyA9IGZpbmFsUG9zO1xuICB9XG5cbiAgYWRkWFlQbGFuZXMoekRpc3RhbmNlOiBFdmVudCkge1xuICAgIHRoaXMuZ3JpZENvbmZpZy56RGlzdGFuY2UgPSBOdW1iZXIoXG4gICAgICAoekRpc3RhbmNlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSxcbiAgICApO1xuICAgIHRoaXMuY2FsbFNldFNob3dDYXJ0ZXNpYW5HcmlkKCk7XG4gIH1cblxuICBhZGRZWlBsYW5lcyh4RGlzdGFuY2U6IEV2ZW50KSB7XG4gICAgdGhpcy5ncmlkQ29uZmlnLnhEaXN0YW5jZSA9IE51bWJlcihcbiAgICAgICh4RGlzdGFuY2UudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLFxuICAgICk7XG4gICAgdGhpcy5jYWxsU2V0U2hvd0NhcnRlc2lhbkdyaWQoKTtcbiAgfVxuXG4gIGFkZFpYUGxhbmVzKHlEaXN0YW5jZTogRXZlbnQpIHtcbiAgICB0aGlzLmdyaWRDb25maWcueURpc3RhbmNlID0gTnVtYmVyKFxuICAgICAgKHlEaXN0YW5jZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsXG4gICAgKTtcbiAgICB0aGlzLmNhbGxTZXRTaG93Q2FydGVzaWFuR3JpZCgpO1xuICB9XG5cbiAgY2hhbmdlU3BhcnNpdHkoc3BhcnNpdHk6IEV2ZW50KSB7XG4gICAgdGhpcy5ncmlkQ29uZmlnLnNwYXJzaXR5ID0gTnVtYmVyKFxuICAgICAgKHNwYXJzaXR5LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSxcbiAgICApO1xuICAgIHRoaXMuY2FsbFNldFNob3dDYXJ0ZXNpYW5HcmlkKCk7XG4gIH1cblxuICBzaG93WFlQbGFuZXMoY2hhbmdlOiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMuZ3JpZENvbmZpZy5zaG93WFkgPSBjaGFuZ2UuY2hlY2tlZDtcbiAgICB0aGlzLmNhbGxTZXRTaG93Q2FydGVzaWFuR3JpZCgpO1xuICB9XG5cbiAgc2hvd1laUGxhbmVzKGNoYW5nZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICB0aGlzLmdyaWRDb25maWcuc2hvd1laID0gY2hhbmdlLmNoZWNrZWQ7XG4gICAgdGhpcy5jYWxsU2V0U2hvd0NhcnRlc2lhbkdyaWQoKTtcbiAgfVxuXG4gIHNob3daWFBsYW5lcyhjaGFuZ2U6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5ncmlkQ29uZmlnLnNob3daWCA9IGNoYW5nZS5jaGVja2VkO1xuICAgIHRoaXMuY2FsbFNldFNob3dDYXJ0ZXNpYW5HcmlkKCk7XG4gIH1cblxuICBjYWxsU2V0U2hvd0NhcnRlc2lhbkdyaWQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRVSU1hbmFnZXIoKVxuICAgICAgLnNldFNob3dDYXJ0ZXNpYW5HcmlkKFxuICAgICAgICB0aGlzLnNob3dDYXJ0ZXNpYW5HcmlkLFxuICAgICAgICB0aGlzLnNjYWxlLFxuICAgICAgICB0aGlzLmdyaWRDb25maWcsXG4gICAgICApO1xuICB9XG5cbiAgLy8gaGVscGVyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBudW1iZXIgb2YgcGxhbmVzXG4gIGNhbGNQbGFuZXMoZGlzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgMSArIDIgKiBNYXRoLmZsb29yKChkaXMgKiAxMCkgLyAodGhpcy5zY2FsZSAqIHRoaXMuZ3JpZENvbmZpZy5zcGFyc2l0eSkpLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPkN1c3RvbWl6ZSBDYXJ0ZXNpYW4gR3JpZDwvaDE+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBkaWFsb2ctY29udGVudFwiIG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb25maWctc2luZ2xlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb25maWctZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1jb25maWctbGFiZWxcIiBmb3I9XCJ4UG9zXCI+eCAoY20pIDogPC9sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJPcmlnaW4gWFwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNhcnRlc2lhblBvcy54IC8gMTAgfCBudW1iZXI6ICcxLjItMidcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBuYW1lPVwieFBvc1wiXG4gICAgICAgICAgaWQ9XCJ4UG9zXCJcbiAgICAgICAgICAjeFBvc1xuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbmZpZy1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpdGVtLWNvbmZpZy1sYWJlbFwiIGZvcj1cInlQb3NcIj55IChjbSkgOiA8L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk9yaWdpbiBZXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY2FydGVzaWFuUG9zLnkgLyAxMCB8IG51bWJlcjogJzEuMi0yJ1wiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIG5hbWU9XCJ5UG9zXCJcbiAgICAgICAgICBpZD1cInlQb3NcIlxuICAgICAgICAgICN5UG9zXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29uZmlnLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIml0ZW0tY29uZmlnLWxhYmVsXCIgZm9yPVwielBvc1wiPnogKGNtKSA6IDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiT3JpZ2luIFpcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjYXJ0ZXNpYW5Qb3MueiAvIDEwIHwgbnVtYmVyOiAnMS4yLTInXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgbmFtZT1cInpQb3NcIlxuICAgICAgICAgIGlkPVwielBvc1wiXG4gICAgICAgICAgI3pQb3NcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwib25TYXZlKHhQb3MudmFsdWUsIHlQb3MudmFsdWUsIHpQb3MudmFsdWUpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInNoaWZ0R3JpZFwiXG4gICAgICA+XG4gICAgICAgIFNhdmVcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIHN0eWxlPVwibWFyZ2luOiAwLjVyZW0gMFwiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgY2xhc3M9XCJleHBsYWluLWJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzaGlmdEdyaWRcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBzaGlmdENhcnRlc2lhbkdyaWRCeVBvaW50ZXIoKVwiXG4gICAgICA+XG4gICAgICAgIFNoaWZ0IENhcnRlc2lhbiBHcmlkIG9uIGNsaWNrXG4gICAgICAgIDxwIGNsYXNzPVwiZXhwbGFpbi10ZXh0XCI+XG4gICAgICAgICAgQ2xpY2sgb24gYSBwb2ludCB0byBzaGlmdCB0aGUgZ3JpZC4gS2VlcCBjbGlja2luZyBhdCB2YXJpb3VzIHBvaW50cyB0b1xuICAgICAgICAgIGNvbnRpbnVlIHNoaWZ0aW5nLiBSaWdodCBjbGljayB0byBzdG9wLlxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cInNob3dYWVBsYW5lc0NoZWNrYm94Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICNzaG93WFlQbGFuZXNDaGVja2JveFxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZ3JpZENvbmZpZy5zaG93WFlcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChjaGFuZ2UpPVwic2hvd1hZUGxhbmVzKCRldmVudClcIlxuICAgICAgICAgID5TaG93IFhZIFBsYW5lc1xuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInNsaWRlci1idG5cIiBtYXQtbWVudS1pdGVtIChmb2N1cyk9XCJ4eVBsYW5lU2xpZGVyLmZvY3VzKClcIj5cbiAgICAgICAgPG1hdC1zbGlkZXIgbWluPVwiLTMwMFwiIFttYXhdPVwic2NhbGVcIiBzdGVwPVwiMzAwXCIgdGh1bWJMYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICN4eVBsYW5lU2xpZGVyXG4gICAgICAgICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdyaWRDb25maWcuekRpc3RhbmNlXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJhZGRYWVBsYW5lcygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1zbGlkZXI+XG4gICAgICAgIFhZIFBsYW5lICh7eyBjYWxjUGxhbmVzKGdyaWRDb25maWcuekRpc3RhbmNlKSB9fSlcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJzaG93WVpQbGFuZXNDaGVja2JveC5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAjc2hvd1laUGxhbmVzQ2hlY2tib3hcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImdyaWRDb25maWcuc2hvd1laXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInNob3dZWlBsYW5lcygkZXZlbnQpXCJcbiAgICAgICAgICA+U2hvdyBZWiBQbGFuZXNcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzbGlkZXItYnRuXCIgbWF0LW1lbnUtaXRlbSAoZm9jdXMpPVwieXpQbGFuZVNsaWRlci5mb2N1cygpXCI+XG4gICAgICAgIDxtYXQtc2xpZGVyIG1pbj1cIi0zMDBcIiBbbWF4XT1cInNjYWxlXCIgc3RlcD1cIjMwMFwiIHRodW1iTGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjeXpQbGFuZVNsaWRlclxuICAgICAgICAgICAgbWF0U2xpZGVyVGh1bWJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJncmlkQ29uZmlnLnhEaXN0YW5jZVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwiYWRkWVpQbGFuZXMoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtc2xpZGVyPlxuICAgICAgICBZWiBQbGFuZSAoe3sgY2FsY1BsYW5lcyhncmlkQ29uZmlnLnhEaXN0YW5jZSkgfX0pXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAoY2xpY2spPVwic2hvd1pYUGxhbmVzQ2hlY2tib3guX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgI3Nob3daWFBsYW5lc0NoZWNrYm94XG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJncmlkQ29uZmlnLnNob3daWFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzaG93WlhQbGFuZXMoJGV2ZW50KVwiXG4gICAgICAgICAgPlNob3cgWlggUGxhbmVzXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic2xpZGVyLWJ0blwiIG1hdC1tZW51LWl0ZW0gKGZvY3VzKT1cInp4UGxhbmVTbGlkZXIuZm9jdXMoKVwiPlxuICAgICAgICA8bWF0LXNsaWRlciBtaW49XCItMzAwXCIgW21heF09XCJzY2FsZVwiIHN0ZXA9XCIzMDBcIiB0aHVtYkxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI3p4UGxhbmVTbGlkZXJcbiAgICAgICAgICAgIG1hdFNsaWRlclRodW1iXG4gICAgICAgICAgICBbdmFsdWVdPVwiZ3JpZENvbmZpZy55RGlzdGFuY2VcIlxuICAgICAgICAgICAgKGlucHV0KT1cImFkZFpYUGxhbmVzKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbWF0LXNsaWRlcj5cbiAgICAgICAgWlggUGxhbmUgKHt7IGNhbGNQbGFuZXMoZ3JpZENvbmZpZy55RGlzdGFuY2UpIH19KVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic2xpZGVyLWJ0blwiIG1hdC1tZW51LWl0ZW0gKGZvY3VzKT1cInNwYXJzaXR5U2xpZGVyLmZvY3VzKClcIj5cbiAgICAgICAgPG1hdC1zbGlkZXIgbWluPVwiMVwiIG1heD1cIjVcIiBzdGVwPVwiMVwiIHRodW1iTGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjc3BhcnNpdHlTbGlkZXJcbiAgICAgICAgICAgIG1hdFNsaWRlclRodW1iXG4gICAgICAgICAgICBbdmFsdWVdPVwiZ3JpZENvbmZpZy5zcGFyc2l0eVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlU3BhcnNpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtc2xpZGVyPlxuICAgICAgICBTcGFyc2l0eSAoe3sgZ3JpZENvbmZpZy5zcGFyc2l0eSB9fSlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkNsb3NlKClcIiBjZGtGb2N1c0luaXRpYWw+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, } from '@angular/core';
|
|
2
|
-
import { CartesianGridConfigComponent } from './cartesian-grid-config/cartesian-grid-config.component';
|
|
3
|
-
import { Vector3 } from 'three';
|
|
4
|
-
import { MatMenuTrigger } from '@angular/material/menu';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../services/event-display.service";
|
|
7
|
-
import * as i2 from "@angular/material/dialog";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "@angular/material/menu";
|
|
10
|
-
import * as i5 from "@angular/material/checkbox";
|
|
11
|
-
import * as i6 from "../menu-toggle/menu-toggle.component";
|
|
12
|
-
function ViewOptionsComponent_button_29__svg_svg_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
i0.ɵɵnamespaceSVG();
|
|
14
|
-
i0.ɵɵelementStart(0, "svg", 15);
|
|
15
|
-
i0.ɵɵelement(1, "use");
|
|
16
|
-
i0.ɵɵelementEnd();
|
|
17
|
-
} if (rf & 2) {
|
|
18
|
-
const view_r8 = i0.ɵɵnextContext().$implicit;
|
|
19
|
-
i0.ɵɵadvance();
|
|
20
|
-
i0.ɵɵattributeInterpolate2("href", "assets/icons/", view_r8.icon, ".svg#", view_r8.icon, "");
|
|
21
|
-
} }
|
|
22
|
-
function ViewOptionsComponent_button_29_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "button", 11);
|
|
25
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_button_29_Template_button_click_0_listener($event) { const view_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.displayView($event, view_r8)); });
|
|
26
|
-
i0.ɵɵtemplate(1, ViewOptionsComponent_button_29__svg_svg_1_Template, 2, 3, "svg", 14);
|
|
27
|
-
i0.ɵɵtext(2);
|
|
28
|
-
i0.ɵɵelementEnd();
|
|
29
|
-
} if (rf & 2) {
|
|
30
|
-
const view_r8 = ctx.$implicit;
|
|
31
|
-
i0.ɵɵadvance();
|
|
32
|
-
i0.ɵɵproperty("ngIf", view_r8.icon);
|
|
33
|
-
i0.ɵɵadvance();
|
|
34
|
-
i0.ɵɵtextInterpolate1(" ", view_r8.name, " ");
|
|
35
|
-
} }
|
|
36
|
-
export class ViewOptionsComponent {
|
|
37
|
-
eventDisplay;
|
|
38
|
-
dialog;
|
|
39
|
-
trigger;
|
|
40
|
-
showCartesianGrid = false;
|
|
41
|
-
scale = 3000;
|
|
42
|
-
views;
|
|
43
|
-
show3DPoints;
|
|
44
|
-
origin = new Vector3(0, 0, 0);
|
|
45
|
-
sub;
|
|
46
|
-
constructor(eventDisplay, dialog) {
|
|
47
|
-
this.eventDisplay = eventDisplay;
|
|
48
|
-
this.dialog = dialog;
|
|
49
|
-
}
|
|
50
|
-
ngOnInit() {
|
|
51
|
-
this.views = this.eventDisplay.getUIManager().getPresetViews();
|
|
52
|
-
this.sub = this.eventDisplay
|
|
53
|
-
.getThreeManager()
|
|
54
|
-
.originChanged.subscribe((intersect) => {
|
|
55
|
-
this.origin = intersect;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
openCartesianGridConfigDialog() {
|
|
59
|
-
this.dialog.open(CartesianGridConfigComponent, {
|
|
60
|
-
data: {
|
|
61
|
-
gridVisible: this.showCartesianGrid,
|
|
62
|
-
scale: this.scale,
|
|
63
|
-
},
|
|
64
|
-
position: {
|
|
65
|
-
bottom: '5rem',
|
|
66
|
-
left: '3rem',
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
displayView($event, view) {
|
|
71
|
-
$event.stopPropagation();
|
|
72
|
-
this.eventDisplay.getUIManager().displayView(view);
|
|
73
|
-
}
|
|
74
|
-
setAxis(change) {
|
|
75
|
-
const value = change.checked;
|
|
76
|
-
this.eventDisplay.getUIManager().setShowAxis(value);
|
|
77
|
-
}
|
|
78
|
-
setEtaPhiGrid(change) {
|
|
79
|
-
const value = change.checked;
|
|
80
|
-
this.eventDisplay.getUIManager().setShowEtaPhiGrid(value);
|
|
81
|
-
}
|
|
82
|
-
setCartesianGrid(change) {
|
|
83
|
-
this.showCartesianGrid = change.checked;
|
|
84
|
-
this.eventDisplay
|
|
85
|
-
.getUIManager()
|
|
86
|
-
.setShowCartesianGrid(this.showCartesianGrid, this.scale);
|
|
87
|
-
}
|
|
88
|
-
showLabels(change) {
|
|
89
|
-
this.eventDisplay.getUIManager().showLabels(change.checked);
|
|
90
|
-
}
|
|
91
|
-
show3DMousePoints(change) {
|
|
92
|
-
this.show3DPoints = change.checked;
|
|
93
|
-
this.eventDisplay.getUIManager().show3DMousePoints(this.show3DPoints);
|
|
94
|
-
}
|
|
95
|
-
toggleShowDistance(change) {
|
|
96
|
-
this.trigger.closeMenu();
|
|
97
|
-
this.eventDisplay.getUIManager().show3DDistance(change.checked);
|
|
98
|
-
}
|
|
99
|
-
ngOnDestroy() {
|
|
100
|
-
this.sub.unsubscribe();
|
|
101
|
-
}
|
|
102
|
-
static ɵfac = function ViewOptionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ViewOptionsComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService), i0.ɵɵdirectiveInject(i2.MatDialog)); };
|
|
103
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ViewOptionsComponent, selectors: [["app-view-options"]], viewQuery: function ViewOptionsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
104
|
-
i0.ɵɵviewQuery(MatMenuTrigger, 5);
|
|
105
|
-
} if (rf & 2) {
|
|
106
|
-
let _t;
|
|
107
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);
|
|
108
|
-
} }, decls: 31, vars: 3, consts: [["viewOptions", ""], ["showCartesianGridCheckbox", ""], ["showEtaPhiGridCheckbox", ""], ["showAxisCheckbox", ""], ["showLabelsCheckbox", ""], ["showMouse3DPointsCheckbox", ""], ["show3DDistanceCheckbox", ""], ["mat-menu-item", ""], [3, "click", "change"], [1, "icon-wrapper", "icon-button", "btn-blank", "item-settings", 3, "click"], ["href", "assets/icons/gear.svg#gear"], ["mat-menu-item", "", 3, "click"], ["mat-menu-item", "", 3, "click", 4, "ngFor", "ngForOf"], ["tooltip", "View options and Tools", "icon", "views", 3, "matMenuTriggerFor", "active"], ["class", "view-icon", 4, "ngIf"], [1, "view-icon"]], template: function ViewOptionsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
110
|
-
i0.ɵɵelementStart(0, "mat-menu", null, 0)(2, "button", 7)(3, "mat-checkbox", 8, 1);
|
|
111
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setCartesianGrid($event)); });
|
|
112
|
-
i0.ɵɵtext(5, "Show Cartesian Grid ");
|
|
113
|
-
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵelementStart(6, "button", 9);
|
|
115
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.openCartesianGridConfigDialog()); });
|
|
116
|
-
i0.ɵɵnamespaceSVG();
|
|
117
|
-
i0.ɵɵelementStart(7, "svg");
|
|
118
|
-
i0.ɵɵelement(8, "use", 10);
|
|
119
|
-
i0.ɵɵelementEnd()()();
|
|
120
|
-
i0.ɵɵnamespaceHTML();
|
|
121
|
-
i0.ɵɵelementStart(9, "button", 11);
|
|
122
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_9_listener($event) { i0.ɵɵrestoreView(_r1); const showEtaPhiGridCheckbox_r2 = i0.ɵɵreference(11); $event.stopPropagation(); return i0.ɵɵresetView(showEtaPhiGridCheckbox_r2._inputElement.nativeElement.click()); });
|
|
123
|
-
i0.ɵɵelementStart(10, "mat-checkbox", 8, 2);
|
|
124
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setEtaPhiGrid($event)); });
|
|
125
|
-
i0.ɵɵtext(12, "Show Eta Phi Grid ");
|
|
126
|
-
i0.ɵɵelementEnd()();
|
|
127
|
-
i0.ɵɵelementStart(13, "button", 11);
|
|
128
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_13_listener($event) { i0.ɵɵrestoreView(_r1); const showAxisCheckbox_r3 = i0.ɵɵreference(15); $event.stopPropagation(); return i0.ɵɵresetView(showAxisCheckbox_r3._inputElement.nativeElement.click()); });
|
|
129
|
-
i0.ɵɵelementStart(14, "mat-checkbox", 8, 3);
|
|
130
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setAxis($event)); });
|
|
131
|
-
i0.ɵɵtext(16, "Show Axis ");
|
|
132
|
-
i0.ɵɵelementEnd()();
|
|
133
|
-
i0.ɵɵelementStart(17, "button", 11);
|
|
134
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r1); const showLabelsCheckbox_r4 = i0.ɵɵreference(19); return i0.ɵɵresetView(showLabelsCheckbox_r4._inputElement.nativeElement.click()); });
|
|
135
|
-
i0.ɵɵelementStart(18, "mat-checkbox", 8, 4);
|
|
136
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_18_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_18_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showLabels($event)); });
|
|
137
|
-
i0.ɵɵtext(20, "Show Labels ");
|
|
138
|
-
i0.ɵɵelementEnd()();
|
|
139
|
-
i0.ɵɵelementStart(21, "button", 11);
|
|
140
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_21_listener($event) { i0.ɵɵrestoreView(_r1); const showMouse3DPointsCheckbox_r5 = i0.ɵɵreference(23); $event.stopPropagation(); return i0.ɵɵresetView(showMouse3DPointsCheckbox_r5._inputElement.nativeElement.click()); });
|
|
141
|
-
i0.ɵɵelementStart(22, "mat-checkbox", 8, 5);
|
|
142
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_22_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_22_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.show3DMousePoints($event)); });
|
|
143
|
-
i0.ɵɵtext(24, "Show 3D Coordinates ");
|
|
144
|
-
i0.ɵɵelementEnd()();
|
|
145
|
-
i0.ɵɵelementStart(25, "button", 11);
|
|
146
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_button_click_25_listener($event) { i0.ɵɵrestoreView(_r1); const show3DDistanceCheckbox_r6 = i0.ɵɵreference(27); $event.stopPropagation(); return i0.ɵɵresetView(show3DDistanceCheckbox_r6._inputElement.nativeElement.click()); });
|
|
147
|
-
i0.ɵɵelementStart(26, "mat-checkbox", 8, 6);
|
|
148
|
-
i0.ɵɵlistener("click", function ViewOptionsComponent_Template_mat_checkbox_click_26_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ViewOptionsComponent_Template_mat_checkbox_change_26_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleShowDistance($event)); });
|
|
149
|
-
i0.ɵɵtext(28, "Show 3D Distance ");
|
|
150
|
-
i0.ɵɵelementEnd()();
|
|
151
|
-
i0.ɵɵtemplate(29, ViewOptionsComponent_button_29_Template, 3, 2, "button", 12);
|
|
152
|
-
i0.ɵɵelementEnd();
|
|
153
|
-
i0.ɵɵelement(30, "app-menu-toggle", 13);
|
|
154
|
-
} if (rf & 2) {
|
|
155
|
-
const viewOptions_r10 = i0.ɵɵreference(1);
|
|
156
|
-
i0.ɵɵadvance(29);
|
|
157
|
-
i0.ɵɵproperty("ngForOf", ctx.views);
|
|
158
|
-
i0.ɵɵadvance();
|
|
159
|
-
i0.ɵɵproperty("matMenuTriggerFor", viewOptions_r10)("active", false);
|
|
160
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatMenu, i4.MatMenuItem, i4.MatMenuTrigger, i5.MatCheckbox, i6.MenuToggleComponent], styles: [".view-icon[_ngcontent-%COMP%]{width:1.2rem;height:1.2rem;margin-right:.5rem}.icon-wrapper[_ngcontent-%COMP%]{display:inline-block;width:1.5rem;height:1.5rem;padding:.23rem;transition:all .4s;transform:translateY(27%)}.icon-wrapper.icon-button[_ngcontent-%COMP%]:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%;vertical-align:top}.item-settings[_ngcontent-%COMP%]{margin-right:.2rem;margin-left:.5rem}"] });
|
|
161
|
-
}
|
|
162
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewOptionsComponent, [{
|
|
163
|
-
type: Component,
|
|
164
|
-
args: [{ selector: 'app-view-options', template: "<mat-menu #viewOptions>\n <button mat-menu-item>\n <mat-checkbox\n #showCartesianGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setCartesianGrid($event)\"\n >Show Cartesian Grid\n </mat-checkbox>\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"openCartesianGridConfigDialog()\"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showEtaPhiGridCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showEtaPhiGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setEtaPhiGrid($event)\"\n >Show Eta Phi Grid\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showAxisCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showAxisCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setAxis($event)\"\n >Show Axis\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"showLabelsCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showLabelsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"showLabels($event)\"\n >Show Labels\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showMouse3DPointsCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showMouse3DPointsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"show3DMousePoints($event)\"\n >Show 3D Coordinates\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n show3DDistanceCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #show3DDistanceCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleShowDistance($event)\"\n >Show 3D Distance\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n *ngFor=\"let view of views\"\n (click)=\"displayView($event, view)\"\n >\n <svg class=\"view-icon\" *ngIf=\"view.icon\">\n <use attr.href=\"assets/icons/{{ view.icon }}.svg#{{ view.icon }}\"></use>\n </svg>\n {{ view.name }}\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"viewOptions\"\n tooltip=\"View options and Tools\"\n icon=\"views\"\n [active]=\"false\"\n>\n</app-menu-toggle>\n", styles: [".view-icon{width:1.2rem;height:1.2rem;margin-right:.5rem}.icon-wrapper{display:inline-block;width:1.5rem;height:1.5rem;padding:.23rem;transition:all .4s;transform:translateY(27%)}.icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.icon-wrapper svg{width:100%;height:100%;vertical-align:top}.item-settings{margin-right:.2rem;margin-left:.5rem}\n"] }]
|
|
165
|
-
}], () => [{ type: i1.EventDisplayService }, { type: i2.MatDialog }], { trigger: [{
|
|
166
|
-
type: ViewChild,
|
|
167
|
-
args: [MatMenuTrigger]
|
|
168
|
-
}] }); })();
|
|
169
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewOptionsComponent, { className: "ViewOptionsComponent", filePath: "components/ui-menu/view-options/view-options.component.ts", lineNumber: 21 }); })();
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvdmlldy1vcHRpb25zL3ZpZXctb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3ZpZXctb3B0aW9ucy92aWV3LW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7SUM0RXBELCtCQUF5QztJQUN2QyxzQkFBd0U7SUFDMUUsaUJBQU07OztJQURDLGNBQTREO0lBQTVELDRGQUE0RDs7OztJQU5yRSxrQ0FJQztJQURDLG9OQUFTLG1DQUF5QixLQUFDO0lBRW5DLHFGQUF5QztJQUd6QyxZQUNGO0lBQUEsaUJBQVM7OztJQUppQixjQUFlO0lBQWYsbUNBQWU7SUFHdkMsY0FDRjtJQURFLDZDQUNGOztBRHpFRixNQUFNLE9BQU8sb0JBQW9CO0lBVXJCO0lBQ0E7SUFWaUIsT0FBTyxDQUFpQjtJQUNuRCxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsS0FBSyxHQUFXLElBQUksQ0FBQztJQUNyQixLQUFLLENBQWU7SUFDcEIsWUFBWSxDQUFVO0lBQ3RCLE1BQU0sR0FBWSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLEdBQUcsQ0FBZTtJQUVsQixZQUNVLFlBQWlDLEVBQ2pDLE1BQWlCO1FBRGpCLGlCQUFZLEdBQVosWUFB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RGQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICB0eXBlIE9uSW5pdCxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmVzZXRWaWV3IH0gZnJvbSAncGhvZW5peC1ldmVudC1kaXNwbGF5JztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2FydGVzaWFuR3JpZENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vY2FydGVzaWFuLWdyaWQtY29uZmlnL2NhcnRlc2lhbi1ncmlkLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXctb3B0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LW9wdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld09wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuICBzaG93Q2FydGVzaWFuR3JpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzY2FsZTogbnVtYmVyID0gMzAwMDtcbiAgdmlld3M6IFByZXNldFZpZXdbXTtcbiAgc2hvdzNEUG9pbnRzOiBib29sZWFuO1xuICBvcmlnaW46IFZlY3RvcjMgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcbiAgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld3MgPSB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5nZXRQcmVzZXRWaWV3cygpO1xuICAgIHRoaXMuc3ViID0gdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRUaHJlZU1hbmFnZXIoKVxuICAgICAgLm9yaWdpbkNoYW5nZWQuc3Vic2NyaWJlKChpbnRlcnNlY3QpID0+IHtcbiAgICAgICAgdGhpcy5vcmlnaW4gPSBpbnRlcnNlY3Q7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5DYXJ0ZXNpYW5HcmlkQ29uZmlnRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ2FydGVzaWFuR3JpZENvbmZpZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBncmlkVmlzaWJsZTogdGhpcy5zaG93Q2FydGVzaWFuR3JpZCxcbiAgICAgICAgc2NhbGU6IHRoaXMuc2NhbGUsXG4gICAgICB9LFxuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYm90dG9tOiAnNXJlbScsXG4gICAgICAgIGxlZnQ6ICczcmVtJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBkaXNwbGF5VmlldygkZXZlbnQ6IGFueSwgdmlldzogUHJlc2V0Vmlldykge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5kaXNwbGF5Vmlldyh2aWV3KTtcbiAgfVxuXG4gIHNldEF4aXMoY2hhbmdlOiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlLmNoZWNrZWQ7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0VUlNYW5hZ2VyKCkuc2V0U2hvd0F4aXModmFsdWUpO1xuICB9XG5cbiAgc2V0RXRhUGhpR3JpZChjaGFuZ2U6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgY29uc3QgdmFsdWUgPSBjaGFuZ2UuY2hlY2tlZDtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5zZXRTaG93RXRhUGhpR3JpZCh2YWx1ZSk7XG4gIH1cblxuICBzZXRDYXJ0ZXNpYW5HcmlkKGNoYW5nZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICB0aGlzLnNob3dDYXJ0ZXNpYW5HcmlkID0gY2hhbmdlLmNoZWNrZWQ7XG4gICAgdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRVSU1hbmFnZXIoKVxuICAgICAgLnNldFNob3dDYXJ0ZXNpYW5HcmlkKHRoaXMuc2hvd0NhcnRlc2lhbkdyaWQsIHRoaXMuc2NhbGUpO1xuICB9XG5cbiAgc2hvd0xhYmVscyhjaGFuZ2U6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0VUlNYW5hZ2VyKCkuc2hvd0xhYmVscyhjaGFuZ2UuY2hlY2tlZCk7XG4gIH1cblxuICBzaG93M0RNb3VzZVBvaW50cyhjaGFuZ2U6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5zaG93M0RQb2ludHMgPSBjaGFuZ2UuY2hlY2tlZDtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5zaG93M0RNb3VzZVBvaW50cyh0aGlzLnNob3czRFBvaW50cyk7XG4gIH1cblxuICB0b2dnbGVTaG93RGlzdGFuY2UoY2hhbmdlOiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMudHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5zaG93M0REaXN0YW5jZShjaGFuZ2UuY2hlY2tlZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bWF0LW1lbnUgI3ZpZXdPcHRpb25zPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgI3Nob3dDYXJ0ZXNpYW5HcmlkQ2hlY2tib3hcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNoYW5nZSk9XCJzZXRDYXJ0ZXNpYW5HcmlkKCRldmVudClcIlxuICAgICAgPlNob3cgQ2FydGVzaWFuIEdyaWRcbiAgICA8L21hdC1jaGVja2JveD5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImljb24td3JhcHBlciBpY29uLWJ1dHRvbiBidG4tYmxhbmsgaXRlbS1zZXR0aW5nc1wiXG4gICAgICAoY2xpY2spPVwib3BlbkNhcnRlc2lhbkdyaWRDb25maWdEaWFsb2coKVwiXG4gICAgPlxuICAgICAgPHN2Zz5cbiAgICAgICAgPHVzZSBocmVmPVwiYXNzZXRzL2ljb25zL2dlYXIuc3ZnI2dlYXJcIj48L3VzZT5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICAoY2xpY2spPVwiXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBzaG93RXRhUGhpR3JpZENoZWNrYm94Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICNzaG93RXRhUGhpR3JpZENoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwic2V0RXRhUGhpR3JpZCgkZXZlbnQpXCJcbiAgICAgID5TaG93IEV0YSBQaGkgR3JpZFxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICAoY2xpY2spPVwiXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBzaG93QXhpc0NoZWNrYm94Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICNzaG93QXhpc0NoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwic2V0QXhpcygkZXZlbnQpXCJcbiAgICAgID5TaG93IEF4aXNcbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBtYXQtbWVudS1pdGVtXG4gICAgKGNsaWNrKT1cInNob3dMYWJlbHNDaGVja2JveC5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiXG4gID5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICAjc2hvd0xhYmVsc0NoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwic2hvd0xhYmVscygkZXZlbnQpXCJcbiAgICAgID5TaG93IExhYmVsc1xuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICAoY2xpY2spPVwiXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBzaG93TW91c2UzRFBvaW50c0NoZWNrYm94Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICNzaG93TW91c2UzRFBvaW50c0NoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwic2hvdzNETW91c2VQb2ludHMoJGV2ZW50KVwiXG4gICAgICA+U2hvdyAzRCBDb29yZGluYXRlc1xuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICAoY2xpY2spPVwiXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBzaG93M0REaXN0YW5jZUNoZWNrYm94Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICNzaG93M0REaXN0YW5jZUNoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2hvd0Rpc3RhbmNlKCRldmVudClcIlxuICAgICAgPlNob3cgM0QgRGlzdGFuY2VcbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBtYXQtbWVudS1pdGVtXG4gICAgKm5nRm9yPVwibGV0IHZpZXcgb2Ygdmlld3NcIlxuICAgIChjbGljayk9XCJkaXNwbGF5VmlldygkZXZlbnQsIHZpZXcpXCJcbiAgPlxuICAgIDxzdmcgY2xhc3M9XCJ2aWV3LWljb25cIiAqbmdJZj1cInZpZXcuaWNvblwiPlxuICAgICAgPHVzZSBhdHRyLmhyZWY9XCJhc3NldHMvaWNvbnMve3sgdmlldy5pY29uIH19LnN2ZyN7eyB2aWV3Lmljb24gfX1cIj48L3VzZT5cbiAgICA8L3N2Zz5cbiAgICB7eyB2aWV3Lm5hbWUgfX1cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48YXBwLW1lbnUtdG9nZ2xlXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJ2aWV3T3B0aW9uc1wiXG4gIHRvb2x0aXA9XCJWaWV3IG9wdGlvbnMgYW5kIFRvb2xzXCJcbiAgaWNvbj1cInZpZXdzXCJcbiAgW2FjdGl2ZV09XCJmYWxzZVwiXG4+XG48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==
|