Merge remote-tracking branch 'github/master' into open115b

Conflicts:
	platform/features/conductor/src/ConductorRepresenter.js
This commit is contained in:
Victor Woeltjen 2015-10-09 10:28:50 -07:00
commit 1efa97e6f5
24 changed files with 1325 additions and 825 deletions

View File

@ -4,6 +4,10 @@
{ {
"implementation": "WatchIndicator.js", "implementation": "WatchIndicator.js",
"depends": ["$interval", "$rootScope"] "depends": ["$interval", "$rootScope"]
},
{
"implementation": "DigestIndicator.js",
"depends": ["$interval", "$rootScope"]
} }
] ]
} }

View File

@ -0,0 +1,77 @@
/*****************************************************************************
* Open MCT Web, Copyright (c) 2014-2015, United States Government
* as represented by the Administrator of the National Aeronautics and Space
* Administration. All rights reserved.
*
* Open MCT Web 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 Web 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.
*****************************************************************************/
/*global define*/
define(
[],
function () {
"use strict";
/**
* Displays the number of digests that have occurred since the
* indicator was first instantiated.
* @constructor
* @param $interval Angular's $interval
* @implements {Indicator}
*/
function DigestIndicator($interval, $rootScope) {
var digests = 0,
displayed = 0,
start = Date.now();
function update() {
var secs = (Date.now() - start) / 1000;
displayed = Math.round(digests / secs);
}
function increment() {
digests += 1;
}
$rootScope.$watch(increment);
// Update state every second
$interval(update, 1000);
// Provide initial state, too
update();
return {
getGlyph: function () {
return ".";
},
getGlyphClass: function () {
return undefined;
},
getText: function () {
return displayed + " digests/sec";
},
getDescription: function () {
return "";
}
};
}
return DigestIndicator;
}
);

View File

@ -42,9 +42,8 @@
</div> </div>
</div> </div>
<div class='object-holder abs vscroll'> <mct-representation key="representation.selected.key"
<mct-representation key="representation.selected.key" mct-object="representation.selected.key && domainObject"
mct-object="representation.selected.key && domainObject"> class="abs object-holder">
</mct-representation> </mct-representation>
</div>
</span> </span>

View File

@ -30,12 +30,11 @@
structure="toolbar.structure" structure="toolbar.structure"
ng-model="toolbar.state"> ng-model="toolbar.state">
</mct-toolbar> </mct-toolbar>
<div class='holder abs object-holder work-area'> <mct-representation key="representation.selected.key"
<mct-representation key="representation.selected.key" toolbar="toolbar"
toolbar="toolbar" mct-object="representation.selected.key && domainObject"
mct-object="representation.selected.key && domainObject"> class="holder abs object-holder work-area">
</mct-representation> </mct-representation>
</div>
</div> </div>
<mct-splitter></mct-splitter> <mct-splitter></mct-splitter>
<div <div

View File

@ -45,6 +45,7 @@ $ueEditToolBarH: 25px;
$ueBrowseLeftPaneW: 25%; $ueBrowseLeftPaneW: 25%;
$ueEditLeftPaneW: 75%; $ueEditLeftPaneW: 75%;
$treeSearchInputBarH: 25px; $treeSearchInputBarH: 25px;
$ueTimeControlH: (33px, 20px, 20px);
// Overlay // Overlay
$ovrTopBarH: 60px; $ovrTopBarH: 60px;
$ovrFooterH: 30px; $ovrFooterH: 30px;

View File

@ -125,6 +125,14 @@ mct-container {
text-align: center; text-align: center;
} }
.scrolling {
overflow: auto;
}
.vscroll {
overflow-y: auto;
}
.no-margin { .no-margin {
margin: 0; margin: 0;
} }

View File

@ -10,9 +10,6 @@
&.fixed { &.fixed {
font-size: 0.8em; font-size: 0.8em;
} }
&.scrolling {
overflow: auto;
}
.controls, .controls,
label, label,
.inline-block { .inline-block {

View File

@ -295,15 +295,11 @@ label.checkbox.custom {
.slider { .slider {
$knobH: 100%; //14px; $knobH: 100%; //14px;
$knobW: 12px;
$slotH: 50%;
.slot { .slot {
// @include border-radius($basicCr * .75); // @include border-radius($basicCr * .75);
//@include sliderTrack(); //@include sliderTrack();
//height: $slotH;
width: auto; width: auto;
position: absolute; position: absolute;
//top: ($knobH - $slotH) / 2;
top: 0; top: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
@ -317,30 +313,30 @@ label.checkbox.custom {
&:hover { &:hover {
background-color: $sliderColorKnobHov; background-color: $sliderColorKnobHov;
} }
cursor: ew-resize;
position: absolute; position: absolute;
height: $knobH; height: $knobH;
width: $knobW; width: $sliderKnobW;
top: 0; top: 0;
auto: 0; auto: 0;
bottom: auto; bottom: auto;
left: auto; left: auto;
//&:before { }
// top: 1px; .knob-l {
// bottom: 3px; @include border-left-radius($sliderKnobW);
// left: ($knobW / 2) - 1; cursor: w-resize;
//} }
.knob-r {
@include border-right-radius($sliderKnobW);
cursor: e-resize;
} }
.range { .range {
$tbOffset: 2px;
@include trans-prop-nice-fade(.25s); @include trans-prop-nice-fade(.25s);
background-color: $sliderColorRange; background-color: $sliderColorRange;
cursor: ew-resize; cursor: ew-resize;
position: absolute; position: absolute;
top: 0; //$tbOffset; top: 0; //$tbOffset;
right: auto; right: auto;
bottom: $tbOffset; bottom: 0;
left: auto; left: auto;
height: auto; height: auto;
width: auto; width: auto;

View File

@ -1,15 +1,28 @@
@mixin toiLineHovEffects() {
//@include pulse(.25s);
&:before,
&:after {
background-color: $timeControllerToiLineColorHov;
}
}
.l-time-controller-visible {
}
.l-time-controller { .l-time-controller {
$minW: 400px; $minW: 400px;
$knobM: ($sliderKnobW + 1) * -1; $knobHOffset: 0px;
$rangeValOffset: $interiorMargin + $sliderKnobW; $knobM: ($sliderKnobW + $knobHOffset) * -1;
$knobCr: $sliderKnobW; $rangeValPad: $interiorMargin;
//@if $sliderKnobW > 3 { $rangeValOffset: $sliderKnobW;
// $knobCr: $sliderKnobW / 2; //$knobCr: $sliderKnobW;
//} $timeRangeSliderLROffset: 130px + $sliderKnobW + $rangeValOffset;
$timeRangeSliderLROffset: 130px + $sliderKnobW; $r1H: nth($ueTimeControlH,1);
$r1H: 33px; $r2H: nth($ueTimeControlH,2);
$r2H: 20px; $r3H: nth($ueTimeControlH,3);
$r3H: 20px;
//height: $r1H + $r2H + $r3H + ($interiorMargin * 2);
.l-time-range-inputs-holder, .l-time-range-inputs-holder,
.l-time-range-slider { .l-time-range-slider {
@ -30,6 +43,7 @@
.l-time-range-ticks { .l-time-range-ticks {
//@include test(red, 0.1); //@include test(red, 0.1);
@include absPosDefault(0, visible); @include absPosDefault(0, visible);
left: $timeRangeSliderLROffset; right: $timeRangeSliderLROffset;
} }
.l-time-range-inputs-holder { .l-time-range-inputs-holder {
@ -54,12 +68,6 @@
} }
} }
.l-time-range-slider,
.l-time-range-ticks {
left: $timeRangeSliderLROffset; right: $timeRangeSliderLROffset;
}
.l-time-range-slider-holder { .l-time-range-slider-holder {
//@include test(green); //@include test(green);
height: $r2H; bottom: $r3H + ($interiorMarginSm * 1); height: $r2H; bottom: $r3H + ($interiorMarginSm * 1);
@ -67,6 +75,51 @@
@include box-shadow(none); @include box-shadow(none);
background: none; background: none;
border: none; border: none;
.range {
.toi-line {
$myC: $timeControllerToiLineColor;
$myW: 8px;
@include transform(translateX(50%));
position: absolute;
//@include test();
top: 0; right: 0; bottom: 0px; left: auto;
width: $myW;
height: auto;
z-index: 2;
&:before,
&:after {
background-color: $myC;
content: "";
position: absolute;
}
&:before {
// Vert line
top: 0; right: auto; bottom: -10px; left: floor($myW/2) - 1;
width: 2px;
//top: 0; right: 3px; bottom: 0; left: 3px;
}
&:after {
// Circle element
@include border-radius($myW);
@include transform(translateY(-50%));
top: 50%; right: 0; bottom: auto; left: 0;
width: auto;
height: $myW;
}
}
&:hover .toi-line {
@include toiLineHovEffects;
}
}
}
&:not(:active) {
//@include test(#ff00cc);
.knob,
.range {
@include transition-property(left, right);
@include transition-duration(500ms);
@include transition-timing-function(ease-in-out);
}
} }
} }
@ -99,10 +152,11 @@
} }
.knob { .knob {
width: $sliderKnobW; z-index: 2;
.range-value { .range-value {
//@include test($sliderColorRange); //@include test($sliderColorRange);
@include trans-prop-nice-fade(.25s); @include trans-prop-nice-fade(.25s);
padding: 0 $rangeValOffset;
position: absolute; position: absolute;
height: $r2H; height: $r2H;
line-height: $r2H; line-height: $r2H;
@ -112,7 +166,7 @@
color: $sliderColorKnobHov; color: $sliderColorKnobHov;
} }
&.knob-l { &.knob-l {
@include border-bottom-left-radius($knobCr); //@include border-bottom-left-radius($knobCr); // MOVED TO _CONTROLS.SCSS
margin-left: $knobM; margin-left: $knobM;
.range-value { .range-value {
text-align: right; text-align: right;
@ -120,11 +174,14 @@
} }
} }
&.knob-r { &.knob-r {
@include border-bottom-right-radius($knobCr); //@include border-bottom-right-radius($knobCr);
margin-right: $knobM; margin-right: $knobM;
.range-value { .range-value {
left: $rangeValOffset; left: $rangeValOffset;
} }
&:hover + .range-holder .range .toi-line {
@include toiLineHovEffects;
}
} }
} }
} }

View File

@ -30,21 +30,21 @@
} }
.holder-all { .holder-all {
$myM: 0; // $interiorMarginSm; $myM: 0; // $interiorMarginSm;
top: $myM; top: $myM;
right: $myM; right: $myM;
bottom: $myM; bottom: $myM;
left: $myM; left: $myM;
} }
.browse-area, .browse-area,
.edit-area, .edit-area,
.editor { .editor {
position: absolute; position: absolute;
} }
.editor { .editor {
@include border-radius($basicCr * 1.5); @include border-radius($basicCr * 1.5);
} }
.contents { .contents {
@ -68,8 +68,8 @@
margin-right: $interiorMargin; margin-right: $interiorMargin;
} }
&.abs { &.abs {
text-wrap: none; text-wrap: none;
white-space: nowrap; white-space: nowrap;
&.left, &.left,
.left { .left {
width: 45%; width: 45%;
@ -95,51 +95,51 @@
} }
.user-environ { .user-environ {
.browse-area, .browse-area,
.edit-area, .edit-area,
.editor { .editor {
top: $bodyMargin + $ueTopBarH + ($interiorMargin); top: $bodyMargin + $ueTopBarH + ($interiorMargin);
right: $bodyMargin; right: $bodyMargin;
bottom: $ueFooterH + $bodyMargin; bottom: $ueFooterH + $bodyMargin;
left: $bodyMargin; left: $bodyMargin;
} }
.browse-area, .browse-area,
.edit-area { .edit-area {
> .contents { > .contents {
left: 0; left: 0;
right: 0; right: 0;
} }
} }
.edit-area { .edit-area {
$tbH: $btnToolbarH + $interiorMargin; $tbH: $btnToolbarH + $interiorMargin;
top: $bodyMargin + $ueTopBarEditH + ($interiorMargin); top: $bodyMargin + $ueTopBarEditH + ($interiorMargin);
.tool-bar { .tool-bar {
bottom: auto; bottom: auto;
height: $tbH; height: $tbH;
line-height: $btnToolbarH; line-height: $btnToolbarH;
} }
.work-area { .work-area {
top: $tbH + $interiorMargin * 2; top: $tbH + $interiorMargin * 2;
} }
} }
.ue-bottom-bar { .ue-bottom-bar {
//@include absPosDefault($bodyMargin); //@include absPosDefault($bodyMargin);
@include absPosDefault(0);// New status bar design @include absPosDefault(0); // New status bar design
top: auto; top: auto;
height: $ueFooterH; height: $ueFooterH;
.status-holder { .status-holder {
//right: $ueAppLogoW + $bodyMargin; New status bar design //right: $ueAppLogoW + $bodyMargin; New status bar design
z-index: 1; z-index: 1;
} }
.app-logo { .app-logo {
left: auto; left: auto;
width: $ueAppLogoW; width: $ueAppLogoW;
z-index: 2; z-index: 2;
} }
} }
} }
.cols { .cols {
@ -225,78 +225,80 @@
} }
} }
.pane { .pane {
position: absolute; position: absolute;
&.treeview.left { &.treeview.left {
.create-btn-holder { .create-btn-holder {
bottom: auto; top: 0; bottom: auto;
height: $ueTopBarH; top: 0;
.wrapper.menu-element { height: $ueTopBarH;
position: absolute; .wrapper.menu-element {
bottom: $interiorMargin; position: absolute;
} bottom: $interiorMargin;
} }
.search-holder { }
top: $ueTopBarH + $interiorMarginLg; .search-holder {
} top: $ueTopBarH + $interiorMarginLg;
.tree-holder { }
overflow: auto; .tree-holder {
top: $ueTopBarH + $interiorMarginLg + $treeSearchInputBarH + $interiorMargin; overflow: auto;
} top: $ueTopBarH + $interiorMarginLg + $treeSearchInputBarH + $interiorMargin;
}
} }
&.items { &.items {
.object-browse-bar { .object-browse-bar {
.left.abs, .left.abs,
.right.abs { .right.abs {
top: auto; top: auto;
} }
//.left.abs {
// @include tmpBorder(green);
//}
//.right.abs {
// @include tmpBorder(red);
//}
}
.object-holder {
top: $ueTopBarH + $interiorMarginLg;
} }
} }
.object-holder {
overflow: auto;
}
} }
.split-layout { .split-layout {
&.horizontal { &.horizontal {
// Slides up and down // Slides up and down
>.pane { > .pane {
// @include test(); // @include test();
margin-top: $interiorMargin; margin-top: $interiorMargin;
&:first-child { &:first-child {
margin-top: 0; margin-top: 0;
} }
} }
} }
&.vertical { &.vertical {
// Slides left and right // Slides left and right
>.pane { > .pane {
// @include test(); // @include test();
margin-left: $interiorMargin; margin-left: $interiorMargin;
>.holder { > .holder {
left: 0; left: 0;
right: 0; right: 0;
} }
&:first-child { &:first-child {
margin-left: 0; margin-left: 0;
.holder { .holder {
right: $interiorMarginSm; right: $interiorMarginSm;
} }
} }
} }
} }
}
.object-holder {
overflow: hidden; // Contained objects need to handle their own overflow now
top: $ueTopBarH + $interiorMarginLg;
> ng-include {
@include absPosDefault(0, auto);
}
&.l-controls-visible {
&.l-time-controller-visible {
> ng-include {
bottom: nth($ueTimeControlH,1) + nth($ueTimeControlH,2) +nth($ueTimeControlH,3) + ($interiorMargin * 3);
}
}
}
} }
.object-browse-bar .s-btn, .object-browse-bar .s-btn,
@ -304,10 +306,10 @@
.top-bar .s-menu-btn, .top-bar .s-menu-btn,
.tool-bar .s-btn, .tool-bar .s-btn,
.tool-bar .s-menu-btn { .tool-bar .s-menu-btn {
$h: $btnToolbarH; $h: $btnToolbarH;
height: $h; height: $h;
line-height: $h; line-height: $h;
vertical-align: top; vertical-align: top;
} }
.object-browse-bar, .object-browse-bar,
@ -318,33 +320,29 @@
} }
.object-browse-bar { .object-browse-bar {
//@include test(blue); //@include test(blue);
@include absPosDefault(0, visible); @include absPosDefault(0, visible);
@include box-sizing(border-box); @include box-sizing(border-box);
height: $ueTopBarH; height: $ueTopBarH;
line-height: $ueTopBarH; line-height: $ueTopBarH;
white-space: nowrap; white-space: nowrap;
.left { .left {
padding-right: $interiorMarginLg * 2; padding-right: $interiorMarginLg * 2;
.l-back { .l-back {
display: inline-block; display: inline-block;
float: left; float: left;
margin-right: $interiorMarginLg; margin-right: $interiorMarginLg;
} }
} }
} }
.l-flex { .l-flex {
@include webkitVal('display', 'flex'); @include webkitVal('display', 'flex');
@include webkitProp('flex-flow', 'row nowrap'); @include webkitProp('flex-flow', 'row nowrap');
.left { .left {
//@include test(red); //@include test(red);
@include webkitProp(flex, '1 1 0'); @include webkitProp(flex, '1 1 0');
padding-right: $interiorMarginLg; padding-right: $interiorMarginLg;
} }
}
.vscroll {
overflow-y: auto;
} }

View File

@ -48,7 +48,7 @@
<span class="val">{{endOuterText}}</span> <span class="val">{{endOuterText}}</span>
<a class="ui-symbol icon icon-calendar"></a> <a class="ui-symbol icon icon-calendar"></a>
<mct-popup ng-if="t2.isActive()"> <mct-popup ng-if="t2.isActive()">
<div mct-click-elsewhere="t2.setState(false)" class="xmenu-holder go-up"> <div mct-click-elsewhere="t2.setState(false)">
<mct-control key="'datetime-picker'" <mct-control key="'datetime-picker'"
ng-model="ngModel.outer" ng-model="ngModel.outer"
field="'end'" field="'end'"
@ -64,13 +64,6 @@
<div class="l-time-range-slider"> <div class="l-time-range-slider">
<div class="slider" <div class="slider"
mct-resize="spanWidth = bounds.width"> mct-resize="spanWidth = bounds.width">
<div class="slot range-holder">
<div class="range"
mct-drag-down="startMiddleDrag()"
mct-drag="middleDrag(delta[0])"
ng-style="{ left: startInnerPct, right: endInnerPct}">
</div>
</div>
<div class="knob knob-l" <div class="knob knob-l"
mct-drag-down="startLeftDrag()" mct-drag-down="startLeftDrag()"
mct-drag="leftDrag(delta[0])" mct-drag="leftDrag(delta[0])"
@ -83,6 +76,14 @@
ng-style="{ right: endInnerPct }"> ng-style="{ right: endInnerPct }">
<div class="range-value">{{endInnerText}}</div> <div class="range-value">{{endInnerText}}</div>
</div> </div>
<div class="slot range-holder">
<div class="range"
mct-drag-down="startMiddleDrag()"
mct-drag="middleDrag(delta[0])"
ng-style="{ left: startInnerPct, right: endInnerPct}">
<div class="toi-line"></div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -139,8 +139,8 @@ define(
} }
$scope.isInCurrentMonth = function (cell) { $scope.isInCurrentMonth = function (cell) {
return cell.month === month; return cell.month === month;
} };
$scope.isSelected = function (cell) { $scope.isSelected = function (cell) {
var date = $scope.date || {}; var date = $scope.date || {};

View File

@ -20,7 +20,7 @@
* this source code distribution or the Licensing information page available * this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/* line 5, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 5, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
html, body, div, span, applet, object, iframe, html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code, a, abbr, acronym, address, big, cite, code,
@ -41,38 +41,38 @@ time, mark, audio, video {
font-size: 100%; font-size: 100%;
vertical-align: baseline; } vertical-align: baseline; }
/* line 22, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 22, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
html { html {
line-height: 1; } line-height: 1; }
/* line 24, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 24, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
ol, ul { ol, ul {
list-style: none; } list-style: none; }
/* line 26, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 26, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; } border-spacing: 0; }
/* line 28, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 28, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
caption, th, td { caption, th, td {
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
vertical-align: middle; } vertical-align: middle; }
/* line 30, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 30, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
q, blockquote { q, blockquote {
quotes: none; } quotes: none; }
/* line 103, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 103, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
q:before, q:after, blockquote:before, blockquote:after { q:before, q:after, blockquote:before, blockquote:after {
content: ""; content: "";
content: none; } content: none; }
/* line 32, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 32, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
a img { a img {
border: none; } border: none; }
/* line 116, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 116, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block; } display: block; }
@ -404,21 +404,29 @@ mct-container {
text-align: center; } text-align: center; }
/* line 128, ../../../../general/res/sass/_global.scss */ /* line 128, ../../../../general/res/sass/_global.scss */
.scrolling {
overflow: auto; }
/* line 132, ../../../../general/res/sass/_global.scss */
.vscroll {
overflow-y: auto; }
/* line 136, ../../../../general/res/sass/_global.scss */
.no-margin { .no-margin {
margin: 0; } margin: 0; }
/* line 132, ../../../../general/res/sass/_global.scss */ /* line 140, ../../../../general/res/sass/_global.scss */
.ds { .ds {
-moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px;
-webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px;
box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; } box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; }
/* line 136, ../../../../general/res/sass/_global.scss */ /* line 144, ../../../../general/res/sass/_global.scss */
.hide, .hide,
.hidden { .hidden {
display: none !important; } display: none !important; }
/* line 141, ../../../../general/res/sass/_global.scss */ /* line 149, ../../../../general/res/sass/_global.scss */
.sep { .sep {
color: rgba(255, 255, 255, 0.2); } color: rgba(255, 255, 255, 0.2); }
@ -1321,7 +1329,7 @@ mct-container {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.s-btn.major .icon, .major.s-menu-btn .icon { .s-btn.major .icon, .major.s-menu-btn .icon {
color: #fff; } color: #fff; }
@ -1360,7 +1368,7 @@ mct-container {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.s-btn:not(.major) .icon, .s-menu-btn:not(.major) .icon { .s-btn:not(.major) .icon, .s-menu-btn:not(.major) .icon {
color: #0099cc; } color: #0099cc; }
@ -1402,7 +1410,7 @@ mct-container {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.s-btn.pause-play.paused .icon, .pause-play.paused.s-menu-btn .icon { .s-btn.pause-play.paused .icon, .pause-play.paused.s-menu-btn .icon {
color: #fff; } color: #fff; }
@ -1840,7 +1848,7 @@ label.checkbox.custom {
opacity: 1; } } opacity: 1; } }
/******************************************************** SLIDERS */ /******************************************************** SLIDERS */
/* line 300, ../../../../general/res/sass/controls/_controls.scss */ /* line 298, ../../../../general/res/sass/controls/_controls.scss */
.slider .slot { .slider .slot {
width: auto; width: auto;
position: absolute; position: absolute;
@ -1848,7 +1856,7 @@ label.checkbox.custom {
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; } left: 0; }
/* line 312, ../../../../general/res/sass/controls/_controls.scss */ /* line 308, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob { .slider .knob {
-moz-transition-property: visibility, opacity, background-color, border-color; -moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color;
@ -1862,19 +1870,36 @@ label.checkbox.custom {
-o-transition-timing-function: ease-in-out; -o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; transition-timing-function: ease-in-out;
background-color: rgba(0, 153, 204, 0.3); background-color: rgba(0, 153, 204, 0.6);
cursor: ew-resize;
position: absolute; position: absolute;
height: 100%; height: 100%;
width: 12px; width: 10px;
top: 0; top: 0;
auto: 0; auto: 0;
bottom: auto; bottom: auto;
left: auto; } left: auto; }
/* line 317, ../../../../general/res/sass/controls/_controls.scss */ /* line 313, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob:hover { .slider .knob:hover {
background-color: #0099cc; } background-color: #0099cc; }
/* line 335, ../../../../general/res/sass/controls/_controls.scss */ /* line 324, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob-l {
-moz-border-radius-topleft: 10px;
-webkit-border-top-left-radius: 10px;
border-top-left-radius: 10px;
-moz-border-radius-bottomleft: 10px;
-webkit-border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px;
cursor: w-resize; }
/* line 328, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob-r {
-moz-border-radius-topright: 10px;
-webkit-border-top-right-radius: 10px;
border-top-right-radius: 10px;
-moz-border-radius-bottomright: 10px;
-webkit-border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px;
cursor: e-resize; }
/* line 332, ../../../../general/res/sass/controls/_controls.scss */
.slider .range { .slider .range {
-moz-transition-property: visibility, opacity, background-color, border-color; -moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color;
@ -1897,12 +1922,12 @@ label.checkbox.custom {
left: auto; left: auto;
height: auto; height: auto;
width: auto; } width: auto; }
/* line 346, ../../../../general/res/sass/controls/_controls.scss */ /* line 343, ../../../../general/res/sass/controls/_controls.scss */
.slider .range:hover { .slider .range:hover {
background-color: rgba(0, 153, 204, 0.5); } background-color: rgba(0, 153, 204, 0.5); }
/******************************************************** DATETIME PICKER */ /******************************************************** DATETIME PICKER */
/* line 353, ../../../../general/res/sass/controls/_controls.scss */ /* line 350, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker { .l-datetime-picker {
-moz-user-select: -moz-none; -moz-user-select: -moz-none;
-ms-user-select: none; -ms-user-select: none;
@ -1911,59 +1936,66 @@ label.checkbox.custom {
font-size: 0.8rem; font-size: 0.8rem;
padding: 10px !important; padding: 10px !important;
width: 230px; } width: 230px; }
/* line 359, ../../../../general/res/sass/controls/_controls.scss */ /* line 356, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager { .l-datetime-picker .l-month-year-pager {
font-size: 0.8rem; font-size: 0.8rem;
height: 15px; height: 15px;
margin-bottom: 5px; margin-bottom: 5px;
position: relative; } position: relative; }
/* line 371, ../../../../general/res/sass/controls/_controls.scss */ /* line 368, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager { .l-datetime-picker .l-month-year-pager .pager {
width: 20px; } width: 20px; }
/* line 374, ../../../../general/res/sass/controls/_controls.scss */ /* line 371, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.prev { .l-datetime-picker .l-month-year-pager .pager.prev {
right: auto; } right: auto; }
/* line 376, ../../../../general/res/sass/controls/_controls.scss */ /* line 373, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.prev:before { .l-datetime-picker .l-month-year-pager .pager.prev:before {
content: "\3c"; } content: "\3c"; }
/* line 380, ../../../../general/res/sass/controls/_controls.scss */ /* line 377, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.next { .l-datetime-picker .l-month-year-pager .pager.next {
left: auto; left: auto;
text-align: right; } text-align: right; }
/* line 383, ../../../../general/res/sass/controls/_controls.scss */ /* line 380, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.next:before { .l-datetime-picker .l-month-year-pager .pager.next:before {
content: "\3e"; } content: "\3e"; }
/* line 388, ../../../../general/res/sass/controls/_controls.scss */ /* line 385, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .val { .l-datetime-picker .l-month-year-pager .val {
text-align: center; text-align: center;
left: 25px; left: 25px;
right: 25px; } right: 25px; }
/* line 391, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-calendar,
.l-datetime-picker .l-time-selects {
border-top: 1px solid rgba(153, 153, 153, 0.1); }
/* line 395, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-time-selects {
line-height: 22px; }
/******************************************************** CALENDAR */ /******************************************************** CALENDAR */
/* line 399, ../../../../general/res/sass/controls/_controls.scss */ /* line 403, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row { .l-calendar ul.l-cal-row {
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
-webkit-flex-flow: row nowrap; -webkit-flex-flow: row nowrap;
flex-flow: row nowrap; flex-flow: row nowrap;
margin-top: 1px; } margin-top: 1px; }
/* line 403, ../../../../general/res/sass/controls/_controls.scss */ /* line 407, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row:first-child { .l-calendar ul.l-cal-row:first-child {
margin-top: 0; } margin-top: 0; }
/* line 406, ../../../../general/res/sass/controls/_controls.scss */ /* line 410, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row li { .l-calendar ul.l-cal-row li {
-webkit-flex: 1 0; -webkit-flex: 1 0;
flex: 1 0; flex: 1 0;
margin-left: 1px; margin-left: 1px;
padding: 5px; padding: 5px;
text-align: center; } text-align: center; }
/* line 412, ../../../../general/res/sass/controls/_controls.scss */ /* line 416, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row li:first-child { .l-calendar ul.l-cal-row li:first-child {
margin-left: 0; } margin-left: 0; }
/* line 416, ../../../../general/res/sass/controls/_controls.scss */ /* line 420, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-header li { .l-calendar ul.l-cal-row.l-header li {
color: #b3b3b3; } color: #b3b3b3; }
/* line 419, ../../../../general/res/sass/controls/_controls.scss */ /* line 423, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li { .l-calendar ul.l-cal-row.l-body li {
-moz-transition-property: background-color; -moz-transition-property: background-color;
-o-transition-property: background-color; -o-transition-property: background-color;
@ -1978,31 +2010,31 @@ label.checkbox.custom {
-webkit-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; transition-timing-function: ease-in-out;
cursor: pointer; } cursor: pointer; }
/* line 422, ../../../../general/res/sass/controls/_controls.scss */ /* line 426, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.in-month { .l-calendar ul.l-cal-row.l-body li.in-month {
background-color: #616161; } background-color: #616161; }
/* line 425, ../../../../general/res/sass/controls/_controls.scss */ /* line 429, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li .sub { .l-calendar ul.l-cal-row.l-body li .sub {
color: #b3b3b3; color: #b3b3b3;
font-size: 0.8em; } font-size: 0.8em; }
/* line 429, ../../../../general/res/sass/controls/_controls.scss */ /* line 433, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.selected { .l-calendar ul.l-cal-row.l-body li.selected {
background: #006080; background: #006080;
color: #cccccc; } color: #cccccc; }
/* line 432, ../../../../general/res/sass/controls/_controls.scss */ /* line 436, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.selected .sub { .l-calendar ul.l-cal-row.l-body li.selected .sub {
color: inherit; } color: inherit; }
/* line 436, ../../../../general/res/sass/controls/_controls.scss */ /* line 440, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li:hover { .l-calendar ul.l-cal-row.l-body li:hover {
background-color: #0099cc; background-color: #0099cc;
color: #fff; } color: #fff; }
/* line 439, ../../../../general/res/sass/controls/_controls.scss */ /* line 443, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li:hover .sub { .l-calendar ul.l-cal-row.l-body li:hover .sub {
color: inherit; } color: inherit; }
/******************************************************** BROWSER ELEMENTS */ /******************************************************** BROWSER ELEMENTS */
@media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) { @media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) {
/* line 450, ../../../../general/res/sass/controls/_controls.scss */ /* line 454, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar { ::-webkit-scrollbar {
-moz-border-radius: 2px; -moz-border-radius: 2px;
-webkit-border-radius: 2px; -webkit-border-radius: 2px;
@ -2017,7 +2049,7 @@ label.checkbox.custom {
height: 10px; height: 10px;
width: 10px; } width: 10px; }
/* line 459, ../../../../general/res/sass/controls/_controls.scss */ /* line 463, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzU5NTk1OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRkNGQ0ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzU5NTk1OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRkNGQ0ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
background-size: 100%; background-size: 100%;
@ -2031,7 +2063,7 @@ label.checkbox.custom {
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; } box-sizing: border-box; }
/* line 468, ../../../../general/res/sass/controls/_controls.scss */ /* line 472, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVlNWU1ZSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzUyNTI1MiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVlNWU1ZSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzUyNTI1MiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
background-size: 100%; background-size: 100%;
@ -2040,7 +2072,7 @@ label.checkbox.custom {
background-image: -webkit-linear-gradient(#5e5e5e, #525252 20px); background-image: -webkit-linear-gradient(#5e5e5e, #525252 20px);
background-image: linear-gradient(#5e5e5e, #525252 20px); } background-image: linear-gradient(#5e5e5e, #525252 20px); }
/* line 473, ../../../../general/res/sass/controls/_controls.scss */ /* line 477, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-corner { ::-webkit-scrollbar-corner {
background: rgba(0, 0, 0, 0.4); } } background: rgba(0, 0, 0, 0.4); } }
/***************************************************************************** /*****************************************************************************
@ -2346,130 +2378,206 @@ label.checkbox.custom {
right: 0; right: 0;
width: auto; } width: auto; }
/* line 1, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 27, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller { .l-time-controller .l-time-range-inputs-holder,
min-width: 400px; } .l-time-controller .l-time-range-slider {
/* line 9, ../../../../general/res/sass/controls/_time-controller.scss */ font-size: 0.8em; }
.l-time-controller .l-time-range-inputs-holder, /* line 32, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider { .l-time-controller .l-time-range-inputs-holder,
font-size: 0.8em; } .l-time-controller .l-time-range-slider-holder,
/* line 14, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-ticks-holder {
.l-time-controller .l-time-range-inputs-holder, overflow: visible;
.l-time-controller .l-time-range-slider-holder, position: absolute;
.l-time-controller .l-time-range-ticks-holder { top: 0;
overflow: visible; right: 0;
position: absolute; bottom: 0;
top: 0; left: 0;
right: 0; width: auto;
bottom: 0; height: auto;
left: 0; -moz-box-sizing: border-box;
width: auto; -webkit-box-sizing: border-box;
height: auto; box-sizing: border-box;
-moz-box-sizing: border-box; min-width: 400px;
-webkit-box-sizing: border-box; top: auto; }
box-sizing: border-box; /* line 42, ../../../../general/res/sass/controls/_time-controller.scss */
top: auto; } .l-time-controller .l-time-range-slider,
/* line 23, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-ticks {
.l-time-controller .l-time-range-slider, overflow: visible;
.l-time-controller .l-time-range-ticks { position: absolute;
overflow: visible; top: 0;
position: absolute; right: 0;
top: 0; bottom: 0;
right: 0; left: 0;
bottom: 0; width: auto;
left: 0; height: auto;
width: auto; left: 150px;
height: auto; } right: 150px; }
/* line 29, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 49, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder { .l-time-controller .l-time-range-inputs-holder {
height: 33px; height: 33px;
bottom: 46px; bottom: 46px;
padding-top: 5px; padding-top: 5px;
border-top: 1px solid rgba(153, 153, 153, 0.1); } border-top: 1px solid rgba(153, 153, 153, 0.1); }
/* line 34, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 54, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .type-icon { .l-time-controller .l-time-range-inputs-holder .type-icon {
font-size: 120%; font-size: 120%;
vertical-align: middle; } vertical-align: middle; }
/* line 38, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 58, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input, .l-time-controller .l-time-range-inputs-holder .l-time-range-input,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem {
margin-right: 5px; } margin-right: 5px; }
/* line 41, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 61, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl {
color: #666666; } color: #666666; }
/* line 44, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 64, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager,
.l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager {
font-size: 11px; font-size: 11px;
width: 11px; } width: 11px; }
/* line 51, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 71, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider, .l-time-controller .l-time-range-slider-holder {
.l-time-controller .l-time-range-ticks { height: 20px;
left: 125px; bottom: 23px; }
right: 125px; } /* line 74, ../../../../general/res/sass/controls/_time-controller.scss */
/* line 57, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-slider-holder .range-holder {
.l-time-controller .l-time-range-slider-holder { -moz-box-shadow: none;
height: 20px; -webkit-box-shadow: none;
bottom: 23px; } box-shadow: none;
/* line 60, ../../../../general/res/sass/controls/_time-controller.scss */ background: none;
.l-time-controller .l-time-range-slider-holder .range-holder { border: none; }
-moz-box-shadow: none; /* line 79, ../../../../general/res/sass/controls/_time-controller.scss */
-webkit-box-shadow: none; .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line {
box-shadow: none; -moz-transform: translateX(50%);
background: none; -ms-transform: translateX(50%);
border: none; } -webkit-transform: translateX(50%);
/* line 67, ../../../../general/res/sass/controls/_time-controller.scss */ transform: translateX(50%);
.l-time-controller .l-time-range-ticks-holder {
height: 20px; }
/* line 69, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks {
border-top: 1px solid rgba(255, 255, 255, 0.2); }
/* line 71, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick {
background-color: rgba(255, 255, 255, 0.2);
border: none;
height: 5px;
width: 1px;
margin-left: -1px;
position: absolute; }
/* line 78, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child {
margin-left: 0; }
/* line 81, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label {
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
color: #666666;
display: inline-block;
font-size: 0.7em;
position: absolute;
top: 8px;
white-space: nowrap;
z-index: 2; }
/* line 95, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob {
width: 5px; }
/* line 97, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob .range-value {
position: absolute; position: absolute;
height: 20px; top: 0;
line-height: 20px; right: 0;
white-space: nowrap; } bottom: 0px;
/* line 103, ../../../../general/res/sass/controls/_time-controller.scss */ left: auto;
.l-time-controller .knob:hover .range-value { width: 8px;
color: #0099cc; } height: auto;
/* line 108, ../../../../general/res/sass/controls/_time-controller.scss */ z-index: 2; }
/* line 89, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after {
background-color: #00c2ff;
content: "";
position: absolute; }
/* line 95, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before {
top: 0;
right: auto;
bottom: -10px;
left: 3px;
width: 2px; }
/* line 101, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
top: 50%;
right: 0;
bottom: auto;
left: 0;
width: auto;
height: 8px; }
/* line 3, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:after {
background-color: #fff; }
/* line 117, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder:not(:active) .knob,
.l-time-controller .l-time-range-slider-holder:not(:active) .range {
-moz-transition-property: left, right;
-o-transition-property: left, right;
-webkit-transition-property: left, right;
transition-property: left, right;
-moz-transition-duration: 500ms;
-o-transition-duration: 500ms;
-webkit-transition-duration: 500ms;
transition-duration: 500ms;
-moz-transition-timing-function: ease-in-out;
-o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; }
/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder {
height: 20px; }
/* line 128, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks {
border-top: 1px solid rgba(255, 255, 255, 0.2); }
/* line 130, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick {
background-color: rgba(255, 255, 255, 0.2);
border: none;
height: 5px;
width: 1px;
margin-left: -1px;
position: absolute; }
/* line 137, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child {
margin-left: 0; }
/* line 140, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label {
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
color: #666666;
display: inline-block;
font-size: 0.7em;
position: absolute;
top: 8px;
white-space: nowrap;
z-index: 2; }
/* line 154, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob {
z-index: 2; }
/* line 156, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob .range-value {
-moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color;
-webkit-transition-property: visibility, opacity, background-color, border-color;
transition-property: visibility, opacity, background-color, border-color;
-moz-transition-duration: 0.25s;
-o-transition-duration: 0.25s;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
-moz-transition-timing-function: ease-in-out;
-o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out;
padding: 0 10px;
position: absolute;
height: 20px;
line-height: 20px;
white-space: nowrap; }
/* line 165, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob:hover .range-value {
color: #0099cc; }
/* line 168, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-l {
margin-left: -10px; }
/* line 171, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-l .range-value { .l-time-controller .knob.knob-l .range-value {
text-align: right; text-align: right;
right: 10px; } right: 10px; }
/* line 115, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 176, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r {
margin-right: -10px; }
/* line 179, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r .range-value { .l-time-controller .knob.knob-r .range-value {
left: 10px; } left: 10px; }
/* line 3, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:before, .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:after {
background-color: #fff; }
/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 193, ../../../../general/res/sass/controls/_time-controller.scss */
.s-time-range-val { .s-time-range-val {
-moz-border-radius: 3px; -moz-border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
@ -2769,11 +2877,12 @@ textarea {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px;
margin: 0 0 2px 2px; margin: 0 0 2px 0;
padding: 0 5px; padding: 0 5px;
overflow: hidden; overflow: hidden;
position: relative; } position: relative;
line-height: 22px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.select .icon { .select .icon {
color: #0099cc; } color: #0099cc; }
@ -2784,7 +2893,7 @@ textarea {
/* line 279, ../../../../general/res/sass/_mixins.scss */ /* line 279, ../../../../general/res/sass/_mixins.scss */
.select:not(.disabled):hover > .icon { .select:not(.disabled):hover > .icon {
color: #33ccff; } } color: #33ccff; } }
/* line 28, ../../../../general/res/sass/forms/_selects.scss */ /* line 31, ../../../../general/res/sass/forms/_selects.scss */
.select select { .select select {
-moz-appearance: none; -moz-appearance: none;
-webkit-appearance: none; -webkit-appearance: none;
@ -2797,10 +2906,10 @@ textarea {
border: none !important; border: none !important;
padding: 4px 25px 2px 0px; padding: 4px 25px 2px 0px;
width: 120%; } width: 120%; }
/* line 37, ../../../../general/res/sass/forms/_selects.scss */ /* line 40, ../../../../general/res/sass/forms/_selects.scss */
.select select option { .select select option {
margin: 5px 0; } margin: 5px 0; }
/* line 41, ../../../../general/res/sass/forms/_selects.scss */ /* line 44, ../../../../general/res/sass/forms/_selects.scss */
.select:after { .select:after {
text-shadow: none; text-shadow: none;
content: '\76'; content: '\76';
@ -2896,26 +3005,44 @@ textarea {
* this source code distribution or the Licensing information page available * this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/* line 23, ../../../../general/res/sass/forms/_datetime.scss */ /* line 29, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime span { .complex.datetime {
display: inline-block; /*
margin-right: 5px; } .field-hints,
/* line 36, ../../../../general/res/sass/forms/_datetime.scss */ .fields {
.complex.datetime .fields { }
margin-top: 3px 0;
padding: 3px 0; }
/* line 41, ../../../../general/res/sass/forms/_datetime.scss */ .field-hints {
.complex.datetime .date {
width: 85px; } }
/* line 44, ../../../../general/res/sass/forms/_datetime.scss */ */ }
.complex.datetime .date input { /* line 30, ../../../../general/res/sass/forms/_datetime.scss */
width: 80px; } .complex.datetime span {
/* line 50, ../../../../general/res/sass/forms/_datetime.scss */ display: inline-block;
.complex.datetime .time.sm { margin-right: 5px; }
width: 45px; } /* line 46, ../../../../general/res/sass/forms/_datetime.scss */
/* line 53, ../../../../general/res/sass/forms/_datetime.scss */ .complex.datetime .fields {
.complex.datetime .time.sm input { margin-top: 3px 0;
width: 40px; } padding: 3px 0; }
/* line 51, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .date {
width: 85px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .date input[type="text"] {
width: 80px; }
/* line 55, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.md {
width: 65px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.md input[type="text"] {
width: 60px; }
/* line 59, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.sm {
width: 45px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.sm input[type="text"] {
width: 40px; }
/***************************************************************************** /*****************************************************************************
* Open MCT Web, Copyright (c) 2014-2015, United States Government * Open MCT Web, Copyright (c) 2014-2015, United States Government
@ -3319,26 +3446,26 @@ span.req {
min-height: 50px; min-height: 50px;
height: 30%; } height: 30%; }
/* line 230, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 228, ../../../../general/res/sass/user-environ/_layout.scss */
.pane { .pane {
position: absolute; } position: absolute; }
/* line 233, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 231, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .create-btn-holder { .pane.treeview.left .create-btn-holder {
bottom: auto; bottom: auto;
top: 0; top: 0;
height: 24px; } height: 24px; }
/* line 236, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 235, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .create-btn-holder .wrapper.menu-element { .pane.treeview.left .create-btn-holder .wrapper.menu-element {
position: absolute; position: absolute;
bottom: 5px; } bottom: 5px; }
/* line 241, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 240, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .search-holder { .pane.treeview.left .search-holder {
top: 34px; } top: 34px; }
/* line 244, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 243, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .tree-holder { .pane.treeview.left .tree-holder {
overflow: auto; overflow: auto;
top: 64px; } top: 64px; }
/* line 251, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 250, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager, .pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager,
.pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val,
.l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area,
@ -3350,34 +3477,46 @@ span.req {
.pane.items .object-browse-bar .s-menu-btn span.right.l-click-area, .pane.items .object-browse-bar .s-menu-btn span.right.l-click-area,
.s-menu-btn .pane.items .object-browse-bar span.right.l-click-area { .s-menu-btn .pane.items .object-browse-bar span.right.l-click-area {
top: auto; } top: auto; }
/* line 262, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.items .object-holder {
top: 34px; }
/* line 266, ../../../../general/res/sass/user-environ/_layout.scss */
.pane .object-holder {
overflow: auto; }
/* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 261, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.horizontal > .pane { .split-layout.horizontal > .pane {
margin-top: 5px; } margin-top: 5px; }
/* line 277, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 264, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.horizontal > .pane:first-child { .split-layout.horizontal > .pane:first-child {
margin-top: 0; } margin-top: 0; }
/* line 284, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 271, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane { .split-layout.vertical > .pane {
margin-left: 5px; } margin-left: 5px; }
/* line 287, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 274, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane > .holder { .split-layout.vertical > .pane > .holder {
left: 0; left: 0;
right: 0; } right: 0; }
/* line 291, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 278, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane:first-child { .split-layout.vertical > .pane:first-child {
margin-left: 0; } margin-left: 0; }
/* line 293, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 280, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane:first-child .holder { .split-layout.vertical > .pane:first-child .holder {
right: 3px; } right: 3px; }
/* line 302, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 289, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder {
overflow: hidden;
top: 34px; }
/* line 292, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder > ng-include {
overflow: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: auto;
height: auto; }
/* line 297, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder.l-controls-visible.l-time-controller-visible > ng-include {
bottom: 88px; }
/* line 304, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .s-btn, .object-browse-bar .s-menu-btn, .object-browse-bar .s-btn, .object-browse-bar .s-menu-btn,
.top-bar .buttons-main .s-btn, .top-bar .buttons-main .s-btn,
.top-bar .buttons-main .s-menu-btn, .top-bar .buttons-main .s-menu-btn,
@ -3389,12 +3528,12 @@ span.req {
line-height: 25px; line-height: 25px;
vertical-align: top; } vertical-align: top; }
/* line 315, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 317, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .view-switcher, .object-browse-bar .view-switcher,
.top-bar .view-switcher { .top-bar .view-switcher {
margin-right: 20px; } margin-right: 20px; }
/* line 320, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 322, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar { .object-browse-bar {
overflow: visible; overflow: visible;
position: absolute; position: absolute;
@ -3410,31 +3549,27 @@ span.req {
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
white-space: nowrap; } white-space: nowrap; }
/* line 328, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .left { .object-browse-bar .left {
padding-right: 20px; } padding-right: 20px; }
/* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 332, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .left .l-back { .object-browse-bar .left .l-back {
display: inline-block; display: inline-block;
float: left; float: left;
margin-right: 10px; } margin-right: 10px; }
/* line 338, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 340, ../../../../general/res/sass/user-environ/_layout.scss */
.l-flex { .l-flex {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
flex-flow: row nowrap; flex-flow: row nowrap;
-webkit-flex-flow: row nowrap; } -webkit-flex-flow: row nowrap; }
/* line 341, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 343, ../../../../general/res/sass/user-environ/_layout.scss */
.l-flex .left { .l-flex .left {
flex: 1 1 0; flex: 1 1 0;
-webkit-flex: 1 1 0; -webkit-flex: 1 1 0;
padding-right: 10px; } padding-right: 10px; }
/* line 348, ../../../../general/res/sass/user-environ/_layout.scss */
.vscroll {
overflow-y: auto; }
/***************************************************************************** /*****************************************************************************
* Open MCT Web, Copyright (c) 2014-2015, United States Government * Open MCT Web, Copyright (c) 2014-2015, United States Government
* as represented by the Administrator of the National Aeronautics and Space * as represented by the Administrator of the National Aeronautics and Space
@ -4093,7 +4228,7 @@ span.req {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.overlay .bottom-bar .s-btn:not(.major) .icon, .overlay .bottom-bar .s-menu-btn:not(.major) .icon { .overlay .bottom-bar .s-btn:not(.major) .icon, .overlay .bottom-bar .s-menu-btn:not(.major) .icon {
color: #fff; } color: #fff; }
@ -5399,9 +5534,6 @@ table {
.l-view-section.fixed { .l-view-section.fixed {
font-size: 0.8em; } font-size: 0.8em; }
/* line 13, ../../../../general/res/sass/_views.scss */ /* line 13, ../../../../general/res/sass/_views.scss */
.l-view-section.scrolling {
overflow: auto; }
/* line 16, ../../../../general/res/sass/_views.scss */
.l-view-section .controls, .l-view-section .controls,
.l-view-section label, .l-view-section label,
.l-view-section .inline-block { .l-view-section .inline-block {
@ -5464,7 +5596,7 @@ table {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px;
box-sizing: border-box; box-sizing: border-box;
cursor: pointer; cursor: pointer;
float: left; float: left;
@ -5613,7 +5745,7 @@ table {
-o-transition: background, 0.25s; -o-transition: background, 0.25s;
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px;
color: #80dfff; } color: #80dfff; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.items-holder .item.grid-item.selected .icon { .items-holder .item.grid-item.selected .icon {

View File

@ -31,7 +31,9 @@ $sliderColorKnob: rgba($sliderColorBase, 0.6);
$sliderColorKnobHov: $sliderColorBase; $sliderColorKnobHov: $sliderColorBase;
$sliderColorRangeValHovBg: rgba($sliderColorBase, 0.1); $sliderColorRangeValHovBg: rgba($sliderColorBase, 0.1);
$sliderColorRangeValHovFg: $colorKeyFg; $sliderColorRangeValHovFg: $colorKeyFg;
$sliderKnobW: 4px; $sliderKnobW: nth($ueTimeControlH,2)/2;
$timeControllerToiLineColor: #00c2ff;
$timeControllerToiLineColorHov: #fff;
// General Colors // General Colors
$colorAlt1: #ffc700; $colorAlt1: #ffc700;

View File

@ -20,7 +20,7 @@
* this source code distribution or the Licensing information page available * this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/* line 5, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 5, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
html, body, div, span, applet, object, iframe, html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code, a, abbr, acronym, address, big, cite, code,
@ -41,38 +41,38 @@ time, mark, audio, video {
font-size: 100%; font-size: 100%;
vertical-align: baseline; } vertical-align: baseline; }
/* line 22, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 22, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
html { html {
line-height: 1; } line-height: 1; }
/* line 24, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 24, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
ol, ul { ol, ul {
list-style: none; } list-style: none; }
/* line 26, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 26, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; } border-spacing: 0; }
/* line 28, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 28, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
caption, th, td { caption, th, td {
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
vertical-align: middle; } vertical-align: middle; }
/* line 30, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 30, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
q, blockquote { q, blockquote {
quotes: none; } quotes: none; }
/* line 103, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 103, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
q:before, q:after, blockquote:before, blockquote:after { q:before, q:after, blockquote:before, blockquote:after {
content: ""; content: "";
content: none; } content: none; }
/* line 32, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 32, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
a img { a img {
border: none; } border: none; }
/* line 116, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ /* line 116, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block; } display: block; }
@ -404,21 +404,29 @@ mct-container {
text-align: center; } text-align: center; }
/* line 128, ../../../../general/res/sass/_global.scss */ /* line 128, ../../../../general/res/sass/_global.scss */
.scrolling {
overflow: auto; }
/* line 132, ../../../../general/res/sass/_global.scss */
.vscroll {
overflow-y: auto; }
/* line 136, ../../../../general/res/sass/_global.scss */
.no-margin { .no-margin {
margin: 0; } margin: 0; }
/* line 132, ../../../../general/res/sass/_global.scss */ /* line 140, ../../../../general/res/sass/_global.scss */
.ds { .ds {
-moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px;
-webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px;
box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; } box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; }
/* line 136, ../../../../general/res/sass/_global.scss */ /* line 144, ../../../../general/res/sass/_global.scss */
.hide, .hide,
.hidden { .hidden {
display: none !important; } display: none !important; }
/* line 141, ../../../../general/res/sass/_global.scss */ /* line 149, ../../../../general/res/sass/_global.scss */
.sep { .sep {
color: rgba(255, 255, 255, 0.2); } color: rgba(255, 255, 255, 0.2); }
@ -1810,7 +1818,7 @@ label.checkbox.custom {
opacity: 1; } } opacity: 1; } }
/******************************************************** SLIDERS */ /******************************************************** SLIDERS */
/* line 300, ../../../../general/res/sass/controls/_controls.scss */ /* line 298, ../../../../general/res/sass/controls/_controls.scss */
.slider .slot { .slider .slot {
width: auto; width: auto;
position: absolute; position: absolute;
@ -1818,7 +1826,7 @@ label.checkbox.custom {
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; } left: 0; }
/* line 312, ../../../../general/res/sass/controls/_controls.scss */ /* line 308, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob { .slider .knob {
-moz-transition-property: visibility, opacity, background-color, border-color; -moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color;
@ -1832,19 +1840,36 @@ label.checkbox.custom {
-o-transition-timing-function: ease-in-out; -o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; transition-timing-function: ease-in-out;
background-color: rgba(0, 153, 204, 0.3); background-color: rgba(0, 153, 204, 0.5);
cursor: ew-resize;
position: absolute; position: absolute;
height: 100%; height: 100%;
width: 12px; width: 10px;
top: 0; top: 0;
auto: 0; auto: 0;
bottom: auto; bottom: auto;
left: auto; } left: auto; }
/* line 317, ../../../../general/res/sass/controls/_controls.scss */ /* line 313, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob:hover { .slider .knob:hover {
background-color: #0099cc; } background-color: rgba(0, 153, 204, 0.7); }
/* line 335, ../../../../general/res/sass/controls/_controls.scss */ /* line 324, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob-l {
-moz-border-radius-topleft: 10px;
-webkit-border-top-left-radius: 10px;
border-top-left-radius: 10px;
-moz-border-radius-bottomleft: 10px;
-webkit-border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px;
cursor: w-resize; }
/* line 328, ../../../../general/res/sass/controls/_controls.scss */
.slider .knob-r {
-moz-border-radius-topright: 10px;
-webkit-border-top-right-radius: 10px;
border-top-right-radius: 10px;
-moz-border-radius-bottomright: 10px;
-webkit-border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px;
cursor: e-resize; }
/* line 332, ../../../../general/res/sass/controls/_controls.scss */
.slider .range { .slider .range {
-moz-transition-property: visibility, opacity, background-color, border-color; -moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color;
@ -1858,7 +1883,7 @@ label.checkbox.custom {
-o-transition-timing-function: ease-in-out; -o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; transition-timing-function: ease-in-out;
background-color: rgba(0, 153, 204, 0.3); background-color: rgba(0, 153, 204, 0.2);
cursor: ew-resize; cursor: ew-resize;
position: absolute; position: absolute;
top: 0; top: 0;
@ -1867,12 +1892,12 @@ label.checkbox.custom {
left: auto; left: auto;
height: auto; height: auto;
width: auto; } width: auto; }
/* line 346, ../../../../general/res/sass/controls/_controls.scss */ /* line 343, ../../../../general/res/sass/controls/_controls.scss */
.slider .range:hover { .slider .range:hover {
background-color: rgba(0, 153, 204, 0.5); } background-color: rgba(0, 153, 204, 0.4); }
/******************************************************** DATETIME PICKER */ /******************************************************** DATETIME PICKER */
/* line 353, ../../../../general/res/sass/controls/_controls.scss */ /* line 350, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker { .l-datetime-picker {
-moz-user-select: -moz-none; -moz-user-select: -moz-none;
-ms-user-select: none; -ms-user-select: none;
@ -1881,59 +1906,66 @@ label.checkbox.custom {
font-size: 0.8rem; font-size: 0.8rem;
padding: 10px !important; padding: 10px !important;
width: 230px; } width: 230px; }
/* line 359, ../../../../general/res/sass/controls/_controls.scss */ /* line 356, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager { .l-datetime-picker .l-month-year-pager {
font-size: 0.8rem; font-size: 0.8rem;
height: 15px; height: 15px;
margin-bottom: 5px; margin-bottom: 5px;
position: relative; } position: relative; }
/* line 371, ../../../../general/res/sass/controls/_controls.scss */ /* line 368, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager { .l-datetime-picker .l-month-year-pager .pager {
width: 20px; } width: 20px; }
/* line 374, ../../../../general/res/sass/controls/_controls.scss */ /* line 371, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.prev { .l-datetime-picker .l-month-year-pager .pager.prev {
right: auto; } right: auto; }
/* line 376, ../../../../general/res/sass/controls/_controls.scss */ /* line 373, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.prev:before { .l-datetime-picker .l-month-year-pager .pager.prev:before {
content: "\3c"; } content: "\3c"; }
/* line 380, ../../../../general/res/sass/controls/_controls.scss */ /* line 377, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.next { .l-datetime-picker .l-month-year-pager .pager.next {
left: auto; left: auto;
text-align: right; } text-align: right; }
/* line 383, ../../../../general/res/sass/controls/_controls.scss */ /* line 380, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .pager.next:before { .l-datetime-picker .l-month-year-pager .pager.next:before {
content: "\3e"; } content: "\3e"; }
/* line 388, ../../../../general/res/sass/controls/_controls.scss */ /* line 385, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-month-year-pager .val { .l-datetime-picker .l-month-year-pager .val {
text-align: center; text-align: center;
left: 25px; left: 25px;
right: 25px; } right: 25px; }
/* line 391, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-calendar,
.l-datetime-picker .l-time-selects {
border-top: 1px solid rgba(102, 102, 102, 0.2); }
/* line 395, ../../../../general/res/sass/controls/_controls.scss */
.l-datetime-picker .l-time-selects {
line-height: 22px; }
/******************************************************** CALENDAR */ /******************************************************** CALENDAR */
/* line 399, ../../../../general/res/sass/controls/_controls.scss */ /* line 403, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row { .l-calendar ul.l-cal-row {
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
-webkit-flex-flow: row nowrap; -webkit-flex-flow: row nowrap;
flex-flow: row nowrap; flex-flow: row nowrap;
margin-top: 1px; } margin-top: 1px; }
/* line 403, ../../../../general/res/sass/controls/_controls.scss */ /* line 407, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row:first-child { .l-calendar ul.l-cal-row:first-child {
margin-top: 0; } margin-top: 0; }
/* line 406, ../../../../general/res/sass/controls/_controls.scss */ /* line 410, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row li { .l-calendar ul.l-cal-row li {
-webkit-flex: 1 0; -webkit-flex: 1 0;
flex: 1 0; flex: 1 0;
margin-left: 1px; margin-left: 1px;
padding: 5px; padding: 5px;
text-align: center; } text-align: center; }
/* line 412, ../../../../general/res/sass/controls/_controls.scss */ /* line 416, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row li:first-child { .l-calendar ul.l-cal-row li:first-child {
margin-left: 0; } margin-left: 0; }
/* line 416, ../../../../general/res/sass/controls/_controls.scss */ /* line 420, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-header li { .l-calendar ul.l-cal-row.l-header li {
color: #999999; } color: #999999; }
/* line 419, ../../../../general/res/sass/controls/_controls.scss */ /* line 423, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li { .l-calendar ul.l-cal-row.l-body li {
-moz-transition-property: background-color; -moz-transition-property: background-color;
-o-transition-property: background-color; -o-transition-property: background-color;
@ -1948,31 +1980,31 @@ label.checkbox.custom {
-webkit-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; transition-timing-function: ease-in-out;
cursor: pointer; } cursor: pointer; }
/* line 422, ../../../../general/res/sass/controls/_controls.scss */ /* line 426, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.in-month { .l-calendar ul.l-cal-row.l-body li.in-month {
background-color: #f2f2f2; } background-color: #f2f2f2; }
/* line 425, ../../../../general/res/sass/controls/_controls.scss */ /* line 429, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li .sub { .l-calendar ul.l-cal-row.l-body li .sub {
color: #999999; color: #999999;
font-size: 0.8em; } font-size: 0.8em; }
/* line 429, ../../../../general/res/sass/controls/_controls.scss */ /* line 433, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.selected { .l-calendar ul.l-cal-row.l-body li.selected {
background: #1ac6ff; background: #1ac6ff;
color: #fcfcfc; } color: #fcfcfc; }
/* line 432, ../../../../general/res/sass/controls/_controls.scss */ /* line 436, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li.selected .sub { .l-calendar ul.l-cal-row.l-body li.selected .sub {
color: inherit; } color: inherit; }
/* line 436, ../../../../general/res/sass/controls/_controls.scss */ /* line 440, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li:hover { .l-calendar ul.l-cal-row.l-body li:hover {
background-color: #0099cc; background-color: #0099cc;
color: #fff; } color: #fff; }
/* line 439, ../../../../general/res/sass/controls/_controls.scss */ /* line 443, ../../../../general/res/sass/controls/_controls.scss */
.l-calendar ul.l-cal-row.l-body li:hover .sub { .l-calendar ul.l-cal-row.l-body li:hover .sub {
color: inherit; } color: inherit; }
/******************************************************** BROWSER ELEMENTS */ /******************************************************** BROWSER ELEMENTS */
@media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) { @media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) {
/* line 450, ../../../../general/res/sass/controls/_controls.scss */ /* line 454, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar { ::-webkit-scrollbar {
-moz-border-radius: 2px; -moz-border-radius: 2px;
-webkit-border-radius: 2px; -webkit-border-radius: 2px;
@ -1987,7 +2019,7 @@ label.checkbox.custom {
height: 10px; height: 10px;
width: 10px; } width: 10px; }
/* line 459, ../../../../general/res/sass/controls/_controls.scss */ /* line 463, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzg5ODk4OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdkN2Q3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzg5ODk4OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdkN2Q3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
background-size: 100%; background-size: 100%;
@ -2001,7 +2033,7 @@ label.checkbox.custom {
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; } box-sizing: border-box; }
/* line 468, ../../../../general/res/sass/controls/_controls.scss */ /* line 472, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYWNlNiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwOTljYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYWNlNiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwOTljYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
background-size: 100%; background-size: 100%;
@ -2010,7 +2042,7 @@ label.checkbox.custom {
background-image: -webkit-linear-gradient(#00ace6, #0099cc 20px); background-image: -webkit-linear-gradient(#00ace6, #0099cc 20px);
background-image: linear-gradient(#00ace6, #0099cc 20px); } background-image: linear-gradient(#00ace6, #0099cc 20px); }
/* line 473, ../../../../general/res/sass/controls/_controls.scss */ /* line 477, ../../../../general/res/sass/controls/_controls.scss */
::-webkit-scrollbar-corner { ::-webkit-scrollbar-corner {
background: rgba(0, 0, 0, 0.1); } } background: rgba(0, 0, 0, 0.1); } }
/***************************************************************************** /*****************************************************************************
@ -2310,130 +2342,206 @@ label.checkbox.custom {
right: 0; right: 0;
width: auto; } width: auto; }
/* line 1, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 27, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller { .l-time-controller .l-time-range-inputs-holder,
min-width: 400px; } .l-time-controller .l-time-range-slider {
/* line 9, ../../../../general/res/sass/controls/_time-controller.scss */ font-size: 0.8em; }
.l-time-controller .l-time-range-inputs-holder, /* line 32, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider { .l-time-controller .l-time-range-inputs-holder,
font-size: 0.8em; } .l-time-controller .l-time-range-slider-holder,
/* line 14, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-ticks-holder {
.l-time-controller .l-time-range-inputs-holder, overflow: visible;
.l-time-controller .l-time-range-slider-holder, position: absolute;
.l-time-controller .l-time-range-ticks-holder { top: 0;
overflow: visible; right: 0;
position: absolute; bottom: 0;
top: 0; left: 0;
right: 0; width: auto;
bottom: 0; height: auto;
left: 0; -moz-box-sizing: border-box;
width: auto; -webkit-box-sizing: border-box;
height: auto; box-sizing: border-box;
-moz-box-sizing: border-box; min-width: 400px;
-webkit-box-sizing: border-box; top: auto; }
box-sizing: border-box; /* line 42, ../../../../general/res/sass/controls/_time-controller.scss */
top: auto; } .l-time-controller .l-time-range-slider,
/* line 23, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-ticks {
.l-time-controller .l-time-range-slider, overflow: visible;
.l-time-controller .l-time-range-ticks { position: absolute;
overflow: visible; top: 0;
position: absolute; right: 0;
top: 0; bottom: 0;
right: 0; left: 0;
bottom: 0; width: auto;
left: 0; height: auto;
width: auto; left: 150px;
height: auto; } right: 150px; }
/* line 29, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 49, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder { .l-time-controller .l-time-range-inputs-holder {
height: 33px; height: 33px;
bottom: 46px; bottom: 46px;
padding-top: 5px; padding-top: 5px;
border-top: 1px solid rgba(102, 102, 102, 0.2); } border-top: 1px solid rgba(102, 102, 102, 0.2); }
/* line 34, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 54, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .type-icon { .l-time-controller .l-time-range-inputs-holder .type-icon {
font-size: 120%; font-size: 120%;
vertical-align: middle; } vertical-align: middle; }
/* line 38, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 58, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input, .l-time-controller .l-time-range-inputs-holder .l-time-range-input,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem {
margin-right: 5px; } margin-right: 5px; }
/* line 41, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 61, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl {
color: #999999; } color: #999999; }
/* line 44, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 64, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon,
.l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager,
.l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager {
font-size: 11px; font-size: 11px;
width: 11px; } width: 11px; }
/* line 51, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 71, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider, .l-time-controller .l-time-range-slider-holder {
.l-time-controller .l-time-range-ticks { height: 20px;
left: 125px; bottom: 23px; }
right: 125px; } /* line 74, ../../../../general/res/sass/controls/_time-controller.scss */
/* line 57, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .l-time-range-slider-holder .range-holder {
.l-time-controller .l-time-range-slider-holder { -moz-box-shadow: none;
height: 20px; -webkit-box-shadow: none;
bottom: 23px; } box-shadow: none;
/* line 60, ../../../../general/res/sass/controls/_time-controller.scss */ background: none;
.l-time-controller .l-time-range-slider-holder .range-holder { border: none; }
-moz-box-shadow: none; /* line 79, ../../../../general/res/sass/controls/_time-controller.scss */
-webkit-box-shadow: none; .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line {
box-shadow: none; -moz-transform: translateX(50%);
background: none; -ms-transform: translateX(50%);
border: none; } -webkit-transform: translateX(50%);
/* line 67, ../../../../general/res/sass/controls/_time-controller.scss */ transform: translateX(50%);
.l-time-controller .l-time-range-ticks-holder {
height: 20px; }
/* line 69, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks {
border-top: 1px solid rgba(0, 0, 0, 0.2); }
/* line 71, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick {
background-color: rgba(0, 0, 0, 0.2);
border: none;
height: 5px;
width: 1px;
margin-left: -1px;
position: absolute; }
/* line 78, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child {
margin-left: 0; }
/* line 81, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label {
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
color: #999999;
display: inline-block;
font-size: 0.7em;
position: absolute;
top: 8px;
white-space: nowrap;
z-index: 2; }
/* line 95, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob {
width: 5px; }
/* line 97, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob .range-value {
position: absolute; position: absolute;
height: 20px; top: 0;
line-height: 20px; right: 0;
white-space: nowrap; } bottom: 0px;
/* line 103, ../../../../general/res/sass/controls/_time-controller.scss */ left: auto;
.l-time-controller .knob:hover .range-value { width: 8px;
color: #0099cc; } height: auto;
/* line 108, ../../../../general/res/sass/controls/_time-controller.scss */ z-index: 2; }
/* line 89, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after {
background-color: #666;
content: "";
position: absolute; }
/* line 95, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before {
top: 0;
right: auto;
bottom: -10px;
left: 3px;
width: 2px; }
/* line 101, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
top: 50%;
right: 0;
bottom: auto;
left: 0;
width: auto;
height: 8px; }
/* line 3, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:after {
background-color: #0052b5; }
/* line 117, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-slider-holder:not(:active) .knob,
.l-time-controller .l-time-range-slider-holder:not(:active) .range {
-moz-transition-property: left, right;
-o-transition-property: left, right;
-webkit-transition-property: left, right;
transition-property: left, right;
-moz-transition-duration: 500ms;
-o-transition-duration: 500ms;
-webkit-transition-duration: 500ms;
transition-duration: 500ms;
-moz-transition-timing-function: ease-in-out;
-o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out; }
/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder {
height: 20px; }
/* line 128, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks {
border-top: 1px solid rgba(0, 0, 0, 0.2); }
/* line 130, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick {
background-color: rgba(0, 0, 0, 0.2);
border: none;
height: 5px;
width: 1px;
margin-left: -1px;
position: absolute; }
/* line 137, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child {
margin-left: 0; }
/* line 140, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label {
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
color: #999999;
display: inline-block;
font-size: 0.7em;
position: absolute;
top: 8px;
white-space: nowrap;
z-index: 2; }
/* line 154, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob {
z-index: 2; }
/* line 156, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob .range-value {
-moz-transition-property: visibility, opacity, background-color, border-color;
-o-transition-property: visibility, opacity, background-color, border-color;
-webkit-transition-property: visibility, opacity, background-color, border-color;
transition-property: visibility, opacity, background-color, border-color;
-moz-transition-duration: 0.25s;
-o-transition-duration: 0.25s;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
-moz-transition-timing-function: ease-in-out;
-o-transition-timing-function: ease-in-out;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out;
padding: 0 10px;
position: absolute;
height: 20px;
line-height: 20px;
white-space: nowrap; }
/* line 165, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob:hover .range-value {
color: rgba(0, 153, 204, 0.7); }
/* line 168, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-l {
margin-left: -10px; }
/* line 171, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-l .range-value { .l-time-controller .knob.knob-l .range-value {
text-align: right; text-align: right;
right: 10px; } right: 10px; }
/* line 115, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 176, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r {
margin-right: -10px; }
/* line 179, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r .range-value { .l-time-controller .knob.knob-r .range-value {
left: 10px; } left: 10px; }
/* line 3, ../../../../general/res/sass/controls/_time-controller.scss */
.l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:before, .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:after {
background-color: #0052b5; }
/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ /* line 193, ../../../../general/res/sass/controls/_time-controller.scss */
.s-time-range-val { .s-time-range-val {
-moz-border-radius: 4px; -moz-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
@ -2725,14 +2833,14 @@ textarea {
-webkit-transition: background, 0.25s; -webkit-transition: background, 0.25s;
transition: background, 0.25s; transition: background, 0.25s;
text-shadow: none; text-shadow: none;
margin: 0 0 2px 2px;
padding: 0 5px; padding: 0 5px;
overflow: hidden; overflow: hidden;
position: relative; } position: relative;
line-height: 22px; }
/* line 272, ../../../../general/res/sass/_mixins.scss */ /* line 272, ../../../../general/res/sass/_mixins.scss */
.select .icon { .select .icon {
color: #eee; } color: #eee; }
/* line 28, ../../../../general/res/sass/forms/_selects.scss */ /* line 31, ../../../../general/res/sass/forms/_selects.scss */
.select select { .select select {
-moz-appearance: none; -moz-appearance: none;
-webkit-appearance: none; -webkit-appearance: none;
@ -2745,10 +2853,10 @@ textarea {
border: none !important; border: none !important;
padding: 4px 25px 2px 0px; padding: 4px 25px 2px 0px;
width: 120%; } width: 120%; }
/* line 37, ../../../../general/res/sass/forms/_selects.scss */ /* line 40, ../../../../general/res/sass/forms/_selects.scss */
.select select option { .select select option {
margin: 5px 0; } margin: 5px 0; }
/* line 41, ../../../../general/res/sass/forms/_selects.scss */ /* line 44, ../../../../general/res/sass/forms/_selects.scss */
.select:after { .select:after {
text-shadow: none; text-shadow: none;
content: '\76'; content: '\76';
@ -2844,26 +2952,44 @@ textarea {
* this source code distribution or the Licensing information page available * this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/* line 23, ../../../../general/res/sass/forms/_datetime.scss */ /* line 29, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime span { .complex.datetime {
display: inline-block; /*
margin-right: 5px; } .field-hints,
/* line 36, ../../../../general/res/sass/forms/_datetime.scss */ .fields {
.complex.datetime .fields { }
margin-top: 3px 0;
padding: 3px 0; }
/* line 41, ../../../../general/res/sass/forms/_datetime.scss */ .field-hints {
.complex.datetime .date {
width: 85px; } }
/* line 44, ../../../../general/res/sass/forms/_datetime.scss */ */ }
.complex.datetime .date input { /* line 30, ../../../../general/res/sass/forms/_datetime.scss */
width: 80px; } .complex.datetime span {
/* line 50, ../../../../general/res/sass/forms/_datetime.scss */ display: inline-block;
.complex.datetime .time.sm { margin-right: 5px; }
width: 45px; } /* line 46, ../../../../general/res/sass/forms/_datetime.scss */
/* line 53, ../../../../general/res/sass/forms/_datetime.scss */ .complex.datetime .fields {
.complex.datetime .time.sm input { margin-top: 3px 0;
width: 40px; } padding: 3px 0; }
/* line 51, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .date {
width: 85px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .date input[type="text"] {
width: 80px; }
/* line 55, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.md {
width: 65px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.md input[type="text"] {
width: 60px; }
/* line 59, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.sm {
width: 45px; }
/* line 24, ../../../../general/res/sass/forms/_datetime.scss */
.complex.datetime .time.sm input[type="text"] {
width: 40px; }
/***************************************************************************** /*****************************************************************************
* Open MCT Web, Copyright (c) 2014-2015, United States Government * Open MCT Web, Copyright (c) 2014-2015, United States Government
@ -3267,26 +3393,26 @@ span.req {
min-height: 50px; min-height: 50px;
height: 30%; } height: 30%; }
/* line 230, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 228, ../../../../general/res/sass/user-environ/_layout.scss */
.pane { .pane {
position: absolute; } position: absolute; }
/* line 233, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 231, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .create-btn-holder { .pane.treeview.left .create-btn-holder {
bottom: auto; bottom: auto;
top: 0; top: 0;
height: 24px; } height: 24px; }
/* line 236, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 235, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .create-btn-holder .wrapper.menu-element { .pane.treeview.left .create-btn-holder .wrapper.menu-element {
position: absolute; position: absolute;
bottom: 5px; } bottom: 5px; }
/* line 241, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 240, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .search-holder { .pane.treeview.left .search-holder {
top: 34px; } top: 34px; }
/* line 244, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 243, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.treeview.left .tree-holder { .pane.treeview.left .tree-holder {
overflow: auto; overflow: auto;
top: 64px; } top: 64px; }
/* line 251, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 250, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager, .pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager,
.pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val,
.l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area,
@ -3298,34 +3424,46 @@ span.req {
.pane.items .object-browse-bar .s-menu-btn span.right.l-click-area, .pane.items .object-browse-bar .s-menu-btn span.right.l-click-area,
.s-menu-btn .pane.items .object-browse-bar span.right.l-click-area { .s-menu-btn .pane.items .object-browse-bar span.right.l-click-area {
top: auto; } top: auto; }
/* line 262, ../../../../general/res/sass/user-environ/_layout.scss */
.pane.items .object-holder {
top: 34px; }
/* line 266, ../../../../general/res/sass/user-environ/_layout.scss */
.pane .object-holder {
overflow: auto; }
/* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 261, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.horizontal > .pane { .split-layout.horizontal > .pane {
margin-top: 5px; } margin-top: 5px; }
/* line 277, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 264, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.horizontal > .pane:first-child { .split-layout.horizontal > .pane:first-child {
margin-top: 0; } margin-top: 0; }
/* line 284, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 271, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane { .split-layout.vertical > .pane {
margin-left: 5px; } margin-left: 5px; }
/* line 287, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 274, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane > .holder { .split-layout.vertical > .pane > .holder {
left: 0; left: 0;
right: 0; } right: 0; }
/* line 291, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 278, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane:first-child { .split-layout.vertical > .pane:first-child {
margin-left: 0; } margin-left: 0; }
/* line 293, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 280, ../../../../general/res/sass/user-environ/_layout.scss */
.split-layout.vertical > .pane:first-child .holder { .split-layout.vertical > .pane:first-child .holder {
right: 3px; } right: 3px; }
/* line 302, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 289, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder {
overflow: hidden;
top: 34px; }
/* line 292, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder > ng-include {
overflow: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: auto;
height: auto; }
/* line 297, ../../../../general/res/sass/user-environ/_layout.scss */
.object-holder.l-controls-visible.l-time-controller-visible > ng-include {
bottom: 88px; }
/* line 304, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .s-btn, .object-browse-bar .s-menu-btn, .object-browse-bar .s-btn, .object-browse-bar .s-menu-btn,
.top-bar .buttons-main .s-btn, .top-bar .buttons-main .s-btn,
.top-bar .buttons-main .s-menu-btn, .top-bar .buttons-main .s-menu-btn,
@ -3337,12 +3475,12 @@ span.req {
line-height: 25px; line-height: 25px;
vertical-align: top; } vertical-align: top; }
/* line 315, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 317, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .view-switcher, .object-browse-bar .view-switcher,
.top-bar .view-switcher { .top-bar .view-switcher {
margin-right: 20px; } margin-right: 20px; }
/* line 320, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 322, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar { .object-browse-bar {
overflow: visible; overflow: visible;
position: absolute; position: absolute;
@ -3358,31 +3496,27 @@ span.req {
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
white-space: nowrap; } white-space: nowrap; }
/* line 328, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .left { .object-browse-bar .left {
padding-right: 20px; } padding-right: 20px; }
/* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 332, ../../../../general/res/sass/user-environ/_layout.scss */
.object-browse-bar .left .l-back { .object-browse-bar .left .l-back {
display: inline-block; display: inline-block;
float: left; float: left;
margin-right: 10px; } margin-right: 10px; }
/* line 338, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 340, ../../../../general/res/sass/user-environ/_layout.scss */
.l-flex { .l-flex {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
flex-flow: row nowrap; flex-flow: row nowrap;
-webkit-flex-flow: row nowrap; } -webkit-flex-flow: row nowrap; }
/* line 341, ../../../../general/res/sass/user-environ/_layout.scss */ /* line 343, ../../../../general/res/sass/user-environ/_layout.scss */
.l-flex .left { .l-flex .left {
flex: 1 1 0; flex: 1 1 0;
-webkit-flex: 1 1 0; -webkit-flex: 1 1 0;
padding-right: 10px; } padding-right: 10px; }
/* line 348, ../../../../general/res/sass/user-environ/_layout.scss */
.vscroll {
overflow-y: auto; }
/***************************************************************************** /*****************************************************************************
* Open MCT Web, Copyright (c) 2014-2015, United States Government * Open MCT Web, Copyright (c) 2014-2015, United States Government
* as represented by the Administrator of the National Aeronautics and Space * as represented by the Administrator of the National Aeronautics and Space
@ -5328,9 +5462,6 @@ table {
.l-view-section.fixed { .l-view-section.fixed {
font-size: 0.8em; } font-size: 0.8em; }
/* line 13, ../../../../general/res/sass/_views.scss */ /* line 13, ../../../../general/res/sass/_views.scss */
.l-view-section.scrolling {
overflow: auto; }
/* line 16, ../../../../general/res/sass/_views.scss */
.l-view-section .controls, .l-view-section .controls,
.l-view-section label, .l-view-section label,
.l-view-section .inline-block { .l-view-section .inline-block {

View File

@ -25,13 +25,15 @@ $contrastInvokeMenuPercent: 40%;
$shdwBtns: none; $shdwBtns: none;
$sliderColorBase: $colorKey; $sliderColorBase: $colorKey;
$sliderColorRangeHolder: rgba(black, 0.07); $sliderColorRangeHolder: rgba(black, 0.07);
$sliderColorRange: rgba($sliderColorBase, 0.3); $sliderColorRange: rgba($sliderColorBase, 0.2);
$sliderColorRangeHov: rgba($sliderColorBase, 0.5); $sliderColorRangeHov: rgba($sliderColorBase, 0.4);
$sliderColorKnob: rgba($sliderColorBase, 0.6); $sliderColorKnob: rgba($sliderColorBase, 0.5);
$sliderColorKnobHov: $sliderColorBase; $sliderColorKnobHov: rgba($sliderColorBase, 0.7);
$sliderColorRangeValHovBg: $sliderColorRange; //rgba($sliderColorBase, 0.1); $sliderColorRangeValHovBg: $sliderColorRange; //rgba($sliderColorBase, 0.1);
$sliderColorRangeValHovFg: $colorBodyFg; $sliderColorRangeValHovFg: $colorBodyFg;
$sliderKnobW: 4px; $sliderKnobW: nth($ueTimeControlH,2)/2;
$timeControllerToiLineColor: $colorBodyFg;
$timeControllerToiLineColorHov: #0052b5;
// General Colors // General Colors
$colorAlt1: #ff6600; $colorAlt1: #ff6600;

View File

@ -29,7 +29,8 @@ define(
function () { function () {
"use strict"; "use strict";
var TOPIC_PREFIX = "mutation:"; var GENERAL_TOPIC = "mutation",
TOPIC_PREFIX = "mutation:";
// Utility function to overwrite a destination object // Utility function to overwrite a destination object
// with the contents of a source object. // with the contents of a source object.
@ -78,7 +79,11 @@ define(
* @implements {Capability} * @implements {Capability}
*/ */
function MutationCapability(topic, now, domainObject) { function MutationCapability(topic, now, domainObject) {
this.mutationTopic = topic(TOPIC_PREFIX + domainObject.getId()); this.generalMutationTopic =
topic(GENERAL_TOPIC);
this.specificMutationTopic =
topic(TOPIC_PREFIX + domainObject.getId());
this.now = now; this.now = now;
this.domainObject = domainObject; this.domainObject = domainObject;
} }
@ -115,11 +120,17 @@ define(
// mutator function has a temporary copy to work with. // mutator function has a temporary copy to work with.
var domainObject = this.domainObject, var domainObject = this.domainObject,
now = this.now, now = this.now,
t = this.mutationTopic, generalTopic = this.generalMutationTopic,
specificTopic = this.specificMutationTopic,
model = domainObject.getModel(), model = domainObject.getModel(),
clone = JSON.parse(JSON.stringify(model)), clone = JSON.parse(JSON.stringify(model)),
useTimestamp = arguments.length > 1; useTimestamp = arguments.length > 1;
function notifyListeners(model) {
generalTopic.notify(domainObject);
specificTopic.notify(model);
}
// Function to handle copying values to the actual // Function to handle copying values to the actual
function handleMutation(mutationResult) { function handleMutation(mutationResult) {
// If mutation result was undefined, just use // If mutation result was undefined, just use
@ -136,7 +147,7 @@ define(
copyValues(model, result); copyValues(model, result);
} }
model.modified = useTimestamp ? timestamp : now(); model.modified = useTimestamp ? timestamp : now();
t.notify(model); notifyListeners(model);
} }
// Report the result of the mutation // Report the result of the mutation
@ -158,7 +169,7 @@ define(
* @memberof platform/core.MutationCapability# * @memberof platform/core.MutationCapability#
*/ */
MutationCapability.prototype.listen = function (listener) { MutationCapability.prototype.listen = function (listener) {
return this.mutationTopic.listen(listener); return this.specificMutationTopic.listen(listener);
}; };
/** /**

View File

@ -61,7 +61,7 @@ define(
* @memberof platform/core.Throttle# * @memberof platform/core.Throttle#
*/ */
return function (fn, delay, apply) { return function (fn, delay, apply) {
var promise, // Promise for the result of throttled function var promise,
args = []; args = [];
function invoke() { function invoke() {

View File

@ -28,13 +28,8 @@ define(
var CONDUCTOR_HEIGHT = "100px", var CONDUCTOR_HEIGHT = "100px",
TEMPLATE = [ TEMPLATE = [
'<div style=', "<mct-include key=\"'time-conductor'\" ng-model='conductor'>",
'"position: absolute; bottom: 0; width: 100%; ', "</mct-include>"
'overflow: hidden; ',
'height: ' + CONDUCTOR_HEIGHT + '">',
"<mct-include key=\"'time-conductor'\" ng-model='ngModel'>",
"</mct-include>",
'</div>'
].join(''), ].join(''),
THROTTLE_MS = 200, THROTTLE_MS = 200,
GLOBAL_SHOWING = false; GLOBAL_SHOWING = false;
@ -166,8 +161,7 @@ define(
this.conductorElement = this.conductorElement =
this.$compile(TEMPLATE)(this.conductorScope()); this.$compile(TEMPLATE)(this.conductorScope());
this.element.after(this.conductorElement[0]); this.element.after(this.conductorElement[0]);
this.element.addClass('abs'); this.element.addClass('l-controls-visible l-time-controller-visible');
this.element.css('bottom', CONDUCTOR_HEIGHT);
GLOBAL_SHOWING = true; GLOBAL_SHOWING = true;
} }
}; };

View File

@ -19,7 +19,7 @@
this source code distribution or the Licensing information page available this source code distribution or the Licensing information page available
at runtime from the About dialog for additional information. at runtime from the About dialog for additional information.
--> -->
<div style="width: 100%; height: 100%;" <div class="l-layout"
ng-controller="LayoutController as controller"> ng-controller="LayoutController as controller">
<div class='frame child-frame panel abs' <div class='frame child-frame panel abs'

View File

@ -19,7 +19,7 @@
this source code distribution or the Licensing information page available this source code distribution or the Licensing information page available
at runtime from the About dialog for additional information. at runtime from the About dialog for additional information.
--> -->
<div class="abs l-iframe"> <div class="l-iframe abs">
<iframe ng-controller="EmbeddedPageController as ctl" <iframe ng-controller="EmbeddedPageController as ctl"
ng-src="{{ctl.trust(model.url)}}"> ng-src="{{ctl.trust(model.url)}}">
</iframe> </iframe>

View File

@ -45,7 +45,15 @@
"provides": "searchService", "provides": "searchService",
"type": "provider", "type": "provider",
"implementation": "services/GenericSearchProvider.js", "implementation": "services/GenericSearchProvider.js",
"depends": [ "$q", "$timeout", "objectService", "workerService", "GENERIC_SEARCH_ROOTS" ] "depends": [
"$q",
"$log",
"throttle",
"objectService",
"workerService",
"topic",
"GENERIC_SEARCH_ROOTS"
]
}, },
{ {
"provides": "searchService", "provides": "searchService",

View File

@ -31,6 +31,8 @@ define(
var DEFAULT_MAX_RESULTS = 100, var DEFAULT_MAX_RESULTS = 100,
DEFAULT_TIMEOUT = 1000, DEFAULT_TIMEOUT = 1000,
MAX_CONCURRENT_REQUESTS = 100,
FLUSH_INTERVAL = 0,
stopTime; stopTime;
/** /**
@ -39,7 +41,8 @@ define(
* *
* @constructor * @constructor
* @param $q Angular's $q, for promise consolidation. * @param $q Angular's $q, for promise consolidation.
* @param $timeout Angular's $timeout, for delayed function execution. * @param $log Anglar's $log, for logging.
* @param {Function} throttle a function to throttle function invocations
* @param {ObjectService} objectService The service from which * @param {ObjectService} objectService The service from which
* domain objects can be gotten. * domain objects can be gotten.
* @param {WorkerService} workerService The service which allows * @param {WorkerService} workerService The service which allows
@ -47,10 +50,16 @@ define(
* @param {GENERIC_SEARCH_ROOTS} ROOTS An array of the root * @param {GENERIC_SEARCH_ROOTS} ROOTS An array of the root
* domain objects' IDs. * domain objects' IDs.
*/ */
function GenericSearchProvider($q, $timeout, objectService, workerService, ROOTS) { function GenericSearchProvider($q, $log, throttle, objectService, workerService, topic, ROOTS) {
var indexed = {}, var indexed = {},
pendingIndex = {},
pendingQueries = {}, pendingQueries = {},
worker = workerService.run('genericSearchWorker'); toRequest = [],
worker = workerService.run('genericSearchWorker'),
mutationTopic = topic("mutation"),
indexingStarted = Date.now(),
pendingRequests = 0,
scheduleFlush;
this.worker = worker; this.worker = worker;
this.pendingQueries = pendingQueries; this.pendingQueries = pendingQueries;
@ -58,23 +67,31 @@ define(
// pendingQueries is a dictionary with the key value pairs st // pendingQueries is a dictionary with the key value pairs st
// the key is the timestamp and the value is the promise // the key is the timestamp and the value is the promise
// Tell the web worker to add a domain object's model to its list of items. function scheduleIdsForIndexing(ids) {
function indexItem(domainObject) { ids.forEach(function (id) {
var message; if (!indexed[id] && !pendingIndex[id]) {
indexed[id] = true;
// undefined check pendingIndex[id] = true;
if (domainObject && domainObject.getModel) { toRequest.push(id);
// Using model instead of whole domain object because }
// it's a JSON object. });
message = { scheduleFlush();
request: 'index',
model: domainObject.getModel(),
id: domainObject.getId()
};
worker.postMessage(message);
}
} }
// Tell the web worker to add a domain object's model to its list of items.
function indexItem(domainObject) {
var model = domainObject.getModel();
worker.postMessage({
request: 'index',
model: model,
id: domainObject.getId()
});
if (Array.isArray(model.composition)) {
scheduleIdsForIndexing(model.composition);
}
}
// Handles responses from the web worker. Namely, the results of // Handles responses from the web worker. Namely, the results of
// a search request. // a search request.
@ -111,82 +128,48 @@ define(
} }
} }
// Helper function for getItems(). Indexes the tree. function requestAndIndex(id) {
function indexItems(nodes) { pendingRequests += 1;
nodes.forEach(function (node) { objectService.getObjects([id]).then(function (objects) {
var id = node && node.getId && node.getId(); delete pendingIndex[id];
if (objects[id]) {
// If we have already indexed this item, stop here indexItem(objects[id]);
if (indexed[id]) {
return;
}
// Index each item with the web worker
indexItem(node);
indexed[id] = true;
// If this node has children, index those
if (node && node.hasCapability && node.hasCapability('composition')) {
// Make sure that this is async, so doesn't block up page
$timeout(function () {
// Get the children...
node.useCapability('composition').then(function (children) {
$timeout(function () {
// ... then index the children
if (children.constructor === Array) {
indexItems(children);
} else {
indexItems([children]);
}
}, 0);
});
}, 0);
}
// Watch for changes to this item, in case it gets new children
if (node && node.hasCapability && node.hasCapability('mutation')) {
node.getCapability('mutation').listen(function (listener) {
if (listener && listener.composition) {
// If the node was mutated to have children, get the child domain objects
objectService.getObjects(listener.composition).then(function (objectsById) {
var objects = [],
id;
// Get each of the domain objects in objectsById
for (id in objectsById) {
objects.push(objectsById[id]);
}
indexItems(objects);
});
}
});
} }
}, function () {
$log.warn("Failed to index domain object " + id);
}).then(function () {
pendingRequests -= 1;
scheduleFlush();
}); });
} }
// Converts the filetree into a list scheduleFlush = throttle(function flush() {
function getItems() { var batchSize =
// Aquire root objects Math.max(MAX_CONCURRENT_REQUESTS - pendingRequests, 0);
objectService.getObjects(ROOTS).then(function (objectsById) {
var objects = [],
id;
// Get each of the domain objects in objectsById if (toRequest.length + pendingRequests < 1) {
for (id in objectsById) { $log.info([
objects.push(objectsById[id]); 'GenericSearch finished indexing after ',
} ((Date.now() - indexingStarted) / 1000).toFixed(2),
' seconds.'
// Index all of the roots' descendents ].join(''));
indexItems(objects); } else {
}); toRequest.splice(-batchSize, batchSize)
} .forEach(requestAndIndex);
}
}, FLUSH_INTERVAL);
worker.onmessage = handleResponse; worker.onmessage = handleResponse;
// Index the tree's contents once at the beginning // Index the tree's contents once at the beginning
getItems(); scheduleIdsForIndexing(ROOTS);
// Re-index items when they are mutated
mutationTopic.listen(function (domainObject) {
var id = domainObject.getId();
indexed[id] = false;
scheduleIdsForIndexing([id]);
});
} }
/** /**

View File

@ -31,26 +31,56 @@ define(
describe("The generic search provider ", function () { describe("The generic search provider ", function () {
var mockQ, var mockQ,
mockTimeout, mockLog,
mockThrottle,
mockDeferred, mockDeferred,
mockObjectService, mockObjectService,
mockObjectPromise, mockObjectPromise,
mockChainedPromise,
mockDomainObjects, mockDomainObjects,
mockCapability, mockCapability,
mockCapabilityPromise, mockCapabilityPromise,
mockWorkerService, mockWorkerService,
mockWorker, mockWorker,
mockTopic,
mockMutationTopic,
mockRoots = ['root1', 'root2'], mockRoots = ['root1', 'root2'],
mockThrottledFn,
throttledCallCount,
provider, provider,
mockProviderResults; mockProviderResults;
beforeEach(function () { function resolveObjectPromises() {
var i; var i;
for (i = 0; i < mockObjectPromise.then.calls.length; i += 1) {
mockChainedPromise.then.calls[i].args[0](
mockObjectPromise.then.calls[i]
.args[0](mockDomainObjects)
);
}
}
function resolveThrottledFn() {
if (mockThrottledFn.calls.length > throttledCallCount) {
mockThrottle.mostRecentCall.args[0]();
throttledCallCount = mockThrottledFn.calls.length;
}
}
function resolveAsyncTasks() {
resolveThrottledFn();
resolveObjectPromises();
}
beforeEach(function () {
mockQ = jasmine.createSpyObj( mockQ = jasmine.createSpyObj(
"$q", "$q",
[ "defer" ] [ "defer" ]
); );
mockLog = jasmine.createSpyObj(
"$log",
[ "error", "warn", "info", "debug" ]
);
mockDeferred = jasmine.createSpyObj( mockDeferred = jasmine.createSpyObj(
"deferred", "deferred",
[ "resolve", "reject"] [ "resolve", "reject"]
@ -58,7 +88,9 @@ define(
mockDeferred.promise = "mock promise"; mockDeferred.promise = "mock promise";
mockQ.defer.andReturn(mockDeferred); mockQ.defer.andReturn(mockDeferred);
mockTimeout = jasmine.createSpy("$timeout"); mockThrottle = jasmine.createSpy("throttle");
mockThrottledFn = jasmine.createSpy("throttledFn");
throttledCallCount = 0;
mockObjectService = jasmine.createSpyObj( mockObjectService = jasmine.createSpyObj(
"objectService", "objectService",
@ -68,8 +100,13 @@ define(
"promise", "promise",
[ "then", "catch" ] [ "then", "catch" ]
); );
mockChainedPromise = jasmine.createSpyObj(
"chainedPromise",
[ "then" ]
);
mockObjectService.getObjects.andReturn(mockObjectPromise); mockObjectService.getObjects.andReturn(mockObjectPromise);
mockTopic = jasmine.createSpy('topic');
mockWorkerService = jasmine.createSpyObj( mockWorkerService = jasmine.createSpyObj(
"workerService", "workerService",
@ -87,59 +124,100 @@ define(
); );
mockDomainObjects = {}; mockDomainObjects = {};
for (i = 0; i < 4; i += 1) { ['a', 'root1', 'root2'].forEach(function (id) {
mockDomainObjects[i] = ( mockDomainObjects[id] = (
jasmine.createSpyObj( jasmine.createSpyObj(
"domainObject", "domainObject",
[ "getId", "getModel", "hasCapability", "getCapability", "useCapability" ] [
"getId",
"getModel",
"hasCapability",
"getCapability",
"useCapability"
]
) )
); );
mockDomainObjects[i].getId.andReturn(i); mockDomainObjects[id].getId.andReturn(id);
mockDomainObjects[i].getCapability.andReturn(mockCapability); mockDomainObjects[id].getCapability.andReturn(mockCapability);
mockDomainObjects[i].useCapability.andReturn(mockCapabilityPromise); mockDomainObjects[id].useCapability.andReturn(mockCapabilityPromise);
} mockDomainObjects[id].getModel.andReturn({});
// Give the first object children });
mockDomainObjects[0].hasCapability.andReturn(true);
mockCapability = jasmine.createSpyObj( mockCapability = jasmine.createSpyObj(
"capability", "capability",
[ "invoke", "listen" ] [ "invoke", "listen" ]
); );
mockCapability.invoke.andReturn(mockCapabilityPromise); mockCapability.invoke.andReturn(mockCapabilityPromise);
mockDomainObjects[0].getCapability.andReturn(mockCapability); mockDomainObjects.a.getCapability.andReturn(mockCapability);
mockMutationTopic = jasmine.createSpyObj(
'mutationTopic',
[ 'listen' ]
);
mockTopic.andCallFake(function (key) {
return key === 'mutation' && mockMutationTopic;
});
mockThrottle.andReturn(mockThrottledFn);
mockObjectPromise.then.andReturn(mockChainedPromise);
provider = new GenericSearchProvider(mockQ, mockTimeout, mockObjectService, mockWorkerService, mockRoots); provider = new GenericSearchProvider(
mockQ,
mockLog,
mockThrottle,
mockObjectService,
mockWorkerService,
mockTopic,
mockRoots
);
}); });
it("indexes tree on initialization", function () { it("indexes tree on initialization", function () {
var i;
resolveThrottledFn();
expect(mockObjectService.getObjects).toHaveBeenCalled(); expect(mockObjectService.getObjects).toHaveBeenCalled();
expect(mockObjectPromise.then).toHaveBeenCalled(); expect(mockObjectPromise.then).toHaveBeenCalled();
// Call through the root-getting part // Call through the root-getting part
mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); resolveObjectPromises();
// Call through the children-getting part mockRoots.forEach(function (id) {
mockTimeout.mostRecentCall.args[0](); expect(mockWorker.postMessage).toHaveBeenCalledWith({
// Array argument indicates multiple children request: 'index',
mockCapabilityPromise.then.mostRecentCall.args[0]([]); model: mockDomainObjects[id].getModel(),
mockTimeout.mostRecentCall.args[0](); id: id
// Call again, but for single child });
mockCapabilityPromise.then.mostRecentCall.args[0]({}); });
mockTimeout.mostRecentCall.args[0]();
expect(mockWorker.postMessage).toHaveBeenCalled();
}); });
it("when indexing, listens for composition changes", function () { it("indexes members of composition", function () {
var mockListener = {composition: {}}; mockDomainObjects.root1.getModel.andReturn({
composition: ['a']
});
// Call indexItems resolveAsyncTasks();
mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); resolveAsyncTasks();
// Call through listening for changes expect(mockWorker.postMessage).toHaveBeenCalledWith({
expect(mockCapability.listen).toHaveBeenCalled(); request: 'index',
mockCapability.listen.mostRecentCall.args[0](mockListener); model: mockDomainObjects.a.getModel(),
expect(mockObjectService.getObjects).toHaveBeenCalled(); id: 'a'
mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); });
});
it("listens for changes to mutation", function () {
expect(mockMutationTopic.listen)
.toHaveBeenCalledWith(jasmine.any(Function));
mockMutationTopic.listen.mostRecentCall
.args[0](mockDomainObjects.a);
resolveAsyncTasks();
expect(mockWorker.postMessage).toHaveBeenCalledWith({
request: 'index',
model: mockDomainObjects.a.getModel(),
id: mockDomainObjects.a.getId()
});
}); });
it("sends search queries to the worker", function () { it("sends search queries to the worker", function () {
@ -188,6 +266,28 @@ define(
expect(mockDeferred.resolve).toHaveBeenCalled(); expect(mockDeferred.resolve).toHaveBeenCalled();
}); });
it("warns when objects are unavailable", function () {
resolveAsyncTasks();
expect(mockLog.warn).not.toHaveBeenCalled();
mockChainedPromise.then.mostRecentCall.args[0](
mockObjectPromise.then.mostRecentCall.args[1]()
);
expect(mockLog.warn).toHaveBeenCalled();
});
it("throttles the loading of objects to index", function () {
expect(mockObjectService.getObjects).not.toHaveBeenCalled();
resolveThrottledFn();
expect(mockObjectService.getObjects).toHaveBeenCalled();
});
it("logs when all objects have been processed", function () {
expect(mockLog.info).not.toHaveBeenCalled();
resolveAsyncTasks();
resolveThrottledFn();
expect(mockLog.info).toHaveBeenCalled();
});
}); });
} }
); );