* Simplifies the implementation of telemetry buffering in Open MCT.
* Switches from per-parameter buffering to a shared queue. Per-parameter buffering is too easily overwhelmed by bursts of telemetry from high-frequency parameters. A single shared buffer has more overhead to grow when a burst arrives without overflowing, because the buffer is shared across all parameters.
* Removes the need for plugins to pass serialized code to a worker.
* Switched to a "one-size-fits-all" batching strategy removing the need for plugins to define a batching strategy at all.
* Captures buffering statistics for display in the PerformanceIndicator.
* more readable
* unpause explicitly
* fix jsdoc
* e2e testing multiple image removal
* prettier
* fix to remove multiple images from history
* move tests that use playwright clock api into own file
* fix playwright clock tests
* add aria-label to element
* prevent straggler debounced function call on unmount
* clean up and fix tests
* update paths
* lint fix
* lint fix
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* fix: apply `is-style-invisible` className to image and alphanumeric items
* test: generate storagestate file with basic condition set
* refactor: small a11y additions for Toolbars
* test: add suite for display layout conditional styling
* fix: make condition true half of the time
* fix: use a period of 5 so tests are more stable
* test: mark as slow
* test: use inline base64 image text instead of a url
* fix: use vue reactivity system to conditionally show these objects
* test: use tiny base64 image
* fix: condition for v-show
* fix: use both v-if and v-show to toggle visibility
* refactor: convert to ES6 class
* fix: remove focused test
* fix: switch back to a div due to visual artifacts. settle for an aria role instead
- IT'S CALLED COMPROMISE!
* test: fix broken locator in imagery perf test
* Prevent this from happening
* make rule explicit
* test: maintain `locator()` pattern for contract tests
* test(couchdb): try some new techniques to stabilize the test
* Revert "test(couchdb): try some new techniques to stabilize the test"
This reverts commit 9aa1ea95a1.
* chore: revert to `networkidle` and disable eslint rule
* test: add `@network` annotation for tests with real network requests
---------
Co-authored-by: Hill, John (ARC-TI)[KBR Wyle Services, LLC] <john.c.hill@nasa.gov>
* fix: update broken locator
* update eslint package
* first pass of lint fixes
* update package
* change ruleset
* update component tests to match linting rules
* driveby
* start to factor out bad locators
* update gauge component
* update notebook snapshot drop area
* Update plot aria
* add draggable true to tree items
* update package
* driveby to remove dead code
* unneeded
* unneeded
* tells a screenreader that this is a row and a cell
* adds an id for dragondrops
* this should be a button
* first pass at fixing tooltip selectors
* review comments
* Updating more tests
* update to remove expect expect given our use of check functions
* add expand component
* move role around
* update more locators
* force
* new local storage
* remove choochoo steps
* test: do `lint:fix` and also add back accidentally removed code
* test: add back more removed code
* test: remove `unstable` annotation from tests which are not unstable
* test: remove invalid test-- the "new" time conductor doesn't allow for millisecond changes in fixed time
* test: fix unstable gauge test
* test: remove useless asserts-- this was secretly non-functional. now that we've fixed it, it makes no sense and just fails
* test: add back accidentally removed changes
* test: revert changes that break test
* test: more fixes
* Remove all notion of the unstable/stable e2e tests
* test: eviscerate the flake with FACTS and LOGIC
* test: fix anotha one
* lint fixes
* test: no need to wait for save dialog
* test: fix more tests
* lint: fix more warnings
* test: fix anotha one
* test: use `toHaveLength` instead of `.length).toBe()`
* test: stabilize tabs view example imagery test
* fix: more tests be fixed
* test: more `toHaveCount()`s please
* test: revert more accidentally removed fixes
* test: fix selector
* test: fix anotha one
* update lint rules to clean up bad locators in shared fixtures
* update and remove bad appActions
* test: fix some restricted notebook tests
* test: mass find/replace to enforce `toHaveCount()` instead of `.count()).toBe()`
* Remove some bad appActions and update text
* test: fix da tree tests
* test: await not await await
* test: fix upload plan appAction and add a11y
* Updating externalFixtures with best practice locators and add missing appAction framework tests
* test: fix test
* test: fix appAction test for plans
* test: yum yum fix'em up and get rid of some dragon drops
* fix: alas, a `.only()` got my hopes up that i was done fixing tests
* test: add `setTimeConductorMode` test "suite" which covers most TC related appActions
* test: fix arg
* test(couchdb): fix some network tests via expect polling
* Stabalize visual test
* getCanasPixels
* test: stabilize tooltip telemetry table test, better a11y for tooltips
* chore: update to use `docker compose` instead of `docker-compose`
* New rules, new tests, new me
* fix sort order
* test: add `waitForPlotsToRender` framework test, passthru timeout override
* test: remove `clockOptions` test as we have `page.clock` now
* test: refactor out `overrideClock`
* test: use `clock.install` instead
* test: use `clock.install` instead
* time clock fix
* test: fix timer tests
* remove ever reference to old base fixture
* test: stabilize restricted notebook test
* lint fixes
* test: use clock.install
* update timelist
* test: update visual tests to use `page.clock()`, update snapshots
* test: stabilize tree renaming/reordering test
* a11y: add aria-label and role=region to object view
* refactor: use `dragTo`
* refactor: use `dragTo`, other small fixes
* test: use `page.clock()` to stabilize tooltip telemetry table test
* test: use web-first assertion to stabilize staleness test
* test: knock out a few more `page.click`s
* test: destroy all `page.click()`s
* refactor: consistently use `'Ok'` instead of `'OK'` and `'Ok'` mixed
* test: remove gauge aria label
* test: more test fixes
* test: more fixes and refactors
* docs: add comment
* test: refactor all instances of `dragAndDrop`
* test: remove redundant test (covered in previous test steps)
* test: stabilize imagery operations tests for display layout
* chore: remove bad unicorn rule
* chore(lint): remove unused disable directives
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* fix(#7791): tc form shouldn't submit bounds changes on dismiss
* test(e2e): add tests for validating time conductor popup
- update appAction for setting time conductor in fixed mode
- add a11y to time conductor in fixed mode
- update tests using `setTimeConductorBounds`
* fix(#7791): actually fix the problem. Also, add a test.
* test: add annotation to regression test
* docs: comments
* test: fix the reset image button flake ONCE AND FOR ALL
- wait for the rightmost image thumbnail to be in the viewport :D
* test: add tests for `setTimeConductorMode` and `setTimeConductorBounds`
* For telemetry that cannot have it's own configuration, ensure that it is correct initialized by the parent.
* stacked plot test checks that config properties for immutable telemetry points are applied correctly
* add tab navigation to inspector tabs
* add accessibility metadata to this component
* Update title to be on the correct component. Add expand/collapse logic
* clean up test
* refactor: better a11y for plot forms, fix "expand by default" test, refactor out `plotActions.js`
* a11y: aria label for plotOptionsItem
* refactor(a11y): PlotOptionsBrowse structure to have better a11y
* fixed tests
* address comment
* reverted to match previous commit
---------
Co-authored-by: Hill, John (ARC-TI)[KBR Wyle Services, LLC] <john.c.hill@nasa.gov>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Use setMode API to set the time span as well as the bounds instead of the old bounds time API.
* Add test for synchronized time conductor via plots
* Fix linting issue
* If we're paused, don't purge data out of bounds
* Refactor auto scale utility functions for reuse
* Create new test spec for plot controls
* Move plot related actions into it's own file
* Fix typo for imports
* Remove named exposedFunction as it is causing errors when the method is used on the same page more than once.
* Fix spelling
* run scroll method to scroll to top after initial load of historical data
* clarifying comment
* added e2e test to make sure tables auto scroll on mount
* adding descriptive comments
* adding in ascending check as well
* added new appAction for navigating to/in realtime, using it in table scroll test
* lint
---------
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
* this is 2024. `*` observers no more.
* add edit and save domain object helper functions
* add aria-labels and fix e2e tests to use new labels
* generate and save in local storage a condition set with telemetry and condition
* rename const
* move creation code out of generateLocalStorage since it is immutable
* remove function abstractions
* remove @localStorage test label
* Update e2e/tests/functional/plugins/conditionSet/conditionSet.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Update e2e/tests/functional/plugins/conditionSet/conditionSet.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Update e2e/tests/functional/plugins/conditionSet/conditionSet.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Update e2e/tests/functional/plugins/conditionSet/conditionSet.e2e.spec.js
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* remove unneccesary aria text
* remove unneccessary aria text
* use recommended playwright locators
* lint fix
* remove unneccesary steps now that child created directly in parent
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Closes#7635
- More specific approach to CSS class application for column vs. row layouts.
- Added layout direction CSS classing to `c-fl-container__frames-holder`.
- Switched toolbar icon and titling for better parity with
'toggle' approach used elsewhere.
- Cleaned up duped property def in mixin.
* Addressing PR change requests
- Updated e2e test.
- New computed properties for layout direction.
- CSS code cleanup.
* fix selector in test
* fix more bad selectors
* fix changed title
---------
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
* enable eval source maps for debugging
* split image and text paste handling
better event handling
* change back source maps
* image takes precedence over text
* break up notebook entry functions for re-use
* create hotkeys utils
add clipboard functions
* add notebook paste test
* add test for pasting to selected but not editing entry
* link tests to issue
* jsdoc addition
* jsdocs
* no need to import then export
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* fix changed path
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* fix: resize conductor properly
* refactor: more computed properties, unregister listener
* fix: beforeUnmounted hook
* test(visual): add time conductor visual test for fixed mode
* fix: initialize to `null`
* feat: extend the base `screenshot` function to mask elements which will always create variance in an Open MCT screenshot
* docs: add types for fixtures
* fix: remove unneeded await
* chore: add sinon timers types package back
* docs: remove unused docs
* doc: remove unused docs
* test: add visual realtime url, update imports
* feat: provide wrapped page.screenshot fixture that applies defaults
* test: add basic timeConductor snapshot tests
* chore: update eslint config
* lint: remove unused disable directives
* test: remove redundant navigation
* fix: remove listeners
* fix: maybe stabilize unit tests
* docs: remove
* fix: provide sourcemaps in unit tests
* test: add regression snapshot test for time conductor axis
* lint: remove unused imports
* feat(e2e): add fixture to manually tick the clock and use it
* test: reactivate test now that we don't use deploysentinel :(
* test: update snapshots
* test: add test for clockOptions and tick fixtures
* test: add afterEach stub and fixme
* test: try and stabilize fault management flake
* lint: defy the word gods
* chore: ignore `*-darwin.png` screenshots
* chore: remove darwin screenshot binaries
* docs: markdownlint
* docs: remove MacOS specific instructions from snapshot testing
* fix: remove a11y
* chore: update tsconfig to target modern ES
* docs: update UserProvider
* docs: update UserAPI, make openmct private
* docs: update StatusAPI
* refactor: convert ViewRegistry to ES6 class
* docs: finish type imports for openmct api
* docs: minor doc improvements
* docs: add UserIndicator readme
* docs: add User API section to API docs
* docs: document Mission Status
* docs(JSDoc): primitive types should be lowercase, otherwise TitleCase
* request telemetry when subscribing to data in case we have cached subscription
* change back to >=
* revert
* update tests
* fixing tests
* add metadata
* fix test
* another mock required
* one more function needed
* attempt to fix some afterall errors
* add fixme for e2e test
* fail fast on request
---------
Co-authored-by: Andrew Henry <akhenry@gmail.com>
https://github.com/nasa/openmct/pull/7565 Modified Stacked Plots to not show Missing Objects. Added a check in Telemetry Collections for missing objects before displaying telemetry metadata time system error.
* fix: painterro import
* test(snapshotAnnotation): add minimal e2e test
* chore: add e2e test annotation
* fix: notebook snapshot test
* refactor: put `v-else` on template
* small changes to the test and a visual one
* additional a11y
* fix: html structure
* test(e2e): fix notebook snapshot tests
* Update documentation for file download and JSON testing
* Update stubs and add jpg/png export
* refactor(TimelistComponent): tidy up
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* refactor: url tools use named exports
* fix: refactor method and remove customUrlParams
* test(e2e): verify bounds are preserved in data pivoting
* test: remove test as feature is no longer needed
- dataVisualization logic has moved from MMGIS plugin to the open source. As such, we can just use the time conductor bounds
* refactor: autoformat keeps changing this so i'mma just commit it
* refactor: remove unnecessary code
* refactor: simplify, add docs
* Revert "refactor: remove unnecessary code"
This reverts commit 87aef35c510230835fb682b80e89a6006ef2d923.
* a11y: improve aria labels for ITC
* fix: simplify url method
* fix: update ITC app actions
* test: add test to generate test data for display layout w/ overlay plot + ITC enabled
* test(e2e): add suite + test for open in new tab from subobject
- needs cleanup
* a11y: various a11y improvement drivebys
* a11y: clock indicator needs to be quiet
* a11y: add `aria-live` to SuperMenu details
* a11y: greatly improve a11y of Menus and SuperMenus
* test(e2e): clean up test
* fix: improve a11y for context menus, fix test
* chore: remove nop-longer-recommended extension
* feat: provide one more bound option for example data viz
* fix: no need for `mount`, use dynamic rendering instead
* Revert "fix: simplify url method"
This reverts commit b24c7dabc783a9a1c3f2460eada99f452259f566.
* fix: correct time conductor bounds when opening in a new tab from a plot in the inspector
* test: fix e2e tests
* Revert "test: remove test as feature is no longer needed"
This reverts commit 759ebd4667bffb1979d5f62af6b47f349dcd9f77.
* test: move 2p annotation to test
* test: fix e2e
* fix: no words for the word god today
* test: fix e2e
* fix: e2e test
* test: fix test
* driveby: fix perf test
* fix: revert required prop change
---------
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* refactor: merge FaultManagementListView into FaultManagementView
* refactor: make `selectedFaults` a computed property
* refactor: use named exports
* fix: reset fault map AFTER selectedFaults have been acknowledged
* a11y: add aria labels for fault management toolbar buttons
* refactor: use named import/exports
* a11y: add label
* a11y: add aria label for checkboxes
* fix: acknowledging or shelving single fault from context menu should only apply to selected fault
* refactor: use change event instead of input event for checkbox
* test: fix e2e tests, remove expect.softs
* test: stabilize fault management e2e tests
* d3 implementation of progress pie chart
* Handle 0% and 100% cases
* PR #7485
- Minor tweaks to `s-selected` styling.
* add in-progress class for compact view
* Fix issue where updating progress for pie chart wasn't working till at least one clock tick.
Write tests for progress pie
* update documentation for clock annotation
* Update clock annotation in tests
* split long testfile
* driveby missing test
* driveby fix flake
* temp: fix flake and prep for visual test
* Fix linting errors
* this should be resolved
* these keep popping up
* moving some of this around
* moving this around
* the test
* Fix imports for tests
* no longer need constant
* move to front
* Stabalize name
* test(missionStatus): fix visual test
---------
Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* Fix error when removing staleness subscription due to incorrect parameter
* On resize, clear the drawing API to reset the height and width for point calculation.
* Add e2e test to test limit lines after resizing the plot view.
* We need to update viewport when drawing limits in case there is no data for plots.
* Address review comments. change event naming convention and reduce debounce time.
* Use limit line and label seriesKeys to make ids unique
* Improve locator for limit lines checkbox
* Add a check for network requests when limit lines are redrawn
* Add the disabled class instead of the disabled property
* Add test for condition set test data
* Use computed property for css class
* Use array syntax for class instead of computed value
* Fix .getByTitle locators to use .getByLabel instead
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* fix(#7456): check if object is an identifier
* refactor: use v-show, remove unnecessary deep copy, set yAxes array to empty in a way that preserves reactivity
* refactor: use ESM exports
* refactor: use ESM imports
* test(e2e): add test for element item removal from overlay plot
* a11y: add accessible name for object labels
* refactor: move overlayPlot creation to beforeAll, use getByLabel
* Add status area back to mobile
* Make search results responsive to width
* Make clear search button always visible, regardless of hover
* Make clear search button visible, and fix weird margin in top left corner
* Fix input width, add logic to make close button work properly, fix margin on results so there is room for close button, fix various landscape mode issues
* update mobile testing
* Fix dropdown sizes, remove shadows and corners to make it look less like a popup and more full screen
* Add animation and persist search bar in mobile
* Fix linting issues
* Fix padding in Desktop
* fix padding in status area
* fix bad merge
* lint fixes
* fix bad merge... again
* again
* fixes to mobile
* update tests
* lint fix
* test fixes
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* 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
* Closes#7304
- Change colors to increase contrast.
- New base level theme color var: `$colorBodyFgSubtle`.
- Minor CSS cleanups.
- WARNING: this appears to have added a regression in selects
that colors the arrow black in Espresso.
* Closes#7304
- Fix dropdown arrow colors, whew.
- Normalize font sizes in Status area.
- More color changes for contrast, including new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!
* disable ruleset
* Closes#7304
- Normalize font sizes in multiple spots.
- More color changes for contrast, including more new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!
* Closes#7304
- Reorganize CSS files for more uniformity.
* Closes#7304
- CSS normalized across all themes via Google Sheet at https://docs.google.com/spreadsheets/d/1SEEtuNSq6I7gvVHKpHW8_fp8Ltc-HOAWxrSAkUzS6Kw/edit?usp=sharing
* Closes#7304
- Color tweaks, normalization.
* Closes#7304
- Color tweaks, normalization.
- Search layout, contrast and font-size improvements.
- Added '+' icons to collapsed pane buttons.
* Closes#7304
- Shell head layout improvements.
* Update ColorKey for Take Snapshot Failures and Opacity labels. Also fix create menu
* Closes#7410
- CHERRY PICK FROM event-colors-7410.
- Event display approach modified to include background color.
- Theme colors modified and constrast verified via Wave a11y browser plugin.
* Closes#7304
- Set back to install Espresso theme by default.
* temporarily skip
* remove comment
* lint
* Update default colors
* update snapshot
* missed
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* 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>
* convert tabs plugin to use es6 import/export
* default of eager load is false but configurable
* change true/false select to toggleSwitch
* add and clean up unit tests
* Update test
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* dereactifying the row before passing it to the commponent
* debouncin
* i mean... throttle
* initial
* UI functionality, switching between modes, prevention of export in performance mode, respect size option in swgs
* added limit maintenance in table row collectins, autoscroll respecting sort order
* updating the logic to work correctly :)
* added handling for overflow rows, this way if an object is removed, we can go back to the most recent rows for all remaining items and repopulate the table if necessary
* removing debug row numbers
* Closes#7268
- Layout and style sanding and polishing.
- Added title to button.
- More direct button labeling.
* Closes#7268
Partially closes#7147
- Removed footer hover behavior: table footer now always visible.
- Tweaks to style, margin etc. to make footer more compact.
* moved row limiting out of table row collections and into telemetry collections, table row collections will only limit what they return in getRows, handling sorting when in different modes
* have swgs return enough data to fill the requested bounds
* support minmax in swgs
* using undefined for more clarity
* clearing up boolean typo
* Address lint fixes
* removing autoscroll for descending, it is not necessary
* update snapshots
* lint
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* Get actions collection on Preview Container update
* Added fixme and link to initial ticket
* Stubbed out preview mode e2e test
* Lint fix
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* add reload action plugin
* checking for domain object before reloading
* check if objects are equal before refreshing
* add test
* lint
* change to label
* ensure object styles are initialized
* resubscribe to staleness too
* add better labels for tabels
* ensure tab uses exact for label now due to table aria changes
* fix table tests
* make tabs exact
* update conflicts
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* feat(IndicatorAPI): accept Vue components
- Adds a new property to Indicators, `component`, which is a synchronous or asynchronous Vue component.
- Adds `wrapHtmlElement` utility function to create anonymous Vue components out of `HTMLElement`s (for backwards compatibility)
- Refactors StatusIndicators.vue to use dynamic components, allowing us to dynamically render indicators (and keep it all within Vue's ecosystem).
* refactor(indicators): use dynamic Vue components instead of `mount()`
- Refactors some indicators to use Vue components directly as async components
* refactor: use Vue reactivity for timestamps in clock indicator
* fix(test): fix unit tests and remove some console logs
* test(e2e): stabilize ladSet e2e test
* test: mix in some Vue indicators in indicatorSpec
* refactor: cleanup variable names
* docs: update IndicatorAPI docs
* fix(e2e): wait for async status bar components to load before snapshot
* a11y(e2e): add aria-labels and wait for status bar to load
* test(e2e): add exact: true
* fix: initializing indicators
* fix(typo): uhhh.. how did that get there? O_o
* fix: use synchronous components for default indicators
* test: clean up, remove unnecessary `nextTick()`s
* test: remove more `nextTick()`s
* refactor: lint:fix
* fix: `on` -> `off`
* test(e2e): stabilize tabs test
* test(e2e): attempt to stabilize limit lines tests with `toHaveCount()` assertion
* 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