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,36 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { EventDataFormat, } from '../../../services/extras/event-data-import';
|
|
3
|
+
import { IOOptionsDialogComponent } from './io-options-dialog/io-options-dialog.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "../menu-toggle/menu-toggle.component";
|
|
7
|
+
export class IoOptionsComponent {
|
|
8
|
+
dialog;
|
|
9
|
+
eventDataImportOptions = Object.values(EventDataFormat);
|
|
10
|
+
constructor(dialog) {
|
|
11
|
+
this.dialog = dialog;
|
|
12
|
+
}
|
|
13
|
+
openIODialog() {
|
|
14
|
+
const dialogRef = this.dialog.open(IOOptionsDialogComponent, {
|
|
15
|
+
panelClass: 'dialog',
|
|
16
|
+
});
|
|
17
|
+
dialogRef.componentInstance.eventDataImportOptions =
|
|
18
|
+
this.eventDataImportOptions;
|
|
19
|
+
}
|
|
20
|
+
static ɵfac = function IoOptionsComponent_Factory(t) { return new (t || IoOptionsComponent)(i0.ɵɵdirectiveInject(i1.MatDialog)); };
|
|
21
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IoOptionsComponent, selectors: [["app-io-options"]], inputs: { eventDataImportOptions: "eventDataImportOptions" }, decls: 1, vars: 1, consts: [["tooltip", "Import and export options", "icon", "import", 3, "click", "active"]], template: function IoOptionsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "app-menu-toggle", 0);
|
|
23
|
+
i0.ɵɵlistener("click", function IoOptionsComponent_Template_app_menu_toggle_click_0_listener() { return ctx.openIODialog(); });
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
i0.ɵɵproperty("active", false);
|
|
27
|
+
} }, dependencies: [i2.MenuToggleComponent] });
|
|
28
|
+
}
|
|
29
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IoOptionsComponent, [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'app-io-options', template: "<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n" }]
|
|
32
|
+
}], () => [{ type: i1.MatDialog }], { eventDataImportOptions: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] }); })();
|
|
35
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(IoOptionsComponent, { className: "IoOptionsComponent", filePath: "components/ui-menu/io-options/io-options.component.ts", lineNumber: 14 }); })();
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBTzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFLVDtJQUhwQixzQkFBc0IsR0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVqQyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUcsQ0FBQztJQUV6QyxZQUFZO1FBQ1YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDM0QsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQjtZQUNoRCxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsQ0FBQzs0RUFiVSxrQkFBa0I7NkRBQWxCLGtCQUFrQjtZQ2IvQiwwQ0FLQztZQURDLHdHQUFTLGtCQUFjLElBQUM7WUFFMUIsaUJBQWtCOztZQUhoQiw4QkFBZ0I7OztpRkRVTCxrQkFBa0I7Y0FMOUIsU0FBUzsyQkFDRSxnQkFBZ0I7MENBTTFCLHNCQUFzQjtrQkFEckIsS0FBSzs7a0ZBREssa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7XG4gIEV2ZW50RGF0YUZvcm1hdCxcbiAgRXZlbnREYXRhSW1wb3J0T3B0aW9uLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9leHRyYXMvZXZlbnQtZGF0YS1pbXBvcnQnO1xuaW1wb3J0IHsgSU9PcHRpb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9pby1vcHRpb25zLWRpYWxvZy9pby1vcHRpb25zLWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW8tb3B0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pby1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW8tb3B0aW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJb09wdGlvbnNDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBldmVudERhdGFJbXBvcnRPcHRpb25zOiBFdmVudERhdGFJbXBvcnRPcHRpb25bXSA9XG4gICAgT2JqZWN0LnZhbHVlcyhFdmVudERhdGFGb3JtYXQpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgb3BlbklPRGlhbG9nKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSU9PcHRpb25zRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZXZlbnREYXRhSW1wb3J0T3B0aW9ucyA9XG4gICAgICB0aGlzLmV2ZW50RGF0YUltcG9ydE9wdGlvbnM7XG4gIH1cbn1cbiIsIjxhcHAtbWVudS10b2dnbGVcbiAgdG9vbHRpcD1cIkltcG9ydCBhbmQgZXhwb3J0IG9wdGlvbnNcIlxuICBpY29uPVwiaW1wb3J0XCJcbiAgW2FjdGl2ZV09XCJmYWxzZVwiXG4gIChjbGljayk9XCJvcGVuSU9EaWFsb2coKVwiXG4+XG48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
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/material/tooltip";
|
|
5
|
+
import * as i3 from "../menu-toggle/menu-toggle.component";
|
|
6
|
+
export class MainViewToggleComponent {
|
|
7
|
+
eventDisplay;
|
|
8
|
+
orthographicView = false;
|
|
9
|
+
constructor(eventDisplay) {
|
|
10
|
+
this.eventDisplay = eventDisplay;
|
|
11
|
+
}
|
|
12
|
+
switchMainView() {
|
|
13
|
+
this.orthographicView = !this.orthographicView;
|
|
14
|
+
this.eventDisplay
|
|
15
|
+
.getUIManager()
|
|
16
|
+
.toggleOrthographicView(this.orthographicView);
|
|
17
|
+
}
|
|
18
|
+
static ɵfac = function MainViewToggleComponent_Factory(t) { return new (t || MainViewToggleComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
19
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MainViewToggleComponent, selectors: [["app-main-view-toggle"]], decls: 1, vars: 2, consts: [[3, "click", "icon", "matTooltip"]], template: function MainViewToggleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "app-menu-toggle", 0);
|
|
21
|
+
i0.ɵɵlistener("click", function MainViewToggleComponent_Template_app_menu_toggle_click_0_listener() { return ctx.switchMainView(); });
|
|
22
|
+
i0.ɵɵelementEnd();
|
|
23
|
+
} if (rf & 2) {
|
|
24
|
+
i0.ɵɵproperty("icon", ctx.orthographicView ? "perspective" : "orthographic")("matTooltip", "Switch to " + (ctx.orthographicView ? "perspective" : "orthographic") + " view");
|
|
25
|
+
} }, dependencies: [i2.MatTooltip, i3.MenuToggleComponent] });
|
|
26
|
+
}
|
|
27
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MainViewToggleComponent, [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'app-main-view-toggle', template: "<app-menu-toggle\n [icon]=\"orthographicView ? 'perspective' : 'orthographic'\"\n [matTooltip]=\"\n 'Switch to ' + (orthographicView ? 'perspective' : 'orthographic') + ' view'\n \"\n (click)=\"switchMainView()\"\n>\n</app-menu-toggle>\n" }]
|
|
30
|
+
}], () => [{ type: i1.EventDisplayService }], null); })();
|
|
31
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MainViewToggleComponent, { className: "MainViewToggleComponent", filePath: "components/ui-menu/main-view-toggle/main-view-toggle.component.ts", lineNumber: 9 }); })();
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVExQyxNQUFNLE9BQU8sdUJBQXVCO0lBR2Q7SUFGcEIsZ0JBQWdCLEdBQVksS0FBSyxDQUFDO0lBRWxDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFFekQsY0FBYztRQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWTthQUNkLFlBQVksRUFBRTthQUNkLHNCQUFzQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7aUZBVlUsdUJBQXVCOzZEQUF2Qix1QkFBdUI7WUNScEMsMENBTUM7WUFEQyw2R0FBUyxvQkFBZ0IsSUFBQztZQUU1QixpQkFBa0I7O1lBTGhCLEFBREEsNEVBQTBELGdHQUd6RDs7O2lGRElVLHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHNCQUFzQjs7a0ZBSXJCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tYWluLXZpZXctdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tdmlldy10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYWluLXZpZXctdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5WaWV3VG9nZ2xlQ29tcG9uZW50IHtcbiAgb3J0aG9ncmFwaGljVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnREaXNwbGF5OiBFdmVudERpc3BsYXlTZXJ2aWNlKSB7fVxuXG4gIHN3aXRjaE1haW5WaWV3KCkge1xuICAgIHRoaXMub3J0aG9ncmFwaGljVmlldyA9ICF0aGlzLm9ydGhvZ3JhcGhpY1ZpZXc7XG4gICAgdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRVSU1hbmFnZXIoKVxuICAgICAgLnRvZ2dsZU9ydGhvZ3JhcGhpY1ZpZXcodGhpcy5vcnRob2dyYXBoaWNWaWV3KTtcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICBbaWNvbl09XCJvcnRob2dyYXBoaWNWaWV3ID8gJ3BlcnNwZWN0aXZlJyA6ICdvcnRob2dyYXBoaWMnXCJcbiAgW21hdFRvb2x0aXBdPVwiXG4gICAgJ1N3aXRjaCB0byAnICsgKG9ydGhvZ3JhcGhpY1ZpZXcgPyAncGVyc3BlY3RpdmUnIDogJ29ydGhvZ3JhcGhpYycpICsgJyB2aWV3J1xuICBcIlxuICAoY2xpY2spPVwic3dpdGNoTWFpblZpZXcoKVwiXG4+XG48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } 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/forms";
|
|
6
|
+
import * as i4 from "@angular/material/menu";
|
|
7
|
+
import * as i5 from "@angular/material/radio";
|
|
8
|
+
import * as i6 from "../menu-toggle/menu-toggle.component";
|
|
9
|
+
function MakePictureComponent_mat_radio_button_14_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵelementStart(0, "mat-radio-button", 12);
|
|
11
|
+
i0.ɵɵtext(1);
|
|
12
|
+
i0.ɵɵelementEnd();
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const fitting_r4 = ctx.$implicit;
|
|
15
|
+
i0.ɵɵproperty("value", fitting_r4);
|
|
16
|
+
i0.ɵɵadvance();
|
|
17
|
+
i0.ɵɵtextInterpolate1("", fitting_r4, " ");
|
|
18
|
+
} }
|
|
19
|
+
export class MakePictureComponent {
|
|
20
|
+
eventDisplay;
|
|
21
|
+
fittings = ['Crop', 'Stretch'];
|
|
22
|
+
fitting = 'Crop';
|
|
23
|
+
width = 3840;
|
|
24
|
+
height = 2160;
|
|
25
|
+
disabled = false;
|
|
26
|
+
constructor(eventDisplay) {
|
|
27
|
+
this.eventDisplay = eventDisplay;
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() { }
|
|
30
|
+
checkSize() {
|
|
31
|
+
return this.eventDisplay
|
|
32
|
+
.getThreeManager()
|
|
33
|
+
.checkScreenShotCanvasSize(this.width, this.height, this.fitting);
|
|
34
|
+
}
|
|
35
|
+
setWidth(value) {
|
|
36
|
+
this.width = value;
|
|
37
|
+
this.disabled = !this.checkSize();
|
|
38
|
+
}
|
|
39
|
+
setHeight(value) {
|
|
40
|
+
this.height = value;
|
|
41
|
+
this.disabled = !this.checkSize();
|
|
42
|
+
}
|
|
43
|
+
buttonText() {
|
|
44
|
+
return this.disabled ? 'Size too large' : 'Create picture';
|
|
45
|
+
}
|
|
46
|
+
makePicture() {
|
|
47
|
+
this.eventDisplay
|
|
48
|
+
.getThreeManager()
|
|
49
|
+
.makeScreenShot(this.width, this.height, this.fitting);
|
|
50
|
+
}
|
|
51
|
+
static ɵfac = function MakePictureComponent_Factory(t) { return new (t || MakePictureComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
52
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MakePictureComponent, selectors: [["app-make-picture"]], decls: 20, vars: 11, consts: [["menu", ""], ["width", ""], ["height", ""], [1, "mat-menu"], ["mat-menu-item", "", 1, "size-input", 3, "click"], ["mapInput", "", "type", "number", 3, "change", "click", "value"], ["mat-menu-item", "", 3, "click"], [1, "fitting-radios", 3, "ngModelChange", "ngModel"], [3, "value", 4, "ngFor", "ngForOf"], ["mat-menu-item", "", 1, "make-picture", 3, "click", "disabled"], ["tooltip", "Creates a picture from the current view: directly saves a png of arbitrary size from the current view", "icon", "png", 3, "matMenuTriggerFor"], ["hidden", "", "id", "screenshotCanvas"], [3, "value"]], template: function MakePictureComponent_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
54
|
+
i0.ɵɵelementStart(0, "mat-menu", 3, 0)(2, "button", 4);
|
|
55
|
+
i0.ɵɵlistener("click", function MakePictureComponent_Template_button_click_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56
|
+
i0.ɵɵelementStart(3, "label");
|
|
57
|
+
i0.ɵɵtext(4, "width");
|
|
58
|
+
i0.ɵɵelementEnd();
|
|
59
|
+
i0.ɵɵelementStart(5, "input", 5, 1);
|
|
60
|
+
i0.ɵɵlistener("change", function MakePictureComponent_Template_input_change_5_listener() { i0.ɵɵrestoreView(_r1); const width_r2 = i0.ɵɵreference(6); return i0.ɵɵresetView(ctx.setWidth(width_r2.value)); })("click", function MakePictureComponent_Template_input_click_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
61
|
+
i0.ɵɵelementEnd()();
|
|
62
|
+
i0.ɵɵelementStart(7, "button", 4);
|
|
63
|
+
i0.ɵɵlistener("click", function MakePictureComponent_Template_button_click_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
64
|
+
i0.ɵɵelementStart(8, "label");
|
|
65
|
+
i0.ɵɵtext(9, "height");
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
i0.ɵɵelementStart(10, "input", 5, 2);
|
|
68
|
+
i0.ɵɵlistener("change", function MakePictureComponent_Template_input_change_10_listener() { i0.ɵɵrestoreView(_r1); const height_r3 = i0.ɵɵreference(11); return i0.ɵɵresetView(ctx.setHeight(height_r3.value)); })("click", function MakePictureComponent_Template_input_click_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
69
|
+
i0.ɵɵelementEnd()();
|
|
70
|
+
i0.ɵɵelementStart(12, "button", 6);
|
|
71
|
+
i0.ɵɵlistener("click", function MakePictureComponent_Template_button_click_12_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
72
|
+
i0.ɵɵelementStart(13, "mat-radio-group", 7);
|
|
73
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MakePictureComponent_Template_mat_radio_group_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.fitting, $event) || (ctx.fitting = $event); return i0.ɵɵresetView($event); });
|
|
74
|
+
i0.ɵɵtemplate(14, MakePictureComponent_mat_radio_button_14_Template, 2, 2, "mat-radio-button", 8);
|
|
75
|
+
i0.ɵɵelementEnd()();
|
|
76
|
+
i0.ɵɵelementStart(15, "button", 9);
|
|
77
|
+
i0.ɵɵlistener("click", function MakePictureComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.makePicture()); });
|
|
78
|
+
i0.ɵɵtext(16);
|
|
79
|
+
i0.ɵɵelementEnd()();
|
|
80
|
+
i0.ɵɵelement(17, "app-menu-toggle", 10);
|
|
81
|
+
i0.ɵɵelementStart(18, "div");
|
|
82
|
+
i0.ɵɵelement(19, "canvas", 11);
|
|
83
|
+
i0.ɵɵelementEnd();
|
|
84
|
+
} if (rf & 2) {
|
|
85
|
+
const menu_r5 = i0.ɵɵreference(1);
|
|
86
|
+
i0.ɵɵadvance(5);
|
|
87
|
+
i0.ɵɵclassProp("badSize", ctx.disabled);
|
|
88
|
+
i0.ɵɵproperty("value", 3840);
|
|
89
|
+
i0.ɵɵadvance(5);
|
|
90
|
+
i0.ɵɵclassProp("badSize", ctx.disabled);
|
|
91
|
+
i0.ɵɵproperty("value", 2610);
|
|
92
|
+
i0.ɵɵadvance(3);
|
|
93
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.fitting);
|
|
94
|
+
i0.ɵɵadvance();
|
|
95
|
+
i0.ɵɵproperty("ngForOf", ctx.fittings);
|
|
96
|
+
i0.ɵɵadvance();
|
|
97
|
+
i0.ɵɵproperty("disabled", ctx.disabled);
|
|
98
|
+
i0.ɵɵadvance();
|
|
99
|
+
i0.ɵɵtextInterpolate1(" ", ctx.buttonText(), " ");
|
|
100
|
+
i0.ɵɵadvance();
|
|
101
|
+
i0.ɵɵproperty("matMenuTriggerFor", menu_r5);
|
|
102
|
+
} }, dependencies: [i2.NgForOf, i3.NgControlStatus, i3.NgModel, i4.MatMenu, i4.MatMenuItem, i4.MatMenuTrigger, i5.MatRadioGroup, i5.MatRadioButton, i6.MenuToggleComponent], styles: [".size-input{background:transparent;color:var(--phoenix-text-color);text-align:center}.size-input label{width:60px}.size-input input{background:transparent;color:var(--phoenix-text-color);width:80px}.badSize{border-color:red}.make-picture{text-align:center;display:block}.make-picture span{padding:5px 25px;border:2px solid var(--phoenix-text-color);border-radius:8px}\n"], encapsulation: 2 });
|
|
103
|
+
}
|
|
104
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MakePictureComponent, [{
|
|
105
|
+
type: Component,
|
|
106
|
+
args: [{ selector: 'app-make-picture', encapsulation: ViewEncapsulation.None, template: "<mat-menu class=\"mat-menu\" #menu>\n <button mat-menu-item (click)=\"$event.stopPropagation()\" class=\"size-input\">\n <label>width</label>\n <input\n #width\n mapInput\n type=\"number\"\n [value]=\"3840\"\n (change)=\"setWidth(width.value)\"\n (click)=\"$event.stopPropagation()\"\n [class.badSize]=\"disabled\"\n />\n </button>\n <button mat-menu-item (click)=\"$event.stopPropagation()\" class=\"size-input\">\n <label>height</label>\n <input\n #height\n mapInput\n type=\"number\"\n [value]=\"2610\"\n (change)=\"setHeight(height.value)\"\n (click)=\"$event.stopPropagation()\"\n [class.badSize]=\"disabled\"\n />\n </button>\n <button mat-menu-item (click)=\"$event.stopPropagation()\">\n <mat-radio-group [(ngModel)]=\"fitting\" class=\"fitting-radios\">\n <mat-radio-button *ngFor=\"let fitting of fittings\" [value]=\"fitting\"\n >{{ fitting }}\n </mat-radio-button>\n </mat-radio-group>\n </button>\n <button\n mat-menu-item\n [disabled]=\"disabled\"\n class=\"make-picture\"\n (click)=\"makePicture()\"\n >\n {{ buttonText() }}\n </button>\n</mat-menu>\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n tooltip=\"Creates a picture from the current view: directly saves a png of arbitrary size from the current view\"\n icon=\"png\"\n>\n</app-menu-toggle>\n<div>\n <canvas hidden id=\"screenshotCanvas\"></canvas>\n</div>\n", styles: [".size-input{background:transparent;color:var(--phoenix-text-color);text-align:center}.size-input label{width:60px}.size-input input{background:transparent;color:var(--phoenix-text-color);width:80px}.badSize{border-color:red}.make-picture{text-align:center;display:block}.make-picture span{padding:5px 25px;border:2px solid var(--phoenix-text-color);border-radius:8px}\n"] }]
|
|
107
|
+
}], () => [{ type: i1.EventDisplayService }], null); })();
|
|
108
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MakePictureComponent, { className: "MakePictureComponent", filePath: "components/ui-menu/make-picture/make-picture.component.ts", lineNumber: 11 }); })();
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1waWN0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvbWFrZS1waWN0dXJlL21ha2UtcGljdHVyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21ha2UtcGljdHVyZS9tYWtlLXBpY3R1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztJQzJCdEUsNENBQ0c7SUFBQSxZQUNIO0lBQUEsaUJBQW1COzs7SUFGZ0Msa0NBQWlCO0lBQ2pFLGNBQ0g7SUFERywwQ0FDSDs7QURuQk4sTUFBTSxPQUFPLG9CQUFvQjtJQU1YO0lBTHBCLFFBQVEsR0FBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6QyxPQUFPLEdBQVcsTUFBTSxDQUFDO0lBQ3pCLEtBQUssR0FBVyxJQUFJLENBQUM7SUFDckIsTUFBTSxHQUFXLElBQUksQ0FBQztJQUN0QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFDekQsUUFBUSxLQUFJLENBQUM7SUFDTCxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWTthQUNyQixlQUFlLEVBQUU7YUFDakIseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZO2FBQ2QsZUFBZSxFQUFFO2FBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7OEVBNUJVLG9CQUFvQjs2REFBcEIsb0JBQW9COztZQ1QvQixBQURGLHNDQUFpQyxnQkFDNkM7WUFBdEQsNklBQVMsd0JBQXdCLEtBQUM7WUFDdEQsNkJBQU87WUFBQSxxQkFBSztZQUFBLGlCQUFRO1lBQ3BCLG1DQVFFO1lBRkEsQUFEQSw0S0FBVSw0QkFBcUIsS0FBQywrSEFDdkIsd0JBQXdCLEtBQUM7WUFHdEMsQUFURSxpQkFRRSxFQUNLO1lBQ1QsaUNBQTRFO1lBQXRELDZJQUFTLHdCQUF3QixLQUFDO1lBQ3RELDZCQUFPO1lBQUEsc0JBQU07WUFBQSxpQkFBUTtZQUNyQixvQ0FRRTtZQUZBLEFBREEsK0tBQVUsOEJBQXVCLEtBQUMsZ0lBQ3pCLHdCQUF3QixLQUFDO1lBR3RDLEFBVEUsaUJBUUUsRUFDSztZQUNULGtDQUF5RDtZQUFuQyw4SUFBUyx3QkFBd0IsS0FBQztZQUN0RCwyQ0FBOEQ7WUFBN0MsOFBBQXFCO1lBQ3BDLGlHQUNHO1lBR1AsQUFERSxpQkFBa0IsRUFDWDtZQUNULGtDQUtDO1lBREMsd0lBQVMsaUJBQWEsS0FBQztZQUV2QixhQUNGO1lBQ0YsQUFERSxpQkFBUyxFQUNBO1lBQ1gsdUNBS2tCO1lBQ2xCLDRCQUFLO1lBQ0gsOEJBQThDO1lBQ2hELGlCQUFNOzs7WUF2Q0EsZUFBMEI7WUFBMUIsdUNBQTBCO1lBSDFCLDRCQUFjO1lBZWQsZUFBMEI7WUFBMUIsdUNBQTBCO1lBSDFCLDRCQUFjO1lBT0MsZUFBcUI7WUFBckIsMkNBQXFCO1lBQ0UsY0FBVztZQUFYLHNDQUFXO1lBT25ELGNBQXFCO1lBQXJCLHVDQUFxQjtZQUlyQixjQUNGO1lBREUsaURBQ0Y7WUFHQSxjQUEwQjtZQUExQiwyQ0FBMEI7OztpRkRoQ2Ysb0JBQW9CO2NBTmhDLFNBQVM7MkJBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUk7O2tGQUUxQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWFrZS1waWN0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ha2UtcGljdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ha2UtcGljdHVyZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNYWtlUGljdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZpdHRpbmdzOiBzdHJpbmdbXSA9IFsnQ3JvcCcsICdTdHJldGNoJ107XG4gIGZpdHRpbmc6IHN0cmluZyA9ICdDcm9wJztcbiAgd2lkdGg6IG51bWJlciA9IDM4NDA7XG4gIGhlaWdodDogbnVtYmVyID0gMjE2MDtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UpIHt9XG4gIG5nT25Jbml0KCkge31cbiAgcHJpdmF0ZSBjaGVja1NpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnREaXNwbGF5XG4gICAgICAuZ2V0VGhyZWVNYW5hZ2VyKClcbiAgICAgIC5jaGVja1NjcmVlblNob3RDYW52YXNTaXplKHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCB0aGlzLmZpdHRpbmcpO1xuICB9XG4gIHNldFdpZHRoKHZhbHVlKSB7XG4gICAgdGhpcy53aWR0aCA9IHZhbHVlO1xuICAgIHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5jaGVja1NpemUoKTtcbiAgfVxuICBzZXRIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLmhlaWdodCA9IHZhbHVlO1xuICAgIHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5jaGVja1NpemUoKTtcbiAgfVxuICBidXR0b25UZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJ1NpemUgdG9vIGxhcmdlJyA6ICdDcmVhdGUgcGljdHVyZSc7XG4gIH1cbiAgbWFrZVBpY3R1cmUoKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRUaHJlZU1hbmFnZXIoKVxuICAgICAgLm1ha2VTY3JlZW5TaG90KHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCB0aGlzLmZpdHRpbmcpO1xuICB9XG59XG4iLCI8bWF0LW1lbnUgY2xhc3M9XCJtYXQtbWVudVwiICNtZW51PlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwic2l6ZS1pbnB1dFwiPlxuICAgIDxsYWJlbD53aWR0aDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICAjd2lkdGhcbiAgICAgIG1hcElucHV0XG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIFt2YWx1ZV09XCIzODQwXCJcbiAgICAgIChjaGFuZ2UpPVwic2V0V2lkdGgod2lkdGgudmFsdWUpXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgW2NsYXNzLmJhZFNpemVdPVwiZGlzYWJsZWRcIlxuICAgIC8+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwic2l6ZS1pbnB1dFwiPlxuICAgIDxsYWJlbD5oZWlnaHQ8L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgI2hlaWdodFxuICAgICAgbWFwSW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgW3ZhbHVlXT1cIjI2MTBcIlxuICAgICAgKGNoYW5nZSk9XCJzZXRIZWlnaHQoaGVpZ2h0LnZhbHVlKVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIFtjbGFzcy5iYWRTaXplXT1cImRpc2FibGVkXCJcbiAgICAvPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICA8bWF0LXJhZGlvLWdyb3VwIFsobmdNb2RlbCldPVwiZml0dGluZ1wiIGNsYXNzPVwiZml0dGluZy1yYWRpb3NcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBmaXR0aW5nIG9mIGZpdHRpbmdzXCIgW3ZhbHVlXT1cImZpdHRpbmdcIlxuICAgICAgICA+e3sgZml0dGluZyB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIGNsYXNzPVwibWFrZS1waWN0dXJlXCJcbiAgICAoY2xpY2spPVwibWFrZVBpY3R1cmUoKVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0KCkgfX1cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPGFwcC1tZW51LXRvZ2dsZVxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gIHRvb2x0aXA9XCJDcmVhdGVzIGEgcGljdHVyZSBmcm9tIHRoZSBjdXJyZW50IHZpZXc6IGRpcmVjdGx5IHNhdmVzIGEgcG5nIG9mIGFyYml0cmFyeSBzaXplIGZyb20gdGhlIGN1cnJlbnQgdmlld1wiXG4gIGljb249XCJwbmdcIlxuPlxuPC9hcHAtbWVudS10b2dnbGU+XG48ZGl2PlxuICA8Y2FudmFzIGhpZGRlbiBpZD1cInNjcmVlbnNob3RDYW52YXNcIj48L2NhbnZhcz5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/tooltip";
|
|
5
|
+
const _c0 = a0 => ({ disabled: a0 });
|
|
6
|
+
const _c1 = a0 => ({ "active-icon": a0 });
|
|
7
|
+
export class MenuToggleComponent {
|
|
8
|
+
icon;
|
|
9
|
+
active;
|
|
10
|
+
tooltip;
|
|
11
|
+
disabled = false;
|
|
12
|
+
static ɵfac = function MenuToggleComponent_Factory(t) { return new (t || MenuToggleComponent)(); };
|
|
13
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuToggleComponent, selectors: [["app-menu-toggle"]], inputs: { icon: "icon", active: "active", tooltip: "tooltip", disabled: "disabled" }, decls: 3, vars: 10, consts: [["matTooltipPosition", "above", "matTooltipTouchGestures", "off", 1, "menu-toggle", 3, "ngClass", "matTooltip"], [1, "menu-toggle-icon", 3, "ngClass"]], template: function MenuToggleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelementStart(0, "button", 0);
|
|
15
|
+
i0.ɵɵnamespaceSVG();
|
|
16
|
+
i0.ɵɵelementStart(1, "svg", 1);
|
|
17
|
+
i0.ɵɵelement(2, "use");
|
|
18
|
+
i0.ɵɵelementEnd()();
|
|
19
|
+
} if (rf & 2) {
|
|
20
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx.disabled))("matTooltip", ctx.tooltip);
|
|
21
|
+
i0.ɵɵadvance();
|
|
22
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c1, ctx.active));
|
|
23
|
+
i0.ɵɵadvance();
|
|
24
|
+
i0.ɵɵattributeInterpolate2("href", "assets/icons/", ctx.icon, ".svg#", ctx.icon, "");
|
|
25
|
+
} }, dependencies: [i1.NgClass, i2.MatTooltip], styles: ["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .menu-toggle-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .menu-toggle-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .menu-toggle.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"] });
|
|
26
|
+
}
|
|
27
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuToggleComponent, [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'app-menu-toggle', template: "<button\n class=\"menu-toggle\"\n [ngClass]=\"{ disabled: disabled }\"\n [matTooltip]=\"tooltip\"\n matTooltipPosition=\"above\"\n matTooltipTouchGestures=\"off\"\n>\n <svg class=\"menu-toggle-icon\" [ngClass]=\"{ 'active-icon': active }\">\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n</button>\n", styles: [":host{display:flex;margin:0 .6rem}:host .menu-toggle{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}:host .menu-toggle-icon{width:100%;height:100%}:host .menu-toggle-icon.active-icon{--phoenix-options-icon-path: #00bcd4}:host .menu-toggle:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}:host .menu-toggle.disabled{cursor:not-allowed;opacity:.4}\n"] }]
|
|
30
|
+
}], null, { icon: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], active: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], tooltip: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], disabled: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] }); })();
|
|
39
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuToggleComponent, { className: "MenuToggleComponent", filePath: "components/ui-menu/menu-toggle/menu-toggle.component.ts", lineNumber: 8 }); })();
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9tZW51LXRvZ2dsZS9tZW51LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21lbnUtdG9nZ2xlL21lbnUtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPakQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixJQUFJLENBQVM7SUFDYixNQUFNLENBQVU7SUFDaEIsT0FBTyxDQUFTO0lBQ2hCLFFBQVEsR0FBWSxLQUFLLENBQUM7NkVBSnhCLG1CQUFtQjs2REFBbkIsbUJBQW1CO1lDUGhDLGlDQU1DOztZQUNDLDhCQUFvRTtZQUNsRSxzQkFBOEQ7WUFFbEUsQUFERSxpQkFBTSxFQUNDOztZQVBQLEFBREEsa0VBQWtDLDJCQUNaO1lBSVEsY0FBcUM7WUFBckMsZ0VBQXFDO1lBQzVELGNBQWtEO1lBQWxELG9GQUFrRDs7O2lGREQ5QyxtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxpQkFBaUI7Z0JBS2xCLElBQUk7a0JBQVosS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7O2tGQUpLLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lbnUtdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS10b2dnbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudVRvZ2dsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwibWVudS10b2dnbGVcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcbiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiXG4gIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXM9XCJvZmZcIlxuPlxuICA8c3ZnIGNsYXNzPVwibWVudS10b2dnbGUtaWNvblwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZS1pY29uJzogYWN0aXZlIH1cIj5cbiAgICA8dXNlIGF0dHIuaHJlZj1cImFzc2V0cy9pY29ucy97eyBpY29uIH19LnN2ZyN7eyBpY29uIH19XCI+PC91c2U+XG4gIDwvc3ZnPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
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/material/menu";
|
|
5
|
+
import * as i3 from "@angular/material/slider";
|
|
6
|
+
import * as i4 from "@angular/material/checkbox";
|
|
7
|
+
import * as i5 from "../menu-toggle/menu-toggle.component";
|
|
8
|
+
export class ObjectClippingComponent {
|
|
9
|
+
eventDisplay;
|
|
10
|
+
clippingEnabled;
|
|
11
|
+
startClippingAngle;
|
|
12
|
+
openingClippingAngle;
|
|
13
|
+
constructor(eventDisplay) {
|
|
14
|
+
this.eventDisplay = eventDisplay;
|
|
15
|
+
const stateManager = this.eventDisplay.getStateManager();
|
|
16
|
+
stateManager.clippingEnabled.onUpdate((clippingValue) => (this.clippingEnabled = clippingValue));
|
|
17
|
+
stateManager.startClippingAngle.onUpdate((value) => (this.startClippingAngle = value));
|
|
18
|
+
stateManager.openingClippingAngle.onUpdate((value) => (this.openingClippingAngle = value));
|
|
19
|
+
}
|
|
20
|
+
changeStartClippingAngle(startingAngle) {
|
|
21
|
+
this.eventDisplay.getUIManager().rotateStartAngleClipping(startingAngle);
|
|
22
|
+
}
|
|
23
|
+
changeOpeningClippingAngle(openingAngle) {
|
|
24
|
+
this.eventDisplay.getUIManager().rotateOpeningAngleClipping(openingAngle);
|
|
25
|
+
}
|
|
26
|
+
toggleClipping(change) {
|
|
27
|
+
const value = change.checked;
|
|
28
|
+
this.eventDisplay.getUIManager().setClipping(value);
|
|
29
|
+
this.clippingEnabled = value;
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = function ObjectClippingComponent_Factory(t) { return new (t || ObjectClippingComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
32
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ObjectClippingComponent, selectors: [["app-object-clipping"]], decls: 17, vars: 5, consts: [["menu", ""], ["clippingCheckbox", ""], ["startingAngleSlider", ""], ["openingAngleSlider", ""], [1, "mat-menu"], ["mat-menu-item", "", 3, "click"], [3, "click", "change", "checked"], ["mat-menu-item", "", 1, "slider-btn", 3, "focus"], ["min", "0", "max", "360", "step", "1", "thumbLabel", ""], ["matSliderThumb", "", 3, "valueChange", "value"], ["tooltip", "Geometry clipping", "icon", "clipping", 3, "matMenuTriggerFor", "active"]], template: function ObjectClippingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
34
|
+
i0.ɵɵelementStart(0, "mat-menu", 4, 0)(2, "button", 5);
|
|
35
|
+
i0.ɵɵlistener("click", function ObjectClippingComponent_Template_button_click_2_listener($event) { i0.ɵɵrestoreView(_r1); const clippingCheckbox_r2 = i0.ɵɵreference(4); $event.stopPropagation(); return i0.ɵɵresetView(clippingCheckbox_r2._inputElement.nativeElement.click()); });
|
|
36
|
+
i0.ɵɵelementStart(3, "mat-checkbox", 6, 1);
|
|
37
|
+
i0.ɵɵlistener("click", function ObjectClippingComponent_Template_mat_checkbox_click_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); })("change", function ObjectClippingComponent_Template_mat_checkbox_change_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleClipping($event)); });
|
|
38
|
+
i0.ɵɵtext(5, " Clipping ");
|
|
39
|
+
i0.ɵɵelementEnd()();
|
|
40
|
+
i0.ɵɵelementStart(6, "button", 7);
|
|
41
|
+
i0.ɵɵlistener("focus", function ObjectClippingComponent_Template_button_focus_6_listener() { i0.ɵɵrestoreView(_r1); const startingAngleSlider_r3 = i0.ɵɵreference(9); return i0.ɵɵresetView(startingAngleSlider_r3.focus()); });
|
|
42
|
+
i0.ɵɵelementStart(7, "mat-slider", 8)(8, "input", 9, 2);
|
|
43
|
+
i0.ɵɵlistener("valueChange", function ObjectClippingComponent_Template_input_valueChange_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeStartClippingAngle($event)); });
|
|
44
|
+
i0.ɵɵelementEnd()();
|
|
45
|
+
i0.ɵɵtext(10, " Start Angle ");
|
|
46
|
+
i0.ɵɵelementEnd();
|
|
47
|
+
i0.ɵɵelementStart(11, "button", 7);
|
|
48
|
+
i0.ɵɵlistener("focus", function ObjectClippingComponent_Template_button_focus_11_listener() { i0.ɵɵrestoreView(_r1); const openingAngleSlider_r4 = i0.ɵɵreference(14); return i0.ɵɵresetView(openingAngleSlider_r4.focus()); });
|
|
49
|
+
i0.ɵɵelementStart(12, "mat-slider", 8)(13, "input", 9, 3);
|
|
50
|
+
i0.ɵɵlistener("valueChange", function ObjectClippingComponent_Template_input_valueChange_13_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeOpeningClippingAngle($event)); });
|
|
51
|
+
i0.ɵɵelementEnd()();
|
|
52
|
+
i0.ɵɵtext(15, " Opening Angle ");
|
|
53
|
+
i0.ɵɵelementEnd()();
|
|
54
|
+
i0.ɵɵelement(16, "app-menu-toggle", 10);
|
|
55
|
+
} if (rf & 2) {
|
|
56
|
+
const menu_r5 = i0.ɵɵreference(1);
|
|
57
|
+
i0.ɵɵadvance(3);
|
|
58
|
+
i0.ɵɵproperty("checked", ctx.clippingEnabled);
|
|
59
|
+
i0.ɵɵadvance(5);
|
|
60
|
+
i0.ɵɵproperty("value", ctx.startClippingAngle);
|
|
61
|
+
i0.ɵɵadvance(5);
|
|
62
|
+
i0.ɵɵproperty("value", ctx.openingClippingAngle);
|
|
63
|
+
i0.ɵɵadvance(3);
|
|
64
|
+
i0.ɵɵproperty("matMenuTriggerFor", menu_r5)("active", ctx.clippingEnabled);
|
|
65
|
+
} }, dependencies: [i2.MatMenu, i2.MatMenuItem, i2.MatMenuTrigger, i3.MatSlider, i3.MatSliderThumb, i4.MatCheckbox, i5.MenuToggleComponent], styles: [".slider-btn[_ngcontent-%COMP%]{overflow:visible}mat-slider[_ngcontent-%COMP%]{margin-left:.75rem;margin-right:.75rem}"] });
|
|
66
|
+
}
|
|
67
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ObjectClippingComponent, [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'app-object-clipping', template: "<mat-menu class=\"mat-menu\" #menu>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n clippingCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #clippingCheckbox\n [checked]=\"clippingEnabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleClipping($event)\"\n >\n Clipping\n </mat-checkbox>\n </button>\n <button\n class=\"slider-btn\"\n mat-menu-item\n (focus)=\"startingAngleSlider.focus()\"\n >\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #startingAngleSlider\n matSliderThumb\n [value]=\"startClippingAngle\"\n (valueChange)=\"changeStartClippingAngle($event)\"\n />\n </mat-slider>\n Start Angle\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"openingAngleSlider.focus()\">\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #openingAngleSlider\n matSliderThumb\n [value]=\"openingClippingAngle\"\n (valueChange)=\"changeOpeningClippingAngle($event)\"\n />\n </mat-slider>\n Opening Angle\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n tooltip=\"Geometry clipping\"\n icon=\"clipping\"\n [active]=\"clippingEnabled\"\n>\n</app-menu-toggle>\n", styles: [".slider-btn{overflow:visible}mat-slider{margin-left:.75rem;margin-right:.75rem}\n"] }]
|
|
70
|
+
}], () => [{ type: i1.EventDisplayService }], null); })();
|
|
71
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ObjectClippingComponent, { className: "ObjectClippingComponent", filePath: "components/ui-menu/object-clipping/object-clipping.component.ts", lineNumber: 10 }); })();
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNsaXBwaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvb2JqZWN0LWNsaXBwaW5nL29iamVjdC1jbGlwcGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L29iamVjdC1jbGlwcGluZy9vYmplY3QtY2xpcHBpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMxQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2Q7SUFKcEIsZUFBZSxDQUFVO0lBQ3pCLGtCQUFrQixDQUFTO0lBQzNCLG9CQUFvQixDQUFTO0lBRTdCLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pELFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUNuQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxDQUMxRCxDQUFDO1FBQ0YsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDdEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxDQUM3QyxDQUFDO1FBQ0YsWUFBWSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLGFBQXFCO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELDBCQUEwQixDQUFDLFlBQW9CO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUF5QjtRQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7aUZBOUJVLHVCQUF1Qjs2REFBdkIsdUJBQXVCOztZQ1JsQyxBQURGLHNDQUFpQyxnQkFPOUI7WUFKQyx5S0FDUyx3QkFDUix3QkFBUSx1REFFYixLQURLO1lBRUQsMENBS0M7WUFEQyxBQURBLHNKQUFTLHdCQUF3QixLQUFDLDJJQUN4QiwwQkFBc0IsS0FBQztZQUVqQywwQkFDRjtZQUNGLEFBREUsaUJBQWUsRUFDUjtZQUNULGlDQUlDO1lBREMsNExBQVMsOEJBQTJCLEtBQUM7WUFHbkMsQUFERixxQ0FBa0Qsa0JBTTlDO1lBREEsMkpBQWUsb0NBQWdDLEtBQUM7WUFFcEQsQUFORSxpQkFLRSxFQUNTO1lBQ2IsOEJBQ0Y7WUFBQSxpQkFBUztZQUNULGtDQUE4RTtZQUFyQyw2TEFBUyw2QkFBMEIsS0FBQztZQUV6RSxBQURGLHNDQUFrRCxtQkFNOUM7WUFEQSw0SkFBZSxzQ0FBa0MsS0FBQztZQUV0RCxBQU5FLGlCQUtFLEVBQ1M7WUFDYixnQ0FDRjtZQUNGLEFBREUsaUJBQVMsRUFDQTtZQUVYLHVDQU1rQjs7O1lBekNaLGVBQTJCO1lBQTNCLDZDQUEyQjtZQWdCekIsZUFBNEI7WUFBNUIsOENBQTRCO1lBVzVCLGVBQThCO1lBQTlCLGdEQUE4QjtZQVNwQyxlQUEwQjtZQUcxQixBQUhBLDJDQUEwQiwrQkFHQTs7O2lGRHhDZix1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUlwQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1vYmplY3QtY2xpcHBpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWNsaXBwaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWNsaXBwaW5nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENsaXBwaW5nQ29tcG9uZW50IHtcbiAgY2xpcHBpbmdFbmFibGVkOiBib29sZWFuO1xuICBzdGFydENsaXBwaW5nQW5nbGU6IG51bWJlcjtcbiAgb3BlbmluZ0NsaXBwaW5nQW5nbGU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge1xuICAgIGNvbnN0IHN0YXRlTWFuYWdlciA9IHRoaXMuZXZlbnREaXNwbGF5LmdldFN0YXRlTWFuYWdlcigpO1xuICAgIHN0YXRlTWFuYWdlci5jbGlwcGluZ0VuYWJsZWQub25VcGRhdGUoXG4gICAgICAoY2xpcHBpbmdWYWx1ZSkgPT4gKHRoaXMuY2xpcHBpbmdFbmFibGVkID0gY2xpcHBpbmdWYWx1ZSksXG4gICAgKTtcbiAgICBzdGF0ZU1hbmFnZXIuc3RhcnRDbGlwcGluZ0FuZ2xlLm9uVXBkYXRlKFxuICAgICAgKHZhbHVlKSA9PiAodGhpcy5zdGFydENsaXBwaW5nQW5nbGUgPSB2YWx1ZSksXG4gICAgKTtcbiAgICBzdGF0ZU1hbmFnZXIub3BlbmluZ0NsaXBwaW5nQW5nbGUub25VcGRhdGUoXG4gICAgICAodmFsdWUpID0+ICh0aGlzLm9wZW5pbmdDbGlwcGluZ0FuZ2xlID0gdmFsdWUpLFxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VTdGFydENsaXBwaW5nQW5nbGUoc3RhcnRpbmdBbmdsZTogbnVtYmVyKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0VUlNYW5hZ2VyKCkucm90YXRlU3RhcnRBbmdsZUNsaXBwaW5nKHN0YXJ0aW5nQW5nbGUpO1xuICB9XG5cbiAgY2hhbmdlT3BlbmluZ0NsaXBwaW5nQW5nbGUob3BlbmluZ0FuZ2xlOiBudW1iZXIpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5nZXRVSU1hbmFnZXIoKS5yb3RhdGVPcGVuaW5nQW5nbGVDbGlwcGluZyhvcGVuaW5nQW5nbGUpO1xuICB9XG5cbiAgdG9nZ2xlQ2xpcHBpbmcoY2hhbmdlOiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlLmNoZWNrZWQ7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0VUlNYW5hZ2VyKCkuc2V0Q2xpcHBpbmcodmFsdWUpO1xuICAgIHRoaXMuY2xpcHBpbmdFbmFibGVkID0gdmFsdWU7XG4gIH1cbn1cbiIsIjxtYXQtbWVudSBjbGFzcz1cIm1hdC1tZW51XCIgI21lbnU+XG4gIDxidXR0b25cbiAgICBtYXQtbWVudS1pdGVtXG4gICAgKGNsaWNrKT1cIlxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgY2xpcHBpbmdDaGVja2JveC5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxuICAgIFwiXG4gID5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICAjY2xpcHBpbmdDaGVja2JveFxuICAgICAgW2NoZWNrZWRdPVwiY2xpcHBpbmdFbmFibGVkXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDbGlwcGluZygkZXZlbnQpXCJcbiAgICA+XG4gICAgICBDbGlwcGluZ1xuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2xpZGVyLWJ0blwiXG4gICAgbWF0LW1lbnUtaXRlbVxuICAgIChmb2N1cyk9XCJzdGFydGluZ0FuZ2xlU2xpZGVyLmZvY3VzKClcIlxuICA+XG4gICAgPG1hdC1zbGlkZXIgbWluPVwiMFwiIG1heD1cIjM2MFwiIHN0ZXA9XCIxXCIgdGh1bWJMYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc3RhcnRpbmdBbmdsZVNsaWRlclxuICAgICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgICBbdmFsdWVdPVwic3RhcnRDbGlwcGluZ0FuZ2xlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImNoYW5nZVN0YXJ0Q2xpcHBpbmdBbmdsZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtc2xpZGVyPlxuICAgIFN0YXJ0IEFuZ2xlXG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwic2xpZGVyLWJ0blwiIG1hdC1tZW51LWl0ZW0gKGZvY3VzKT1cIm9wZW5pbmdBbmdsZVNsaWRlci5mb2N1cygpXCI+XG4gICAgPG1hdC1zbGlkZXIgbWluPVwiMFwiIG1heD1cIjM2MFwiIHN0ZXA9XCIxXCIgdGh1bWJMYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjb3BlbmluZ0FuZ2xlU2xpZGVyXG4gICAgICAgIG1hdFNsaWRlclRodW1iXG4gICAgICAgIFt2YWx1ZV09XCJvcGVuaW5nQ2xpcHBpbmdBbmdsZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VPcGVuaW5nQ2xpcHBpbmdBbmdsZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtc2xpZGVyPlxuICAgIE9wZW5pbmcgQW5nbGVcbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48YXBwLW1lbnUtdG9nZ2xlXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgdG9vbHRpcD1cIkdlb21ldHJ5IGNsaXBwaW5nXCJcbiAgaWNvbj1cImNsaXBwaW5nXCJcbiAgW2FjdGl2ZV09XCJjbGlwcGluZ0VuYWJsZWRcIlxuPlxuPC9hcHAtbWVudS10b2dnbGU+XG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
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 "../../overlay/overlay.component";
|
|
6
|
+
import * as i4 from "../../../../services/extras/attribute.pipe";
|
|
7
|
+
function ObjectSelectionOverlayComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "strong");
|
|
9
|
+
i0.ɵɵtext(2);
|
|
10
|
+
i0.ɵɵelementEnd();
|
|
11
|
+
i0.ɵɵtext(3);
|
|
12
|
+
i0.ɵɵpipe(4, "attributePipe");
|
|
13
|
+
i0.ɵɵelementEnd();
|
|
14
|
+
} if (rf & 2) {
|
|
15
|
+
const attribute_r1 = ctx.$implicit;
|
|
16
|
+
i0.ɵɵadvance(2);
|
|
17
|
+
i0.ɵɵtextInterpolate(attribute_r1.attributeName);
|
|
18
|
+
i0.ɵɵadvance();
|
|
19
|
+
i0.ɵɵtextInterpolate1(" : ", i0.ɵɵpipeBind1(4, 2, attribute_r1.attributeValue), " ");
|
|
20
|
+
} }
|
|
21
|
+
function ObjectSelectionOverlayComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
23
|
+
i0.ɵɵtemplate(1, ObjectSelectionOverlayComponent_div_1_div_1_Template, 5, 4, "div", 3);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
27
|
+
i0.ɵɵadvance();
|
|
28
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.selectedObject.attributes);
|
|
29
|
+
} }
|
|
30
|
+
export class ObjectSelectionOverlayComponent {
|
|
31
|
+
eventDisplay;
|
|
32
|
+
// Attributes for displaying the information of selected objects
|
|
33
|
+
hiddenSelectedInfo;
|
|
34
|
+
selectedObject = { name: 'Object', attributes: [] };
|
|
35
|
+
constructor(eventDisplay) {
|
|
36
|
+
this.eventDisplay = eventDisplay;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.eventDisplay.allowSelection(this.selectedObject);
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = function ObjectSelectionOverlayComponent_Factory(t) { return new (t || ObjectSelectionOverlayComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
|
|
42
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ObjectSelectionOverlayComponent, selectors: [["app-object-selection-overlay"]], inputs: { hiddenSelectedInfo: "hiddenSelectedInfo" }, decls: 2, vars: 3, consts: [["icon", "cursor", 3, "overlayTitle", "active"], ["id", "selectedObjectPanelBody", "class", "m-1", 4, "ngIf"], ["id", "selectedObjectPanelBody", 1, "m-1"], ["class", "attributeField", 4, "ngFor", "ngForOf"], [1, "attributeField"]], template: function ObjectSelectionOverlayComponent_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
i0.ɵɵelementStart(0, "app-overlay", 0);
|
|
44
|
+
i0.ɵɵtemplate(1, ObjectSelectionOverlayComponent_div_1_Template, 2, 1, "div", 1);
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
i0.ɵɵproperty("overlayTitle", ctx.selectedObject.name)("active", !ctx.hiddenSelectedInfo);
|
|
48
|
+
i0.ɵɵadvance();
|
|
49
|
+
i0.ɵɵproperty("ngIf", ctx.selectedObject.attributes.length > 0);
|
|
50
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.OverlayComponent, i4.AttributePipe], styles: ["#selectedObjectPanelBody[_ngcontent-%COMP%]{padding:0 .8em;overflow:auto;max-width:300px;max-height:16rem;min-width:7rem}"] });
|
|
51
|
+
}
|
|
52
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ObjectSelectionOverlayComponent, [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'app-object-selection-overlay', template: "<app-overlay\n icon=\"cursor\"\n [overlayTitle]=\"selectedObject.name\"\n [active]=\"!hiddenSelectedInfo\"\n>\n <div\n id=\"selectedObjectPanelBody\"\n class=\"m-1\"\n *ngIf=\"selectedObject.attributes.length > 0\"\n >\n <div\n *ngFor=\"let attribute of selectedObject.attributes\"\n class=\"attributeField\"\n >\n <strong>{{ attribute.attributeName }}</strong>\n : {{ attribute.attributeValue | attributePipe }}\n </div>\n </div>\n</app-overlay>\n", styles: ["#selectedObjectPanelBody{padding:0 .8em;overflow:auto;max-width:300px;max-height:16rem;min-width:7rem}\n"] }]
|
|
55
|
+
}], () => [{ type: i1.EventDisplayService }], { hiddenSelectedInfo: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}] }); })();
|
|
58
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ObjectSelectionOverlayComponent, { className: "ObjectSelectionOverlayComponent", filePath: "components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.ts", lineNumber: 9 }); })();
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNlbGVjdGlvbi1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvb2JqZWN0LXNlbGVjdGlvbi9vYmplY3Qtc2VsZWN0aW9uLW92ZXJsYXkvb2JqZWN0LXNlbGVjdGlvbi1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvb2JqZWN0LXNlbGVjdGlvbi9vYmplY3Qtc2VsZWN0aW9uLW92ZXJsYXkvb2JqZWN0LXNlbGVjdGlvbi1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0lDY25ELEFBSkYsOEJBR0MsYUFDUztJQUFBLFlBQTZCO0lBQUEsaUJBQVM7SUFDOUMsWUFDRjs7SUFBQSxpQkFBTTs7O0lBRkksZUFBNkI7SUFBN0IsZ0RBQTZCO0lBQ3JDLGNBQ0Y7SUFERSxvRkFDRjs7O0lBWEYsOEJBSUM7SUFDQyxzRkFHQztJQUlILGlCQUFNOzs7SUFOb0IsY0FBNEI7SUFBNUIsMERBQTRCOztBREh4RCxNQUFNLE9BQU8sK0JBQStCO0lBS3RCO0lBSnBCLGdFQUFnRTtJQUN2RCxrQkFBa0IsQ0FBVTtJQUNyQyxjQUFjLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUVwRCxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7SUFBRyxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQzt5RkFUVSwrQkFBK0I7NkRBQS9CLCtCQUErQjtZQ1I1QyxzQ0FJQztZQUNDLGdGQUlDO1lBU0gsaUJBQWM7O1lBZlosQUFEQSxzREFBb0MsbUNBQ047WUFLM0IsY0FBMEM7WUFBMUMsK0RBQTBDOzs7aUZEQWxDLCtCQUErQjtjQUwzQyxTQUFTOzJCQUNFLDhCQUE4QjtvREFNL0Isa0JBQWtCO2tCQUExQixLQUFLOztrRkFGSywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb2JqZWN0LXNlbGVjdGlvbi1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zZWxlY3Rpb24tb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1zZWxlY3Rpb24tb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTZWxlY3Rpb25PdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gQXR0cmlidXRlcyBmb3IgZGlzcGxheWluZyB0aGUgaW5mb3JtYXRpb24gb2Ygc2VsZWN0ZWQgb2JqZWN0c1xuICBASW5wdXQoKSBoaWRkZW5TZWxlY3RlZEluZm86IGJvb2xlYW47XG4gIHNlbGVjdGVkT2JqZWN0ID0geyBuYW1lOiAnT2JqZWN0JywgYXR0cmlidXRlczogW10gfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5hbGxvd1NlbGVjdGlvbih0aGlzLnNlbGVjdGVkT2JqZWN0KTtcbiAgfVxufVxuIiwiPGFwcC1vdmVybGF5XG4gIGljb249XCJjdXJzb3JcIlxuICBbb3ZlcmxheVRpdGxlXT1cInNlbGVjdGVkT2JqZWN0Lm5hbWVcIlxuICBbYWN0aXZlXT1cIiFoaWRkZW5TZWxlY3RlZEluZm9cIlxuPlxuICA8ZGl2XG4gICAgaWQ9XCJzZWxlY3RlZE9iamVjdFBhbmVsQm9keVwiXG4gICAgY2xhc3M9XCJtLTFcIlxuICAgICpuZ0lmPVwic2VsZWN0ZWRPYmplY3QuYXR0cmlidXRlcy5sZW5ndGggPiAwXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGUgb2Ygc2VsZWN0ZWRPYmplY3QuYXR0cmlidXRlc1wiXG4gICAgICBjbGFzcz1cImF0dHJpYnV0ZUZpZWxkXCJcbiAgICA+XG4gICAgICA8c3Ryb25nPnt7IGF0dHJpYnV0ZS5hdHRyaWJ1dGVOYW1lIH19PC9zdHJvbmc+XG4gICAgICA6IHt7IGF0dHJpYnV0ZS5hdHRyaWJ1dGVWYWx1ZSB8IGF0dHJpYnV0ZVBpcGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2FwcC1vdmVybGF5PlxuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
+
import { ObjectSelectionOverlayComponent } from './object-selection-overlay/object-selection-overlay.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
+
import * as i2 from "../../../services/event-display.service";
|
|
7
|
+
import * as i3 from "../menu-toggle/menu-toggle.component";
|
|
8
|
+
export class ObjectSelectionComponent {
|
|
9
|
+
overlay;
|
|
10
|
+
eventDisplay;
|
|
11
|
+
// Attributes for displaying the information of selected objects
|
|
12
|
+
hiddenSelectedInfo = true;
|
|
13
|
+
overlayWindow;
|
|
14
|
+
constructor(overlay, eventDisplay) {
|
|
15
|
+
this.overlay = overlay;
|
|
16
|
+
this.eventDisplay = eventDisplay;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
const overlayRef = this.overlay.create();
|
|
20
|
+
const overlayPortal = new ComponentPortal(ObjectSelectionOverlayComponent);
|
|
21
|
+
this.overlayWindow = overlayRef.attach(overlayPortal);
|
|
22
|
+
this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.overlayWindow.destroy();
|
|
26
|
+
}
|
|
27
|
+
toggleOverlay() {
|
|
28
|
+
this.hiddenSelectedInfo = !this.hiddenSelectedInfo;
|
|
29
|
+
this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;
|
|
30
|
+
this.eventDisplay.enableSelecting(!this.hiddenSelectedInfo);
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = function ObjectSelectionComponent_Factory(t) { return new (t || ObjectSelectionComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i2.EventDisplayService)); };
|
|
33
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ObjectSelectionComponent, selectors: [["app-object-selection"]], decls: 1, vars: 1, consts: [["tooltip", "Object selection", "icon", "cursor", 3, "click", "active"]], template: function ObjectSelectionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
+
i0.ɵɵelementStart(0, "app-menu-toggle", 0);
|
|
35
|
+
i0.ɵɵlistener("click", function ObjectSelectionComponent_Template_app_menu_toggle_click_0_listener() { return ctx.toggleOverlay(); });
|
|
36
|
+
i0.ɵɵelementEnd();
|
|
37
|
+
} if (rf & 2) {
|
|
38
|
+
i0.ɵɵproperty("active", !ctx.hiddenSelectedInfo);
|
|
39
|
+
} }, dependencies: [i3.MenuToggleComponent] });
|
|
40
|
+
}
|
|
41
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ObjectSelectionComponent, [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'app-object-selection', template: "<app-menu-toggle\n tooltip=\"Object selection\"\n icon=\"cursor\"\n [active]=\"!hiddenSelectedInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n" }]
|
|
44
|
+
}], () => [{ type: i1.Overlay }, { type: i2.EventDisplayService }], null); })();
|
|
45
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ObjectSelectionComponent, { className: "ObjectSelectionComponent", filePath: "components/ui-menu/object-selection/object-selection.component.ts", lineNumber: 12 }); })();
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L29iamVjdC1zZWxlY3Rpb24vb2JqZWN0LXNlbGVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L29iamVjdC1zZWxlY3Rpb24vb2JqZWN0LXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7Ozs7O0FBUWhILE1BQU0sT0FBTyx3QkFBd0I7SUFNekI7SUFDQTtJQU5WLGdFQUFnRTtJQUNoRSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsYUFBYSxDQUFnRDtJQUU3RCxZQUNVLE9BQWdCLEVBQ2hCLFlBQWlDO1FBRGpDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ3hDLENBQUM7SUFFSixRQUFRO1FBQ04sTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlELENBQUM7a0ZBekJVLHdCQUF3Qjs2REFBeEIsd0JBQXdCO1lDWHJDLDBDQUtDO1lBREMsOEdBQVMsbUJBQWUsSUFBQztZQUUzQixpQkFBa0I7O1lBSGhCLGdEQUE4Qjs7O2lGRFFuQix3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDRSxzQkFBc0I7O2tGQUlyQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ29tcG9uZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE9iamVjdFNlbGVjdGlvbk92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL29iamVjdC1zZWxlY3Rpb24tb3ZlcmxheS9vYmplY3Qtc2VsZWN0aW9uLW92ZXJsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb2JqZWN0LXNlbGVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIEF0dHJpYnV0ZXMgZm9yIGRpc3BsYXlpbmcgdGhlIGluZm9ybWF0aW9uIG9mIHNlbGVjdGVkIG9iamVjdHNcbiAgaGlkZGVuU2VsZWN0ZWRJbmZvID0gdHJ1ZTtcbiAgb3ZlcmxheVdpbmRvdzogQ29tcG9uZW50UmVmPE9iamVjdFNlbGVjdGlvbk92ZXJsYXlDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKCk7XG4gICAgY29uc3Qgb3ZlcmxheVBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoT2JqZWN0U2VsZWN0aW9uT3ZlcmxheUNvbXBvbmVudCk7XG4gICAgdGhpcy5vdmVybGF5V2luZG93ID0gb3ZlcmxheVJlZi5hdHRhY2gob3ZlcmxheVBvcnRhbCk7XG4gICAgdGhpcy5vdmVybGF5V2luZG93Lmluc3RhbmNlLmhpZGRlblNlbGVjdGVkSW5mbyA9IHRoaXMuaGlkZGVuU2VsZWN0ZWRJbmZvO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5V2luZG93LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHRvZ2dsZU92ZXJsYXkoKSB7XG4gICAgdGhpcy5oaWRkZW5TZWxlY3RlZEluZm8gPSAhdGhpcy5oaWRkZW5TZWxlY3RlZEluZm87XG4gICAgdGhpcy5vdmVybGF5V2luZG93Lmluc3RhbmNlLmhpZGRlblNlbGVjdGVkSW5mbyA9IHRoaXMuaGlkZGVuU2VsZWN0ZWRJbmZvO1xuICAgIHRoaXMuZXZlbnREaXNwbGF5LmVuYWJsZVNlbGVjdGluZyghdGhpcy5oaWRkZW5TZWxlY3RlZEluZm8pO1xuICB9XG59XG4iLCI8YXBwLW1lbnUtdG9nZ2xlXG4gIHRvb2x0aXA9XCJPYmplY3Qgc2VsZWN0aW9uXCJcbiAgaWNvbj1cImN1cnNvclwiXG4gIFthY3RpdmVdPVwiIWhpZGRlblNlbGVjdGVkSW5mb1wiXG4gIChjbGljayk9XCJ0b2dnbGVPdmVybGF5KClcIlxuPlxuPC9hcHAtbWVudS10b2dnbGU+XG4iXX0=
|