* 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
* 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
* 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>
* touch every file on earth to update copyright
* update one more
* pick up 2017 2018 2019
* revert fuchs copyright
* revert other bundle copyrights
* somehow missed one
* no-implicit-coercion and no-unneeded-ternary
* End every line with a semicolon
* Spacing and formatting
* Enabled semi-spacing
* Applies npm run lint:fix to code after master merge
* Fix merge issues
* Switched operator-linebreak to 'before'
Co-authored-by: Joshi <simplyrender@gmail.com>
- Fixed incorrect CSS naming: `c-frame-edit__move` changed to
`c-frame__move-bar`;
- Fixed `display: contents` that was erroneously applied to
`u-angular-object-view-wrapper` and preventing styling from being
applied to plots, renamed class to `.l-angular-ov-wrapper`;
- Removed commented CSS;
- Added min-width and min-height to Display Layout lines to allow
easier selection and move when line is purely vertical or horizontal;
- Fixed spacing, size and icon of overlay close button;
* UI enhancements for #3176
- Large overlay now displays fullscreen;
* UI enhancements for #3176
- Adding new ".is-in-small-container" CSS - VERY WIP!
- TODO: fix table implementation;
* UI fixes for NIRVSS client #170
- Hide table header filter inputs when table is in small container;
* UI fixes for NIRVSS client #170
- Fixing legends and plot layout when small, and within a stacked plot;
- Add new `hideLegendWhenSmall` property;
- Remove 'hidden' from plot legend position options;
- Reduced opacity of tabular headers in Espresso theme;
- VERY, VERY WIP right now!
* UI fixes for NIRVSS client #170
- Fixing legends and plot layout when small, and within a stacked plot;
- Cleanups, indention, removed commented CSS;
- Tightened up spacing in plot Y axis;
* UI enhancements for #3176
- Move local controls for plots and imagery, prevent overlapping with
view large button when in a hidden frame in a layout;
- Finesse local control styling for increased legibility;
- Move l-state-indicators to avoid overlap with repositioned local
controls, finesse styling;
* UI enhancements for #3176
- Tweak large overlay close button for better visual alignment;
* UI enhancements for #3176
- Significant improvements to lines in Display Layouts;
- Increased border-width for lines and boxes;
- Code enhanced for proper handling of horizontal and
vertical lines - but still isn't working properly;
- Renamed box-view.scss to box-and-line-views.scss;
- VERY WIP!
* Fixed incorrect grid array reference
* UI enhancements for #3176
- Fixed final issue with Display Layout line drawing object, thank you
@deeptailor!;
* UI enhancements for #3176
- Contrast enhancements and markup normalization for `c-object-label`
elements in main view, Layout frames, Inspector and overlay;
- Enhanced `l-overlay-large` layout;
- Tightened up margins and spacing in plots;
- Refined `is-paused` styling in Telemetry Tables;
- Now hide Telemetry Tables 'Export Data' button if rows are selected,
which use a separate export button;
- Layout frames now hide button's text labels when small;
- Layout frames spacing tightened up and improved;
* UI enhancements for #3176
- Tweak Snow theme constants;
* UI enhancements for #3176
- Fixed ObjectFrame getOverlayElement method, added a wrapper div
around the viewed object to properly control resulting layout in the
overlay;
- Simplified preview CSS to remove background, border and padding;
- Layout tweaks to add space between scrollbar and thumbs in Imagery
view;
- Removed dev "-info" element in LineView.vue;
* UI enhancements for #3176
- Improved styling for 'edit lock' button;
* UI enhancements for #3176
- Show Display Layout frame "-move" bar on hover, rather than select, to
make it easier to select items with hidden frames, and only show -move
bar's drag grippy when that frame is selected;
- `pointer-events: none` applied to table's body and plot's plot areas
when placed in a Layout and being edited, prevents distracting
interactions (plot zoom/pan, table row selection) when selecting and
moving elements in a Layout;
- Refined hover styles for c-button to use $filterHov, simplified and
normalized hover styling;
- Converted a number of old `<a>` tags to `<buttons>` to normalize
styling and use the appropriate control;
- Edit lock button is now colored when locked;
* Fix linting issue
* Minor tweaks
- Tweaked control positioning;
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* Upgrades lodash
* Replaces some usage of lodash with native functions.
* Adds linting to catch cases where native functions could be used instead of lodash functions
* Renamed testTools to testUtils
Co-authored-by: Joshi <simplyrender@gmail.com>
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 <akhenry@gmail.com>
* Show non specific styles when updating multiple item styles
* Save sub object styles to it's domain object
* Layout UI tweak
* Fixes flexible layout bug.
* Fixes font size bug in telemetry view
* Fixes issues with newly places TVOs including transparent properties.
* Fixes#2908
* Say NO to 'transparent' === '__no_value'
- Fixes#2895;
* Ensure styles are correctly applied to domain objects and drawing objects when selected individually
* Ensure none treatment is correctly applied to objects when multple selecting
* Fix intial box border
* Tweaks to c-text-view layout
- Vertically center text;
- Normalize padding;
- Overflow: hidden;
* Tweaks to Clock and Timer layout
- Fixes#2893;
- Vertically center text;
- Normalize padding;
- Overflow: hidden;
- `position: absolute` when in Layout;
Co-authored-by: charlesh88 <charlesh88@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* Modify Selection API to support multi-select via shift click.
* Add support for shift + click to add and remove the selection.
* Display message in Location and Properties for multi-select.
* Define applicableSelectedItems for toolbar items. Move toolbar control definitions to functions.
* Hide positioning inputs if multi-select. Show a 'non-specific' icon when a discrete setting can't be shown in a mixed setting."
* Add toolbar controls in groups per layout item type. Add nonSpecific property to toolbar items to be used by toolbar controls to show non-specific icon.
* Modify toolbar button to react to nonSpecific flag. Get form value by checking value of applicable selected items.
* Support deleting multiple selected objects.
* Do not disable controls when selected items have mixed setting.
* Revert default color to original value.
* Changes to snap-to-grid
* Remove timeout for updating toolbar after mutation. Do not copy toolbar item when iterating the structure.
* Implement move to top and move to bottom for multi-select
* Implement move up and move down for multi-select.
* Markup and CSS changes for mixed settings in toolbar
- Toggle, color-picker buttons;
- TODO: check other themes and sync;
* Mixed settings styling complete
- Refined and synced theme constants;
- Styling for all toolbar components;
- Text size menu handling;
- Inspector messaging;
* Fix selection path
* Mixed settings styling refinements
- Normalized button styling for mixed style context;
- Better theme constant naming;
- Refined swatch styling, better theme constants;
* First cut at getting the bounding rectangle working for multi-select.
* Set pointer-events to none on c-edit-frame to prevent marquee reacting to click events.
* Delete capturing before calling select.
* Remove EditMarquee from ITEM_TYPE_VIEW_MAP
* Pass selected layout items as a prop to edit marquee instead of selection so that x, y, w, h are updated.
* Multi-select c-frame-edit visual fixes
- WIP
* Add complexContent class for a single selected item whose type is subobject-view.
* Move 'c-frame-edit-move' div to layout frame.
* Saving work - multi-move WIP
* Fixes issue with selection happening at end of drag
* Styles fixed for new markup organization
- Marquee, frame styles;
- $editMarqueeBorder style added to theme constants;
* Significant functionality for .c-frame-edit__move element
- Added .is-multi-selected class to .l-layout when > 1 items selected;
- __move element now handles multi-select and complex content (CC)
objects:
-- 0 to 1 items selected, displays as hover bar with grippy on all CC
objects,
-- > 1 items selected, __move covers all of the frame of all selected CC
items and doesn't allow sub-object selection, and only displays as hover
bar on non-selected CC objects;
- Added better styling for selected objects while editing;
- Code cleanup and consolidation;
- Left translucent green style applied to __move element to temporarily
aid development;
- TODO: fix line drawing object;
* - Fix an issue where shift click did not remove the selected item from the selection after move.
- Modify telemetry and subobject views to emit move and endMove events.
- Clone selectedLayoutItems to get initial positions instead of selection so subsequent moves start from the current position.
* Fix cursor for __move, code comment refinements
* Code cleanup, line view markup changes
- line view markup brought into line with structure in LayoutFrame.vue;
* Implement multi-resize
* Simplify edit marquee code. Revert image and text views' default position to the original values.
* Fix resize for single selection when snap to grid is disabled
* Hide edit marquee if single line is selected, and show c-frame-edit in line-view instead.
* Fix for LineView handles
* Remove snap to grid toggle button and modify the migration script to convert elements with pixel coordinates to grid.
* Fix resizing single line
* Calculate width and height differently for line to position marquee correctly.
* Fix moving single selected line
* Calculate the height and width for line before comparing them with max height and width to correct the marquee position.
* Change the logic for showing frame edit for lines to check for item id.
* Allow multi-move with line in the mix.
* Implement multi-resize when grabbing SW corner.
* Removed temp green tint from __move element
* Fix object undefined error.
* Implement multi-resize for all items except line (take 2).
* Misc UI 7
- CSS selectors to properly display edit marquee, don't show in browse
mode;
* Fix multi-resize for lines.
Make sure line's height and width is minimum 1.
* Disable inspector views when multiple objects are selected.
* Restored layout grid display on sub-layout selection
* Clean up code
* Fixes
- Edit marquee display fixes;
* More code clean up
* SIGNIFICANT fixes and rewriting in LayoutFrame.vue
- Styles for .c-frame-edit__move element for selection and hovering;
- local controls;
- view large button;
- Theme constants updated;
* Get selected item's index from layoutItems.
* Address review feedback.
* Merge topic-core-refactor
* Reset keyString to empty string after setting original path when domainObject is undefined.
Add proper check for selection.
* Add a button in the toolbar to toggle snapp to grid.
* Convert item's coordinates and size from grid unit to pixels depending on useGrid value.
* Rename selectionListener to removeSelectionListener
* Add delete button in the toolbar for removing items
* Mutate composition if there are no telemetry objects. Select the parent layout after deleting an item.
* Saving work
* Watch for index in the components and update it in the context.
* Select the parent after a composition is removed.
* Address reviewer's feedback.
- Rename mutatComposition() to removeFromComposition().
- Inline logic for filtering composition
- Use separate branches for each item type in trackItem().
* Address reviewer's requested changes
* Hacky WIP
* WIP
* check for 'domainobject' in data transfer
* Metadata manager can return default display value
* Refactor subobject and telemetry views to use layout frame
* Use data domainObject
* Get metadata for selected object.
* Don't inject lodash via vue
* move selection to specific layout types
* restore toolbar functionality
* Support creating line
* Add controls for setting x, y, x2 and y2 for lines from the toolbar.
* Initial attempt at resizing lines
* Check for duplicate panel
* line resize handles working
* Get Text and Box elements working.
* Refactor image view to use layout frame
* Fix drill in
* Check for object before accessing the identifier to avoid type error.
* Add inspectable class if item is subobject or telemetry view.
* Delete unused files
* remove unused imports
* Fix typos
* Fix cssClass and objectPath
* object can be undefined so check for it not being undefined before adding a listener.
* Set cssClass when domain object is available
* Get user input for text and image in the toolbar when adding element.
* - Show "Add" button in the toolbar when a display layout object is selected.
- Add a flag to object view's show() method to indicate immediate selection of the view. If the view implements getSelectionContext() use it, otherwise set to default context.
* Create a component for each element.
* Saving work
* Add element factory for creating new instances of elements.
* Mutate element when a new one added and get elements when the component is mounted.
* Add create() method for creating a new telemetry and element in their respective view configuration.
* Add some of the toolbar controls for box, text, image and line elements. Also, add X, Y, Width and Height controls for alhpanumeric elements.
* Pass name to addElement as type.
* Add c-frame-inspectable class if item is inspectable.
* Clean up
* Hide frame for summary widgets by default.
* Better styling for editing
- s-selected on shell__main-container;
- Better edit grid coloring for espresso;
* - Update toolbar-button to support dialogs.
- Update toolbar to construct a value object based on form keys if a toolbar item has a dialogi, and mutate the form keys.
- Add toolbar controls for editing text and url for 'Text' and 'Image' elements respectively.
* Editing-related changes
- Removed hard-coded .is-selectable and .is-moveable from
LayoutItem.vue, updates accordingly to _global.scss;
- Theme constants updated;
- TODO: apply changes to Flexible Layouts;
* Better defaults
- Better default grid size and object size;
* - Fix toolbar-input to read value as a number if type is 'number'.
- Remove rawPosition from view configuration and instead get the position and dimensions from the properties (x, y, width and height) directly.
- Set the style property on the view configuration instead of the layout item.
- Move the logic for updating the style to the view configuration.
* Fix default dimensions for telemetry items and subobjects since the default grid size is changed.
* Remove form definition for display layout type.
* Reword the comment
* Let subobject view configuration handle new panel creation.
* Add default grid size back and remove unused code.
* Pass in only the needed method.
* Define default position in case the object is not added via drag 'n drop.