Commit Graph

372 Commits

Author SHA1 Message Date
Scott Bell
98a5b223d2 Derived Telemetry Prototype (#7815)
* skeleton for comps

* more scaffolding

* more drafts

* worker ready

* telemetry is null for some reason

* can add two sin waves

* adding works

* exact values enabled

* subscriptions work

* slowing adding gui

* fix plots

* rudimentary expression editor

* correctly persist

* parameters

* can take arbitrary expressions

* styles and timing for loading worker

* ui works kinda

* need to figure out ranger

* works with time

* timesystem works

* get rid of batch for now

* gui still leaking data

* memory conserved

* styles

* fix initial load

* expression validator

* fix test data

* do not persist

* persist after adding

* fix editing issues

* mutate when parameters or expression changes

* implement output format

* implement output format

* be consistent with output key

* add icons and fix errant telemetry

* lint

* lint

* use key instead of name

* Style enhancements for Derived Telemetry object
- Closes #7823
- Font files updated - do not merge!
- New glyph and data URI background for object.

* Style enhancements for Derived Telemetry object
- Closes #7823
- Tweak to object description.

* Enhancements for Derived Telemetry object
- Closes #7823
- Added new `ObjectPathString.vue` UI component, based on `ObjectPath.vue`.

* Style enhancements for Derived Telemetry object
- Closes #7823
- Significant mods for style and CSS classing. Still WIP, more coming.

* Enhancements for Derived Telemetry object
- Closes #7823
- Code cleanup and tweaks.

* do not apply test data when edit mode changes to false

* Revert "do not apply test data when edit mode changes to false"

This reverts commit eac4676cad.

* trying this again without blowing away the very pretty styling

* clean up composition effects

* allow deleting of parameters

* can chain and plot derived data

* can delete properly

* Enhancements for Derived Telemetry object
- Closes #7823
- Updated Derived Telemetry glyph design.
- Set `CompsViewProvider.js` to use the correct icon.

* handle arrays and add skeleton tests

* Enhancements for Derived Telemetry object
- Closes #7823
- Final sanding and polishing.
- New discrete item style `c-output-featured` added to controls.scss
  - Applied to 'Current Output' section of both Derived Telemetry and Condition Sets.
- TODOs:
  - [ ] Check for low-risk regressions in Condition Sets browse and edit modes.
  - [ ] New tests for ObjectPathString.vue component.

* add tests

* ensure output format propagates

* add output format test

* add some basic object path label tests

* good job code scanner. changing to or condition

* refactor aria labeling

* pass options on request to underlying collections

* ensure derived DERIVED telemetry loads in the proper order. also have telemetry collections prioritize request options over clock

* fix domains

* ensure we only ask for latest for comp editor

* improvement in loading

* fix slow loading errors

* more telemetry collection changes to acommodate bound changes

* more debug just in case

* stacked plots are overriding telemetry object configurations

* some changes

* add new flag to deal with plots asking for zoomed out data that should be ignoring clock

* works

* add sample size

* check if sample size greater than zero

* ensure number for sample size

* ensure we have a reference value before we slice

* can do derived derived accumulated comps now

* ensure we are checking for not equal

* add a few more awaits

* allow blank test values for arrays

* check for blank test values

* change to just value

* impute requested data properly

* fix output and add accumulation label

* update output when comp changes

* remove unused function

* add placeholder

* support lambda values

* reduce size

* widen size to accomodate sample size

* removing debug statements for PR review

* Closes #7823
- Markup/CSS sanding and shimming for derived telemetry front-end.
- Toggle switch CSS improved to use `gap` instead of left margin.

* Update package lock for new package versions

* Move composition policy to it's own file. Fix expression evaluation bug for truthy/falsy

* fix lint spelling

* Use the telemetry collection's timeKey for timestamps

* Revisit code to use bounds provided by options to telemetryCollections

* Refactor bounds handling to clarify intent. Remove TelemetryCollection.load() returning a promise and use event handlers instead.

* destroy and reload the telemetry collection on reload

* Update package-lock.json:

* Fix lint error

* Clean rebuild of package-lock.json

* Update e2e package lock as well

* Don't use method calls in vue templates

* fix linting issue

* Change plugin name to Derived Telemetry

* Install the derived telemetry plugin for tests before running them

* Tweaks to spacing to correct visual regression.

---------

Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: Scott Bell <scott@cynthia-macbook.fritz.box>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <andrew.k.henry@nasa.gov>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2026-02-25 13:33:17 -08:00
Shefali Joshi
95701a69eb Dynamically determine number of ticks depending on canvas width (#8223)
* Add canvas width based utc time ticks with predictable nice ticks

* Make dynamic ticks work for all x-axis types

* Adds support for non-numeric x-axis values

* Fix e2e tests to property assert ticks given the improved dynamic count algorithm
2026-02-23 14:47:59 -08:00
Andrew Henry
b476d1e0ce Increase priority of operator status indicator (#8257)
* Increase priority of operator status indicator

* Add additional assertion to ensure there are multiple indicators

* Added some assertions to tighten up the test
2026-02-13 20:39:57 +00:00
Andrew Henry
9838aeb1ad Make snapshot tests a little more deterministic (#8255)
* Make snapshot tests a little more deterministic

* Remove unused imports

* Submit rather than discarding TC changes
2026-02-09 12:34:41 -08:00
Shefali Joshi
56a53fde22 Wait for Tree and Inspector pane transitions to complete before testing a11y (#8253)
* Use expand tree and expand inspector utility functions for display layout and planning tests
2026-02-06 12:44:01 -08:00
Andrew Henry
670449a493 Updated playwright and fixed some test flake (#8248)
* Updated playwright

* Updated package-lock.json after recent changes

* Fixed flakey notebook test

* Fixed janky test

* Fix text jank

* Playwright broke our test

* Fix timer test that cannot possibly have worked

* Fix flake in visual tests

* Remove networkIdle wait. It's not super reliable to begin with, and seems to behave differently in recent Playwright

* Retire impossible test

* Remove redundant search test

* Fixed non-deterministic network test

* Added requestfinished to dictionary

* Restore eslint exception for networkidle

* Fixed lint error

* use clear() instead of fill('')

* Don't use nth

* Use text identifiers rather than indexes to reference cells

* Fix typo

* Tighten up network delay
2026-02-03 11:30:35 -08:00
Rin
2050af4b67 chore(deps): update vulnerable dependencies and bump node version to 20.x (#8226)
Resolved multiple high/critical security vulnerabilities (targeting axios, express, qs, node-forge) and upgraded Node.js engines to 20.x LTS for better stability and performance.

Co-authored-by: Andrew Henry <akhenry@gmail.com>
2026-01-28 10:38:10 -08:00
Andrew Henry
2ffa8881f9 Migrate Circle CI to Github actions (#8233)
* Dry run new Github actions

* Remove legacy CircleCI configuration

* Fix flake

* Optimizations

* Disabled unstable snapshot test.

* Speed up builds

* Increase sharding

* Fix label

* Fix git directory ownership issue

* Clean up and optimization

* Use deps from more jobs

* Remove label trigger

* Updated browserlist finally

* Fix playwright issue

* Bump timeout slightly since the runner is under a little more pressure now

* Build unit tests from scratch

* Fixed flakey test

* Increase sharding again

* Remove references to Circle CI

* Trying to optimize workflow

* Fix dependency issue

* Try again

* Remove third party dependency

* Fix git check issue

* Add an option to do a clean build:

* Added dependencies back in

* Fixing bugs

* Removed MMOC project

* Start again

* Need to check out first

* Cache hit check

* Check if cache hit

* debugging

* Debugging

* Reuse cache key job

* Adding should build flag to support forced clean builds

* Simplifying logic

* Simplify again

* Remove label if needed

* Run unit tests

* Cache dist as well

* Update label

* parameterize node version

* Add dist to the cache path

* Github restore

* Add e2e tests

* Cleaning up e2e run configuration

* Oops, remove circleci reference

* Remove playwright container

* Playwright install

* Use playwright container for caching

* Remove chrome install step. Assume already available from playwright container

* Trying to cache playwright browsers

* Don't use playwright container for unit tests

* Fixed flakey telemetry table test

* Restore visual, mem, and perf tests

* Always run couch tests

* Restore e2e node modules as well

* Cache paths have to match because they are part of the cache version information

* Add Percy token

* Always upload artifacts

* More descriptive names

* Removed nightly for now, will come back to it
2026-01-28 10:00:38 -08:00
Andrew Henry
0e5468d8df Fix percy snapshots (#8240)
* Suppress clock indicator for nightly

* Only run visual a11y tests on espresso theme

* Revert a11y change - will put in separate PR
2026-01-20 13:51:26 -08:00
David Tsay
acccc3a2c3 Respect latest available staleness prior to time conductor start (#8211)
* add clearStaleness method since === SKIP_CHECK flag

* fix logic for updating staleness
* should be inclusive to start and end bounds
* should respect prior to start bounds if stale
* should not show staleness for after end bounds

* add `ExampleStalenessProvider`
update telemetry api jsdocs for staless provider

* move sine wave staleness tests into appropriate folder location

* convert `StateGenerator` into class

* clean up coding style

* use timesystem key and now() from openmct time api

* fix `ExampleStalenessProvider` initial conditions
install `ExampleStalenessProvider` by default in index.html

* Revert "fix logic for updating staleness"
To allow contribution from marcelo-earth

This reverts commit 3baef169f7.

* Refactor shouldUpdateStaleness to accept updates based on timestamp

* clarify comment
remove unused code

* fix import paths

* clean up staleness provider
write e2e test for staleness

* fix 404s to example imagery breaking e2e tests

---------

Co-authored-by: Marcelo Arias <hello@marceloarias.com>
2026-01-05 13:43:58 -08:00
Jamie V.
4ab98ffef0 Add Correlation Telemetry Plugin (#8216)
* adding the plugin file

* adding to available plugins list

* this update makes it so you can see the items selected for correlation in the edit form, previously they would be blank

* fixed incorrect formatting for locator field vue compnent, removed unnecessary openmct arg from correlation plugin

* spelling fix

* add test for correlated telemetry, update subscribe to telemetry util function and move to app actions

* checking timestamps match so we are correctly checking correlated telemetry

* Rename utility function to align with its implementation details

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: Andrew Henry <andrew.k.henry@nasa.gov>
2025-12-17 02:31:08 +00:00
Charles Hacskaylo
a0a06cf7d2 Better overflow and wrapping in Status area (#7850)
* Enhancements for better wrapping of Status Area icons
- Added `headCanWrap` stored property, and toggle button.
- CSS mods, cleanup.

* Enhancements for better wrapping of Status Area icons
- New glyphs for `icon-multiline` and `icon-singleline`.
- Refinements to button labels and titles for clarity.

* Enhancements for better wrapping of Status Area icons
- Add code and CSS for toggling single/multiline display of indicators.
- Add code to detect overflow state of indicators.

* Enhancements for better wrapping of Status Area icons
- WIP, but is working!
- TODOs:
  - Make sure this is a good way to do things.
  - Cleanup code.
  - Tests.

* Enhancements for better wrapping of Status Area icons
- Fixed CSS classing on collapse/expand button.
- New method added for storing head props in local storage.
- TODOs:
  - Make sure using Update hook is performant.
  - Tests.

* Code cleanup.

* - Now uses Watch instead of Update to handle changes from containing AppLayout.vue component.
- Code cleanup, console.log removals.

* - Fixed CSS which was causing the head to collapse when browser window is very small and Indicators running to multiple lines.
- Fixed CSS which was causing the height and alignment problems in the head.

* use `resizeObserver` instead of window listeners
safer access to `localStorage` initial state
ie. legacy localStorage having `expanded` but not `multiline`

* framework for e2e tests

* add aria-label to `Status Indicators`

* e2e test for expand and collapse indicators

* e2e test for single line mode

* reuse `firstIndicator` locator

* e2e test for overflow indication
refactor to reuse variables
refactor to use `test.step`s instead of comments

* e2e test for both toggles working in conjunction

* e2e test for `localStorage` persistence

* new visual snapshots
* time conductor - add single/multi line toggle button
* autoscale - 1 more pixel in status area

* Fix tests that relied on changed button text

* Hide clock for percy snapshots

* Hide clock for percy snapshots take 2

---------

Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: Andrew Henry <andrew.k.henry@nasa.gov>
2025-12-17 00:54:27 +00:00
Andrew Henry
5d457c925b Add root composition provider, and support dynamic root objects (#8209)
* Add root composition provider, and support dynamic root objects
* Support providers with an 'appliesTo' function instead of namespace
* lint stuff
* eval source maps for testing new providers
* remove eval source map
* Only emit root remove event when root is actually removed
---------

Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
2025-12-16 20:11:27 +00:00
David Tsay
3f495ca982 Time conductor refactor (#7818)
* add missing licensing comment

* use vue component naming convention

* script, template, style

* Revert "script, template, style"

This reverts commit c8f8a098f2.

* create useTimeSystem composable

* forgot to push useTimeSystem

* extend useTimeSystem to return reactive formatters

* return reactive isUTCBased

* add useTimeMode composable
fix listener in useTimeSystem

* add useTimeBounds composable

* add useClockOffsets composable
documentation update to useTimeBounds

* WIP change replication in time api calls to use composables
many things broken
will need refactor to account for independent time conductor

* missed file in commit

* use composables for conductor mode

* create useClock composable
code clean up

* whoops. mistook prettier red squiggly for code not used red squiggly.

* vue naming convention

* change composables to allow for timeContexts

* change timeContexts to be reactive to objectPath
reactivity fixes to composables

* reactivity and non fixes

* use `shallowRef` for clock object

* WIP: get independent time contexts working again

* vue component naming conventions

* WIP: mostly fixed independent time conductor

* provide timecontext even if its the global/timeapi for shared components

* incorporate provided timecontext into independant time conductor components

* better jsdoc message

* fix missing clock on independent time mode change

* switch to reactive formatter for zoom

* use reactive timecontext in fixed inputs

* use reactive clock props
cleanup unused variables

* edit for clarity

* remove unused injection

* change ITC to use composables

* update to use composables

* rename because need both datetime and time inputs

* make message universal to all timeSystems

* only change time options if independent conductor enabled
re-use timeContext across composables

* make date time only for supporting time systems

* fix css for bounds single inputs

* time formats can specify date/time delimiters

* move history out of form
remove unused gear icon
remove debugging code

* handle toggle independent time

* v-if logic one component up

* add back date selector

* fix datetime fixed validation

* combine time composables into one
lint fix

* fix single datetime fixed input validation
clean up shouldDismiss modal behavior

* correct jsdocs

* this v-if is not in use

* optional `formatDate` method can be defined to split date and time
refine `UTCTimeFormat`'s `format` method and valid formats

* fix split date time inputs test

* copy and paste into split date time inputs

* fix validation and reporting of inputs on paste

* validate against same start and end fixed time bounds
alter verbiage for validation of offsets to match that of bounds

* better jsdocs

* remove deprecated file

* vue component name linting

* fix e2e test label locator

* more specific locator

* fix reactivity for independent time conductor

* convert `IndependentTimeConductor.vue` to use vue3 composition api

* fix throttle on bounds

* safety check on dom element

* follow mode properly in ITC

* fix standard time conductor not having a `useIndependentTime` value

* provide and use `currentValue`

* change timeOptions on path change
lint fix

* fix saved `timeOptions` `bounds` being overwritten by `bounds`

* no more settings icon for independent time conductor pop-up

* fix warning message verbiage

* remove timeout since time conductor is now reactive

* add copy/paste functionality to single datetime inputs

* computeds don't need to be manually set

* explain `formatDate` in documentation

* allow pasting millisecond precision into split date/time inputs

* remove log per review comment
https://github.com/nasa/openmct/pull/7818#discussion_r2535418644

* add tsdoc to plugin
* deprecate records in configuration.menuOption
* reconds should be in configuration

* pass time conductor configuration to independent TC
https://github.com/nasa/openmct/pull/7818#discussion_r2535711788

* fix limit validation
requires provide of `timeSystemKey` and `configuration`

* ensure matching clock and timesystem on change

* make switch clock and time system more resilient

* fix failing notebook visual test

* update visual snapshots
diff - remove gear icon
diff - add history icon

---------

Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2025-12-15 22:47:55 +00:00
Andrew Henry
c912c3ae5a Simplify Open MCT bootstrapping (#8203)
* Ensure the body is loaded before trying to bootstrap Open MCT

* null vs undefined. It's just not worth it ECMA, it's really not.

* Support specifying target element by selector so that resolution can be deferred until after the body is loaded

* Add test to verify that Open MCT bootstrapping works as expected

* Update API doc on bootstrapping Open MCT

* Add black starting page to support bootstrapping Open MCT from scratch

* Tweaked docs

* Fixed prettier problems

* Added additional validity checks and fail-fast paths for developers
2025-12-08 13:58:59 -08:00
Shefali Joshi
16a9ced493 Feature plot better utc ticks (#8139)
* Initial prototype of UTC timestamp ticks

* draft tick changes

* Refactor time-series ticks

* Add e2e test for time ticks

* Better comments and variable names and some formatting

* Fix tests broken due to new implementation of ticks
2025-11-20 19:31:24 +00:00
Andrew Henry
263ad97062 8184 couch requests views failing (#8185)
* All telemetry criteria bug (#8084)
* Reference telemetry map as a Map, not associative array
* Only normalize once
* Another cheeky createNormalizedDatum
* Fix unit tests that were broken by removal of createNormalizedDatum
* Fixed failing test
* Don't double stringify requests to views
* Add E2E test to catch 400 errors due to double stringification
* Removed files AGAIN
* Use design documents in testing
2025-11-04 19:06:34 +00:00
Charles Hacskaylo
be54feda0a Store and retrieve the view type, per object type (#8068)
* Allow user to set machine-based preferences for main object views.
- WIP
- BrowseBar.vue now stores view selection when viewSwitcher component is invoked as localstorage object 'openmct-stored-view-prefs'.
- Browse.js in `#viewObject` looks for an existing value in 'openmct-stored-view-prefs' and uses it.
- TODO: stored pref currently overrides `view` querystring parameters, but shouldn't.

* Allow user to set machine-based preferences for main object views.
- Browse.js now sets currentViewKey in the right spot.
  - Changes in #viewObject reset.

* Allow user to set machine-based preferences for main object views.
- Style tweaks to `c-list-view` when used in object-type folder.
- Added missing copyright header to list-view.scss.

* Fixed linting errors

* Add test for Folder 'List View' persistence

- Closes #1395.
- Update .gitignore to not check in Webstorm test config file.

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>
2025-10-03 13:00:29 -07:00
Charles Hacskaylo
569c7fffe3 Expanded Time List enhancements for #8091 (#8095)
* Markup and CSS changes for expanded Activities in Time List
- Significant markup and CSS changes.
- Activities now use Plan colors.
- Greatly improved narrow space and wrapping.
- Added new global data uri's for status icons.
- Added new global `gear-spinner` animation for in-progress Activity status icon.
- Added new global `absCenter` mixin.
- Revised and greatly simplified execution status and time context labels.
- Revised, refined past/current/future styling and theme colors.
- Status icon coloring added to theme constants.
- Updated other themes constants for new approach to bg/fg/em.
- Smoke tested in Espresso and Snow themes.

* Remove unused imports

* Remove unused and commented out code

* Remove progress pie tests as that widget no longer exists

* lint fix

* remove tests for progress pie as it no longer exists

---------

Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
2025-09-17 16:19:02 -07:00
Andrew Henry
5872b9006d Adjustable swimlanes merge attempt 2 (#8138)
* Move ResizeHandle to reusable ui location
* Changes for user-settable swimlane heights.
* resize widths for all swimlane labels
* make drag resizer more scalable
* add resize handles to time strip views
* Moved many CSS defs from flexible-layout.scss into new mixin `resizeHandleStyle`.

---------

Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2025-08-27 12:57:12 -07:00
Scott Bell
76b22a7a49 Discrete Event Visualization in Timeline (#7967)
Implements timeline visualization of discrete events such as Events and Commands
* Closes #7960

Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2025-07-25 17:44:19 -07:00
Jamie V.
826c7134b5 Make Plot "Export as PNG/JPG" default filenames more clear and make the methods extendable (#8070)
* add filename argument and update default name
* add filename argument and update default name
* allow the invoke function to accept a filename to pass to the view actions
* tests
* remove invalid chars from filenames, another test for that
* replace periods with underscores as they may be useful in a name
2025-05-20 13:38:55 -07:00
Jamie V.
fa1a45b6cd [Inspector Tabs] Updates (#7987)
* added getTypes to types api, modifying which tabs are shown, working on annoatation tab
* moving hasNumericTelemetry to an api method
* updated types api to return all types, updated annotations api to return annotatable types, cleaned up use of hasNumericTelemetry elsewhere in the code

* Changes for tabs visibility and priority
- Alphanumeric formatting tab set to default priority while editing, low priority during browse.
- Good styling for Format tab contents in browse mode.
- Properties tab set to low priority during editing, default during browse.
- Make Elements pool visible in browse mode, omit edit capabilities.
- Edit and browse mode priorities for Properties and Elements.
- Adjusted edit and browse mode priorities for Properties and Elements.
- Priority set for Gantt view.
- Priorities set for Graph, Lad Table, Scatter Plot, Telem Tables and Time List views.
- Changed several Inspector tab names to 'Config'; tests and other code changed to target `key` instead of `name`:
  - LAD Table
  - Time List - will need regression testing for change noted re. `key` above.
- Created browse mode read-only Inspector views:
  - LAD Table, Lad Table set.
  - Telemetry Table.
  and `showTab` functions; `showTab` has just been set to true for now.
to prevent it from displaying when no filters can be set.
- Plot plugin.js now adds configuration.objectStyles {} for overlay and stacked plots on initialize.
- FiltersView now displays a message for telem sources that don't have filter criteria available.
- Annotations tab now set to never display when a view is being edited.
- Added `objectStyles: {}` to initialize functions for multiple objects:
  - Condition Widget
  - Gauge
  - LAD Table

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2025-05-15 16:55:15 -07:00
Andrew Henry
2e7fb94dd5 Condition Sets can incorrectly evaluate telemetry objects that update infrequently (#8041)
* Remove short-circuit logic

* Revert change to remove short-circuit logic

* Restore short-circuit evaluation, pass in current values

* V2, restore short-circuit eval

* Added timestamp checking for individual criteria

* Some optimizations

* Co-authored-by: Pranaykarvi<pranaykarvi@gmail.com>

* Fixed bug that prevented test data from working at all

* Fixed bug introduced by refactor. Oops.

* Fixed bug with test data

* Provided clarification in test description

* Replaced legacy tests with new e2e test of correct telemetry evaluation

* some markup changes to improve testability

* Address review comments

* Fixed linting error

* Fixed broken tests

* Fixed long-standing bug with evaluating enums

* Fixed broken tests

* Fixed linting error

* remove commented code

test name grammar fix

---------

Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
2025-05-14 08:32:35 -07:00
Andrew Henry
6a450a0e89 Couch search indexes (#8037)
* Defined search index for object names. Add index for searching by object type
* Feature detect if views are defined to support optimized search. If not, fall back on filter-based search
* Suppress github codedcov annotations for now, they are not accurate and generate noise.
* Allow nested describes. They're good.
* Add a noop search function to couch search folder object provider. Actual search is provided by Couch provider, but need a stub to prevent in-memory indexing
* Adhere to our own interface and ensure identifiers are always returned by default composition provider
2025-04-23 11:58:51 -07:00
dependabot[bot]
50ca27e54f chore(deps-dev): bump d3-shape and @types/d3-shape (#7605)
* chore(deps-dev): bump d3-shape and @types/d3-shape

Bumps [d3-shape](https://github.com/d3/d3-shape) and [@types/d3-shape](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/d3-shape). These dependencies needed to be updated together.

Updates `d3-shape` from 3.0.0 to 3.2.0
- [Release notes](https://github.com/d3/d3-shape/releases)
- [Commits](https://github.com/d3/d3-shape/compare/v3.0.0...v3.2.0)

Updates `@types/d3-shape` from 3.0.0 to 3.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/d3-shape)

---
updated-dependencies:
- dependency-name: d3-shape
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: "@types/d3-shape"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump d3-shape and @types/d3-shape

Bumps [d3-shape](https://github.com/d3/d3-shape) and [@types/d3-shape](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/d3-shape). These dependencies needed to be updated together.

Updates `d3-shape` from 3.0.0 to 3.2.0
- [Release notes](https://github.com/d3/d3-shape/releases)
- [Commits](https://github.com/d3/d3-shape/compare/v3.0.0...v3.2.0)

Updates `@types/d3-shape` from 3.0.0 to 3.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/d3-shape)

---
updated-dependencies:
- dependency-name: d3-shape
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: "@types/d3-shape"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Dependency upgrade changed rendering of SVG. Visually verified that it is correct and updated the test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2025-03-28 14:25:25 -07:00
Shefali Joshi
28b5d7c41c Time strip marcus banes line "now line" fix for right y-axis and when now is out of bounds (#7993)
* Account for right y-axes when calculating now line position.
Don't show the now line if it's out of bounds of the time axis

* Add test for now marker in realtime and out of bounds modes
2025-02-17 18:23:48 +00:00
Shefali Joshi
ecd120387c Independent time conductor related handling for plot synchronization. (#7956)
* Ensure that the mode set when independent time conductor is enabled/disabled is propagated correctly.
Also ensure that global time conductor changes are not picked up by the independent time conductor when the user has enabled it at least once before

* Use structuredClone instead of deep copy

* Add e2e test

* Assert that you're in fixed mode after sync time conductor

* Comment explaining new time context test

* Change test to be a little less complicated

* Fix linting errors
2025-02-10 21:46:00 +00:00
Shefali Joshi
1fde0d9e38 Don't disallow mouse events when in compact mode for plots (#7975)
* Allow highlights and locking highlight points for plots in compact mode, but still disallow pan and zoom.

* Remove unnecessary watch on cursor guides and grid lines

* Test for cursor guides in compact mode
2025-01-18 15:50:24 +00:00
Jamie V.
5be103ea72 modified the sanitizeForSerialization method to remove unnecessary re… (#7950)
modified the sanitizeForSerialization method to remove unnecessary recursion, update e2e test to CORRECTLY test the functionality
2024-12-09 20:34:07 +00:00
Jamie V.
5bb6a18cd4 [Notebook] Browse Bar holding onto stale model, reverts changes (#7944)
* moving rename methods to appActions

* importing back into original test

* reverting

* add the ability to change the name in the browse bar

* add test to verify entries are not being lost

* addding aria labels for tests

* when an object is changed, store the whole new object, not just the name

* typo!
2024-12-06 14:13:08 -08:00
David Tsay
14b947c101 fix vue reactivity of rows by changing the reference of the updated row (#7940)
* do not call `updateVisibleRows` on horizontal scroll
* add example provider for in place row updates
2024-12-04 11:27:52 -08:00
Jamie V.
61b982ab99 [Telemetry API] Prevent Subscriptions with different options from overwriting each other (#7930)
* initial implementation

* cleaning up a bit

* adding the hash method back as we dont want gigantic keys

* adding a line

* added filtering to state generator, updated filters readme to fix error, more robust hash function

* removing unnecessary changes in wrong file

* adding a test to confirm each endpoint has a separate subscription based of filtering

* lint

* adding back in hints, accidentally removed

* remove some redundant code and convert sanitization method into a replacer function for stringify

* tweaking serialize replacer to handle arrays correctly, adding more determinative row addition check to test

* more focused selector for the table

* simplified the serialization method even further and added some more docs
2024-12-04 03:33:15 +00:00
Jamie V.
ba4d8a428b [Gauge Plugin] Fix Missing Object handling (#7923)
* checking if the metadata exists before acting on it

* added a test to catch missing object errors in gauges

* remove waitForTimeout and add in check for time conductor successful start offset update

* hardening the test by checking for the time before the time change

* add "pageerror" to cspell
2024-12-03 15:13:51 -08:00
Shefali Joshi
ea9947cab5 Use the disabled attribute on a valid element - the button. (#7914)
* Use the disabled attribute on a valid tag - the button.

* Add e2e test to check for add criteria button being enabled

* Improve test

* Check for add criteria button to have attribute disabled

* Remove focused test
2024-11-05 20:53:28 +00:00
Jesse Mazzella
2010f2e377 chore: bump @playwright/test to v1.48.1 (#7913) 2024-10-21 17:03:54 -07:00
Shefali Joshi
057a5f997c Encode urls for css background images (#7906)
* Add new utility to encode urls.
Use the encode urls utility to encode all background images in css

* need a commit to pull exampleimagery from

* skip and fix on otherside

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-10-18 19:59:02 +00:00
Shefali Joshi
3e23dceb64 fix(#7892): restore "now" (marcus bains) line to planning views (#7898)
* Initialize alignment offset to 0. (it was undefined). Also handle a small bug with swimlane configuration not getting replaced when the plan used by a gantt chart was changed

* lint: fix

* test: update visual tests to mock clock and show now line

---------

Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] <jesse.d.mazzella@nasa.gov>
2024-10-17 14:24:26 -07:00
David Tsay
7c2bb16bfd Bugfix/7873 time conductor input validation (#7886)
* validate on change because input is too aggressive
* validate logical bounds on submit
* perfection
2024-10-16 18:57:56 -07:00
Shefali Joshi
2b8673941a Don't persist current tab when display is locked (#7882)
Check if a display is locked before saving current tab. 

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>
2024-10-11 16:17:29 -07:00
John Hill
47f0b66c7e [CI] Fix flake with clocks and state generators (#7867)
* add two appActions

* replace with appAction

* replace with determinsitic appAction

* fix lint

* speed
2024-10-04 15:47:25 -07:00
Jesse Mazzella
55c023d1eb chore: it is 2024. (#7864) 2024-10-03 06:28:26 -07:00
Jamie V.
37b2660f27 [Conditionals] Increase performance, switch to TelemetryCollections (#7841)
* adding telemetry collections to condition manager

* handling telemetry collection data not datum

* adding from maaster

* addressing PR comments

* update unit test to work with telemetry collections

* fixing tests

* removing unnecessary addition

* removing focused describe

* removing focused it

* fix weird test bleed

* adding test for conditional styling

* removing some auto fix es-lint

* got a bit overzealous

* clarification

* using raf utility which handles it correctly and moving visiblity handling into the raf for consistency and performance

* using raf correctly

* removing raf, was causing issues

* move the test and add some determinism

* oops only

* missed lint

* got it!

* fix comments

* test(condStyling): stabilize test

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2024-10-02 14:14:15 -07:00
Jesse Mazzella
43cc963328 chore: bump @playwright/test to 1.47.2 (#7859) 2024-10-01 21:01:02 +00:00
Jesse Mazzella
ad30a0e2d0 feat(Fault Management): allow fault providers to define shelve durations (#7849)
* refactor: clean up FaultManagementView code

* feat: providers can now provide "Shelve Duration" options

* fix(exampleFaultSource): support `getShelveDurations`

* a11y: aria label for fault management list item

* a11y(FaultManagement): more labels

* refactor: eliminate some faultUtils and refactor locator() out of tests

* docs: add some more docs to fault management api

* refactor: make for loop more readable

* test: use static faults when testing

* fix: set a timestamp for static faults and subtract so we get faults in order

* refactor: autoformat

* chore: add missing copyright header

* fix: use as default parameter to get value as method is called

* refactor: make magic number a const

* fix(codecov): use codecov github action to upload

* fix: generate the report

* build: update circleci yml to use codecov orb

* build: remove codecov scripts and package

* build: don't use the orb because things can't be easy

- nasa org disallows "third party" orbs

* build: only use `sudo` if we ain't da root user

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>
2024-10-01 10:41:18 -07:00
Andrew Henry
29f1956d1a Improve telemetry buffering implementation (#7837)
* 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.
2024-09-30 14:36:40 -07:00
Charles Hacskaylo
c498f7d20c Fix bad color value for Gauge 'Needle' type (#7821)
* Closes #7820
- Fix 0 opacity fill in theme constants files for Gauge type needle.

* move gauge plugin to its own suite

* add two more snapshots

* driveby: fix some flake

* bug: update linting rule

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2024-09-28 09:17:32 -07:00
David Tsay
a8fbabe695 fix(#7825): imagery pause (#7842)
* 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>
2024-09-27 14:32:14 -07:00
Jesse Mazzella
26578e849d chore: bump version to 4.1.0-next (#7832)
chore: bump version to 4.1.0-next
2024-09-10 23:14:22 +00:00
Jesse Mazzella
440474b2e3 fix(conditional styling): conditional visibility for images and alpha-numerics in display layouts (#7824)
* 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!
2024-09-09 22:41:29 +00:00