gitextract_zhykc3s0/ ├── .cspell.json ├── .eslintrc.cjs ├── .git-blame-ignore-revs ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── enhancement-request.md │ │ └── maintenance-type.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── codeql/ │ │ └── codeql-config.yml │ ├── dependabot.yml │ ├── release.yml │ └── workflows/ │ ├── codeql-analysis.yml │ ├── e2e-couchdb.yml │ ├── e2e-full.yml │ ├── e2e-perf.yml │ ├── npm-prerelease.yml │ ├── pr-platform.yml │ ├── pr.yml │ ├── prcop-config.json │ └── prcop.yml ├── .gitignore ├── .npmignore ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .vscode/ │ └── extensions.json ├── .webpack/ │ ├── webpack.common.mjs │ ├── webpack.coverage.mjs │ ├── webpack.dev.mjs │ └── webpack.prod.mjs ├── API.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── SECURITY.md ├── TESTING.md ├── build-docs.sh ├── codecov.yml ├── copyright-notice.html ├── copyright-notice.js ├── docs/ │ └── src/ │ ├── guide/ │ │ └── security.md │ ├── index.md │ └── process/ │ ├── cycle.md │ ├── index.md │ ├── release.md │ ├── testing/ │ │ └── plan.md │ └── version.md ├── e2e/ │ ├── .eslintrc.cjs │ ├── .npmignore │ ├── .percy.ci.yml │ ├── .percy.nightly.yml │ ├── README.md │ ├── appActions.js │ ├── avpFixtures.js │ ├── baseFixtures.js │ ├── constants.js │ ├── helper/ │ │ ├── addInitDataVisualization.js │ │ ├── addInitDerivedTelemetryPlugin.js │ │ ├── addInitExampleFaultProvider.js │ │ ├── addInitExampleFaultProviderStatic.js │ │ ├── addInitExampleStalenessProvider.js │ │ ├── addInitExampleUser.js │ │ ├── addInitFaultManagementPlugin.js │ │ ├── addInitFileInputObject.js │ │ ├── addInitNotebookWithUrls.js │ │ ├── addInitOperatorStatus.js │ │ ├── addInitRestrictedNotebook.js │ │ ├── addNoneditableObject.js │ │ ├── faultUtils.js │ │ ├── hotkeys/ │ │ │ ├── clipboard.js │ │ │ └── hotkeys.js │ │ ├── imageryUtils.js │ │ ├── notebookUtils.js │ │ ├── planningUtils.js │ │ ├── plotTagsUtils.js │ │ ├── stylingUtils.js │ │ ├── useDarkmatterTheme.js │ │ └── useSnowTheme.js │ ├── index.js │ ├── package.json │ ├── playwright-ci.config.js │ ├── playwright-local.config.js │ ├── playwright-mobile.config.js │ ├── playwright-performance-dev.config.js │ ├── playwright-performance-prod.config.js │ ├── playwright-visual-a11y.config.js │ ├── playwright-watch.config.js │ ├── pluginFixtures.js │ ├── test-data/ │ │ ├── ExampleLayouts.json │ │ ├── PerformanceDisplayLayout.json │ │ ├── PerformanceNotebook.json │ │ ├── blank.html │ │ ├── condition_set_storage.json │ │ ├── display_layout_with_child_layouts.json │ │ ├── display_layout_with_child_overlay_plot.json │ │ ├── examplePlans/ │ │ │ ├── ExamplePlanWithOrderedLanes.json │ │ │ ├── ExamplePlan_Large.json │ │ │ ├── ExamplePlan_Small1.json │ │ │ ├── ExamplePlan_Small2.json │ │ │ └── ExamplePlan_Small3.json │ │ ├── flexible_layout_with_child_layouts.json │ │ ├── memory-leak-detection.json │ │ ├── overlay_plot_storage.json │ │ ├── overlay_plot_with_delay_storage.json │ │ └── recycled_local_storage.json │ └── tests/ │ ├── framework/ │ │ ├── appActions.e2e.spec.js │ │ ├── baseFixtures.e2e.spec.js │ │ ├── exampleTemplate.e2e.spec.js │ │ ├── generateLocalStorageData.e2e.spec.js │ │ └── pluginFixtures.e2e.spec.js │ ├── functional/ │ │ ├── MCT.e2e.spec.js │ │ ├── branding.e2e.spec.js │ │ ├── clearDataAction.e2e.spec.js │ │ ├── couchdb.e2e.spec.js │ │ ├── example/ │ │ │ ├── eventGenerator.e2e.spec.js │ │ │ ├── eventWithAcknowledgeGenerator.e2e.spec.js │ │ │ └── generator/ │ │ │ ├── sineWaveLimitProvider.e2e.spec.js │ │ │ └── sineWaveStalenessProvider.e2e.spec.js │ │ ├── forms.e2e.spec.js │ │ ├── menu.e2e.spec.js │ │ ├── missionStatus.e2e.spec.js │ │ ├── moveAndLinkObjects.e2e.spec.js │ │ ├── notification.e2e.spec.js │ │ ├── planning/ │ │ │ ├── ganttChart.e2e.spec.js │ │ │ ├── plan.e2e.spec.js │ │ │ ├── timelist.e2e.spec.js │ │ │ ├── timelistControlledClock.e2e.spec.js │ │ │ └── timestrip.e2e.spec.js │ │ ├── plugins/ │ │ │ ├── clocks/ │ │ │ │ ├── clock.e2e.spec.js │ │ │ │ └── remoteClock.e2e.spec.js │ │ │ ├── comps/ │ │ │ │ └── comps.e2e.spec.js │ │ │ ├── conditionSet/ │ │ │ │ ├── conditionSet.e2e.spec.js │ │ │ │ └── conditionSetOperations.e2e.spec.js │ │ │ ├── correlationTelemetry/ │ │ │ │ └── correlationTelemetry.e2e.spec.js │ │ │ ├── displayLayout/ │ │ │ │ └── displayLayout.e2e.spec.js │ │ │ ├── event/ │ │ │ │ └── eventTimelineView.e2e.spec.js │ │ │ ├── faultManagement/ │ │ │ │ └── faultManagement.e2e.spec.js │ │ │ ├── flexibleLayout/ │ │ │ │ └── flexibleLayout.e2e.spec.js │ │ │ ├── folders/ │ │ │ │ └── viewPersist.e2e.spec.js │ │ │ ├── gauge/ │ │ │ │ └── gauge.e2e.spec.js │ │ │ ├── imagery/ │ │ │ │ ├── exampleImagery.e2e.spec.js │ │ │ │ ├── exampleImageryControlledClock.e2e.spec.js │ │ │ │ └── exampleImageryFile.e2e.spec.js │ │ │ ├── importAndExportAsJSON/ │ │ │ │ ├── exportAsJson.e2e.spec.js │ │ │ │ └── importAsJson.e2e.spec.js │ │ │ ├── inspectorDataVisualization/ │ │ │ │ └── numericData.e2e.spec.js │ │ │ ├── lad/ │ │ │ │ ├── lad.e2e.spec.js │ │ │ │ ├── ladSet.e2e.spec.js │ │ │ │ └── ladTable.e2e.spec.js │ │ │ ├── notebook/ │ │ │ │ ├── notebook.e2e.spec.js │ │ │ │ ├── notebookSnapshotImage.e2e.spec.js │ │ │ │ ├── notebookSnapshots.e2e.spec.js │ │ │ │ ├── notebookTags.e2e.spec.js │ │ │ │ ├── notebookWithCouchDB.e2e.spec.js │ │ │ │ └── restrictedNotebook.e2e.spec.js │ │ │ ├── operatorStatus/ │ │ │ │ └── operatorStatus.e2e.spec.js │ │ │ ├── performanceIndicator/ │ │ │ │ └── performanceIndicator.e2e.spec.js │ │ │ ├── plot/ │ │ │ │ ├── autoscale.e2e.spec.js │ │ │ │ ├── logPlot.e2e.spec.js │ │ │ │ ├── missingPlotObj.e2e.spec.js │ │ │ │ ├── overlayPlot.e2e.spec.js │ │ │ │ ├── plotControls.e2e.spec.js │ │ │ │ ├── plotControlsCompactMode.e2e.spec.js │ │ │ │ ├── plotRendering.e2e.spec.js │ │ │ │ ├── plotViewActions.e2e.spec.js │ │ │ │ ├── previews.e2e.spec.js │ │ │ │ ├── scatterPlot.e2e.spec.js │ │ │ │ ├── stackedPlot.e2e.spec.js │ │ │ │ ├── tagging.e2e.spec.js │ │ │ │ └── timeTicks.e2e.spec.js │ │ │ ├── reloadAction/ │ │ │ │ └── reloadAction.e2e.spec.js │ │ │ ├── styling/ │ │ │ │ ├── conditionSetStyling.e2e.spec.js │ │ │ │ ├── conditional/ │ │ │ │ │ └── displayLayoutConditionalStyling.e2e.spec.js │ │ │ │ ├── conditionalStyling.e2e.spec.js │ │ │ │ ├── flexLayoutStyling.e2e.spec.js │ │ │ │ ├── stackedPlotStyling.e2e.spec.js │ │ │ │ └── styleInspectorOptions.e2e.spec.js │ │ │ ├── tabs/ │ │ │ │ └── tabs.e2e.spec.js │ │ │ ├── telemetryTable/ │ │ │ │ ├── preview.e2e.spec.js │ │ │ │ └── telemetryTable.e2e.spec.js │ │ │ ├── timeConductor/ │ │ │ │ ├── datepicker.e2e.spec.js │ │ │ │ └── timeConductor.e2e.spec.js │ │ │ └── timer/ │ │ │ └── timer.e2e.spec.js │ │ ├── recentObjects.e2e.spec.js │ │ ├── renaming.e2e.spec.js │ │ ├── search.e2e.spec.js │ │ ├── smoke.e2e.spec.js │ │ ├── staleness.e2e.spec.js │ │ ├── tooltips.e2e.spec.js │ │ ├── tree.e2e.spec.js │ │ ├── ui/ │ │ │ ├── inspector.e2e.spec.js │ │ │ └── statusArea.e2e.spec.js │ │ └── userRoles.e2e.spec.js │ ├── mobile/ │ │ └── smoke.e2e.spec.js │ ├── performance/ │ │ ├── contract/ │ │ │ ├── imagery.contract.perf.spec.js │ │ │ └── notebook.contract.perf.spec.js │ │ ├── memory/ │ │ │ └── navigation.memory.perf.spec.js │ │ ├── tabs.perf.spec.js │ │ └── tagging.perf.spec.js │ └── visual-a11y/ │ ├── a11y.visual.spec.js │ ├── components/ │ │ ├── about.visual.spec.js │ │ ├── header.visual.spec.js │ │ ├── inspector.visual.spec.js │ │ ├── timeConductor.visual.spec.js │ │ └── tree.visual.spec.js │ ├── controlledClock.visual.spec.js │ ├── defaultPlugins.visual.spec.js │ ├── displayLayout.visual.spec.js │ ├── faultManagement.visual.spec.js │ ├── gauge.visual.spec.js │ ├── imagery.visual.spec.js │ ├── ladTable.visual.spec.js │ ├── missionStatus.visual.spec.js │ ├── notebook.visual.spec.js │ ├── notification.visual.spec.js │ ├── planning-gantt.visual.spec.js │ ├── planning-timestrip.visual.spec.js │ ├── planning-view.visual.spec.js │ ├── search.visual.spec.js │ ├── styling.visual.spec.js │ └── telemetryViews.visual.spec.js ├── example/ │ ├── README.md │ ├── dataVisualization/ │ │ ├── ExampleDataVisualizationSourceViewProvider.js │ │ ├── components/ │ │ │ └── ExampleDataVisualizationSource.vue │ │ └── plugin.js │ ├── eventGenerator/ │ │ ├── EventLimitProvider.js │ │ ├── EventMetadataProvider.js │ │ ├── EventTelemetryProvider.js │ │ ├── EventWithAcknowledgeTelemetryProvider.js │ │ ├── plugin.js │ │ ├── pluginSpec.js │ │ └── transcript.json │ ├── exampleStalenessProvider/ │ │ ├── ExampleStalenessProvider.js │ │ └── plugin.js │ ├── exampleTags/ │ │ ├── plugin.js │ │ └── tags.json │ ├── exampleUser/ │ │ ├── ExampleUserProvider.js │ │ ├── exampleUserCreator.js │ │ ├── plugin.js │ │ └── pluginSpec.js │ ├── faultManagement/ │ │ ├── exampleFaultSource.js │ │ ├── pluginSpec.js │ │ └── utils.js │ ├── generator/ │ │ ├── GeneratorMetadataProvider.js │ │ ├── GeneratorProvider.js │ │ ├── SinewaveLimitProvider.js │ │ ├── SinewaveStalenessProvider.js │ │ ├── StateGeneratorProvider.js │ │ ├── WorkerInterface.js │ │ ├── generatorWorker.js │ │ └── plugin.js │ └── imagery/ │ └── plugin.js ├── index-test.cjs ├── index.html ├── karma.conf.cjs ├── openmct.js ├── package.json ├── src/ │ ├── MCT.js │ ├── MCTSpec.js │ ├── api/ │ │ ├── Branding.js │ │ ├── Editor.js │ │ ├── EditorSpec.js │ │ ├── actions/ │ │ │ ├── ActionCollection.js │ │ │ ├── ActionCollectionSpec.js │ │ │ ├── ActionsAPI.js │ │ │ └── ActionsAPISpec.js │ │ ├── annotation/ │ │ │ ├── AnnotationAPI.js │ │ │ └── AnnotationAPISpec.js │ │ ├── api.js │ │ ├── composition/ │ │ │ ├── CompositionAPI.js │ │ │ ├── CompositionAPISpec.js │ │ │ ├── CompositionCollection.js │ │ │ ├── CompositionProvider.js │ │ │ └── DefaultCompositionProvider.js │ │ ├── faultmanagement/ │ │ │ ├── FaultManagementAPI.js │ │ │ └── FaultManagementAPISpec.js │ │ ├── forms/ │ │ │ ├── FormController.js │ │ │ ├── FormsAPI.js │ │ │ ├── FormsAPISpec.js │ │ │ ├── components/ │ │ │ │ ├── FormProperties.vue │ │ │ │ ├── FormRow.vue │ │ │ │ └── controls/ │ │ │ │ ├── AutoCompleteField.vue │ │ │ │ ├── CheckBoxField.vue │ │ │ │ ├── ClockDisplayFormatField.vue │ │ │ │ ├── CompositeContainer.vue │ │ │ │ ├── CompositeItem.vue │ │ │ │ ├── DatetimeField.vue │ │ │ │ ├── FileInput.vue │ │ │ │ ├── LocatorField.vue │ │ │ │ ├── NumberField.vue │ │ │ │ ├── SelectField.vue │ │ │ │ ├── TextAreaField.vue │ │ │ │ ├── TextField.vue │ │ │ │ └── ToggleSwitchField.vue │ │ │ └── toggle-check-box-mixin.js │ │ ├── indicators/ │ │ │ ├── IndicatorAPI.js │ │ │ ├── IndicatorAPISpec.js │ │ │ ├── SimpleIndicator.js │ │ │ └── res/ │ │ │ └── indicator-template.html │ │ ├── menu/ │ │ │ ├── MenuAPI.js │ │ │ ├── MenuAPISpec.js │ │ │ ├── components/ │ │ │ │ ├── MenuComponent.vue │ │ │ │ └── SuperMenu.vue │ │ │ ├── menu.js │ │ │ └── mixins/ │ │ │ └── popupMenuMixin.js │ │ ├── notifications/ │ │ │ ├── NotificationAPI.js │ │ │ └── NotificationAPISpec.js │ │ ├── objects/ │ │ │ ├── ConflictError.js │ │ │ ├── InMemorySearchProvider.js │ │ │ ├── InMemorySearchWorker.js │ │ │ ├── InterceptorRegistry.js │ │ │ ├── InterceptorRegistrySpec.js │ │ │ ├── MutableDomainObject.js │ │ │ ├── NamespaceProvider.js │ │ │ ├── ObjectAPI.js │ │ │ ├── ObjectAPISearchSpec.js │ │ │ ├── ObjectAPISpec.js │ │ │ ├── RootObjectCompositionProvider.js │ │ │ ├── RootObjectProvider.js │ │ │ ├── RootRegistry.js │ │ │ ├── Transaction.js │ │ │ ├── TransactionSpec.js │ │ │ ├── object-utils.js │ │ │ └── test/ │ │ │ └── object-utilsSpec.js │ │ ├── overlays/ │ │ │ ├── Dialog.js │ │ │ ├── Overlay.js │ │ │ ├── OverlayAPI.js │ │ │ ├── ProgressDialog.js │ │ │ ├── Selection.js │ │ │ └── components/ │ │ │ ├── DialogComponent.vue │ │ │ ├── OverlayComponent.vue │ │ │ ├── ProgressDialogComponent.vue │ │ │ ├── SelectionComponent.vue │ │ │ ├── dialog-component.scss │ │ │ └── overlay-component.scss │ │ ├── priority/ │ │ │ └── PriorityAPI.js │ │ ├── status/ │ │ │ ├── StatusAPI.js │ │ │ └── StatusAPISpec.js │ │ ├── telemetry/ │ │ │ ├── BatchingWebSocket.js │ │ │ ├── DefaultMetadataProvider.js │ │ │ ├── TelemetryAPI.js │ │ │ ├── TelemetryAPISpec.js │ │ │ ├── TelemetryCollection.js │ │ │ ├── TelemetryCollectionSpec.js │ │ │ ├── TelemetryMetadataManager.js │ │ │ ├── TelemetryRequestInterceptor.js │ │ │ ├── TelemetryValueFormatter.js │ │ │ ├── WebSocketWorker.js │ │ │ └── constants.js │ │ ├── time/ │ │ │ ├── GlobalTimeContext.js │ │ │ ├── IndependentTimeContext.js │ │ │ ├── TimeAPI.js │ │ │ ├── TimeAPISpec.js │ │ │ ├── TimeContext.js │ │ │ ├── constants.js │ │ │ └── independentTimeAPISpec.js │ │ ├── tooltips/ │ │ │ ├── ToolTip.js │ │ │ ├── ToolTipAPI.js │ │ │ ├── components/ │ │ │ │ ├── TooltipComponent.vue │ │ │ │ └── tooltip-component.scss │ │ │ └── tooltipMixins.js │ │ ├── types/ │ │ │ ├── Type.js │ │ │ ├── TypeRegistry.js │ │ │ └── TypeRegistrySpec.js │ │ └── user/ │ │ ├── ActiveRoleSynchronizer.js │ │ ├── StatusAPI.js │ │ ├── StatusUserProvider.js │ │ ├── StoragePersistence.js │ │ ├── User.js │ │ ├── UserAPI.js │ │ ├── UserAPISpec.js │ │ ├── UserProvider.js │ │ ├── UserStatusAPISpec.js │ │ └── constants.js │ ├── exporters/ │ │ ├── CSVExporter.js │ │ ├── ImageExporter.js │ │ ├── ImageExporterSpec.js │ │ └── JSONExporter.js │ ├── plugins/ │ │ ├── CouchDBSearchFolder/ │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── DeviceClassifier/ │ │ │ ├── plugin.js │ │ │ └── src/ │ │ │ ├── DeviceClassifier.js │ │ │ ├── DeviceClassifierSpec.js │ │ │ ├── DeviceMatchers.js │ │ │ └── DeviceMatchersSpec.js │ │ ├── ISOTimeFormat/ │ │ │ ├── ISOTimeFormat.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── LADTable/ │ │ │ ├── LADTableCompositionPolicy.js │ │ │ ├── LADTableConfiguration.js │ │ │ ├── LADTableConfigurationViewProvider.js │ │ │ ├── LADTableSetViewProvider.js │ │ │ ├── LADTableView.js │ │ │ ├── LADTableViewProvider.js │ │ │ ├── LadTableSetView.js │ │ │ ├── ViewActions.js │ │ │ ├── components/ │ │ │ │ ├── LadRow.vue │ │ │ │ ├── LadTable.vue │ │ │ │ ├── LadTableConfiguration.vue │ │ │ │ └── LadTableSet.vue │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── URLIndicatorPlugin/ │ │ │ ├── README.md │ │ │ ├── URLIndicator.js │ │ │ ├── URLIndicatorPlugin.js │ │ │ └── URLIndicatorSpec.js │ │ ├── URLTimeSettingsSynchronizer/ │ │ │ ├── URLTimeSettingsSynchronizer.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── activityStates/ │ │ │ ├── activityStatesInterceptor.js │ │ │ ├── createActivityStatesIdentifier.js │ │ │ └── pluginSpec.js │ │ ├── autoflow/ │ │ │ ├── AutoflowTabularConstants.js │ │ │ ├── AutoflowTabularController.js │ │ │ ├── AutoflowTabularPlugin.js │ │ │ ├── AutoflowTabularPluginSpec.js │ │ │ ├── AutoflowTabularRowController.js │ │ │ ├── AutoflowTabularView.js │ │ │ ├── README.md │ │ │ ├── VueView.js │ │ │ ├── autoflow-tabular.html │ │ │ └── dom-observer.js │ │ ├── charts/ │ │ │ ├── bar/ │ │ │ │ ├── BarGraphCompositionPolicy.js │ │ │ │ ├── BarGraphConstants.js │ │ │ │ ├── BarGraphPlot.vue │ │ │ │ ├── BarGraphView.vue │ │ │ │ ├── BarGraphViewProvider.js │ │ │ │ ├── inspector/ │ │ │ │ │ ├── BarGraphInspectorViewProvider.js │ │ │ │ │ ├── BarGraphOptions.vue │ │ │ │ │ └── SeriesOptions.vue │ │ │ │ ├── plugin.js │ │ │ │ └── pluginSpec.js │ │ │ └── scatter/ │ │ │ ├── ScatterPlotCompositionPolicy.js │ │ │ ├── ScatterPlotForm.vue │ │ │ ├── ScatterPlotView.vue │ │ │ ├── ScatterPlotViewProvider.js │ │ │ ├── ScatterPlotWithUnderlay.vue │ │ │ ├── inspector/ │ │ │ │ ├── PlotOptions.vue │ │ │ │ ├── PlotOptionsBrowse.vue │ │ │ │ ├── PlotOptionsEdit.vue │ │ │ │ └── ScatterPlotInspectorViewProvider.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── scatterPlotConstants.js │ │ ├── clearData/ │ │ │ ├── ClearDataAction.js │ │ │ ├── components/ │ │ │ │ └── GlobalClearIndicator.vue │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── clock/ │ │ │ ├── ClockViewProvider.js │ │ │ ├── components/ │ │ │ │ ├── ClockComponent.vue │ │ │ │ └── ClockIndicator.vue │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── comps/ │ │ │ ├── CompsCompositionPolicy.js │ │ │ ├── CompsInspectorViewProvider.js │ │ │ ├── CompsManager.js │ │ │ ├── CompsMathWorker.js │ │ │ ├── CompsMetadataProvider.js │ │ │ ├── CompsTelemetryProvider.js │ │ │ ├── CompsViewProvider.js │ │ │ ├── components/ │ │ │ │ ├── CompsInspectorView.vue │ │ │ │ ├── CompsView.vue │ │ │ │ └── comps.scss │ │ │ └── plugin.js │ │ ├── condition/ │ │ │ ├── Condition.js │ │ │ ├── ConditionManager.js │ │ │ ├── ConditionManagerSpec.js │ │ │ ├── ConditionSetCompositionPolicy.js │ │ │ ├── ConditionSetCompositionPolicySpec.js │ │ │ ├── ConditionSetMetadataProvider.js │ │ │ ├── ConditionSetTelemetryProvider.js │ │ │ ├── ConditionSetViewProvider.js │ │ │ ├── ConditionSpec.js │ │ │ ├── StyleRuleManager.js │ │ │ ├── components/ │ │ │ │ ├── ConditionCollection.vue │ │ │ │ ├── ConditionDescription.vue │ │ │ │ ├── ConditionError.vue │ │ │ │ ├── ConditionItem.vue │ │ │ │ ├── ConditionSet.vue │ │ │ │ ├── CriterionItem.vue │ │ │ │ ├── CurrentOutput.vue │ │ │ │ ├── TestData.vue │ │ │ │ ├── conditionals.scss │ │ │ │ └── inspector/ │ │ │ │ ├── ConditionalStylesView.vue │ │ │ │ ├── StyleEditor.vue │ │ │ │ ├── StylesView.vue │ │ │ │ └── conditional-styles.scss │ │ │ ├── criterion/ │ │ │ │ ├── AllTelemetryCriterion.js │ │ │ │ ├── TelemetryCriterion.js │ │ │ │ └── TelemetryCriterionSpec.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── utils/ │ │ │ ├── constants.js │ │ │ ├── evaluator.js │ │ │ ├── evaluatorSpec.js │ │ │ ├── operations.js │ │ │ ├── operationsSpec.js │ │ │ ├── styleUtils.js │ │ │ ├── time.js │ │ │ └── timeSpec.js │ │ ├── conditionWidget/ │ │ │ ├── ConditionWidgetViewProvider.js │ │ │ ├── components/ │ │ │ │ ├── ConditionWidget.vue │ │ │ │ └── condition-widget.scss │ │ │ ├── conditionWidgetStylesInterceptor.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── correlationTelemetryPlugin/ │ │ │ └── plugin.js │ │ ├── defaultRootName/ │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── displayLayout/ │ │ │ ├── AlphanumericFormatViewProvider.js │ │ │ ├── CustomStringFormatter.js │ │ │ ├── CustomStringFormatterSpec.js │ │ │ ├── DisplayLayoutToolbar.js │ │ │ ├── DisplayLayoutType.js │ │ │ ├── DrawingObjectTypes.js │ │ │ ├── LayoutDrag.js │ │ │ ├── actions/ │ │ │ │ └── CopyToClipboardAction.js │ │ │ ├── components/ │ │ │ │ ├── AlphanumericFormat.vue │ │ │ │ ├── BoxView.vue │ │ │ │ ├── DisplayLayout.vue │ │ │ │ ├── DisplayLayoutGrid.vue │ │ │ │ ├── EditMarquee.vue │ │ │ │ ├── EllipseView.vue │ │ │ │ ├── ImageView.vue │ │ │ │ ├── LayoutFrame.vue │ │ │ │ ├── LineView.vue │ │ │ │ ├── SubobjectView.vue │ │ │ │ ├── TelemetryView.vue │ │ │ │ ├── TextView.vue │ │ │ │ ├── box-and-line-views.scss │ │ │ │ ├── display-layout.scss │ │ │ │ ├── edit-marquee.scss │ │ │ │ ├── image-view.scss │ │ │ │ ├── layout-frame.scss │ │ │ │ ├── telemetry-view.scss │ │ │ │ └── text-view.scss │ │ │ ├── displayLayoutStylesInterceptor.js │ │ │ ├── mixins/ │ │ │ │ └── objectStyles-mixin.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── duplicate/ │ │ │ ├── DuplicateAction.js │ │ │ ├── DuplicateTask.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── events/ │ │ │ ├── EventInspectorViewProvider.js │ │ │ ├── EventTimelineViewProvider.js │ │ │ ├── components/ │ │ │ │ ├── EventInspectorView.vue │ │ │ │ ├── EventTimelineView.vue │ │ │ │ └── events-view.scss │ │ │ ├── mixins/ │ │ │ │ └── eventData.js │ │ │ └── plugin.js │ │ ├── exportAsJSONAction/ │ │ │ ├── ExportAsJSONAction.js │ │ │ ├── ExportAsJSONActionSpec.js │ │ │ └── plugin.js │ │ ├── faultManagement/ │ │ │ ├── FaultManagementInspector.vue │ │ │ ├── FaultManagementInspectorViewProvider.js │ │ │ ├── FaultManagementListHeader.vue │ │ │ ├── FaultManagementListItem.vue │ │ │ ├── FaultManagementObjectProvider.js │ │ │ ├── FaultManagementPlugin.js │ │ │ ├── FaultManagementSearch.vue │ │ │ ├── FaultManagementToolbar.vue │ │ │ ├── FaultManagementView.vue │ │ │ ├── FaultManagementViewProvider.js │ │ │ ├── constants.js │ │ │ ├── fault-manager.scss │ │ │ └── pluginSpec.js │ │ ├── filters/ │ │ │ ├── FiltersInspectorViewProvider.js │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── FilterField.vue │ │ │ │ ├── FilterObject.vue │ │ │ │ ├── FiltersView.vue │ │ │ │ ├── GlobalFilters.vue │ │ │ │ ├── filters-view.scss │ │ │ │ └── global-filters.scss │ │ │ └── plugin.js │ │ ├── flexibleLayout/ │ │ │ ├── components/ │ │ │ │ ├── ContainerComponent.vue │ │ │ │ ├── DropHint.vue │ │ │ │ ├── FlexibleLayout.vue │ │ │ │ ├── FrameComponent.vue │ │ │ │ └── flexible-layout.scss │ │ │ ├── flexibleLayoutStylesInterceptor.js │ │ │ ├── flexibleLayoutViewProvider.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── toolbarProvider.js │ │ ├── folderView/ │ │ │ ├── FolderGridView.js │ │ │ ├── FolderListView.js │ │ │ ├── components/ │ │ │ │ ├── GridItem.vue │ │ │ │ ├── GridView.vue │ │ │ │ ├── ListItem.vue │ │ │ │ ├── ListView.vue │ │ │ │ ├── composition-loader.js │ │ │ │ ├── grid-view.scss │ │ │ │ ├── list-item.scss │ │ │ │ └── status-listener.js │ │ │ ├── constants.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── formActions/ │ │ │ ├── CreateAction.js │ │ │ ├── CreateActionSpec.js │ │ │ ├── CreateWizard.js │ │ │ ├── EditPropertiesAction.js │ │ │ ├── PropertiesAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── gauge/ │ │ │ ├── GaugeCompositionPolicy.js │ │ │ ├── GaugePlugin.js │ │ │ ├── GaugePluginSpec.js │ │ │ ├── GaugeViewProvider.js │ │ │ ├── components/ │ │ │ │ ├── GaugeComponent.vue │ │ │ │ └── GaugeFormController.vue │ │ │ ├── gauge-limit-util.js │ │ │ ├── gauge.scss │ │ │ └── gaugeStylesInterceptor.js │ │ ├── goToOriginalAction/ │ │ │ ├── goToOriginalAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── hyperlink/ │ │ │ ├── HyperlinkLayout.vue │ │ │ ├── HyperlinkProvider.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── imagery/ │ │ │ ├── ImageryTimestripViewProvider.js │ │ │ ├── ImageryView.js │ │ │ ├── ImageryViewProvider.js │ │ │ ├── actions/ │ │ │ │ ├── OpenImageInNewTabAction.js │ │ │ │ └── SaveImageAsAction.js │ │ │ ├── components/ │ │ │ │ ├── AnnotationsCanvas.vue │ │ │ │ ├── Compass/ │ │ │ │ │ ├── CompassComponent.vue │ │ │ │ │ ├── CompassHud.vue │ │ │ │ │ ├── CompassRose.vue │ │ │ │ │ ├── compass.scss │ │ │ │ │ ├── pluginSpec.js │ │ │ │ │ └── utils.js │ │ │ │ ├── FilterSettings.vue │ │ │ │ ├── ImageControls.vue │ │ │ │ ├── ImageThumbnail.vue │ │ │ │ ├── ImageryTimeView.vue │ │ │ │ ├── ImageryView.vue │ │ │ │ ├── ImageryViewMenuSwitcher.vue │ │ │ │ ├── LayerSettings.vue │ │ │ │ ├── RelatedTelemetry/ │ │ │ │ │ └── RelatedTelemetry.js │ │ │ │ ├── ZoomSettings.vue │ │ │ │ └── imagery-view.scss │ │ │ ├── lib/ │ │ │ │ └── eventHelpers.js │ │ │ ├── mixins/ │ │ │ │ └── imageryData.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── importFromJSONAction/ │ │ │ ├── ImportFromJSONAction.js │ │ │ ├── ImportFromJSONActionSpec.js │ │ │ └── plugin.js │ │ ├── inspectorDataVisualization/ │ │ │ ├── DataVisualization.vue │ │ │ ├── ImageryInspectorView.vue │ │ │ ├── InspectorDataVisualizationComponent.vue │ │ │ ├── InspectorDataVisualizationViewProvider.js │ │ │ ├── NumericDataInspectorView.vue │ │ │ ├── TelemetryFrame.vue │ │ │ ├── inspector-data-visualization.scss │ │ │ └── plugin.js │ │ ├── inspectorViews/ │ │ │ ├── annotations/ │ │ │ │ ├── AnnotationsInspectorView.vue │ │ │ │ ├── AnnotationsViewProvider.js │ │ │ │ └── tags/ │ │ │ │ ├── TagEditor.vue │ │ │ │ ├── TagEditorClassNames.js │ │ │ │ ├── TagSelection.vue │ │ │ │ └── tags.scss │ │ │ ├── elements/ │ │ │ │ ├── ElementItem.vue │ │ │ │ ├── ElementItemGroup.vue │ │ │ │ ├── ElementsPool.vue │ │ │ │ ├── ElementsViewProvider.js │ │ │ │ ├── PlotElementsPool.vue │ │ │ │ ├── PlotElementsViewProvider.js │ │ │ │ └── elements.scss │ │ │ ├── plugin.js │ │ │ ├── properties/ │ │ │ │ ├── DetailText.vue │ │ │ │ ├── LocationComponent.vue │ │ │ │ ├── PropertiesComponent.vue │ │ │ │ ├── PropertiesViewProvider.js │ │ │ │ └── location.scss │ │ │ └── styles/ │ │ │ ├── FontStyleEditor.vue │ │ │ ├── SavedStyleSelector.vue │ │ │ ├── SavedStylesInspectorView.vue │ │ │ ├── SavedStylesView.vue │ │ │ ├── StylesInspectorView.vue │ │ │ ├── StylesInspectorViewProvider.js │ │ │ ├── StylesManager.js │ │ │ └── constants.js │ │ ├── interceptors/ │ │ │ ├── missingObjectInterceptor.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── latestDataClock/ │ │ │ ├── LADClock.js │ │ │ └── plugin.js │ │ ├── licenses/ │ │ │ ├── LicensesComponent.vue │ │ │ ├── plugin.js │ │ │ └── third-party-licenses.json │ │ ├── linkAction/ │ │ │ ├── LinkAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── localStorage/ │ │ │ ├── LocalStorageObjectProvider.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── localTimeSystem/ │ │ │ ├── LocalTimeFormat.js │ │ │ ├── LocalTimeSystem.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── move/ │ │ │ ├── MoveAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── myItems/ │ │ │ ├── README.md │ │ │ ├── createMyItemsIdentifier.js │ │ │ ├── myItemsInterceptor.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── newFolderAction/ │ │ │ ├── newFolderAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── notebook/ │ │ │ ├── NotebookType.js │ │ │ ├── NotebookViewProvider.js │ │ │ ├── actions/ │ │ │ │ ├── CopyToNotebookAction.js │ │ │ │ └── ExportNotebookAsTextAction.js │ │ │ ├── components/ │ │ │ │ ├── NotebookComponent.vue │ │ │ │ ├── NotebookEmbed.vue │ │ │ │ ├── NotebookEntry.vue │ │ │ │ ├── NotebookMenuSwitcher.vue │ │ │ │ ├── NotebookSnapshotContainer.vue │ │ │ │ ├── NotebookSnapshotIndicator.vue │ │ │ │ ├── PageCollection.vue │ │ │ │ ├── PageComponent.vue │ │ │ │ ├── PopupMenu.vue │ │ │ │ ├── SearchResults.vue │ │ │ │ ├── SectionCollection.vue │ │ │ │ ├── SectionComponent.vue │ │ │ │ ├── SidebarComponent.vue │ │ │ │ ├── sidebar.scss │ │ │ │ └── snapshot-template.html │ │ │ ├── monkeyPatchObjectAPIForNotebooks.js │ │ │ ├── notebook-constants.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── snapshot-container.js │ │ │ ├── snapshot.js │ │ │ └── utils/ │ │ │ ├── notebook-entries.js │ │ │ ├── notebook-entriesSpec.js │ │ │ ├── notebook-image.js │ │ │ ├── notebook-key-code.js │ │ │ ├── notebook-migration.js │ │ │ ├── notebook-snapshot-menu.js │ │ │ ├── notebook-storage.js │ │ │ ├── notebook-storageSpec.js │ │ │ ├── painterroInstance.js │ │ │ └── removeDialog.js │ │ ├── notificationIndicator/ │ │ │ ├── components/ │ │ │ │ ├── NotificationIndicator.vue │ │ │ │ ├── NotificationMessage.vue │ │ │ │ └── NotificationsList.vue │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── objectMigration/ │ │ │ ├── Migrations.js │ │ │ └── plugin.js │ │ ├── openInNewTabAction/ │ │ │ ├── openInNewTabAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── operatorStatus/ │ │ │ ├── AbstractStatusIndicator.js │ │ │ ├── operator-status.scss │ │ │ ├── operatorStatus/ │ │ │ │ ├── OperatorStatus.vue │ │ │ │ └── OperatorStatusIndicator.js │ │ │ ├── plugin.js │ │ │ └── pollQuestion/ │ │ │ ├── PollQuestion.vue │ │ │ └── PollQuestionIndicator.js │ │ ├── performanceIndicator/ │ │ │ ├── README.md │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── persistence/ │ │ │ └── couch/ │ │ │ ├── CouchChangesFeed.js │ │ │ ├── CouchDocument.js │ │ │ ├── CouchObjectProvider.js │ │ │ ├── CouchObjectQueue.js │ │ │ ├── CouchSearchProvider.js │ │ │ ├── CouchStatusIndicator.js │ │ │ ├── README.md │ │ │ ├── couchdb-compose.yaml │ │ │ ├── package.json │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── replace-localstorage-with-couchdb-indexhtml.sh │ │ │ ├── scripts/ │ │ │ │ ├── deleteAnnotations.js │ │ │ │ └── lockObjects.mjs │ │ │ └── setup-couchdb.sh │ │ ├── plan/ │ │ │ ├── GanttChartCompositionPolicy.js │ │ │ ├── PlanViewConfiguration.js │ │ │ ├── PlanViewProvider.js │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── ActivityTimeline.vue │ │ │ │ └── PlanView.vue │ │ │ ├── inspector/ │ │ │ │ ├── ActivityInspectorViewProvider.js │ │ │ │ ├── GanttChartInspectorViewProvider.js │ │ │ │ ├── PlanInspectorViewProvider.js │ │ │ │ └── components/ │ │ │ │ ├── ActivityProperty.vue │ │ │ │ ├── PlanActivitiesView.vue │ │ │ │ ├── PlanActivityPropertiesView.vue │ │ │ │ ├── PlanActivityStatusView.vue │ │ │ │ ├── PlanActivityTimeView.vue │ │ │ │ ├── PlanExecutionMonitoringView.vue │ │ │ │ └── PlanViewConfiguration.vue │ │ │ ├── plan.scss │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── util.js │ │ ├── planExecutionMonitoring/ │ │ │ ├── planExecutionMonitoringIdentifier.js │ │ │ ├── planExecutionMonitoringInterceptor.js │ │ │ └── pluginSpec.js │ │ ├── plot/ │ │ │ ├── LinearScale.js │ │ │ ├── MctPlot.vue │ │ │ ├── MctTicks.vue │ │ │ ├── PlotView.vue │ │ │ ├── PlotViewProvider.js │ │ │ ├── README.md │ │ │ ├── actions/ │ │ │ │ ├── ViewActions.js │ │ │ │ └── utils.js │ │ │ ├── axis/ │ │ │ │ ├── XAxis.vue │ │ │ │ └── YAxis.vue │ │ │ ├── chart/ │ │ │ │ ├── LimitLabel.vue │ │ │ │ ├── LimitLine.vue │ │ │ │ ├── MCTChartAlarmLineSet.js │ │ │ │ ├── MCTChartAlarmPointSet.js │ │ │ │ ├── MCTChartLineLinear.js │ │ │ │ ├── MCTChartLineStepAfter.js │ │ │ │ ├── MCTChartPointSet.js │ │ │ │ ├── MCTChartSeriesElement.js │ │ │ │ ├── MctChart.vue │ │ │ │ └── limitUtil.js │ │ │ ├── configuration/ │ │ │ │ ├── Collection.js │ │ │ │ ├── ConfigStore.js │ │ │ │ ├── LegendModel.js │ │ │ │ ├── Model.js │ │ │ │ ├── PlotConfigurationModel.js │ │ │ │ ├── PlotSeries.js │ │ │ │ ├── SeriesCollection.js │ │ │ │ ├── XAxisModel.js │ │ │ │ └── YAxisModel.js │ │ │ ├── draw/ │ │ │ │ ├── Draw2D.js │ │ │ │ ├── DrawLoader.js │ │ │ │ ├── DrawWebGL.js │ │ │ │ └── MarkerShapes.js │ │ │ ├── inspector/ │ │ │ │ ├── PlotOptions.vue │ │ │ │ ├── PlotOptionsBrowse.vue │ │ │ │ ├── PlotOptionsEdit.vue │ │ │ │ ├── PlotOptionsItem.vue │ │ │ │ ├── PlotsInspectorViewProvider.js │ │ │ │ ├── StackedPlotsInspectorViewProvider.js │ │ │ │ └── forms/ │ │ │ │ ├── LegendForm.vue │ │ │ │ ├── SeriesForm.vue │ │ │ │ ├── YAxisForm.vue │ │ │ │ └── formUtil.js │ │ │ ├── legend/ │ │ │ │ ├── PlotLegend.vue │ │ │ │ ├── PlotLegendItemCollapsed.vue │ │ │ │ └── PlotLegendItemExpanded.vue │ │ │ ├── lib/ │ │ │ │ └── eventHelpers.js │ │ │ ├── mathUtils.js │ │ │ ├── overlayPlot/ │ │ │ │ ├── OverlayPlotCompositionPolicy.js │ │ │ │ ├── OverlayPlotViewProvider.js │ │ │ │ ├── overlayPlotStylesInterceptor.js │ │ │ │ └── pluginSpec.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── stackedPlot/ │ │ │ │ ├── StackedPlot.vue │ │ │ │ ├── StackedPlotCompositionPolicy.js │ │ │ │ ├── StackedPlotItem.vue │ │ │ │ ├── StackedPlotViewProvider.js │ │ │ │ ├── mixins/ │ │ │ │ │ └── objectStyles-mixin.js │ │ │ │ ├── pluginSpec.js │ │ │ │ └── stackedPlotConfigurationInterceptor.js │ │ │ └── tickUtils.js │ │ ├── plugins.js │ │ ├── reloadAction/ │ │ │ ├── ReloadAction.js │ │ │ └── plugin.js │ │ ├── remoteClock/ │ │ │ ├── RemoteClock.js │ │ │ ├── RemoteClockSpec.js │ │ │ ├── plugin.js │ │ │ └── requestInterceptor.js │ │ ├── remove/ │ │ │ ├── RemoveAction.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── staticRootPlugin/ │ │ │ ├── README.md │ │ │ ├── StaticModelProvider.js │ │ │ ├── StaticModelProviderSpec.js │ │ │ ├── plugin.js │ │ │ └── test-data/ │ │ │ ├── static-provider-test-empty-namespace.json │ │ │ └── static-provider-test-foo-namespace.json │ │ ├── summaryWidget/ │ │ │ ├── README.md │ │ │ ├── SummaryWidgetViewPolicy.js │ │ │ ├── SummaryWidgetsCompositionPolicy.js │ │ │ ├── plugin.js │ │ │ ├── res/ │ │ │ │ ├── conditionTemplate.html │ │ │ │ ├── input/ │ │ │ │ │ ├── paletteTemplate.html │ │ │ │ │ └── selectTemplate.html │ │ │ │ ├── ruleImageTemplate.html │ │ │ │ ├── ruleTemplate.html │ │ │ │ ├── testDataItemTemplate.html │ │ │ │ ├── testDataTemplate.html │ │ │ │ └── widgetTemplate.html │ │ │ ├── src/ │ │ │ │ ├── Condition.js │ │ │ │ ├── ConditionEvaluator.js │ │ │ │ ├── ConditionManager.js │ │ │ │ ├── Rule.js │ │ │ │ ├── SummaryWidget.js │ │ │ │ ├── TestDataItem.js │ │ │ │ ├── TestDataManager.js │ │ │ │ ├── WidgetDnD.js │ │ │ │ ├── eventHelpers.js │ │ │ │ ├── input/ │ │ │ │ │ ├── ColorPalette.js │ │ │ │ │ ├── IconPalette.js │ │ │ │ │ ├── KeySelect.js │ │ │ │ │ ├── ObjectSelect.js │ │ │ │ │ ├── OperationSelect.js │ │ │ │ │ ├── Palette.js │ │ │ │ │ └── Select.js │ │ │ │ ├── telemetry/ │ │ │ │ │ ├── EvaluatorPool.js │ │ │ │ │ ├── EvaluatorPoolSpec.js │ │ │ │ │ ├── SummaryWidgetCondition.js │ │ │ │ │ ├── SummaryWidgetConditionSpec.js │ │ │ │ │ ├── SummaryWidgetEvaluator.js │ │ │ │ │ ├── SummaryWidgetMetadataProvider.js │ │ │ │ │ ├── SummaryWidgetRule.js │ │ │ │ │ ├── SummaryWidgetRuleSpec.js │ │ │ │ │ ├── SummaryWidgetTelemetryProvider.js │ │ │ │ │ ├── SummaryWidgetTelemetryProviderSpec.js │ │ │ │ │ └── operations.js │ │ │ │ └── views/ │ │ │ │ ├── SummaryWidgetView.js │ │ │ │ └── SummaryWidgetViewProvider.js │ │ │ └── test/ │ │ │ ├── ConditionEvaluatorSpec.js │ │ │ ├── ConditionManagerSpec.js │ │ │ ├── ConditionSpec.js │ │ │ ├── RuleSpec.js │ │ │ ├── SummaryWidgetSpec.js │ │ │ ├── SummaryWidgetViewPolicySpec.js │ │ │ ├── TestDataItemSpec.js │ │ │ ├── TestDataManagerSpec.js │ │ │ ├── WidgetDnDSpec.js │ │ │ └── input/ │ │ │ ├── ColorPaletteSpec.js │ │ │ ├── IconPaletteSpec.js │ │ │ ├── KeySelectSpec.js │ │ │ ├── ObjectSelectSpec.js │ │ │ ├── OperationSelectSpec.js │ │ │ ├── PaletteSpec.js │ │ │ └── SelectSpec.js │ │ ├── tabs/ │ │ │ ├── components/ │ │ │ │ ├── TabsComponent.vue │ │ │ │ └── tabs.scss │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── tabs.js │ │ ├── telemetryMean/ │ │ │ ├── plugin.js │ │ │ └── src/ │ │ │ ├── MeanTelemetryProvider.js │ │ │ ├── MeanTelemetryProviderSpec.js │ │ │ ├── MockTelemetryApi.js │ │ │ └── TelemetryAverager.js │ │ ├── telemetryTable/ │ │ │ ├── TableConfigurationViewProvider.js │ │ │ ├── TelemetryTable.js │ │ │ ├── TelemetryTableColumn.js │ │ │ ├── TelemetryTableConfiguration.js │ │ │ ├── TelemetryTableNameColumn.js │ │ │ ├── TelemetryTableRow.js │ │ │ ├── TelemetryTableType.js │ │ │ ├── TelemetryTableUnitColumn.js │ │ │ ├── TelemetryTableView.js │ │ │ ├── TelemetryTableViewProvider.js │ │ │ ├── ViewActions.js │ │ │ ├── collections/ │ │ │ │ └── TableRowCollection.js │ │ │ ├── components/ │ │ │ │ ├── SizingRow.vue │ │ │ │ ├── TableCell.vue │ │ │ │ ├── TableColumnHeader.vue │ │ │ │ ├── TableComponent.vue │ │ │ │ ├── TableConfiguration.vue │ │ │ │ ├── TableFooterIndicator.vue │ │ │ │ ├── TableRow.vue │ │ │ │ ├── table-footer-indicator.scss │ │ │ │ ├── table-row.scss │ │ │ │ └── table.scss │ │ │ ├── constants.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── telemetryTableStylesInterceptor.js │ │ ├── themes/ │ │ │ ├── darkmatter-theme.scss │ │ │ ├── darkmatter.js │ │ │ ├── espresso-theme.scss │ │ │ ├── espresso.js │ │ │ ├── installTheme.js │ │ │ ├── snow-theme.scss │ │ │ └── snow.js │ │ ├── timeConductor/ │ │ │ ├── ConductorAxis.vue │ │ │ ├── ConductorClock.vue │ │ │ ├── ConductorComponent.vue │ │ │ ├── ConductorHistory.vue │ │ │ ├── ConductorInputsFixed.vue │ │ │ ├── ConductorInputsRealtime.vue │ │ │ ├── ConductorMode.vue │ │ │ ├── ConductorModeIcon.vue │ │ │ ├── ConductorPopUp.vue │ │ │ ├── ConductorTimeSystem.vue │ │ │ ├── DatePicker.vue │ │ │ ├── DateTimePopupFixed.vue │ │ │ ├── TimePopupFixed.vue │ │ │ ├── TimePopupRealtime.vue │ │ │ ├── clock-mixin.js │ │ │ ├── conductor-axis.scss │ │ │ ├── conductor-mode-icon.scss │ │ │ ├── conductor.scss │ │ │ ├── conductorPopUpManager.js │ │ │ ├── date-picker.scss │ │ │ ├── independent/ │ │ │ │ ├── IndependentClock.vue │ │ │ │ ├── IndependentMode.vue │ │ │ │ ├── IndependentTimeConductor.vue │ │ │ │ └── useIndependentTimeConductorPopUp.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── useClock.js │ │ │ ├── useClockOffsets.js │ │ │ ├── useTick.js │ │ │ ├── useTime.js │ │ │ ├── useTimeBounds.js │ │ │ ├── useTimeContext.js │ │ │ ├── useTimeMode.js │ │ │ ├── useTimeSystem.js │ │ │ └── utcMultiTimeFormat.js │ │ ├── timeline/ │ │ │ ├── Container.js │ │ │ ├── ExtendedLinesBus.js │ │ │ ├── ExtendedLinesOverlay.vue │ │ │ ├── TimelineCompositionPolicy.js │ │ │ ├── TimelineElementsContent.vue │ │ │ ├── TimelineElementsPool.vue │ │ │ ├── TimelineElementsViewProvider.js │ │ │ ├── TimelineObjectView.vue │ │ │ ├── TimelineViewLayout.vue │ │ │ ├── TimelineViewProvider.js │ │ │ ├── configuration.js │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── timeline.scss │ │ │ └── timelineInterceptor.js │ │ ├── timelist/ │ │ │ ├── ExpandedViewItem.vue │ │ │ ├── TimelistComponent.vue │ │ │ ├── TimelistCompositionPolicy.js │ │ │ ├── TimelistViewProvider.js │ │ │ ├── constants.js │ │ │ ├── inspector/ │ │ │ │ ├── EventProperties.vue │ │ │ │ ├── FilteringComponent.vue │ │ │ │ ├── TimeListInspectorViewProvider.js │ │ │ │ └── TimelistPropertiesView.vue │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ ├── svg-progress.js │ │ │ └── timelist.scss │ │ ├── timer/ │ │ │ ├── TimerViewProvider.js │ │ │ ├── actions/ │ │ │ │ ├── PauseTimerAction.js │ │ │ │ ├── RestartTimerAction.js │ │ │ │ ├── StartTimerAction.js │ │ │ │ └── StopTimerAction.js │ │ │ ├── components/ │ │ │ │ └── TimerComponent.vue │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── userIndicator/ │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── MissionStatusPopup.vue │ │ │ │ └── UserIndicator.vue │ │ │ ├── plugin.js │ │ │ ├── pluginSpec.js │ │ │ └── user-indicator.scss │ │ ├── utcTimeSystem/ │ │ │ ├── DurationFormat.js │ │ │ ├── LocalClock.js │ │ │ ├── UTCTimeFormat.js │ │ │ ├── UTCTimeSystem.js │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── viewDatumAction/ │ │ │ ├── ViewDatumAction.js │ │ │ ├── components/ │ │ │ │ ├── MetadataList.vue │ │ │ │ └── metadata-list.scss │ │ │ ├── plugin.js │ │ │ └── pluginSpec.js │ │ ├── viewLargeAction/ │ │ │ ├── plugin.js │ │ │ └── viewLargeAction.js │ │ └── webPage/ │ │ ├── WebPageViewProvider.js │ │ ├── components/ │ │ │ └── WebPage.vue │ │ ├── plugin.js │ │ └── pluginSpec.js │ ├── selection/ │ │ └── Selection.js │ ├── styles/ │ │ ├── _about.scss │ │ ├── _animations.scss │ │ ├── _constants-darkmatter.scss │ │ ├── _constants-espresso.scss │ │ ├── _constants-maelstrom.scss │ │ ├── _constants-mobile.scss │ │ ├── _constants-snow.scss │ │ ├── _constants.scss │ │ ├── _controls.scss │ │ ├── _forms.scss │ │ ├── _global.scss │ │ ├── _glyphs.scss │ │ ├── _legacy-messages.scss │ │ ├── _legacy-plots.scss │ │ ├── _legacy.scss │ │ ├── _limits.scss │ │ ├── _mixins.scss │ │ ├── _status.scss │ │ ├── _table.scss │ │ ├── fonts/ │ │ │ ├── Open MCT Symbols 12px.json │ │ │ └── Open MCT Symbols 16px.json │ │ ├── notebook.scss │ │ ├── plotly.scss │ │ ├── vendor/ │ │ │ └── normalize-min.scss │ │ └── vue-styles.scss │ ├── tools/ │ │ ├── url.js │ │ └── urlSpec.js │ ├── ui/ │ │ ├── color/ │ │ │ ├── Color.js │ │ │ ├── ColorHelper.js │ │ │ ├── ColorPalette.js │ │ │ └── ColorSwatch.vue │ │ ├── components/ │ │ │ ├── COMPONENTS.md │ │ │ ├── ContextMenuDropDown.vue │ │ │ ├── List/ │ │ │ │ ├── ListHeader.vue │ │ │ │ ├── ListItem.vue │ │ │ │ ├── ListView.vue │ │ │ │ └── list-view.scss │ │ │ ├── ObjectFrame.vue │ │ │ ├── ObjectLabel.vue │ │ │ ├── ObjectPath.vue │ │ │ ├── ObjectPathString.vue │ │ │ ├── ObjectView.vue │ │ │ ├── ProgressBar.vue │ │ │ ├── SearchComponent.vue │ │ │ ├── TimeSystemAxis.vue │ │ │ ├── ToggleSwitch.vue │ │ │ ├── ViewControl.vue │ │ │ ├── object-frame.scss │ │ │ ├── object-label.scss │ │ │ ├── progress-bar.scss │ │ │ ├── search.scss │ │ │ ├── swim-lane/ │ │ │ │ ├── SwimLane.vue │ │ │ │ └── swimlane.scss │ │ │ ├── timesystem-axis.scss │ │ │ └── toggle-switch.scss │ │ ├── composables/ │ │ │ ├── alignmentContext.js │ │ │ ├── edit.js │ │ │ ├── event.js │ │ │ └── resize.js │ │ ├── inspector/ │ │ │ ├── InspectorDetailsSpec.js │ │ │ ├── InspectorPanel.vue │ │ │ ├── InspectorStylesSpec.js │ │ │ ├── InspectorStylesSpecMocks.js │ │ │ ├── InspectorTabs.vue │ │ │ ├── InspectorViews.vue │ │ │ ├── ObjectName.vue │ │ │ └── inspector.scss │ │ ├── layout/ │ │ │ ├── AboutDialog.vue │ │ │ ├── AppLayout.vue │ │ │ ├── AppLogo.vue │ │ │ ├── BrowseBar.vue │ │ │ ├── Container.js │ │ │ ├── CreateButton.vue │ │ │ ├── Frame.js │ │ │ ├── LayoutSpec.js │ │ │ ├── MctTree.vue │ │ │ ├── MultipaneContainer.vue │ │ │ ├── PaneContainer.vue │ │ │ ├── RecentObjectsList.vue │ │ │ ├── RecentObjectsListItem.vue │ │ │ ├── ResizeHandle/ │ │ │ │ └── ResizeHandle.vue │ │ │ ├── TreeItem.vue │ │ │ ├── ViewSwitcher.vue │ │ │ ├── app-logo.scss │ │ │ ├── create-button.scss │ │ │ ├── layout.scss │ │ │ ├── mct-tree.scss │ │ │ ├── pane.scss │ │ │ ├── recent-objects.scss │ │ │ ├── search/ │ │ │ │ ├── AnnotationSearchResult.vue │ │ │ │ ├── GrandSearch.vue │ │ │ │ ├── GrandSearchSpec.js │ │ │ │ ├── ObjectSearchResult.vue │ │ │ │ ├── SearchResultsDropDown.vue │ │ │ │ └── search.scss │ │ │ └── status-bar/ │ │ │ ├── NotificationBanner.vue │ │ │ ├── StatusIndicators.vue │ │ │ ├── indicators.scss │ │ │ └── notification-banner.scss │ │ ├── mixins/ │ │ │ ├── context-menu-gesture.js │ │ │ ├── object-link.js │ │ │ ├── staleness-mixin.js │ │ │ └── toggle-mixin.js │ │ ├── preview/ │ │ │ ├── PreviewAction.js │ │ │ ├── PreviewContainer.vue │ │ │ ├── PreviewHeader.vue │ │ │ ├── ViewHistoricalDataAction.js │ │ │ ├── plugin.js │ │ │ └── preview.scss │ │ ├── registries/ │ │ │ ├── InspectorViewRegistry.js │ │ │ ├── ToolbarRegistry.js │ │ │ └── ViewRegistry.js │ │ ├── router/ │ │ │ ├── ApplicationRouter.js │ │ │ ├── ApplicationRouterSpec.js │ │ │ └── Browse.js │ │ └── toolbar/ │ │ ├── ToolbarContainer.vue │ │ └── components/ │ │ ├── ToolbarButton.vue │ │ ├── ToolbarCheckbox.vue │ │ ├── ToolbarColorPicker.vue │ │ ├── ToolbarInput.vue │ │ ├── ToolbarMenu.vue │ │ ├── ToolbarSelectMenu.vue │ │ ├── ToolbarSeparator.vue │ │ ├── ToolbarToggleButton.vue │ │ └── toolbar-checkbox.scss │ └── utils/ │ ├── agent/ │ │ ├── Agent.js │ │ └── AgentSpec.js │ ├── clipboard.js │ ├── clock/ │ │ └── DefaultClock.js │ ├── constants.js │ ├── debounce.js │ ├── duration.js │ ├── encoding.js │ ├── mount.js │ ├── raf.js │ ├── rafSpec.js │ ├── random.js │ ├── sanitization.js │ ├── staleness.js │ ├── template/ │ │ ├── templateHelpers.js │ │ └── templateHelpersSpec.js │ ├── testing/ │ │ └── mockLocalStorage.js │ ├── testing.js │ ├── textHighlight/ │ │ └── TextHighlight.vue │ ├── throttle.js │ ├── useEventBus.js │ ├── visibility/ │ │ └── VisibilityObserver.js │ ├── vue/ │ │ ├── useDragResizer.js │ │ ├── useFlexContainers.js │ │ └── useIsEditing.js │ └── vueWrapHtmlElement.js └── tsconfig.json