* 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 Co-authored-by: charlesh88 <charlesh88@gmail.com>
88 lines
2.5 KiB
Vue
88 lines
2.5 KiB
Vue
<template>
|
|
<div class="c-inspector__header">
|
|
<div v-if="!multiSelect"
|
|
class="c-inspector__selected c-object-label"
|
|
:class="{'is-missing': domainObject && domainObject.status === 'missing' }"
|
|
>
|
|
<div class="c-object-label__type-icon"
|
|
:class="typeCssClass"
|
|
>
|
|
<span class="is-missing__indicator"
|
|
title="This item is missing"
|
|
></span>
|
|
</div>
|
|
<span v-if="!singleSelectNonObject"
|
|
class="c-inspector__selected c-object-label__name"
|
|
>{{ item.name }}</span>
|
|
<div v-if="singleSelectNonObject"
|
|
class="c-inspector__selected c-inspector__selected--non-domain-object c-object-label"
|
|
>
|
|
<span class="c-object-label__type-icon"
|
|
:class="typeCssClass"
|
|
></span>
|
|
<span class="c-object-label__name">Layout Object</span>
|
|
</div>
|
|
</div>
|
|
<div v-if="multiSelect"
|
|
class="c-inspector__multiple-selected"
|
|
>
|
|
{{ itemsSelected }} items selected
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
inject: ['openmct'],
|
|
data() {
|
|
return {
|
|
domainObject: {},
|
|
multiSelect: false,
|
|
itemsSelected: 0
|
|
}
|
|
},
|
|
computed: {
|
|
item() {
|
|
return this.domainObject || {};
|
|
},
|
|
type() {
|
|
return this.openmct.types.get(this.item.type);
|
|
},
|
|
typeCssClass() {
|
|
if (this.type.definition.cssClass === undefined) {
|
|
return 'icon-object';
|
|
}
|
|
return this.type.definition.cssClass;
|
|
},
|
|
singleSelectNonObject() {
|
|
return !this.item.identifier && !this.multiSelect;
|
|
}
|
|
},
|
|
mounted() {
|
|
this.openmct.selection.on('change', this.updateSelection);
|
|
this.updateSelection(this.openmct.selection.get());
|
|
},
|
|
beforeDestroy() {
|
|
this.openmct.selection.off('change', this.updateSelection);
|
|
},
|
|
methods: {
|
|
updateSelection(selection) {
|
|
if (selection.length === 0 || selection[0].length === 0) {
|
|
this.domainObject = {};
|
|
return;
|
|
}
|
|
|
|
if (selection.length > 1) {
|
|
this.multiSelect = true;
|
|
this.domainObject = {};
|
|
this.itemsSelected = selection.length;
|
|
return;
|
|
} else {
|
|
this.multiSelect = false;
|
|
this.domainObject = selection[0][0].context.item;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|