mirror of
https://github.com/nasa/openmct.git
synced 2025-04-16 15:29:20 +00:00
Merge branch 'open-master' into open1317limits
This commit is contained in:
commit
e17b6c5a92
@ -11,6 +11,7 @@
|
||||
"platform/containment",
|
||||
"platform/execution",
|
||||
"platform/telemetry",
|
||||
"platform/features/imagery",
|
||||
"platform/features/layout",
|
||||
"platform/features/pages",
|
||||
"platform/features/plot",
|
||||
@ -19,6 +20,7 @@
|
||||
"platform/persistence/queue",
|
||||
"platform/policy",
|
||||
|
||||
"example/imagery",
|
||||
"example/persistence",
|
||||
"example/generator"
|
||||
]
|
||||
|
42
example/imagery/bundle.json
Normal file
42
example/imagery/bundle.json
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "Imagery",
|
||||
"description": "Example of a component that produces image telemetry.",
|
||||
"extensions": {
|
||||
"components": [
|
||||
{
|
||||
"implementation": "ImageTelemetryProvider.js",
|
||||
"type": "provider",
|
||||
"provides": "telemetryService",
|
||||
"depends": [ "$q", "$timeout" ]
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"key": "imagery",
|
||||
"name": "Example Imagery",
|
||||
"glyph": "T",
|
||||
"features": "creation",
|
||||
"model": {
|
||||
"telemetry": {}
|
||||
},
|
||||
"telemetry": {
|
||||
"source": "imagery",
|
||||
"domains": [
|
||||
{
|
||||
"name": "Time",
|
||||
"key": "time",
|
||||
"format": "timestamp"
|
||||
}
|
||||
],
|
||||
"ranges": [
|
||||
{
|
||||
"name": "Image",
|
||||
"key": "url",
|
||||
"format": "imageUrl"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
66
example/imagery/src/ImageTelemetry.js
Normal file
66
example/imagery/src/ImageTelemetry.js
Normal file
@ -0,0 +1,66 @@
|
||||
/*****************************************************************************
|
||||
* 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,Promise*/
|
||||
|
||||
/**
|
||||
* Module defining ImageTelemetry. Created by vwoeltje on 06/22/15.
|
||||
*/
|
||||
define(
|
||||
[],
|
||||
function () {
|
||||
"use strict";
|
||||
|
||||
var firstObservedTime = Date.now(),
|
||||
images = [
|
||||
"http://www.nasa.gov/393811main_Palomar_ao_bouchez_10s_after_impact_4x3_946-710.png",
|
||||
"http://www.nasa.gov/393821main_Palomar_ao_bouchez_15s_after_impact_4x3_946-710.png",
|
||||
"http://www.nasa.gov/images/content/393801main_CfhtVeillet2_4x3_516-387.jpg",
|
||||
"http://www.nasa.gov/images/content/392790main_1024_768_GeminiNorth_NightBeforeImpact_946-710.jpg"
|
||||
].map(function (url, index) {
|
||||
return {
|
||||
timestamp: firstObservedTime + 1000 * index,
|
||||
url: url
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function ImageTelemetry() {
|
||||
return {
|
||||
getPointCount: function () {
|
||||
return Math.floor((Date.now() - firstObservedTime) / 1000);
|
||||
},
|
||||
getDomainValue: function (i, domain) {
|
||||
return images[i % images.length].timestamp;
|
||||
},
|
||||
getRangeValue: function (i, range) {
|
||||
return images[i % images.length].url;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return ImageTelemetry;
|
||||
}
|
||||
);
|
115
example/imagery/src/ImageTelemetryProvider.js
Normal file
115
example/imagery/src/ImageTelemetryProvider.js
Normal file
@ -0,0 +1,115 @@
|
||||
/*****************************************************************************
|
||||
* 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,Promise*/
|
||||
|
||||
/**
|
||||
* Module defining ImageTelemetryProvider. Created by vwoeltje on 06/22/15.
|
||||
*/
|
||||
define(
|
||||
["./ImageTelemetry"],
|
||||
function (ImageTelemetry) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function ImageTelemetryProvider($q, $timeout) {
|
||||
var subscriptions = [];
|
||||
|
||||
//
|
||||
function matchesSource(request) {
|
||||
return request.source === "imagery";
|
||||
}
|
||||
|
||||
// Used internally; this will be repacked by doPackage
|
||||
function generateData(request) {
|
||||
return {
|
||||
key: request.key,
|
||||
telemetry: new ImageTelemetry()
|
||||
};
|
||||
}
|
||||
|
||||
//
|
||||
function doPackage(results) {
|
||||
var packaged = {};
|
||||
results.forEach(function (result) {
|
||||
packaged[result.key] = result.telemetry;
|
||||
});
|
||||
// Format as expected (sources -> keys -> telemetry)
|
||||
return { imagery: packaged };
|
||||
}
|
||||
|
||||
function requestTelemetry(requests) {
|
||||
return $timeout(function () {
|
||||
return doPackage(requests.filter(matchesSource).map(generateData));
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function handleSubscriptions() {
|
||||
subscriptions.forEach(function (subscription) {
|
||||
var requests = subscription.requests;
|
||||
subscription.callback(doPackage(
|
||||
requests.filter(matchesSource).map(generateData)
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
function startGenerating() {
|
||||
$timeout(function () {
|
||||
handleSubscriptions();
|
||||
if (subscriptions.length > 0) {
|
||||
startGenerating();
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function subscribe(callback, requests) {
|
||||
var subscription = {
|
||||
callback: callback,
|
||||
requests: requests
|
||||
};
|
||||
|
||||
function unsubscribe() {
|
||||
subscriptions = subscriptions.filter(function (s) {
|
||||
return s !== subscription;
|
||||
});
|
||||
}
|
||||
|
||||
subscriptions.push(subscription);
|
||||
|
||||
if (subscriptions.length === 1) {
|
||||
startGenerating();
|
||||
}
|
||||
|
||||
return unsubscribe;
|
||||
}
|
||||
|
||||
return {
|
||||
requestTelemetry: requestTelemetry,
|
||||
subscribe: subscribe
|
||||
};
|
||||
}
|
||||
|
||||
return ImageTelemetryProvider;
|
||||
}
|
||||
);
|
@ -65,7 +65,7 @@
|
||||
"key": "grid-item",
|
||||
"templateUrl": "templates/items/grid-item.html",
|
||||
"uses": [ "type", "action" ],
|
||||
"gestures": [ "info", "menu" ]
|
||||
"gestures": [ "info","menu" ]
|
||||
},
|
||||
{
|
||||
"key": "object-header",
|
||||
|
@ -21,7 +21,7 @@
|
||||
-->
|
||||
<div class="menu-element wrapper" ng-controller="ClickAwayController as createController">
|
||||
<div class="btn btn-menu create-btn major" ng-click="createController.toggle()">
|
||||
<span class='ui-symbol' href=''>+</span> Create
|
||||
Create
|
||||
</div>
|
||||
<div class="menu dropdown super-menu" ng-show="createController.isActive()">
|
||||
<mct-representation mct-object="domainObject" key="'create-menu'">
|
||||
|
@ -24,7 +24,7 @@
|
||||
<ul>
|
||||
|
||||
<li ng-repeat="createAction in createActions">
|
||||
<a href=''
|
||||
<a
|
||||
ng-click="createAction.perform()"
|
||||
ng-mouseover="representation.activeMetadata = createAction.getMetadata()"
|
||||
ng-mouseleave="representation.activeMetadata = undefined">
|
||||
|
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<div class='right abs'>
|
||||
<div class='ui-symbol icon alert hidden' onclick="alert('Not yet functional. When this is visible, it means that this object needs to be updated. Clicking will allow that action via a dialog.');">!</div>
|
||||
<div class='ui-symbol icon profile' onclick="alert('Not yet functional. This will allow sharing and permissions to be controlled for this object.');">P</div>
|
||||
<div class='ui-symbol icon profile' title="Shared">P</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='item-main abs'>
|
||||
|
@ -68,6 +68,8 @@ define(
|
||||
* @returns {DomainObject} the domain object in an editable form
|
||||
*/
|
||||
getEditableObject: function (domainObject) {
|
||||
var type = domainObject.getCapability('type');
|
||||
|
||||
// Track the top-level domain object; this will have
|
||||
// some special behavior for its context capability.
|
||||
root = root || domainObject;
|
||||
@ -77,6 +79,11 @@ define(
|
||||
return domainObject;
|
||||
}
|
||||
|
||||
// Don't bother wrapping non-editable objects
|
||||
if (!type || !type.hasFeature('creation')) {
|
||||
return domainObject;
|
||||
}
|
||||
|
||||
// Provide an editable form of the object
|
||||
return new EditableDomainObject(
|
||||
domainObject,
|
||||
@ -142,4 +149,4 @@ define(
|
||||
|
||||
return EditableDomainObjectCache;
|
||||
}
|
||||
);
|
||||
);
|
||||
|
@ -31,7 +31,7 @@ define(
|
||||
mockQ,
|
||||
mockNavigationService,
|
||||
mockObject,
|
||||
mockCapability,
|
||||
mockType,
|
||||
controller;
|
||||
|
||||
beforeEach(function () {
|
||||
@ -48,15 +48,18 @@ define(
|
||||
"domainObject",
|
||||
[ "getId", "getModel", "getCapability", "hasCapability" ]
|
||||
);
|
||||
mockCapability = jasmine.createSpyObj(
|
||||
"capability",
|
||||
[ "invoke" ]
|
||||
mockType = jasmine.createSpyObj(
|
||||
"type",
|
||||
[ "hasFeature" ]
|
||||
);
|
||||
|
||||
mockNavigationService.getNavigation.andReturn(mockObject);
|
||||
mockObject.getId.andReturn("test");
|
||||
mockObject.getModel.andReturn({ name: "Test object" });
|
||||
mockObject.getCapability.andReturn(mockCapability);
|
||||
mockObject.getCapability.andCallFake(function (key) {
|
||||
return key === 'type' && mockType;
|
||||
});
|
||||
mockType.hasFeature.andReturn(true);
|
||||
|
||||
controller = new EditController(
|
||||
mockScope,
|
||||
@ -76,7 +79,7 @@ define(
|
||||
.toBeDefined();
|
||||
// Shouldn't have been the mock capability we provided
|
||||
expect(controller.navigatedObject().getCapability("editor"))
|
||||
.not.toEqual(mockCapability);
|
||||
.not.toEqual(mockType);
|
||||
});
|
||||
|
||||
it("detaches its navigation listener when destroyed", function () {
|
||||
@ -119,4 +122,4 @@ define(
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
);
|
||||
|
@ -32,6 +32,7 @@ define(
|
||||
completionCapability,
|
||||
object,
|
||||
mockQ,
|
||||
mockType,
|
||||
cache;
|
||||
|
||||
|
||||
@ -40,10 +41,13 @@ define(
|
||||
return {
|
||||
getId: function () { return id; },
|
||||
getModel: function () { return {}; },
|
||||
getCapability: function (name) {
|
||||
return completionCapability;
|
||||
getCapability: function (key) {
|
||||
return {
|
||||
editor: completionCapability,
|
||||
type: mockType
|
||||
}[key];
|
||||
},
|
||||
hasCapability: function (name) {
|
||||
hasCapability: function (key) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
@ -62,6 +66,8 @@ define(
|
||||
|
||||
beforeEach(function () {
|
||||
mockQ = jasmine.createSpyObj('$q', ['when', 'all']);
|
||||
mockType = jasmine.createSpyObj('type', ['hasFeature']);
|
||||
mockType.hasFeature.andReturn(true);
|
||||
captured = {};
|
||||
completionCapability = {
|
||||
save: function () {
|
||||
@ -152,6 +158,17 @@ define(
|
||||
.toBe(wrappedObject);
|
||||
});
|
||||
|
||||
it("does not wrap non-editable objects", function () {
|
||||
var domainObject = new TestObject('test-id');
|
||||
|
||||
mockType.hasFeature.andCallFake(function (key) {
|
||||
return key !== 'creation';
|
||||
});
|
||||
|
||||
expect(cache.getEditableObject(domainObject))
|
||||
.toBe(domainObject);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
@ -144,61 +144,88 @@
|
||||
.items-holder .item.grid-item.btn-menu .invoke-menu {
|
||||
color: #828282; }
|
||||
/* line 42, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .item-main .item-type {
|
||||
-moz-transition-property: "color";
|
||||
-o-transition-property: "color";
|
||||
-webkit-transition-property: "color";
|
||||
transition-property: "color";
|
||||
-moz-transition-duration: 200ms;
|
||||
-o-transition-duration: 200ms;
|
||||
-webkit-transition-duration: 200ms;
|
||||
transition-duration: 200ms;
|
||||
-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 46, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item:hover .item-main .item-type {
|
||||
color: #0099cc !important; }
|
||||
/* line 45, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item:hover .item-main .item-open {
|
||||
display: block; }
|
||||
/* line 49, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item:hover .item-main .item-open {
|
||||
opacity: 1; }
|
||||
/* line 54, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .contents {
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
bottom: 5px;
|
||||
left: 5px; }
|
||||
/* line 53, ../sass/items/_item.scss */
|
||||
/* line 58, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .bar.top-bar.abs {
|
||||
bottom: auto;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
z-index: 5; }
|
||||
/* line 58, ../sass/items/_item.scss */
|
||||
/* line 63, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .bar.top-bar.abs .left, .items-holder .item.grid-item .bar.top-bar.abs .right {
|
||||
width: auto; }
|
||||
/* line 60, ../sass/items/_item.scss */
|
||||
/* line 65, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .bar.top-bar.abs .left .icon, .items-holder .item.grid-item .bar.top-bar.abs .right .icon {
|
||||
margin-left: 5px; }
|
||||
/* line 65, ../sass/items/_item.scss */
|
||||
/* line 70, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .bar.bottom-bar.abs {
|
||||
top: auto;
|
||||
height: 40px;
|
||||
height: 30px;
|
||||
padding: 5px; }
|
||||
/* line 71, ../sass/items/_item.scss */
|
||||
/* line 76, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .item-main {
|
||||
line-height: 160px;
|
||||
z-index: 1; }
|
||||
/* line 79, ../sass/items/_item.scss */
|
||||
/* line 82, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .item-main .item-type {
|
||||
color: #737373;
|
||||
text-align: center;
|
||||
font-size: 7em;
|
||||
line-height: 180px; }
|
||||
/* line 85, ../sass/items/_item.scss */
|
||||
font-size: 6em; }
|
||||
/* line 88, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .item-main .item-open {
|
||||
display: none;
|
||||
font-size: 5em;
|
||||
line-height: 180px;
|
||||
-moz-transition-property: "opacity";
|
||||
-o-transition-property: "opacity";
|
||||
-webkit-transition-property: "opacity";
|
||||
transition-property: "opacity";
|
||||
-moz-transition-duration: 200ms;
|
||||
-o-transition-duration: 200ms;
|
||||
-webkit-transition-duration: 200ms;
|
||||
transition-duration: 200ms;
|
||||
-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;
|
||||
opacity: 0;
|
||||
font-size: 3em;
|
||||
left: auto;
|
||||
width: 30px; }
|
||||
/* line 93, ../sass/items/_item.scss */
|
||||
width: 50px;
|
||||
pointer-events: none;
|
||||
text-align: right; }
|
||||
/* line 100, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .title {
|
||||
text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px;
|
||||
color: #cccccc;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis; }
|
||||
/* line 101, ../sass/items/_item.scss */
|
||||
/* line 108, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item .details {
|
||||
font-size: 0.8em; }
|
||||
/* line 104, ../sass/items/_item.scss */
|
||||
/* line 111, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item.selected {
|
||||
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzBhYzJmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwYjRmMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
|
||||
background-size: 100%;
|
||||
@ -235,15 +262,15 @@
|
||||
/* line 160, ../sass/_mixins.scss */
|
||||
.items-holder .item.grid-item.selected.btn-menu .invoke-menu {
|
||||
color: #52d4ff; }
|
||||
/* line 109, ../sass/items/_item.scss */
|
||||
/* line 116, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item.selected .item-type, .items-holder .item.grid-item.selected .top-bar .icon:not(.alert) {
|
||||
color: #80dfff; }
|
||||
/* line 110, ../sass/items/_item.scss */
|
||||
/* line 117, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item.selected .item-main .item-open {
|
||||
color: #80dfff; }
|
||||
/* line 111, ../sass/items/_item.scss */
|
||||
/* line 118, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item.selected .title {
|
||||
color: white; }
|
||||
/* line 113, ../sass/items/_item.scss */
|
||||
/* line 120, ../sass/items/_item.scss */
|
||||
.items-holder .item.grid-item.selected:hover .item-main .item-type {
|
||||
color: white !important; }
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -114,7 +114,7 @@ ul.tree {
|
||||
-webkit-transition: background-color 0.25s;
|
||||
transition: background-color 0.25s;
|
||||
display: block;
|
||||
font-size: 0.80rem;
|
||||
font-size: 0.80em;
|
||||
height: 1.4rem;
|
||||
line-height: 1.4rem;
|
||||
margin-bottom: 3px;
|
||||
@ -123,6 +123,7 @@ ul.tree {
|
||||
ul.tree li span.tree-item .view-control {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
font-size: 0.75em;
|
||||
width: 10px; }
|
||||
/* line 44, ../sass/tree/_tree.scss */
|
||||
ul.tree li span.tree-item .view-control:hover {
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,55 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by IcoMoon</metadata>
|
||||
<defs>
|
||||
<font id="wtdsymbols-v2" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " d="" horiz-adv-x="512" />
|
||||
<glyph unicode="!" d="M832 960h-640c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v640c0 105.6-86.4 192-192 192zM640 128c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v64c0 35.2 28.8 64 64 64h128c35.2 0 64-28.8 64-64v-64zM696.062 768.494l-48.124-384.988c-4.366-34.928-36.738-63.506-71.938-63.506h-128c-35.2 0-67.572 28.578-71.938 63.506l-48.124 384.988c-4.366 34.928 20.862 63.506 56.062 63.506h256c35.2 0 60.428-28.578 56.062-63.506z" />
|
||||
<glyph unicode="*" d="M1004.166 619.542l-97.522 168.916-330.534-229.414 33.414 400.956h-195.048l33.414-400.956-330.534 229.414-97.522-168.916 363.944-171.542-363.944-171.542 97.522-168.916 330.534 229.414-33.414-400.956h195.048l-33.414 400.956 330.534-229.414 97.522 168.916-363.944 171.542z" />
|
||||
<glyph unicode="+" d="M630 0c0-35.2-28.8-64-64-64h-108c-35.2 0-64 28.8-64 64v896c0 35.2 28.8 64 64 64h108c35.2 0 64-28.8 64-64v-896zM64 320c-35.2 0-64 28.8-64 64v128c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64v-128c0-35.2-28.8-64-64-64h-896z" />
|
||||
<glyph unicode="." d="M704 384c0-70.4-57.6-128-128-128h-128c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128v-128zM1024 448l-192 320v-640zM0 448l192 320v-640z" />
|
||||
<glyph unicode="2" d="M1024 960l-640-640-384 384v-384l384-384 640 640z" />
|
||||
<glyph unicode="5" d="M512 960l512-448h-1024zM0 384l512-448 512 448z" />
|
||||
<glyph unicode="6" d="M1022.294 448c-1.746 7.196-3.476 14.452-5.186 21.786-20.036 85.992-53.302 208.976-98 306.538-22.42 48.938-45.298 86.556-69.946 115.006-48.454 55.93-98.176 67.67-131.356 67.67s-82.902-11.74-131.356-67.672c-24.648-28.45-47.528-66.068-69.948-115.006-44.696-97.558-77.962-220.544-98-306.538-21.646-92.898-46.444-175.138-71.71-237.836-16.308-40.46-30.222-66.358-40.6-82.604-10.378 16.246-24.292 42.142-40.6 82.604-23.272 57.75-46.144 132.088-66.524 216.052h-197.362c1.746-7.196 3.476-14.452 5.186-21.786 20.036-85.992 53.302-208.976 98-306.538 22.42-48.938 45.298-86.556 69.946-115.006 48.454-55.932 98.176-67.672 131.356-67.672s82.902 11.74 131.356 67.672c24.648 28.45 47.528 66.068 69.948 115.006 44.696 97.558 77.962 220.544 98 306.538 21.646 92.898 46.444 175.138 71.71 237.836 16.308 40.46 30.222 66.358 40.6 82.604 10.378-16.246 24.292-42.142 40.6-82.604 23.274-57.748 46.146-132.086 66.526-216.050h197.36z" />
|
||||
<glyph unicode="9" d="M448 640c0-70.4-57.6-128-128-128h-192c-70.4 0-128 57.6-128 128v192c0 70.4 57.6 128 128 128h192c70.4 0 128-57.6 128-128v-192zM1024 640c0-70.4-57.6-128-128-128h-192c-70.4 0-128 57.6-128 128v192c0 70.4 57.6 128 128 128h192c70.4 0 128-57.6 128-128v-192zM1024 64c0-70.4-57.6-128-128-128h-192c-70.4 0-128 57.6-128 128v192c0 70.4 57.6 128 128 128h192c70.4 0 128-57.6 128-128v-192zM448 64c0-70.4-57.6-128-128-128h-192c-70.4 0-128 57.6-128 128v192c0 70.4 57.6 128 128 128h192c70.4 0 128-57.6 128-128v-192z" />
|
||||
<glyph unicode="<" d="M256 448l512-512v1024z" />
|
||||
<glyph unicode=">" d="M768 448l-512 512v-1024z" />
|
||||
<glyph unicode="A" d="M450 448c0-124.264-100.736-225-225-225s-225 100.736-225 225c0 124.264 100.736 225 225 225s225-100.736 225-225zM320 576h512v-256h-512v256zM512 960v-256l256-256-256-256v-256l512 512z" />
|
||||
<glyph unicode="B" d="M192 960c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h64v1024h-64zM384 960h256v-1024h-256v1024zM832 960h-64v-704h256v512c0 105.6-86.4 192-192 192z" />
|
||||
<glyph unicode="C" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM768 384h-256c-35.2 0-64 28.8-64 64v384c0 35.2 28.8 64 64 64s64-28.8 64-64v-320h192c35.2 0 64-28.8 64-64s-28.8-64-64-64z" />
|
||||
<glyph unicode="D" d="M1024 768c0-106.039-229.23-192-512-192s-512 85.961-512 192c0 106.039 229.23 192 512 192s512-85.961 512-192zM512 448c-282.77 0-512 85.962-512 192v-512c0-106.038 229.23-192 512-192s512 85.962 512 192v512c0-106.038-229.23-192-512-192z" />
|
||||
<glyph unicode="F" d="M210 704h686c0 70.4-57.6 128-128 128h-320v64c0 35.2-28.8 64-64 64h-320c-35.2 0-64-28.8-64-64v-643l59.102 325.064c12.594 69.266 80.498 125.936 150.898 125.936zM914 640h-640c-70.4 0-138.304-56.67-150.898-125.936l-82.204-452.128c-12.594-69.266 34.702-125.936 105.102-125.936h640c70.4 0 138.304 56.67 150.898 125.936l82.206 452.13c12.592 69.264-34.704 125.934-105.104 125.934z" />
|
||||
<glyph unicode="G" d="M1024 384v128l-140.976 35.244c-8.784 32.922-21.818 64.106-38.504 92.918l74.774 124.622-90.51 90.51-124.622-74.774c-28.812 16.686-59.996 29.72-92.918 38.504l-35.244 140.976h-128l-35.244-140.976c-32.922-8.784-64.106-21.818-92.918-38.504l-124.622 74.774-90.51-90.51 74.774-124.622c-16.686-28.812-29.72-59.996-38.504-92.918l-140.976-35.244v-128l140.976-35.244c8.784-32.922 21.818-64.106 38.504-92.918l-74.774-124.622 90.51-90.51 124.622 74.774c28.812-16.686 59.996-29.72 92.918-38.504l35.244-140.976h128l35.244 140.976c32.922 8.784 64.106 21.818 92.918 38.504l124.622-74.774 90.51 90.51-74.774 124.622c16.686 28.812 29.72 59.996 38.504 92.918l140.976 35.244zM704 448c0-106.038-85.962-192-192-192s-192 85.962-192 192 85.962 192 192 192 192-85.962 192-192z" />
|
||||
<glyph unicode="L" d="M448 960h-256c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h256v1024zM832 960h-256v-577.664h448v385.664c0 105.6-86.4 192-192 192zM576-64h256c105.6 0 192 86.4 192 192v129.664h-448v-321.664z" />
|
||||
<glyph unicode="M" d="M1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216-232.168-46.6-316.784-131.216-131.216-197.118-131.216-316.784 46.6-232.168 131.216-316.784 197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="O" d="M704 640h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM256 640h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM832 576h-192c-34.908 0-67.716-9.448-96-25.904 57.278-33.324 96-95.404 96-166.096v-448h384v448c0 105.6-86.4 192-192 192zM384 576h-192c-105.6 0-192-86.4-192-192v-448h576v448c0 105.6-86.4 192-192 192z" />
|
||||
<glyph unicode="Q" d="M832 320c105.6 0 192 86.4 192 192v256c0 105.6-86.4 192-192 192v-320l-128 64-128-64v320h-384c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v192c0-105.6-86.4-192-192-192h-640v192h640z" />
|
||||
<glyph unicode="S" d="M256 704h384v-128h-384v128zM384 512h384v-128h-384v128zM320 320h384v-128h-384v128zM832 960h-128v-192h127.656c0.118-0.1 0.244-0.226 0.344-0.344v-639.312c-0.1-0.118-0.224-0.244-0.344-0.344h-127.656v-192h128c105.6 0 192 86.4 192 192v640c0 105.6-86.4 192-192 192zM320 128h-127.656c-0.118 0.1-0.244 0.224-0.344 0.344v639.312c0.1 0.118 0.224 0.244 0.344 0.344h127.656v192h-128c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h128v192z" />
|
||||
<glyph unicode="T" d="M720.648 384h-127.296c25.016-93.406 48.476-144.436 63.648-168.54 15.172 24.104 38.632 75.134 63.648 168.54zM796.086 207.228c-15.464-35.792-31.2-63.246-48.102-83.93-18.374-22.49-49.076-49.298-90.984-49.298s-72.61 26.808-90.984 49.298c-16.902 20.684-32.636 48.138-48.102 83.93-23.648 54.726-42.732 120.406-56.688 176.772h-457.25c31.496-252.562 246.93-448 508.024-448s476.528 195.438 508.024 448h-167.252c-13.954-56.364-33.038-122.044-56.686-176.772zM303.352 512h127.296c-25.016 93.406-48.476 144.436-63.648 168.538-15.172-24.102-38.632-75.132-63.648-168.538zM276.016 772.702c18.374 22.49 49.076 49.298 90.984 49.298s72.61-26.808 90.984-49.298c16.902-20.684 32.636-48.138 48.102-83.93 23.648-54.726 42.732-120.406 56.688-176.772h457.252c-31.498 252.562-246.932 448-508.026 448s-476.528-195.438-508.024-448h167.252c13.956 56.366 33.040 122.044 56.688 176.772 15.462 35.792 31.198 63.244 48.1 83.93z" />
|
||||
<glyph unicode="Z" d="M832 832h-192.36v64c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-64h-191.64c-105.6 0-192-72-192-160s0-160 0-160h64v-384c0-105.6 86.4-192 192-192h512c105.6 0 192 86.4 192 192v384h64c0 0 0 72 0 160s-86.4 160-192 160zM320 128h-128v384h128v-384zM576 128h-128v384h128v-384zM832 128h-128v384h128v-384z" />
|
||||
<glyph unicode="^" d="M512 704l-512-512h1024z" />
|
||||
<glyph unicode="_" d="M191.656 128c0.118-0.1 0.244-0.224 0.344-0.344v-191.656h192v192c0 105.6-86.4 192-192 192h-192v-192h191.656zM192 768.344c-0.1-0.118-0.224-0.244-0.344-0.344h-191.656v-192h192c105.6 0 192 86.4 192 192v192h-192v-191.656zM832 576h192v192h-191.656c-0.118 0.1-0.244 0.226-0.344 0.344v191.656h-192v-192c0-105.6 86.4-192 192-192zM832 127.656c0.1 0.118 0.224 0.244 0.344 0.344h191.656v192h-192c-105.6 0-192-86.4-192-192v-192h192v191.656z" />
|
||||
<glyph unicode="d" d="M683.52 140.714c-50.782-28.456-109.284-44.714-171.52-44.714-194.094 0-352 157.906-352 352s157.906 352 352 352 352-157.906 352-352c0-62.236-16.258-120.738-44.714-171.52l191.692-191.692c8.516 13.89 13.022 28.354 13.022 43.212v640c0 106.038-229.23 192-512 192s-512-85.962-512-192v-640c0-106.038 229.23-192 512-192 126.11 0 241.548 17.108 330.776 45.46l-159.256 159.254zM352 448c0-88.224 71.776-160 160-160s160 71.776 160 160-71.776 160-160 160-160-71.776-160-160z" />
|
||||
<glyph unicode="l" d="M0 448l256-256v512zM512 960l-256-256h512zM512-64l256 256h-512zM768 704v-512l256 256z" />
|
||||
<glyph unicode="o" d="M512-64l512 320v384l-512.020 320-511.98-320v-384l512-320zM512 768l358.4-224-358.4-224-358.4 224 358.4 224z" />
|
||||
<glyph unicode="p" d="M922.344 858.32c-38.612 38.596-81.306 69.232-120.304 86.324-68.848 30.25-104.77 9.078-120.194-6.344l-516.228-516.216-3.136-9.152-162.482-476.932 485.998 165.612 6.73 6.806 509.502 509.506c9.882 9.866 21.768 27.77 21.768 56.578 0.002 50.71-38.996 121.148-101.654 183.818zM237.982 104.34l-69.73 69.728 69.25 203.228 18.498 6.704h64v-128h128v-64l-6.846-18.506-203.172-69.154z" />
|
||||
<glyph unicode="t" d="M171.226 512c13.956 56.366 33.040 122.044 56.688 176.772 15.466 35.792 31.2 63.246 48.1 83.93 18.376 22.49 49.078 49.298 90.986 49.298s72.61-26.808 90.986-49.298c16.9-20.684 32.634-48.138 48.1-83.93 23.648-54.726 42.732-120.406 56.688-176.772h461.226v256c0 105.6-86.4 192-192 192h-640c-105.6 0-192-86.4-192-192v-256h171.226zM720.648 384h-127.296c25.016-93.406 48.476-144.436 63.648-168.54 15.172 24.104 38.632 75.134 63.648 168.54zM303.352 512h127.294c-25.016 93.406-48.476 144.436-63.648 168.538-15.17-24.102-38.628-75.132-63.646-168.538zM852.774 384c-13.956-56.364-33.040-122.044-56.688-176.772-15.464-35.792-31.2-63.246-48.102-83.93-18.374-22.49-49.076-49.298-90.984-49.298s-72.61 26.808-90.984 49.298c-16.902 20.684-32.636 48.138-48.102 83.93-23.648 54.726-42.732 120.406-56.688 176.772h-461.226v-256c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v256h-171.226z" />
|
||||
<glyph unicode="v" d="M512 192l512 512h-1024z" />
|
||||
<glyph unicode="x" d="M384 448l-365.332-365.332c-24.89-24.89-24.89-65.62 0-90.51l37.49-37.49c24.89-24.89 65.62-24.89 90.51 0 0 0 365.332 365.332 365.332 365.332l365.332-365.332c24.89-24.89 65.62-24.89 90.51 0l37.49 37.49c24.89 24.89 24.89 65.62 0 90.51l-365.332 365.332c0 0 365.332 365.332 365.332 365.332 24.89 24.89 24.89 65.62 0 90.51l-37.49 37.49c-24.89 24.89-65.62 24.89-90.51 0 0 0-365.332-365.332-365.332-365.332l-365.332 365.332c-24.89 24.89-65.62 24.89-90.51 0l-37.49-37.49c-24.89-24.89-24.89-65.62 0-90.51 0 0 365.332-365.332 365.332-365.332z" />
|
||||
<glyph unicode="y" d="M448 960v-128h320l-384-384 128-128 384 384v-320h128v576zM576 285.726v-157.382c-0.1-0.118-0.226-0.244-0.344-0.344h-383.312c-0.118 0.1-0.244 0.226-0.344 0.344v383.312c0.1 0.118 0.226 0.244 0.344 0.344h157.382l192 192h-349.726c-105.6 0-192-86.4-192-192v-384c0-105.6 86.4-192 192-192h384c105.6 0 192 86.4 192 192v349.726l-192-192z" />
|
||||
<glyph unicode="z" d="M192.344 128c-0.118 0.1-0.244 0.224-0.344 0.344v191.656h-192v-192c0-105.6 86.4-192 192-192h192v192h-191.656zM192 767.656c0.1 0.118 0.224 0.244 0.344 0.344h191.656v192h-192c-105.6 0-192-86.4-192-192v-192h192v191.656zM832 960h-192v-192h191.656c0.118-0.1 0.244-0.226 0.344-0.344v-191.656h192v192c0 105.6-86.4 192-192 192zM832 128.344c-0.1-0.118-0.224-0.244-0.344-0.344h-191.656v-192h192c105.6 0 192 86.4 192 192v192h-192v-191.656z" />
|
||||
<glyph unicode="{" d="M766-64l-256 512 256 512h-256l-256-512 256-512z" />
|
||||
<glyph unicode="}" d="M254 960l256-512-256-512h256l256 512-256 512z" />
|
||||
<glyph unicode="" d="M704 448l301.332-301.332c24.89-24.89 24.89-65.62 0-90.51l-101.49-101.49c-24.89-24.89-65.62-24.89-90.51 0l-301.332 301.332c0 0-301.332-301.332-301.332-301.332-24.89-24.89-65.62-24.89-90.51 0l-101.49 101.49c-24.89 24.89-24.89 65.62 0 90.51l301.332 301.332c0 0-301.332 301.332-301.332 301.332-24.89 24.89-24.89 65.62 0 90.51l101.49 101.49c24.89 24.89 65.62 24.89 90.51 0l301.332-301.332c0 0 301.332 301.332 301.332 301.332 24.89 24.89 65.62 24.89 90.51 0l101.49-101.49c24.89-24.89 24.89-65.62 0-90.51 0 0-301.332-301.332-301.332-301.332z" />
|
||||
<glyph unicode="" d="M960 640h-256v256c0 35.2-28.8 64-64 64h-256c-35.2 0-64-28.8-64-64v-256h-256c-35.2 0-64-28.8-64-64v-256c0-35.2 28.8-64 64-64h256v-256c0-35.2 28.8-64 64-64h256c35.2 0 64 28.8 64 64v256h256c35.2 0 64 28.8 64 64v256c0 35.2-28.8 64-64 64z" />
|
||||
<glyph unicode="" d="M640 576h-128v128h-128v-128h-128v-128h128v-128h128v128h128zM1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216c-119.666 0-232.168-46.6-316.784-131.216s-131.216-197.118-131.216-316.784c0-119.666 46.6-232.168 131.216-316.784s197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="" d="M256 576h384v-128h-384v128zM1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216c-119.666 0-232.168-46.6-316.784-131.216s-131.216-197.118-131.216-316.784c0-119.666 46.6-232.168 131.216-316.784s197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="" d="M210 704h686c0 70.4-57.6 128-128 128h-320v64c0 35.2-28.8 64-64 64h-320c-35.2 0-64-28.8-64-64v-643l59.102 325.064c12.594 69.266 80.498 125.936 150.898 125.936zM914 640h-640c-70.4 0-138.304-56.67-150.898-125.936l-82.204-452.128c-12.594-69.266 34.702-125.936 105.102-125.936h640c70.4 0 138.304 56.67 150.898 125.936l82.206 452.13c12.592 69.264-34.704 125.934-105.104 125.934zM734.248 192h-128l-23.386-128h-192l23.386 128h-128l35.078 192h128l23.386 128h192l-23.386-128h128l-35.078-192z" />
|
||||
<glyph unicode="" d="M1024 448l-448-512v1024zM448 960l-448-512 448-512z" />
|
||||
<glyph unicode="" d="M517.98 960l-511.98-320v-512c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v512l-512.020 320zM518 768l358.4-224-358.4-224-358.4 224 358.4 224z" />
|
||||
<glyph unicode="" d="M998.208 111.136l-422.702 739.728c-34.928 61.124-92.084 61.124-127.012 0l-422.702-739.728c-34.928-61.126-5.906-111.136 64.494-111.136h843.428c70.4 0 99.422 50.010 64.494 111.136zM512 128c-35.2 0-64 28.8-64 64s28.8 64 64 64 64-28.8 64-64c0-35.2-28.8-64-64-64zM627.448 577.242l-38.898-194.486c-6.902-34.516-41.35-62.756-76.55-62.756s-69.648 28.24-76.552 62.758l-38.898 194.486c-6.902 34.516 16.25 62.756 51.45 62.756h128c35.2 0 58.352-28.24 51.448-62.758z" />
|
||||
<glyph unicode="" d="M255.884 256c0.040 0.034 0.082 0.074 0.116 0.116v127.884c0 70.58 57.42 128 128 128h255.884c0.040 0.034 0.082 0.074 0.116 0.116v127.884c0 70.58 57.42 128 128 128h143.658c-93.832 117.038-237.98 192-399.658 192-282.77 0-512-229.23-512-512 0-67.904 13.25-132.704 37.256-192h218.628zM768.116 640c-0.040-0.034-0.082-0.074-0.116-0.116v-127.884c0-70.58-57.42-128-128-128h-255.884c-0.040-0.034-0.082-0.074-0.116-0.116v-127.884c0-70.58-57.42-128-128-128h-143.658c93.832-117.038 237.98-192 399.658-192 282.77 0 512 229.23 512 512 0 67.904-13.25 132.704-37.256 192h-218.628z" />
|
||||
</font></defs></svg>
|
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
Binary file not shown.
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.eot
Normal file → Executable file
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.eot
Normal file → Executable file
Binary file not shown.
332
platform/commonUI/general/res/fonts/symbols/wtdsymbols.svg
Normal file → Executable file
332
platform/commonUI/general/res/fonts/symbols/wtdsymbols.svg
Normal file → Executable file
@ -1,260 +1,78 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg>
|
||||
<metadata>
|
||||
Created by FontForge 20090622 at Tue Jun 9 23:00:40 2015
|
||||
By deploy user
|
||||
Copyright 2015 Adobe Systems Incorporated. All rights reserved.
|
||||
</metadata>
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by IcoMoon</metadata>
|
||||
<defs>
|
||||
<font id="WTDSymbols" horiz-adv-x="750" >
|
||||
<font-face
|
||||
font-family="WTDSymbols"
|
||||
font-weight="400"
|
||||
font-stretch="normal"
|
||||
units-per-em="1000"
|
||||
panose-1="0 0 0 0 0 0 0 0 0 0"
|
||||
ascent="750"
|
||||
descent="-250"
|
||||
x-height="579"
|
||||
cap-height="782"
|
||||
bbox="-33 -19 1143 787"
|
||||
underline-thickness="50"
|
||||
underline-position="-50"
|
||||
unicode-range="U+0020-U+2044"
|
||||
/>
|
||||
<missing-glyph horiz-adv-x="500"
|
||||
/>
|
||||
<glyph glyph-name=".notdef" horiz-adv-x="500"
|
||||
/>
|
||||
<glyph glyph-name=".null" horiz-adv-x="0"
|
||||
/>
|
||||
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="333"
|
||||
/>
|
||||
<glyph glyph-name="space" unicode=" " horiz-adv-x="500"
|
||||
/>
|
||||
<glyph glyph-name="exclam" unicode="!" horiz-adv-x="636"
|
||||
d="M476 730q65 0 112.5 -46.5t47.5 -111.5v-413q0 -66 -47 -112.5t-113 -46.5h-317q-66 0 -112.5 46.5t-46.5 112.5v413q0 65 46.5 111.5t112.5 46.5h317zM405 108v63q0 8 -6.5 13.5t-13.5 5.5h-135q-21 0 -21 -19v-63q0 -10 6.5 -16t14.5 -6h135q7 0 13.5 6.5t6.5 15.5z
|
||||
M389 277l28 355q0 19 -20 19h-163q-20 0 -20 -19l28 -355q0 -8 6.5 -13.5t13.5 -5.5h108q19 0 19 19z" />
|
||||
<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="709"
|
||||
d="M284 733h139l-23 -285l237 163l71 -122l-263 -123l263 -122l-71 -122l-237 162l23 -284h-139l23 288l-237 -166l-70 122l259 122l-259 123l70 122l237 -166z" />
|
||||
<glyph glyph-name="plus" unicode="+" horiz-adv-x="735"
|
||||
d="M696 476q16 0 27.5 -11.5t11.5 -27.5v-139q0 -16 -11.5 -27.5t-27.5 -11.5h-220v-220q0 -16 -11.5 -27.5t-27.5 -11.5h-139q-16 0 -27.5 11.5t-11.5 27.5v220h-220q-16 0 -27.5 11.5t-11.5 27.5v139q0 16 11.5 27.5t27.5 11.5h220v220q0 16 11.5 27.5t27.5 11.5h139
|
||||
q16 0 27.5 -11.5t11.5 -27.5v-220h220z" />
|
||||
<glyph glyph-name="period" unicode="." horiz-adv-x="1144"
|
||||
d="M282 63l-282 264l282 260v-524zM1143 327l-281 -264v524zM754 327q0 -77 -53.5 -130.5t-130.5 -53.5q-74 0 -126.5 54t-52.5 130q0 74 52.5 127t126.5 53q77 0 130.5 -52.5t53.5 -127.5z" />
|
||||
<glyph glyph-name="zero" unicode="0" horiz-adv-x="535"
|
||||
d="M266 624l266 -624h-532z" />
|
||||
<glyph glyph-name="one" unicode="1" horiz-adv-x="534"
|
||||
d="M267 0l-267 623h532z" />
|
||||
<glyph glyph-name="two" unicode="2" horiz-adv-x="686"
|
||||
d="M246 0l-246 246v291l246 -243l440 441v-295z" />
|
||||
<glyph glyph-name="three" unicode="3" horiz-adv-x="805"
|
||||
d="M340 730v-730h-340v730h340zM805 730v-304h-341v304h341zM805 304v-304h-341v304h341z" />
|
||||
<glyph glyph-name="four" unicode="4" horiz-adv-x="805"
|
||||
d="M341 732v-159h-341v159h341zM341 445v-158h-341v158h341zM341 159v-159h-341v159h341zM806 732v-159h-341v159h341zM806 445v-158h-341v158h341zM806 159v-159h-341v159h341z" />
|
||||
<glyph glyph-name="five" unicode="5" horiz-adv-x="807"
|
||||
d="M807 311l-403 -311l-404 311h807zM0 419l404 310l403 -310h-807z" />
|
||||
<glyph glyph-name="six" unicode="6" horiz-adv-x="806"
|
||||
d="M655 366h151l-5 -21q-44 -152 -89 -235q-27 -47 -56 -73q-41 -37 -89 -37q-50 0 -89 37q-31 28 -57 73q-46 84 -88 235q-52 186 -95 231q-40 -48 -87 -210h-151l4 18l1 1q43 153 88 236q26 45 57 73q41 36 88 36q49 0 90 -36q29 -26 56 -73q47 -83 88 -236
|
||||
q52 -180 95 -231q42 53 88 212z" />
|
||||
<glyph glyph-name="seven" unicode="7" horiz-adv-x="669"
|
||||
d="M193 787v-193h-193v193h193zM193 491v-195h-193v195h193zM193 193v-193h-193v193h193zM671 732v-82h-388v82h388zM671 435v-81h-388v81h388zM671 138v-82h-388v82h388z" />
|
||||
<glyph glyph-name="eight" unicode="8" horiz-adv-x="636"
|
||||
d="M625 735v-318h-625v318h625zM625 315v-315h-625v315h625z" />
|
||||
<glyph glyph-name="nine" unicode="9"
|
||||
d="M328 469q0 -20 -13.5 -33.5t-33.5 -13.5h-234q-20 0 -33.5 13.5t-13.5 33.5v234q0 19 14 33t33 14h234q20 0 33.5 -13.5t13.5 -33.5v-234zM750 469q0 -20 -13.5 -33.5t-33.5 -13.5h-234q-20 0 -33.5 13.5t-13.5 33.5v234q0 20 13.5 33.5t33.5 13.5h234q19 0 33 -14
|
||||
t14 -33v-234zM328 47q0 -20 -13.5 -33.5t-33.5 -13.5h-234q-19 0 -33 14t-14 33v234q0 20 13.5 33.5t33.5 13.5h234q20 0 33.5 -13.5t13.5 -33.5v-234zM750 47q0 -19 -14 -33t-33 -14h-234q-20 0 -33.5 13.5t-13.5 33.5v234q0 20 13.5 33.5t33.5 13.5h234q20 0 33.5 -13.5
|
||||
t13.5 -33.5v-234z" />
|
||||
<glyph glyph-name="colon" unicode=":" horiz-adv-x="625"
|
||||
d="M625 -19l-397 397l397 397v-794zM173 756v-735h-173v735h173z" />
|
||||
<glyph glyph-name="semicolon" unicode=";" horiz-adv-x="624"
|
||||
d="M0 774l396 -397l-396 -396v793zM451 0v734h173v-734h-173z" />
|
||||
<glyph glyph-name="less" unicode="<" horiz-adv-x="352"
|
||||
d="M352 0l-352 367l352 368v-735z" />
|
||||
<glyph glyph-name="greater" unicode=">" horiz-adv-x="353"
|
||||
d="M352 366l-352 -366v735z" />
|
||||
<glyph glyph-name="A" unicode="A" horiz-adv-x="723"
|
||||
d="M348 750q156 0 265.5 -109.5t109.5 -265.5q0 -155 -109.5 -265t-265.5 -110q-116 0 -210.5 65t-137.5 169h66q62 0 106 47h176l-141 -141h188l234 235l-234 234h-188l141 -140h-176q-43 48 -106 48h-66q43 104 137.5 168.5t210.5 64.5z" />
|
||||
<glyph glyph-name="C" unicode="C"
|
||||
d="M374 750q157 0 266.5 -109t109.5 -267q0 -155 -110 -264.5t-266 -109.5q-154 0 -264 110t-110 264q0 158 109.5 267t264.5 109zM558 281q7 14 3 29.5t-18 22.5l-131 68v260q0 36 -38 36q-16 0 -26 -9.5t-10 -26.5v-309l167 -85q9 -4 20 -4q22 0 33 18z" />
|
||||
<glyph glyph-name="D" unicode="D" horiz-adv-x="811"
|
||||
d="M719 418q76 26 92 40v-313q0 -56 -116 -93.5t-287 -37.5t-289.5 37.5t-118.5 93.5v313q57 -30 97 -40q131 -43 311 -43q182 0 311 43zM811 615q0 -55 -117 -95t-286 -40t-288.5 40t-119.5 95q0 52 119.5 89.5t288.5 37.5t286 -37.5t117 -89.5z" />
|
||||
<glyph glyph-name="E" unicode="E" horiz-adv-x="977"
|
||||
d="M488 727q162 0 294.5 -100.5t194.5 -263.5q-63 -162 -195 -262.5t-294 -100.5q-161 0 -293 100t-195 263q63 163 195 263.5t293 100.5zM488 170q80 0 136.5 56.5t56.5 136.5q0 81 -56.5 137.5t-136.5 56.5t-136.5 -56.5t-56.5 -137.5q0 -80 56.5 -136.5t136.5 -56.5z" />
|
||||
<glyph glyph-name="F" unicode="F" horiz-adv-x="849"
|
||||
d="M227 601q-41 0 -79 -26t-49 -61l-99 -317v255v95v164q0 20 14 34.5t34 14.5h234q22 0 37 -14.5t15 -34.5v-62h251q29 0 53 -13t35 -35h-446zM771 525q43 0 66 -25.5t12 -61.5l-111 -351q-11 -34 -49.5 -60.5t-80.5 -26.5h-486q-42 0 -65 26.5t-11 60.5l109 351
|
||||
q12 36 51.5 61.5t82.5 25.5h482z" />
|
||||
<glyph glyph-name="G" unicode="G" horiz-adv-x="749"
|
||||
d="M749 328l-102 -25q-8 -32 -28 -69l54 -91l-66 -65l-91 54q-38 -21 -68 -28l-27 -104h-93l-25 104q-32 8 -69 28l-91 -54l-65 65l54 91q-20 37 -28 69l-104 25v93l104 27q7 30 28 68l-54 91l65 66l91 -54q37 20 69 28l25 102h93l27 -102q30 -7 68 -28l91 54l66 -66
|
||||
l-54 -91q21 -38 28 -68l102 -27v-93zM515 374q0 58 -41.5 99.5t-99.5 41.5t-99 -41.5t-41 -99.5t41 -99t99 -41t99.5 41t41.5 99z" />
|
||||
<glyph glyph-name="H" unicode="H" horiz-adv-x="774"
|
||||
d="M0 0v700h180v-700h-180zM297 0v700h180v-700h-180zM594 192v508h180v-508h-180z" />
|
||||
<glyph glyph-name="I" unicode="I" horiz-adv-x="853"
|
||||
d="M635 582h-439l220 200zM663 209v349l190 -174zM169 558v-349l-191 175zM196 185h439l-219 -199z" />
|
||||
<glyph glyph-name="J" unicode="J" horiz-adv-x="500"
|
||||
/>
|
||||
<glyph glyph-name="L" unicode="L" horiz-adv-x="817"
|
||||
d="M0 575q0 67 47 113.5t114 46.5h303v-735h-303q-67 0 -114 47t-47 113v415zM652 735q66 0 113.5 -46.5t47.5 -113.5v-172h-271v332h110zM542 0v324h271v-164q0 -66 -47.5 -113t-113.5 -47h-110z" />
|
||||
<glyph glyph-name="M" unicode="M" horiz-adv-x="768"
|
||||
d="M560 299l199 -202l-98 -97l-200 202q-63 -44 -152 -44q-121 0 -207 86q-87 86 -87 209t87 211q82 86 207 86q124 0 210 -86q73 -73 84 -176.5t-43 -188.5zM421 340q49 51 49 114q0 66 -49 112q-46 49 -112 49q-63 0 -114 -49q-44 -44 -44 -112q0 -65 44 -114
|
||||
q53 -48 114 -48q64 0 112 48z" />
|
||||
<glyph glyph-name="N" unicode="N" horiz-adv-x="778"
|
||||
d="M0 588q117 7 212 -25t148 -80v-483q-53 49 -148 80.5t-212 24.5v483zM418 483q55 48 149.5 80t211.5 25v-483q-118 7 -212.5 -24.5t-148.5 -80.5v483zM105 735q92 -13 160 -67.5t107 -130.5q-107 84 -267 99v99z" />
|
||||
<glyph glyph-name="O" unicode="O" horiz-adv-x="849"
|
||||
d="M383 606q0 -56 -40.5 -97t-95.5 -41q-59 0 -100.5 40.5t-41.5 97.5q0 59 41.5 100t100.5 41q56 0 96 -41.5t40 -99.5zM247 445q101 0 172.5 -72t71.5 -175v-198h-491v198q0 103 72.5 175t174.5 72zM602 468q-56 0 -98 41t-42 97q0 58 41.5 99.5t98.5 41.5t98 -41.5
|
||||
t41 -99.5q0 -56 -41.5 -97t-97.5 -41zM602 445q102 0 174 -72.5t72 -174.5v-198h-287v198q0 60 -27.5 113t-75.5 87q65 47 144 47z" />
|
||||
<glyph glyph-name="P" unicode="P" horiz-adv-x="562"
|
||||
d="M441 590q0 -66 -47.5 -112t-112.5 -46q-67 0 -113.5 45.5t-46.5 112.5q0 65 47 112.5t113 47.5q64 0 112 -48t48 -112zM281 403q117 0 199 -82.5t82 -199.5v-121h-562v121q0 117 82.5 199.5t198.5 82.5z" />
|
||||
<glyph glyph-name="Q" unicode="Q" horiz-adv-x="808"
|
||||
d="M749 122q22 0 38.5 14t20.5 35v-119q0 -22 -15.5 -37t-36.5 -15h-347h-283q-52 0 -89 37t-37 89v483q0 52 37 89t89 37h336v-224l111 56l113 -56v224h70q21 0 36.5 -15.5t15.5 -37.5v-389q-4 -21 -20.5 -35t-38.5 -14h-565q-25 0 -43 -18t-18 -43t17.5 -43t43.5 -18h565z
|
||||
" />
|
||||
<glyph glyph-name="S" unicode="S" horiz-adv-x="815"
|
||||
d="M119 619v-505h100v-114h-153q-28 0 -47 19t-19 47v601q0 27 19 46.5t47 19.5h153v-114h-100zM744 733q27 0 46.5 -19.5t19.5 -46.5v-601q0 -28 -19.5 -47t-46.5 -19h-154v114h101v505h-101v114h154zM176 472v108h319v-108h-319zM277 313v107h356v-107h-356zM226 154v107
|
||||
h336v-107h-336z" />
|
||||
<glyph glyph-name="T" unicode="T" horiz-adv-x="743"
|
||||
d="M466 86q53 0 85 75.5t34 177.5h158q-12 -143 -118.5 -241t-251.5 -98q-147 0 -253 98t-120 241h346q2 -106 34 -179.5t86 -73.5zM466 148q-9 0 -21.5 20.5t-24.5 67t-14 103.5h119q-4 -58 -15.5 -104t-23 -66.5t-20.5 -20.5zM282 603q7 0 19 -20.5t24 -66.5t16 -103h-120
|
||||
q2 58 13 103.5t24 66t24 20.5zM282 666q-54 0 -85 -73.5t-39 -179.5h-158q14 142 120.5 240t252.5 98q145 0 251.5 -98t118.5 -240h-341q-6 105 -37 179t-83 74z" />
|
||||
<glyph glyph-name="U" unicode="U" horiz-adv-x="800"
|
||||
d="M800 733l-396 -397l-397 397h793zM69 0q-29 0 -49 20t-20 49v123q0 29 20 49t49 20h671q28 0 48.5 -20.5t20.5 -48.5v-123q0 -28 -20.5 -48.5t-48.5 -20.5h-671z" />
|
||||
<glyph glyph-name="V" unicode="V" horiz-adv-x="752"
|
||||
d="M376 752l376 -235v-376q0 -57 -41.5 -99t-99.5 -42h-470q-57 0 -99 42t-42 99v376zM376 611l-263 -165l263 -164l264 164z" />
|
||||
<glyph glyph-name="X" unicode="X" horiz-adv-x="753"
|
||||
d="M471 471v-95h-95v-94h-94v94h-94v95h94v94h94v-94h95zM753 94l-94 -94l-149 149q-81 -55 -181 -55q-137 0 -232 97q-97 95 -97 233q0 137 97 232q95 97 232 97q138 0 233 -97q97 -95 97 -232q0 -100 -55 -181zM329 235q79 0 134 55t55 134q0 78 -55 133t-134 55
|
||||
q-78 0 -133 -55t-55 -133q0 -79 55 -134t133 -55z" />
|
||||
<glyph glyph-name="Y" unicode="Y" horiz-adv-x="500"
|
||||
d="M471 471v-95h-283v95h283zM753 94l-94 -94l-149 149q-81 -55 -181 -55q-137 0 -232 97q-97 95 -97 233q0 137 97 232q95 97 232 97q138 0 233 -97q97 -95 97 -232q0 -100 -55 -181zM329 235q79 0 134 55t55 134q0 78 -55 133t-134 55q-78 0 -133 -55t-55 -133
|
||||
q0 -79 55 -134t133 -55z" />
|
||||
<glyph glyph-name="Z" unicode="Z" horiz-adv-x="808"
|
||||
d="M808 573v-129h-79v-371q0 -29 -22 -51t-52 -22h-502q-30 0 -51.5 21.5t-21.5 51.5v371h-80v129q0 30 21.5 51.5t51.5 21.5h247v41q0 20 15.5 34.5t37.5 14.5h62q22 0 37 -14.5t15 -34.5v-41h248q30 0 51.5 -21.5t21.5 -51.5zM172 88h83v356h-83v-356zM362 88h83v356h-83
|
||||
v-356zM635 88v356h-83v-356h83z" />
|
||||
<glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="742"
|
||||
d="M373 602l-238 -237l237 -237l236 238zM373 731q39 0 66 -28l270 -270q29 -28 29 -67.5t-29 -67.5l-271 -271q-26 -27 -66 -27q-41 0 -68 27l-271 271q-27 27 -27 67t27 67l271 271q28 28 69 28z" />
|
||||
<glyph glyph-name="backslash" unicode="\" horiz-adv-x="810"
|
||||
d="M806 0h-178l-228 265q-19 -6 -41 -6q-65 0 -111 47t-46 112q0 34 12 63l-214 251h178l139 -162q23 5 42 5q65 0 112 -46t47 -111q0 -30 -14 -65zM286 418q0 -31 21 -53t52 -22t53 22t22 53t-22 52t-53 21t-52 -21t-21 -52z" />
|
||||
<glyph glyph-name="bracketright" unicode="]" horiz-adv-x="807"
|
||||
d="M128 237l-61 61q-27 27 -27 67t27 67l271 271q28 28 69 28q39 0 67 -28l61 -60l-85 -85l-43 44l-238 -237l44 -44zM683 494l61 -61q28 -28 28 -67.5t-28 -67.5l-271 -271q-27 -27 -67 -27q-41 0 -68 27l-61 62l84 84l45 -45l237 238l-44 44zM697 731h149l-731 -731h-148z
|
||||
" />
|
||||
<glyph glyph-name="asciicircum" unicode="^" horiz-adv-x="818"
|
||||
d="M394 492l393 -377h-787z" />
|
||||
<glyph glyph-name="underscore" unicode="_" horiz-adv-x="807"
|
||||
d="M807 603v-122h-143q-48 0 -82 33.5t-34 81.5v136h122v-129h137zM138 732h121v-136q0 -48 -34 -81.5t-81 -33.5h-144v122h138v129zM0 129v122h144q47 0 81 -34.5t34 -81.5v-135h-121v129h-138zM670 0h-122v135q0 47 34.5 81.5t81.5 34.5h143v-122h-137v-129z" />
|
||||
<glyph glyph-name="a" unicode="a" horiz-adv-x="723"
|
||||
d="M407 691l316 -316l-316 -316h-180l224 226h-203q-24 -41 -66 -65.5t-92 -24.5h-90v361h90q51 0 93 -24t65 -66h203l-224 225h180z" />
|
||||
<glyph glyph-name="c" unicode="c" horiz-adv-x="800"
|
||||
d="M558 556q0 -9 -6.5 -15t-14.5 -6h-516q-9 0 -15 6t-6 15v149q0 9 6 15t15 6h516q8 0 14.5 -6t6.5 -15v-149zM779 458q9 0 15 -6t6 -15v-148q0 -9 -6 -15t-15 -6h-582q-8 0 -14 6t-6 15v148q0 9 6 15t14 6h582zM656 191q9 0 15 -6t6 -15v-149q0 -9 -6 -15t-15 -6h-549
|
||||
q-8 0 -14.5 6t-6.5 15v149q0 9 6.5 15t14.5 6h549z" />
|
||||
<glyph glyph-name="d" unicode="d" horiz-adv-x="741"
|
||||
d="M372 745q150 0 259.5 -36t109.5 -82v-505q0 -22 -15 -34l-152 152q42 69 33.5 153t-66.5 144q-70 71 -169 71q-101 0 -171 -71q-71 -70 -71 -170.5t71 -169.5q68 -71 171 -71q67 0 125 37l126 -129q-122 -34 -251 -34q-153 0 -262.5 36t-109.5 86v505q0 46 110 82t262 36
|
||||
zM277 459q45 38 95 38q48 0 91 -38q38 -45 38 -92q0 -48 -38 -93q-43 -38 -91 -38q-50 0 -95 38q-37 44 -37 93q0 48 37 92z" />
|
||||
<glyph glyph-name="e" unicode="e" horiz-adv-x="978"
|
||||
d="M489 728q162 0 294.5 -100.5t194.5 -264.5q-63 -162 -195 -262.5t-294 -100.5q-161 0 -293.5 100.5t-195.5 262.5q63 164 195.5 264.5t293.5 100.5zM489 100q105 0 194.5 60.5t140.5 162.5q-56 -50 -144.5 -78.5t-190.5 -28.5t-190.5 28.5t-144.5 78.5
|
||||
q51 -102 140 -162.5t195 -60.5z" />
|
||||
<glyph glyph-name="f" unicode="f" horiz-adv-x="855"
|
||||
d="M229 597q-42 0 -80.5 -25.5t-49.5 -61.5l-99 -314v255v95v163q0 22 15 37t36 15h233q21 0 35.5 -15t14.5 -37v-60h254q59 0 88 -52h-447zM774 523q43 0 64.5 -25t10.5 -61l-110 -350q-11 -36 -49.5 -61.5t-81.5 -25.5h-485q-43 0 -65 25.5t-10 61.5l111 350q11 36 49 61
|
||||
t80 25h486zM666 296q4 8 -0.5 14t-13.5 6h-115l36 117q3 8 -1 14t-13 6h-73q-21 0 -28 -20l-37 -117h-116q-20 0 -27 -20l-23 -73q-5 -21 15 -21h116l-37 -116q-2 -9 1.5 -15t12.5 -6h74q17 0 27 21l36 116h116q21 0 28 21z" />
|
||||
<glyph glyph-name="g" unicode="g" horiz-adv-x="812"
|
||||
d="M735 735q32 0 54.5 -23.5t22.5 -55.5v-578q0 -32 -22.5 -55t-54.5 -23h-398q-32 0 -69 18t-55 44l-188 242q-19 26 -19 62.5t19 63.5l188 242q18 26 55 44.5t69 18.5h398zM250 269q41 0 69.5 28.5t28.5 68.5q0 42 -28.5 70.5t-69.5 28.5t-69.5 -28.5t-28.5 -70.5
|
||||
q0 -41 28.5 -69t69.5 -28z" />
|
||||
<glyph glyph-name="i" unicode="i" horiz-adv-x="751"
|
||||
d="M375 751q156 0 266 -110t110 -266q0 -155 -110 -265t-266 -110q-155 0 -265 110t-110 265q0 156 110 266t265 110zM332 628v-67q0 -21 20 -21h67q20 0 20 21v67q0 21 -20 21h-67q-20 0 -20 -21zM549 150v69q0 8 -6 14t-14 6h-90v232q0 20 -20 20h-176q-21 0 -21 -20v-68
|
||||
q0 -8 6 -14t15 -6h89v-144h-89q-9 0 -15 -6t-6 -14v-69q0 -20 21 -20h286q8 0 14 5.5t6 14.5z" />
|
||||
<glyph glyph-name="j" unicode="j" horiz-adv-x="797"
|
||||
d="M123 367l-123 123v147l123 -123l220 221v-147zM123 0l-123 123v147l123 -123l220 220v-147zM485 537v71h313v-71h-313zM798 240v-71h-313v71h313z" />
|
||||
<glyph glyph-name="k" unicode="k" horiz-adv-x="798"
|
||||
d="M123 93l-123 123v147l123 -123l220 220v-147zM485 262v71h313v-71h-313z" />
|
||||
<glyph glyph-name="l" unicode="l" horiz-adv-x="617"
|
||||
d="M551 386h66v-386h-617v386h63v106q0 100 72 171.5t173 71.5q99 0 171 -71.5t72 -171.5v-106zM173 492v-106h267v106q0 56 -38.5 94.5t-93.5 38.5q-56 0 -95.5 -39t-39.5 -94z" />
|
||||
<glyph glyph-name="m" unicode="m" horiz-adv-x="751"
|
||||
d="M751 563h-751v188h751v-188zM751 282h-751v187h751v-187zM751 0h-751v188h751v-188z" />
|
||||
<glyph glyph-name="n" unicode="n" horiz-adv-x="738"
|
||||
d="M690 697q48 -50 48 -88q0 -18 -10 -26l-243 -243l-3 -3l-4 -2l-227 -78l77 228l2 4l3 3l242 243q22 19 57 3q29 -14 58 -41zM461 371l1 2l-3 50l-34 2h-9v10v28l-51 6l-2 -1l-32 -97l33 -33zM249 512l-134 -389l304 104v-215q-136 -8 -246.5 29t-172.5 93v561
|
||||
q48 -42 125 -75.5t172 -43.5l-24 -25l-17 -17z" />
|
||||
<glyph glyph-name="o" unicode="o" horiz-adv-x="717"
|
||||
d="M358 767l359 -192v-383l-359 -192l-358 192v383zM358 385l267 141l-267 143l-265 -143z" />
|
||||
<glyph glyph-name="p" unicode="p" horiz-adv-x="776"
|
||||
d="M695 695q33 -34 54.5 -74.5t21.5 -65.5q0 -7 -7.5 -22.5t-7.5 -23.5l-385 -385h-16l-355 -124l124 355v16l385 385q38 36 94 0q62 -31 92 -61zM185 124l139 61h15l-15 77h-47h-15v15v47l-77 15v-15l-61 -139z" />
|
||||
<glyph glyph-name="r" unicode="r" horiz-adv-x="920"
|
||||
d="M443 0q-129 0 -225.5 88.5t-108.5 217.5h-131l214 158l218 -158h-128q11 -58 56.5 -96t104.5 -38q58 0 103 37l16 13l122 -122l-18 -16q-93 -84 -223 -84zM734 272l-218 158h128q-11 58 -56.5 95t-105.5 37q-58 0 -103 -37l-16 -13l-121 122l17 16q96 85 223 85t225 -90
|
||||
q98 -89 109 -215h131z" />
|
||||
<glyph glyph-name="s" unicode="s" horiz-adv-x="911"
|
||||
d="M221 113v-113h-154q-28 0 -47.5 19t-19.5 45v605q0 29 19 48t48 19h154v-113h-102v-510h102zM841 736q27 0 47 -19.5t20 -47.5v-605q0 -26 -20 -45t-47 -19h-154v113h101v510h-101v113h154zM647 392q47 17 56 25v-193q0 -34 -71.5 -57t-176.5 -23t-178 23t-73 57v193
|
||||
q40 -20 61 -25q78 -27 190 -27q113 0 192 27zM703 513q0 33 -72 56t-176 23t-177.5 -23.5t-73.5 -55.5q0 -33 74 -58t177 -25q104 0 176 25t72 58z" />
|
||||
<glyph glyph-name="t" unicode="t" horiz-adv-x="819"
|
||||
d="M0 332h379q2 -101 39 -175t96 -74q62 0 97 72t42 177h166v-166q0 -46 -16.5 -80.5t-40.5 -50t-47.5 -24.5t-40.5 -10l-16 -1h-492q-46 0 -80.5 17t-50 41.5t-24.5 49t-10 41.5l-1 17v166zM444 332h139q-4 -57 -18 -102.5t-27.5 -65.5t-23.5 -20t-24 20t-28 65.5
|
||||
t-18 102.5zM374 404h-138q4 57 18 103.5t28 67.5t24 21q9 0 23 -21t27.5 -67.5t17.5 -103.5zM819 404h-375q-7 106 -42 180t-96 74q-62 0 -97.5 -74t-42.5 -180h-166v170q0 45 17 78t41.5 48.5t49 24t41.5 9.5l17 1h492q45 0 78 -16.5t48.5 -40.5t24 -47.5t9.5 -40.5l1 -16
|
||||
v-170z" />
|
||||
<glyph glyph-name="u" unicode="u" horiz-adv-x="809"
|
||||
d="M405 396l-397 -396h794zM740 732q29 0 49 -20t20 -49v-122q0 -29 -20 -49.5t-49 -20.5h-671q-29 0 -49 20.5t-20 49.5v122q0 29 20 49t49 20h671z" />
|
||||
<glyph glyph-name="v" unicode="v" horiz-adv-x="787"
|
||||
d="M394 202l-394 377h787z" />
|
||||
<glyph glyph-name="x" unicode="x" horiz-adv-x="726"
|
||||
d="M726 110q6 -6 6 -15t-6 -14l-72 -73q-6 -6 -15 -6t-14 6l-258 258l-257 -258q-6 -6 -15 -6t-15 6l-72 73q-6 5 -6 14t6 15l257 257l-257 258q-14 15 0 29l72 73q6 6 15 6t15 -6l257 -258l258 258q5 6 14 6t15 -6l72 -73q14 -14 0 -29l-257 -258z" />
|
||||
<glyph glyph-name="y" unicode="y" horiz-adv-x="806"
|
||||
d="M505 122v96l122 122v-225q0 -48 -34 -81.5t-82 -33.5h-396q-48 0 -81.5 33.5t-33.5 81.5v320q0 48 33.5 81.5t81.5 33.5h302l-122 -122h-173v-306h383zM349 730h457v-457h-91v275l-274 -275l-92 91l275 275h-275v91z" />
|
||||
<glyph glyph-name="z" unicode="z" horiz-adv-x="806"
|
||||
d="M548 610v122h143q48 0 81.5 -34t33.5 -82v-135h-121v129h-137zM122 481h-122v135q0 48 34 82t81 34h143v-122h-136v-129zM258 122v-122h-143q-47 0 -81 33.5t-34 81.5v136h122v-129h136zM685 251h121v-136q0 -48 -33.5 -81.5t-81.5 -33.5h-143v122h137v129z" />
|
||||
<glyph glyph-name="braceleft" unicode="{" horiz-adv-x="223"
|
||||
d="M223 525l-132 -263l132 -262h-92l-131 262l131 263h92z" />
|
||||
<glyph glyph-name="braceright" unicode="}" horiz-adv-x="223"
|
||||
d="M0 0l131 262l-131 262h91l132 -262l-132 -262h-91z" />
|
||||
<glyph glyph-name="asciitilde" unicode="~" horiz-adv-x="799"
|
||||
d="M658 363h141q-36 -150 -70 -227q-28 -58 -58 -88q-45 -46 -102 -48h-7q-55 0 -98 40q-34 31 -60 86q-35 72 -71 222q-35 137 -61 194q-9 18 -17.5 30t-12.5 15t-6 3q-3 0 -8 -4t-14.5 -18t-19.5 -35q-28 -62 -53 -170h-141q36 152 70 227q25 57 58 88q41 42 102 49
|
||||
q57 2 105 -40q33 -31 60 -86q34 -73 70 -222q36 -140 62 -194q9 -18 17.5 -30t12.5 -15.5t5 -3.5q15 0 42 57q30 66 54 170z" />
|
||||
<glyph glyph-name="Aring" unicode="Å" horiz-adv-x="500"
|
||||
/>
|
||||
<glyph glyph-name="agrave" unicode="à" horiz-adv-x="753"
|
||||
d="M752 141q0 -59 -41 -100t-100 -41h-470q-59 0 -100 41t-41 100v470q0 59 41 100t100 41h470q59 0 100 -41t41 -100v-470z" />
|
||||
<glyph glyph-name="aacute" unicode="á"
|
||||
d="M750 469l-375 -282l-375 282l375 281zM375 94l312 234l63 -47l-375 -281l-375 281l63 47z" />
|
||||
<glyph glyph-name="acircumflex" unicode="â"
|
||||
d="M47 328q-19 0 -33 14t-14 33t14 33t33 14h656q19 0 33 -14t14 -33t-14 -33t-33 -14h-656z" />
|
||||
<glyph glyph-name="atilde" unicode="ã" horiz-adv-x="749"
|
||||
d="M655 749q39 0 66.5 -27.5t27.5 -66.5v-561q0 -39 -27.5 -66.5t-66.5 -27.5h-561q-39 0 -66.5 27.5t-27.5 66.5v561q0 39 27.5 66.5t66.5 27.5h561zM655 94v561h-561v-561h561zM234 562l187 -188l94 94l94 -94v-234h-469v328z" />
|
||||
<glyph glyph-name="adieresis" unicode="ä"
|
||||
d="M0 750h750v-94v-47v-47h-94v47h-187v-515h140v-94h-468v94h140v515h-187v-47h-94v47v47v94z" />
|
||||
<glyph glyph-name="aring" unicode="å"
|
||||
d="M656 750q39 0 66.5 -27.5t27.5 -66.5v-562q0 -39 -27.5 -66.5t-66.5 -27.5h-562q-39 0 -66.5 27.5t-27.5 66.5v562q0 39 27.5 66.5t66.5 27.5h562zM94 656v-562h234v562h-234zM656 94v562h-234v-562h234z" />
|
||||
<glyph glyph-name="ccedilla" unicode="ç"
|
||||
d="M656 750q39 0 66.5 -27.5t27.5 -66.5v-562q0 -39 -27.5 -66.5t-66.5 -27.5h-562q-39 0 -66.5 27.5t-27.5 66.5v562q0 39 27.5 66.5t66.5 27.5h562zM656 94v562h-234v-562h234z" />
|
||||
<glyph glyph-name="egrave" unicode="è" horiz-adv-x="754"
|
||||
d="M703 703q47 -48 47 -116t-47 -117l-94 -94q-48 -48 -117 -48q-41 0 -84 24l-8 -9q28 -47 21.5 -104t-46.5 -97l-94 -94q-48 -48 -117 -48q-68 0 -116 48q-47 49 -47 117t47 116l94 94q47 47 115 47q47 0 85 -22l9 9q-28 47 -21.5 103.5t46.5 96.5l94 94q47 47 116 47
|
||||
q70 0 117 -47zM307 209q26 25 21 62l-41 -41q-14 -12 -30 -12q-15 0 -27 12q-12 10 -12 28t12 29l41 41h-14q-28 0 -48 -20l-94 -94q-20 -20 -20 -49t20 -49q21 -22 49 -22q29 0 50 22zM635 538q21 20 21 49t-21 49q-20 20 -49 20t-49 -20l-94 -94q-25 -24 -20 -62l41 41
|
||||
q11 12 28 12q18 0 29 -12q12 -12 12 -29q0 -14 -12 -28l-41 -41q3 0 7 -0.5t5 -0.5q29 0 50 22z" />
|
||||
<glyph glyph-name="eacute" unicode="é"
|
||||
d="M188 235h-160q-28 67 -28 140q0 156 110 265.5t265 109.5q88 0 164 -37t129 -103h-105q-39 0 -66.5 -27.5t-27.5 -66.5v-92v-2h-188q-39 0 -66 -27t-27 -67v-92v-1zM564 516h160q26 -62 26 -141q0 -155 -109.5 -265t-265.5 -110q-86 0 -162.5 38t-128.5 103h104
|
||||
q39 0 66 27.5t27 66.5v93h2h186q39 0 66.5 27.5t27.5 66.5v94h1z" />
|
||||
<glyph glyph-name="ecircumflex" unicode="ê" horiz-adv-x="751"
|
||||
d="M376 750v-375h375v-235q0 -58 -41.5 -99t-99.5 -41h-469q-58 0 -99 41t-41 99v469q0 58 41 99.5t99 41.5h235zM470 750l281 -281h-281v281z" />
|
||||
<glyph glyph-name="edieresis" unicode="ë" horiz-adv-x="748"
|
||||
d="M374 376l374 -375h-749zM374 750l374 -374h-749z" />
|
||||
<glyph glyph-name="igrave" unicode="ì" horiz-adv-x="748"
|
||||
d="M748 750l-375 -750l-374 750h749z" />
|
||||
<glyph glyph-name="iacute" unicode="í" horiz-adv-x="748"
|
||||
d="M-1 0l375 750l374 -750h-749z" />
|
||||
<glyph glyph-name="icircumflex" unicode="î" horiz-adv-x="748"
|
||||
d="M748 750l-375 -375l-374 375h749zM748 375l-375 -374l-374 374h749z" />
|
||||
<glyph glyph-name="idieresis" unicode="ï"
|
||||
d="M0 749l750 -375l-750 -374v749z" />
|
||||
<glyph glyph-name="ntilde" unicode="ñ"
|
||||
d="M283 751v-751h-188v751h188zM658 751v-751h-188v751h188z" />
|
||||
<glyph glyph-name="ograve" unicode="ò" horiz-adv-x="751"
|
||||
d="M469 563h-102q-74 0 -126.5 -52.5t-52.5 -126.5v-102h-94q-38 0 -66 27.5t-28 65.5v282q0 38 28 66t66 28h281q39 0 66.5 -28t27.5 -66v-94zM657 469q38 0 66 -27.5t28 -66.5v-281q0 -38 -28 -66t-66 -28h-282q-38 0 -65.5 28t-27.5 66v281q0 39 27.5 66.5t65.5 27.5h282
|
||||
z" />
|
||||
<glyph glyph-name="oacute" unicode="ó" horiz-adv-x="751"
|
||||
d="M216 375l187 -187h-309q-38 0 -66 27.5t-28 66.5v375q0 38 28 66t66 28h375q39 0 66.5 -28t27.5 -66v-309l-188 187zM751 422v-422h-422v94h234l-281 281l93 94l282 -281v234h94z" />
|
||||
<glyph glyph-name="ocircumflex" unicode="ô" horiz-adv-x="751"
|
||||
d="M610 751q58 0 99.5 -41.5t41.5 -99.5v-469q0 -59 -41.5 -100t-99.5 -41h-469q-59 0 -100 41t-41 100v469q0 58 41 99.5t100 41.5h469zM610 282v328h-328l93 -94l-234 -375l375 234z" />
|
||||
<glyph glyph-name="otilde" unicode="õ" horiz-adv-x="657"
|
||||
d="M329 657q136 0 232 -96t96 -232t-96 -232.5t-232 -96.5q-137 0 -233 96t-96 233q0 136 96.5 232t232.5 96zM329 329v246q-101 0 -175 -72zM422 704q0 -20 -13.5 -33.5t-33.5 -13.5h-46h-47q-20 0 -33.5 13.5t-13.5 33.5t13.5 33.5t33.5 13.5h93q20 0 33.5 -13.5
|
||||
t13.5 -33.5z" />
|
||||
<glyph glyph-name="odieresis" unicode="ö"
|
||||
d="M328 562v-375h-328v375h328zM750 562v-375h-328v375h328z" />
|
||||
<glyph glyph-name="fraction" unicode="⁄" horiz-adv-x="761"
|
||||
d="M380 751q158 0 269.5 -111.5t111.5 -268.5q0 -133 -82.5 -236.5t-209.5 -134.5l-4 491l-176 -490q-126 31 -207.5 134.5t-81.5 235.5q0 157 111.5 268.5t268.5 111.5zM168 488l55 20l-34 94l-56 -20zM410 530v100h-59v-100h59zM593 488l34 94l-55 20l-34 -94z" />
|
||||
<glyph glyph-name="H.002" horiz-adv-x="803"
|
||||
d="M0 0v726h187v-726h-187zM308 0v726h187v-726h-187zM616 199v527h187v-527h-187z" />
|
||||
<glyph glyph-name="H.001" horiz-adv-x="500"
|
||||
/>
|
||||
</font>
|
||||
</defs></svg>
|
||||
<font id="wtdsymbols" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " d="" horiz-adv-x="512" />
|
||||
<glyph unicode="!" d="M832 960h-640c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v640c0 105.6-86.4 192-192 192zM640 128c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v64c0 35.2 28.8 64 64 64h128c35.2 0 64-28.8 64-64v-64zM696.062 768.494l-48.124-384.988c-4.366-34.928-36.738-63.506-71.938-63.506h-128c-35.2 0-67.572 28.578-71.938 63.506l-48.124 384.988c-4.366 34.928 20.862 63.506 56.062 63.506h256c35.2 0 60.428-28.578 56.062-63.506z" />
|
||||
<glyph unicode="*" d="M1004.166 619.542l-97.522 168.916-330.534-229.414 33.414 400.956h-195.048l33.414-400.956-330.534 229.414-97.522-168.916 363.944-171.542-363.944-171.542 97.522-168.916 330.534 229.414-33.414-400.956h195.048l-33.414 400.956 330.534-229.414 97.522 168.916-363.944 171.542z" />
|
||||
<glyph unicode="+" d="M960 576h-330v320c0 35.2-28.8 64-64 64h-108c-35.2 0-64-28.8-64-64v-320h-330c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64h330v-320c0-35.2 28.8-64 64-64h108c35.2 0 64 28.8 64 64v320h330c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64z" />
|
||||
<glyph unicode="." d="M704 384c0-70.4-57.6-128-128-128h-128c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128v-128zM1024 448l-192 320v-640zM0 448l192 320v-640z" />
|
||||
<glyph unicode="2" d="M1024 960l-640-640-384 384v-384l384-384 640 640z" />
|
||||
<glyph unicode="3" d="M640 704h-256c-70.4 0-128-57.6-128-128v-256c0-70.4 57.6-128 128-128h256c70.4 0 128 57.6 128 128v256c0 70.4-57.6 128-128 128zM0 960h192v-192h-192v192zM256 960h192v-128h-192v128zM576 960h192v-128h-192v128zM256 64h192v-128h-192v128zM576 64h192v-128h-192v128zM0 384h128v-192h-128v192zM0 704h128v-192h-128v192zM896 384h128v-192h-128v192zM896 704h128v-192h-128v192zM832 960h192v-192h-192v192zM0 128h192v-192h-192v192zM832 128h192v-192h-192v192z" />
|
||||
<glyph unicode="5" d="M512 960l512-448h-1024zM0 384l512-448 512 448z" />
|
||||
<glyph unicode="6" d="M1022.294 448c-1.746 7.196-3.476 14.452-5.186 21.786-20.036 85.992-53.302 208.976-98 306.538-22.42 48.938-45.298 86.556-69.946 115.006-48.454 55.93-98.176 67.67-131.356 67.67s-82.902-11.74-131.356-67.672c-24.648-28.45-47.528-66.068-69.948-115.006-44.696-97.558-77.962-220.544-98-306.538-21.646-92.898-46.444-175.138-71.71-237.836-16.308-40.46-30.222-66.358-40.6-82.604-10.378 16.246-24.292 42.142-40.6 82.604-23.272 57.75-46.144 132.088-66.524 216.052h-197.362c1.746-7.196 3.476-14.452 5.186-21.786 20.036-85.992 53.302-208.976 98-306.538 22.42-48.938 45.298-86.556 69.946-115.006 48.454-55.932 98.176-67.672 131.356-67.672s82.902 11.74 131.356 67.672c24.648 28.45 47.528 66.068 69.948 115.006 44.696 97.558 77.962 220.544 98 306.538 21.646 92.898 46.444 175.138 71.71 237.836 16.308 40.46 30.222 66.358 40.6 82.604 10.378-16.246 24.292-42.142 40.6-82.604 23.274-57.748 46.146-132.086 66.526-216.050h197.36z" />
|
||||
<glyph unicode="<" d="M256 448l512-512v1024z" />
|
||||
<glyph unicode=">" d="M768 448l-512 512v-1024z" />
|
||||
<glyph unicode="A" d="M512 960c-214.866 0-398.786-132.372-474.744-320h90.744c56.86 0 107.938-24.724 143.094-64h240.906l-192 192h256l320-320-320-320h-256l192 192h-240.906c-35.156-39.276-86.234-64-143.094-64h-90.744c75.958-187.628 259.878-320 474.744-320 282.77 0 512 229.23 512 512s-229.23 512-512 512z" />
|
||||
<glyph unicode="C" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM768 384h-256c-35.2 0-64 28.8-64 64v384c0 35.2 28.8 64 64 64s64-28.8 64-64v-320h192c35.2 0 64-28.8 64-64s-28.8-64-64-64z" />
|
||||
<glyph unicode="D" d="M1024 768c0-106.039-229.23-192-512-192s-512 85.961-512 192c0 106.039 229.23 192 512 192s512-85.961 512-192zM512 448c-282.77 0-512 85.962-512 192v-512c0-106.038 229.23-192 512-192s512 85.962 512 192v512c0-106.038-229.23-192-512-192z" />
|
||||
<glyph unicode="F" d="M896 770h-384v64c0 70.4-57.6 128-128 128h-256c-70.4 0-128-57.6-128-128v-320c0 70.4 57.6 128 128 128h768c70.4 0 128-57.6 128-128v128c0 70.4-57.6 128-128 128zM896 514h-768c-70.4 0-128-57.6-128-128v-320c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v320c0 70.4-57.6 128-128 128z" />
|
||||
<glyph unicode="G" d="M1024 384v128l-140.976 35.244c-8.784 32.922-21.818 64.106-38.504 92.918l74.774 124.622-90.51 90.51-124.622-74.774c-28.812 16.686-59.996 29.72-92.918 38.504l-35.244 140.976h-128l-35.244-140.976c-32.922-8.784-64.106-21.818-92.918-38.504l-124.622 74.774-90.51-90.51 74.774-124.622c-16.686-28.812-29.72-59.996-38.504-92.918l-140.976-35.244v-128l140.976-35.244c8.784-32.922 21.818-64.106 38.504-92.918l-74.774-124.622 90.51-90.51 124.622 74.774c28.812-16.686 59.996-29.72 92.918-38.504l35.244-140.976h128l35.244 140.976c32.922 8.784 64.106 21.818 92.918 38.504l124.622-74.774 90.51 90.51-74.774 124.622c16.686 28.812 29.72 59.996 38.504 92.918l140.976 35.244zM704 448c0-106.038-85.962-192-192-192s-192 85.962-192 192 85.962 192 192 192 192-85.962 192-192z" />
|
||||
<glyph unicode="H" d="M192 960c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h64v1024h-64zM384 960h256v-1024h-256v1024zM832 960h-64v-704h256v512c0 105.6-86.4 192-192 192z" />
|
||||
<glyph unicode="I" d="M0 448l256-256v512zM512 960l-256-256h512zM512-64l256 256h-512zM768 704v-512l256 256z" />
|
||||
<glyph unicode="L" d="M448 960h-256c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h256v1024zM832 960h-256v-577.664h448v385.664c0 105.6-86.4 192-192 192zM576-64h256c105.6 0 192 86.4 192 192v129.664h-448v-321.664z" />
|
||||
<glyph unicode="M" d="M1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216-232.168-46.6-316.784-131.216-131.216-197.118-131.216-316.784 46.6-232.168 131.216-316.784 197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="O" d="M704 640h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM256 640h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM832 576h-192c-34.908 0-67.716-9.448-96-25.904 57.278-33.324 96-95.404 96-166.096v-448h384v448c0 105.6-86.4 192-192 192zM384 576h-192c-105.6 0-192-86.4-192-192v-448h576v448c0 105.6-86.4 192-192 192z" />
|
||||
<glyph unicode="P" d="M768 704c0-105.6-86.4-192-192-192h-128c-105.6 0-192 86.4-192 192v64c0 105.6 86.4 192 192 192h128c105.6 0 192-86.4 192-192v-64zM64-64v192c0 140.8 115.2 256 256 256h384c140.8 0 256-115.2 256-256v-192z" />
|
||||
<glyph unicode="Q" d="M832 320c105.6 0 192 86.4 192 192v256c0 105.6-86.4 192-192 192v-320l-128 64-128-64v320h-384c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v192c0-105.6-86.4-192-192-192h-640v192h640z" />
|
||||
<glyph unicode="S" d="M256 704h384v-128h-384v128zM384 512h384v-128h-384v128zM320 320h384v-128h-384v128zM832 960h-128v-192h127.6c0.2 0 0.2-0.2 0.4-0.4v-639.4c0-0.2-0.2-0.2-0.4-0.4h-127.6v-192h128c105.6 0 192 86.4 192 192v640.2c0 105.6-86.4 192-192 192zM192 128.4v639.2c0 0.2 0.2 0.2 0.4 0.4h127.6v192h-128c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h128v192h-127.6c-0.2 0-0.4 0.2-0.4 0.4z" />
|
||||
<glyph unicode="T" d="M718.6 384h-127.2c25-93.4 48.4-144.4 63.6-168.6 15.2 24.2 38.6 75.2 63.6 168.6zM794.2 207.2c-15.4-35.8-31.2-63.2-48.2-84-18.4-22.4-49-49.2-91-49.2s-72.6 26.8-91 49.2c-17 20.6-32.6 48.2-48.2 84-23.6 54.8-42.8 120.4-56.6 176.8h-457.2c31.4-252.6 247-448 508-448s476.6 195.4 508 448h-167.2c-14-56.4-33-122-56.6-176.8zM301.4 512h127.2c-25 93.4-48.4 144.4-63.6 168.6-15.2-24.2-38.6-75.2-63.6-168.6zM274 772.8c18.4 22.4 49 49.2 91 49.2s72.6-26.8 91-49.2c17-20.6 32.6-48.2 48.2-84 23.6-54.8 42.8-120.4 56.6-176.8h457.2c-31.4 252.6-246.8 448-508 448s-476.6-195.4-508-448h167.2c14 56.4 33 122 56.6 176.8 15.6 35.8 31.4 63.2 48.2 84z" />
|
||||
<glyph unicode="V" d="M511.98 960l-511.98-320v-512c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v512l-512.020 320zM512 768l358.4-224-358.4-224-358.4 224 358.4 224z" />
|
||||
<glyph unicode="X" d="M640 576h-128v128h-128v-128h-128v-128h128v-128h128v128h128zM1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216c-119.666 0-232.168-46.6-316.784-131.216s-131.216-197.118-131.216-316.784c0-119.666 46.6-232.168 131.216-316.784s197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="Y" d="M256 576h384v-128h-384v128zM1024 64l-201.662 201.662c47.922 72.498 73.662 157.434 73.662 246.338 0 119.666-46.6 232.168-131.216 316.784s-197.118 131.216-316.784 131.216c-119.666 0-232.168-46.6-316.784-131.216s-131.216-197.118-131.216-316.784c0-119.666 46.6-232.168 131.216-316.784s197.118-131.216 316.784-131.216c88.904 0 173.84 25.74 246.338 73.662l201.662-201.662 128 128zM448 256c-141.16 0-256 114.842-256 256 0 141.16 114.84 256 256 256 141.158 0 256-114.84 256-256 0-141.158-114.842-256-256-256z" />
|
||||
<glyph unicode="Z" d="M832 832h-192.36v64c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-64h-191.64c-105.6 0-192-72-192-160s0-160 0-160h64v-384c0-105.6 86.4-192 192-192h512c105.6 0 192 86.4 192 192v384h64c0 0 0 72 0 160s-86.4 160-192 160zM320 128h-128v384h128v-384zM576 128h-128v384h128v-384zM832 128h-128v384h128v-384z" />
|
||||
<glyph unicode="^" d="M512 704l-512-512h1024z" />
|
||||
<glyph unicode="_" d="M191.656 128c0.118-0.1 0.244-0.224 0.344-0.344v-191.656h192v192c0 105.6-86.4 192-192 192h-192v-192h191.656zM192 768.344c-0.1-0.118-0.224-0.244-0.344-0.344h-191.656v-192h192c105.6 0 192 86.4 192 192v192h-192v-191.656zM832 576h192v192h-191.656c-0.118 0.1-0.244 0.226-0.344 0.344v191.656h-192v-192c0-105.6 86.4-192 192-192zM832 127.656c0.1 0.118 0.224 0.244 0.344 0.344h191.656v192h-192c-105.6 0-192-86.4-192-192v-192h192v191.656z" />
|
||||
<glyph unicode="a" d="M576 896h-256l320-320h-290.256c-44.264 76.516-126.99 128-221.744 128h-128v-512h128c94.754 0 177.48 51.484 221.744 128h290.256l-320-320h256l448 448-448 448z" />
|
||||
<glyph unicode="d" d="M683.52 140.714c-50.782-28.456-109.284-44.714-171.52-44.714-194.094 0-352 157.906-352 352s157.906 352 352 352 352-157.906 352-352c0-62.236-16.258-120.738-44.714-171.52l191.692-191.692c8.516 13.89 13.022 28.354 13.022 43.212v640c0 106.038-229.23 192-512 192s-512-85.962-512-192v-640c0-106.038 229.23-192 512-192 126.11 0 241.548 17.108 330.776 45.46l-159.256 159.254zM352 448c0-88.224 71.776-160 160-160s160 71.776 160 160-71.776 160-160 160-160-71.776-160-160z" />
|
||||
<glyph unicode="f" d="M894 772h-384v64c0 70.4-57.6 128-128 128h-256c-70.4 0-128-57.6-128-128v-320c0 70.4 57.6 128 128 128h768c70.4 0 128-57.6 128-128v128c0 70.4-57.6 128-128 128zM894 516h-768c-70.4 0-128-57.6-128-128v-320c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v320c0 70.4-57.6 128-128 128zM702 196h-128v-128h-128v128h-128v128h128v128h128v-128h128v-128z" />
|
||||
<glyph unicode="l" d="M832 576h-32v96c0 158.8-129.2 288-288 288s-288-129.2-288-288v-96h-32c-70.4 0-128-57.6-128-128v-384c0-70.4 57.6-128 128-128h640c70.4 0 128 57.6 128 128v384c0 70.4-57.6 128-128 128zM416 672c0 53 43 96 96 96s96-43 96-96v-96h-192v96z" />
|
||||
<glyph unicode="m" d="M0 960h1024v-256h-1024v256zM0 576h1024v-256h-1024v256zM0 192h1024v-256h-1024v256z" />
|
||||
<glyph unicode="o" d="M512-64l512 320v384l-512.020 320-511.98-320v-384l512-320zM512 768l358.4-224-358.4-224-358.4 224 358.4 224z" />
|
||||
<glyph unicode="p" d="M922.344 858.32c-38.612 38.596-81.306 69.232-120.304 86.324-68.848 30.25-104.77 9.078-120.194-6.344l-516.228-516.216-3.136-9.152-162.482-476.932 485.998 165.612 6.73 6.806 509.502 509.506c9.882 9.866 21.768 27.77 21.768 56.578 0.002 50.71-38.996 121.148-101.654 183.818zM237.982 104.34l-69.73 69.728 69.25 203.228 18.498 6.704h64v-128h128v-64l-6.846-18.506-203.172-69.154z" />
|
||||
<glyph unicode="r" d="M1012.8 545.8v391.6l-127.6-127.4c-96.6 96.8-225.2 150-362 150s-265.2-53.2-362-150c-96.8-96.8-150-225.2-150-362s53.2-265.4 150-362c96.8-96.8 225.2-150 362-150s265.4 53.2 362 150l-136.6 136.6c-124.2-124.2-326.4-124.2-450.8 0-124.2 124.2-124.2 326.4 0 450.8 124.2 124.2 326.4 124.2 450.8 0l-127.4-127.4h391.6z" />
|
||||
<glyph unicode="s" d="M768 608c0-53.019-114.615-96-256-96s-256 42.981-256 96c0 53.019 114.615 96 256 96s256-42.981 256-96zM768 288v256c0-53-114.6-96-256-96s-256 43-256 96v-256c0-53 114.6-96 256-96s256 43 256 96zM832 960h-128v-192h127.6c0.2 0 0.2-0.2 0.4-0.4v-639.4c0-0.2-0.2-0.2-0.4-0.4h-127.6v-192h128c105.6 0 192 86.4 192 192v640.2c0 105.6-86.4 192-192 192zM192 128.4v639.4c0 0.2 0.2 0.2 0.4 0.4h127.6v191.8h-128c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h128v192h-127.6c-0.2 0-0.4 0.2-0.4 0.4z" />
|
||||
<glyph unicode="t" d="M169.2 512c14 56.4 33 122 56.6 176.8 15.4 35.8 31.2 63.2 48.2 84 18.4 22.4 49 49.2 91 49.2s72.6-26.8 91-49.2c17-20.6 32.6-48.2 48.2-84 23.6-54.8 42.8-120.4 56.6-176.8h461.2v256c0 105.6-86.4 192-192 192h-640c-105.6 0-192-86.4-192-192v-256h171.2zM718.6 384h-127.2c25-93.4 48.4-144.4 63.6-168.6 15.2 24.2 38.6 75.2 63.6 168.6zM301.4 512h127.2c-25 93.4-48.4 144.4-63.6 168.6-15.2-24.2-38.6-75.2-63.6-168.6zM850.8 384c-14-56.4-33-122-56.6-176.8-15.4-35.8-31.2-63.2-48.2-84-18.4-22.4-49-49.2-91-49.2s-72.6 26.8-91 49.2c-17 20.6-32.6 48.2-48.2 84-23.6 54.8-42.8 120.4-56.6 176.8h-461.2v-256c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v256h-171.2z" />
|
||||
<glyph unicode="v" d="M512 192l512 512h-1024z" />
|
||||
<glyph unicode="x" d="M384 448l-365.332-365.332c-24.89-24.89-24.89-65.62 0-90.51l37.49-37.49c24.89-24.89 65.62-24.89 90.51 0 0 0 365.332 365.332 365.332 365.332l365.332-365.332c24.89-24.89 65.62-24.89 90.51 0l37.49 37.49c24.89 24.89 24.89 65.62 0 90.51l-365.332 365.332c0 0 365.332 365.332 365.332 365.332 24.89 24.89 24.89 65.62 0 90.51l-37.49 37.49c-24.89 24.89-65.62 24.89-90.51 0 0 0-365.332-365.332-365.332-365.332l-365.332 365.332c-24.89 24.89-65.62 24.89-90.51 0l-37.49-37.49c-24.89-24.89-24.89-65.62 0-90.51 0 0 365.332-365.332 365.332-365.332z" />
|
||||
<glyph unicode="y" d="M448 960v-128h320l-384-384 128-128 384 384v-320h128v576zM576 285.726v-157.382c-0.1-0.118-0.226-0.244-0.344-0.344h-383.312c-0.118 0.1-0.244 0.226-0.344 0.344v383.312c0.1 0.118 0.226 0.244 0.344 0.344h157.382l192 192h-349.726c-105.6 0-192-86.4-192-192v-384c0-105.6 86.4-192 192-192h384c105.6 0 192 86.4 192 192v349.726l-192-192z" />
|
||||
<glyph unicode="z" d="M192.344 128c-0.118 0.1-0.244 0.224-0.344 0.344v191.656h-192v-192c0-105.6 86.4-192 192-192h192v192h-191.656zM192 767.656c0.1 0.118 0.224 0.244 0.344 0.344h191.656v192h-192c-105.6 0-192-86.4-192-192v-192h192v191.656zM832 960h-192v-192h191.656c0.118-0.1 0.244-0.226 0.344-0.344v-191.656h192v192c0 105.6-86.4 192-192 192zM832 128.344c-0.1-0.118-0.224-0.244-0.344-0.344h-191.656v-192h192c105.6 0 192 86.4 192 192v192h-192v-191.656z" />
|
||||
<glyph unicode="{" d="M510-64l-256 512 256 512h-256l-256-512 256-512z" horiz-adv-x="512" />
|
||||
<glyph unicode="}" d="M-2 960l256-512-256-512h256l256 512-256 512z" horiz-adv-x="512" />
|
||||
<glyph unicode="à" d="M1024 128c0-105.6-86.4-192-192-192h-640c-105.6 0-192 86.4-192 192v640c0 105.6 86.4 192 192 192h640c105.6 0 192-86.4 192-192v-640z" />
|
||||
<glyph unicode="á" d="M1024 576l-512 384-512-384 512-384zM512 64l-426.666 320-85.334-64 512-384 512 384-85.334 64z" />
|
||||
<glyph unicode="â" d="M64 384c-35.346 0-64 28.654-64 64s28.654 64 64 64h896c35.346 0 64-28.654 64-64s-28.654-64-64-64h-896z" />
|
||||
<glyph unicode="ã" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM896 64h-768v768h768v-768zM320 704l-128-128v-448h640v320l-128 128-128-128z" />
|
||||
<glyph unicode="ä" d="M0 960v-256h128v64h256v-704h-192v-128h640v128h-192v704h256v-64h128v256z" />
|
||||
<glyph unicode="å" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM128 832h320v-768h-320v768zM896 64h-320v768h320v-768z" />
|
||||
<glyph unicode="ç" d="M896 960h-768c-70.4 0-128-57.6-128-128v-768c0-70.4 57.6-128 128-128h768c70.4 0 128 57.6 128 128v768c0 70.4-57.6 128-128 128zM896 64h-320v768h320v-768z" />
|
||||
<glyph unicode="è" d="M958.4 894.4c-43.8 43.8-101 65.6-158.4 65.6s-114.6-21.8-158.4-65.6l-128-128c-74-74-85.4-187-34-273l-12.8-12.8c-35.4 20.8-75 31.4-114.8 31.4-57.4 0-114.6-21.8-158.4-65.6l-128-128c-87.4-87.4-87.4-229.4 0-316.8 43.8-43.8 101-65.6 158.4-65.6s114.6 21.8 158.4 65.6l128 128c74 74 85.4 187 34 273l12.8 12.8c35.2-21 75-31.6 114.6-31.6 57.4 0 114.6 21.8 158.4 65.6l128 128c87.6 87.6 87.6 229.6 0.2 317zM419.8 220.2l-128-128c-18-18.2-42.2-28.2-67.8-28.2s-49.8 10-67.8 28.2c-37.4 37.4-37.4 98.4 0 135.8l128 128c18.2 18.2 42.2 28.2 67.8 28.2 5.6 0 11.2-0.6 16.8-1.4l-55.6-55.6c-10.4-10.4-16.2-24.2-16.2-38.8s5.8-28.6 16.2-38.8c10.4-10.4 24.2-16.2 38.8-16.2s28.6 5.8 38.8 16.2l55.6 55.6c5.4-30.4-3.6-62.2-26.6-85zM867.8 668.2l-128-128c-18-18.2-42.2-28.2-67.8-28.2-5.6 0-11.2 0.6-16.8 1.4l55.6 55.6c10.4 10.4 16.2 24.2 16.2 38.8s-5.8 28.6-16.2 38.8c-10.4 10.4-24.2 16.2-38.8 16.2s-28.6-5.8-38.8-16.2l-55.6-55.6c-5.2 29.8 3.6 61.6 26.6 84.6l128 128c18 18.4 42.2 28.4 67.8 28.4s49.8-10 67.8-28.2c37.6-37.4 37.6-98.2 0-135.6z" />
|
||||
<glyph unicode="é" d="M255.884 256c0.040 0.034 0.082 0.074 0.116 0.116v127.884c0 70.58 57.42 128 128 128h255.884c0.040 0.034 0.082 0.074 0.116 0.116v127.884c0 70.58 57.42 128 128 128h143.658c-93.832 117.038-237.98 192-399.658 192-282.77 0-512-229.23-512-512 0-67.904 13.25-132.704 37.256-192h218.628zM768.116 640c-0.040-0.034-0.082-0.074-0.116-0.116v-127.884c0-70.58-57.42-128-128-128h-255.884c-0.040-0.034-0.082-0.074-0.116-0.116v-127.884c0-70.58-57.42-128-128-128h-143.658c93.832-117.038 237.98-192 399.658-192 282.77 0 512 229.23 512 512 0 67.904-13.25 132.704-37.256 192h-218.628z" />
|
||||
<glyph unicode="ê" d="M702 452c-105.6 0-192 86.4-192 192v320h-320c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v320h-320zM766 580h256l-384 384v-256c0-70.4 57.6-128 128-128z" />
|
||||
<glyph unicode="ë" d="M510 450l512-512h-1024zM510 962l512-512h-1024z" />
|
||||
<glyph unicode="ì" d="M512-64l-512 1024h1024z" />
|
||||
<glyph unicode="í" d="M512 960l512-1024h-1024z" />
|
||||
<glyph unicode="î" d="M510 450l-512 512h1024zM510-62l-512 512h1024z" />
|
||||
<glyph unicode="ï" d="M1024 448l-1024-512v1024z" />
|
||||
<glyph unicode="ñ" d="M126 962h256v-1024h-256v1024zM638 962h256v-1024h-256v1024z" />
|
||||
<glyph unicode="ò" d="M640 704v128c0 70.4-57.6 128-128 128h-384c-70.4 0-128-57.6-128-128v-384c0-70.4 57.6-128 128-128h128v139.6c0 134.8 109.6 244.4 244.4 244.4h139.6zM896 576h-384c-70.4 0-128-57.6-128-128v-384c0-70.4 57.6-128 128-128h384c70.4 0 128 57.6 128 128v384c0 70.4-57.6 128-128 128z" />
|
||||
<glyph unicode="ó" d="M293.4 448l218.6 218.6 256-256v421.4c0 70.4-57.6 128-128 128h-512c-70.4 0-128-57.6-128-128v-512c0-70.4 57.6-128 128-128h421.4l-256 256zM1024 512h-128v-320l-384 384-128-128 384-384h-320v-128h576z" />
|
||||
<glyph unicode="ô" d="M832 960h-640c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v640c0 105.6-86.4 192-192 192zM832 320l-128 128-512-320 320 512-128 128h448v-448z" />
|
||||
<glyph unicode="õ" d="M638 898c0 35.4-28.6 64-64 64h-128c-35.4 0-64-28.6-64-64s28.6-64 64-64h128c35.4 0 64 28.6 64 64zM510 834c-247.4 0-448-200.6-448-448s200.6-448 448-448 448 200.6 448 448-200.6 448-448 448zM510 386h-336c0 185.2 150.8 336 336 336v-336z" />
|
||||
<glyph unicode="ö" d="M448 578c0-35.2-28.8-64-64-64h-320c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-320zM1024 578c0-35.2-28.8-64-64-64h-320c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-320zM448 2c0-35.2-28.8-64-64-64h-320c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-320zM1024 2c0-35.2-28.8-64-64-64h-320c-35.2 0-64 28.8-64 64v320c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-320z" />
|
||||
<glyph unicode="" d="M998.208 111.136l-422.702 739.728c-34.928 61.124-92.084 61.124-127.012 0l-422.702-739.728c-34.928-61.126-5.906-111.136 64.494-111.136h843.428c70.4 0 99.422 50.010 64.494 111.136zM512 128c-35.2 0-64 28.8-64 64s28.8 64 64 64 64-28.8 64-64c0-35.2-28.8-64-64-64zM627.448 577.242l-38.898-194.486c-6.902-34.516-41.35-62.756-76.55-62.756s-69.648 28.24-76.552 62.758l-38.898 194.486c-6.902 34.516 16.25 62.756 51.45 62.756h128c35.2 0 58.352-28.24 51.448-62.758z" />
|
||||
</font></defs></svg>
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 20 KiB |
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.ttf
Normal file → Executable file
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.ttf
Normal file → Executable file
Binary file not shown.
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.woff
Normal file → Executable file
BIN
platform/commonUI/general/res/fonts/symbols/wtdsymbols.woff
Normal file → Executable file
Binary file not shown.
@ -24,18 +24,22 @@
|
||||
$colMargin: $interiorMargin;
|
||||
$colW: 225px;
|
||||
$valW: 70px;
|
||||
$valPad: 2px;
|
||||
$valPad: 5px;
|
||||
$rowH: 15px;
|
||||
font-size: 0.75rem;
|
||||
.l-autoflow-header {
|
||||
bottom: auto;
|
||||
height: $headerH;
|
||||
line-height: $headerH;
|
||||
min-width: $colW;
|
||||
span {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.l-filter {
|
||||
margin-left: $interiorMargin;
|
||||
input.t-filter-input {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ $ltGamma: 20%;
|
||||
$btnFontSizeToH: 0.45;
|
||||
|
||||
// User Environment
|
||||
$ueTopBarH: 30px; // Change to 45px when breadcrumb is enabled
|
||||
$ueTopBarH: 24px; // Change to when breadcrumb is enabled
|
||||
$ueTopBarEditH: 30px;
|
||||
$ueTopBarBtnH: 35px;
|
||||
$ueFooterH: 20px;
|
||||
@ -96,7 +96,7 @@ $ovrFooterH: 40px;
|
||||
//Items
|
||||
$ueBrowseGridItemLg: 200px;
|
||||
$ueBrowseGridItemTopBarH: 20px;
|
||||
$ueBrowseGridItemBottomBarH: 40px;
|
||||
$ueBrowseGridItemBottomBarH: 30px;
|
||||
$colorItemBase: lighten($colorBodyBg, 5%);
|
||||
$colorItemFg: lighten($colorItemBase, 20%);
|
||||
$colorItemSelected: $colorKey;
|
||||
@ -157,4 +157,9 @@ $bubbleMaxW: 300px;
|
||||
|
||||
|
||||
// Timing
|
||||
$controlFadeMs: 100ms;
|
||||
$controlFadeMs: 100ms;
|
||||
|
||||
// Forms
|
||||
$reqSymbolW: 15px;
|
||||
$reqSymbolM: $interiorMargin * 2;
|
||||
$reqSymbolFontSize: 0.7em;
|
@ -43,16 +43,26 @@ a.disabled {
|
||||
@include test();
|
||||
}
|
||||
|
||||
@mixin customKeyframes($animName: pulse, $op0: 0.5) {
|
||||
@include keyframes($animName) {
|
||||
0% { opacity: $op0; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
@include animation-name(pulse, 0.2);
|
||||
}
|
||||
|
||||
@include keyframes(pulse) {
|
||||
0% { opacity: 0.5; }
|
||||
0% { opacity: 0.2; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
|
||||
@mixin pulse($dur: 500ms) {
|
||||
|
||||
@mixin pulse($dur: 500ms, $iteration: infinite) {
|
||||
//@include customKeyframes(pulse, 0.2);
|
||||
@include animation-name(pulse);
|
||||
@include animation-duration($dur);
|
||||
@include animation-direction(alternate);
|
||||
@include animation-iteration-count(infinite);
|
||||
@include animation-iteration-count($iteration);
|
||||
@include animation-timing-function(ease-in-out);
|
||||
}
|
||||
|
||||
|
@ -1,38 +1,44 @@
|
||||
/*****************************************************************************
|
||||
* 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.
|
||||
*****************************************************************************/
|
||||
* 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.
|
||||
*****************************************************************************/
|
||||
.t-fixed-position {
|
||||
&.l-fixed-position {
|
||||
// @include test(red);
|
||||
// @include test(red);
|
||||
position: absolute;
|
||||
top: 0; right: 0; bottom: 0; left: 0;
|
||||
width: auto; height: auto;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
|
||||
.l-grid-holder {
|
||||
position: relative;
|
||||
height: 100%; width: 100%;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
.l-grid {
|
||||
// @include test(orange);
|
||||
// @include test(orange);
|
||||
position: absolute;
|
||||
height: 100%; width: 100%;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
@ -56,12 +62,13 @@
|
||||
.l-fixed-position-image,
|
||||
.l-fixed-position-text {
|
||||
@include box-sizing(border-box);
|
||||
height: 100%; width: 100%;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.l-fixed-position-box {
|
||||
}
|
||||
|
||||
|
||||
.l-fixed-position-image {
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
@ -70,38 +77,45 @@
|
||||
|
||||
.l-fixed-position-text {
|
||||
@include txtShdwSubtle();
|
||||
border:1px solid transparent;
|
||||
border: 1px solid transparent;
|
||||
font-size: 0.8rem;
|
||||
$p: 1px; //$interiorMarginSm;
|
||||
line-height: 100%;
|
||||
&.l-static-text {
|
||||
// overflow: auto;
|
||||
// overflow: auto;
|
||||
padding: $p;
|
||||
}
|
||||
&.l-telemetry {
|
||||
.l-elem {
|
||||
//@include absPosDefault($p);
|
||||
@include absPosDefault(0);
|
||||
//@include absPosDefault(0);
|
||||
@include box-sizing(border-box);
|
||||
display: block;
|
||||
padding: 2px;
|
||||
width: 50%;
|
||||
//width: 50%;
|
||||
&.l-title {
|
||||
right: auto;
|
||||
left: $p;
|
||||
//right: auto;
|
||||
//left: $p;
|
||||
float: none;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
width: auto;
|
||||
}
|
||||
&.l-value {
|
||||
// @include test(blue);
|
||||
right: $p;
|
||||
left: auto;
|
||||
// @include test(blue);
|
||||
// right: $p;
|
||||
// left: auto;
|
||||
@include border-radius($smallCr);
|
||||
$valPad: 5px;
|
||||
float: right;
|
||||
margin-left: $interiorMargin;
|
||||
padding-left: $valPad;
|
||||
padding-right: $valPad;
|
||||
text-align: right;
|
||||
&.telem-only {
|
||||
// @include test(red);
|
||||
left: $p;
|
||||
width: auto;
|
||||
}
|
||||
.l-value-bg {
|
||||
@include border-radius($smallCr);
|
||||
padding: 0 4px;
|
||||
margin-left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,8 +53,8 @@
|
||||
//@include invokeMenu(); // $colorKey
|
||||
text-shadow: none;
|
||||
display: inline-block;
|
||||
font-size: 0.8rem;
|
||||
vertical-align: middle;
|
||||
//font-size: 0.8rem;// Normalizing for new icomoon symbols font
|
||||
//vertical-align: middle;// Normalizing for new icomoon symbols font
|
||||
}
|
||||
|
||||
.btn-menu .invoke-menu,
|
||||
@ -72,13 +72,16 @@
|
||||
.menu .type-icon,
|
||||
.tree-item .type-icon,
|
||||
.super-menu.menu .type-icon {
|
||||
font-size: $menuLineH * 0.8; //.93
|
||||
line-height: $menuLineH * 1.13;
|
||||
//font-size: $menuLineH * 0.8; //.93 // Normalizing for new icomoon symbols font
|
||||
//line-height: $menuLineH * 1.13; // Normalizing for new icomoon symbols font
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
.super-menu.menu.dropdown .icon {
|
||||
font-size: $menuLineH * 0.95
|
||||
.tree-item .type-icon {
|
||||
font-size: 16px; // 16px is crisp size
|
||||
}
|
||||
|
||||
.super-menu.menu.dropdown .icon {
|
||||
//font-size: $menuLineH * 0.95 // Normalizing for new icomoon symbols font
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
width: auto; height: auto;
|
||||
}
|
||||
|
||||
@mixin trans-prop-nice($props, $t) {
|
||||
@mixin trans-prop-nice($props, $t: 500ms) {
|
||||
@if $t == 0 {
|
||||
@include transition-property(none);
|
||||
} @else {
|
||||
|
@ -25,22 +25,28 @@ $pad: $interiorMargin * $baseRatio;
|
||||
/******* LAYOUT AND SIZING */
|
||||
.btn,
|
||||
.l-btn {
|
||||
line-height: 1.25em;
|
||||
line-height: 1.5em; // Was 1.25em
|
||||
padding: 0 $pad;
|
||||
text-decoration: none;
|
||||
&.lg,
|
||||
&.create-btn {
|
||||
$h: $ueTopBarH - $interiorMargin;
|
||||
$h: $ueTopBarH; // - $interiorMargin;
|
||||
height: $h;
|
||||
line-height: $h;
|
||||
line-height: $h - 2;
|
||||
//padding: 0 $pad * 6 0 $pad;
|
||||
padding: 0 $pad * 3;
|
||||
}
|
||||
&.create-btn {
|
||||
&:before {
|
||||
content:"+";
|
||||
font-family: symbolsfont;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
.menu {
|
||||
margin-left: $pad * -1;
|
||||
}
|
||||
>.ui-symbol {
|
||||
font-size: 1.1em;
|
||||
//font-size: 1.1em; // Normalizing for new icomoon symbols font
|
||||
}
|
||||
}
|
||||
&.sm {
|
||||
@ -59,7 +65,7 @@ $pad: $interiorMargin * $baseRatio;
|
||||
@include box-sizing(border-box);
|
||||
@include text-shadow(rgba(black, 0.3) 0 1px 1px);
|
||||
cursor: pointer;
|
||||
line-height: 1.2em;
|
||||
//line-height: 1.2em;
|
||||
text-decoration: none;
|
||||
&.major {
|
||||
$bg: $colorKey;
|
||||
@ -115,7 +121,7 @@ $pad: $interiorMargin * $baseRatio;
|
||||
&.labeled {
|
||||
padding: 0 $pad/2;
|
||||
.icon {
|
||||
font-size: 1.5em;
|
||||
//font-size: 1.5em;
|
||||
}
|
||||
.title-label {
|
||||
margin-left: $interiorMargin;
|
||||
|
@ -186,8 +186,8 @@
|
||||
.icon:not(.invoke-menu) {
|
||||
// position: relative;
|
||||
// top: -0.04em;
|
||||
font-size: 150%;
|
||||
vertical-align: middle;
|
||||
//font-size: 150%;
|
||||
//vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@ -361,7 +361,7 @@ label.checkbox.custom {
|
||||
color: lighten($colorBodyFg, 40%);
|
||||
}
|
||||
.type-icon {
|
||||
font-size: 1.5em;
|
||||
font-size: 120%;
|
||||
margin-right: $interiorMargin;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
@ -68,8 +68,17 @@
|
||||
.super-menu {
|
||||
$w: 450px;
|
||||
$h: $w - 20;
|
||||
$plw: $w * 0.5;
|
||||
$prw: $w - $plw;
|
||||
$plw: 50%; //$w * 0.5;
|
||||
$prw: 50%; //$w - $plw;
|
||||
$bg: $colorKey;
|
||||
$fg: $colorKeyFg;
|
||||
$colorMid: lighten($bg, 25%);
|
||||
$bgHover: $bg;
|
||||
@include containerSubtle(darken($bg, 15%), $fg);
|
||||
display: block;
|
||||
.icon {
|
||||
color: $colorMid;
|
||||
}
|
||||
width: $w;
|
||||
height: $h;
|
||||
.contents {
|
||||
@ -78,12 +87,12 @@
|
||||
.pane {
|
||||
@include box-sizing(border-box);
|
||||
&.left {
|
||||
// @include test();
|
||||
//@include test();
|
||||
border-right: 1px solid rgba(white, 0.2);
|
||||
left: 0;
|
||||
padding-right: $interiorMargin;
|
||||
right: auto;
|
||||
width: $plw !important;
|
||||
width: $plw;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
ul {
|
||||
@ -91,10 +100,14 @@
|
||||
@include border-radius($controlCr);
|
||||
// @include test(red);
|
||||
border-top: none;
|
||||
color: $fg;
|
||||
// font-size: 0.85em;
|
||||
// line-height: 20px;
|
||||
&:hover {
|
||||
background: $bgHover;
|
||||
.icon {
|
||||
color: lighten($bg, 50%);
|
||||
}
|
||||
}
|
||||
.icon {
|
||||
@include txtShdwSubtle(0.4);
|
||||
@ -104,39 +117,40 @@
|
||||
}
|
||||
}
|
||||
&.right {
|
||||
left: $plw;
|
||||
//@include test(red);
|
||||
left: auto;
|
||||
right: 0;
|
||||
padding: $interiorMargin * 5;
|
||||
width: $prw !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.menu-item-description {
|
||||
.desc-area {
|
||||
// @include test(green);
|
||||
&.icon {
|
||||
// @include test(red);
|
||||
$h: 150px;
|
||||
position: relative;
|
||||
color: lighten($bg, 30%);
|
||||
font-size: 8em;
|
||||
left: 0;
|
||||
height: $h;
|
||||
line-height: $h;
|
||||
// top: 0; right: 0; bottom: 5em; left: 0;
|
||||
// height: 5em;
|
||||
text-align: center;
|
||||
}
|
||||
&.description {
|
||||
color: lighten($bg, 30%);
|
||||
font-size: 0.8em;
|
||||
}
|
||||
&.title {
|
||||
color: lighten($bg, 60%);
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 1rem;
|
||||
width: $prw;
|
||||
}
|
||||
}
|
||||
.menu-item-description {
|
||||
.desc-area {
|
||||
// @include test(green);
|
||||
&.icon {
|
||||
//@include test(red);
|
||||
$h: 150px;
|
||||
position: relative;
|
||||
font-size: 8em;
|
||||
left: 0;
|
||||
height: $h;
|
||||
line-height: $h;
|
||||
margin-bottom: $interiorMargin * 5;
|
||||
text-align: center;
|
||||
}
|
||||
&.title {
|
||||
color: $fg;
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
&.description {
|
||||
//color: lighten($bg, 30%);
|
||||
color: $fg;
|
||||
font-size: 0.8em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.context-menu {
|
||||
$bg: lighten($colorBodyBg, 25%);
|
||||
|
@ -20,23 +20,21 @@
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
.validates {
|
||||
$symbolW: 15px;
|
||||
$symbolM: $interiorMargin * 2;
|
||||
> .label {
|
||||
// @include test(green, 0.1);
|
||||
padding-right: $symbolW + $symbolM; // Keep room for validation element
|
||||
padding-right: $reqSymbolW + $reqSymbolM; // Keep room for validation element
|
||||
&::after {
|
||||
// @include test(yellow, 0.3);
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: $symbolM;
|
||||
right: $reqSymbolM;
|
||||
bottom: 0;
|
||||
left: auto;
|
||||
height: auto;
|
||||
width: $symbolW;
|
||||
width: $reqSymbolW;
|
||||
font-family: symbolsfont;
|
||||
font-size: 1.1em;
|
||||
font-size: $reqSymbolFontSize;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
}
|
||||
@ -62,7 +60,9 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.req {
|
||||
font-size: $reqSymbolFontSize;
|
||||
}
|
||||
span.req {
|
||||
color: $colorFormRequired;
|
||||
}
|
@ -84,7 +84,7 @@
|
||||
}
|
||||
|
||||
.browse-area .splitter {
|
||||
top: $ueTopBarH + $interiorMargin;
|
||||
top: $ueTopBarH + $interiorMarginLg;
|
||||
}
|
||||
|
||||
.edit-area .splitter {
|
||||
|
@ -74,7 +74,7 @@
|
||||
|
||||
|
||||
.treeview .wait-spinner {
|
||||
$d: 18px;
|
||||
$d: 10px;
|
||||
@include wait-spinner(0.25em, $colorKey);
|
||||
height: $d; width: $d;
|
||||
margin: 0 !important;
|
||||
|
@ -27,23 +27,28 @@
|
||||
}
|
||||
.item {
|
||||
&.grid-item {
|
||||
//div { @include test() }
|
||||
$d: $ueBrowseGridItemLg;
|
||||
$transTime: 200ms;
|
||||
@include btnSubtle($colorItemBase);
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
height: $d;
|
||||
// padding-bottom: 32%;
|
||||
width: $d;
|
||||
margin-bottom: $interiorMarginSm;
|
||||
margin-right: $interiorMarginSm;
|
||||
position: relative;
|
||||
.item-main .item-type {
|
||||
@include trans-prop-nice("color", $transTime);
|
||||
}
|
||||
&:hover .item-main {
|
||||
.item-type {
|
||||
color: $colorKey !important;
|
||||
}
|
||||
.item-open {
|
||||
display: block;
|
||||
//display: block;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.contents {
|
||||
@ -70,24 +75,26 @@
|
||||
}
|
||||
.item-main {
|
||||
$h: $ueBrowseGridItemLg;
|
||||
$lh: $h * 0.9;
|
||||
// @include test();
|
||||
div {
|
||||
// background: rgba(deeppink, 0.2);
|
||||
}
|
||||
$lh: $h * 0.8;
|
||||
//top: $ueBrowseGridItemTopBarH; bottom: $ueBrowseGridItemBottomBarH;
|
||||
line-height: $lh;
|
||||
z-index: 1;
|
||||
.item-type {
|
||||
color: $colorItemFg;
|
||||
text-align: center;
|
||||
font-size: 7em;
|
||||
line-height: $lh;
|
||||
font-size: 6em;
|
||||
//line-height: $lh;
|
||||
}
|
||||
.item-open {
|
||||
// color: lighten($colorItemBase, 15%);
|
||||
display: none;
|
||||
font-size: 5em;
|
||||
line-height: $lh;
|
||||
left: auto; width: 30px;
|
||||
//@include test();
|
||||
@include trans-prop-nice("opacity", $transTime);
|
||||
opacity: 0;
|
||||
//display: none;
|
||||
font-size: 3em;
|
||||
//line-height: $lh;
|
||||
left: auto; width: 50px;
|
||||
pointer-events: none;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
.title {
|
||||
|
@ -50,6 +50,7 @@
|
||||
.title {
|
||||
@include ellipsize();
|
||||
font-size: 1.3em;
|
||||
margin-bottom: $interiorMargin;
|
||||
}
|
||||
|
||||
.top-bar {
|
||||
|
@ -29,7 +29,7 @@ ul.tree {
|
||||
@include border-radius($basicCr);
|
||||
@include single-transition(background-color, 0.25s);
|
||||
display: block;
|
||||
font-size: 0.80rem;
|
||||
font-size: 0.80em;
|
||||
height: $menuLineH;
|
||||
line-height: $menuLineH;
|
||||
margin-bottom: $interiorMarginSm;
|
||||
@ -38,7 +38,7 @@ ul.tree {
|
||||
.view-control {
|
||||
display: inline-block;
|
||||
margin-left: $interiorMargin;
|
||||
// vertical-align: middle;
|
||||
font-size: 0.75em;
|
||||
width: $treeVCW;
|
||||
$runningItemW: $interiorMargin + $treeVCW;
|
||||
&:hover {
|
||||
|
@ -21,7 +21,7 @@
|
||||
*****************************************************************************/
|
||||
.ue-bottom-bar {
|
||||
color: lighten($colorBodyBg, 30%);
|
||||
font-size: 0.7em;
|
||||
font-size: 0.65rem;
|
||||
line-height: $ueFooterH - 4px;
|
||||
.status-holder {
|
||||
@include border-radius($basicCr * 1.75);
|
||||
@ -52,9 +52,9 @@
|
||||
@include box-shadow(inset rgba(black, 0.5) 0 0 3px);
|
||||
@include text-shadow(rgba(black, 0.3) 0 0 2px);
|
||||
display: inline-block;
|
||||
font-size: 1.25em;
|
||||
vertical-align: middle;
|
||||
margin-right: $interiorMargin;
|
||||
//font-size: 1.25em; // Normalized for new wtdsymbols font v2
|
||||
//vertical-align: middle; // Normalized for new wtdsymbols font v2
|
||||
margin-right: $interiorMarginSm;
|
||||
&.ok {
|
||||
color: #009900;
|
||||
}
|
||||
|
@ -119,10 +119,8 @@
|
||||
}
|
||||
|
||||
.bottom-bar {
|
||||
@include absPosDefault($bodyMargin);
|
||||
top: auto;
|
||||
right: $bodyMargin;
|
||||
bottom: $bodyMargin;
|
||||
left: $bodyMargin;
|
||||
height: $ueFooterH;
|
||||
.status-holder {
|
||||
right: $ueAppLogoW + $bodyMargin;
|
||||
@ -208,22 +206,18 @@
|
||||
}
|
||||
.tree-holder {
|
||||
overflow: auto;
|
||||
top: $ueTopBarH + $interiorMargin;
|
||||
top: $ueTopBarH + $interiorMarginLg;
|
||||
}
|
||||
}
|
||||
&.items {
|
||||
.object-browse-bar {
|
||||
// bottom: auto;
|
||||
.left.abs,
|
||||
.right.abs {
|
||||
top: auto;
|
||||
}
|
||||
.right.abs {
|
||||
bottom: $interiorMargin;
|
||||
}
|
||||
}
|
||||
.object-holder {
|
||||
top: $ueTopBarH + $interiorMargin;
|
||||
top: $ueTopBarH + $interiorMarginLg;
|
||||
}
|
||||
}
|
||||
&.edit-main {
|
||||
|
@ -21,7 +21,7 @@
|
||||
*****************************************************************************/
|
||||
.object-browse-bar {
|
||||
height: $ueTopBarH;
|
||||
//line-height: $ueTopBarBtnH;
|
||||
line-height: $ueTopBarH;
|
||||
.items-select {
|
||||
.btn-menu {
|
||||
margin-right: $interiorMargin * 3;
|
||||
|
@ -70,6 +70,12 @@
|
||||
"type": "decorator",
|
||||
"implementation": "models/CachingModelDecorator.js"
|
||||
},
|
||||
{
|
||||
"provides": "modelService",
|
||||
"type": "decorator",
|
||||
"priority": "fallback",
|
||||
"implementation": "models/MissingModelDecorator.js"
|
||||
},
|
||||
{
|
||||
"provides": "typeService",
|
||||
"type": "provider",
|
||||
@ -130,8 +136,13 @@
|
||||
"name": "Folder",
|
||||
"glyph": "F",
|
||||
"features": "creation",
|
||||
"description": "A folder, useful for storing and organizing domain objects.",
|
||||
"description": "Useful for storing and organizing domain objects.",
|
||||
"model": { "composition": [] }
|
||||
},
|
||||
{
|
||||
"key": "unknown",
|
||||
"name": "Unknown Type",
|
||||
"glyph": "?"
|
||||
}
|
||||
],
|
||||
"capabilities": [
|
||||
@ -202,4 +213,4 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
59
platform/core/src/models/MissingModelDecorator.js
Normal file
59
platform/core/src/models/MissingModelDecorator.js
Normal file
@ -0,0 +1,59 @@
|
||||
/*****************************************************************************
|
||||
* 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";
|
||||
|
||||
/**
|
||||
* Adds placeholder domain object models for any models which
|
||||
* fail to load from the underlying model service.
|
||||
* @implements {ModelService}
|
||||
*/
|
||||
function MissingModelDecorator(modelService) {
|
||||
function missingModel(id) {
|
||||
return {
|
||||
type: "unknown",
|
||||
name: "Missing: " + id
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
getModels: function (ids) {
|
||||
function addMissingModels(models) {
|
||||
var result = {};
|
||||
ids.forEach(function (id) {
|
||||
result[id] = models[id] || missingModel(id);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
return modelService.getModels(ids).then(addMissingModels);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return MissingModelDecorator;
|
||||
}
|
||||
);
|
35
platform/features/imagery/bundle.json
Normal file
35
platform/features/imagery/bundle.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Plot view for telemetry",
|
||||
"extensions": {
|
||||
"views": [
|
||||
{
|
||||
"name": "Imagery",
|
||||
"key": "imagery",
|
||||
"glyph": "\u00E3",
|
||||
"templateUrl": "templates/imagery.html",
|
||||
"priority": "preferred",
|
||||
"needs": [ "telemetry" ]
|
||||
}
|
||||
],
|
||||
"policies": [
|
||||
{
|
||||
"category": "view",
|
||||
"implementation": "policies/ImageryViewPolicy.js"
|
||||
}
|
||||
],
|
||||
"controllers": [
|
||||
{
|
||||
"key": "ImageryController",
|
||||
"implementation": "controllers/ImageryController.js",
|
||||
"depends": [ "$scope", "telemetryHandler" ]
|
||||
}
|
||||
],
|
||||
"directives": [
|
||||
{
|
||||
"key": "mctBackgroundImage",
|
||||
"implementation": "directives/MCTBackgroundImage.js",
|
||||
"depends": [ "$document" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
67
platform/features/imagery/res/templates/imagery.html
Normal file
67
platform/features/imagery/res/templates/imagery.html
Normal file
@ -0,0 +1,67 @@
|
||||
<div class="t-imagery" ng-controller="ImageryController as imagery">
|
||||
<!-- Main image -->
|
||||
<div
|
||||
class="l-image-main-wrapper"
|
||||
ng-mouseenter="showLocalControls = true;"
|
||||
ng-mouseleave="showLocalControls = false;"
|
||||
>
|
||||
<div
|
||||
class="l-local-controls s-local-controls"
|
||||
ng-show="false && showLocalControls"
|
||||
>
|
||||
<a
|
||||
class="t-btn l-btn s-btn s-icon-btn s-very-subtle"
|
||||
ng-click="plot.stepBackPanZoom()"
|
||||
ng-show="1"
|
||||
title="Restore previous pan/zoom">
|
||||
<span class="ui-symbol icon"><</span>
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="t-btn l-btn s-btn s-icon-btn s-very-subtle"
|
||||
ng-click="plot.unzoom()"
|
||||
ng-show="1"
|
||||
title="Reset pan/zoom">
|
||||
<span class="ui-symbol icon">I</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="l-image-main s-image-main"
|
||||
ng-class="{ paused: imagery.paused(), stale:false }"
|
||||
mct-background-image="imagery.getImageUrl()"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="l-image-main-controlbar bar">
|
||||
<div class="left">
|
||||
<a
|
||||
class="t-btn l-btn s-btn s-icon-btn s-very-subtle show-thumbs sm"
|
||||
ng-click="showThumbsBubble = (showThumbsBubble)? false:true"
|
||||
><span class="ui-symbol icon"></span></a>
|
||||
<span class="l-timezone">{{imagery.getZone()}}</span>
|
||||
<span class="l-time">{{imagery.getTime()}}</span>
|
||||
<span class="l-date">{{imagery.getDate()}}</span>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a
|
||||
class="t-btn l-btn s-btn s-icon-btn s-very-subtle pause-play sm"
|
||||
ng-click="imagery.paused(!imagery.paused())"
|
||||
ng-class="{ paused: imagery.paused() }"
|
||||
><span class="ui-symbol icon"></span></a>
|
||||
<a href="{{imagery.getImageUrl()}}"
|
||||
ng-if="imagery.getImageUrl()"
|
||||
target="_blank"
|
||||
title="Open image in new tab."
|
||||
class="t-btn l-btn s-btn s-icon-btn s-very-subtle sm">
|
||||
<span class="ui-symbol icon">y</span></a>
|
||||
<a href=""
|
||||
class="l-btn s-btn s-icon-btn l-mag s-mag ui-symbol vsm"
|
||||
ng-click="clipped = false"
|
||||
ng-show="clipped === true"
|
||||
title="Not all of image is visible; click to reset."
|
||||
></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
133
platform/features/imagery/src/controllers/ImageryController.js
Normal file
133
platform/features/imagery/src/controllers/ImageryController.js
Normal file
@ -0,0 +1,133 @@
|
||||
/*****************************************************************************
|
||||
* 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(
|
||||
['moment'],
|
||||
function (moment) {
|
||||
"use strict";
|
||||
|
||||
var DATE_FORMAT = "YYYY-MM-DD",
|
||||
TIME_FORMAT = "HH:mm:ss.SSS";
|
||||
|
||||
/**
|
||||
* Controller for the "Imagery" view of a domain object which
|
||||
* provides image telemetry.
|
||||
*/
|
||||
function ImageryController($scope, telemetryHandler) {
|
||||
var date = "",
|
||||
time = "",
|
||||
imageUrl = "",
|
||||
paused = false,
|
||||
handle;
|
||||
|
||||
function releaseSubscription() {
|
||||
if (handle) {
|
||||
handle.unsubscribe();
|
||||
handle = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
function updateValues() {
|
||||
var imageObject = handle && handle.getTelemetryObjects()[0],
|
||||
m;
|
||||
if (imageObject && !paused) {
|
||||
m = moment.utc(handle.getDomainValue(imageObject));
|
||||
date = m.format(DATE_FORMAT);
|
||||
time = m.format(TIME_FORMAT);
|
||||
imageUrl = handle.getRangeValue(imageObject);
|
||||
}
|
||||
}
|
||||
|
||||
// Create a new subscription; telemetrySubscriber gets
|
||||
// to do the meaningful work here.
|
||||
function subscribe(domainObject) {
|
||||
releaseSubscription();
|
||||
date = "";
|
||||
time = "";
|
||||
imageUrl = "";
|
||||
handle = domainObject && telemetryHandler.handle(
|
||||
domainObject,
|
||||
updateValues,
|
||||
true // Lossless
|
||||
);
|
||||
}
|
||||
|
||||
// Subscribe to telemetry when a domain object becomes available
|
||||
$scope.$watch('domainObject', subscribe);
|
||||
|
||||
// Unsubscribe when the plot is destroyed
|
||||
$scope.$on("$destroy", releaseSubscription);
|
||||
|
||||
return {
|
||||
/**
|
||||
* Get the time portion (hours, minutes, seconds) of the
|
||||
* timestamp associated with the incoming image telemetry.
|
||||
* @returns {string} the time
|
||||
*/
|
||||
getTime: function () {
|
||||
return time;
|
||||
},
|
||||
/**
|
||||
* Get the date portion (month, year) of the
|
||||
* timestamp associated with the incoming image telemetry.
|
||||
* @returns {string} the date
|
||||
*/
|
||||
getDate: function () {
|
||||
return date;
|
||||
},
|
||||
/**
|
||||
* Get the time zone for the displayed time/date corresponding
|
||||
* to the timestamp associated with the incoming image
|
||||
* telemetry.
|
||||
* @returns {string} the time
|
||||
*/
|
||||
getZone: function () {
|
||||
return "UTC";
|
||||
},
|
||||
/**
|
||||
* Get the URL of the image telemetry to display.
|
||||
* @returns {string} URL for telemetry image
|
||||
*/
|
||||
getImageUrl: function () {
|
||||
return imageUrl;
|
||||
},
|
||||
/**
|
||||
* Getter-setter for paused state of the view (true means
|
||||
* paused, false means not.)
|
||||
* @param {boolean} [state] the state to set
|
||||
* @returns {boolean} the current state
|
||||
*/
|
||||
paused: function (state) {
|
||||
if (arguments.length > 0 && state !== paused) {
|
||||
paused = state;
|
||||
// Switch to latest image
|
||||
updateValues();
|
||||
}
|
||||
return paused;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return ImageryController;
|
||||
}
|
||||
);
|
@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
* 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";
|
||||
|
||||
/**
|
||||
* Defines the `mct-background-image` directive.
|
||||
*
|
||||
* Used as an attribute, this will set the `background-image`
|
||||
* property to the URL given in its value, but only after that
|
||||
* image has loaded; this avoids "flashing" as images change.
|
||||
*
|
||||
* If `src` is falsy, no image will be displayed (immediately.)
|
||||
*
|
||||
*/
|
||||
function MCTBackgroundImage($document) {
|
||||
function link(scope, element, attrs) {
|
||||
// General strategy here:
|
||||
// - Keep count of how many images have been requested; this
|
||||
// counter will be used as an internal identifier or sorts
|
||||
// for each image that loads.
|
||||
// - As the src attribute changes, begin loading those images.
|
||||
// - When images do load, update the background-image property
|
||||
// of the element, but only if a more recently
|
||||
// requested image has not already been loaded.
|
||||
// The order in which URLs are passed in and the order
|
||||
// in which images are actually loaded may be different, so
|
||||
// some strategy like this is necessary to ensure that images
|
||||
// do not display out-of-order.
|
||||
var div, requested = 0, loaded = 0;
|
||||
|
||||
function nextImage(url) {
|
||||
var myCounter = requested,
|
||||
image;
|
||||
|
||||
function useImage() {
|
||||
if (loaded <= myCounter) {
|
||||
loaded = myCounter;
|
||||
element.css('background-image', "url('" + url + "')");
|
||||
}
|
||||
}
|
||||
|
||||
if (!url) {
|
||||
loaded = myCounter;
|
||||
element.css('background-image', undefined);
|
||||
} else {
|
||||
image = $document[0].createElement('img');
|
||||
image.src = url;
|
||||
image.onload = useImage;
|
||||
}
|
||||
|
||||
requested += 1;
|
||||
}
|
||||
|
||||
scope.$watch('mctBackgroundImage', nextImage);
|
||||
}
|
||||
|
||||
return {
|
||||
restrict: "A",
|
||||
scope: { mctBackgroundImage: "=" },
|
||||
link: link
|
||||
};
|
||||
}
|
||||
|
||||
return MCTBackgroundImage;
|
||||
}
|
||||
);
|
59
platform/features/imagery/src/policies/ImageryViewPolicy.js
Normal file
59
platform/features/imagery/src/policies/ImageryViewPolicy.js
Normal file
@ -0,0 +1,59 @@
|
||||
/*****************************************************************************
|
||||
* 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";
|
||||
|
||||
/**
|
||||
* Policy preventing the Imagery view from being made available for
|
||||
* domain objects which do not have associated image telemetry.
|
||||
* @implements {Policy}
|
||||
*/
|
||||
function ImageryViewPolicy() {
|
||||
function hasImageTelemetry(domainObject) {
|
||||
var telemetry = domainObject &&
|
||||
domainObject.getCapability('telemetry'),
|
||||
metadata = telemetry ? telemetry.getMetadata() : {},
|
||||
ranges = metadata.ranges || [];
|
||||
|
||||
return ranges.some(function (range) {
|
||||
return range.format === 'imageUrl' ||
|
||||
range.format === 'image';
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
allow: function (view, domainObject) {
|
||||
if (view.key === 'imagery') {
|
||||
return hasImageTelemetry(domainObject);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return ImageryViewPolicy;
|
||||
}
|
||||
);
|
@ -0,0 +1,152 @@
|
||||
/*****************************************************************************
|
||||
* 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,describe,it,expect,beforeEach,jasmine,xit*/
|
||||
|
||||
define(
|
||||
["../../src/controllers/ImageryController"],
|
||||
function (ImageryController) {
|
||||
"use strict";
|
||||
|
||||
describe("The Imagery controller", function () {
|
||||
var mockScope,
|
||||
mockTelemetryHandler,
|
||||
mockHandle,
|
||||
mockDomainObject,
|
||||
controller;
|
||||
|
||||
function invokeWatch(expr, value) {
|
||||
mockScope.$watch.calls.forEach(function (call) {
|
||||
if (call.args[0] === expr) {
|
||||
call.args[1](value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
beforeEach(function () {
|
||||
mockScope = jasmine.createSpyObj('$scope', ['$on', '$watch']);
|
||||
mockTelemetryHandler = jasmine.createSpyObj(
|
||||
'telemetryHandler',
|
||||
['handle']
|
||||
);
|
||||
mockHandle = jasmine.createSpyObj(
|
||||
'handle',
|
||||
[
|
||||
'getDomainValue',
|
||||
'getRangeValue',
|
||||
'getTelemetryObjects',
|
||||
'unsubscribe'
|
||||
]
|
||||
);
|
||||
mockDomainObject = jasmine.createSpyObj(
|
||||
'domainObject',
|
||||
['getId', 'getModel', 'getCapability']
|
||||
);
|
||||
|
||||
mockTelemetryHandler.handle.andReturn(mockHandle);
|
||||
mockHandle.getTelemetryObjects.andReturn([mockDomainObject]);
|
||||
|
||||
controller = new ImageryController(
|
||||
mockScope,
|
||||
mockTelemetryHandler
|
||||
);
|
||||
invokeWatch('domainObject', mockDomainObject);
|
||||
});
|
||||
|
||||
it("unsubscribes when scope is destroyed", function () {
|
||||
expect(mockHandle.unsubscribe).not.toHaveBeenCalled();
|
||||
|
||||
// Find the $destroy listener and call it
|
||||
mockScope.$on.calls.forEach(function (call) {
|
||||
if (call.args[0] === '$destroy') {
|
||||
call.args[1]();
|
||||
}
|
||||
});
|
||||
expect(mockHandle.unsubscribe).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("exposes the latest telemetry values", function () {
|
||||
// 06/18/2015 4:04am UTC
|
||||
var testTimestamp = 1434600258123,
|
||||
testUrl = "some/url",
|
||||
nextTimestamp = 1434600259456, // 4:05.456
|
||||
nextUrl = "some/other/url";
|
||||
|
||||
mockHandle.getDomainValue.andReturn(testTimestamp);
|
||||
mockHandle.getRangeValue.andReturn(testUrl);
|
||||
|
||||
// Call the subscription listener
|
||||
mockTelemetryHandler.handle.mostRecentCall.args[1]();
|
||||
|
||||
expect(controller.getTime()).toEqual("04:04:18.123");
|
||||
expect(controller.getDate()).toEqual("2015-06-18");
|
||||
expect(controller.getZone()).toEqual("UTC");
|
||||
expect(controller.getImageUrl()).toEqual(testUrl);
|
||||
|
||||
mockHandle.getDomainValue.andReturn(nextTimestamp);
|
||||
mockHandle.getRangeValue.andReturn(nextUrl);
|
||||
mockTelemetryHandler.handle.mostRecentCall.args[1]();
|
||||
|
||||
expect(controller.getTime()).toEqual("04:04:19.456");
|
||||
expect(controller.getDate()).toEqual("2015-06-18");
|
||||
expect(controller.getZone()).toEqual("UTC");
|
||||
expect(controller.getImageUrl()).toEqual(nextUrl);
|
||||
});
|
||||
|
||||
it("allows updates to be paused", function () {
|
||||
// 06/18/2015 4:04am UTC
|
||||
var testTimestamp = 1434600258123,
|
||||
testUrl = "some/url",
|
||||
nextTimestamp = 1434600259456, // 4:05.456
|
||||
nextUrl = "some/other/url";
|
||||
|
||||
// As above, but pause in between. Expect details
|
||||
// not to change this time
|
||||
|
||||
mockHandle.getDomainValue.andReturn(testTimestamp);
|
||||
mockHandle.getRangeValue.andReturn(testUrl);
|
||||
|
||||
// Call the subscription listener
|
||||
mockTelemetryHandler.handle.mostRecentCall.args[1]();
|
||||
|
||||
expect(controller.getTime()).toEqual("04:04:18.123");
|
||||
expect(controller.getDate()).toEqual("2015-06-18");
|
||||
expect(controller.getZone()).toEqual("UTC");
|
||||
expect(controller.getImageUrl()).toEqual(testUrl);
|
||||
|
||||
expect(controller.paused()).toBeFalsy();
|
||||
controller.paused(true); // Pause!
|
||||
expect(controller.paused()).toBeTruthy();
|
||||
|
||||
mockHandle.getDomainValue.andReturn(nextTimestamp);
|
||||
mockHandle.getRangeValue.andReturn(nextUrl);
|
||||
mockTelemetryHandler.handle.mostRecentCall.args[1]();
|
||||
|
||||
expect(controller.getTime()).toEqual("04:04:18.123");
|
||||
expect(controller.getDate()).toEqual("2015-06-18");
|
||||
expect(controller.getZone()).toEqual("UTC");
|
||||
expect(controller.getImageUrl()).toEqual(testUrl);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
|
@ -0,0 +1,101 @@
|
||||
/*****************************************************************************
|
||||
* 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,describe,it,expect,beforeEach,jasmine,xit*/
|
||||
|
||||
define(
|
||||
["../../src/directives/MCTBackgroundImage"],
|
||||
function (MCTBackgroundImage) {
|
||||
"use strict";
|
||||
|
||||
describe("The mct-background-image directive", function () {
|
||||
var mockDocument,
|
||||
mockScope,
|
||||
mockElement,
|
||||
testImage,
|
||||
directive;
|
||||
|
||||
beforeEach(function () {
|
||||
mockDocument = [
|
||||
jasmine.createSpyObj('document', ['createElement'])
|
||||
];
|
||||
mockScope = jasmine.createSpyObj('scope', ['$watch']);
|
||||
mockElement = jasmine.createSpyObj('element', [ 'css' ]);
|
||||
testImage = {};
|
||||
|
||||
mockDocument[0].createElement.andReturn(testImage);
|
||||
|
||||
directive = new MCTBackgroundImage(mockDocument);
|
||||
});
|
||||
|
||||
it("is applicable as an attribute", function () {
|
||||
expect(directive.restrict).toEqual("A");
|
||||
});
|
||||
|
||||
it("two-way-binds its own value", function () {
|
||||
expect(directive.scope.mctBackgroundImage).toEqual("=");
|
||||
});
|
||||
|
||||
it("watches for changes to the URL", function () {
|
||||
directive.link(mockScope, mockElement, {});
|
||||
expect(mockScope.$watch).toHaveBeenCalledWith(
|
||||
'mctBackgroundImage',
|
||||
jasmine.any(Function)
|
||||
);
|
||||
});
|
||||
|
||||
it("updates images in-order, even when they load out-of-order", function () {
|
||||
var firstOnload;
|
||||
|
||||
directive.link(mockScope, mockElement);
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/0");
|
||||
firstOnload = testImage.onload;
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/1");
|
||||
|
||||
// Resolve in a different order
|
||||
testImage.onload();
|
||||
firstOnload();
|
||||
|
||||
// Should still have taken the more recent value
|
||||
expect(mockElement.css.mostRecentCall.args).toEqual([
|
||||
"background-image",
|
||||
"url('some/url/1')"
|
||||
]);
|
||||
});
|
||||
|
||||
it("clears the background image when undefined is passed in", function () {
|
||||
directive.link(mockScope, mockElement);
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/0");
|
||||
testImage.onload();
|
||||
mockScope.$watch.mostRecentCall.args[1](undefined);
|
||||
|
||||
expect(mockElement.css.mostRecentCall.args).toEqual([
|
||||
"background-image",
|
||||
undefined
|
||||
]);
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
@ -0,0 +1,80 @@
|
||||
/*****************************************************************************
|
||||
* 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,describe,it,expect,beforeEach,jasmine,xit*/
|
||||
|
||||
define(
|
||||
["../../src/policies/ImageryViewPolicy"],
|
||||
function (ImageryViewPolicy) {
|
||||
"use strict";
|
||||
|
||||
describe("Imagery view policy", function () {
|
||||
var testView,
|
||||
mockDomainObject,
|
||||
mockTelemetry,
|
||||
testMetadata,
|
||||
policy;
|
||||
|
||||
beforeEach(function () {
|
||||
testView = { key: "imagery" };
|
||||
testMetadata = {};
|
||||
mockDomainObject = jasmine.createSpyObj(
|
||||
'domainObject',
|
||||
['getId', 'getModel', 'getCapability']
|
||||
);
|
||||
mockTelemetry = jasmine.createSpyObj(
|
||||
'telemetry',
|
||||
['getMetadata']
|
||||
);
|
||||
mockDomainObject.getCapability.andCallFake(function (c) {
|
||||
return c === 'telemetry' ? mockTelemetry : undefined;
|
||||
});
|
||||
mockTelemetry.getMetadata.andReturn(testMetadata);
|
||||
|
||||
policy = new ImageryViewPolicy();
|
||||
});
|
||||
|
||||
it("allows the imagery view for domain objects with image telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo", format: "imageUrl" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
||||
});
|
||||
|
||||
it("disallows the imagery view for domain objects without image telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeFalsy();
|
||||
});
|
||||
|
||||
it("disallows the imagery view for domain objects without telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo", format: "imageUrl" } ];
|
||||
mockDomainObject.getCapability.andReturn(undefined);
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeFalsy();
|
||||
});
|
||||
|
||||
it("allows other views", function () {
|
||||
testView.key = "somethingElse";
|
||||
testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
|
5
platform/features/imagery/test/suite.json
Normal file
5
platform/features/imagery/test/suite.json
Normal file
@ -0,0 +1,5 @@
|
||||
[
|
||||
"controllers/ImageryController",
|
||||
"directives/MCTBackgroundImage",
|
||||
"policies/ImageryViewPolicy"
|
||||
]
|
@ -23,16 +23,17 @@
|
||||
class="l-fixed-position-text l-telemetry"
|
||||
ng-style="{ background: ngModel.fill(), 'border-color': ngModel.stroke(), color: ngModel.color() }"
|
||||
>
|
||||
<div
|
||||
<span
|
||||
class="l-elem l-value l-obj-val-format"
|
||||
data-value="{{ngModel.value}}"
|
||||
ng-class="{ 'telem-only': !ngModel.element.titled }"
|
||||
>
|
||||
{{ngModel.value}}
|
||||
</span>
|
||||
<span
|
||||
class="l-elem l-title"
|
||||
ng-show="ngModel.element.titled"
|
||||
>
|
||||
{{ngModel.name}}
|
||||
</div>
|
||||
<div
|
||||
class="l-elem l-value"
|
||||
ng-class="{ 'telem-only': !ngModel.element.titled }"
|
||||
>
|
||||
{{ngModel.value}}
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
@ -25,6 +25,12 @@
|
||||
"implementation": "PlotController.js",
|
||||
"depends": [ "$scope", "telemetryFormatter", "telemetryHandler", "throttle" ]
|
||||
}
|
||||
],
|
||||
"policies": [
|
||||
{
|
||||
"category": "view",
|
||||
"implementation": "policies/PlotViewPolicy.js"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ define(
|
||||
var STACKED = {
|
||||
key: "stacked",
|
||||
name: "Stacked",
|
||||
glyph: "8",
|
||||
glyph: "m",
|
||||
factory: PlotStackMode
|
||||
},
|
||||
OVERLAID = {
|
||||
|
65
platform/features/plot/src/policies/PlotViewPolicy.js
Normal file
65
platform/features/plot/src/policies/PlotViewPolicy.js
Normal file
@ -0,0 +1,65 @@
|
||||
/*****************************************************************************
|
||||
* 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";
|
||||
|
||||
/**
|
||||
* Policy preventing the Plot view from being made available for
|
||||
* domain objects which have non-numeric telemetry.
|
||||
* @implements {Policy}
|
||||
*/
|
||||
function PlotViewPolicy() {
|
||||
function hasImageTelemetry(domainObject) {
|
||||
var telemetry = domainObject &&
|
||||
domainObject.getCapability('telemetry'),
|
||||
metadata = telemetry ? telemetry.getMetadata() : {},
|
||||
ranges = metadata.ranges || [];
|
||||
|
||||
// Generally, we want to allow Plot for telemetry-providing
|
||||
// objects (most telemetry is plottable.) We only want to
|
||||
// suppress this for telemetry which only has explicitly
|
||||
// non-numeric values.
|
||||
return ranges.length === 0 || ranges.some(function (range) {
|
||||
// Assume format is numeric if it is undefined
|
||||
// (numeric telemetry is the common case)
|
||||
return range.format === undefined ||
|
||||
range.format === 'number';
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
allow: function (view, domainObject) {
|
||||
if (view.key === 'plot') {
|
||||
return hasImageTelemetry(domainObject);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return PlotViewPolicy;
|
||||
}
|
||||
);
|
79
platform/features/plot/test/policies/PlotViewPolicySpec.js
Normal file
79
platform/features/plot/test/policies/PlotViewPolicySpec.js
Normal file
@ -0,0 +1,79 @@
|
||||
/*****************************************************************************
|
||||
* 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,describe,it,expect,beforeEach,jasmine,xit*/
|
||||
|
||||
define(
|
||||
["../../src/policies/PlotViewPolicy"],
|
||||
function (PlotViewPolicy) {
|
||||
"use strict";
|
||||
|
||||
describe("Plot view policy", function () {
|
||||
var testView,
|
||||
mockDomainObject,
|
||||
mockTelemetry,
|
||||
testMetadata,
|
||||
policy;
|
||||
|
||||
beforeEach(function () {
|
||||
testView = { key: "plot" };
|
||||
testMetadata = {};
|
||||
mockDomainObject = jasmine.createSpyObj(
|
||||
'domainObject',
|
||||
['getId', 'getModel', 'getCapability']
|
||||
);
|
||||
mockTelemetry = jasmine.createSpyObj(
|
||||
'telemetry',
|
||||
['getMetadata']
|
||||
);
|
||||
mockDomainObject.getCapability.andCallFake(function (c) {
|
||||
return c === 'telemetry' ? mockTelemetry : undefined;
|
||||
});
|
||||
mockTelemetry.getMetadata.andReturn(testMetadata);
|
||||
|
||||
policy = new PlotViewPolicy();
|
||||
});
|
||||
|
||||
it("allows the imagery view for domain objects with numeric telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo", format: "number" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
||||
});
|
||||
|
||||
it("allows the imagery view for domain objects with unspecified telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
||||
});
|
||||
|
||||
it("disallows the imagery view for domain objects without image telemetry", function () {
|
||||
testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeFalsy();
|
||||
});
|
||||
|
||||
it("allows other views", function () {
|
||||
testView.key = "somethingElse";
|
||||
testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ];
|
||||
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
|
@ -18,6 +18,7 @@
|
||||
"elements/PlotUpdater",
|
||||
"modes/PlotModeOptions",
|
||||
"modes/PlotOverlayMode",
|
||||
"modes/PlotStackMode"
|
||||
"modes/PlotStackMode",
|
||||
"policies/PlotViewPolicy"
|
||||
]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user