* 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>
* 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>
* Use the planObject to get ordered swimlane names
* If there is no plan object, don't try to render the chart
---------
Co-authored-by: Jamie V. <jamie.j.vigliotta@nasa.gov>
* refactor: `Indefinite` -> `Unlimited`
* refactor: remove unused const
* fix: use the selected shelveDuration
* fix: set and use default if none selected
* fix: bad optional chaining
* fix: handle the case of no provider
* fix: don't assign defaults if no provider
* Script for locking an object tree
* Show lock button if locked
* Do not allow properties editing of locked objects
* Remove package-lock.json
* Added p-debounce
* Allow duplication of locked objects
* Better user feedback
* Add semaphores to prevent file handle exhaustion
* Leverage official Apache Couch library - nano. Clean up dependencies. Default to environment variables for couch config. Simplify batching mechanism to make it synchronouse
* Added lock user attribution
* Remove unused code
* Modify open script for adding auth design doc
* Added script for creating auth design doc
* Add css class for disallow unlock
* Add user attribution to lock button
* Fix import
* Typo
* User it was locked by, not current user. Wow.
* Closes#7877
- Front-end sanding and shimming: displays <span> instead of button when domainObject.disallowUnlock.
* Fixed bug where lock is shown even if object is not locked
---------
Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* Issue where immutable objects sort order was not being set correctly in telemetry tables.
* Configuration couldn't be saved and the sort order was not being saved in memory.
* Telemetry was not being re-requested when the sort order of a table was changed and the table was in performance (limited) mode.
* We've moved sort order to both configuration and in-memory and we will re-request telemetry if changing sort order in performance mode.
---------
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* feat: add function to generate a seeded random value
* fix: produce the same compass orientation per timestamp
- helps for consistent visual tests
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Clock
* pass in default timeContext in request options
* observe for clock tick, instead of polling, to determine if clock has time set
Progress Bars
* use scale instead of move animation
Plan
* use a ResizeObserver instead of polling for size changes
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
When adding sorted arrays to the beginning, make sure to insert them in the same order and not accidentally reverse them while inserting.
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* 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>
* 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>
* 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.
* 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>
* 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>
* Only as for latest historical telemetry
* Add test for size 1 request when a bar graph is loaded
* Use strategy latest instead of size 1 for historical request
* Fix linting issues
* Add size and strategy
* Remove bar graph tests
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* bugfix: update tsconfig to set module to NodeNext and exclude openmct/e2e
* chore: remove unnecessary paths from exclude
- the `exclude` option only excludes files in the context of the `include` paths, if there are any. We can remove some of these because they don't match anything in the include paths.
* chore: fix capitalization for consistency
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* adding an option to no swap order to initiatSort
* debug
* defaulting to desc order for requests if there is not saved order
* adding some common constants
* replace all got into a comment
---------
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
* 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>
* docs: fix type imports in openmct.js
* docs: fix type imports
* docs: fix types for eventHelpers
* docs: types for TypeRegistry
* docs: types for StatusAPI
* docs: fix ObjectAPI types and docs
* docs: more types
* docs: improved types for main entry
* docs: improved types
* fix: unbreak the linting
* chore: remove EventEmitter webpack alias as it hide types
* fix: return type
* fix: parameter type
* fix: types for composables
* chore: add webpack consts to eslintrc
* fix: remove usage of deprecated timeAPI methods and add a ton of docs and types
* docs: update README.md
* lint: clean up API.md
* chore: upgrade eventemitter to v5.0.2
* refactor: update imports for EventEmitter to remove alias
* format: lint
* docs: update types for Views and ViewProviders
* docs: expose common types at the base import level
* docs(types): remove unnecessary tsconfig options
* docs: ActionAPI
* docs: AnnotationAPI
* docs: import common types from the same origin
* docs: FormsAPI & TelemetryAPI types
* docs: FormController, IndicatorAPI
* docs: MenuAPI, ActionsAPI
* docs: `@memberof` is not supported by `tsc` and JSDoc generation so remove it
* docs: RootRegistry and RootObjectProvider
* docs: Transaction + Overlay
* lint: words for the word god
* fix: review comments
* 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`
* DRAFT - alignment for axes
* Use alignmentContext to manage tick widths instead of passing around as props
* Remove log statements
* Add ability to remove alignment widths for a given y axis
* Fix computation of left margin and width of plan when in the timestrip
* Remove excess padding when there is no left y axis
* Use alignment composable to adjust left margin and width of time system axis
* Fix now marker visibility
* refactor: use built in `Map()` data structure
* refactor: improve readability and conciseness
* docs: improve jsdocs
* refactor: move jsdoc typedefs to bottom of file
* refactor: axis to use vue reactivity
* fix: return alignment as an object of refs
* alignmentMap needs to be shared state, move it out of the useAlignment composable.
* Fix now marker offset
* Add new visual test for time strips
* update with animation stabilization
* Fix failing test due to changed injected property (path -> objectPath)
* change injected property from path to objectPath
* Fix spelling
* Remove unused arguments to function call
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Hill, John (ARC-TI)[KBR Wyle Services, LLC] <john.c.hill@nasa.gov>
* 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>
* update imagery to be static
* bump versions
* doesn't do anything
* does this do anything
* undo only
* update the hardcoded urls
* add ignore CI logs push
* downgrade to test
* update the package lock
* Add some more noise reduction
* move to elements tab so that there is no time-based component
* stability
* re-enable main test
* Enable tests and fix some failing ones
* revert accidental changes
* test(a11y): on failure, take a screenshot to disk
* test(visual): wait for the snapshot indicator to stop flashing
* Fix all failing tests
* test: disable a11y checks for planning suite
* lint:fix
* fix pathing issues
* build: increase visual-a11y parallelism from 2 to 4
* test: darkmatter theme a11y checks + snapshots-- ACTIVATE!
* test: fix file name and path
* fix(#7317): scott bell prophecy
* jk no credit for u
* chore: disable parallelism until we figure out what's going on
* chore: set parallelism to 2 in hopes it fixes percy
---------
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>