* fix large view in tree
* remove existing view concept
* fix plots in overlays
* remove debug and actually remove overlays when dismissed
* add test
* improve tests
* move test
* attempt to fix
* reenable test
* going to revert most of this, but works
* slowly reverting changes
* further reversions to the mean
* reversion to the mean
* revert
* change to use openmct element
* reference issue
* reference issue
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* refactor: move package.json to type: module
this is where the fun begins
* chore: move webpack common and prod to esm
* chore: move webpack to esm, eslint to explicit cjs
* refactor: migrate all files to esm
* style: lint
* refactor: begin moving karma to cjs, use dynamic esm import
* refactor: move index-test to cjs
* refactor: begin moving e2e to ESM
this was manual. I'm committing this because I'm about to try the `cjstoesm` tool
* refactor: move all to esm
* fix: make all e2e tests use .js imports
* refactor: begin moving exports to esm
* refactor: use URL transforms instead of __dirname
* fix: use libraryExport: default to properly handle openmct
* fix: export all playwright configs as modules
* refactor: move all instances of __dirname to import.meta.url
* refactor: lint, drop unnecessary URL call
* fix: use correct URL path on helper/addNoneditableObject.js
* fix: more incorrect URL resolve issues
* fix: parse json after reading it
* first draft
* add some more debugging
* add test and remove debug
* Remove debug function
* consolidate destroy
* add better canvas name and handle if gl has gone missing
* extra check for extension
* simple prototype
* add a few examples
* revert to original
* only check first element
* only print when we're firing
* need to return status
* ignore polling logic if not visible
* convert to es6 classes
* add private variables
* remove debug code
* revert on this branch webgl changes
* fix draw loader import
* do not use v-model for search component
* remove flakey unit tests and add e2e tests for same behavior
* remove fdescribe
* add test word
* add simple functional test for tabs
* add performance test for tabs
* make tab selection more explict
* better describe expects
* lint
* switch back to fixed time
* fix perf test for webpacked version
* lint
* relax condition
* relax condition
* resolve PR comments
* address PR review comments
* typo on role vs locator
* Change the mount utility to use Vue's createApp and defineComponent methods
* Fix display layout memory leaks caused by `getSelectionContext`
* fix some display layout leaks due to use of slots
* Fix imagery memory leak (removed span tag). NOTE: CompassRose svg leaks memory - must test on firefox to see if this is a Chrome leak.
* Fix ActionsAPI action collection and applicable actions leak.
* Fix flexible layout memory leaks - remove listeners on unmount. NOTE: One type of overlay plot (Rover Yaw) is still leaking.
* pass in the el on mount
* e2e test config and spec changes
* Remove mounting of limit lines. Use components directly
* test: remove `.only()`
* Fix display layout memory leaks
* Enable passing tests
* e2e README and appActions should be what master has.
* lint: add word to cspell list
* lint: fixes
* lint:fix
* fix: revert `el` change
* fix: remove empty span
* fix: creating shapes in displayLayout
* fix: avoid `splice` as it loses reactivity
* test: reduce timeout time
* quick fixes
* add prod mode and convert the test config to select the correct mode
* Fix webpack prod config
* Add launch flag for exposing window.gc
* never worked
* explicit naming
* rename
* We don't need to destroy view providers
* test: increase timeout time
* test: unskip all mem tests
* fix(vue-loader): disable static hoisting
* chore: run `test:perf:memory`
* Don't destroy view providers
* Move context menu once listener to beforeUnmount instead.
* Disconnect all resize observers on unmount
* Delete Test vue component
* Use beforeUnmount and remove splice(0) in favor of [] for emptying arrays
* re-structure
* fix: unregister listener in pane.vue
* test: tweak timeouts
* chore: lint:fix
* test: unskip perf tests
* fix: unregister events properly
* fix: unregister listener
* fix: unregister listener
* fix: unregister listener
* fix: use `unmounted()`
* fix: unregister listeners
* fix: unregister listener properly
* chore: lint:fix
* test: fix imagery layer toggle test
* test: increase timeout
* Don't use anonymous functions for listeners
* Destroy objects and event listeners properly
* Delete config stores that are created by components
* Use the right unmount hook. Destroy mounted view on unmount.
* Use unmounted, not beforeUnmounted
* Lint fixes
* Fix time strip memory leak
* Undo unneeded change for memory leaks.
* chore: combine common webpack configs
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* remove series object from highlights
* remove series models from legend reactive data
* drawing all annotations at once is way faster
* fix multi annotations
* lots of reactive things depending on config
* make annotation lookup faster
* lint
* readd perf test
* address PR comments
* fix highlight typo
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* fix annotations load to not happen on start
* remove range checking per annotated point
* back to local variable
* reduce tagging size to improve reliability of test
* remove .only
* remove .only
* reduce hz rate for functional test and keep high frequency test in performance
* remove console.debugs
* this test runs pretty fast now
* fix network request tests to match new behavior
* Set the raw series limits so that we can get the raw series limits
* fix: `toRaw()` the other gets/sets/deletes
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* Replacing all instances of the new Vue() component creation pattern
* In Vue 3, components cannot be created on the fly and mounted off-DOM. The suggested fix from Vue is to use createApp, but in the context of Open MCT this means dozens of Vue apps being created and destroyed at any given moment. Instead, we have used a community hack for creating individual components.
* beforeDestroy() -> beforeUnmount()
* destroyed() -> unmounted()
* The addition of deep: true option on Array listeners is now required to detect Array changes
* Open MCT is now mounted on a child div instead of directly on document.body
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* New option to show/hide stacked plot aggregate legend - defaulted to not show.
Use the Plot component in the StackedPlotItem component for simplicity and show/hide sub-legends as needed.
* Fix position and expanded classes when children are showing their legends
* Fix broken tests and ensure gridlines and cursorguides work.
* Adds e2e test for new legend configuration for stacked plot
* Address review comments - Remove commented out code, optimize property lookup, fix bug with staleness
* Remove the isStale icon in the legend when a plot is inside a stacked plot.
---------
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
* Change logic so that the rectangle is only drawn on one axis
* Filter firstDrawableAxis before the rest of the logic
* Update to filter yAxisIds by the canDraw function
* Fix typo when saving the user specified range
* Ensure range is specified when autoscale is turned off
* Don't redraw unless absolutely necessary
* Add 'stats' to the handled attributes for redrawing plots
* Handle x axis displayRange, marker shape and size to redraw
* If there are is no closest data point for a plot, skip annotation gathering
* Ensure that min and max user defined ranges are valid when autoscale is disabled. Otherwise, enable autoscale to true.
* Fix autoscale e2e test
* updated snapshot
* Update e2e/README.md
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Add listeners to remove stacked plot series and make keys unique
* don't add overlay plots to stacked plot legends
* Ensure series colors are drawn correctly in the plot legend
* Remove legend from mct plot. Remove series reactivity from stackd plot and add them to the legend instead.
* Clean up stacked plots so that the plot legend needs fewer props
Also make sure that plot selection inside a stacked plot works - this had regressed due to plot annotations
* Fix console error in plot elements pool and plot legend - reset arrays to empty
* Ensure color in the y axis swatch updates correctly
* Fix small issues with removing objects from STacked plots
* Fix selection for annotations and also select stacked plot child items
* fix notebook tagging
* remove unused annotation editor and change selection to single object
* remove reference to deleted css
* fix e2e tests
* Fix small typos into the selection context for Notebooks.
* Add a typ that identifies that an annotation selection is coming from a search result
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* First pass
* Get bounding box min and max values based on the y axis that a series belongs to.
Handle removal of telemetry from an overlay plot
Handle addition of telemetry after annotations have been saved to an overlay plot
* Fix showing the rectangle for a given target's bounding box.
* remove invalid comment
Co-authored-by: Scott Bell <scott@traclabs.com>
* Implement new search and tagging for notebooks
* Add inspector and plot annotations
* Clean up inspector for plots and other views
* Bump webpack defaults for windows
* Notebook annotations are shown in inspector now
* Only allow annotations if plot is paused or in fixed time. also do not mutate if immutable
* Key off local events instead of remote (for now)
* add some types to XAxisModel
* Add UI to toggle log mode.
* handle autoscale toggle for logMode
* add log plot tests
* test log ticks work after refresh
* add an initial manually-created visual snapshot test of log plot chart
* update plot unit tests for log mode
* remove scale variable for now
* make v-for keys unique per template to avoid a small performance hazard of v-for markup in the same subtree of a template having clashing keys (Vue quirk)
Co-authored-by: unlikelyzero <jchill2@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* add some types to XAxisModel
* some more type defs and small code tweaks while getting familiar with plots
* more type annotations and a few small tweaks
* more type annotations and small tweaks to make types show
* add mocha types
* Add karma and jasmine, too
* further simplify plot canvas creation
* further simplify plot canvas creation
* update types, avoid runtime behavior in type definition that breaks SeriesCollection
* undo the changes to MctChart, improve it later
* lint fix
Co-authored-by: unlikelyzero <jchill2@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
* Update version number (#4759)
* update copyright (#4775)
* Observe changes to sub-objects in flexible layouts. (#4780)
* Get child of flex layout as mutable if possible
* Fix bug when no default notebook defined
* Follow domain object changes for Independent time conductor (#4783)
* Track if domain object changes when independent time conductor is in use.
* fix typo when using fallback template (#4784)
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* touch every file on earth to update copyright
* update one more
* pick up 2017 2018 2019
* revert fuchs copyright
* revert other bundle copyrights
* somehow missed one
* Adds new types for Bar Graphs (#4168)
* Adds new spectral test data
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* Styling for plot limits and colors
* Updates to limit provider and css
* Change limits related CSS "*--upper" and "*--lower" to "*--upr" and
"*--lwr" for better parity with legacy naming;
* Refactor limit class to util
* Use new classes for sine wave generator for red-low and yellow-high
* Added modifier classes for right and below-aligned labels;
* Prevent label overlap of limits as much as possible
* Add border colors to limit labels for better visual ties to their lines
* Add documentation for limit level specification API change
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>