From a8228406deb5beef7a4f2b8dbc540553aa83b0c5 Mon Sep 17 00:00:00 2001 From: David Tsay <3614296+davetsay@users.noreply.github.com> Date: Mon, 2 Nov 2020 12:35:43 -0800 Subject: [PATCH] [Inspector] Allow styles (including font and font size) to be saved and reused (#3432) * working proto for font size * wip * Font styling - Base classes for font-size and font; - WIP! * working data attribute for fontsize * Font styling - Add `js-style-receiver` to markup, refine style targeting JS for better application of styles; - Refinements to font and size CSS; - WIP! * Font styling - Redo CSS to use `data-*` attributes; - New `u-style-receiver` class for use as font-size and font-family CSS selector target; - New `js-style-receiver` class for use as JS target by ObjectView.vue; - New classes added to markup in all Open MCT views; - Changed font-size values from 'is-font-size--*' to just the number; - Some refinement to individual views to account for font-sizing capability; - Removed automatic font-size 13px being set by SubobjectView.vue; - WIP! * working mixed styles * Font styling - Added `u-style-receiver` to TelemetryView.vue; - Added `icon-font-size` to Font Size dropdown button; - TODO: better font-size icon; * working font-family * Font styling - Art for `icon-font-size` glyph updated; - Redefined glyph usage in some Layout toolbar buttons; - Updated font-size and font dropdown menus options text; * Font styling - Refined font-size and font dropdown values; - Fixed toolbar-select-menu.vue to remove 'px' from non-specific option return; * dont allow font styling on layouts that contain other layouts * fix lint warning * add sizing row * fix bug with column width sizing * fix bug with header style * add saved styles inspector view * WIP * add vue component for selector * WIP styles manager to communicate between vue components * WIP saving and persisting styles * no duplicate styles prevention * fix props syntax * WIP can apply conditional styles * static styles do not work yet * display border color in saved styles swatch * allow deleting styles except default style * WIP apply static style works but also to layout... * prevent additional StylesView from being created * delete style message * change save order * move applystyle to selector component * rename for consistency * naming refactor * add style description * update style properties only if they exist and do not erase properties * refactor singleton usage refactor save method * show save and delete only on hover * do not show delete icon if not in edit mode * normalize styles before saving prevent apply style if conditional and static styles are simultaneously selected * remove default style tweak selector display * allow conditional and static styles to have saved style applied limit saved styles to 20 * refactor styles manager remove openmct dependency use provide/inject * resolve merge conflicts * lint fix * reorganize styles * add font style editor to styles view * save and display border correctly in saved styles view * WIP add font styling controls to inspector styles view * add font constants * WIP refactor to provide reactive props fix locked for edit * WIP display consolidated font styles for selection in editor * WIP font styles saved to layout * WIP persisting font styles from inspector works * fix styleable check * move logic up to stylesview because save is two part * apply font style to thumb * there can be only one * show font style for native views * linting fix * push stylesManager work to StylesView * move method to computed * move constant definition outside of function call * Styling for saved styles functionality WIP - Simplified and removed unnecessary markup; - Standardized style applied to saved style element and toolbar control; - Removed saved style expand arrow and description, replaced with item title / tooltip approach; - Standardized width of `c-style-thumb` element; - Moved font size and style controls to the designed location; * Styling for saved styles functionality WIP - Layout and CSS normalization between style editor control and saved style preview element; - Control alignment refined; - Moved font size and style controls to the designed location; * Styling for saved styles functionality WIP - Update font size icon art to normalize size; - Sanding, tweaking, alignin and layout in style controls area of Inspector; * Styling for saved styles functionality WIP - Hide the font size and style menu buttons unless the user is editing; * remove font controls from toolbar * turn styles tab into multipane element * lint fix * no font style should not be viewed as non-specific * delete saved style by index not style * cleanup * view and inspector view updates on initial font change * revert computed back to method * set initial height * fix test after removing 2 buttons from toolbar * fix hidden lint error * fix lint Co-authored-by: Deep Tailor Co-authored-by: charlesh88 --- .../features/clock/res/templates/clock.html | 2 +- .../features/clock/res/templates/timer.html | 2 +- src/plugins/LADTable/components/LADTable.vue | 2 +- .../components/inspector/StyleEditor.vue | 63 +++-- .../components/inspector/StylesView.vue | 233 +++++++++++++++++- .../inspector/conditional-styles.scss | 9 +- .../components/ConditionWidget.vue | 2 +- .../displayLayout/DisplayLayoutToolbar.js | 40 +-- .../displayLayout/components/BoxView.vue | 2 +- .../components/DisplayLayout.vue | 2 +- .../displayLayout/components/ImageView.vue | 1 + .../components/SubobjectView.vue | 4 + .../components/TelemetryView.vue | 18 +- .../displayLayout/components/TextView.vue | 17 +- .../mixins/objectStyles-mixin.js | 1 + src/plugins/displayLayout/pluginSpec.js | 2 +- .../imagery/components/ImageryViewLayout.vue | 5 +- src/plugins/plot/res/templates/plot.html | 2 +- .../plot/res/templates/stacked-plot.html | 2 +- .../telemetryTable/components/sizing-row.vue | 54 ++++ .../telemetryTable/components/table.scss | 11 +- .../telemetryTable/components/table.vue | 18 +- src/styles/_constants.scss | 2 + src/styles/_controls.scss | 54 +++- src/styles/_global.scss | 35 ++- src/styles/_legacy.scss | 3 +- src/styles/_mixins.scss | 2 +- src/styles/fonts/Open MCT Symbols 16px.json | 21 +- src/styles/fonts/Open-MCT-Symbols-16px.svg | 2 +- src/styles/fonts/Open-MCT-Symbols-16px.ttf | Bin 23104 -> 23104 bytes src/styles/fonts/Open-MCT-Symbols-16px.woff | Bin 23180 -> 23180 bytes src/ui/components/ObjectFrame.vue | 10 + src/ui/components/ObjectView.vue | 73 +++++- src/ui/inspector/Inspector.vue | 34 ++- src/ui/inspector/inspector.scss | 9 + src/ui/inspector/styles/FontStyleEditor.vue | 63 +++++ .../inspector/styles/SavedStyleSelector.vue | 195 +++++++++++++++ .../styles/SavedStylesInspectorView.vue | 72 ++++++ src/ui/inspector/styles/SavedStylesView.vue | 129 ++++++++++ .../{ => styles}/StylesInspectorView.vue | 7 +- src/ui/inspector/styles/StylesManager.js | 126 ++++++++++ src/ui/inspector/styles/constants.js | 109 ++++++++ .../components/toolbar-select-menu.vue | 2 +- 43 files changed, 1307 insertions(+), 133 deletions(-) create mode 100644 src/plugins/telemetryTable/components/sizing-row.vue create mode 100644 src/ui/inspector/styles/FontStyleEditor.vue create mode 100644 src/ui/inspector/styles/SavedStyleSelector.vue create mode 100644 src/ui/inspector/styles/SavedStylesInspectorView.vue create mode 100644 src/ui/inspector/styles/SavedStylesView.vue rename src/ui/inspector/{ => styles}/StylesInspectorView.vue (91%) create mode 100644 src/ui/inspector/styles/StylesManager.js create mode 100644 src/ui/inspector/styles/constants.js diff --git a/platform/features/clock/res/templates/clock.html b/platform/features/clock/res/templates/clock.html index 0c0309ca3b..5ab37a14c6 100644 --- a/platform/features/clock/res/templates/clock.html +++ b/platform/features/clock/res/templates/clock.html @@ -19,7 +19,7 @@ this source code distribution or the Licensing information page available at runtime from the About dialog for additional information. --> -
+
{{clock.zone()}}
diff --git a/platform/features/clock/res/templates/timer.html b/platform/features/clock/res/templates/timer.html index 235ff0f17f..3df5ba596d 100644 --- a/platform/features/clock/res/templates/timer.html +++ b/platform/features/clock/res/templates/timer.html @@ -19,7 +19,7 @@ this source code distribution or the Licensing information page available at runtime from the About dialog for additional information. --> -
+