* Hardcoded prototype - conditional styles for display layout or generator domain objects only.
Needs Architectural review
* Updates to ConditionalStylesView
* Adds background colors list
* Show conditional styles for subObjectViews and telemetryViews
* Uses telemetry provider to determine which style is active
Removes hardcoded conditionSet work used for prototype
* Fixes failing test
* Add default styles to conditionalStyles when a condition set is added to the domain object.
* Use EventEmitter alias instead of eventEmitter3 in imports
Change variable name for better readability and clarity
Remove unused code
* Change StyleRuleManager to accept conditionStyle objects instead of domainObjects
* Uses a map for conditional styles instead of a list in order to improve performance
* Use in-built api to check for identifier equality
Pass missing arguments
* Removes unnecessary object get call.
* Conditionals styling WIP
- Tweaks for layout/overflow issues;
- Better header alignment;
- Much better approach to "accordion" spacing;
* Adds conditional styles for drawing objects
* Fixes small bugs while adding or removing nested conditional styling
* Removes hard coded conditionSetIdentifier
* Fixes small conditionManager bug
* WIP - Adds condition set selection dialog
* WIP - Add condition set
* Styling for tree dialog in selector
- New `.c-selector` class;
- Markup added to tree-item.vue to fix missing `c-object-label` wrapper;
* Adds image url to styles inspector view
* Adds highlight for selected conditionSet in selection dialog.
* Conditionals Inspector styling WIP
- Simplified Inspector markup;
- Refined `.c-inspector` layout strategy;
- Refined `.l-multipane` classes for better layout and scroll handling;
- TODOs: styling for 'styles' section; unit test, find regressions, fix;
* Read-only mode changes for the styles inspector
* Adds basic styling for styles inspector view
* Removes unused code
* Displays condition set name
* Display description for conditions
* Conditionals Inspector styling WIP
- Add new ObjectName component to Inspector;
- Add supporting styles;
* Conditionals Inspector styling WIP
- Refactor for better usage of c-object-label;
- Refactor `c-properties` classes to `c-inspect-properties`;
* Conditionals Inspector styling WIP
- Introduce `c-inspect-styles` class;
- Markup refined in ConditionalStylesView.vue;
* Conditionals Inspector styling WIP
- Fix unintended regression in `c-object-label`;
* Makes inspector view tabs sticky.
Shows errors if either telemetry or conditions are missing
Refresh conditionStyles when styles inspector is loaded to show new conditions that might be added to the conditionSet
* Conditionals styling WIP
- Added title to Condition Set selector dialog;
* Conditionals styling WIP
- CSS and markup changes;
* Conditionals styling WIP
- Markup changes;
* Componentize conditional style editor, condition description and condition error
* Conditionals styling WIP
- Conditional styling elements in Inspector, significant refinements;
- Condition description formatting;
- Significant markup simplification in StyleEditor.vue;
- Moved `.c-inspect-styles` into conditional-styles.scss;
* Conditionals styling WIP
- Added menu positioning css;
* Conditionals styling WIP
- Display images in StyleEditor `c-style-thumb` element;
* Use the condition description component to show the condition description in condition set views
* Conditionals styling WIP
- New `u-alert` and `u-error` classes and mixin;
- New $colorError theme constants;
* Conditionals styling WIP
- Fixed background: cover or c-style-thumbs;
* Conditionals styling WIP
- Add navigate-or-preview functionality to attached Condition Set used
for conditional styling (thank you Deep!);
- Better theme-compliant box-shadowing on c-style-thumb;
- Added default color property to cClickIcon SCSS mixin;
* Fixes ConditionDescription and ConditionErrors views
* Allow static styles for domain Objects and display layout items
* Consolidate handling of 'none' style to the object styles mixin
* Adds visibility option to child items
* Conditionals styling WIP
- Add `is-style-invisible` class;
- Better color approach for table headers to support domain object
styling;
* Change visibility to isInvisible class
* Fixes visibility for object views and telemetry views
* Fixes selection of condition set from tree view
* Conditionals styling WIP
- Added new $glyph-icon-eye-disabled font symbol and related class;
- Modded glyphs used for visibility toggle button;
- Modded StyleEditor thumb preview to reflect visibility setting;
- Tweaked `is-style-invisible` opacity property;
- Code cleanup;
* Conditionals styling WIP
- Display disabled toolbar for Inspector styles in Browse mode;
- Better approach to 'is-style-invisible' `c-style-thumb` with new
bgCheckerboard mixin;
- Moved `$controlDisabledOpacity` into a theme constant;
- Refined spacing in Inspector grid;
* Fixes linting issues
* Fixes telemetry metadata name
* criterion descriptions is now an array of strings
* Fixes spacing
* Removes commented out code.
* Remove v-if
Co-authored-by: charlesh88 <charlesh88@gmail.com>
* Hardcoded prototype - conditional styles for display layout or generator domain objects only.
* Adds background colors list
* Show conditional styles for subObjectViews and telemetryViews
* Uses telemetry provider to determine which style is active
* Removes hardcoded conditionSet work used for prototype
* Add default styles to conditionalStyles when a condition set is added to the domain object.
* Use EventEmitter alias instead of eventEmitter3 in imports
* Change StyleRuleManager to accept conditionStyle objects instead of domainObjects
* Uses a map for conditional styles instead of a list in order to improve performance
* Use in-built api to check for identifier equality
* Removes unnecessary object get call.
* Adds conditional styles for drawing objects
* Removes hard coded conditionSetIdentifier
* Fixes small conditionManager bug
* Hardcoded prototype - conditional styles for display layout or generator domain objects only.
Needs Architectural review
* Updates to ConditionalStylesView
* Adds background colors list
* Show conditional styles for subObjectViews and telemetryViews
* Uses telemetry provider to determine which style is active
Removes hardcoded conditionSet work used for prototype
* Fixes failing test
* Add default styles to conditionalStyles when a condition set is added to the domain object.
* Use EventEmitter alias instead of eventEmitter3 in imports
Change variable name for better readability and clarity
Remove unused code
* Change StyleRuleManager to accept conditionStyle objects instead of domainObjects
* Uses a map for conditional styles instead of a list in order to improve performance
* Use in-built api to check for identifier equality
Pass missing arguments
* Removes unnecessary object get call.
* Separate Vue component styles out from SFCs.
* Added 'MCT.prototype.getAssetPath' and using 'openmct.setAssetPath' to get relative path for assets.
* Re-implements `openmct.plugins.Snow()`, and `openmct.plugins.Espresso()` (as well as a new theme `openmct.plugins.Maelstron()`)
* add context menu capability to table rows, add view switcher to preview
* add an option to limit context menu actions to the ones requested, and modify preview action to also include a view historical data action
* extend preview action into view historical data action
* add context menu to LAD Table
* add keys to context menu actions, allow tables to conditionally attach context menu handler
* working switch y axis label
* New vertical select element for Y axis configuration in plots
- CSS for vertically rotated selects for Y axis label selection;
- New theme constants;
- Removed themedSelect theme mixins;
- New SASS svgColorFromHex function;
* use keys in lad table context menu options
* show historical view context menu on alpha-numerics
* make reviewer requested changes
* pass contextual object path from object view down etc
* made reviewer requested changes: removed options object, pass in object path instead
* remove redundant function from LADRow.vue
* Implement an inspector view provider to display a component that allows setting printf format for alphanumeric items in a display layout.
* Display 'Mixed' in format input if items' formats in selection are different.
* Use lodash function to find index.
* Simplify code.
* Put the logic to disallow viewing the inspector view for multi-select in the inspector view provider as apposed to the inspector view component.
* 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.
* Misc UI 7
- Better approach to hide/show in Tabs view;
* Misc UI 7
- Fix Chrome 73 bug for Folders in Tabs and Flex Layouts views;
* Misc UI 7
- Fixed look of text inputs in Snow;
- Added description for Tabs View;
* Misc UI 7
- Resizeable table column headers now clip properly;
- Cleaned up and consolidated related CSS;
* Misc UI 7
- Remove undesired top margin in Flex Layouts;
- Fix Chrome 73 overflow bug in ObjectFrame;
* Misc UI 7
- Remove undesired top margin in Flex Layouts;
- Fix Chrome 73 overflow bug in ObjectFrame;
- Enhanced View Large button so now displays in objects with
frames hidden;
- Changed behavior for frame move bar such that it only displays for
selected items;
- Fixed bug where telem table columns can't be resized in new tables;
- Added overflow handling to telem table column headers;
* Misc UI 7
- Remove undesired top margin in Flex Layouts;
- Fix Chrome 73 overflow bug in ObjectFrame;
- Enhanced View Large button so now displays in objects with
frames hidden, and is only shown for objects that get
.has-complex-content applied;
- Changed behavior for frame move bar such that it only displays for
selected items;
- Fixed bug where telem table columns can't be resized in new tables;
- Added overflow handling to telem table column headers;
- Fix for clipped color palette in Summary Widgets, and better flex
layout in sizing in edit interface;
- Added timer and hyperlink to SIMPLE_CONTENT_TYPES list;
* Misc UI 7
- Accessibility: add name of object as title attribute to Layout frames;
- Moved c-frame base styling into c-so-view;
* remove title from layoutFrame
* Optionally provide list of object types to show as views rather than alpha numerics to display layouts
* Only make table view available for objects that have telemetry to show
* Get selection context from object view for constructing the context in subobject view.
* Implement getSelectionContext for flexible layout provider and remove code that makes flexible layout self selectable.
* Get selection context from object frame when constructing context for frames.
* Disable Add button when selected parent is a flexible layout
* Make 'Add' button working for selected display layouts in a flexible layout.
* fix expand error and fix flexible layout toggle container issue
* Check for parent object before getting composition.
* Styling for selects
- New cleaner styling approach;
- New cSelect and appearanceNone mixins;
- Converted selects in Notebook, plot-options-edit;
* List View fixes
- Ellipsizing now works;
- Better icon and text alignment;
* Remove updateDrilledIn function and calls
* Telemetry Table editing styles
- Headers now have hover effects;
* Change 'toggle'-style toolbar buttons to reflect current state, rather
than what will be the setting once clicked
- When frame is hidden, button displays the frame-hidden icon, and
tooltip says 'Frame hidden';
* Enable all sub-object views in Display Layout to use numeric inputs for
x, y, width and height
* Toolbar sanding and polishing
- Button order tweaked to place stack order near X, Y, etc. inputs;
- Improved spacing between items themselves and separators;
* Fix indentation
* Fix indentation part deux
* Add a toolbar menu for changing the display order of items.
* - Wire up orderItem
- Modify the toolbar API to support function as alternative for property path.
* 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
* Drag-drop edit mode from capture handler. Drag-drop composition from bubble handler. Check composability on drag start
* Show drop hints without being in edit mode.
* Don't serialize objects twice on drag
* 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
* Support category arrays for legacy actions
* Fixed object path listener. Removed old context menus
* Removed old fullscreen action and Screenfull dependency
* Restore confirmation dialog on remove
* Restored tests
* Remove unused legacy policies
* WIP re-implementation of Preview action
* WIP for Charles to take a look at flex issues
* Disable legacy preview action
* Style and markup fixes for new Preview
- LegacyViewProvider modded to wrap legacy elements in .u-contents div;
- Added selector that automatically defines display: contents on
`no-class` divs injected into __object-view;
- Unit tested with legacy and new components (telem tables, plot view,
Notebook, etc.)
* Tweak z-indexes, fix open in new tab action, add 'done' button
* Removed legacy action
* reuse contextMenuDropDown component
* 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.
* Theme refactoring
- New hero, header and body font mixins added to theme files;
- Mods to body, griditem, frames, browsebar, etc. to use new font
mixins;
- Moved symbolsfont definition into _constants.scss;
* Tweak - make SubobjectView use header font;
* Add new theme 'maelstrom';
* Add comment
* Remove deprecated .svg and .eot symbol font files
* only store identifiers in frames
* move drop hints outside frame
* fix resizing
* fix drag and drop frames
* fix reordering of columns
* multiple improvements
* fix styling for drop hint in empty container
* fix frame reorder in same column
* better drop target show logic
* better frame drop to logic
* fix container reordering
* add uuids for frames and containers to prevent clashing
* toolbar updates
* use shared subobject component to ease styling
* add type cssClass to subobject component header, and delete frame header vue file
* add context menu in subobject views
* change height and width to size for both frames and containers
* remove uneccesary methods from resizeHanfle and inline logic instead
* remove left click logic from context-menu mixin, add a click handler to dropDownContextMenu to show menu
* make a mixin to listen for isEditing
* encapsulate drop hints, and pass allowDrop logic to check if drop hint is valid
* use event.dataTransfer instead of vue events for container reordering
* remove vue events for frame dnd and use html events
* better implementation of toolbar
* remove unused event
* fix container resizing when adding new container
* make reviewer requested changes
* add containerId to event vs having a JSON object
* watch domainObject from flexible layouts and pass down to components
* change domainObject directly on add Container
* update domainObject on change, and cahnge toolBarProvider to function that returns an object
* fix plugin
* set domainObject as data property in felxibleLayouts
* use class instead of inline styles
* Cleanup code
inline this.$el for components that measure their own size
replace snapToPercentage with Math.round
inject object as layoutObject, not dObject.
* reuse sizing logic between frames and containers
* clean up handlers
split handlers for createFrame and moveFrame events in container.
reorganize methods for each to clarify how they operate.
* ObjectView only stops propagation when it handles event
* use ids in toolbar to ensure correct items are mutated
Because index may change due to drag and drop events,
deleteFrame and deleteContainer should operate using identifiers
instead of index.
Also, generate path for hasFrame using indexes when object is
selected, otherwise hasFrame may refer to the incorrect path.
* - 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.
* Support displaying and adding telemerty points in display layouts.
* Create TelemetryView component. Also disable the toolbar frame button for telemetry objects.
* Add 'components' directory and move the toolbar provider definition to a separate file.
* Saving work
* Saving work
* Saving work
* Fix telemetryClass
* Fixes for .no-frame in new markup structure
- CSS cleaned up and reorganized;
- Added .c-telemetry-view classes;
* Add computed properties for hiding label and value.
* Filter value meta data based on the item config display mode.
* Add drop down menus for display mode and value
* Add toolbar controls for telemerty points
* Set border and fill related styles on telemetry view instead of layout item
* Refinements to telemetry view
- Stoke and fill styling now work;
- Internal element layout now much better when sizing in a Layout frame;
- Tweaked color of frame border while editing;
* Prevents adding a new (panel) object if it's already in the composition.
* Fix for jumping edit area
- Removed v-if from Toolbar.vue;
- Refined c-toolbar styling;
- TODO: don't include toolbar component when not editing, and for
components that don't use a toolbar;
* Add a separator toolbar control
* Check for domainObject being on the toolbar item as not all controls have that property
* Hide 'no fill' option from the text palette.
Modify the color-picker component to say 'No border' for stroke palette.
* Move the listener for hasFrame to the subobject view configuration
* Fixes for toolbar-separator
- New mixin;
- Corrected markup for separator;
- New class for .c-toolbar__separator;
- Updated DisplayLayoutToolbar.js to include separators in the right
spots;
* Get type from item.
* Include copyright notice.
* Use arrow function for consistency and define a TEXT_SIZE constant.
* Use composition API to add non-telemetry objects instead of relying on the drop handler.
Display a blocking dialog if an existing non-telemetry object is dropped.
* Fix text color picker icon
* Address reviewer's feedback
* Load the composition and update addObject() to render existing panels as well. Also, cache the telemetry value formatter.
* Add listener for changes to time bounds.
* Code cleanup
* Use getFormatMap() to store formats. Reset telemetry value and class before fetching new data.
* Fix a typo
* Define telemetry class and value as computed properties.
* Change context object definition
* Look at the telemetry metadata to find a good default for the value key instead of defaulting to 'sin'. Also, make formats reactive.
* Use let instead of var.
* Implemented drag-and-drop composition
* Added composition policy for tables
* Reimplemented elements pool in Vue
* No need to resolve all objects on the navigated path
* Only show elements pool in edit mode
* Remove old elements pool
* Updated legacy code to use composition policy API
* Keep object in sync when mutated
* Initial attempt at getting the toolbar for the fixed position working with the Vue toolbar controls.
* Set title for controls
* Significant mods to support legacy Fixed Position
- Moved selection and editing styles into _global.scss;
- Changed class naming in legacy fixed.html to map to newer CSS styles;
* Pass in the color value
* Do not show the toolbar container if structure is empty.
* Use a plugin for fixed position to get access to openmct. Show the toolbar only if the object is being edited.
* Ensure fixedController is on the selection context when editing
* Add listener for a domain object with the same id only once.
Update the toolbar value after the object mutation.
Remove editor isEditing listener on destroyed.
* Remove space between the size and px.
If newObject exists, update the toolbar value.
* Remove --nwse class name which seems to be a typo
* use modifier convention