/***************************************************************************** * Open MCT, Copyright (c) 2014-2023, United States Government * as represented by the Administrator of the National Aeronautics and Space * Administration. All rights reserved. * * Open MCT is licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * Open MCT includes source code licensed under additional open source * licenses. See the Open Source Licenses file (LICENSES.md) included with * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ /******************************************************** TABLE */ table { $minW: 50px; width: 100%; thead { th { background: $colorTabHeaderBg; + th { border-left: 1px solid $colorTabHeaderBorder; } } } tbody { tr + tr { border-top: 1px solid $colorTabBorder; } } th, td { white-space: nowrap; min-width: $minW; padding: $tabularTdPadTB $tabularTdPadLR; } td { vertical-align: top; } } .is-editing { td.is-selectable { &:hover { background: rgba($editUIColorBg, 0.1); box-shadow: inset rgba($editUIColorBg, 0.8) 0 0 0 1px; } &[s-selected] { background: $editUIColorBg !important; border: 1px solid $editUIColorFg !important; color: $editUIColorFg !important; box-shadow: $editFrameSelectedShdw; z-index: 2; } } } /******************************************************** C-TABLE */ div.c-table { // When c-table is used as a wrapper element in more complex table views height: 100%; } .c-table-wrapper { // Wraps .c-control-bar and .c-table display: flex; flex-direction: column; overflow: hidden; // Using absolute here because sizing table can't calc width properly if padding is used $p: $mainViewPad; position: absolute; top: $p; right: $p; bottom: $p; left: $p; > .c-table { height: auto; flex: 1 1 auto; } &.is-stale { @include isStaleHolder(); } .--width-less-than-600 & { &:not(.is-paused) { .c-table-control-bar { display: none; } } .c-table-control-bar { .c-icon-button, .c-click-icon, .c-button { &__label { display: none; } } } } } .c-table-control-bar { display: flex; flex: 0 0 auto; //margin-bottom: $interiorMarginSm; // This approach to allow margin to go away when control bar is hidden padding: $interiorMarginSm 0; > * + * { margin-left: $interiorMarginSm; } } .c-table { // Can be used by any type of table, scrolling, LAD, etc. $min-w: 50px; width: 100%; &__headers-w { flex: 0 0 auto; } /******************************* ELEMENTS */ thead tr, &.c-table__headers { background: $colorTabHeaderBg; th { &:not(:first-child) { border-left: 1px solid $colorTabHeaderBorder; } } } tbody, &__body { tr:not(.c-table__group-header) + tr:not(.c-table__group-header) { border-top: 1px solid $colorTabBorder; } transition: $transOut; } &__selectable-row {cursor: pointer; &:hover { background: $colorListItemBgHov; filter: $filterHov; transition: $transIn; } } &__group-header { // tr element found in LAD Table Sets border-top: 1px solid $colorTabHeaderBorder; background: $colorTabGroupHeaderBg; td { color: $colorTabGroupHeaderFg; } } &--sortable { .is-sorting { &:after { color: $colorIconAlias; content: $glyph-icon-arrow-tall-up; font-family: symbolsfont; font-size: 8px; display: inline-block; margin-left: $interiorMarginSm; } &.desc:after { content: $glyph-icon-arrow-tall-down; } } .is-sortable { cursor: pointer; } } } .c-lad-table-wrapper { width: 100%; height: 100%; padding: $mainViewPad; &.is-stale { @include isStaleHolder(); } } .c-lad-table { th, td { width: 33%; // Needed to prevent size jumping as values dynamically update } td { &.is-stale { @include isStaleElement(); } } } /************************************** TABLE AND SUMMARY VIEWS */ // Displays summary values above a table. .c-table-and-summary { height: 100%; width: 100%; overflow: auto; display: flex; flex-direction: column; > * + * { margin-top: $interiorMargin; } &__summary { display: flex; justify-items: stretch; > * + * { margin-left: 1px; } } &__summary-item { background: $colorSummaryBg; color: $colorSummaryFg; flex: 1 1 auto; padding: $interiorMargin $interiorMarginLg; em { font-weight: bold; color: $colorSummaryFgEm; } } }