* Provide renderWhenVisible for LadTables
* fix open in new tab
* add test for open in new tab
* fix test to include renderWhenVisible
* refactor test
* fix tests
* fix tests
* having timing issues now
* if role is removed from user, reprompt
* add some basic user login tests
* add more robust user tests
* add more robust user tests
* resolve PR comments
* setup event listener earlier
* Add double click event to expand image view
* Add performance tests for large view and close
button
* Add example imagery in flexible layout to test double-click functionality
* Remove click event listener in ImageryView.vue
* Move test to 'Example Imagery in Flexible layout'
* Refactor exampleImagery.e2e.spec.js
* Remove unnecessary code for opening and closing
large view in imagery.contract.per.spec.js
* Replace pageSelector with getByRole on double-click image test
* Add role and aria-label to focused image
* Remove unnecessary code and role attribute from ImageryView.vue
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Change the centering algorithm for timelist
Make duration formatting better
* test: add time list countdown and countup test
* test: respond to comments
* chore: lint fix
* fix: lint errors and visual suite failures
* Change parameters to options object
* Fix regression with auto scroll. Improve code readability
* Add defaults for getPreciseDuration options object
* Defaults for options
* Add missing await
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* refactor to es6 class
* change URL on path or params change
* add test for url
* put into edit mode for test
* es6 module export
* a11y: add `status` role to clock component
* a11y: add label to overlay
* a11y: update roles for search results
* a11y: add `dialog` role and label for PreviewContainer
* refactor(e2e): get rid of a bunch of `page.locator()`s
* refactor(e2e): spruce up locators
* test: fix unit tests
* fix tests with new aria labels
* fix tests with new aria labels
* fix tests with new aria labels
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@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
* chore: use ESModule imports for d3 libraries
* chore: add d3 types
* chore: use minified plotly
* chore: use ESModule style imports for printj
* chore: use `terser-webpack-plugin` to minimize
* Revert "chore: use minified plotly"
This reverts commit 0ae9b39d41b6e38f0fe38cd89a2cd73869f31c36.
* Revert "Revert "chore: use minified plotly""
This reverts commit 08973a2d2e6675206907f678d447717ac6526613.
* fix: use default minification options
* test: stabilize notebook image drop e2e test
* test(fix): remove .only()
* refactor: convert TelemetryValueFormatter to es6 class
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* Add a VISUAL_URL constant and remove all vestiges of hide inspector and tree
* hide timer and add concurrency
* turn off concurrency
* factor out old appAction
* Add expand button to panes
* remove old slow annotations
* fix fault
* update domcontentloaded
* missed refactor
* driveby: setTimeBounds private
* add comments to the percyCSS
* suggest MISSION_TIME
* more notes
* regen
* clean up test
* driveby: clean up order
* restructure
* add new suite now that i'ts hidden
* use mission time everywhere possible
* driveby
* rerun generatedata
* comments
* lint fix
* add inital pass of a11y tests
* first pass for fixing a11y problems
* update build
* add copyright
* check for slashes
* rename files
* update testcases
* update to latest
* updates
* section 508
* final version
* remove leftover
* comments
* documentation
* bad merge
* comment
* use current ruleset
* typo
* feedback
* remove time conductor due to false positives
* default to closed tabs
* add some more accessiblity checking
* change to a condition widget and update search
* lint fix
* turns this into a single function
* update doc to match single function
* update to single function
* update to new function
* lint
* update locator for search input
* fix extra page
* why
* comments
* comments
* refacotr
* wrong paths and fixes
* inspector view needs renderWhenVisible function
* add a default visualization source
* add plugin to exercise data pivotting
* use correct key string
* test skeleton
* add e2e test
---------
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
* add new objects for navigation testing
* add test for remaining objects
* cleanup plotly on dismount
* lint
* remove vestigial object
* do not need to call destroy here
* do not need to call destroy here
* refactor: ensure path to test file always resolves
* refactor: better locators
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Closes#7105
- Removed `:not(:focus)` CSS check for hover.
- New theme constant for a more subdued hover effect to differentiate
from active editing mode.
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Use specified group order for plans
* Allow groupIds to be a function
* Fix typo in if statement
* Check that activities are present for a given group
* Change refresh to emit the new model
* Update domainobject on change
* Revert changes for domainObject
* Revert groupIds as functions. Check if groups are objects with names instead.
* Add e2e test for plan swim lane order
* Address review comments - improve if statement
* Move function to right util helper
* Fix path for imported code
* Remove focused test
* Change the name of the ordered group configuration
* fix opacity issue
* wip, though selection still weird
* remove debugging
* plots still have issue with last tag
* add some better tests
* Apply suggestions from code review
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
* remove hardlined classnames
* case sensitivity
* good job tests finding issue
---------
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* wrote an e2e test for can create a notebook object
* made suggested changes to notebook.e2e.spec.js
* made suggested changes to notebook.e2e.spec.js
* made changes to newly created notebook
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* 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
* fix: use the correct event name for frame deletion
* test: add test for frame removal
* refactor: update test locators, add a11y
* test: upgrade locator
* test: assert dialog text
* Closes#5536, #5538
- Significant changes to code flow for better handling of missing telemetry values; closes#5538.
- Changes to flow to handle range display when updating composition and when ranges are set by limits.
- Added `GaugeCompositionPolicy.js`; closes#5536.
* Closes#5536, #5538
- Code cleanup, linting.
* Closes#5538
- Linting fixes.
* Closes#5538
- Added test for 'Gauge does not display NaN when data not available'.
* Closes#5538
- Refined test.
* Closes#5538
- Refined 'NaN' test.
- Added test for 'Gauge enforces composition policy';
* Closes#5538
- Fix linting issues.
* Closes#5538
- Suggested changes from PR review.
* Closes#5538
- Suggested changes from PR review.
* Update e2e/tests/functional/plugins/gauge/gauge.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* chore: lint:fix
---------
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* only show marquee for selected item
* Revert "only show marquee for selected item"
This reverts commit d17af210c2.
* revert change made in #6767
* create framework for displayLayout visual test
* WIP create display layout for test
* only show marquee for selected
* fix selection of object in nested layout
* fix grid and code cleanup
* add child layouts side by side
* code cleanup
* externalize setup for reuse in multiple tests
* write marquee and grid tests
* fix object in layout locator
* fix nested layout selector
* add aria label to layouts
* fix layout locator
* add jsdoc for test setup function
* make test more efficient
* cleanup and linting
* update locator
* update locators
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* 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
* limits shown
* use more verbose way for uniqueness
* when adding items, check for what columns we need
* make header logic much simpler
* add test coverage
* fix test and lint
* Update e2e/tests/functional/plugins/lad/lad.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Update e2e/tests/functional/plugins/lad/lad.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* change to getByTitle
* lint and change to getByLabel
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* refactor: convert to ES6 function
* fix: include `keyString` in event name
- This negates the need for complicated logic in determining which objectView the action was intended for
* fix: handle the case of currentView being null
* fix: add keyString to flexibleLayout toolbar events
* fix: properly unregister listeners
* fix: remove unused imports
* fix: revert parameter reorder
* refactor: replace usage of `arguments` with `...args`
* fix: add a11y to display layout + toolbar
* test: add first cut of layout toolbar suite
* test: cleanup a bit and add Image test
* test: add stubs
* fix: remove unused variable
* refactor(DisplayLayoutToolbar): convert to ES6 class
* test: generate localStorage data for display layout tests
* fix: clarify "Add" button label
* test: cleanup and don't parameterize tests
* test: fix path for recycled_local_storage.json
* fix: path to local storage file
* docs: add documentation for
utilizing localStorage in e2e
* fix: path to recycled_local_storage.json
* docs: add note hyperlink
Finish tests for gauge, telemetry tables, recently viewed items, and time strips
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
* chore: remove custom `compatConfig` settings
* chore: remove `vue-compat` and adjust webpack config
* chore: explicitly define Vue feature flags
* fix: `_data` property moved to `_.data`
* fix(e2e): revert to original test procedures
* refactor: replace final instances of `$set`
* refactor: remove `Vue` imports from tests
* refactor: `Vue.ref()` -> `ref()`
* refactor: actually push the changes...
* test: replace unit test with e2e test
* test: remove test as it's already covered by e2e
* fix(test): use `$ref`s instead of `$children`
* test(fix): more `$refs`
* fix(test): more `$refs`
* fix(test): use `$refs` in InspectorStyles tests
* fix(SearchComponent): use `$attrs` correctly
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* handle unknown files and deal with copy/paste
* add some nice errors if couch pukes
* added how to adjust couchdb limits
* throw error on anntotation change
* keep blockquotes
* add test for blockquotes
* allow multi-file drop of images too
* add test for big files
* spell check
* check for null
* need to ignore console errors
* reorder tests so we can ignore console errors
* when creating new entry, ready it for editing
* fix tests and empty embeds
* fix tests
* found similar issue from notebooks in plots
* try marked out
* fix url validation
* now rendering blockquotes properly
* add abbrv, link titles, and strikethrough
* fix tests and lint
* Closes#6060
- CSS resets and styling for markdown-related HTML markup in Notebook entries.
- Better styling and cursor affordances for Notebook entry selection and editing interaction flow.
* add line breaks option
* Closes#6060
- Tab
* Closes#6060
- Conversion of contenteditable-div to textarea started.
- Stubbed in textarea with styles.
* have it markdown with a textarea and adjust size automatically
* Closes#6060
- Padding added back to text `div` area.
* Closes#6060
- Styles added to support Shift Log and hover behavior for entries on locked pages.
- Removed `--major` styling from Shift Log Commit Entries button
to reduce confusion with entry commit button.
- CSS code cleanups.
* two step focus/edit. also scroll into view for editing
* add markdown, strip all tags, and truncate
* lint
* remove unneeded code
* fix notebook entry, selected page may also be null
* fix existing notebook tests
* lint
* fix whitelist
* readd whitelist
* lint
* fix link tests
* fix tests
* fix tagging test
* add some markdown test
* get rid of pause
* add another sanitization step
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* add script
* add package.json and script to delete annotations
* amend help
* fix issues
* added explicit runs
* add design document and index creation to script
* update tests to wait for url to change
* i think we can remove this deprecated function now
* migrating to new structure - wip
* notebooks work, now to plots and images
* resolve conflicts
* fix search
* add to readme
* spelling
* fix unit test
* add search by view for big search speedup
* spelling
* fix out of order search
* improve reliability of plot tagging tests
* 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>
* initial drag drop, wip
* images work as snapshots, but need to disable navigate to actions
* embed image name
* works now with images, need to be refactor so can duplicate code for entries too
* works dropping on entries too
* handle remote images too
* add e2e test
* spelling
* address most PR comments
* Add a VISUAL_URL constant and remove all vestiges of hide inspector and tree
* hide timer and add concurrency
* turn off concurrency
* factor out old appAction
* Add expand button to panes
* remove old slow annotations
* fix fault
* update domcontentloaded
* missed refactor
* driveby: setTimeBounds private
* add comments to the percyCSS
* suggest MISSION_TIME
* more notes
* regen
* clean up test
* driveby: clean up order
* restructure
* add new suite now that i'ts hidden
* use mission time everywhere possible
* driveby
* rerun generatedata
* comments
* lintfix
* 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: register event listeners etc in `created()` hook
* fix: initialize `stalenessSubscription` before composition load and in `created()` hook
* refactor(test): make `openmct` const
* refactor: update overlayPlot spec to Vue 3 and fix tests
* refactor: fix eslint errors
* refactor: move initialization steps to `created()` hook
* test: re-enable and fix stackedPlot test suite
* fix: `hideTree=true` hides the tree again
* fix: add back in check on mount
* test: fix Layout tests
* fix: BarGraph test
* fix: plot inspector tests
* fix: reenable grand search tests
* fix: inspectorStyles test suite
* fix: re-enable most timeline tests
* fix: no need to hideTree in appactions
* fix: re-enable more tests
* test: re-enable more tests
* test: re-enable most plot tests
* chore: `lint:fix`
* test: re-enable timelist suite
* fix(#7016): timers count down or up to a target date
* test: add regression tests to cover disabled unit tests
* refactor: lint:fix
* refactor: no need for momentjs here
* fix: timerAction missed refactor
* fix: ensure timestamp is always UTC string
* test: use role selectors
* docs: add instructions for clock override in e2e
* docs: update
* Update readme
* lint
* spelling fixes
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* fix tree name issue
* add name to key, and name observers to recent objects
* no need to change key
* make more of app reactive to name changes
* fix browse bar and document title
* listen in properties for name changes
* add tests for renaming
* yeah spelling linter
* add semantic tags to forms and fixup tests
* change purpose
* actually delete the listener
* ensuring deletion
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* refactor: use `getBounds()` instead of `bounds()`
* fix: use `loadDelay` in generator subscription
* refactor: fix up e2e test
* fix: remove `.only()`
* refactor: lint
* Start to fix up conditionSet test with comments
* test: edit conditionSet to add delay value
* test: tests the case where telemetry is available
* fix: remove `.only()`
* test: add comments, clarify assertion
* refactor: lint:fix
* test: fix conditionSet default condition name test
* test: add assertions to stabilize tags tests
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* Don't set conductor popup to null unless the view is being destroyed
* Replace beforeDestroy with beforeUnmount
* Propagate plot tick widths to timeline view
* Check if conductor popup exists before trying to remove it from the dom
* Fix imagery e2e test
* Revert accidental commit
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Closes#6864
- CSS fixes to remove problematic duplicate overflow handling.
* fix(e2e): stabilize autoscale test
* fix(e2e): mark overlay plot tagging test as slow
* fix(e2e): stabilize ITC e2e test
* fix(e2e): don't use hard wait
* fix: remove .only 😳
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.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
* fix: remove `tree-item-destroyed` event
- Composition listeners should only be removed if the item has been deleted or its parent has been collapsed. Both are handled by `mct-tree` already, so doing this additionally when tree-items unmount is redundant.
- In addition to that, any time the `visibleTreeItems` array changes, all tree-items will unmount, so this just doesn't work as intended-- it will unregister all composition listeners whenever the tree changes!
* test: stabilize imagery test
- Use keyboard gestures to navigate
* fix: lint:fix
* Use the current timestamp from the global clock. Use mode changes to set if the view is fixed time or real time
* Reload the page after adding a plan and then change the url params.
* clock, timeConductor and appActions fixes
* Ensure realtime uses upstream context when available
Eliminate ambiguity when looking for time conductor locator
* Fix log plot e2e tests
* Fix displayLayout e2e tests
* Specify global time conductor to fix issues with duplicate selectors with independent time contexts
* a11y: ARIA for conductor and independent time conductor
* a11y: fix label collisions, specify 'Menu' in label
* Add watch mode
* fix(e2e): update appActions and tests to use a11y locators for ITC
* Don't remove the itc popup from the DOM. Just show/hide it once it's added the first time.
* test(e2e): disable one imagery test due to known bug
* Add fixme to tagging tests, issue described in 6822
* Fix locator for time conductor popups
* Improve how time bounds are set in independent time conductor.
Fix tests for flexible layout and timestrip
* Fix some tests for itc for display layouts
* Fix Inspector tabs remounting on change
* fix autoscale test and snapshot
* Fix telemetry table test
* Fix timestrip test
* e2e: move test info annotations to within test
* 6826: Fixes padStart error due to using it on a number rather than a string
* fix(e2e): update snapshots
* fix(e2e): fix restricted notebook locator
* fix(restrictedNotebook): fix issue causing sections not to update on lock
* fix(restrictedNotebook): fix issue causing snapshots to not be able to be deleted from a locked page
- Using `this.$delete(arr, index)` does not update the `length` property on the underlying target object, so it can lead to bizarre issues where your array is of length 4 but it has 3 objects in it.
* fix: replace all instances of `$delete` with `Array.splice()` or `delete`
* fix(e2e): fix grand search test
* fix(#3117): can remove item from displayLayout via tree context menu while viewing another item
* fix: remove typo
* Wait for background image to load
* fix(#6832): timelist events can tick down
* fix: ensure that menuitems have the raw objects so emits work
* fix: assign new arrays instead of editing state in-place
* refactor(timelist): use `getClock()` instead of `clock()`
* Revert "refactor(timelist): use `getClock()` instead of `clock()`"
This reverts commit d888553112.
* refactor(timelist): use new timeAPI
* Stop ticking when the independent time context is disabled (#6833)
* Turn off the clock ticket for independent time conductor when it is disabled
* Fix linting issues
---------
Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
* test: update couchdb notebook test
* fix: codeQL warnings
* fix(tree-item): infinite spinner issue
- Using `indexOf()` with an object was failing due to some items in the tree being Proxy-wrapped and others not. So instead, use `findIndex()` with a predicate that compares the navigationPaths of both objects
* [Timer] Remove "refresh" call, it is not needed (#6841)
* removing an unneccessary refresh that waas causing many get requests
* lets just pretend this never happened
* fix(mct-tree): maintain reactivity of all tree items
* Hide change role button in the indicator in cases where there is only… (#6840)
Hide change role button in the indicator in cases where there is only a single role available for the current user
---------
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: Jamie V <jamie.j.vigliotta@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>
* Fixed#4975 - Compact Time Conductor styling
* Fixed#5773 - Ubiquitous global clock
* Mode functionality added to TimeAPI
* TimeAPI modified to always have a ticking clock
* Mode dropdown added to independent and regular time conductors
* Overall conductor appearance modifications and enhancements
* TimeAPI methods deprecated with warnings
* Significant updates to markup, styling and behavior of main Time Conductor and independent version.
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Scott Bell <scott@traclabs.com>
* Add additional test roles to example user
* Add session storage and role to user indicator
* Update example user provider
* Added selection dialog to overlays and implemented for operator status
* Display role in user indicator
* Updates to broadcast channel lifecycle
* Update comment
* Comment width
* UserAPI role updates and UserIndicator improvement
* Moved prompt to UserIndicator
* Reconnect channel on error and UserIndicator updates
* Updates to status api canPRovideStatusForRole
* Cleanup
* Store status roles in an array instead of a singular value
* Added success notification and cleanup
* Lint
* Removed unused role param from status api call
* Remove default status role from example user plugin
* Removed status.getStatusRoleForCurrentUser
* Cleanup
* Cleanup
* Moved roleChannel to private field
* Separated input value from active role value
* More flight like status role names and parameter names
* Update statusRole parameter name
* Update default selection for roles if input is not chosen
* Update OperatorStatusIndicator install to hide if an observer
* console.log
* Return null instead of undefined
* Remove unneccesary filter on allRoles
* refactor: format with prettier
* Undid merge error
* Merge conflict extra line
* Copyright statement
* RoleChannelProvider to RoleChannel
* Throw error on no provider
* Change RoleChannel to ActiveRoleSynchronizer and update method calls to match
* iconClass to alert
* Add role selection step to beforeEach
* example-role to flight
* Dismiss overlay from exampleUser plugin which affected menu api positioning
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* adding abortSignal back to composition load
* suppress AbortError console.errors from couch, delay requests for test to trigger abort
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* Add tooltip api, extend object api to add telemetry composition lookups, and add tooltips to gauges/notebook embeds/plot legends/object frames/object names/time strips/recent objects/search results/object tree
* Add tooltips to telemetry/lad tables
* Styling normalization, sanding and polishing.
* Add tooltips for Conditional widgets and Tab Views
* Add tests
* Switch to using enum-ish consts for tooltip locations
* Trim LAD table row name to account for spacing required by linting rules
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
* 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>
* de-dupe method
* there can be only one... input per label
* there can be only one... id but we need none
* there can be only one... input
* create test and add multiple images to display
* WIP test written but not passing
* fix test
* Update e2e/tests/functional/plugins/imagery/exampleImagery.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Update e2e/tests/functional/plugins/imagery/exampleImagery.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* remove await from synchronous code
* linting
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Ensure timelist scrolling happens correctly for clock as well as fixed time
* If an activity has already started, show the duration as time to/since the end of the activity
* Addresses review comments: Reverse +/- indicators, removes milliseconds from times.
* Fix linting issues
* Add e2e test for timelist display
* Scroll to 'now' if available
* fix: setStatus when add/replace a plan in composition
* test: add regression test
* chore: lint:fix
* test: add visual tests for plan and gantt chart drafts
* test: add appActions, stabilize overlayPlot test
- Adds `waitForPlotsToRender`, a function that waits for all active `.plot` elements on the page to load and draw their series data
- Adds `getCanvasPixels`, a function that takes a canvas selector and retrieves an array of canvas pixel data.
- Modifies `getCanvasPixels` to use `page.evaluateHandle()` so that the canvas handle lifetime exists throughout the test (this was causing flakiness before)
* test: refactor and stabilize `plotRendering` tests
* test: remove redundant test suite
* test: stabilize plot legend color swatch test
* docs: mention `waitForPlotsToLoad()` in e2e docs
* refactor: have getCanvasPixels return actual rgba values
* docs: fix typo
* test: use appAction and fix reload wait condition
* docs: add additional context for `waitForPlotsToRender()`
* refactor: one-liner
* docs: tidy up docs
* test(visual): add theme to notification banner test name
* test: rename file
* test: switch to small example plan
* test: snapshot object-view only
* test: fix selectors
* refactor: chain locators together
* add e2e test
* fix: remove slow function
* test: After deactivating the button, new objects must be inserted and the button becomes active again
* test: ensure clear recent objects button is active or inactive
* add an event to notify when an object is inserted in the recents list
* add an event to notify when an object is inserted in the recents list
* fix: adjusting function name and add validation for triggering the event
* fix: add event to disable button only when user click ok to clear list of recents
* test: fix failing e2e + better assertions
---------
Co-authored-by: Jesse Mazzella <jessemazzella@gmail.com>
* Refactor string to stream
* add to restricted notebooks and allow for blank users
* forgot to add notebook
* use better types and fix test
* move streamToString
* add export group
* catch blank pages
* add simple prototype
* tags and metadata now exported
* add form for options
* revert notebook
* add simple e2e test
* add test stubs
* death to debug
* Closes#6321
- Set `user-select: none` on LAD Table td elements.
- Added hover effect to LAD Table rows as affordance of the Action
menu's availability.
* Add test to ensure rows cannot be selected but do show context menus
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* fix(#6455): fix infinite loop
- When the Create modal is opened, it defaults the object selected in the tree to the parent of the currently selected object. However, if this object is static, it can sometimes have a weird navigationPath and an edge case where we try to infinitely walk up the path to find the parent.
- This adds a fail-safe to verify that the navigationPath by this point contains `/browse/mine` (thus is within a creatable path). If not, it sets the default selected tree item to the "My Items" folder
---------
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* free plot on search selection and remove rectangles when resuming
* add test
* remove rectanges
* update test
* more reliable way to load annotations
* use event to wait for axes and update tests
* restore test
* cancel selection in plots if clicking outside plot
* Revert "cancel selection in plots if clicking outside plot"
This reverts commit 82ea50152b.
* Listen to the navigation triggered selection of the target object before selecting the annotations for the object
* remove commented out code
* check if we've already navigated to the object
---------
Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
Co-authored-by: Shefali <simplyrender@gmail.com>
* Only use default if we've evaluated as default
* Add e2e test for conditional sets
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* refactor: convert Type API to ES6 module
- Another AMD module bites the dust 🧹
* feat: add initial configurable plan type
- Name change TBD
* feat: add `clipActivityNames` property
- refactor: initialize data to `null`
* refactor: general code cleanup
* feat(WIP): name clipping via clipPath elements
* feat: compose a Gantt Chart using a Plan
- Allows Plans to be dragged into Gantt Charts (name tentative) to create a configurable Activity View
- Clip/Unclip activity names by editing domainObject property
* feat: replace Plan if another is dragged in
- SImilar to Gauges or Scatter Plots, launch a confirmation dialog to replace the existing Plan with another, if another Plan is dragged into the chart.
* test: fix tests, add basic tests for gantt
* tes(e2e): fix plan test
* docs: add TODO
* refactor: clean up more string literals
* style: remove `rx`, increase min width
- round widths to nearest integer
* refactor: extract timeline creation logic
- extracts the logic for creating the timeline into its own component, `ActivityTimeline.vue`. This will save us a lot of re-renders, as we were manually creating elements / clearing them on each tick
* style: fix text y-pos and don't round
* fix: make activities clickable again
* docs: add copyright docs
* feat: swimlane visibility
- configure plan view from inspector
fix: update plans when file changes
- fix gantt chart display in time strips
- code cleanup
* fix: gantt chart embed in time strip
* remove viewBox for now
* fix: make `clipPath` ids more unique
* refactor: more code cleanup
* refactor: more code cleanup
* test: fix existing Plan unit tests
* refactor: rename variables
* fix: respond to code review comments
- Move config manipulation to PlanViewConfiguration.js/.vue
- Variable renames, code refactoring
* fix: unique, reproducible clipPathIds
* fix: only mutate swimlaneVisibility once on init
* fix: really make clipPathId unique this time
* refactor: use default config
* Closes#6113
- Refined CSS class naming and application.
- Set cursor to pointer for Activity elements.
- Added <title> node to Activity elements.
- Styling for selected Activities.
- Better Inspector tab name.
* fix: make Plan creatability configurable and false by default
* test: fix existing tests and add a couple new ones
* Closes#6113
- Now uses SVG <symbol> instead of rect within Activity element.
- Passes in `rowHeight` as a prop from Plan.vue.
- SWIMLANE_PADDING const added and used to create margin at top and bottom
edges of swimlanes.
- Refined styling for selected activities.
- New `$colorGanttSelectedBorder` theme constant.
- Smoke tested in Espresso and Snow themes.
* fix: default swimlaneWidth to clientWidth
* test: fix test
* feat: display selected activity name as header
* fix: remove redundant listener
* refactor: move `examplePlans.js` into `test-data/`
* docs: remove copyright header
* refactor: move `helper.js` into `helper/`
* refactor: `helper.js` -> `planningUtils.js`
* fix: update pathing
* test: add tests for gantt/plan
- add visual tests for gantt / plan
- add test for clicking a single activity and verifying its contents in the inspector
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
* fix: inspector view tab priority
- fixes issue where inspector view priorities were not being passed to the view registry
* chore: run lint:fix
- eslint sez no danglin' commas! EVER!
* fix: update more viewProviders
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* fix(#6391): refresh composition on treeItem open
- On treeItem open, gets the latest composition from persistence
- Composition was being refreshed, but only within the same instance (mutables)
* test: regression tests for localStorage and couch
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* Changed tooltip text to be Shift+Alt drag to pan
* Updated e2e test to match alt text change
* Updated panHotKey to match changed alt text
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* allow lad tables rows to be selected
* rows now clickable and previewable
* trying to add type column
* aggregate and telemetry
* if aggregate, use blank for value and timestamps
* remove extraneous path lookup
* cleanup css
* add tests
* allow hiding of type column
* adjust tests to include type column
* adding lad table configuration, specifically column visibility
* making sure units column checkbox is updated when lad tables are removed from lad table sets
* fixes based on PR feedback, copyright, consts, code, oh my!
* added a test for column hiding
* remove .only
* add a notification for inspector view that must be editing, move selection logic to vue component as it was not being triggered after navigating away in the inspector tabs