Compare commits
	
		
			6 Commits
		
	
	
		
			imp-expo
			...
			remove-man
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0b93d5b286 | ||
| 
						 | 
					f0884bbce0 | ||
| 
						 | 
					22e7d9c9d6 | ||
| 
						 | 
					fba36ac762 | ||
| 
						 | 
					43a6786b72 | ||
| 
						 | 
					bcb500394b | 
@@ -40,6 +40,12 @@ export default {
 | 
			
		||||
            default() {
 | 
			
		||||
                return {};
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        objectPath: {
 | 
			
		||||
            type: Array,
 | 
			
		||||
            default() {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
@@ -97,17 +103,23 @@ export default {
 | 
			
		||||
            this.showMenu = false;
 | 
			
		||||
        },
 | 
			
		||||
        snapshot(notebook) {
 | 
			
		||||
            let element = document.getElementsByClassName("l-shell__main-container")[0];
 | 
			
		||||
            const bounds = this.openmct.time.bounds();
 | 
			
		||||
            const objectPath = this.openmct.router.path;
 | 
			
		||||
            const snapshotMeta = {
 | 
			
		||||
                bounds,
 | 
			
		||||
                link: window.location.href,
 | 
			
		||||
                objectPath,
 | 
			
		||||
                openmct: this.openmct
 | 
			
		||||
            };
 | 
			
		||||
            this.hideMenu();
 | 
			
		||||
 | 
			
		||||
            this.notebookSnapshot.capture(snapshotMeta, notebook.type, element);
 | 
			
		||||
            this.$nextTick(() => {
 | 
			
		||||
                const element = document.querySelector('.c-overlay__contents')
 | 
			
		||||
                    || document.getElementsByClassName('l-shell__main-container')[0];
 | 
			
		||||
 | 
			
		||||
                const bounds = this.openmct.time.bounds();
 | 
			
		||||
                const objectPath = this.objectPath || this.openmct.router.path;
 | 
			
		||||
                const snapshotMeta = {
 | 
			
		||||
                    bounds,
 | 
			
		||||
                    link: window.location.href,
 | 
			
		||||
                    objectPath,
 | 
			
		||||
                    openmct: this.openmct
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
                this.notebookSnapshot.capture(snapshotMeta, notebook.type, element);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
-->
 | 
			
		||||
<div ng-controller="StackedPlotController as stackedPlot"
 | 
			
		||||
      class="c-plot c-plot--stacked holder holder-plot has-control-bar">
 | 
			
		||||
    <div class="l-control-bar" ng-show="!stackedPlot.hideExportButtons">
 | 
			
		||||
    <div class="c-control-bar" ng-show="!stackedPlot.hideExportButtons">
 | 
			
		||||
       <span class="c-button-set c-button-set--strip-h">
 | 
			
		||||
          <button class="c-button icon-download"
 | 
			
		||||
             ng-click="stackedPlot.exportPNG()"
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,8 @@ define(
 | 
			
		||||
                        clonedElement.classList.add(className);
 | 
			
		||||
                    }
 | 
			
		||||
                    element.id = oldId;
 | 
			
		||||
                }
 | 
			
		||||
                },
 | 
			
		||||
                removeContainer: true // Set to false to debug what html2canvas renders
 | 
			
		||||
            }).then(function (canvas) {
 | 
			
		||||
                dialog.dismiss();
 | 
			
		||||
                return new Promise(function (resolve, reject) {
 | 
			
		||||
 
 | 
			
		||||
@@ -228,7 +228,6 @@ define([
 | 
			
		||||
 | 
			
		||||
    PlotController.prototype.stopLoading = function () {
 | 
			
		||||
        this.$scope.pending -= 1;
 | 
			
		||||
        this.$scope.$digest();
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -165,7 +165,16 @@
 | 
			
		||||
/******************************* LEGACY */
 | 
			
		||||
.s-status-taking-snapshot,
 | 
			
		||||
.overlay.snapshot {
 | 
			
		||||
    // Handle overflow-y issues with tables and html2canvas
 | 
			
		||||
    // Replaces .l-sticky-headers .l-tabular-body { overflow: auto; }
 | 
			
		||||
    .c-table__body-w { overflow: auto; }
 | 
			
		||||
    .c-table {
 | 
			
		||||
        &__body-w {
 | 
			
		||||
            overflow: auto; // Handle overflow-y issues with tables and html2canvas
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &-control-bar {
 | 
			
		||||
            display: none;
 | 
			
		||||
            + * {
 | 
			
		||||
                margin-top: 0 !important;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -565,6 +565,20 @@ select {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
/******************************************************** CONTROL BARS */
 | 
			
		||||
.c-control-bar {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    > * + * {
 | 
			
		||||
        margin-left: $interiorMarginSm;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &__label {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/******************************************************** PALETTES */
 | 
			
		||||
.c-palette {
 | 
			
		||||
 
 | 
			
		||||
@@ -40,28 +40,58 @@ mct-plot {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.c-plot,
 | 
			
		||||
.gl-plot {
 | 
			
		||||
    .s-status-taking-snapshot & {
 | 
			
		||||
        .c-control-bar {
 | 
			
		||||
            display: none;
 | 
			
		||||
        }
 | 
			
		||||
        .gl-plot-y-label__select {
 | 
			
		||||
            display: none;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.c-plot {
 | 
			
		||||
    $p: $mainViewPad;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: $p; right: $p; bottom: $p; left: $p;
 | 
			
		||||
    //$p: $mainViewPad;
 | 
			
		||||
    @include abs($mainViewPad);
 | 
			
		||||
    //position: absolute;
 | 
			
		||||
    //top: $p; right: $p; bottom: $p; left: $p;
 | 
			
		||||
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
 | 
			
		||||
    > * + * {
 | 
			
		||||
        margin-top: $interiorMargin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .l-control-bar {
 | 
			
		||||
        flex: 0 0 auto;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .l-view-section {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex: 1 1 auto;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &--stacked {
 | 
			
		||||
        .l-view-section {
 | 
			
		||||
            //  Make this a flex container
 | 
			
		||||
            display: flex;
 | 
			
		||||
            flex-flow: column nowrap;
 | 
			
		||||
            .gl-plot.child-frame {
 | 
			
		||||
                mct-plot {
 | 
			
		||||
                    display: flex;
 | 
			
		||||
                    flex: 1 1 auto;
 | 
			
		||||
                    height: 100%;
 | 
			
		||||
                    position: relative;
 | 
			
		||||
                }
 | 
			
		||||
                flex: 1 1 auto;
 | 
			
		||||
                &:not(:first-child) {
 | 
			
		||||
                    margin-top: $interiorMargin;
 | 
			
		||||
        .child-frame {
 | 
			
		||||
            .has-control-bar {
 | 
			
		||||
                .c-control-bar {
 | 
			
		||||
                    // Hides buttons per plot element in a stacked plot
 | 
			
		||||
                    display: none;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            mct-plot {
 | 
			
		||||
                display: flex;
 | 
			
		||||
                flex: 1 1 auto;
 | 
			
		||||
                height: 100%;
 | 
			
		||||
                position: relative;
 | 
			
		||||
            }
 | 
			
		||||
            flex: 1 1 auto;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .s-status-timeconductor-unsynced .holder-plot {
 | 
			
		||||
@@ -70,7 +100,6 @@ mct-plot {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -186,7 +215,7 @@ mct-plot {
 | 
			
		||||
            left: 0; top: 0; right: auto; bottom: 0;
 | 
			
		||||
            padding-left: 5px;
 | 
			
		||||
            text-orientation: mixed;
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            //overflow: hidden;
 | 
			
		||||
            writing-mode: vertical-lr;
 | 
			
		||||
            &:before {
 | 
			
		||||
                // Icon denoting configurability
 | 
			
		||||
@@ -339,11 +368,11 @@ mct-plot {
 | 
			
		||||
    z-index: -10;
 | 
			
		||||
 | 
			
		||||
    .l-view-section {
 | 
			
		||||
        $m: $interiorMargin;
 | 
			
		||||
        top: $m !important;
 | 
			
		||||
        right: $m;
 | 
			
		||||
        bottom: $m;
 | 
			
		||||
        left: $m;
 | 
			
		||||
        //$m: $interiorMargin;
 | 
			
		||||
        //top: $m !important;
 | 
			
		||||
        //right: $m;
 | 
			
		||||
        //bottom: $m;
 | 
			
		||||
        //left: $m;
 | 
			
		||||
 | 
			
		||||
        .s-status-timeconductor-unsynced .holder-plot {
 | 
			
		||||
            .t-object-alert.t-alert-unsynced {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,53 +19,6 @@
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
/******************************************************************* VIEWS */
 | 
			
		||||
// From _views.scss
 | 
			
		||||
// Legacy overlay and stacked plots depend on this for now
 | 
			
		||||
// Styles for sub-dividing views generically
 | 
			
		||||
.l-control-bar {
 | 
			
		||||
    // Element that can be placed above l-view-section, holds controls, buttons, etc.
 | 
			
		||||
    height: $controlBarH;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.c-control-bar {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    > * + * {
 | 
			
		||||
        margin-left: $interiorMarginSm;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &__label {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.l-view-section {
 | 
			
		||||
    @include abs();
 | 
			
		||||
    overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.has-control-bar {
 | 
			
		||||
    .l-view-section {
 | 
			
		||||
        top: $controlBarH + $interiorMargin;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.child-frame {
 | 
			
		||||
    .has-control-bar {
 | 
			
		||||
        .l-control-bar,
 | 
			
		||||
        .c-control-bar {
 | 
			
		||||
            // Hides buttons per plot element in a stacked plot
 | 
			
		||||
            display: none;
 | 
			
		||||
        }
 | 
			
		||||
        .l-view-section {
 | 
			
		||||
            top: 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*********************************************************************** CLOCKS AND TIMERS */
 | 
			
		||||
.c-clock,
 | 
			
		||||
.c-timer {
 | 
			
		||||
 
 | 
			
		||||
@@ -388,7 +388,21 @@
 | 
			
		||||
.s-status-taking-snapshot,
 | 
			
		||||
.overlay.snapshot {
 | 
			
		||||
    // Handle overflow-y issues with tables and html2canvas
 | 
			
		||||
    background: $colorBodyBg; // Prevent html2canvas from using white background
 | 
			
		||||
    color: $colorBodyFg;
 | 
			
		||||
    padding: $interiorMarginSm !important; // Prevents items from going right to the edge of the image
 | 
			
		||||
 | 
			
		||||
    .l-sticky-headers .l-tabular-body { overflow: auto; }
 | 
			
		||||
    .l-browse-bar {
 | 
			
		||||
        display: none; // Suppress browse-bar when snapshotting from view-large overlay
 | 
			
		||||
        + * {
 | 
			
		||||
            margin-top: 0 !important; // Remove margin from any following elements
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    * {
 | 
			
		||||
        box-shadow: none !important; // Prevent html2canvas problems with box-shadow
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.c-notebook-snapshot {
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,8 @@
 | 
			
		||||
<script>
 | 
			
		||||
import ObjectView from './ObjectView.vue'
 | 
			
		||||
import ContextMenuDropDown from './contextMenuDropDown.vue';
 | 
			
		||||
import PreviewHeader from '@/ui/preview/preview-header.vue';
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
 | 
			
		||||
const SIMPLE_CONTENT_TYPES = [
 | 
			
		||||
    'clock',
 | 
			
		||||
@@ -116,13 +118,41 @@ export default {
 | 
			
		||||
                childElement = parentElement.children[0];
 | 
			
		||||
 | 
			
		||||
            this.openmct.overlays.overlay({
 | 
			
		||||
                element: childElement,
 | 
			
		||||
                element: this.getOverlayElement(childElement),
 | 
			
		||||
                size: 'large',
 | 
			
		||||
                onDestroy() {
 | 
			
		||||
                    parentElement.append(childElement);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        },
 | 
			
		||||
        getOverlayElement(childElement) {
 | 
			
		||||
            const fragment = new DocumentFragment();
 | 
			
		||||
            const header = this.getPreviewHeader();
 | 
			
		||||
            fragment.append(header);
 | 
			
		||||
            fragment.append(childElement);
 | 
			
		||||
 | 
			
		||||
            return fragment;
 | 
			
		||||
        },
 | 
			
		||||
        getPreviewHeader() {
 | 
			
		||||
            const domainObject = this.objectPath[0];
 | 
			
		||||
            const preview = new Vue({
 | 
			
		||||
                components: {
 | 
			
		||||
                    PreviewHeader
 | 
			
		||||
                },
 | 
			
		||||
                provide: {
 | 
			
		||||
                    openmct: this.openmct,
 | 
			
		||||
                    objectPath: this.objectPath
 | 
			
		||||
                },
 | 
			
		||||
                data() {
 | 
			
		||||
                    return {
 | 
			
		||||
                        domainObject
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                template: '<PreviewHeader :domainObject="domainObject" :hideViewSwitcher="true" :showNotebookMenuSwitcher="true"></PreviewHeader>'
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            return preview.$mount().$el;
 | 
			
		||||
        },
 | 
			
		||||
        getSelectionContext() {
 | 
			
		||||
            return this.$refs.objectView.getSelectionContext();
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -23,9 +23,12 @@
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &:not(.c-so-view--no-frame) {
 | 
			
		||||
        background: $colorBodyBg;
 | 
			
		||||
        border: $browseFrameBorder;
 | 
			
		||||
        padding: $interiorMargin;
 | 
			
		||||
 | 
			
		||||
        .is-editing & {
 | 
			
		||||
            background: rgba($colorBodyBg, 0.8);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &--no-frame {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,7 @@
 | 
			
		||||
        <!-- Action buttons -->
 | 
			
		||||
        <NotebookMenuSwitcher v-if="notebookEnabled"
 | 
			
		||||
                              :domain-object="domainObject"
 | 
			
		||||
                              :object-path="openmct.router.path"
 | 
			
		||||
                              class="c-notebook-snapshot-menubutton"
 | 
			
		||||
        />
 | 
			
		||||
        <div class="l-browse-bar__actions">
 | 
			
		||||
 
 | 
			
		||||
@@ -21,28 +21,12 @@
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
<template>
 | 
			
		||||
<div class="l-preview-window">
 | 
			
		||||
    <div class="l-browse-bar">
 | 
			
		||||
        <div class="l-browse-bar__start">
 | 
			
		||||
            <div
 | 
			
		||||
                class="l-browse-bar__object-name--w"
 | 
			
		||||
                :class="type.cssClass"
 | 
			
		||||
            >
 | 
			
		||||
                <span class="l-browse-bar__object-name">
 | 
			
		||||
                    {{ domainObject.name }}
 | 
			
		||||
                </span>
 | 
			
		||||
                <context-menu-drop-down :object-path="objectPath" />
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="l-browse-bar__end">
 | 
			
		||||
            <div class="l-browse-bar__actions">
 | 
			
		||||
                <view-switcher
 | 
			
		||||
                    :views="views"
 | 
			
		||||
                    :current-view="currentView"
 | 
			
		||||
                    @setView="setView"
 | 
			
		||||
                />
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <PreviewHeader
 | 
			
		||||
        :current-view="currentView"
 | 
			
		||||
        :domain-object="domainObject"
 | 
			
		||||
        :views="views"
 | 
			
		||||
        @setView="setView"
 | 
			
		||||
    />
 | 
			
		||||
    <div class="l-preview-window__object-view">
 | 
			
		||||
        <div ref="objectView"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -50,26 +34,29 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import ContextMenuDropDown from '../../ui/components/contextMenuDropDown.vue';
 | 
			
		||||
import ViewSwitcher from '../../ui/layout/ViewSwitcher.vue';
 | 
			
		||||
import PreviewHeader from './preview-header.vue';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    components: {
 | 
			
		||||
        ContextMenuDropDown,
 | 
			
		||||
        ViewSwitcher
 | 
			
		||||
        PreviewHeader
 | 
			
		||||
    },
 | 
			
		||||
    inject: [
 | 
			
		||||
        'openmct',
 | 
			
		||||
        'objectPath'
 | 
			
		||||
    ],
 | 
			
		||||
    props: {
 | 
			
		||||
        notebookEnabled: {
 | 
			
		||||
            type: Boolean,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
        let domainObject = this.objectPath[0];
 | 
			
		||||
        let type = this.openmct.types.get(domainObject.type);
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            domainObject: domainObject,
 | 
			
		||||
            type: type,
 | 
			
		||||
            notebookEnabled: false,
 | 
			
		||||
            viewKey: undefined
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
@@ -97,6 +84,7 @@ export default {
 | 
			
		||||
                this.view.destroy();
 | 
			
		||||
                this.$refs.objectView.innerHTML = '';
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            delete this.view;
 | 
			
		||||
            delete this.viewContainer;
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										91
									
								
								src/ui/preview/preview-header.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								src/ui/preview/preview-header.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="l-browse-bar">
 | 
			
		||||
    <div class="l-browse-bar__start">
 | 
			
		||||
        <div
 | 
			
		||||
            class="l-browse-bar__object-name--w"
 | 
			
		||||
            :class="type.cssClass"
 | 
			
		||||
        >
 | 
			
		||||
            <span class="l-browse-bar__object-name">
 | 
			
		||||
                {{ domainObject.name }}
 | 
			
		||||
            </span>
 | 
			
		||||
            <context-menu-drop-down :object-path="objectPath" />
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="l-browse-bar__end">
 | 
			
		||||
        <div class="l-browse-bar__actions">
 | 
			
		||||
            <view-switcher
 | 
			
		||||
                :v-if="!hideViewSwitcher"
 | 
			
		||||
                :views="views"
 | 
			
		||||
                :current-view="currentView"
 | 
			
		||||
                @setView="setView"
 | 
			
		||||
            />
 | 
			
		||||
            <NotebookMenuSwitcher v-if="showNotebookMenuSwitcher"
 | 
			
		||||
                                  :domain-object="domainObject"
 | 
			
		||||
                                  :object-path="objectPath"
 | 
			
		||||
                                  class="c-notebook-snapshot-menubutton"
 | 
			
		||||
            />
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import ContextMenuDropDown from '../../ui/components/contextMenuDropDown.vue';
 | 
			
		||||
import NotebookMenuSwitcher from '@/plugins/notebook/components/notebook-menu-switcher.vue';
 | 
			
		||||
import ViewSwitcher from '../../ui/layout/ViewSwitcher.vue';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    inject: [
 | 
			
		||||
        'openmct',
 | 
			
		||||
        'objectPath'
 | 
			
		||||
    ],
 | 
			
		||||
    components: {
 | 
			
		||||
        ContextMenuDropDown,
 | 
			
		||||
        NotebookMenuSwitcher,
 | 
			
		||||
        ViewSwitcher
 | 
			
		||||
    },
 | 
			
		||||
    props: {
 | 
			
		||||
        currentView: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return {};
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        domainObject: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return {};
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        hideViewSwitcher: {
 | 
			
		||||
            type: Boolean,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        showNotebookMenuSwitcher: {
 | 
			
		||||
            type: Boolean,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        views: {
 | 
			
		||||
            type: Array,
 | 
			
		||||
            default: () => {
 | 
			
		||||
                return [];
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
        return {
 | 
			
		||||
            type: this.openmct.types.get(this.domainObject.type)
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        setView(view) {
 | 
			
		||||
            this.$emit('setView', view);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
		Reference in New Issue
	
	Block a user