mirror of
https://github.com/nasa/openmct.git
synced 2025-06-16 14:18:16 +00:00
Merge branch 'master' into open638_rebase
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@ -4,8 +4,11 @@
|
|||||||
*.tgz
|
*.tgz
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
|
||||||
|
# Compiled CSS, unless directly added
|
||||||
*.sass-cache
|
*.sass-cache
|
||||||
*COMPILE.css
|
*COMPILE.css
|
||||||
|
*.css
|
||||||
|
*.css.map
|
||||||
|
|
||||||
# Intellij project configuration files
|
# Intellij project configuration files
|
||||||
*.idea
|
*.idea
|
||||||
@ -15,6 +18,7 @@
|
|||||||
|
|
||||||
# Build output
|
# Build output
|
||||||
target
|
target
|
||||||
|
dist
|
||||||
|
|
||||||
# Mac OS X Finder
|
# Mac OS X Finder
|
||||||
.DS_Store
|
.DS_Store
|
||||||
@ -22,8 +26,9 @@ target
|
|||||||
# Closed source libraries
|
# Closed source libraries
|
||||||
closed-lib
|
closed-lib
|
||||||
|
|
||||||
# Node dependencies
|
# Node, Bower dependencies
|
||||||
node_modules
|
node_modules
|
||||||
|
bower_components
|
||||||
|
|
||||||
# Protractor logs
|
# Protractor logs
|
||||||
protractor/logs
|
protractor/logs
|
||||||
|
35
.npmignore
Normal file
35
.npmignore
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
*.scssc
|
||||||
|
*.zip
|
||||||
|
*.gzip
|
||||||
|
*.tgz
|
||||||
|
*.DS_Store
|
||||||
|
|
||||||
|
*.sass-cache
|
||||||
|
*COMPILE.css
|
||||||
|
|
||||||
|
# Intellij project configuration files
|
||||||
|
*.idea
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# External dependencies
|
||||||
|
|
||||||
|
# Build output
|
||||||
|
target
|
||||||
|
|
||||||
|
# Mac OS X Finder
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Closed source libraries
|
||||||
|
closed-lib
|
||||||
|
|
||||||
|
# Node, Bower dependencies
|
||||||
|
node_modules
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
Procfile
|
||||||
|
|
||||||
|
# Protractor logs
|
||||||
|
protractor/logs
|
||||||
|
|
||||||
|
# npm-debug log
|
||||||
|
npm-debug.log
|
58
LICENSES.md
58
LICENSES.md
@ -135,7 +135,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: http://requirejs.org/
|
* Link: http://requirejs.org/
|
||||||
|
|
||||||
* Version: 2.1.9
|
* Version: 2.1.22
|
||||||
|
|
||||||
* Author: The Dojo Foundation
|
* Author: The Dojo Foundation
|
||||||
|
|
||||||
@ -153,13 +153,49 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### requirejs-text
|
||||||
|
|
||||||
|
#### Info
|
||||||
|
|
||||||
|
* Link: https://github.com/requirejs/text
|
||||||
|
|
||||||
|
* Version: 2.0.14
|
||||||
|
|
||||||
|
* Author: The Dojo Foundation
|
||||||
|
|
||||||
|
* Description: Text loading plugin for RequireJS
|
||||||
|
|
||||||
|
#### License
|
||||||
|
|
||||||
|
Copyright (c) 2010-2014, The Dojo Foundation
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### AngularJS
|
### AngularJS
|
||||||
|
|
||||||
#### Info
|
#### Info
|
||||||
|
|
||||||
* Link: http://angularjs.org/
|
* Link: http://angularjs.org/
|
||||||
|
|
||||||
* Version: 1.2.26
|
* Version: 1.4.4
|
||||||
|
|
||||||
* Author: Google
|
* Author: Google
|
||||||
|
|
||||||
@ -167,7 +203,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
#### License
|
#### License
|
||||||
|
|
||||||
Copyright (c) 2010-2014 Google, Inc. http://angularjs.org
|
Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
@ -183,7 +219,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: http://angularjs.org/
|
* Link: http://angularjs.org/
|
||||||
|
|
||||||
* Version: 1.2.26
|
* Version: 1.4.4
|
||||||
|
|
||||||
* Author: Google
|
* Author: Google
|
||||||
|
|
||||||
@ -191,7 +227,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
#### License
|
#### License
|
||||||
|
|
||||||
Copyright (c) 2010-2014 Google, Inc. http://angularjs.org
|
Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
@ -207,7 +243,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: https://github.com/jakearchibald/es6-promise
|
* Link: https://github.com/jakearchibald/es6-promise
|
||||||
|
|
||||||
* Version: 2.0.0
|
* Version: 3.0.2
|
||||||
|
|
||||||
* Authors: Yehuda Katz, Tom Dale, Stefan Penner and contributors
|
* Authors: Yehuda Katz, Tom Dale, Stefan Penner and contributors
|
||||||
|
|
||||||
@ -231,7 +267,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: https://github.com/sindresorhus/screenfull.js/
|
* Link: https://github.com/sindresorhus/screenfull.js/
|
||||||
|
|
||||||
* Version: 1.2.0
|
* Version: 3.0.0
|
||||||
|
|
||||||
* Author: Sindre Sorhus
|
* Author: Sindre Sorhus
|
||||||
|
|
||||||
@ -255,15 +291,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: https://github.com/broofa/node-uuid
|
* Link: https://github.com/broofa/node-uuid
|
||||||
|
|
||||||
* Version: 1.4
|
* Version: 1.4.7
|
||||||
|
|
||||||
* Author: Robert Kieffer
|
* Author: Robert Kieffer
|
||||||
|
|
||||||
* Description: Unique identifer generation (code adapted.)
|
* Description: Unique identifer generation.
|
||||||
|
|
||||||
#### License
|
#### License
|
||||||
|
|
||||||
Copyright (c) 2010 Robert Kieffer
|
Copyright (c) 2010-2012 Robert Kieffer
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
@ -327,7 +363,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||||||
|
|
||||||
* Link: http://momentjs.com
|
* Link: http://momentjs.com
|
||||||
|
|
||||||
* Version: 2.7.0
|
* Version: 2.11.1
|
||||||
|
|
||||||
* Authors: Tim Wood, Iskren Chernev, Moment.js contributors
|
* Authors: Tim Wood, Iskren Chernev, Moment.js contributors
|
||||||
|
|
||||||
|
49
README.md
49
README.md
@ -20,27 +20,6 @@ directory names) to include in a running instance of Open MCT Web. Adding or
|
|||||||
removing paths from this list will add or remove bundles from the running
|
removing paths from this list will add or remove bundles from the running
|
||||||
application.
|
application.
|
||||||
|
|
||||||
### Bundle Contents
|
|
||||||
|
|
||||||
A bundle directory will contain:
|
|
||||||
|
|
||||||
* `bundle.json`, the declaration of the bundles contents.
|
|
||||||
* A source code directory, named `src` by convention. This contains all
|
|
||||||
JavaScript sources exposed by the bundle. These are declared as
|
|
||||||
AMD modules.
|
|
||||||
* A directory for other resources, named `res` by convention. This
|
|
||||||
contains all HTML templates, CSS files, images, and so forth to be
|
|
||||||
used within a given bundle.
|
|
||||||
* A library directory, named `lib` by convention. This contains all
|
|
||||||
external libraries used and/or exposed by the bundle.
|
|
||||||
* A test directory, named `test` by convention. This contains all unit
|
|
||||||
tests declared for the bundle, as well as a `suite.json` that acts
|
|
||||||
as a listing of these dependencies. See the section on unit testing
|
|
||||||
below.
|
|
||||||
|
|
||||||
Following these bundle conventions is required, at present, to ensure
|
|
||||||
that Open MCT Web (and its build and tests) execute correctly.
|
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
Tests are written for [Jasmine 1.3](http://jasmine.github.io/1.3/introduction.html)
|
Tests are written for [Jasmine 1.3](http://jasmine.github.io/1.3/introduction.html)
|
||||||
@ -77,24 +56,22 @@ To run:
|
|||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
Open MCT Web includes a Maven command line build. Although Open MCT Web
|
Open MCT Web is built using [`npm`](http://npmjs.com/)
|
||||||
can be run as-is using the repository contents (that is, by viewing
|
and [`gulp`](http://gulpjs.com/).
|
||||||
`index.html` in a web browser), the command
|
|
||||||
line build allows machine-driven verification and packaging.
|
|
||||||
|
|
||||||
This build will:
|
To build:
|
||||||
|
|
||||||
* Check all sources (excluding those in directories named `lib`) with
|
`npm run prepublish`
|
||||||
JSLint for code style compliance. The build will fail if any sources
|
|
||||||
do not satisfy JSLint.
|
|
||||||
* Run the [unit test suite](#tests).
|
|
||||||
* Package the application as a `war` (web archive) file. This is
|
|
||||||
convenient for deployment on Tomcat or similar. This archive will
|
|
||||||
include sources, resources, and libraries for bundles, as well
|
|
||||||
as the top-level files used to initiate running of the application
|
|
||||||
(`index.html` and `bundles.json`).
|
|
||||||
|
|
||||||
Run as `mvn clean install`.
|
This will compile and minify JavaScript sources, as well as copy over assets.
|
||||||
|
The contents of the `dist` folder will contain a runnable Open MCT Web
|
||||||
|
instance (e.g. by starting an HTTP server in that directory), including:
|
||||||
|
|
||||||
|
* A `main.js` file containing Open MCT Web source code.
|
||||||
|
* Various assets in the `example` and `platform` directories.
|
||||||
|
* An `index.html` that runs Open MCT Web in its default configuration.
|
||||||
|
|
||||||
|
Additional `gulp` tasks are defined in [the gulpfile](gulpfile.js).
|
||||||
|
|
||||||
### Building Documentation
|
### Building Documentation
|
||||||
|
|
||||||
|
20
bower.json
Normal file
20
bower.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "openmctweb",
|
||||||
|
"description": "The OpenMCTWeb core platform",
|
||||||
|
"main": "",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"moduleType": [],
|
||||||
|
"homepage": "http://nasa.github.io/openmctweb/",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"angular": "1.4.4",
|
||||||
|
"angular-route": "1.4.4",
|
||||||
|
"moment": "^2.11.1",
|
||||||
|
"moment-duration-format": "^1.3.0",
|
||||||
|
"requirejs": "~2.1.22",
|
||||||
|
"text": "requirejs-text#^2.0.14",
|
||||||
|
"es6-promise": "^3.0.2",
|
||||||
|
"screenfull": "^3.0.0",
|
||||||
|
"node-uuid": "^1.4.7"
|
||||||
|
}
|
||||||
|
}
|
@ -2245,18 +2245,27 @@ options. The sources can be deployed in the same directory structure used during
|
|||||||
development. A few utilities are included to support development processes.
|
development. A few utilities are included to support development processes.
|
||||||
|
|
||||||
## Command-line Build
|
## Command-line Build
|
||||||
Open MCT Web includes a script for building via command line using Maven 3.3.9
|
|
||||||
https://maven.apache.org/ .
|
|
||||||
|
|
||||||
Invoking mvn clean install will:
|
Open MCT Web is built using [`npm`](http://npmjs.com/)
|
||||||
|
and [`gulp`](http://gulpjs.com/).
|
||||||
|
|
||||||
* Check code style using JSLint. The build will fail if JSLint raises any warnings.
|
To install build dependencies (only needs to be run once):
|
||||||
* Run the test suite (see below.) The build will fail if any tests fail.
|
|
||||||
* Populate version info (e.g. commit hash, build time.)
|
|
||||||
* Produce a web archive (`.war`) artifact in the `target` directory.
|
|
||||||
|
|
||||||
The produced artifact contains a subset of the repository's own folder
|
`npm install`
|
||||||
hierarchy, omitting tests and example bundles.
|
|
||||||
|
To build:
|
||||||
|
|
||||||
|
`npm run prepublish`
|
||||||
|
|
||||||
|
This will compile and minify JavaScript sources, as well as copy over assets.
|
||||||
|
The contents of the `dist` folder will contain a runnable Open MCT Web
|
||||||
|
instance (e.g. by starting an HTTP server in that directory), including:
|
||||||
|
|
||||||
|
* A `main.js` file containing Open MCT Web source code.
|
||||||
|
* Various assets in the `example` and `platform` directories.
|
||||||
|
* An `index.html` that runs Open MCT Web in its default configuration.
|
||||||
|
|
||||||
|
Additional `gulp` tasks are defined in [the gulpfile](gulpfile.js).
|
||||||
|
|
||||||
Note that an internet connection is required to run this build, in order to
|
Note that an internet connection is required to run this build, in order to
|
||||||
download build dependencies.
|
download build dependencies.
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
# Require any additional compass plugins here.
|
|
||||||
# require "compass-growl"
|
|
||||||
|
|
||||||
# Set this to the root of your project when deployed:
|
|
||||||
http_path = "/"
|
|
||||||
css_dir = "css"
|
|
||||||
sass_dir = "sass"
|
|
||||||
images_dir = "images"
|
|
||||||
javascripts_dir = "js"
|
|
||||||
|
|
||||||
# You can select your preferred output style here (can be overridden via the command line):
|
|
||||||
# :expanded, :compressed, :nested
|
|
||||||
output_style = :nested
|
|
||||||
|
|
||||||
# To enable relative paths to assets via compass helper functions. Uncomment:
|
|
||||||
relative_assets = true
|
|
||||||
|
|
||||||
# To disable debugging comments that display the original location of your selectors. Uncomment:
|
|
||||||
# line_comments = false
|
|
||||||
|
|
||||||
|
|
||||||
# If you prefer the indented syntax, you might want to regenerate this
|
|
||||||
# project again passing --syntax sass, or you can uncomment this:
|
|
||||||
# preferred_syntax = :sass
|
|
||||||
# and then run:
|
|
||||||
# sass-convert -R --from scss --to sass vfn_platform/static/sass scss && rm -rf sass && mv scss sass
|
|
@ -1,103 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
/************************** FEATURES */
|
|
||||||
/************************** VERY INFLUENTIAL GLOBAL DIMENSIONS */
|
|
||||||
/************************** RATIOS */
|
|
||||||
/************************** LAYOUT */
|
|
||||||
/************************** CONTROLS */
|
|
||||||
/************************** PATHS */
|
|
||||||
/************************** TIMINGS */
|
|
||||||
/************************** LIMITS */
|
|
||||||
/*****************************************************************************
|
|
||||||
* 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
/************************** MOBILE REPRESENTATION ITEMS DIMENSIONS */
|
|
||||||
/************************** MOBILE TREE MENU DIMENSIONS */
|
|
||||||
/************************** WINDOW DIMENSIONS FOR RWD */
|
|
||||||
/************************** MEDIA QUERIES: WINDOW CHECKS FOR SPECIFIC ORIENTATIONS FOR EACH DEVICE */
|
|
||||||
/************************** MEDIA QUERIES: WINDOWS FOR SPECIFIC ORIENTATIONS FOR EACH DEVICE */
|
|
||||||
/************************** DEVICE PARAMETERS FOR MENUS/REPRESENTATIONS */
|
|
||||||
/*****************************************************************************
|
|
||||||
* 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
/* REQUIRES mobile/_constants */
|
|
||||||
@media screen and (orientation: portrait) and (max-width: 514px) and (max-height: 740px) and (max-device-width: 799px) and (max-device-height: 1024px), screen and (orientation: landscape) and (max-height: 514px) and (max-width: 740px) and (max-device-width: 799px) and (max-device-height: 1024px), screen and (orientation: landscape) and (max-height: 514px) and (max-width: 740px) and (max-device-width: 1024px) and (max-device-height: 799px), screen and (orientation: portrait) and (min-width: 515px) and (max-width: 799px) and (min-height: 741px) and (max-height: 1024px) and (max-device-width: 799px) and (max-device-height: 1024px), screen and (orientation: landscape) and (min-height: 515px) and (max-height: 799px) and (min-width: 741px) and (max-width: 1024px) and (max-device-width: 799px) and (max-device-height: 1024px), screen and (orientation: landscape) and (min-height: 515px) and (max-height: 799px) and (min-width: 741px) and (max-width: 1024px) and (max-device-width: 1024px) and (max-device-height: 799px) {
|
|
||||||
/* line 28, ../sass/mobile-example.scss */
|
|
||||||
.create-btn-holder {
|
|
||||||
display: block !important; } }
|
|
140
gulpfile.js
Normal file
140
gulpfile.js
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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 require,__dirname*/
|
||||||
|
var gulp = require('gulp'),
|
||||||
|
requirejsOptimize = require('gulp-requirejs-optimize'),
|
||||||
|
sourcemaps = require('gulp-sourcemaps'),
|
||||||
|
rename = require('gulp-rename'),
|
||||||
|
sass = require('gulp-sass'),
|
||||||
|
bourbon = require('node-bourbon'),
|
||||||
|
jshint = require('gulp-jshint'),
|
||||||
|
jscs = require('gulp-jscs'),
|
||||||
|
replace = require('gulp-replace-task'),
|
||||||
|
karma = require('karma'),
|
||||||
|
path = require('path'),
|
||||||
|
fs = require('fs'),
|
||||||
|
git = require('git-rev-sync'),
|
||||||
|
moment = require('moment'),
|
||||||
|
project = require('./package.json'),
|
||||||
|
paths = {
|
||||||
|
main: 'main.js',
|
||||||
|
dist: 'dist',
|
||||||
|
assets: 'dist/assets',
|
||||||
|
scss: ['./platform/**/*.scss', './example/**/*.scss'],
|
||||||
|
scripts: [ 'main.js', 'platform/**/*.js', 'src/**/*.js' ],
|
||||||
|
static: [
|
||||||
|
'index.html',
|
||||||
|
'platform/**/*',
|
||||||
|
'example/**/*',
|
||||||
|
'bower_components/**/*'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
options = {
|
||||||
|
requirejsOptimize: {
|
||||||
|
name: paths.main.replace(/\.js$/, ''),
|
||||||
|
mainConfigFile: paths.main,
|
||||||
|
wrapShim: true
|
||||||
|
},
|
||||||
|
karma: {
|
||||||
|
configFile: path.resolve(__dirname, 'karma.conf.js'),
|
||||||
|
singleRun: true
|
||||||
|
},
|
||||||
|
sass: {
|
||||||
|
includePaths: bourbon.includePaths
|
||||||
|
},
|
||||||
|
replace: {
|
||||||
|
variables: {
|
||||||
|
version: project.version,
|
||||||
|
timestamp: moment.utc(Date.now()).format(),
|
||||||
|
revision: fs.existsSync('.git') ? git.long() : 'Unknown',
|
||||||
|
branch: fs.existsSync('.git') ? git.branch() : 'Unknown'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
gulp.task('scripts', function () {
|
||||||
|
return gulp.src(paths.main)
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(requirejsOptimize(options.requirejsOptimize))
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(replace(options.replace))
|
||||||
|
.pipe(gulp.dest(paths.dist));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('test', function (done) {
|
||||||
|
new karma.Server(options.karma, done).start();
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('stylesheets', function () {
|
||||||
|
return gulp.src(paths.scss, {base: '.'})
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(sass(options.sass).on('error', sass.logError))
|
||||||
|
.pipe(rename(function (file) {
|
||||||
|
file.dirname = file.dirname.replace('/sass', '/css');
|
||||||
|
return file;
|
||||||
|
}))
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(gulp.dest(__dirname));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('lint', function () {
|
||||||
|
return gulp.src(paths.scripts)
|
||||||
|
.pipe(jshint())
|
||||||
|
.pipe(jshint.reporter('default'))
|
||||||
|
.pipe(jshint.reporter('fail'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('checkstyle', function () {
|
||||||
|
return gulp.src(paths.scripts)
|
||||||
|
.pipe(jscs())
|
||||||
|
.pipe(jscs.reporter())
|
||||||
|
.pipe(jscs.reporter('fail'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('fixstyle', function () {
|
||||||
|
return gulp.src(paths.scripts, { base: '.' })
|
||||||
|
.pipe(jscs({ fix: true }))
|
||||||
|
.pipe(gulp.dest('.'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('static', ['stylesheets'], function () {
|
||||||
|
return gulp.src(paths.static, { base: '.' })
|
||||||
|
.pipe(gulp.dest(paths.dist));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('watch', function () {
|
||||||
|
gulp.watch(paths.scss, ['stylesheets']);
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('serve', function () {
|
||||||
|
console.log('Running development server with all defaults');
|
||||||
|
var app = require('./app.js');
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('develop', ['serve', 'stylesheets', 'watch']);
|
||||||
|
|
||||||
|
gulp.task('install', [ 'static', 'scripts' ]);
|
||||||
|
|
||||||
|
gulp.task('verify', [ 'lint', 'test' ]);
|
||||||
|
|
||||||
|
gulp.task('build', [ 'verify', 'install' ]);
|
@ -26,8 +26,12 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<title></title>
|
<title></title>
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="platform/framework/lib/require.js"
|
src="bower_components/requirejs/require.js">
|
||||||
data-main="main.js">
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
require(['main'], function (mct) {
|
||||||
|
mct.run();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-32x32.png" sizes="32x32">
|
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-32x32.png" sizes="32x32">
|
||||||
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-96x96.png" sizes="96x96">
|
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-96x96.png" sizes="96x96">
|
||||||
|
@ -34,6 +34,7 @@ module.exports = function(config) {
|
|||||||
// List of files / patterns to load in the browser.
|
// List of files / patterns to load in the browser.
|
||||||
// By default, files are also included in a script tag.
|
// By default, files are also included in a script tag.
|
||||||
files: [
|
files: [
|
||||||
|
{pattern: 'bower_components/**/*.js', included: false},
|
||||||
{pattern: 'src/**/*.js', included: false},
|
{pattern: 'src/**/*.js', included: false},
|
||||||
{pattern: 'example/**/*.js', included: false},
|
{pattern: 'example/**/*.js', included: false},
|
||||||
{pattern: 'platform/**/*.js', included: false},
|
{pattern: 'platform/**/*.js', included: false},
|
||||||
@ -49,7 +50,8 @@ module.exports = function(config) {
|
|||||||
// Preprocess matching files before serving them to the browser.
|
// Preprocess matching files before serving them to the browser.
|
||||||
// https://npmjs.org/browse/keyword/karma-preprocessor
|
// https://npmjs.org/browse/keyword/karma-preprocessor
|
||||||
preprocessors: {
|
preprocessors: {
|
||||||
'**/src/**/!(*Spec).js': [ 'coverage' ]
|
'src/**/src/**/!(*Spec).js': [ 'coverage' ],
|
||||||
|
'platform/**/src/**/!(*Spec).js': [ 'coverage' ]
|
||||||
},
|
},
|
||||||
|
|
||||||
// Test results reporter to use
|
// Test results reporter to use
|
||||||
@ -76,7 +78,7 @@ module.exports = function(config) {
|
|||||||
|
|
||||||
// Code coverage reporting.
|
// Code coverage reporting.
|
||||||
coverageReporter: {
|
coverageReporter: {
|
||||||
dir: "target/coverage"
|
dir: "dist/coverage"
|
||||||
},
|
},
|
||||||
|
|
||||||
// HTML test reporting.
|
// HTML test reporting.
|
||||||
|
24
main.js
24
main.js
@ -24,12 +24,24 @@
|
|||||||
requirejs.config({
|
requirejs.config({
|
||||||
"paths": {
|
"paths": {
|
||||||
"legacyRegistry": "src/legacyRegistry",
|
"legacyRegistry": "src/legacyRegistry",
|
||||||
"angular": "platform/framework/lib/angular.min",
|
"angular": "bower_components/angular/angular.min",
|
||||||
"moment": 'platform/telemetry/lib/moment.min'
|
"angular-route": "bower_components/angular-route/angular-route.min",
|
||||||
|
"es6-promise": "bower_components/es6-promise/promise.min",
|
||||||
|
"moment": "bower_components/moment/moment",
|
||||||
|
"moment-duration-format": "bower_components/moment-duration-format/lib/moment-duration-format",
|
||||||
|
"screenfull": "bower_components/screenfull/dist/screenfull.min",
|
||||||
|
"text": "bower_components/text/text",
|
||||||
|
"uuid": "bower_components/node-uuid/uuid"
|
||||||
},
|
},
|
||||||
"shim": {
|
"shim": {
|
||||||
"angular": {
|
"angular": {
|
||||||
"exports": "angular"
|
"exports": "angular"
|
||||||
|
},
|
||||||
|
"angular-route": {
|
||||||
|
"deps": [ "angular" ]
|
||||||
|
},
|
||||||
|
"moment-duration-format": {
|
||||||
|
"deps": [ "moment" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -78,5 +90,11 @@ define([
|
|||||||
'./example/generator/bundle'
|
'./example/generator/bundle'
|
||||||
], function (Main, legacyRegistry) {
|
], function (Main, legacyRegistry) {
|
||||||
'use strict';
|
'use strict';
|
||||||
new Main().run(legacyRegistry);
|
|
||||||
|
return {
|
||||||
|
legacyRegistry: legacyRegistry,
|
||||||
|
run: function () {
|
||||||
|
return new Main().run(legacyRegistry);
|
||||||
|
}
|
||||||
|
};
|
||||||
});
|
});
|
26
package.json
26
package.json
@ -1,17 +1,27 @@
|
|||||||
{
|
{
|
||||||
"name": "open-mct-web",
|
"name": "openmctweb",
|
||||||
"version": "0.7.2",
|
"version": "0.9.2-SNAPSHOT",
|
||||||
"description": "The OpenMCTWeb core platform",
|
"description": "The Open MCT Web core platform",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.13.1",
|
"express": "^4.13.1",
|
||||||
"minimist": "^1.1.1"
|
"minimist": "^1.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"bower": "^1.7.7",
|
||||||
|
"git-rev-sync": "^1.4.0",
|
||||||
"glob": ">= 3.0.0",
|
"glob": ">= 3.0.0",
|
||||||
|
"gulp": "^3.9.0",
|
||||||
|
"gulp-jscs": "^3.0.2",
|
||||||
|
"gulp-jshint": "^2.0.0",
|
||||||
|
"gulp-rename": "^1.2.2",
|
||||||
|
"gulp-replace-task": "^0.11.0",
|
||||||
|
"gulp-requirejs-optimize": "^0.3.1",
|
||||||
|
"gulp-sass": "^2.2.0",
|
||||||
|
"gulp-sourcemaps": "^1.6.0",
|
||||||
"jasmine-core": "^2.3.0",
|
"jasmine-core": "^2.3.0",
|
||||||
"jsdoc": "^3.3.2",
|
"jsdoc": "^3.3.2",
|
||||||
"jshint": "^2.7.0",
|
"jshint": "^2.7.0",
|
||||||
"karma": "^0.12.31",
|
"karma": "^0.13.3",
|
||||||
"karma-chrome-launcher": "^0.1.8",
|
"karma-chrome-launcher": "^0.1.8",
|
||||||
"karma-cli": "0.0.4",
|
"karma-cli": "0.0.4",
|
||||||
"karma-coverage": "^0.5.3",
|
"karma-coverage": "^0.5.3",
|
||||||
@ -23,6 +33,8 @@
|
|||||||
"markdown-toc": "^0.11.7",
|
"markdown-toc": "^0.11.7",
|
||||||
"marked": "^0.3.5",
|
"marked": "^0.3.5",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
|
"moment": "^2.11.1",
|
||||||
|
"node-bourbon": "^4.2.3",
|
||||||
"phantomjs": "^1.9.19",
|
"phantomjs": "^1.9.19",
|
||||||
"requirejs": "^2.1.17",
|
"requirejs": "^2.1.17",
|
||||||
"split": "^1.0.0"
|
"split": "^1.0.0"
|
||||||
@ -34,12 +46,14 @@
|
|||||||
"watch": "karma start",
|
"watch": "karma start",
|
||||||
"jsdoc": "jsdoc -c jsdoc.json -r -d target/docs/api",
|
"jsdoc": "jsdoc -c jsdoc.json -r -d target/docs/api",
|
||||||
"otherdoc": "node docs/gendocs.js --in docs/src --out target/docs --suppress-toc 'docs/src/index.md|docs/src/process/index.md'",
|
"otherdoc": "node docs/gendocs.js --in docs/src --out target/docs --suppress-toc 'docs/src/index.md|docs/src/process/index.md'",
|
||||||
"docs": "npm run jsdoc ; npm run otherdoc"
|
"docs": "npm run jsdoc ; npm run otherdoc",
|
||||||
|
"prepublish": "./node_modules/bower/bin/bower install && ./node_modules/gulp/bin/gulp.js install"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nasa/openmctweb.git"
|
"url": "https://github.com/nasa/openmctweb.git"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "Apache-2.0"
|
"license": "Apache-2.0",
|
||||||
|
"private": true
|
||||||
}
|
}
|
||||||
|
@ -22,11 +22,13 @@
|
|||||||
/*global define*/
|
/*global define*/
|
||||||
|
|
||||||
define([
|
define([
|
||||||
|
"text!./res/templates/about-dialog.html",
|
||||||
"./src/LogoController",
|
"./src/LogoController",
|
||||||
"./src/AboutController",
|
"./src/AboutController",
|
||||||
"./src/LicenseController",
|
"./src/LicenseController",
|
||||||
'legacyRegistry'
|
'legacyRegistry'
|
||||||
], function (
|
], function (
|
||||||
|
aboutDialogTemplate,
|
||||||
LogoController,
|
LogoController,
|
||||||
AboutController,
|
AboutController,
|
||||||
LicenseController,
|
LicenseController,
|
||||||
@ -50,7 +52,7 @@ define([
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "about-dialog",
|
"key": "about-dialog",
|
||||||
"templateUrl": "templates/about-dialog.html"
|
"template": aboutDialogTemplate
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "overlay-about",
|
"key": "overlay-about",
|
||||||
|
@ -34,6 +34,7 @@ define([
|
|||||||
"./src/windowing/NewTabAction",
|
"./src/windowing/NewTabAction",
|
||||||
"./src/windowing/FullscreenAction",
|
"./src/windowing/FullscreenAction",
|
||||||
"./src/creation/CreateActionProvider",
|
"./src/creation/CreateActionProvider",
|
||||||
|
"./src/creation/AddActionProvider",
|
||||||
"./src/creation/CreationService",
|
"./src/creation/CreationService",
|
||||||
"./src/windowing/WindowTitler",
|
"./src/windowing/WindowTitler",
|
||||||
'legacyRegistry'
|
'legacyRegistry'
|
||||||
@ -50,6 +51,7 @@ define([
|
|||||||
NewTabAction,
|
NewTabAction,
|
||||||
FullscreenAction,
|
FullscreenAction,
|
||||||
CreateActionProvider,
|
CreateActionProvider,
|
||||||
|
AddActionProvider,
|
||||||
CreationService,
|
CreationService,
|
||||||
WindowTitler,
|
WindowTitler,
|
||||||
legacyRegistry
|
legacyRegistry
|
||||||
@ -117,7 +119,8 @@ define([
|
|||||||
"implementation": LocatorController,
|
"implementation": LocatorController,
|
||||||
"depends": [
|
"depends": [
|
||||||
"$scope",
|
"$scope",
|
||||||
"$timeout"
|
"$timeout",
|
||||||
|
"objectService"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -279,6 +282,18 @@ define([
|
|||||||
"policyService"
|
"policyService"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "AddActionProvider",
|
||||||
|
"provides": "actionService",
|
||||||
|
"type": "provider",
|
||||||
|
"implementation": AddActionProvider,
|
||||||
|
"depends": [
|
||||||
|
"$q",
|
||||||
|
"typeService",
|
||||||
|
"dialogService",
|
||||||
|
"policyService"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "CreationService",
|
"key": "CreationService",
|
||||||
"provides": "creationService",
|
"provides": "creationService",
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
/*!
|
|
||||||
* screenfull
|
|
||||||
* v1.2.0 - 2014-04-29
|
|
||||||
* (c) Sindre Sorhus; MIT License
|
|
||||||
*/
|
|
||||||
!function(){"use strict";var a="undefined"!=typeof module&&module.exports,b="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,c=function(){for(var a,b,c=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],d=0,e=c.length,f={};e>d;d++)if(a=c[d],a&&a[1]in document){for(d=0,b=a.length;b>d;d++)f[c[0][d]]=a[d];return f}return!1}(),d={request:function(a){var d=c.requestFullscreen;a=a||document.documentElement,/5\.1[\.\d]* Safari/.test(navigator.userAgent)?a[d]():a[d](b&&Element.ALLOW_KEYBOARD_INPUT)},exit:function(){document[c.exitFullscreen]()},toggle:function(a){this.isFullscreen?this.exit():this.request(a)},onchange:function(){},onerror:function(){},raw:c};return c?(Object.defineProperties(d,{isFullscreen:{get:function(){return!!document[c.fullscreenElement]}},element:{enumerable:!0,get:function(){return document[c.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return!!document[c.fullscreenEnabled]}}}),document.addEventListener(c.fullscreenchange,function(a){d.onchange.call(d,a)}),document.addEventListener(c.fullscreenerror,function(a){d.onerror.call(d,a)}),void(a?module.exports=d:window.screenfull=d)):void(a?module.exports=!1:window.screenfull=!1)}();
|
|
139
platform/commonUI/browse/src/creation/AddAction.js
Normal file
139
platform/commonUI/browse/src/creation/AddAction.js
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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 AddAction. Created by ahenry on 01/21/16.
|
||||||
|
*/
|
||||||
|
define(
|
||||||
|
[
|
||||||
|
'./CreateWizard'
|
||||||
|
],
|
||||||
|
function (CreateWizard) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Add Action is performed to create new instances of
|
||||||
|
* domain objects of a specific type that are subobjects of an
|
||||||
|
* object being edited. This is the action that is performed when a
|
||||||
|
* user uses the Add menu option.
|
||||||
|
*
|
||||||
|
* @memberof platform/commonUI/browse
|
||||||
|
* @implements {Action}
|
||||||
|
* @constructor
|
||||||
|
*
|
||||||
|
* @param {Type} type the type of domain object to create
|
||||||
|
* @param {DomainObject} parent the domain object that should
|
||||||
|
* act as a container for the newly-created object
|
||||||
|
* (note that the user will have an opportunity to
|
||||||
|
* override this)
|
||||||
|
* @param {ActionContext} context the context in which the
|
||||||
|
* action is being performed
|
||||||
|
* @param {DialogService} dialogService
|
||||||
|
*/
|
||||||
|
function AddAction(type, parent, context, $q, dialogService, policyService) {
|
||||||
|
this.metadata = {
|
||||||
|
key: 'add',
|
||||||
|
glyph: type.getGlyph(),
|
||||||
|
name: type.getName(),
|
||||||
|
type: type.getKey(),
|
||||||
|
description: type.getDescription(),
|
||||||
|
context: context
|
||||||
|
};
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
this.parent = parent;
|
||||||
|
this.$q = $q;
|
||||||
|
this.dialogService = dialogService;
|
||||||
|
this.policyService = policyService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Create a new object of the given type.
|
||||||
|
* This will prompt for user input first.
|
||||||
|
*
|
||||||
|
* @returns {Promise} that will be resolved with the object that the
|
||||||
|
* action was originally invoked on (ie. the 'parent')
|
||||||
|
*/
|
||||||
|
AddAction.prototype.perform = function () {
|
||||||
|
var newModel = this.type.getInitialModel(),
|
||||||
|
newObject,
|
||||||
|
parentObject = this.parent,
|
||||||
|
wizard;
|
||||||
|
|
||||||
|
newModel.type = this.type.getKey();
|
||||||
|
newObject = parentObject.getCapability('instantiation').instantiate(newModel);
|
||||||
|
newObject.useCapability('mutation', function(model){
|
||||||
|
model.location = parentObject.getId();
|
||||||
|
});
|
||||||
|
|
||||||
|
wizard = new CreateWizard(newObject, this.parent, this.policyService);
|
||||||
|
|
||||||
|
function populateObjectFromInput (formValue) {
|
||||||
|
return wizard.populateObjectFromInput(formValue, newObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addToParent (populatedObject) {
|
||||||
|
parentObject.getCapability('composition').add(populatedObject);
|
||||||
|
return parentObject.getCapability('persistence').persist().then(function(){
|
||||||
|
return parentObject;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function save(object) {
|
||||||
|
/*
|
||||||
|
It's necessary to persist the new sub-object in order
|
||||||
|
that it can be retrieved for composition in the parent.
|
||||||
|
Future refactoring that allows temporary objects to be
|
||||||
|
retrieved from object services will make this unnecessary.
|
||||||
|
*/
|
||||||
|
return object.getCapability('editor').save(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.dialogService
|
||||||
|
.getUserInput(wizard.getFormStructure(false), wizard.getInitialFormValue())
|
||||||
|
.then(populateObjectFromInput)
|
||||||
|
.then(save)
|
||||||
|
.then(addToParent);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Metadata associated with a Add action.
|
||||||
|
* @typedef {ActionMetadata} AddActionMetadata
|
||||||
|
* @property {string} type the key for the type of domain object
|
||||||
|
* to be created
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get metadata about this action.
|
||||||
|
* @returns {AddActionMetadata} metadata about this action
|
||||||
|
*/
|
||||||
|
AddAction.prototype.getMetadata = function () {
|
||||||
|
return this.metadata;
|
||||||
|
};
|
||||||
|
|
||||||
|
return AddAction;
|
||||||
|
}
|
||||||
|
);
|
87
platform/commonUI/browse/src/creation/AddActionProvider.js
Normal file
87
platform/commonUI/browse/src/creation/AddActionProvider.js
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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 AddActionProvider.js. Created by ahenry on 01/21/16.
|
||||||
|
*/
|
||||||
|
define(
|
||||||
|
["./AddAction"],
|
||||||
|
function (AddAction) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The AddActionProvider is an ActionProvider which introduces
|
||||||
|
* an Add action for creating sub objects.
|
||||||
|
*
|
||||||
|
* @memberof platform/commonUI/browse
|
||||||
|
* @constructor
|
||||||
|
* @implements {ActionService}
|
||||||
|
*
|
||||||
|
* @param {TypeService} typeService the type service, used to discover
|
||||||
|
* available types
|
||||||
|
* @param {DialogService} dialogService the dialog service, used by
|
||||||
|
* specific Create actions to get user input to populate the
|
||||||
|
* model of the newly-created domain object.
|
||||||
|
* @param {CreationService} creationService the creation service (also
|
||||||
|
* introduced in this bundle), responsible for handling actual
|
||||||
|
* object creation.
|
||||||
|
*/
|
||||||
|
function AddActionProvider($q, typeService, dialogService, policyService) {
|
||||||
|
this.typeService = typeService;
|
||||||
|
this.dialogService = dialogService;
|
||||||
|
this.$q = $q;
|
||||||
|
this.policyService = policyService;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddActionProvider.prototype.getActions = function (actionContext) {
|
||||||
|
var context = actionContext || {},
|
||||||
|
key = context.key,
|
||||||
|
destination = context.domainObject,
|
||||||
|
self = this;
|
||||||
|
|
||||||
|
// We only provide Add actions, and we need a
|
||||||
|
// domain object to serve as the container for the
|
||||||
|
// newly-created object (although the user may later
|
||||||
|
// make a different selection)
|
||||||
|
if (key !== 'add' || !destination) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Introduce one create action per type
|
||||||
|
return this.typeService.listTypes().filter(function (type) {
|
||||||
|
return self.policyService.allow("creation", type) && self.policyService.allow("composition", destination.getCapability('type'), type);
|
||||||
|
}).map(function (type) {
|
||||||
|
return new AddAction(
|
||||||
|
type,
|
||||||
|
destination,
|
||||||
|
context,
|
||||||
|
self.$q,
|
||||||
|
self.dialogService,
|
||||||
|
self.policyService
|
||||||
|
);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return AddActionProvider;
|
||||||
|
}
|
||||||
|
);
|
@ -26,18 +26,21 @@ define(
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new CreateWizard.
|
* A class for capturing user input data from an object creation
|
||||||
|
* dialog, and populating a domain object with that data.
|
||||||
*
|
*
|
||||||
* @param {TypeImpl} type the type of domain object to be created
|
* @param {DomainObject} domainObject the newly created object to
|
||||||
|
* populate with user input
|
||||||
* @param {DomainObject} parent the domain object to serve as
|
* @param {DomainObject} parent the domain object to serve as
|
||||||
* the initial parent for the created object, in the dialog
|
* the initial parent for the created object, in the dialog
|
||||||
* @memberof platform/commonUI/browse
|
* @memberof platform/commonUI/browse
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function CreateWizard(type, parent, policyService, initialModel) {
|
function CreateWizard(domainObject, parent, policyService) {
|
||||||
this.type = type;
|
this.type = domainObject.getCapability('type');
|
||||||
this.model = initialModel || type.getInitialModel();
|
this.model = domainObject.getModel();
|
||||||
this.properties = type.getProperties();
|
this.domainObject = domainObject;
|
||||||
|
this.properties = this.type.getProperties();
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.policyService = policyService;
|
this.policyService = policyService;
|
||||||
}
|
}
|
||||||
@ -46,11 +49,14 @@ define(
|
|||||||
* Get the form model for this wizard; this is a description
|
* Get the form model for this wizard; this is a description
|
||||||
* that will be rendered to an HTML form. See the
|
* that will be rendered to an HTML form. See the
|
||||||
* platform/forms bundle
|
* platform/forms bundle
|
||||||
*
|
* @param {boolean} includeLocation if true, a 'location' section
|
||||||
|
* will be included that will allow the user to select the location
|
||||||
|
* of the newly created object, otherwise the .location property of
|
||||||
|
* the model will be used.
|
||||||
* @return {FormModel} formModel the form model to
|
* @return {FormModel} formModel the form model to
|
||||||
* show in the create dialog
|
* show in the create dialog
|
||||||
*/
|
*/
|
||||||
CreateWizard.prototype.getFormStructure = function () {
|
CreateWizard.prototype.getFormStructure = function (includeLocation) {
|
||||||
var sections = [],
|
var sections = [],
|
||||||
type = this.type,
|
type = this.type,
|
||||||
policyService = this.policyService;
|
policyService = this.policyService;
|
||||||
@ -84,12 +90,16 @@ define(
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Ensure there is always a "save in" section
|
// Ensure there is always a "save in" section
|
||||||
sections.push({ name: 'Location', rows: [{
|
if (includeLocation) {
|
||||||
|
sections.push({
|
||||||
|
name: 'Location', rows: [{
|
||||||
name: "Save In",
|
name: "Save In",
|
||||||
control: "locator",
|
control: "locator",
|
||||||
validate: validateLocation,
|
validate: validateLocation,
|
||||||
key: "createParent"
|
key: "createParent"
|
||||||
}]});
|
}]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
sections: sections,
|
sections: sections,
|
||||||
@ -97,6 +107,23 @@ define(
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given some form input values and a domain object, populate the
|
||||||
|
* domain object used to create this wizard from the given form values.
|
||||||
|
* @param formValue
|
||||||
|
* @returns {DomainObject}
|
||||||
|
*/
|
||||||
|
CreateWizard.prototype.populateObjectFromInput = function(formValue) {
|
||||||
|
var parent = this.getLocation(formValue),
|
||||||
|
formModel = this.createModel(formValue);
|
||||||
|
|
||||||
|
formModel.location = parent.getId();
|
||||||
|
this.domainObject.useCapability("mutation", function(){
|
||||||
|
return formModel;
|
||||||
|
});
|
||||||
|
return this.domainObject;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the initial value for the form being described.
|
* Get the initial value for the form being described.
|
||||||
* This will include the values for all properties described
|
* This will include the values for all properties described
|
||||||
@ -120,6 +147,7 @@ define(
|
|||||||
/**
|
/**
|
||||||
* Based on a populated form, get the domain object which
|
* Based on a populated form, get the domain object which
|
||||||
* should be used as a parent for the newly-created object.
|
* should be used as a parent for the newly-created object.
|
||||||
|
* @private
|
||||||
* @return {DomainObject}
|
* @return {DomainObject}
|
||||||
*/
|
*/
|
||||||
CreateWizard.prototype.getLocation = function (formValue) {
|
CreateWizard.prototype.getLocation = function (formValue) {
|
||||||
@ -129,6 +157,7 @@ define(
|
|||||||
/**
|
/**
|
||||||
* Create the domain object model for a newly-created object,
|
* Create the domain object model for a newly-created object,
|
||||||
* based on user input read from a formModel.
|
* based on user input read from a formModel.
|
||||||
|
* @private
|
||||||
* @return {object} the domain object model
|
* @return {object} the domain object model
|
||||||
*/
|
*/
|
||||||
CreateWizard.prototype.createModel = function (formValue) {
|
CreateWizard.prototype.createModel = function (formValue) {
|
||||||
|
@ -33,7 +33,7 @@ define(
|
|||||||
* @memberof platform/commonUI/browse
|
* @memberof platform/commonUI/browse
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function LocatorController($scope, $timeout) {
|
function LocatorController($scope, $timeout, objectService) {
|
||||||
// Populate values needed by the locator control. These are:
|
// Populate values needed by the locator control. These are:
|
||||||
// * rootObject: The top-level object, since we want to show
|
// * rootObject: The top-level object, since we want to show
|
||||||
// the full tree
|
// the full tree
|
||||||
@ -52,6 +52,18 @@ define(
|
|||||||
$scope.rootObject =
|
$scope.rootObject =
|
||||||
(context && context.getRoot()) || $scope.rootObject;
|
(context && context.getRoot()) || $scope.rootObject;
|
||||||
}, 0);
|
}, 0);
|
||||||
|
} else if (!contextRoot){
|
||||||
|
//If no context root is available, default to the root
|
||||||
|
// object
|
||||||
|
$scope.rootObject = undefined;
|
||||||
|
// Update the displayed tree on a timeout to avoid
|
||||||
|
// an infinite digest exception.
|
||||||
|
objectService.getObjects(['ROOT'])
|
||||||
|
.then(function(objects){
|
||||||
|
$timeout(function () {
|
||||||
|
$scope.rootObject = objects.ROOT;
|
||||||
|
}, 0);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.treeModel.selectedObject = domainObject;
|
$scope.treeModel.selectedObject = domainObject;
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* Module defining FullscreenAction. Created by vwoeltje on 11/18/14.
|
* Module defining FullscreenAction. Created by vwoeltje on 11/18/14.
|
||||||
*/
|
*/
|
||||||
define(
|
define(
|
||||||
["../../lib/screenfull.min"],
|
["screenfull"],
|
||||||
function () {
|
function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
137
platform/commonUI/browse/test/creation/AddActionProviderSpec.js
Normal file
137
platform/commonUI/browse/test/creation/AddActionProviderSpec.js
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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,describe,it,expect,beforeEach,waitsFor,jasmine,xit,xdescribe*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MCTRepresentationSpec. Created by ahenry on 01/21/14.
|
||||||
|
*/
|
||||||
|
define(
|
||||||
|
["../../src/creation/AddActionProvider"],
|
||||||
|
function (AddActionProvider) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
describe("The add action provider", function () {
|
||||||
|
var mockTypeService,
|
||||||
|
mockDialogService,
|
||||||
|
mockPolicyService,
|
||||||
|
mockCreationPolicy,
|
||||||
|
mockCompositionPolicy,
|
||||||
|
mockPolicyMap = {},
|
||||||
|
mockTypes,
|
||||||
|
mockDomainObject,
|
||||||
|
mockQ,
|
||||||
|
provider;
|
||||||
|
|
||||||
|
function createMockType(name) {
|
||||||
|
var mockType = jasmine.createSpyObj(
|
||||||
|
"type" + name,
|
||||||
|
[
|
||||||
|
"getKey",
|
||||||
|
"getGlyph",
|
||||||
|
"getName",
|
||||||
|
"getDescription",
|
||||||
|
"getProperties",
|
||||||
|
"getInitialModel",
|
||||||
|
"hasFeature"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
mockType.hasFeature.andReturn(true);
|
||||||
|
mockType.getName.andReturn(name);
|
||||||
|
return mockType;
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
mockTypeService = jasmine.createSpyObj(
|
||||||
|
"typeService",
|
||||||
|
[ "listTypes" ]
|
||||||
|
);
|
||||||
|
mockDialogService = jasmine.createSpyObj(
|
||||||
|
"dialogService",
|
||||||
|
[ "getUserInput" ]
|
||||||
|
);
|
||||||
|
mockPolicyService = jasmine.createSpyObj(
|
||||||
|
"policyService",
|
||||||
|
[ "allow" ]
|
||||||
|
);
|
||||||
|
|
||||||
|
mockDomainObject = jasmine.createSpyObj(
|
||||||
|
"domainObject",
|
||||||
|
[ "getCapability" ]
|
||||||
|
);
|
||||||
|
|
||||||
|
//Mocking getCapability because AddActionProvider uses the
|
||||||
|
// type capability of the destination object.
|
||||||
|
mockDomainObject.getCapability.andReturn({});
|
||||||
|
|
||||||
|
mockTypes = [ "A", "B", "C" ].map(createMockType);
|
||||||
|
|
||||||
|
mockTypes.forEach(function(type){
|
||||||
|
mockPolicyMap[type.getName()] = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
mockCreationPolicy = function(type){
|
||||||
|
return mockPolicyMap[type.getName()];
|
||||||
|
};
|
||||||
|
|
||||||
|
mockCompositionPolicy = function(){
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
mockPolicyService.allow.andReturn(true);
|
||||||
|
|
||||||
|
mockTypeService.listTypes.andReturn(mockTypes);
|
||||||
|
|
||||||
|
provider = new AddActionProvider(
|
||||||
|
mockQ,
|
||||||
|
mockTypeService,
|
||||||
|
mockDialogService,
|
||||||
|
mockPolicyService
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("checks for creatability", function () {
|
||||||
|
provider.getActions({
|
||||||
|
key: "add",
|
||||||
|
domainObject: mockDomainObject
|
||||||
|
});
|
||||||
|
// Make sure it was creation which was used to check
|
||||||
|
expect(mockPolicyService.allow)
|
||||||
|
.toHaveBeenCalledWith("creation", mockTypes[0]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("checks for composability of type", function () {
|
||||||
|
provider.getActions({
|
||||||
|
key: "add",
|
||||||
|
domainObject: mockDomainObject
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(mockPolicyService.allow).toHaveBeenCalledWith(
|
||||||
|
"composition",
|
||||||
|
jasmine.any(Object),
|
||||||
|
jasmine.any(Object)
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(mockDomainObject.getCapability).toHaveBeenCalledWith('type');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
@ -32,11 +32,12 @@ define(
|
|||||||
describe("The create action provider", function () {
|
describe("The create action provider", function () {
|
||||||
var mockTypeService,
|
var mockTypeService,
|
||||||
mockDialogService,
|
mockDialogService,
|
||||||
mockCreationService,
|
mockNavigationService,
|
||||||
mockPolicyService,
|
mockPolicyService,
|
||||||
mockCreationPolicy,
|
mockCreationPolicy,
|
||||||
mockPolicyMap = {},
|
mockPolicyMap = {},
|
||||||
mockTypes,
|
mockTypes,
|
||||||
|
mockQ,
|
||||||
provider;
|
provider;
|
||||||
|
|
||||||
function createMockType(name) {
|
function createMockType(name) {
|
||||||
@ -66,9 +67,9 @@ define(
|
|||||||
"dialogService",
|
"dialogService",
|
||||||
[ "getUserInput" ]
|
[ "getUserInput" ]
|
||||||
);
|
);
|
||||||
mockCreationService = jasmine.createSpyObj(
|
mockNavigationService = jasmine.createSpyObj(
|
||||||
"creationService",
|
"navigationService",
|
||||||
[ "createObject" ]
|
[ "setNavigation" ]
|
||||||
);
|
);
|
||||||
mockPolicyService = jasmine.createSpyObj(
|
mockPolicyService = jasmine.createSpyObj(
|
||||||
"policyService",
|
"policyService",
|
||||||
@ -92,15 +93,14 @@ define(
|
|||||||
mockTypeService.listTypes.andReturn(mockTypes);
|
mockTypeService.listTypes.andReturn(mockTypes);
|
||||||
|
|
||||||
provider = new CreateActionProvider(
|
provider = new CreateActionProvider(
|
||||||
|
mockQ,
|
||||||
mockTypeService,
|
mockTypeService,
|
||||||
mockDialogService,
|
mockNavigationService,
|
||||||
mockCreationService,
|
|
||||||
mockPolicyService
|
mockPolicyService
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
//TODO: Disabled for NEM Beta
|
it("exposes one create action per type", function () {
|
||||||
xit("exposes one create action per type", function () {
|
|
||||||
expect(provider.getActions({
|
expect(provider.getActions({
|
||||||
key: "create",
|
key: "create",
|
||||||
domainObject: {}
|
domainObject: {}
|
||||||
@ -114,8 +114,7 @@ define(
|
|||||||
}).length).toEqual(0);
|
}).length).toEqual(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
//TODO: Disabled for NEM Beta
|
it("does not expose non-creatable types", function () {
|
||||||
xit("does not expose non-creatable types", function () {
|
|
||||||
// One of the types won't have the creation feature...
|
// One of the types won't have the creation feature...
|
||||||
mockPolicyMap[mockTypes[0].getName()] = false;
|
mockPolicyMap[mockTypes[0].getName()] = false;
|
||||||
// ...so it should have been filtered out.
|
// ...so it should have been filtered out.
|
||||||
|
@ -35,6 +35,7 @@ define(
|
|||||||
mockProperties,
|
mockProperties,
|
||||||
mockPolicyService,
|
mockPolicyService,
|
||||||
testModel,
|
testModel,
|
||||||
|
mockDomainObject,
|
||||||
wizard;
|
wizard;
|
||||||
|
|
||||||
function createMockProperty(name) {
|
function createMockProperty(name) {
|
||||||
@ -81,8 +82,18 @@ define(
|
|||||||
mockType.getInitialModel.andReturn(testModel);
|
mockType.getInitialModel.andReturn(testModel);
|
||||||
mockType.getProperties.andReturn(mockProperties);
|
mockType.getProperties.andReturn(mockProperties);
|
||||||
|
|
||||||
|
mockDomainObject = jasmine.createSpyObj(
|
||||||
|
'domainObject',
|
||||||
|
['getCapability', 'useCapability', 'getModel']
|
||||||
|
);
|
||||||
|
|
||||||
|
//Mocking the getCapability('type') call
|
||||||
|
mockDomainObject.getCapability.andReturn(mockType);
|
||||||
|
mockDomainObject.useCapability.andReturn();
|
||||||
|
mockDomainObject.getModel.andReturn(testModel);
|
||||||
|
|
||||||
wizard = new CreateWizard(
|
wizard = new CreateWizard(
|
||||||
mockType,
|
mockDomainObject,
|
||||||
mockParent,
|
mockParent,
|
||||||
mockPolicyService
|
mockPolicyService
|
||||||
);
|
);
|
||||||
@ -130,6 +141,18 @@ define(
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("populates the model on the associated object", function () {
|
||||||
|
var formValue = {
|
||||||
|
"A": "ValueA",
|
||||||
|
"B": "ValueB",
|
||||||
|
"C": "ValueC"
|
||||||
|
},
|
||||||
|
compareModel = wizard.createModel(formValue);
|
||||||
|
wizard.populateObjectFromInput(formValue);
|
||||||
|
expect(mockDomainObject.useCapability).toHaveBeenCalledWith('mutation', jasmine.any(Function));
|
||||||
|
expect(mockDomainObject.useCapability.mostRecentCall.args[1]()).toEqual(compareModel);
|
||||||
|
});
|
||||||
|
|
||||||
it("validates selection types using policy", function () {
|
it("validates selection types using policy", function () {
|
||||||
var mockDomainObject = jasmine.createSpyObj(
|
var mockDomainObject = jasmine.createSpyObj(
|
||||||
'domainObject',
|
'domainObject',
|
||||||
@ -139,7 +162,8 @@ define(
|
|||||||
'otherType',
|
'otherType',
|
||||||
['getKey']
|
['getKey']
|
||||||
),
|
),
|
||||||
structure = wizard.getFormStructure(),
|
//Create a form structure with location
|
||||||
|
structure = wizard.getFormStructure(true),
|
||||||
sections = structure.sections,
|
sections = structure.sections,
|
||||||
rows = structure.sections[sections.length - 1].rows,
|
rows = structure.sections[sections.length - 1].rows,
|
||||||
locationRow = rows[rows.length - 1];
|
locationRow = rows[rows.length - 1];
|
||||||
@ -156,6 +180,12 @@ define(
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("creates a form model without a location if not requested", function () {
|
||||||
|
expect(wizard.getFormStructure(false).sections.some(function(section){
|
||||||
|
return section.name === 'Location';
|
||||||
|
})).toEqual(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,8 @@ define(
|
|||||||
mockDomainObject,
|
mockDomainObject,
|
||||||
mockRootObject,
|
mockRootObject,
|
||||||
mockContext,
|
mockContext,
|
||||||
|
mockObjectService,
|
||||||
|
getObjectsPromise,
|
||||||
controller;
|
controller;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
@ -55,14 +57,29 @@ define(
|
|||||||
"context",
|
"context",
|
||||||
[ "getRoot" ]
|
[ "getRoot" ]
|
||||||
);
|
);
|
||||||
|
mockObjectService = jasmine.createSpyObj(
|
||||||
|
"objectService",
|
||||||
|
["getObjects"]
|
||||||
|
);
|
||||||
|
getObjectsPromise = jasmine.createSpyObj(
|
||||||
|
"promise",
|
||||||
|
["then"]
|
||||||
|
);
|
||||||
|
|
||||||
mockDomainObject.getCapability.andReturn(mockContext);
|
mockDomainObject.getCapability.andReturn(mockContext);
|
||||||
mockContext.getRoot.andReturn(mockRootObject);
|
mockContext.getRoot.andReturn(mockRootObject);
|
||||||
|
mockObjectService.getObjects.andReturn(getObjectsPromise);
|
||||||
|
|
||||||
mockScope.ngModel = {};
|
mockScope.ngModel = {};
|
||||||
mockScope.field = "someField";
|
mockScope.field = "someField";
|
||||||
|
|
||||||
controller = new LocatorController(mockScope, mockTimeout);
|
controller = new LocatorController(mockScope, mockTimeout, mockObjectService);
|
||||||
|
});
|
||||||
|
describe("when context is available", function () {
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
mockContext.getRoot.andReturn(mockRootObject);
|
||||||
|
controller = new LocatorController(mockScope, mockTimeout, mockObjectService);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("adds a treeModel to scope", function () {
|
it("adds a treeModel to scope", function () {
|
||||||
@ -121,7 +138,25 @@ define(
|
|||||||
expect(mockScope.ngModelController.$setValidity)
|
expect(mockScope.ngModelController.$setValidity)
|
||||||
.toHaveBeenCalledWith(jasmine.any(String), false);
|
.toHaveBeenCalledWith(jasmine.any(String), false);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
describe("when no context is available", function () {
|
||||||
|
var defaultRoot = "DEFAULT_ROOT";
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
mockContext.getRoot.andReturn(undefined);
|
||||||
|
getObjectsPromise.then.andCallFake(function(callback){
|
||||||
|
callback({'ROOT':defaultRoot});
|
||||||
|
});
|
||||||
|
controller = new LocatorController(mockScope, mockTimeout, mockObjectService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("provides a default context where none is available", function () {
|
||||||
|
mockScope.$watch.mostRecentCall.args[1](mockDomainObject);
|
||||||
|
mockTimeout.mostRecentCall.args[0]();
|
||||||
|
expect(mockScope.rootObject).toBe(defaultRoot);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -156,14 +156,11 @@ define([
|
|||||||
"name": "Save",
|
"name": "Save",
|
||||||
"description": "Save changes made to these objects.",
|
"description": "Save changes made to these objects.",
|
||||||
"depends": [
|
"depends": [
|
||||||
"$q",
|
|
||||||
"$location",
|
|
||||||
"$injector",
|
"$injector",
|
||||||
"urlService",
|
|
||||||
"navigationService",
|
|
||||||
"policyService",
|
"policyService",
|
||||||
"dialogService",
|
"dialogService",
|
||||||
"creationService"
|
"creationService",
|
||||||
|
"copyService"
|
||||||
],
|
],
|
||||||
"priority": "mandatory"
|
"priority": "mandatory"
|
||||||
},
|
},
|
||||||
|
@ -36,18 +36,22 @@ define(
|
|||||||
* @implements {Action}
|
* @implements {Action}
|
||||||
* @memberof platform/commonUI/edit
|
* @memberof platform/commonUI/edit
|
||||||
*/
|
*/
|
||||||
function SaveAction($q, $location, $injector, urlService, navigationService, policyService, dialogService, creationService, context) {
|
function SaveAction(
|
||||||
|
$injector,
|
||||||
|
policyService,
|
||||||
|
dialogService,
|
||||||
|
creationService,
|
||||||
|
copyService,
|
||||||
|
context
|
||||||
|
) {
|
||||||
this.domainObject = (context || {}).domainObject;
|
this.domainObject = (context || {}).domainObject;
|
||||||
this.$location = $location;
|
|
||||||
this.injectObjectService = function(){
|
this.injectObjectService = function(){
|
||||||
this.objectService = $injector.get("objectService");
|
this.objectService = $injector.get("objectService");
|
||||||
};
|
};
|
||||||
this.urlService = urlService;
|
|
||||||
this.navigationService = navigationService;
|
|
||||||
this.policyService = policyService;
|
this.policyService = policyService;
|
||||||
this.dialogService = dialogService;
|
this.dialogService = dialogService;
|
||||||
this.creationService = creationService;
|
this.creationService = creationService;
|
||||||
this.$q = $q;
|
this.copyService = copyService;
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveAction.prototype.getObjectService = function(){
|
SaveAction.prototype.getObjectService = function(){
|
||||||
@ -67,77 +71,29 @@ define(
|
|||||||
*/
|
*/
|
||||||
SaveAction.prototype.perform = function () {
|
SaveAction.prototype.perform = function () {
|
||||||
var domainObject = this.domainObject,
|
var domainObject = this.domainObject,
|
||||||
$location = this.$location,
|
copyService = this.copyService,
|
||||||
urlService = this.urlService,
|
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
function resolveWith(object){
|
function resolveWith(object){
|
||||||
return function() {
|
return function () {
|
||||||
return object;
|
return object;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function doWizardSave(parent) {
|
function doWizardSave(parent) {
|
||||||
var context = domainObject.getCapability("context"),
|
var context = domainObject.getCapability("context"),
|
||||||
wizard = new CreateWizard(domainObject.useCapability('type'), parent, self.policyService, domainObject.getModel());
|
wizard = new CreateWizard(
|
||||||
|
domainObject,
|
||||||
function mergeObjects(fromObject, toObject){
|
parent,
|
||||||
Object.keys(fromObject).forEach(function(key) {
|
self.policyService
|
||||||
toObject[key] = fromObject[key];
|
);
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create and persist the new object, based on user
|
|
||||||
// input.
|
|
||||||
function buildObjectFromInput(formValue) {
|
|
||||||
var parent = wizard.getLocation(formValue),
|
|
||||||
formModel = wizard.createModel(formValue);
|
|
||||||
|
|
||||||
formModel.location = parent.getId();
|
|
||||||
//Replace domain object model with model collected
|
|
||||||
// from user form.
|
|
||||||
domainObject.useCapability("mutation", function(){
|
|
||||||
//Replace object model with the model from the form
|
|
||||||
return formModel;
|
|
||||||
});
|
|
||||||
return domainObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getAllComposees(domainObject){
|
|
||||||
return domainObject.useCapability('composition');
|
|
||||||
}
|
|
||||||
|
|
||||||
function addComposeesToObject(object){
|
|
||||||
return function(composees){
|
|
||||||
return self.$q.all(composees.map(function (composee) {
|
|
||||||
return object.getCapability('composition').add(composee);
|
|
||||||
})).then(resolveWith(object));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add the composees of the 'virtual' object to the
|
|
||||||
* persisted object
|
|
||||||
* @param object
|
|
||||||
* @returns {*}
|
|
||||||
*/
|
|
||||||
function composeNewObject(object){
|
|
||||||
if (self.$q.when(object.hasCapability('composition') && domainObject.hasCapability('composition'))) {
|
|
||||||
return getAllComposees(domainObject)
|
|
||||||
.then(addComposeesToObject(object));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return self.dialogService
|
return self.dialogService
|
||||||
.getUserInput(wizard.getFormStructure(), wizard.getInitialFormValue())
|
.getUserInput(
|
||||||
.then(buildObjectFromInput);
|
wizard.getFormStructure(true),
|
||||||
}
|
wizard.getInitialFormValue()
|
||||||
|
)
|
||||||
|
.then(wizard.populateObjectFromInput.bind(wizard));
|
||||||
function persistObject(object){
|
|
||||||
return ((object.hasCapability('editor') && object.getCapability('editor').save(true)) ||
|
|
||||||
object.getCapability('persistence').persist())
|
|
||||||
.then(resolveWith(object));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchObject(objectId){
|
function fetchObject(objectId){
|
||||||
@ -150,14 +106,18 @@ define(
|
|||||||
return fetchObject(object.getModel().location);
|
return fetchObject(object.getModel().location);
|
||||||
}
|
}
|
||||||
|
|
||||||
function locateObjectInParent(parent){
|
function allowClone(objectToClone) {
|
||||||
parent.getCapability('composition').add(domainObject.getId());
|
return (objectToClone.getId() === domainObject.getId()) ||
|
||||||
return parent;
|
objectToClone.getCapability('location').isOriginal();
|
||||||
}
|
}
|
||||||
|
|
||||||
function doNothing() {
|
function cloneIntoParent(parent) {
|
||||||
// Create cancelled, do nothing
|
return copyService.perform(domainObject, parent, allowClone);
|
||||||
return false;
|
}
|
||||||
|
|
||||||
|
function cancelEditingAfterClone(clonedObject) {
|
||||||
|
return domainObject.getCapability("editor").cancel()
|
||||||
|
.then(resolveWith(clonedObject));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invoke any save behavior introduced by the editor capability;
|
// Invoke any save behavior introduced by the editor capability;
|
||||||
@ -167,18 +127,13 @@ define(
|
|||||||
function doSave() {
|
function doSave() {
|
||||||
//This is a new 'virtual object' that has not been persisted
|
//This is a new 'virtual object' that has not been persisted
|
||||||
// yet.
|
// yet.
|
||||||
if (!domainObject.getModel().persisted){
|
if (domainObject.getModel().persisted === undefined){
|
||||||
return getParent(domainObject)
|
return getParent(domainObject)
|
||||||
.then(doWizardSave)
|
.then(doWizardSave)
|
||||||
.then(persistObject)
|
.then(getParent)
|
||||||
.then(getParent)//Parent may have changed based
|
.then(cloneIntoParent)
|
||||||
// on user selection
|
.then(cancelEditingAfterClone)
|
||||||
.then(locateObjectInParent)
|
.catch(resolveWith(false));
|
||||||
.then(persistObject)
|
|
||||||
.then(function(){
|
|
||||||
return fetchObject(domainObject.getId());
|
|
||||||
})
|
|
||||||
.catch(doNothing);
|
|
||||||
} else {
|
} else {
|
||||||
return domainObject.getCapability("editor").save()
|
return domainObject.getCapability("editor").save()
|
||||||
.then(resolveWith(domainObject.getOriginalObject()));
|
.then(resolveWith(domainObject.getOriginalObject()));
|
||||||
@ -189,7 +144,7 @@ define(
|
|||||||
// UI, which will have been pushed atop the Browse UI.)
|
// UI, which will have been pushed atop the Browse UI.)
|
||||||
function returnToBrowse(object) {
|
function returnToBrowse(object) {
|
||||||
if (object) {
|
if (object) {
|
||||||
self.navigationService.setNavigation(object);
|
object.getCapability("action").perform("navigate");
|
||||||
}
|
}
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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(
|
||||||
|
['./EditableLookupCapability'],
|
||||||
|
function (EditableLookupCapability) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper for the "instantiation" capability;
|
||||||
|
* ensures that any domain objects instantiated in Edit mode
|
||||||
|
* are also wrapped as EditableDomainObjects.
|
||||||
|
*
|
||||||
|
* Meant specifically for use by EditableDomainObject and the
|
||||||
|
* associated cache; the constructor signature is particular
|
||||||
|
* to a pattern used there and may contain unused arguments.
|
||||||
|
* @constructor
|
||||||
|
* @memberof platform/commonUI/edit
|
||||||
|
* @implements {CompositionCapability}
|
||||||
|
*/
|
||||||
|
return function EditableInstantiationCapability(
|
||||||
|
contextCapability,
|
||||||
|
editableObject,
|
||||||
|
domainObject,
|
||||||
|
cache
|
||||||
|
) {
|
||||||
|
// This is a "lookup" style capability (it looks up other
|
||||||
|
// domain objects), but we do not want to return the same
|
||||||
|
// specific value every time (composition may change)
|
||||||
|
return new EditableLookupCapability(
|
||||||
|
contextCapability,
|
||||||
|
editableObject,
|
||||||
|
domainObject,
|
||||||
|
cache,
|
||||||
|
false // Not idempotent
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
@ -45,7 +45,8 @@ define(
|
|||||||
cache,
|
cache,
|
||||||
idempotent
|
idempotent
|
||||||
) {
|
) {
|
||||||
var capability = Object.create(contextCapability);
|
var capability = Object.create(contextCapability),
|
||||||
|
method;
|
||||||
|
|
||||||
// Check for domain object interface. If something has these
|
// Check for domain object interface. If something has these
|
||||||
// three methods, we assume it's a domain object.
|
// three methods, we assume it's a domain object.
|
||||||
@ -114,7 +115,9 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Wrap all methods; return only editable domain objects.
|
// Wrap all methods; return only editable domain objects.
|
||||||
Object.keys(contextCapability).forEach(wrapMethod);
|
for (method in contextCapability) {
|
||||||
|
wrapMethod(method);
|
||||||
|
}
|
||||||
|
|
||||||
return capability;
|
return capability;
|
||||||
};
|
};
|
||||||
|
@ -81,7 +81,8 @@ define(
|
|||||||
var domainObject = this.domainObject,
|
var domainObject = this.domainObject,
|
||||||
editableObject = this.editableObject,
|
editableObject = this.editableObject,
|
||||||
self = this,
|
self = this,
|
||||||
cache = this.cache;
|
cache = this.cache,
|
||||||
|
returnPromise;
|
||||||
|
|
||||||
// Update the underlying, "real" domain object's model
|
// Update the underlying, "real" domain object's model
|
||||||
// with changes made to the copy used for editing.
|
// with changes made to the copy used for editing.
|
||||||
@ -99,14 +100,18 @@ define(
|
|||||||
editableObject.getCapability("status").set("editing", false);
|
editableObject.getCapability("status").set("editing", false);
|
||||||
|
|
||||||
if (nonrecursive) {
|
if (nonrecursive) {
|
||||||
return resolvePromise(doMutate())
|
returnPromise = resolvePromise(doMutate())
|
||||||
.then(doPersist)
|
.then(doPersist)
|
||||||
.then(function(){
|
.then(function(){
|
||||||
self.cancel();
|
self.cancel();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
return resolvePromise(cache.saveAll());
|
returnPromise = resolvePromise(cache.saveAll());
|
||||||
}
|
}
|
||||||
|
//Return the original (non-editable) object
|
||||||
|
return returnPromise.then(function() {
|
||||||
|
return domainObject.getOriginalObject ? domainObject.getOriginalObject() : domainObject;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -120,7 +125,7 @@ define(
|
|||||||
EditorCapability.prototype.cancel = function () {
|
EditorCapability.prototype.cancel = function () {
|
||||||
this.editableObject.getCapability("status").set("editing", false);
|
this.editableObject.getCapability("status").set("editing", false);
|
||||||
//TODO: Reset the cache as well here.
|
//TODO: Reset the cache as well here.
|
||||||
this.cache.markClean(this.editableObject);
|
this.cache.markClean();
|
||||||
return resolvePromise(undefined);
|
return resolvePromise(undefined);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ define(
|
|||||||
'../capabilities/EditableContextCapability',
|
'../capabilities/EditableContextCapability',
|
||||||
'../capabilities/EditableCompositionCapability',
|
'../capabilities/EditableCompositionCapability',
|
||||||
'../capabilities/EditableRelationshipCapability',
|
'../capabilities/EditableRelationshipCapability',
|
||||||
|
'../capabilities/EditableInstantiationCapability',
|
||||||
'../capabilities/EditorCapability',
|
'../capabilities/EditorCapability',
|
||||||
'../capabilities/EditableActionCapability',
|
'../capabilities/EditableActionCapability',
|
||||||
'./EditableDomainObjectCache'
|
'./EditableDomainObjectCache'
|
||||||
@ -45,6 +46,7 @@ define(
|
|||||||
EditableContextCapability,
|
EditableContextCapability,
|
||||||
EditableCompositionCapability,
|
EditableCompositionCapability,
|
||||||
EditableRelationshipCapability,
|
EditableRelationshipCapability,
|
||||||
|
EditableInstantiationCapability,
|
||||||
EditorCapability,
|
EditorCapability,
|
||||||
EditableActionCapability,
|
EditableActionCapability,
|
||||||
EditableDomainObjectCache
|
EditableDomainObjectCache
|
||||||
@ -56,6 +58,7 @@ define(
|
|||||||
context: EditableContextCapability,
|
context: EditableContextCapability,
|
||||||
composition: EditableCompositionCapability,
|
composition: EditableCompositionCapability,
|
||||||
relationship: EditableRelationshipCapability,
|
relationship: EditableRelationshipCapability,
|
||||||
|
instantiation: EditableInstantiationCapability,
|
||||||
editor: EditorCapability
|
editor: EditorCapability
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -126,7 +126,14 @@ define(
|
|||||||
* @param {DomainObject} domainObject the domain object
|
* @param {DomainObject} domainObject the domain object
|
||||||
*/
|
*/
|
||||||
EditableDomainObjectCache.prototype.markClean = function (domainObject) {
|
EditableDomainObjectCache.prototype.markClean = function (domainObject) {
|
||||||
|
var self = this;
|
||||||
|
if (!domainObject) {
|
||||||
|
Object.keys(this.dirtyObjects).forEach(function(key) {
|
||||||
|
delete self.dirtyObjects[key];
|
||||||
|
});
|
||||||
|
} else {
|
||||||
delete this.dirtyObjects[domainObject.getId()];
|
delete this.dirtyObjects[domainObject.getId()];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -118,6 +118,29 @@ define(
|
|||||||
expect(mockContext.getDomainObject.calls.length).toEqual(2);
|
expect(mockContext.getDomainObject.calls.length).toEqual(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("wraps inherited methods", function () {
|
||||||
|
var CapabilityClass = function(){
|
||||||
|
};
|
||||||
|
CapabilityClass.prototype.inheritedMethod=function () {
|
||||||
|
return "an inherited method";
|
||||||
|
};
|
||||||
|
|
||||||
|
mockContext = new CapabilityClass();
|
||||||
|
|
||||||
|
capability = new EditableLookupCapability(
|
||||||
|
mockContext,
|
||||||
|
mockEditableObject,
|
||||||
|
mockDomainObject,
|
||||||
|
factory,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
expect(capability.inheritedMethod()).toEqual("an inherited method");
|
||||||
|
expect(capability.hasOwnProperty('inheritedMethod')).toBe(true);
|
||||||
|
// The presence of an own property indicates that the method
|
||||||
|
// has been wrapped on the object itself and this is a valid
|
||||||
|
// test that the inherited method has been wrapped.
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
@ -129,6 +129,10 @@ define([
|
|||||||
{
|
{
|
||||||
"stylesheetUrl": "css/normalize.min.css",
|
"stylesheetUrl": "css/normalize.min.css",
|
||||||
"priority": "mandatory"
|
"priority": "mandatory"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"stylesheetUrl": "css/reset.css",
|
||||||
|
"priority": "mandatory"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"templates": [
|
"templates": [
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
# Require any additional compass plugins here.
|
|
||||||
# require "compass-growl"
|
|
||||||
|
|
||||||
# Set this to the root of your project when deployed:
|
|
||||||
http_path = "/"
|
|
||||||
css_dir = "css"
|
|
||||||
sass_dir = "sass"
|
|
||||||
images_dir = "images"
|
|
||||||
javascripts_dir = "js"
|
|
||||||
|
|
||||||
# You can select your preferred output style here (can be overridden via the command line):
|
|
||||||
# :expanded, :compressed, :nested
|
|
||||||
output_style = :nested
|
|
||||||
|
|
||||||
# To enable relative paths to assets via compass helper functions. Uncomment:
|
|
||||||
relative_assets = true
|
|
||||||
|
|
||||||
# To disable debugging comments that display the original location of your selectors. Uncomment:
|
|
||||||
# line_comments = false
|
|
||||||
|
|
||||||
|
|
||||||
# If you prefer the indented syntax, you might want to regenerate this
|
|
||||||
# project again passing --syntax sass, or you can uncomment this:
|
|
||||||
# preferred_syntax = :sass
|
|
||||||
# and then run:
|
|
||||||
# sass-convert -R --from scss --to sass vfn_platform/static/sass scss && rm -rf sass && mv scss sass
|
|
48
platform/commonUI/general/res/css/reset.css
Normal file
48
platform/commonUI/general/res/css/reset.css
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* http://meyerweb.com/eric/tools/css/reset/
|
||||||
|
v2.0 | 20110126
|
||||||
|
License: none (public domain)
|
||||||
|
*/
|
||||||
|
|
||||||
|
html, body, div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article, aside, details, figcaption, figure,
|
||||||
|
footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
ol, ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none;
|
||||||
|
}
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
@ -1,19 +1,43 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"name": "WTD Symbols",
|
"name": "WTD Symbols",
|
||||||
"lastOpened": 1446670352108,
|
"lastOpened": 1455833272792,
|
||||||
"created": 1446670349721
|
"created": 1455833268424
|
||||||
},
|
},
|
||||||
"iconSets": [
|
"iconSets": [
|
||||||
{
|
{
|
||||||
"selection": [
|
"selection": [
|
||||||
|
{
|
||||||
|
"order": 119,
|
||||||
|
"id": 96,
|
||||||
|
"prevSize": 32,
|
||||||
|
"code": 58905,
|
||||||
|
"name": "icon-bullet",
|
||||||
|
"tempChar": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 120,
|
||||||
|
"id": 95,
|
||||||
|
"prevSize": 32,
|
||||||
|
"code": 58904,
|
||||||
|
"name": "icon-session",
|
||||||
|
"tempChar": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 118,
|
||||||
|
"id": 94,
|
||||||
|
"prevSize": 32,
|
||||||
|
"code": 58903,
|
||||||
|
"name": "icon-topic",
|
||||||
|
"tempChar": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"order": 116,
|
"order": 116,
|
||||||
"id": 93,
|
"id": 93,
|
||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58902,
|
"code": 58902,
|
||||||
"name": "icon-eye-open-no-gleam",
|
"name": "icon-eye-open-no-gleam",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 115,
|
"order": 115,
|
||||||
@ -21,7 +45,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58901,
|
"code": 58901,
|
||||||
"name": "icon-eye-open",
|
"name": "icon-eye-open",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 110,
|
"order": 110,
|
||||||
@ -29,7 +53,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58899,
|
"code": 58899,
|
||||||
"name": "icon-collapse-pane-left",
|
"name": "icon-collapse-pane-left",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 111,
|
"order": 111,
|
||||||
@ -37,7 +61,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58900,
|
"code": 58900,
|
||||||
"name": "icon-collapse-pane-right",
|
"name": "icon-collapse-pane-right",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 109,
|
"order": 109,
|
||||||
@ -45,7 +69,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58898,
|
"code": 58898,
|
||||||
"name": "icon-save",
|
"name": "icon-save",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 108,
|
"order": 108,
|
||||||
@ -53,7 +77,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58897,
|
"code": 58897,
|
||||||
"name": "icon-dataset",
|
"name": "icon-dataset",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 90,
|
"order": 90,
|
||||||
@ -61,7 +85,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58896,
|
"code": 58896,
|
||||||
"name": "icon-bell",
|
"name": "icon-bell",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 91,
|
"order": 91,
|
||||||
@ -69,7 +93,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58889,
|
"code": 58889,
|
||||||
"name": "icon-hourglass",
|
"name": "icon-hourglass",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 92,
|
"order": 92,
|
||||||
@ -82,7 +106,7 @@
|
|||||||
58890
|
58890
|
||||||
],
|
],
|
||||||
"name": "icon-info-v15",
|
"name": "icon-info-v15",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 93,
|
"order": 93,
|
||||||
@ -90,7 +114,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58887,
|
"code": 58887,
|
||||||
"name": "icon-x-in-circle",
|
"name": "icon-x-in-circle",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 94,
|
"order": 94,
|
||||||
@ -98,7 +122,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58881,
|
"code": 58881,
|
||||||
"name": "icon-datatable",
|
"name": "icon-datatable",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 95,
|
"order": 95,
|
||||||
@ -106,7 +130,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58882,
|
"code": 58882,
|
||||||
"name": "icon-tabular-scrolling",
|
"name": "icon-tabular-scrolling",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 96,
|
"order": 96,
|
||||||
@ -114,7 +138,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58884,
|
"code": 58884,
|
||||||
"name": "icon-tabular",
|
"name": "icon-tabular",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 97,
|
"order": 97,
|
||||||
@ -122,7 +146,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58885,
|
"code": 58885,
|
||||||
"name": "icon-calendar",
|
"name": "icon-calendar",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 98,
|
"order": 98,
|
||||||
@ -130,7 +154,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58886,
|
"code": 58886,
|
||||||
"name": "icon-paint-bucket",
|
"name": "icon-paint-bucket",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 99,
|
"order": 99,
|
||||||
@ -138,7 +162,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 123,
|
"code": 123,
|
||||||
"name": "icon-pointer-left",
|
"name": "icon-pointer-left",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 100,
|
"order": 100,
|
||||||
@ -146,7 +170,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 125,
|
"code": 125,
|
||||||
"name": "icon-pointer-right",
|
"name": "icon-pointer-right",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 101,
|
"order": 101,
|
||||||
@ -154,7 +178,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 80,
|
"code": 80,
|
||||||
"name": "icon-person",
|
"name": "icon-person",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 102,
|
"order": 102,
|
||||||
@ -162,7 +186,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 232,
|
"code": 232,
|
||||||
"name": "icon-chain-links",
|
"name": "icon-chain-links",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 103,
|
"order": 103,
|
||||||
@ -170,7 +194,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 115,
|
"code": 115,
|
||||||
"name": "icon-database-in-brackets",
|
"name": "icon-database-in-brackets",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 104,
|
"order": 104,
|
||||||
@ -178,7 +202,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 114,
|
"code": 114,
|
||||||
"name": "icon-refresh",
|
"name": "icon-refresh",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 105,
|
"order": 105,
|
||||||
@ -186,7 +210,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 108,
|
"code": 108,
|
||||||
"name": "icon-lock",
|
"name": "icon-lock",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 106,
|
"order": 106,
|
||||||
@ -194,7 +218,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 51,
|
"code": 51,
|
||||||
"name": "icon-box-with-dashed-lines",
|
"name": "icon-box-with-dashed-lines",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 10,
|
"order": 10,
|
||||||
@ -202,7 +226,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58880,
|
"code": 58880,
|
||||||
"name": "icon-box-with-arrow-cursor",
|
"name": "icon-box-with-arrow-cursor",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 11,
|
"order": 11,
|
||||||
@ -210,7 +234,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 65,
|
"code": 65,
|
||||||
"name": "icon-activity-mode",
|
"name": "icon-activity-mode",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 12,
|
"order": 12,
|
||||||
@ -218,7 +242,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 97,
|
"code": 97,
|
||||||
"name": "icon-activity",
|
"name": "icon-activity",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 87,
|
"order": 87,
|
||||||
@ -226,7 +250,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 33,
|
"code": 33,
|
||||||
"name": "icon-alert-rect",
|
"name": "icon-alert-rect",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 14,
|
"order": 14,
|
||||||
@ -234,7 +258,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58883,
|
"code": 58883,
|
||||||
"name": "icon-alert-triangle",
|
"name": "icon-alert-triangle",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 15,
|
"order": 15,
|
||||||
@ -242,7 +266,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 238,
|
"code": 238,
|
||||||
"name": "icon-arrow-double-down",
|
"name": "icon-arrow-double-down",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 16,
|
"order": 16,
|
||||||
@ -250,7 +274,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 235,
|
"code": 235,
|
||||||
"name": "icon-arrow-double-up",
|
"name": "icon-arrow-double-up",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 2,
|
"order": 2,
|
||||||
@ -258,7 +282,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 118,
|
"code": 118,
|
||||||
"name": "icon-arrow-down",
|
"name": "icon-arrow-down",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 19,
|
"order": 19,
|
||||||
@ -266,7 +290,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 60,
|
"code": 60,
|
||||||
"name": "icon-arrow-left",
|
"name": "icon-arrow-left",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 20,
|
"order": 20,
|
||||||
@ -274,7 +298,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 62,
|
"code": 62,
|
||||||
"name": "icon-arrow-right",
|
"name": "icon-arrow-right",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 21,
|
"order": 21,
|
||||||
@ -282,7 +306,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 236,
|
"code": 236,
|
||||||
"name": "icon-arrow-tall-down",
|
"name": "icon-arrow-tall-down",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 22,
|
"order": 22,
|
||||||
@ -290,7 +314,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 237,
|
"code": 237,
|
||||||
"name": "icon-arrow-tall-up",
|
"name": "icon-arrow-tall-up",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 23,
|
"order": 23,
|
||||||
@ -298,7 +322,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 94,
|
"code": 94,
|
||||||
"name": "icon-arrow-up",
|
"name": "icon-arrow-up",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 24,
|
"order": 24,
|
||||||
@ -306,7 +330,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 73,
|
"code": 73,
|
||||||
"name": "icon-arrows-out",
|
"name": "icon-arrows-out",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 25,
|
"order": 25,
|
||||||
@ -314,7 +338,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58893,
|
"code": 58893,
|
||||||
"name": "icon-arrows-right-left",
|
"name": "icon-arrows-right-left",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 33,
|
"order": 33,
|
||||||
@ -322,7 +346,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 53,
|
"code": 53,
|
||||||
"name": "icon-arrows-up-down",
|
"name": "icon-arrows-up-down",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 26,
|
"order": 26,
|
||||||
@ -330,7 +354,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 42,
|
"code": 42,
|
||||||
"name": "icon-asterisk",
|
"name": "icon-asterisk",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 27,
|
"order": 27,
|
||||||
@ -338,7 +362,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 72,
|
"code": 72,
|
||||||
"name": "icon-autoflow-tabular",
|
"name": "icon-autoflow-tabular",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 28,
|
"order": 28,
|
||||||
@ -346,7 +370,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 224,
|
"code": 224,
|
||||||
"name": "icon-box",
|
"name": "icon-box",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 29,
|
"order": 29,
|
||||||
@ -354,7 +378,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 50,
|
"code": 50,
|
||||||
"name": "icon-check",
|
"name": "icon-check",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 30,
|
"order": 30,
|
||||||
@ -362,7 +386,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 67,
|
"code": 67,
|
||||||
"name": "icon-clock",
|
"name": "icon-clock",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 31,
|
"order": 31,
|
||||||
@ -370,7 +394,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 46,
|
"code": 46,
|
||||||
"name": "icon-connectivity",
|
"name": "icon-connectivity",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 32,
|
"order": 32,
|
||||||
@ -378,7 +402,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 100,
|
"code": 100,
|
||||||
"name": "icon-database-query",
|
"name": "icon-database-query",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 17,
|
"order": 17,
|
||||||
@ -386,7 +410,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 68,
|
"code": 68,
|
||||||
"name": "icon-database",
|
"name": "icon-database",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 35,
|
"order": 35,
|
||||||
@ -394,7 +418,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 81,
|
"code": 81,
|
||||||
"name": "icon-dictionary",
|
"name": "icon-dictionary",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 36,
|
"order": 36,
|
||||||
@ -402,7 +426,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 242,
|
"code": 242,
|
||||||
"name": "icon-duplicate",
|
"name": "icon-duplicate",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 37,
|
"order": 37,
|
||||||
@ -410,7 +434,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 102,
|
"code": 102,
|
||||||
"name": "icon-folder-new",
|
"name": "icon-folder-new",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 38,
|
"order": 38,
|
||||||
@ -418,7 +442,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 70,
|
"code": 70,
|
||||||
"name": "icon-folder",
|
"name": "icon-folder",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 39,
|
"order": 39,
|
||||||
@ -426,7 +450,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 95,
|
"code": 95,
|
||||||
"name": "icon-fullscreen-collapse",
|
"name": "icon-fullscreen-collapse",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 40,
|
"order": 40,
|
||||||
@ -434,7 +458,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 122,
|
"code": 122,
|
||||||
"name": "icon-fullscreen-expand",
|
"name": "icon-fullscreen-expand",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 41,
|
"order": 41,
|
||||||
@ -442,7 +466,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 71,
|
"code": 71,
|
||||||
"name": "icon-gear",
|
"name": "icon-gear",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 49,
|
"order": 49,
|
||||||
@ -450,7 +474,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 227,
|
"code": 227,
|
||||||
"name": "icon-image",
|
"name": "icon-image",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 42,
|
"order": 42,
|
||||||
@ -458,7 +482,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 225,
|
"code": 225,
|
||||||
"name": "icon-layers",
|
"name": "icon-layers",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 43,
|
"order": 43,
|
||||||
@ -466,7 +490,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 76,
|
"code": 76,
|
||||||
"name": "icon-layout",
|
"name": "icon-layout",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 44,
|
"order": 44,
|
||||||
@ -474,7 +498,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 226,
|
"code": 226,
|
||||||
"name": "icon-line-horz",
|
"name": "icon-line-horz",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 75,
|
"order": 75,
|
||||||
@ -482,7 +506,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 244,
|
"code": 244,
|
||||||
"name": "icon-link",
|
"name": "icon-link",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 46,
|
"order": 46,
|
||||||
@ -490,7 +514,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 88,
|
"code": 88,
|
||||||
"name": "icon-magnify-in",
|
"name": "icon-magnify-in",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 47,
|
"order": 47,
|
||||||
@ -498,7 +522,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 89,
|
"code": 89,
|
||||||
"name": "icon-magnify-out",
|
"name": "icon-magnify-out",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 48,
|
"order": 48,
|
||||||
@ -506,7 +530,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 77,
|
"code": 77,
|
||||||
"name": "icon-magnify",
|
"name": "icon-magnify",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 34,
|
"order": 34,
|
||||||
@ -514,7 +538,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 109,
|
"code": 109,
|
||||||
"name": "icon-menu",
|
"name": "icon-menu",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 50,
|
"order": 50,
|
||||||
@ -522,7 +546,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 243,
|
"code": 243,
|
||||||
"name": "icon-move",
|
"name": "icon-move",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 51,
|
"order": 51,
|
||||||
@ -530,7 +554,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 121,
|
"code": 121,
|
||||||
"name": "icon-new-window",
|
"name": "icon-new-window",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 52,
|
"order": 52,
|
||||||
@ -538,7 +562,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 111,
|
"code": 111,
|
||||||
"name": "icon-object",
|
"name": "icon-object",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 73,
|
"order": 73,
|
||||||
@ -546,7 +570,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 63,
|
"code": 63,
|
||||||
"name": "icon-object-unknown",
|
"name": "icon-object-unknown",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 53,
|
"order": 53,
|
||||||
@ -554,7 +578,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 86,
|
"code": 86,
|
||||||
"name": "icon-packet",
|
"name": "icon-packet",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 54,
|
"order": 54,
|
||||||
@ -562,7 +586,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 234,
|
"code": 234,
|
||||||
"name": "icon-page",
|
"name": "icon-page",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 55,
|
"order": 55,
|
||||||
@ -570,7 +594,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 241,
|
"code": 241,
|
||||||
"name": "icon-pause",
|
"name": "icon-pause",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 56,
|
"order": 56,
|
||||||
@ -578,7 +602,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 112,
|
"code": 112,
|
||||||
"name": "icon-pencil",
|
"name": "icon-pencil",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 65,
|
"order": 65,
|
||||||
@ -586,7 +610,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 79,
|
"code": 79,
|
||||||
"name": "icon-people",
|
"name": "icon-people",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 57,
|
"order": 57,
|
||||||
@ -594,7 +618,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 239,
|
"code": 239,
|
||||||
"name": "icon-play",
|
"name": "icon-play",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 58,
|
"order": 58,
|
||||||
@ -602,7 +626,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 233,
|
"code": 233,
|
||||||
"name": "icon-plot-resource",
|
"name": "icon-plot-resource",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 59,
|
"order": 59,
|
||||||
@ -610,7 +634,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 43,
|
"code": 43,
|
||||||
"name": "icon-plus",
|
"name": "icon-plus",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 60,
|
"order": 60,
|
||||||
@ -618,7 +642,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 45,
|
"code": 45,
|
||||||
"name": "icon-minus",
|
"name": "icon-minus",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 61,
|
"order": 61,
|
||||||
@ -626,7 +650,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 54,
|
"code": 54,
|
||||||
"name": "icon-sine",
|
"name": "icon-sine",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 62,
|
"order": 62,
|
||||||
@ -634,7 +658,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 228,
|
"code": 228,
|
||||||
"name": "icon-T",
|
"name": "icon-T",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 63,
|
"order": 63,
|
||||||
@ -642,7 +666,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 116,
|
"code": 116,
|
||||||
"name": "icon-telemetry-panel",
|
"name": "icon-telemetry-panel",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 64,
|
"order": 64,
|
||||||
@ -650,7 +674,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 84,
|
"code": 84,
|
||||||
"name": "icon-telemetry",
|
"name": "icon-telemetry",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 18,
|
"order": 18,
|
||||||
@ -658,7 +682,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 246,
|
"code": 246,
|
||||||
"name": "icon-thumbs-strip",
|
"name": "icon-thumbs-strip",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 67,
|
"order": 67,
|
||||||
@ -666,7 +690,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 83,
|
"code": 83,
|
||||||
"name": "icon-timeline",
|
"name": "icon-timeline",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 68,
|
"order": 68,
|
||||||
@ -674,7 +698,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 245,
|
"code": 245,
|
||||||
"name": "icon-timer",
|
"name": "icon-timer",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 69,
|
"order": 69,
|
||||||
@ -682,7 +706,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 90,
|
"code": 90,
|
||||||
"name": "icon-trash",
|
"name": "icon-trash",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 70,
|
"order": 70,
|
||||||
@ -690,7 +714,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 229,
|
"code": 229,
|
||||||
"name": "icon-two-parts-both",
|
"name": "icon-two-parts-both",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 71,
|
"order": 71,
|
||||||
@ -698,7 +722,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 231,
|
"code": 231,
|
||||||
"name": "icon-two-parts-one-only",
|
"name": "icon-two-parts-one-only",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 72,
|
"order": 72,
|
||||||
@ -706,7 +730,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 120,
|
"code": 120,
|
||||||
"name": "icon-x-heavy",
|
"name": "icon-x-heavy",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"order": 66,
|
"order": 66,
|
||||||
@ -714,7 +738,7 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58946,
|
"code": 58946,
|
||||||
"name": "icon-x",
|
"name": "icon-x",
|
||||||
"tempChar": ""
|
"tempChar": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"id": 2,
|
"id": 2,
|
||||||
@ -729,6 +753,65 @@
|
|||||||
"height": 1024,
|
"height": 1024,
|
||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"icons": [
|
"icons": [
|
||||||
|
{
|
||||||
|
"id": 96,
|
||||||
|
"paths": [
|
||||||
|
"M832 752c0 44-36 80-80 80h-480c-44 0-80-36-80-80v-480c0-44 36-80 80-80h480c44 0 80 36 80 80v480z"
|
||||||
|
],
|
||||||
|
"attrs": [],
|
||||||
|
"isMulticolor": false,
|
||||||
|
"grid": 0,
|
||||||
|
"tags": [
|
||||||
|
"icon-bullet"
|
||||||
|
],
|
||||||
|
"colorPermutations": {
|
||||||
|
"16161751": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 95,
|
||||||
|
"paths": [
|
||||||
|
"M923 438.2l-151-100.6c-36-24-103.8-24-139.8 0l-151 100.6c-44.6 29.8-102.6 46.2-163 46.2s-118.4-16.4-163-46.2l-151.4-100.6c-1.8-1.2-3.8-2.4-5.8-3.6v208c36.6 7.4 70.6 20.8 99 39.8l151 100.6c36 24 103.8 24 139.8 0l151-100.6c44.6-29.8 102.6-46.2 163-46.2s118.4 16.4 163 46.2l151 100.6c1.8 1.2 3.8 2.4 5.8 3.6v-208c-36.2-7.2-70.2-20.8-98.6-39.8z",
|
||||||
|
"M923 822.2l-151-100.6c-36-24-103.8-24-139.8 0l-151 100.6c-44.6 29.8-102.6 46.2-163 46.2s-118.4-16.4-163-46.2l-151.4-100.6c-1.8-1.2-3.8-2.4-5.8-3.6v112c0 105.6 86.4 192 192 192h640c94.8 0 174.2-69.8 189.4-160.4-35.6-7.4-68.6-20.8-96.4-39.4z",
|
||||||
|
"M97 197.8l151 100.6c36 24 103.8 24 139.8 0l151-100.6c44.8-29.8 102.6-46.2 163.2-46.2s118.4 16.4 163 46.2l151 100.6c1.8 1.2 3.8 2.4 5.8 3.6v-112c0-105.6-86.4-192-192-192h-639.8c-94.8 0-174.2 69.8-189.4 160.4 35.6 7.4 68.6 20.8 96.4 39.4z"
|
||||||
|
],
|
||||||
|
"attrs": [],
|
||||||
|
"isMulticolor": false,
|
||||||
|
"grid": 0,
|
||||||
|
"tags": [
|
||||||
|
"icon-session"
|
||||||
|
],
|
||||||
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 94,
|
||||||
|
"paths": [
|
||||||
|
"M546.4 431.2l32-24c31.6-23.8 91.6-23.8 123.2 0l32 24c10.8 8 22.2 15.2 34.4 21.4v-201.2c-38-19.6-82.2-30-128-30-60.4 0-118.2 18.2-162.4 51.4l-32 24c-31.6 23.8-91.6 23.8-123.2 0l-32-24c-10.8-8-22.2-15.2-34.4-21.4v201.2c38 19.6 82.2 30 128 30 60.4 0 118.2-18.2 162.4-51.4z",
|
||||||
|
"M640 541.4c-60.4 0-118.2 18.2-162.4 51.4l-32 24c-31.6 23.8-91.6 23.8-123.2 0l-32-24c-10.8-8-22.2-15.2-34.4-21.4v201.2c38 19.6 82.2 30 128 30 60.4 0 118.2-18.2 162.4-51.4l32-24c31.6-23.8 91.6-23.8 123.2 0l32 24c10.8 8 22.2 15.2 34.4 21.4v-201.2c-38-19.6-82.2-30-128-30z",
|
||||||
|
"M832 0h-128v192h127.6c0.2 0 0.2 0.2 0.4 0.4v639.4c0 0.2-0.2 0.2-0.4 0.4h-127.6v192h128c105.6 0 192-86.4 192-192v-640.2c0-105.6-86.4-192-192-192z",
|
||||||
|
"M320 832h-127.6c-0.2 0-0.2-0.2-0.4-0.4v-639.4c0-0.2 0.2-0.2 0.4-0.4h127.6v-191.8h-128c-105.6 0-192 86.4-192 192v640c0 105.6 86.4 192 192 192h128v-192z"
|
||||||
|
],
|
||||||
|
"attrs": [],
|
||||||
|
"isMulticolor": false,
|
||||||
|
"grid": 0,
|
||||||
|
"tags": [
|
||||||
|
"icon-topic"
|
||||||
|
],
|
||||||
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": 93,
|
"id": 93,
|
||||||
"paths": [
|
"paths": [
|
||||||
@ -749,6 +832,10 @@
|
|||||||
"icon-eye-open-no-gleam"
|
"icon-eye-open-no-gleam"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
@ -775,6 +862,10 @@
|
|||||||
"icon-crosshair"
|
"icon-crosshair"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
@ -801,6 +892,10 @@
|
|||||||
"icon-collapse-pane-left"
|
"icon-collapse-pane-left"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -827,6 +922,10 @@
|
|||||||
"icon-collapse-pane-right"
|
"icon-collapse-pane-right"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -853,6 +952,10 @@
|
|||||||
"icon-save-v2"
|
"icon-save-v2"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -872,6 +975,7 @@
|
|||||||
"icon-dataset"
|
"icon-dataset"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [],
|
||||||
"125525525516161751": []
|
"125525525516161751": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -895,6 +999,10 @@
|
|||||||
"icon-bell"
|
"icon-bell"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
@ -921,6 +1029,10 @@
|
|||||||
"icon-hourglass"
|
"icon-hourglass"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
@ -943,6 +1055,9 @@
|
|||||||
"icon-info-v1.5"
|
"icon-info-v1.5"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
0
|
0
|
||||||
]
|
]
|
||||||
@ -1336,6 +1451,10 @@
|
|||||||
"icon-box-with-arrow-cursor"
|
"icon-box-with-arrow-cursor"
|
||||||
],
|
],
|
||||||
"colorPermutations": {
|
"colorPermutations": {
|
||||||
|
"16161751": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
"125525525516161751": [
|
"125525525516161751": [
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -2367,12 +2486,6 @@
|
|||||||
161,
|
161,
|
||||||
75,
|
75,
|
||||||
1
|
1
|
||||||
],
|
|
||||||
[
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
Binary file not shown.
@ -94,7 +94,8 @@
|
|||||||
<glyph unicode="" glyph-name="icon-collapse-pane-right" d="M768 960h256v-1024h-256c-105.6 0-192 86.4-192 192v640c0 105.6 86.4 192 192 192zM512 640l-512-320v640z" />
|
<glyph unicode="" glyph-name="icon-collapse-pane-right" d="M768 960h256v-1024h-256c-105.6 0-192 86.4-192 192v640c0 105.6 86.4 192 192 192zM512 640l-512-320v640z" />
|
||||||
<glyph unicode="" glyph-name="icon-eye-open" d="M512 896c-261 0-480.6-195.4-512-448 31.4-252.6 251-448 512-448s480.6 195.4 512 448c-31.4 252.6-251 448-512 448zM768.2 225.4c-71.4-62.8-162.8-97.4-257.6-97.4s-186.2 34.6-257.6 97.4c-66.6 58.6-110.6 137.2-125 222.6 0 0 0 0.2 0 0.2 76.8 154 220.8 257.6 384 257.6s307.2-103.8 384-257.6c0 0 0-0.2 0-0.2-14.4-85.4-61.2-164-127.8-222.6zM512 672c-123.8 0-224-100.2-224-224s100.2-224 224-224 224 100.2 224 224-100.2 224-224 224z" />
|
<glyph unicode="" glyph-name="icon-eye-open" d="M512 896c-261 0-480.6-195.4-512-448 31.4-252.6 251-448 512-448s480.6 195.4 512 448c-31.4 252.6-251 448-512 448zM768.2 225.4c-71.4-62.8-162.8-97.4-257.6-97.4s-186.2 34.6-257.6 97.4c-66.6 58.6-110.6 137.2-125 222.6 0 0 0 0.2 0 0.2 76.8 154 220.8 257.6 384 257.6s307.2-103.8 384-257.6c0 0 0-0.2 0-0.2-14.4-85.4-61.2-164-127.8-222.6zM512 672c-123.8 0-224-100.2-224-224s100.2-224 224-224 224 100.2 224 224-100.2 224-224 224z" />
|
||||||
<glyph unicode="" glyph-name="icon-eye-open-no-gleam" d="M512 896c-261 0-480.6-195.4-512-448 31.4-252.6 251-448 512-448s480.6 195.4 512 448c-31.4 252.6-251 448-512 448zM768.2 225.4c-71.4-62.8-162.8-97.4-257.6-97.4s-186.2 34.6-257.6 97.4c-66.6 58.6-110.6 137.2-125 222.6 0 0 0 0.2 0 0.2 76.8 154 220.8 257.6 384 257.6s307.2-103.8 384-257.6c0 0 0-0.2 0-0.2-14.4-85.4-61.2-164-127.8-222.6zM512 672c-123.8 0-224-100.2-224-224s100.2-224 224-224 224 100.2 224 224-100.2 224-224 224zM576 416c-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-53-43-96-96-96z" />
|
<glyph unicode="" glyph-name="icon-eye-open-no-gleam" d="M512 896c-261 0-480.6-195.4-512-448 31.4-252.6 251-448 512-448s480.6 195.4 512 448c-31.4 252.6-251 448-512 448zM768.2 225.4c-71.4-62.8-162.8-97.4-257.6-97.4s-186.2 34.6-257.6 97.4c-66.6 58.6-110.6 137.2-125 222.6 0 0 0 0.2 0 0.2 76.8 154 220.8 257.6 384 257.6s307.2-103.8 384-257.6c0 0 0-0.2 0-0.2-14.4-85.4-61.2-164-127.8-222.6zM512 672c-123.8 0-224-100.2-224-224s100.2-224 224-224 224 100.2 224 224-100.2 224-224 224zM576 416c-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-53-43-96-96-96z" />
|
||||||
<glyph unicode="" glyph-name="icon-topic" d="M832 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.4zM686 576c7.2 0 21-7.4 38.6-25.8 11.8 24.8 26.4 52.2 43.4 79v50c-26.4 16.4-53.8 24.6-82 24.6-37.6 0-74.2-14.8-108.8-44.2 27.4-37.8 49.6-78.6 66.2-113.8 19.4 21.6 34.8 30.2 42.6 30.2zM338 320c-7.2 0-21 7.4-38.6 25.8-11.8-24.8-26.4-52.2-43.4-79v-74.8h82c37.6 0 74.2 14.8 108.8 44.2-27.4 37.8-49.6 78.6-66.2 113.8-19.4-21.4-34.8-30-42.6-30zM768 415.8c-38.2-70.6-72.8-95.8-85-95.8-15 0-64.2 38.4-112 152.8-17.4 41.8-46.6 101.6-85.8 149.4-44.8 54.4-93.2 82-144.2 82-29.2 0-57.6-9-85-27v-196.8c38.2 70.6 72.8 95.8 85 95.8 15 0 64.2-38.4 112-152.8 17.4-41.8 46.6-101.6 85.8-149.4 44.8-54.4 93.2-82 144.2-82 29.2 0 57.6 9 85 27v196.8z" />
|
<glyph unicode="" glyph-name="icon-topic" d="M546.4 528.8l32 24c31.6 23.8 91.6 23.8 123.2 0l32-24c10.8-8 22.2-15.2 34.4-21.4v201.2c-38 19.6-82.2 30-128 30-60.4 0-118.2-18.2-162.4-51.4l-32-24c-31.6-23.8-91.6-23.8-123.2 0l-32 24c-10.8 8-22.2 15.2-34.4 21.4v-201.2c38-19.6 82.2-30 128-30 60.4 0 118.2 18.2 162.4 51.4zM640 418.6c-60.4 0-118.2-18.2-162.4-51.4l-32-24c-31.6-23.8-91.6-23.8-123.2 0l-32 24c-10.8 8-22.2 15.2-34.4 21.4v-201.2c38-19.6 82.2-30 128-30 60.4 0 118.2 18.2 162.4 51.4l32 24c31.6 23.8 91.6 23.8 123.2 0l32-24c10.8-8 22.2-15.2 34.4-21.4v201.2c-38 19.6-82.2 30-128 30zM832 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 192zM320 128h-127.6c-0.2 0-0.2 0.2-0.4 0.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-192h128v192z" />
|
||||||
<glyph unicode="" glyph-name="icon-session" d="M101.2 672.4c57.2 69.6 118.6 104.8 182.8 104.8s125.6-35.2 182.8-104.8c51.4-62.6 89.8-141.2 112.6-196.2 27.6-65.8 58.8-121 90.6-159.6 10-12 44.2-51.4 69.8-51.4 6.4 0 30.4 3.8 69.8 51.4 31.8 38.6 63.2 93.8 90.6 159.6 23 55 61.2 133.6 112.6 196.2 3.6 4.4 7.2 8.6 10.8 12.8v18.8c0.4 140.8-114.8 256-255.6 256h-512c-140.8 0-256-115.2-256-256v-201c23.4 51.8 57.4 116.4 101.2 169.4zM744 778c54 0 106.4-24.4 156-72.8-31.6-44.6-57.4-92.2-77.6-134.2-33.4 42-61.8 59.4-78.4 59.4-17.4 0-47.8-19.2-83.2-65.8-27 57.6-54 102.4-77.4 136 51 51.2 104.8 77.4 160.6 77.4zM922.8 223.6c-57.2-69.6-118.8-104.8-182.8-104.8s-125.6 35.2-182.8 104.8c-51.4 62.6-89.8 141.2-112.6 196.2-27.6 65.8-58.8 121-90.6 159.6-10 12-44.2 51.4-69.8 51.4-6.4 0-30.4-3.8-69.8-51.4-31.8-38.6-63.2-93.8-90.6-159.6-23-55-61.2-133.6-112.6-196.2-3.6-4.4-7.2-8.6-10.8-12.8v-18.8c0-140.8 115.2-256 256-256h512c140.8 0 256 115.2 256 256v201c-23.8-51.8-57.8-116.4-101.6-169.4zM280 118c-54 0-106.4 24.4-156 72.8 31.6 44.6 57.4 92.2 77.6 134.2 33.4-42 61.8-59.4 78.4-59.4 17.4 0 47.8 19.2 83.2 65.8 27-57.6 54-102.4 77.4-136-51-51.2-104.8-77.4-160.6-77.4z" />
|
<glyph unicode="" glyph-name="icon-session" d="M923 521.8l-151 100.6c-36 24-103.8 24-139.8 0l-151-100.6c-44.6-29.8-102.6-46.2-163-46.2s-118.4 16.4-163 46.2l-151.4 100.6c-1.8 1.2-3.8 2.4-5.8 3.6v-208c36.6-7.4 70.6-20.8 99-39.8l151-100.6c36-24 103.8-24 139.8 0l151 100.6c44.6 29.8 102.6 46.2 163 46.2s118.4-16.4 163-46.2l151-100.6c1.8-1.2 3.8-2.4 5.8-3.6v208c-36.2 7.2-70.2 20.8-98.6 39.8zM923 137.8l-151 100.6c-36 24-103.8 24-139.8 0l-151-100.6c-44.6-29.8-102.6-46.2-163-46.2s-118.4 16.4-163 46.2l-151.4 100.6c-1.8 1.2-3.8 2.4-5.8 3.6v-112c0-105.6 86.4-192 192-192h640c94.8 0 174.2 69.8 189.4 160.4-35.6 7.4-68.6 20.8-96.4 39.4zM97 762.2l151-100.6c36-24 103.8-24 139.8 0l151 100.6c44.8 29.8 102.6 46.2 163.2 46.2s118.4-16.4 163-46.2l151-100.6c1.8-1.2 3.8-2.4 5.8-3.6v112c0 105.6-86.4 192-192 192h-639.8c-94.8 0-174.2-69.8-189.4-160.4 35.6-7.4 68.6-20.8 96.4-39.4z" />
|
||||||
|
<glyph unicode="" glyph-name="icon-bullet" d="M832 208c0-44-36-80-80-80h-480c-44 0-80 36-80 80v480c0 44 36 80 80 80h480c44 0 80-36 80-80v-480z" />
|
||||||
<glyph unicode="" glyph-name="icon-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="" glyph-name="icon-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" />
|
||||||
</font></defs></svg>
|
</font></defs></svg>
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 31 KiB |
Binary file not shown.
Binary file not shown.
@ -34,7 +34,7 @@
|
|||||||
.cols {
|
.cols {
|
||||||
@include clearfix;
|
@include clearfix;
|
||||||
.col {
|
.col {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include clearfix;
|
@include clearfix;
|
||||||
float: left;
|
float: left;
|
||||||
margin-left: $ueColMargin;
|
margin-left: $ueColMargin;
|
||||||
@ -94,7 +94,7 @@
|
|||||||
/********************************************* FLEX STYLES */
|
/********************************************* FLEX STYLES */
|
||||||
.l-flex-row,
|
.l-flex-row,
|
||||||
.l-flex-col {
|
.l-flex-col {
|
||||||
@include display-flex;
|
@include display(flex);
|
||||||
@include flex-wrap(nowrap);
|
@include flex-wrap(nowrap);
|
||||||
.flex-elem {
|
.flex-elem {
|
||||||
min-height: 0; // Needed to allow element to shrink within parent
|
min-height: 0; // Needed to allow element to shrink within parent
|
||||||
@ -111,7 +111,7 @@
|
|||||||
}
|
}
|
||||||
.flex-container {
|
.flex-container {
|
||||||
// Apply to wrapping elements, mct-includes, etc.
|
// Apply to wrapping elements, mct-includes, etc.
|
||||||
@include display-flex;
|
@include display(flex);
|
||||||
@include flex-wrap(nowrap);
|
@include flex-wrap(nowrap);
|
||||||
@include flex(1 1 auto);
|
@include flex(1 1 auto);
|
||||||
min-height:0;
|
min-height:0;
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
.l-autoflow-col {
|
.l-autoflow-col {
|
||||||
// @include test();
|
// @include test();
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-left: 1px solid $colorInteriorBorder;
|
border-left: 1px solid $colorInteriorBorder;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
// height: 100%;
|
// height: 100%;
|
||||||
@ -74,7 +74,7 @@
|
|||||||
width: $colW;
|
width: $colW;
|
||||||
.l-autoflow-row {
|
.l-autoflow-row {
|
||||||
// @include test(red);
|
// @include test(red);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-bottom: 1px solid rgba(#fff,0.05);
|
border-bottom: 1px solid rgba(#fff,0.05);
|
||||||
display: block;
|
display: block;
|
||||||
height: $rowH;
|
height: $rowH;
|
||||||
@ -110,7 +110,7 @@
|
|||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
&.r {
|
&.r {
|
||||||
@include border-radius($smallCr);
|
border-radius: $smallCr;
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: $interiorMargin;
|
margin-left: $interiorMargin;
|
||||||
padding-left: $valPad;
|
padding-left: $valPad;
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.top-bar .badge {
|
.top-bar .badge {
|
||||||
@include border-radius($controlCr * 1.5);
|
border-radius: $controlCr * 1.5;
|
||||||
$h: $btnStdH; //$ueTopBarBtnH; // - 5px;
|
$h: $btnStdH; //$ueTopBarBtnH; // - 5px;
|
||||||
font-size: 1.4em;
|
font-size: 1.4em;
|
||||||
height: $h;
|
height: $h;
|
||||||
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
//.top-bar .btn-browse .badge {
|
//.top-bar .btn-browse .badge {
|
||||||
// Moved to _controls.scss .btn.browse-btn
|
// Moved to _controls.scss .btn.browse-btn
|
||||||
// @include border-radius($controlCr * 1.5);
|
// border-radius: $controlCr * 1.5;
|
||||||
// $d: 20px;
|
// $d: 20px;
|
||||||
// display: block;
|
// display: block;
|
||||||
// font-size: 1em;
|
// font-size: 1em;
|
||||||
@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
.super-menu .badge {
|
.super-menu .badge {
|
||||||
@include background-image(linear-gradient(lighten($colorCreateBtn, 10%), $colorCreateBtn));
|
@include background-image(linear-gradient(lighten($colorCreateBtn, 10%), $colorCreateBtn));
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
@include boxShdwSubtle();
|
@include boxShdwSubtle();
|
||||||
// display: inline-block;
|
// display: inline-block;
|
||||||
// margin-right: 10px !important;
|
// margin-right: 10px !important;
|
||||||
|
@ -44,7 +44,7 @@ $ueAppLogoW: 105px;
|
|||||||
$ueEditToolBarH: 25px;
|
$ueEditToolBarH: 25px;
|
||||||
$ueCollapsedPaneEdgeM: 22px;
|
$ueCollapsedPaneEdgeM: 22px;
|
||||||
$uePaneMiniTabH: $ueTopBarH;
|
$uePaneMiniTabH: $ueTopBarH;
|
||||||
$uePaneMiniTabW: 9px;
|
$uePaneMiniTabW: 10px;
|
||||||
$uePaneMiniTabCollapsedW: 11px;
|
$uePaneMiniTabCollapsedW: 11px;
|
||||||
$ueEditLeftPaneW: 75%;
|
$ueEditLeftPaneW: 75%;
|
||||||
$treeSearchInputBarH: 25px;
|
$treeSearchInputBarH: 25px;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
.disabled,
|
.disabled,
|
||||||
a.disabled {
|
a.disabled {
|
||||||
@include opacity($controlDisabledOpacity);
|
opacity: $controlDisabledOpacity;
|
||||||
pointer-events: none !important;
|
pointer-events: none !important;
|
||||||
cursor: default !important;
|
cursor: default !important;
|
||||||
}
|
}
|
||||||
@ -39,26 +39,26 @@ a.disabled {
|
|||||||
@include test();
|
@include test();
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin customKeyframes($animName: pulse, $op0: 0.5) {
|
@mixin pulse($animName: pulse, $dur: 500ms, $iteration: infinite, $opacity0: 0.5, $opacity100: 1) {
|
||||||
@include keyframes($animName) {
|
@include keyframes($animName) {
|
||||||
0% { opacity: $op0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
@include animation-name(pulse, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin pulse($dur: 500ms, $iteration: infinite, $opacity0: 0.5, $opacity100: 1) {
|
|
||||||
@include keyframes(pulse) {
|
|
||||||
0% { opacity: $opacity0; }
|
0% { opacity: $opacity0; }
|
||||||
100% { opacity: $opacity100; }
|
100% { opacity: $opacity100; }
|
||||||
}
|
}
|
||||||
@include animation-name(pulse);
|
@include animation-name($animName);
|
||||||
@include animation-duration($dur);
|
@include animation-duration($dur);
|
||||||
@include animation-direction(alternate);
|
@include animation-direction(alternate);
|
||||||
@include animation-iteration-count($iteration);
|
@include animation-iteration-count($iteration);
|
||||||
@include animation-timing-function(ease-in-out);
|
@include animation-timing-function(ease-in-out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pulse {
|
||||||
|
@include pulse($animName: pulse, $dur: 750ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pulse-subtle {
|
||||||
|
@include pulse($animName: pulse-subtle, $dur: 500ms, $opacity0: 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
@mixin pulseBorder($c: red, $dur: 500ms, $iteration: infinite, $delay: 0s, $opacity0: 0, $opacity100: 1) {
|
@mixin pulseBorder($c: red, $dur: 500ms, $iteration: infinite, $delay: 0s, $opacity0: 0, $opacity100: 1) {
|
||||||
@include keyframes(pulseBorder) {
|
@include keyframes(pulseBorder) {
|
||||||
0% { border-color: rgba($c, $opacity0); }
|
0% { border-color: rgba($c, $opacity0); }
|
||||||
@ -71,7 +71,3 @@ a.disabled {
|
|||||||
@include animation-timing-function(ease);
|
@include animation-timing-function(ease);
|
||||||
@include animation-delay($delay);
|
@include animation-delay($delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
.pulse {
|
|
||||||
@include pulse(750ms);
|
|
||||||
}
|
|
@ -61,7 +61,7 @@
|
|||||||
.l-fixed-position-box,
|
.l-fixed-position-box,
|
||||||
.l-fixed-position-image,
|
.l-fixed-position-image,
|
||||||
.l-fixed-position-text {
|
.l-fixed-position-text {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
@ -89,7 +89,7 @@
|
|||||||
.l-elem {
|
.l-elem {
|
||||||
//@include absPosDefault($p);
|
//@include absPosDefault($p);
|
||||||
//@include absPosDefault(0);
|
//@include absPosDefault(0);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
display: block;
|
display: block;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
//width: 50%;
|
//width: 50%;
|
||||||
@ -106,7 +106,7 @@
|
|||||||
// @include test(blue);
|
// @include test(blue);
|
||||||
// right: $p;
|
// right: $p;
|
||||||
// left: auto;
|
// left: auto;
|
||||||
@include border-radius($smallCr);
|
border-radius: $smallCr;
|
||||||
$valPad: 5px;
|
$valPad: 5px;
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: $interiorMargin;
|
margin-left: $interiorMargin;
|
||||||
@ -125,7 +125,7 @@
|
|||||||
|
|
||||||
.l-fixed-position-item-handle {
|
.l-fixed-position-item-handle {
|
||||||
$brd: 1px solid $colorKey;
|
$brd: 1px solid $colorKey;
|
||||||
// @include border-radius($controlCr);
|
// border-radius: $controlCr;
|
||||||
background: rgba($colorKey, 0.5);
|
background: rgba($colorKey, 0.5);
|
||||||
cursor: crosshair;
|
cursor: crosshair;
|
||||||
border: $brd;
|
border: $brd;
|
||||||
|
@ -46,7 +46,6 @@ a {
|
|||||||
|
|
||||||
body, html {
|
body, html {
|
||||||
-webkit-font-smoothing: subpixel-antialiased;
|
-webkit-font-smoothing: subpixel-antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
background-color: $colorBodyBg;
|
background-color: $colorBodyBg;
|
||||||
color: $colorBodyFg;
|
color: $colorBodyFg;
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
@ -139,7 +138,7 @@ mct-container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ds {
|
.ds {
|
||||||
@include box-shadow(rgba(#000, 0.7) 0 4px 10px 2px);
|
box-shadow: rgba(#000, 0.7) 0 4px 10px 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hide,
|
.hide,
|
||||||
|
@ -93,7 +93,7 @@
|
|||||||
height: auto; width: auto;
|
height: auto; width: auto;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0; top: 0; right: 0; bottom: 10%;
|
left: 0; top: 0; right: 0; bottom: 10%;
|
||||||
@include transform-origin(bottom, left);
|
@include transform-origin(bottom left);
|
||||||
@include transform(scale(0.3));
|
@include transform(scale(0.3));
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
@ -58,9 +58,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.l-inspector-part {
|
.l-inspector-part {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
padding-right: $interiorMargin;
|
padding-right: $interiorMargin;
|
||||||
.form {
|
.form {
|
||||||
margin-left: $treeVCW + $interiorMarginLg;
|
margin-left: $treeVCW + $interiorMarginLg;
|
||||||
@ -90,7 +89,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
em.t-inspector-part-header {
|
em.t-inspector-part-header {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
background-color: $colorInspectorSectionHeaderBg;
|
background-color: $colorInspectorSectionHeaderBg;
|
||||||
color: $colorInspectorSectionHeaderFg;
|
color: $colorInspectorSectionHeaderFg;
|
||||||
margin-bottom: $interiorMargin;
|
margin-bottom: $interiorMargin;
|
||||||
@ -116,7 +115,7 @@
|
|||||||
.inspector-location {
|
.inspector-location {
|
||||||
.location-item {
|
.location-item {
|
||||||
$h: 1.2em;
|
$h: 1.2em;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
line-height: $h;
|
line-height: $h;
|
||||||
|
@ -175,8 +175,8 @@
|
|||||||
|
|
||||||
@mixin sliderTrack($bg: $scrollbarTrackColorBg) {
|
@mixin sliderTrack($bg: $scrollbarTrackColorBg) {
|
||||||
//$b: 1px solid lighten($bg, 30%);
|
//$b: 1px solid lighten($bg, 30%);
|
||||||
@include border-radius(2px);
|
border-radius: 2px;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include boxIncised(0.7);
|
@include boxIncised(0.7);
|
||||||
background-color: $bg;
|
background-color: $bg;
|
||||||
//border-bottom: $b;
|
//border-bottom: $b;
|
||||||
@ -210,7 +210,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@mixin boxIncised($sVal: 0.6, $inset: 5px) {
|
@mixin boxIncised($sVal: 0.6, $inset: 5px) {
|
||||||
@include box-shadow(inset rgba(black, $sVal) 0 1px $inset);
|
box-shadow: inset rgba(black, $sVal) 0 1px $inset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin boxOutline($c: lighten($colorBodyBg, 20%)) {
|
@mixin boxOutline($c: lighten($colorBodyBg, 20%)) {
|
||||||
@ -219,24 +219,24 @@
|
|||||||
|
|
||||||
@mixin boxShdw($sVal: rgba(black, 0.4) 0 0 3px) {
|
@mixin boxShdw($sVal: rgba(black, 0.4) 0 0 3px) {
|
||||||
@if $sVal != 'none' {
|
@if $sVal != 'none' {
|
||||||
@include box-shadow($sVal);
|
box-shadow: $sVal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin boxShdwSubtle($sVal: 0.2) {
|
@mixin boxShdwSubtle($sVal: 0.2) {
|
||||||
@if $sVal != 'none' {
|
@if $sVal != 'none' {
|
||||||
@include box-shadow(rgba(black, $sVal) 0 1px 2px);
|
box-shadow: rgba(black, $sVal) 0 1px 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin boxShdwLarge($sVal: 0.7) {
|
@mixin boxShdwLarge($sVal: 0.7) {
|
||||||
@if $sVal != 'none' {
|
@if $sVal != 'none' {
|
||||||
@include box-shadow(rgba(black, $sVal) 0 3px 10px);
|
box-shadow: rgba(black, $sVal) 0 3px 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin outerGlow($color: #fff, $sVal: 0.3) {
|
@mixin outerGlow($color: #fff, $sVal: 0.3) {
|
||||||
@include box-shadow(rgba($color, $sVal) 0 0 30px);
|
box-shadow: rgba($color, $sVal) 0 0 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin linearGlow($deg: 0, $c: red, $a: 0.4) {
|
@mixin linearGlow($deg: 0, $c: red, $a: 0.4) {
|
||||||
@ -249,18 +249,18 @@
|
|||||||
|
|
||||||
@mixin txtShdw($sVal) {
|
@mixin txtShdw($sVal) {
|
||||||
//@if $sVal != 'none' {
|
//@if $sVal != 'none' {
|
||||||
@include text-shadow($sVal);
|
text-shadow: $sVal;
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin txtShdwSubtle($sVal: 0.1) {
|
@mixin txtShdwSubtle($sVal: 0.1) {
|
||||||
@if $sVal != 'none' {
|
@if $sVal != 'none' {
|
||||||
@include text-shadow(rgba(black, $sVal) 0 1px 2px);
|
text-shadow: rgba(black, $sVal) 0 1px 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin txtShdwLarge($sVal: 0.7) {
|
@mixin txtShdwLarge($sVal: 0.7) {
|
||||||
@include text-shadow(rgba(black, $sVal) 0 3px 7px);
|
text-shadow: rgba(black, $sVal) 0 3px 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@function pullForward($c, $p: 20%) {
|
@function pullForward($c, $p: 20%) {
|
||||||
@ -291,35 +291,32 @@
|
|||||||
|
|
||||||
@mixin containerBase($bg: $colorBodyBg, $fg: $colorBodyFg) {
|
@mixin containerBase($bg: $colorBodyBg, $fg: $colorBodyFg) {
|
||||||
background-color: $bg;
|
background-color: $bg;
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
color: $fg;
|
color: $fg;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin btnBase($bg: $colorBodyBg, $bgHov: none, $fg: $colorBodyFg, $ic: $colorBtnIcon) {
|
@mixin btnBase($bg: $colorBodyBg, $bgHovColor: none, $fg: $colorBodyFg, $ic: $colorBtnIcon) {
|
||||||
@include user-select(none);
|
@include user-select(none);
|
||||||
@include transition(background, .25s);
|
|
||||||
.icon {
|
.icon {
|
||||||
color: $ic;
|
color: $ic;
|
||||||
}
|
}
|
||||||
@include desktop {
|
@if $bgHovColor != none {
|
||||||
@if $bgHov != none {
|
|
||||||
&:not(.disabled):hover {
|
&:not(.disabled):hover {
|
||||||
@include background-image($bgHov);
|
background: $bgHovColor; // was just background, and background-image before that
|
||||||
>.icon {
|
>.icon {
|
||||||
color: lighten($ic, $ltGamma);
|
color: lighten($ic, $ltGamma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin input-base($bg: $colorInputBg, $fg: $colorInputFg, $shdw: rgba(black, 0.6) 0 1px 3px) {
|
@mixin input-base($bg: $colorInputBg, $fg: $colorInputFg, $shdw: rgba(black, 0.6) 0 1px 3px) {
|
||||||
@include appearance(none);
|
@include appearance(none);
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include box-shadow(inset $shdw);
|
box-shadow: inset $shdw;
|
||||||
background: $bg;
|
background: $bg;
|
||||||
border: none;
|
border: none;
|
||||||
color: $fg;
|
color: $fg;
|
||||||
@ -335,7 +332,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@mixin contextArrow() {
|
@mixin contextArrow() {
|
||||||
@include text-shadow(none);
|
text-shadow: none;
|
||||||
content: '\76';
|
content: '\76';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-family: 'symbolsfont';
|
font-family: 'symbolsfont';
|
||||||
@ -408,13 +405,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@mixin tmpBorder($c: #ffcc00, $a: 0.75) {
|
@mixin tmpBorder($c: #ffcc00, $a: 0.75) {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border: 1px dotted rgba($c, $a);
|
border: 1px dotted rgba($c, $a);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin testObj($w: 2000px, $h: 1000px, $c: black, $a: 0.1) {
|
@mixin testObj($w: 2000px, $h: 1000px, $c: black, $a: 0.1) {
|
||||||
&:after {
|
&:after {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include bgDiagonalStripes($c, $a);
|
@include bgDiagonalStripes($c, $a);
|
||||||
color: rgba(white, 0.3);
|
color: rgba(white, 0.3);
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
@ -41,12 +41,9 @@ mct-representation {
|
|||||||
.t-item-icon {
|
.t-item-icon {
|
||||||
&:before {
|
&:before {
|
||||||
$spinBW: 4px;
|
$spinBW: 4px;
|
||||||
$spinD: 0;
|
|
||||||
@include spinner($spinBW);
|
@include spinner($spinBW);
|
||||||
content: "";
|
content: "";
|
||||||
padding: 30%;
|
padding: 30%;
|
||||||
width: $spinD;
|
|
||||||
height: $spinD;
|
|
||||||
}
|
}
|
||||||
.t-item-icon-glyph {
|
.t-item-icon-glyph {
|
||||||
display: none;
|
display: none;
|
||||||
@ -59,6 +56,7 @@ mct-representation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.selected mct-representation.s-status-pending .t-object-label .t-item-icon:before {
|
.selected mct-representation.s-status-pending .t-object-label .t-item-icon:before {
|
||||||
border-color: rgba($colorItemTreeSelectedFg, 0.25) !important;
|
border-color: rgba($colorItemTreeSelectedFg, 0.25) !important;
|
||||||
border-top-color: rgba($colorItemTreeSelectedFg, 1.0) !important;
|
border-top-color: rgba($colorItemTreeSelectedFg, 1.0) !important;
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
.l-breadcrumb-item {
|
.l-breadcrumb-item {
|
||||||
//@include test();
|
//@include test();
|
||||||
a {
|
a {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include border-radius($basicCr*.75);
|
border-radius: $basicCr*.75;
|
||||||
@include single-transition(background-color, 0.25s);
|
@include transition(background-color, 0.25s);
|
||||||
color: darken($colorBodyFg, 15%);
|
color: darken($colorBodyFg, 15%);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
//margin-right: $interiorMargin;
|
//margin-right: $interiorMargin;
|
||||||
|
@ -32,7 +32,7 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
}
|
}
|
||||||
|
|
||||||
.s-btn {
|
.s-btn {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
padding: 0 $pad;
|
padding: 0 $pad;
|
||||||
font-size: 0.7rem;
|
font-size: 0.7rem;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
@ -66,7 +66,7 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
|
|
||||||
&:not(.major) {
|
&:not(.major) {
|
||||||
// bg, bgHov, fg, ic
|
// bg, bgHov, fg, ic
|
||||||
@include btnSubtle($colorBtnBg, $colorKey, $colorBtnFg, $colorBtnIcon);
|
@include btnSubtle($colorBtnBg, $colorBtnBgHov, $colorBtnFg, $colorBtnIcon);
|
||||||
}
|
}
|
||||||
&.pause-play {
|
&.pause-play {
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
&.paused {
|
&.paused {
|
||||||
@include btnSubtle($colorPausedBg, pushBack($colorPausedBg, 10%), $colorPausedFg, $colorPausedFg);
|
@include btnSubtle($colorPausedBg, pushBack($colorPausedBg, 10%), $colorPausedFg, $colorPausedFg);
|
||||||
.icon {
|
.icon {
|
||||||
@include pulse(1000ms);
|
@include pulse($dur: 1000ms);
|
||||||
:before {
|
:before {
|
||||||
content: "\0000EF";
|
content: "\0000EF";
|
||||||
}
|
}
|
||||||
@ -111,11 +111,8 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
// Color and styling additionally in _controls.scss
|
// Color and styling additionally in _controls.scss
|
||||||
}
|
}
|
||||||
|
|
||||||
.mini-tab {
|
body.desktop .mini-tab {
|
||||||
// Meant to be used as pane hide/show control elements in concert with mct-splitter
|
// Meant to be used as pane hide/show control elements in concert with mct-splitter
|
||||||
//@extend .ui-symbol;
|
|
||||||
@include desktop {
|
|
||||||
//@include test(green);
|
|
||||||
$iconH: $uePaneMiniTabH;
|
$iconH: $uePaneMiniTabH;
|
||||||
$iconW: $uePaneMiniTabW;
|
$iconW: $uePaneMiniTabW;
|
||||||
$iconInnerLR: 0;
|
$iconInnerLR: 0;
|
||||||
@ -126,9 +123,9 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
$cFg: $cBg;
|
$cFg: $cBg;
|
||||||
|
|
||||||
|
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
//@include boxShdw($shdwBtns);
|
//@include boxShdw($shdwBtns);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include trans-prop-nice((color, background-color), 100ms);
|
@include trans-prop-nice((color, background-color), 100ms);
|
||||||
color: $cFg;
|
color: $cFg;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@ -140,11 +137,6 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
height: $iconH; width: $iconW;
|
height: $iconH; width: $iconW;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&:hover {
|
|
||||||
//background-color: $cBg;
|
|
||||||
color: $colorKey; //pullForward($cFg, $ltGamma);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.collapsed {
|
&.collapsed {
|
||||||
// State when the pane this element controls has been collapsed
|
// State when the pane this element controls has been collapsed
|
||||||
@include btnSubtle($colorBtnBg, $colorKey, $colorBtnFg, $colorBtnIcon);
|
@include btnSubtle($colorBtnBg, $colorKey, $colorBtnFg, $colorBtnIcon);
|
||||||
@ -159,7 +151,6 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
//@include test();
|
|
||||||
@include trans-prop-nice((left, right, opacity), 250ms);
|
@include trans-prop-nice((left, right, opacity), 250ms);
|
||||||
display: block;
|
display: block;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -168,8 +159,6 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
// Always the arrow icon
|
// Always the arrow icon
|
||||||
//@include test(green);
|
|
||||||
//font-size: $arwD;
|
|
||||||
width: $arwD;
|
width: $arwD;
|
||||||
}
|
}
|
||||||
&:after {
|
&:after {
|
||||||
@ -186,7 +175,6 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
content:'\3c'; // Collapse left icon e613
|
content:'\3c'; // Collapse left icon e613
|
||||||
right: $iconInnerLR;
|
right: $iconInnerLR;
|
||||||
}
|
}
|
||||||
//&:hover:before { right: $arwAnimOffsetX; }
|
|
||||||
&.collapsed {
|
&.collapsed {
|
||||||
@include border-left-radius(0);
|
@include border-left-radius(0);
|
||||||
text-align: left;
|
text-align: left;
|
||||||
@ -204,7 +192,6 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
content:'\3e'; // Collapse right icon e614
|
content:'\3e'; // Collapse right icon e614
|
||||||
left: $iconInnerLR;
|
left: $iconInnerLR;
|
||||||
}
|
}
|
||||||
//&:hover:before { left: $arwAnimOffsetX; }
|
|
||||||
&.collapsed {
|
&.collapsed {
|
||||||
@include border-right-radius(0);
|
@include border-right-radius(0);
|
||||||
&:before {
|
&:before {
|
||||||
@ -215,15 +202,11 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
&:hover:before { right: $arwAnimOffsetX; }
|
&:hover:before { right: $arwAnimOffsetX; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.mini-tab-icon {
|
body.desktop .mini-tab-icon {
|
||||||
// Meant to be used as pane hide/show control elements in concert with mct-splitter
|
// Meant to be used as pane hide/show control elements in concert with mct-splitter
|
||||||
//@extend .ui-symbol;
|
|
||||||
@include desktop {
|
|
||||||
$d: $uePaneMiniTabW;
|
$d: $uePaneMiniTabW;
|
||||||
//@include trans-prop-nice(transform, 150ms);
|
|
||||||
color: pullForward($colorBodyBg, 15%);
|
color: pullForward($colorBodyBg, 15%);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
@ -252,31 +235,30 @@ $pad: $interiorMargin * $baseRatio;
|
|||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $colorKey;
|
color: $colorKey;
|
||||||
//@include transform(scale(1.2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.l-btn-set {
|
.l-btn-set {
|
||||||
// Buttons that have a very tight conceptual grouping - no internal space between them.
|
// Buttons that have a very tight conceptual grouping - no internal space between them.
|
||||||
// Structure: .btn-set > mct-representation class=first|last > .s-btn
|
// Structure: .btn-set > mct-representation class=first|last > .s-btn
|
||||||
//@include test(red);
|
|
||||||
font-size: 0; // Remove space between s-btn elements due to white space in markup
|
font-size: 0; // Remove space between s-btn elements due to white space in markup
|
||||||
|
|
||||||
.s-btn {
|
.s-btn {
|
||||||
@include border-radius(0);
|
border-radius: 0;
|
||||||
margin-left: 1px;
|
margin-left: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.first {
|
.first {
|
||||||
.s-btn {
|
.s-btn,
|
||||||
|
&.s-btn {
|
||||||
@include border-left-radius($controlCr);
|
@include border-left-radius($controlCr);
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.last {
|
.last {
|
||||||
.s-btn {
|
.s-btn,
|
||||||
|
&.s-btn {
|
||||||
@include border-right-radius($controlCr);
|
@include border-right-radius($controlCr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
$m: 1;
|
$m: 1;
|
||||||
$colorSelectedColor: #fff;
|
$colorSelectedColor: #fff;
|
||||||
|
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
padding: $interiorMargin !important;
|
padding: $interiorMargin !important;
|
||||||
|
|
||||||
.l-palette-row {
|
.l-palette-row {
|
||||||
@ -34,7 +34,7 @@
|
|||||||
width: ($d * $colorsPerRow) + ($m * $colorsPerRow);
|
width: ($d * $colorsPerRow) + ($m * $colorsPerRow);
|
||||||
|
|
||||||
.l-palette-item {
|
.l-palette-item {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include txtShdwSubtle(0.8);
|
@include txtShdwSubtle(0.8);
|
||||||
@include trans-prop-nice-fade(0.25s);
|
@include trans-prop-nice-fade(0.25s);
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
}
|
}
|
||||||
.accordion-head {
|
.accordion-head {
|
||||||
$op: 0.2;
|
$op: 0.2;
|
||||||
@include border-radius($basicCr * 0.75);
|
border-radius: $basicCr * 0.75;
|
||||||
@include box-sizing("border-box");
|
box-sizing: "border-box";
|
||||||
background: rgba($colorBodyFg, $op);
|
background: rgba($colorBodyFg, $op);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
@ -83,7 +83,7 @@
|
|||||||
|
|
||||||
.l-control-group {
|
.l-control-group {
|
||||||
// Buttons that have a conceptual grouping - internal space between, and a divider between groups.
|
// Buttons that have a conceptual grouping - internal space between, and a divider between groups.
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-left: 1px solid $colorInteriorBorder;
|
border-left: 1px solid $colorInteriorBorder;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 $interiorMargin;
|
padding: 0 $interiorMargin;
|
||||||
@ -123,9 +123,9 @@ label.radio.custom {
|
|||||||
height: $d;
|
height: $d;
|
||||||
width: $d;
|
width: $d;
|
||||||
&:before {
|
&:before {
|
||||||
@include border-radius($basicCr * .75);
|
border-radius: $basicCr * .75;
|
||||||
background: $bg;
|
background: $bg;
|
||||||
@include box-shadow(inset rgba(black, 0.4) 0 1px 2px);
|
box-shadow: inset rgba(black, 0.4) 0 1px 2px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
content: "";
|
content: "";
|
||||||
font-family: 'symbolsfont';
|
font-family: 'symbolsfont';
|
||||||
@ -181,7 +181,7 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
|
|
||||||
.item .checkbox {
|
.item .checkbox {
|
||||||
&.checked label {
|
&.checked label {
|
||||||
@include box-shadow(none);
|
box-shadow: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,8 +234,9 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
@include webkitProp(flex, '0 0 1');
|
@include webkitProp(flex, '0 0 1');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@include desktop {
|
body.desktop .object-header {
|
||||||
.context-available {
|
.context-available {
|
||||||
@include trans-prop-nice(opacity, 0.25s);
|
@include trans-prop-nice(opacity, 0.25s);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@ -245,7 +246,6 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************** PROGRESS BAR */
|
/******************************************************** PROGRESS BAR */
|
||||||
@ -292,13 +292,13 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
.s-progress-bar {
|
.s-progress-bar {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include boxIncised(0.3, 4px);
|
@include boxIncised(0.3, 4px);
|
||||||
background: $colorProgressBarOuter;
|
background: $colorProgressBarOuter;
|
||||||
.progress-amt {
|
.progress-amt {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include boxShdw();
|
@include boxShdw();
|
||||||
@include border-radius($basicCr - 1);
|
border-radius: $basicCr - 1;
|
||||||
@include trans-prop-nice(width);
|
@include trans-prop-nice(width);
|
||||||
&:before {
|
&:before {
|
||||||
background-color: $colorProgressBarAmt;
|
background-color: $colorProgressBarAmt;
|
||||||
@ -432,7 +432,7 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
.l-calendar {
|
.l-calendar {
|
||||||
$colorMuted: pushBack($colorMenuFg, 30%);
|
$colorMuted: pushBack($colorMenuFg, 30%);
|
||||||
ul.l-cal-row {
|
ul.l-cal-row {
|
||||||
@include display-flex;
|
@include display(flex);
|
||||||
@include flex-flow(row nowrap);
|
@include flex-flow(row nowrap);
|
||||||
margin-top: 1px;
|
margin-top: 1px;
|
||||||
&:first-child {
|
&:first-child {
|
||||||
@ -480,11 +480,11 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
|
|
||||||
/******************************************************** BROWSER ELEMENTS */
|
/******************************************************** BROWSER ELEMENTS */
|
||||||
|
|
||||||
@include desktop {
|
body.desktop {
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
@include border-radius(2px);
|
border-radius: 2px;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include box-shadow(inset $scrollbarTrackShdw);
|
box-shadow: inset $scrollbarTrackShdw;
|
||||||
background-color: $scrollbarTrackColorBg;
|
background-color: $scrollbarTrackColorBg;
|
||||||
height: $scrollbarTrackSize;
|
height: $scrollbarTrackSize;
|
||||||
width: $scrollbarTrackSize;
|
width: $scrollbarTrackSize;
|
||||||
@ -495,8 +495,8 @@ label.radio.custom input:checked ~ em:before { content: "\e619"; }
|
|||||||
$hc: $scrollbarThumbColorHov;
|
$hc: $scrollbarThumbColorHov;
|
||||||
$gr: 5%;
|
$gr: 5%;
|
||||||
@include background-image(linear-gradient(lighten($bg, $gr), $bg 20px));
|
@include background-image(linear-gradient(lighten($bg, $gr), $bg 20px));
|
||||||
@include border-radius(2px);
|
border-radius: 2px;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
&:hover {
|
&:hover {
|
||||||
@include background-image(linear-gradient(lighten($hc, $gr), $hc 20px));
|
@include background-image(linear-gradient(lighten($hc, $gr), $hc 20px));
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.s-menu {
|
.s-menu {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include containerSubtle($colorMenuBg, $colorMenuFg);
|
@include containerSubtle($colorMenuBg, $colorMenuFg);
|
||||||
@include boxShdw($shdwMenu);
|
@include boxShdw($shdwMenu);
|
||||||
@include txtShdw($shdwMenuText);
|
@include txtShdw($shdwMenuText);
|
||||||
@ -87,7 +87,7 @@
|
|||||||
ul {
|
ul {
|
||||||
@include menuUlReset();
|
@include menuUlReset();
|
||||||
li {
|
li {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-top: 1px solid pullForward($colorMenuBg, 10%);
|
border-top: 1px solid pullForward($colorMenuBg, 10%);
|
||||||
color: pullForward($colorMenuBg, 60%);
|
color: pullForward($colorMenuBg, 60%);
|
||||||
line-height: $menuLineH;
|
line-height: $menuLineH;
|
||||||
@ -171,7 +171,7 @@
|
|||||||
@include absPosDefault($interiorMargin);
|
@include absPosDefault($interiorMargin);
|
||||||
}
|
}
|
||||||
.pane {
|
.pane {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
&.left {
|
&.left {
|
||||||
//@include test();
|
//@include test();
|
||||||
border-right: 1px solid pullForward($colorMenuBg, 10%);
|
border-right: 1px solid pullForward($colorMenuBg, 10%);
|
||||||
@ -183,7 +183,7 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
ul {
|
ul {
|
||||||
li {
|
li {
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
border-top: none;
|
border-top: none;
|
||||||
}
|
}
|
||||||
|
@ -36,11 +36,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mct-include.status-block-holder {
|
||||||
|
// mct-include that wraps status.block
|
||||||
|
// Must use display: inline-block to fix white space problems
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.status.block {
|
.status.block {
|
||||||
$transDelay: 1.5s;
|
$transDelay: 1.5s;
|
||||||
$transSpeed: .25s;
|
$transSpeed: .25s;
|
||||||
color: $colorStatusDefault;
|
color: $colorStatusDefault;
|
||||||
cursor: default;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: $interiorMargin;
|
margin-right: $interiorMargin;
|
||||||
.status-indicator,
|
.status-indicator,
|
||||||
@ -50,6 +55,9 @@
|
|||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.clickable { cursor: pointer; }
|
||||||
|
&:not(.clickable) { cursor: default; }
|
||||||
|
|
||||||
&.no-icon {
|
&.no-icon {
|
||||||
.status-indicator {
|
.status-indicator {
|
||||||
display: none;
|
display: none;
|
||||||
@ -60,9 +68,6 @@
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.subtle {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
.status-indicator {
|
.status-indicator {
|
||||||
margin-right: $interiorMarginSm;
|
margin-right: $interiorMarginSm;
|
||||||
}
|
}
|
||||||
@ -77,7 +82,7 @@
|
|||||||
&:hover {
|
&:hover {
|
||||||
.label {
|
.label {
|
||||||
@include trans-prop-nice(max-width, $transSpeed, 0s);
|
@include trans-prop-nice(max-width, $transSpeed, 0s);
|
||||||
max-width: 450px;
|
max-width: 600px;
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
.count {
|
.count {
|
||||||
@ -99,17 +104,26 @@
|
|||||||
&.error .status-indicator {
|
&.error .status-indicator {
|
||||||
color: $colorStatusError;
|
color: $colorStatusError;
|
||||||
}
|
}
|
||||||
|
&.available .status-indicator {
|
||||||
|
color: $colorStatusAvailable;
|
||||||
|
}
|
||||||
.count {
|
.count {
|
||||||
@include trans-prop-nice(opacity, $transSpeed, $transDelay);
|
@include trans-prop-nice(opacity, $transSpeed, $transDelay);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
.s-btn {
|
||||||
|
background: $colorStatusBtnBg;
|
||||||
|
padding: 0 $interiorMargin;
|
||||||
|
height: auto;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Styles for messages and message banners */
|
/* Styles for messages and message banners */
|
||||||
.message {
|
.message {
|
||||||
&.block {
|
&.block {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
padding: $interiorMarginLg;
|
padding: $interiorMarginLg;
|
||||||
}
|
}
|
||||||
&.error {
|
&.error {
|
||||||
@ -121,9 +135,9 @@
|
|||||||
.l-message-banner {
|
.l-message-banner {
|
||||||
$m: $interiorMarginSm;
|
$m: $interiorMarginSm;
|
||||||
$lh: $ueFooterH - ($m*2) - 1;
|
$lh: $ueFooterH - ($m*2) - 1;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include ellipsize();
|
@include ellipsize();
|
||||||
@include display-flex;
|
@include display(flex);
|
||||||
@include flex-direction(row);
|
@include flex-direction(row);
|
||||||
@include align-items(center);
|
@include align-items(center);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -146,7 +160,7 @@
|
|||||||
left: 50%;
|
left: 50%;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
&:not(.info) {
|
&:not(.info) {
|
||||||
@include pulse(100ms, 10);
|
@include pulse($dur: 100ms, $iteration: 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,12 +198,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.s-message-banner {
|
.s-message-banner {
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
@include statusBannerColors($colorStatusDefault, $colorStatusFg);
|
@include statusBannerColors($colorStatusDefault, $colorStatusFg);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
a { color: inherit; }
|
a { color: inherit; }
|
||||||
.s-action {
|
.s-action {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include trans-prop-nice(background-color);
|
@include trans-prop-nice(background-color);
|
||||||
}
|
}
|
||||||
.close {
|
.close {
|
||||||
@ -250,7 +264,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
.l-message {
|
.l-message {
|
||||||
@include display-flex;
|
@include display(flex);
|
||||||
@include flex-direction(row);
|
@include flex-direction(row);
|
||||||
@include align-items(stretch);
|
@include align-items(stretch);
|
||||||
.type-icon.message-type {
|
.type-icon.message-type {
|
||||||
@ -275,8 +289,9 @@
|
|||||||
// Message as singleton
|
// Message as singleton
|
||||||
.t-message-single {
|
.t-message-single {
|
||||||
@include messageBlock(80px);
|
@include messageBlock(80px);
|
||||||
|
}
|
||||||
|
|
||||||
@include desktop {
|
body.desktop .t-message-single {
|
||||||
.l-message,
|
.l-message,
|
||||||
.bottom-bar {
|
.bottom-bar {
|
||||||
@include absPosDefault();
|
@include absPosDefault();
|
||||||
@ -286,7 +301,6 @@
|
|||||||
top: auto;
|
top: auto;
|
||||||
height: $ovrFooterH;
|
height: $ovrFooterH;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Messages in list
|
// Messages in list
|
||||||
@ -295,15 +309,13 @@
|
|||||||
|
|
||||||
.message-contents {
|
.message-contents {
|
||||||
.l-message {
|
.l-message {
|
||||||
//border-bottom: 1px solid pullForward($colorOvrBg, 20%);
|
border-radius: $controlCr;
|
||||||
@include border-radius($controlCr);
|
|
||||||
background: rgba($colorOvrFg, 0.1);
|
background: rgba($colorOvrFg, 0.1);
|
||||||
margin-bottom: $interiorMargin;
|
margin-bottom: $interiorMargin;
|
||||||
padding: $interiorMarginLg;
|
padding: $interiorMarginLg;
|
||||||
|
|
||||||
.message-contents,
|
.message-contents,
|
||||||
.bottom-bar {
|
.bottom-bar {
|
||||||
//@include test(green);
|
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,8 +332,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@include desktop {
|
|
||||||
.message-contents .l-message { margin-right: $interiorMarginLg; }
|
body.desktop .t-message-list {
|
||||||
}
|
.message-contents .l-message { margin-right: $interiorMarginLg; }
|
||||||
}
|
}
|
@ -37,7 +37,7 @@ mct-include.l-time-controller {
|
|||||||
{
|
{
|
||||||
//@include test();
|
//@include test();
|
||||||
@include absPosDefault(0, visible);
|
@include absPosDefault(0, visible);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
top: auto;
|
top: auto;
|
||||||
}
|
}
|
||||||
.l-time-range-slider,
|
.l-time-range-slider,
|
||||||
@ -73,7 +73,7 @@ mct-include.l-time-controller {
|
|||||||
//@include test(green);
|
//@include test(green);
|
||||||
height: $r2H; bottom: $r3H + ($interiorMarginSm * 1);
|
height: $r2H; bottom: $r3H + ($interiorMarginSm * 1);
|
||||||
.range-holder {
|
.range-holder {
|
||||||
@include box-shadow(none);
|
box-shadow: none;
|
||||||
background: none;
|
background: none;
|
||||||
border: none;
|
border: none;
|
||||||
.range {
|
.range {
|
||||||
@ -101,7 +101,7 @@ mct-include.l-time-controller {
|
|||||||
}
|
}
|
||||||
&:after {
|
&:after {
|
||||||
// Circle element
|
// Circle element
|
||||||
@include border-radius($myW);
|
border-radius: $myW;
|
||||||
@include transform(translateY(-50%));
|
@include transform(translateY(-50%));
|
||||||
top: 50%; right: 0; bottom: auto; left: 0;
|
top: 50%; right: 0; bottom: auto; left: 0;
|
||||||
width: auto;
|
width: auto;
|
||||||
@ -167,7 +167,7 @@ mct-include.l-time-controller {
|
|||||||
color: $sliderColorKnobHov;
|
color: $sliderColorKnobHov;
|
||||||
}
|
}
|
||||||
&.knob-l {
|
&.knob-l {
|
||||||
//@include border-bottom-left-radius($knobCr); // MOVED TO _CONTROLS.SCSS
|
//border-bottom-left-radius: $knobCr; // MOVED TO _CONTROLS.SCSS
|
||||||
margin-left: $knobM;
|
margin-left: $knobM;
|
||||||
.range-value {
|
.range-value {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -175,7 +175,7 @@ mct-include.l-time-controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
&.knob-r {
|
&.knob-r {
|
||||||
//@include border-bottom-right-radius($knobCr);
|
//border-bottom-right-radius: $knobCr;
|
||||||
margin-right: $knobM;
|
margin-right: $knobM;
|
||||||
.range-value {
|
.range-value {
|
||||||
left: $rangeValOffset;
|
left: $rangeValOffset;
|
||||||
@ -193,7 +193,7 @@ mct-include.l-time-controller {
|
|||||||
|
|
||||||
.s-time-range-val {
|
.s-time-range-val {
|
||||||
//@include test();
|
//@include test();
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
background-color: $colorInputBg;
|
background-color: $colorInputBg;
|
||||||
padding: 1px 1px 0 $interiorMargin;
|
padding: 1px 1px 0 $interiorMargin;
|
||||||
}
|
}
|
@ -38,22 +38,22 @@
|
|||||||
z-index: 11;
|
z-index: 11;
|
||||||
}
|
}
|
||||||
&.edit-resize-nw {
|
&.edit-resize-nw {
|
||||||
@include border-bottom-right-radius($cr);
|
border-bottom-right-radius: $cr;
|
||||||
cursor: nw-resize;
|
cursor: nw-resize;
|
||||||
top: 0; left: 0;
|
top: 0; left: 0;
|
||||||
}
|
}
|
||||||
&.edit-resize-ne {
|
&.edit-resize-ne {
|
||||||
@include border-bottom-left-radius($cr);
|
border-bottom-left-radius: $cr;
|
||||||
cursor: ne-resize;
|
cursor: ne-resize;
|
||||||
top: 0; right: 0;
|
top: 0; right: 0;
|
||||||
}
|
}
|
||||||
&.edit-resize-se {
|
&.edit-resize-se {
|
||||||
@include border-top-left-radius($cr);
|
border-top-left-radius: $cr;
|
||||||
cursor: se-resize;
|
cursor: se-resize;
|
||||||
bottom: 0; right: 0;
|
bottom: 0; right: 0;
|
||||||
}
|
}
|
||||||
&.edit-resize-sw {
|
&.edit-resize-sw {
|
||||||
@include border-top-right-radius($cr);
|
border-top-right-radius: $cr;
|
||||||
cursor: sw-resize;
|
cursor: sw-resize;
|
||||||
bottom: 0; left: 0;
|
bottom: 0; left: 0;
|
||||||
}
|
}
|
||||||
|
@ -104,8 +104,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.l-image-thumb-item {
|
.l-image-thumb-item {
|
||||||
@include single-transition(background-color, 0.25s);
|
@include transition(background-color, 0.25s);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
position: relative;
|
position: relative;
|
||||||
.l-thumb,
|
.l-thumb,
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
.section-header {
|
.section-header {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
background: $colorFormSectionHeader;
|
background: $colorFormSectionHeader;
|
||||||
$c: lighten($colorBodyFg, 20%);
|
$c: lighten($colorBodyFg, 20%);
|
||||||
color: $c;
|
color: $c;
|
||||||
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
.form-row {
|
.form-row {
|
||||||
$m: $interiorMargin;
|
$m: $interiorMargin;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include clearfix;
|
@include clearfix;
|
||||||
border-top: 1px solid $colorFormLines;
|
border-top: 1px solid $colorFormLines;
|
||||||
margin-top: $m;
|
margin-top: $m;
|
||||||
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
>.label,
|
>.label,
|
||||||
>.controls {
|
>.controls {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include clearfix;
|
@include clearfix;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
line-height: $formInputH;
|
line-height: $formInputH;
|
||||||
@ -175,7 +175,7 @@ label.form-control.checkbox {
|
|||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
|
|
||||||
div.s-hint {
|
div.s-hint {
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
background: rgba($colorFormInvalid, 0.8);
|
background: rgba($colorFormInvalid, 0.8);
|
||||||
display: block;
|
display: block;
|
||||||
color: lighten($colorFormInvalid, 30%);
|
color: lighten($colorFormInvalid, 30%);
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.icon.ui-symbol {
|
.icon.ui-symbol {
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
height: $formInputH;
|
height: $formInputH;
|
||||||
@ -43,9 +43,9 @@
|
|||||||
$d: $formInputH - $mgn * 2;
|
$d: $formInputH - $mgn * 2;
|
||||||
$cb: #fff;
|
$cb: #fff;
|
||||||
$cf: #333;
|
$cf: #333;
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include opacity(0.2);
|
opacity: 0.2;
|
||||||
background: $cb;
|
background: $cb;
|
||||||
color: $cf;
|
color: $cf;
|
||||||
display: block;
|
display: block;
|
||||||
@ -59,7 +59,7 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
&:hover {
|
&:hover {
|
||||||
@include opacity(0.6);
|
opacity: 0.6;
|
||||||
background-color: $colorKey;
|
background-color: $colorKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@
|
|||||||
.clear-icon,
|
.clear-icon,
|
||||||
.menu-icon,
|
.menu-icon,
|
||||||
&:before {
|
&:before {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
line-height: $formInputH;
|
line-height: $formInputH;
|
||||||
select {
|
select {
|
||||||
@include appearance(none);
|
@include appearance(none);
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
background: none;
|
background: none;
|
||||||
color: $colorSelectFg;
|
color: $colorSelectFg;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
.l-infobubble-wrapper {
|
.l-infobubble-wrapper {
|
||||||
$arwSize: 5px;
|
$arwSize: 5px;
|
||||||
@include box-shadow(rgba(black, 0.4) 0 1px 5px);
|
box-shadow: rgba(black, 0.4) 0 1px 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 50;
|
z-index: 50;
|
||||||
.l-infobubble {
|
.l-infobubble {
|
||||||
@ -149,8 +149,8 @@
|
|||||||
|
|
||||||
.s-infobubble {
|
.s-infobubble {
|
||||||
$emFg: darken($colorInfoBubbleFg, 20%);
|
$emFg: darken($colorInfoBubbleFg, 20%);
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include box-shadow(rgba(black, 0.4) 0 1px 5px);
|
box-shadow: rgba(black, 0.4) 0 1px 5px;
|
||||||
background: $colorInfoBubbleBg;
|
background: $colorInfoBubbleBg;
|
||||||
color: $colorInfoBubbleFg;
|
color: $colorInfoBubbleFg;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
@if $splitterEndCr != 'none' {
|
@if $splitterEndCr != 'none' {
|
||||||
@include border-radius($splitterEndCr);
|
border-radius: $splitterEndCr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:active {
|
&:active {
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
@include animation-duration(0.5s);
|
@include animation-duration(0.5s);
|
||||||
@include animation-iteration-count(infinite);
|
@include animation-iteration-count(infinite);
|
||||||
@include animation-timing-function(linear);
|
@include animation-timing-function(linear);
|
||||||
@include border-radius(100%);
|
border-radius: 100%;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-color: rgba($c, 0.25);
|
border-color: rgba($c, 0.25);
|
||||||
border-top-color: rgba($c, 1.0);
|
border-top-color: rgba($c, 1.0);
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
.tabular,
|
.tabular,
|
||||||
table {
|
table {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
display: table;
|
display: table;
|
||||||
@ -107,7 +107,7 @@ table {
|
|||||||
&.s-cell-type-value {
|
&.s-cell-type-value {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
.l-cell-contents {
|
.l-cell-contents {
|
||||||
@include border-radius($smallCr);
|
border-radius: $smallCr;
|
||||||
padding-left: $itemPadLR;
|
padding-left: $itemPadLR;
|
||||||
padding-right: $itemPadLR;
|
padding-right: $itemPadLR;
|
||||||
}
|
}
|
||||||
@ -126,7 +126,7 @@ table {
|
|||||||
top: $tabularHeaderH * 2;
|
top: $tabularHeaderH * 2;
|
||||||
}
|
}
|
||||||
input[type="text"] {
|
input[type="text"] {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
width: 100%; //50px;
|
width: 100%; //50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,11 +24,21 @@
|
|||||||
// representation. Instead of a grid,
|
// representation. Instead of a grid,
|
||||||
// a list is used.
|
// a list is used.
|
||||||
|
|
||||||
|
|
||||||
|
// Refactored to use Victorizr
|
||||||
.items-holder {
|
.items-holder {
|
||||||
.item {
|
.item {
|
||||||
&.grid-item {
|
&.grid-item {
|
||||||
$titleH: 30px;
|
$titleH: 30px;
|
||||||
@include phoneandtablet {
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body.phone,
|
||||||
|
body.tablet {
|
||||||
|
.items-holder {
|
||||||
|
.item {
|
||||||
|
&.grid-item {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
>.contents {
|
>.contents {
|
||||||
top: 0px; right: $interiorMarginLg; bottom: 0px; left: $interiorMarginLg;
|
top: 0px; right: $interiorMarginLg; bottom: 0px; left: $interiorMarginLg;
|
||||||
@ -36,7 +46,6 @@
|
|||||||
.bar {
|
.bar {
|
||||||
&.top-bar {
|
&.top-bar {
|
||||||
// Becomes the right side of the item
|
// Becomes the right side of the item
|
||||||
//@include test(blue);
|
|
||||||
bottom: 0 !important; left: auto !important; right: 20px !important;
|
bottom: 0 !important; left: auto !important; right: 20px !important;
|
||||||
width: 40px !important; height: auto !important;
|
width: 40px !important; height: auto !important;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -63,8 +72,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@include phone {
|
body.phone {
|
||||||
|
.items-holder {
|
||||||
|
.item {
|
||||||
|
&.grid-item {
|
||||||
$dHei: $phoneItemH;
|
$dHei: $phoneItemH;
|
||||||
height: $dHei;
|
height: $dHei;
|
||||||
.bar {
|
.bar {
|
||||||
@ -85,8 +100,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@include tablet {
|
body.tablet {
|
||||||
|
.items-holder {
|
||||||
|
.item {
|
||||||
|
&.grid-item {
|
||||||
$dHei: $tabletItemH;
|
$dHei: $tabletItemH;
|
||||||
height: $dHei;
|
height: $dHei;
|
||||||
.bar {
|
.bar {
|
||||||
|
@ -20,14 +20,7 @@
|
|||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@include phoneandtablet {
|
body.mobile {
|
||||||
// Wrapper of the entire 2 panes, only enacted on
|
|
||||||
// phone and tablet. Also for the panes
|
|
||||||
.browse-wrapper,
|
|
||||||
.pane {
|
|
||||||
top: 0 !important; right: 0; bottom: 0; left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pane.left.treeview {
|
.pane.left.treeview {
|
||||||
background-color: $colorMobilePaneLeft;
|
background-color: $colorMobilePaneLeft;
|
||||||
}
|
}
|
||||||
@ -141,7 +134,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include phonePortrait {
|
body.phone.portrait {
|
||||||
.pane-tree-showing {
|
.pane-tree-showing {
|
||||||
.pane.left.treeview {
|
.pane.left.treeview {
|
||||||
width: $proporMenuOnly !important;
|
width: $proporMenuOnly !important;
|
||||||
@ -156,7 +149,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include desktop {
|
body.desktop {
|
||||||
.desktop-hide {
|
.desktop-hide {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,8 @@
|
|||||||
|
|
||||||
// Desktop monitors in any orientation
|
// Desktop monitors in any orientation
|
||||||
@mixin desktopandtablet {
|
@mixin desktopandtablet {
|
||||||
|
// Keeping only for legacy - should not be used moving forward
|
||||||
|
// Use body.desktop, body.tablet instead.
|
||||||
@media #{$tabletPortrait},
|
@media #{$tabletPortrait},
|
||||||
#{$tabletLandscape},
|
#{$tabletLandscape},
|
||||||
#{$desktop} {
|
#{$desktop} {
|
||||||
@ -87,6 +89,8 @@
|
|||||||
|
|
||||||
// Desktop monitors in any orientation
|
// Desktop monitors in any orientation
|
||||||
@mixin desktop {
|
@mixin desktop {
|
||||||
|
// Keeping only for legacy - should not be used moving forward
|
||||||
|
// Use body.desktop instead.
|
||||||
@media #{$desktop} {
|
@media #{$desktop} {
|
||||||
@content
|
@content
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@include phoneandtablet {
|
body.touch {
|
||||||
ul.tree {
|
ul.tree {
|
||||||
// Sets the margin on the left, which causes the
|
// Sets the margin on the left, which causes the
|
||||||
// running indentation after each folder is made
|
// running indentation after each folder is made
|
||||||
@ -42,10 +42,10 @@
|
|||||||
&:before {
|
&:before {
|
||||||
content: "\7d";
|
content: "\7d";
|
||||||
left: 50%;
|
left: 50%;
|
||||||
@include transform(translateX(-50%) rotate(90deg));
|
@include transform(translateX(-50%) rotate(270deg));
|
||||||
}
|
}
|
||||||
&.expanded:before {
|
&.expanded:before {
|
||||||
@include transform(translateX(-50%) rotate(270deg));
|
@include transform(translateX(-50%) rotate(90deg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
.overlay > .holder {
|
.overlay > .holder {
|
||||||
//@include test(orange); // This works!
|
//@include test(orange); // This works!
|
||||||
$m: 0;
|
$m: 0;
|
||||||
@include border-radius($m);
|
border-radius: $m;
|
||||||
top: $m;
|
top: $m;
|
||||||
right: $m;
|
right: $m;
|
||||||
bottom: $m;
|
bottom: $m;
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
> .holder {
|
> .holder {
|
||||||
//$i: 15%;
|
//$i: 15%;
|
||||||
@include containerSubtle($colorOvrBg, $colorOvrFg);
|
@include containerSubtle($colorOvrBg, $colorOvrFg);
|
||||||
@include border-radius($basicCr * 3);
|
border-radius: $basicCr * 3;
|
||||||
color: $colorOvrFg;
|
color: $colorOvrFg;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
right: auto;
|
right: auto;
|
||||||
|
@ -69,8 +69,8 @@ $plotDisplayArea: ($legendH + $interiorMargin, 0, $xBarH + $interiorMargin, $yBa
|
|||||||
}
|
}
|
||||||
|
|
||||||
.gl-plot-coords {
|
.gl-plot-coords {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
background: black;
|
background: black;
|
||||||
color: lighten($colorBodyFg, 30%);
|
color: lighten($colorBodyFg, 30%);
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
@ -117,7 +117,7 @@ $plotDisplayArea: ($legendH + $interiorMargin, 0, $xBarH + $interiorMargin, $yBa
|
|||||||
&.l-plot-y-label {
|
&.l-plot-y-label {
|
||||||
$x: -50%;
|
$x: -50%;
|
||||||
$r: -90deg;
|
$r: -90deg;
|
||||||
@include transform-origin(50%, 0);
|
@include transform-origin(50% 0);
|
||||||
@include transform(translateX($x) rotate($r));
|
@include transform(translateX($x) rotate($r));
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: $interiorMargin; // Kick off the left edge
|
margin-left: $interiorMargin; // Kick off the left edge
|
||||||
@ -234,7 +234,7 @@ $plotDisplayArea: ($legendH + $interiorMargin, 0, $xBarH + $interiorMargin, $yBa
|
|||||||
}
|
}
|
||||||
.plot-color-swatch,
|
.plot-color-swatch,
|
||||||
.color-swatch {
|
.color-swatch {
|
||||||
@include border-radius(2px);
|
border-radius: 2px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height: $swatchD;
|
height: $swatchD;
|
||||||
width: $swatchD;
|
width: $swatchD;
|
||||||
@ -244,7 +244,7 @@ $plotDisplayArea: ($legendH + $interiorMargin, 0, $xBarH + $interiorMargin, $yBa
|
|||||||
|
|
||||||
.gl-plot-legend {
|
.gl-plot-legend {
|
||||||
.plot-legend-item {
|
.plot-legend-item {
|
||||||
@include border-radius($smallCr);
|
border-radius: $smallCr;
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
padding: 0px $itemPadLR;
|
padding: 0px $itemPadLR;
|
||||||
.plot-color-swatch {
|
.plot-color-swatch {
|
||||||
|
@ -42,7 +42,6 @@
|
|||||||
$iconEdgeM: 4px;
|
$iconEdgeM: 4px;
|
||||||
$iconD: $treeSearchInputBarH - ($iconEdgeM*2);
|
$iconD: $treeSearchInputBarH - ($iconEdgeM*2);
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
max-width: 250px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.search-input {
|
.search-input {
|
||||||
@ -53,7 +52,7 @@
|
|||||||
&:before,
|
&:before,
|
||||||
.clear-icon,
|
.clear-icon,
|
||||||
.menu-icon {
|
.menu-icon {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
color: $colorInputIcon;
|
color: $colorInputIcon;
|
||||||
height: $iconD;
|
height: $iconD;
|
||||||
width: $iconD;
|
width: $iconD;
|
||||||
@ -130,7 +129,7 @@
|
|||||||
.active-filter-display {
|
.active-filter-display {
|
||||||
$s: 0.7em;
|
$s: 0.7em;
|
||||||
$p: $interiorMargin;
|
$p: $interiorMargin;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
line-height: 130%;
|
line-height: 130%;
|
||||||
padding-left: $s * 2.25;
|
padding-left: $s * 2.25;
|
||||||
font-size: $s;
|
font-size: $s;
|
||||||
|
@ -34,11 +34,10 @@ ul.tree {
|
|||||||
|
|
||||||
.tree-item,
|
.tree-item,
|
||||||
.search-result-item {
|
.search-result-item {
|
||||||
$runningItemW: 0;
|
|
||||||
@extend .l-flex-row;
|
@extend .l-flex-row;
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include border-radius($basicCr);
|
border-radius: $basicCr;
|
||||||
@include single-transition(background-color, 0.25s);
|
@include transition(background-color, 0.25s);
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
height: $menuLineH;
|
height: $menuLineH;
|
||||||
line-height: $menuLineH;
|
line-height: $menuLineH;
|
||||||
@ -64,11 +63,6 @@ ul.tree {
|
|||||||
@include transform(rotate(90deg));
|
@include transform(rotate(90deg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@include desktop {
|
|
||||||
&:hover {
|
|
||||||
color: $colorItemTreeVCHover !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.t-object-label {
|
.t-object-label {
|
||||||
@ -95,18 +89,6 @@ ul.tree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(.selected) {
|
|
||||||
@include desktop {
|
|
||||||
&:hover {
|
|
||||||
background: $colorItemTreeHoverBg;
|
|
||||||
color: $colorItemTreeHoverFg;
|
|
||||||
.t-item-icon {
|
|
||||||
color: $colorItemTreeIconHover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(.loading) {
|
&:not(.loading) {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
@ -124,31 +106,38 @@ ul.tree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.desktop {
|
||||||
|
.tree-item,
|
||||||
|
.search-result-item {
|
||||||
|
.view-control {
|
||||||
|
&:hover {
|
||||||
|
color: $colorItemTreeVCHover !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:not(.selected) {
|
||||||
|
&:hover {
|
||||||
|
background: $colorItemTreeHoverBg;
|
||||||
|
color: $colorItemTreeHoverFg;
|
||||||
|
.t-item-icon {
|
||||||
|
color: $colorItemTreeIconHover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mct-representation {
|
mct-representation {
|
||||||
&.s-status-pending {
|
&.s-status-pending {
|
||||||
.t-object-label {
|
.t-object-label {
|
||||||
.t-item-icon {
|
.t-item-icon {
|
||||||
&:before {
|
&:before {
|
||||||
$spinBW: 4px;
|
|
||||||
@include spinner($spinBW);
|
|
||||||
border-color: rgba($colorItemTreeIcon, 0.25);
|
border-color: rgba($colorItemTreeIcon, 0.25);
|
||||||
border-top-color: rgba($colorItemTreeIcon, 1.0);
|
border-top-color: rgba($colorItemTreeIcon, 1.0);
|
||||||
}
|
}
|
||||||
.t-item-icon-glyph {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.t-title-label {
|
|
||||||
font-style: italic;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.selected mct-representation.s-status-pending .t-object-label .t-item-icon:before {
|
|
||||||
border-color: rgba($colorItemTreeSelectedFg, 0.25);
|
|
||||||
border-top-color: rgba($colorItemTreeSelectedFg, 1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tree .s-status-editing,
|
.tree .s-status-editing,
|
||||||
.search-results .s-status-editing {
|
.search-results .s-status-editing {
|
||||||
@ -169,7 +158,7 @@ mct-representation {
|
|||||||
.t-item-icon,
|
.t-item-icon,
|
||||||
.t-title-label {
|
.t-title-label {
|
||||||
color: $colorItemTreeEditingFg;
|
color: $colorItemTreeEditingFg;
|
||||||
@include text-shadow(none);
|
text-shadow: none;
|
||||||
}
|
}
|
||||||
.t-title-label {
|
.t-title-label {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
@ -66,17 +66,6 @@
|
|||||||
.view-switcher {
|
.view-switcher {
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
// Hide the view switcher by default when it's in an element that's in a frame context
|
|
||||||
// Frame template is used because we need to target the lowest nested frame
|
|
||||||
@include desktop {
|
|
||||||
.view-switcher {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
&:hover .view-switcher {
|
|
||||||
// Show the view switcher on frame hover
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.view-switcher {
|
.view-switcher {
|
||||||
// Hide the name when the view switcher is in a frame context
|
// Hide the name when the view switcher is in a frame context
|
||||||
@ -85,3 +74,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
body.desktop .frame.frame-template {
|
||||||
|
// Hide the view switcher by default when it's in an element that's in a frame context
|
||||||
|
// Frame template is used because we need to target the lowest nested frame
|
||||||
|
.view-switcher {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
&:hover .view-switcher {
|
||||||
|
// Show the view switcher on frame hover
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor {
|
.editor {
|
||||||
@include border-radius($basicCr * 1.5);
|
border-radius: $basicCr * 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contents {
|
.contents {
|
||||||
@ -86,7 +86,7 @@
|
|||||||
color: lighten($colorBodyBg, 30%);
|
color: lighten($colorBodyBg, 30%);
|
||||||
font-size: .7rem;
|
font-size: .7rem;
|
||||||
.status-holder {
|
.status-holder {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include absPosDefault($interiorMargin);
|
@include absPosDefault($interiorMargin);
|
||||||
@include ellipsize();
|
@include ellipsize();
|
||||||
right: 120px;
|
right: 120px;
|
||||||
@ -94,7 +94,7 @@
|
|||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
.app-logo {
|
.app-logo {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
@include absPosDefault($interiorMargin);
|
@include absPosDefault($interiorMargin);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
left: auto;
|
left: auto;
|
||||||
@ -121,7 +121,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.pane {
|
.pane {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
.pane-header {
|
.pane-header {
|
||||||
@ -137,7 +137,18 @@
|
|||||||
|
|
||||||
.mini-tab-icon.toggle-pane {
|
.mini-tab-icon.toggle-pane {
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
@include desktop {
|
}
|
||||||
|
&.items {
|
||||||
|
.object-browse-bar {
|
||||||
|
.left.abs,
|
||||||
|
.right.abs {
|
||||||
|
top: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body.desktop .pane .mini-tab-icon.toggle-pane {
|
||||||
$d: $uePaneMiniTabH;
|
$d: $uePaneMiniTabH;
|
||||||
$paneExpandedOffset: $splitterD + $uePaneMiniTabW;
|
$paneExpandedOffset: $splitterD + $uePaneMiniTabW;
|
||||||
top: $bodyMargin;
|
top: $bodyMargin;
|
||||||
@ -178,16 +189,6 @@
|
|||||||
right: $interiorMargin;
|
right: $interiorMargin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
&.items {
|
|
||||||
.object-browse-bar {
|
|
||||||
.left.abs,
|
|
||||||
.right.abs {
|
|
||||||
top: auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.split-layout {
|
.split-layout {
|
||||||
@ -282,7 +283,7 @@
|
|||||||
|
|
||||||
/***************************************************** OBJECT BROWSE BAR */
|
/***************************************************** OBJECT BROWSE BAR */
|
||||||
.object-browse-bar {
|
.object-browse-bar {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
height: $ueTopBarH;
|
height: $ueTopBarH;
|
||||||
line-height: $ueTopBarH;
|
line-height: $ueTopBarH;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@ -339,7 +340,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include desktop {
|
body.desktop {
|
||||||
.holder-all {
|
.holder-all {
|
||||||
min-width: $ueDesktopMinW;
|
min-width: $ueDesktopMinW;
|
||||||
}
|
}
|
||||||
@ -378,7 +379,7 @@
|
|||||||
.s-status-editing {
|
.s-status-editing {
|
||||||
.l-object-wrapper {
|
.l-object-wrapper {
|
||||||
@include pulseBorder($colorEditAreaFg, $dur: 1s, $opacity0: 0.3);
|
@include pulseBorder($colorEditAreaFg, $dur: 1s, $opacity0: 0.3);
|
||||||
@include border-radius($controlCr);
|
border-radius: $controlCr;
|
||||||
background-color: $colorEditAreaBg;
|
background-color: $colorEditAreaBg;
|
||||||
border-color: $colorEditAreaFg;
|
border-color: $colorEditAreaFg;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
height: $btnToolbarH;
|
height: $btnToolbarH;
|
||||||
}
|
}
|
||||||
input[type="text"] {
|
input[type="text"] {
|
||||||
@include box-sizing(border-box);
|
box-sizing: border-box;
|
||||||
font-size: .9em;
|
font-size: .9em;
|
||||||
height: $btnToolbarH;
|
height: $btnToolbarH;
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
<div id='status' class='status-holder'>
|
<div id='status' class='status-holder'>
|
||||||
<mct-include ng-repeat="indicator in bar.getIndicators()"
|
<mct-include ng-repeat="indicator in bar.getIndicators()"
|
||||||
ng-model="indicator.ngModel"
|
ng-model="indicator.ngModel"
|
||||||
key="indicator.template">
|
key="indicator.template"
|
||||||
|
class="status-block-holder">
|
||||||
</mct-include>
|
</mct-include>
|
||||||
</div>
|
</div>
|
||||||
<mct-include key="'message-banner'"></mct-include>
|
<mct-include key="'message-banner'"></mct-include>
|
||||||
|
@ -30,11 +30,8 @@
|
|||||||
</span><span class="label"
|
</span><span class="label"
|
||||||
ng-class='ngModel.getTextClass()'>
|
ng-class='ngModel.getTextClass()'>
|
||||||
{{ngModel.getText()}}
|
{{ngModel.getText()}}
|
||||||
|
<a class="s-btn ui-symbol" ng-if="ngModel.configure">G</a>
|
||||||
</span><span class="count">
|
</span><span class="count">
|
||||||
<!-- Add int count value here if this type of indicator has one or more messages associated with it -->
|
<!-- Add int count value here if this type of indicator has one or more messages associated with it -->
|
||||||
</span><a href=''
|
</span>
|
||||||
class="ui-symbol"
|
|
||||||
ng-if="ngModel.configure">
|
|
||||||
G
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
@ -1,26 +0,0 @@
|
|||||||
# Require any additional compass plugins here.
|
|
||||||
# require "compass-growl"
|
|
||||||
|
|
||||||
# Set this to the root of your project when deployed:
|
|
||||||
http_path = "/"
|
|
||||||
css_dir = "css"
|
|
||||||
sass_dir = "sass"
|
|
||||||
images_dir = "images"
|
|
||||||
javascripts_dir = "js"
|
|
||||||
|
|
||||||
# You can select your preferred output style here (can be overridden via the command line):
|
|
||||||
# :expanded, :compressed, :nested
|
|
||||||
output_style = :nested
|
|
||||||
|
|
||||||
# To enable relative paths to assets via compass helper functions. Uncomment:
|
|
||||||
relative_assets = true
|
|
||||||
|
|
||||||
# To disable debugging comments that display the original location of your selectors. Uncomment:
|
|
||||||
# line_comments = false
|
|
||||||
|
|
||||||
|
|
||||||
# If you prefer the indented syntax, you might want to regenerate this
|
|
||||||
# project again passing --syntax sass, or you can uncomment this:
|
|
||||||
# preferred_syntax = :sass
|
|
||||||
# and then run:
|
|
||||||
# sass-convert -R --from scss --to sass vfn_platform/static/sass scss && rm -rf sass && mv scss sass
|
|
File diff suppressed because it is too large
Load Diff
@ -12,12 +12,14 @@ $colorInteriorBorder: rgba($colorBodyFg, 0.1);
|
|||||||
$colorA: #ccc;
|
$colorA: #ccc;
|
||||||
$colorAHov: #fff;
|
$colorAHov: #fff;
|
||||||
$contrastRatioPercent: 7%;
|
$contrastRatioPercent: 7%;
|
||||||
|
$hoverRatioPercent: 10%;
|
||||||
$basicCr: 3px;
|
$basicCr: 3px;
|
||||||
$controlCr: 3px;
|
$controlCr: 3px;
|
||||||
$smallCr: 2px;
|
$smallCr: 2px;
|
||||||
|
|
||||||
// Buttons and Controls
|
// Buttons and Controls
|
||||||
$colorBtnBg: pullForward($colorBodyBg, $contrastRatioPercent); //
|
$colorBtnBg: pullForward($colorBodyBg, $contrastRatioPercent);
|
||||||
|
$colorBtnBgHov: pullForward($colorBtnBg, $hoverRatioPercent);
|
||||||
$colorBtnFg: $colorBodyFg;
|
$colorBtnFg: $colorBodyFg;
|
||||||
$colorBtnMajorBg: $colorKey;
|
$colorBtnMajorBg: $colorKey;
|
||||||
$colorBtnMajorFg: $colorKeyFg;
|
$colorBtnMajorFg: $colorKeyFg;
|
||||||
@ -54,7 +56,7 @@ $colorTick: rgba(white, 0.2);
|
|||||||
$colorMenuBg: pullForward($colorBodyBg, 23%);
|
$colorMenuBg: pullForward($colorBodyBg, 23%);
|
||||||
$colorMenuFg: pullForward($colorMenuBg, 70%);
|
$colorMenuFg: pullForward($colorMenuBg, 70%);
|
||||||
$colorMenuIc: pullForward($colorKey, 17%);
|
$colorMenuIc: pullForward($colorKey, 17%);
|
||||||
$colorMenuHovBg: pullForward($colorMenuBg, 10%);
|
$colorMenuHovBg: pullForward($colorMenuBg, $hoverRatioPercent);
|
||||||
$colorMenuHovFg: #fff;
|
$colorMenuHovFg: #fff;
|
||||||
$colorMenuHovIc: $colorMenuHovFg;
|
$colorMenuHovIc: $colorMenuHovFg;
|
||||||
$shdwMenu: none;
|
$shdwMenu: none;
|
||||||
@ -89,6 +91,8 @@ $colorStatusDefault: #ccc;
|
|||||||
$colorStatusInfo: #62ba72;
|
$colorStatusInfo: #62ba72;
|
||||||
$colorStatusAlert: #ffa66d;
|
$colorStatusAlert: #ffa66d;
|
||||||
$colorStatusError: #d4585c;
|
$colorStatusError: #d4585c;
|
||||||
|
$colorStatusAvailable: $colorKey;
|
||||||
|
$colorStatusBtnBg: $colorBtnBg;
|
||||||
$colorProgressBarOuter: rgba(#000, 0.1);
|
$colorProgressBarOuter: rgba(#000, 0.1);
|
||||||
$colorProgressBarAmt: $colorKey;
|
$colorProgressBarAmt: $colorKey;
|
||||||
$progressBarHOverlay: 15px;
|
$progressBarHOverlay: 15px;
|
||||||
@ -123,7 +127,7 @@ $colorOvrBtnFg: #fff;
|
|||||||
|
|
||||||
// Items
|
// Items
|
||||||
$colorItemBg: lighten($colorBodyBg, 5%);
|
$colorItemBg: lighten($colorBodyBg, 5%);
|
||||||
$colorItemBgHov: pullForward($colorItemBg, 15%);
|
$colorItemBgHov: pullForward($colorItemBg, $hoverRatioPercent);
|
||||||
$colorItemFg: lighten($colorItemBg, 50%);
|
$colorItemFg: lighten($colorItemBg, 50%);
|
||||||
$colorItemFgDetails: lighten($colorItemBg, 30%);
|
$colorItemFgDetails: lighten($colorItemBg, 30%);
|
||||||
$colorItemIc: $colorKey;
|
$colorItemIc: $colorKey;
|
||||||
@ -149,26 +153,26 @@ $colorPlotAreaBorder: $colorInteriorBorder;
|
|||||||
$colorPlotLabelFg: pushBack($colorPlotFg, 20%);
|
$colorPlotLabelFg: pushBack($colorPlotFg, 20%);
|
||||||
|
|
||||||
// Tree
|
// Tree
|
||||||
$colorItemTreeHoverBg: rgba($colorBodyFg, 0.1);
|
$colorItemTreeHoverBg: pullForward($colorBodyBg, $hoverRatioPercent);
|
||||||
$colorItemTreeHoverFg: pullForward($colorBodyFg, 20%);
|
$colorItemTreeHoverFg: pullForward($colorBodyFg, $hoverRatioPercent);
|
||||||
$colorItemTreeIcon: $colorKey;
|
$colorItemTreeIcon: $colorKey;
|
||||||
$colorItemTreeIconHover: lighten($colorItemTreeIcon, 20%);
|
$colorItemTreeIconHover: lighten($colorItemTreeIcon, 20%);
|
||||||
$colorItemTreeVCHover: $colorAlt1;
|
|
||||||
$colorItemTreeFg: $colorBodyFg;
|
$colorItemTreeFg: $colorBodyFg;
|
||||||
$colorItemTreeSelectedBg: pushBack($colorKey, 15%);
|
$colorItemTreeSelectedBg: pushBack($colorKey, 15%);
|
||||||
$colorItemTreeSelectedFg: pullForward($colorBodyFg, 20%);
|
$colorItemTreeSelectedFg: pullForward($colorBodyFg, 20%);
|
||||||
$colorItemTreeEditingBg: #344154;
|
$colorItemTreeEditingBg: #344154;
|
||||||
$colorItemTreeEditingFg: $colorEditAreaFg;
|
$colorItemTreeEditingFg: $colorEditAreaFg;
|
||||||
$colorItemTreeVC: rgba(#fff, 0.3);
|
$colorItemTreeVC: $colorBodyFg; //rgba(#fff, 0.3);
|
||||||
|
$colorItemTreeVCHover: pullForward($colorItemTreeVC, 20%);
|
||||||
$colorItemTreeSelectedVC: $colorItemTreeVC;
|
$colorItemTreeSelectedVC: $colorItemTreeVC;
|
||||||
$shdwItemTreeIcon: 0.6;
|
$shdwItemTreeIcon: 0.6;
|
||||||
|
|
||||||
// Scrollbar
|
// Scrollbar
|
||||||
$scrollbarTrackSize: 10px;
|
$scrollbarTrackSize: 10px;
|
||||||
|
$scrollbarTrackShdw: rgba(#000, 0.7) 0 1px 5px;
|
||||||
$scrollbarTrackColorBg: rgba(#000, 0.4);
|
$scrollbarTrackColorBg: rgba(#000, 0.4);
|
||||||
$scrollbarThumbColor: lighten($colorBodyBg, 10%);
|
$scrollbarThumbColor: lighten($colorBodyBg, 10%);
|
||||||
$scrollbarThumbColorHov: lighten($scrollbarThumbColor, 2%);
|
$scrollbarThumbColorHov: lighten($scrollbarThumbColor, 2%);
|
||||||
$scrollbarTrackShdw: rgba(#000, 0.7) 0 1px 5px;
|
|
||||||
|
|
||||||
// Splitter
|
// Splitter
|
||||||
$splitterD: 25px; // splitterD and HandleD should both be odd, or even
|
$splitterD: 25px; // splitterD and HandleD should both be odd, or even
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
@include boxShdw($shdwBtns);
|
@include boxShdw($shdwBtns);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin btnSubtle($bg: $colorBodyBg, $bgHov: none, $fg: $colorBodyFg, $ic: $colorBtnIcon) {
|
@mixin btnSubtle($bg: $colorBodyBg, $bgHovColor: none, $fg: $colorBodyFg, $ic: $colorBtnIcon) {
|
||||||
@include containerSubtle($bg, $fg);
|
@include containerSubtle($bg, $fg);
|
||||||
@include btnBase($bg, linear-gradient(lighten($bg, 15%), lighten($bg, 10%)), $fg, $ic);
|
@include btnBase($bg, $bgHovColor, $fg, $ic);
|
||||||
@include text-shadow($shdwItemText);
|
text-shadow: $shdwItemText;
|
||||||
}
|
}
|
||||||
|
|
||||||
@function pullForward($c: $colorBodyBg, $p: 20%) {
|
@function pullForward($c: $colorBodyBg, $p: 20%) {
|
||||||
|
@ -20,10 +20,7 @@
|
|||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@import "compass";
|
@import "bourbon";
|
||||||
@import "compass/reset";
|
|
||||||
@import "compass/css3";
|
|
||||||
@import "compass/utilities";
|
|
||||||
|
|
||||||
@import "../../../../general/res/sass/_mixins";
|
@import "../../../../general/res/sass/_mixins";
|
||||||
@import "../../../../general/res/sass/mobile/mixins";
|
@import "../../../../general/res/sass/mobile/mixins";
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
# Require any additional compass plugins here.
|
|
||||||
# require "compass-growl"
|
|
||||||
|
|
||||||
# Set this to the root of your project when deployed:
|
|
||||||
http_path = "/"
|
|
||||||
css_dir = "css"
|
|
||||||
sass_dir = "sass"
|
|
||||||
images_dir = "images"
|
|
||||||
javascripts_dir = "js"
|
|
||||||
|
|
||||||
# You can select your preferred output style here (can be overridden via the command line):
|
|
||||||
# :expanded, :compressed, :nested
|
|
||||||
output_style = :nested
|
|
||||||
|
|
||||||
# To enable relative paths to assets via compass helper functions. Uncomment:
|
|
||||||
relative_assets = true
|
|
||||||
|
|
||||||
# To disable debugging comments that display the original location of your selectors. Uncomment:
|
|
||||||
# line_comments = false
|
|
||||||
|
|
||||||
|
|
||||||
# If you prefer the indented syntax, you might want to regenerate this
|
|
||||||
# project again passing --syntax sass, or you can uncomment this:
|
|
||||||
# preferred_syntax = :sass
|
|
||||||
# and then run:
|
|
||||||
# sass-convert -R --from scss --to sass vfn_platform/static/sass scss && rm -rf sass && mv scss sass
|
|
File diff suppressed because it is too large
Load Diff
@ -12,12 +12,14 @@ $colorInteriorBorder: rgba($colorBodyFg, 0.2);
|
|||||||
$colorA: #999;
|
$colorA: #999;
|
||||||
$colorAHov: $colorKey;
|
$colorAHov: $colorKey;
|
||||||
$contrastRatioPercent: 40%;
|
$contrastRatioPercent: 40%;
|
||||||
|
$hoverRatioPercent: 10%;
|
||||||
$basicCr: 4px;
|
$basicCr: 4px;
|
||||||
$controlCr: $basicCr;
|
$controlCr: $basicCr;
|
||||||
$smallCr: 3px;
|
$smallCr: 3px;
|
||||||
|
|
||||||
// Buttons and Controls
|
// Buttons and Controls
|
||||||
$colorBtnBg: pullForward($colorBodyBg, $contrastRatioPercent);
|
$colorBtnBg: pullForward($colorBodyBg, $contrastRatioPercent);
|
||||||
|
$colorBtnBgHov: pullForward($colorBtnBg, $hoverRatioPercent);
|
||||||
$colorBtnFg: #fff;
|
$colorBtnFg: #fff;
|
||||||
$colorBtnMajorBg: $colorKey;
|
$colorBtnMajorBg: $colorKey;
|
||||||
$colorBtnMajorFg: $colorKeyFg;
|
$colorBtnMajorFg: $colorKeyFg;
|
||||||
@ -54,7 +56,7 @@ $colorTick: rgba(black, 0.2);
|
|||||||
$colorMenuBg: pushBack($colorBodyBg, 10%);
|
$colorMenuBg: pushBack($colorBodyBg, 10%);
|
||||||
$colorMenuFg: pullForward($colorMenuBg, 70%);
|
$colorMenuFg: pullForward($colorMenuBg, 70%);
|
||||||
$colorMenuIc: $colorKey;
|
$colorMenuIc: $colorKey;
|
||||||
$colorMenuHovBg: pullForward($colorMenuBg, 10%);
|
$colorMenuHovBg: pullForward($colorMenuBg, $hoverRatioPercent);
|
||||||
$colorMenuHovFg: $colorMenuFg;
|
$colorMenuHovFg: $colorMenuFg;
|
||||||
$colorMenuHovIc: $colorMenuIc;
|
$colorMenuHovIc: $colorMenuIc;
|
||||||
$shdwMenu: rgba(black, 0.5) 0 1px 5px;
|
$shdwMenu: rgba(black, 0.5) 0 1px 5px;
|
||||||
@ -89,6 +91,8 @@ $colorStatusDefault: #ccc;
|
|||||||
$colorStatusInfo: #60ba7b;
|
$colorStatusInfo: #60ba7b;
|
||||||
$colorStatusAlert: #ffb66c;
|
$colorStatusAlert: #ffb66c;
|
||||||
$colorStatusError: #c96b68;
|
$colorStatusError: #c96b68;
|
||||||
|
$colorStatusAvailable: $colorKey;
|
||||||
|
$colorStatusBtnBg: #666;
|
||||||
$colorProgressBarOuter: rgba(#000, 0.1);
|
$colorProgressBarOuter: rgba(#000, 0.1);
|
||||||
$colorProgressBarAmt: #0a0;
|
$colorProgressBarAmt: #0a0;
|
||||||
$progressBarHOverlay: 15px;
|
$progressBarHOverlay: 15px;
|
||||||
@ -123,7 +127,7 @@ $colorOvrBtnFg: #fff;
|
|||||||
|
|
||||||
// Items
|
// Items
|
||||||
$colorItemBg: #ddd;
|
$colorItemBg: #ddd;
|
||||||
$colorItemBgHov: pullForward($colorItemBg, 5%);
|
$colorItemBgHov: pullForward($colorItemBg, $hoverRatioPercent);
|
||||||
$colorItemFg: $colorBodyFg;
|
$colorItemFg: $colorBodyFg;
|
||||||
$colorItemFgDetails: pushBack($colorItemFg, 15%);
|
$colorItemFgDetails: pushBack($colorItemFg, 15%);
|
||||||
$colorItemIc: $colorKey;
|
$colorItemIc: $colorKey;
|
||||||
@ -149,17 +153,17 @@ $colorPlotAreaBorder: $colorInteriorBorder;
|
|||||||
$colorPlotLabelFg: pushBack($colorPlotFg, 20%);
|
$colorPlotLabelFg: pushBack($colorPlotFg, 20%);
|
||||||
|
|
||||||
// Tree
|
// Tree
|
||||||
$colorItemTreeHoverBg: rgba($colorBodyFg, 0.1);
|
$colorItemTreeHoverBg: pullForward($colorBodyBg, $hoverRatioPercent);
|
||||||
$colorItemTreeHoverFg: pullForward($colorBodyFg, 20%);
|
$colorItemTreeHoverFg: pullForward($colorBodyFg, $hoverRatioPercent);
|
||||||
$colorItemTreeIcon: $colorKey;
|
$colorItemTreeIcon: $colorKey;
|
||||||
$colorItemTreeIconHover: $colorItemTreeIcon; //pushBack($colorItemTreeIcon, 20%);
|
$colorItemTreeIconHover: $colorItemTreeIcon;
|
||||||
$colorItemTreeVCHover: $colorKey;
|
|
||||||
$colorItemTreeFg: $colorBodyFg;
|
$colorItemTreeFg: $colorBodyFg;
|
||||||
$colorItemTreeSelectedBg: pushBack($colorKey, 15%);
|
$colorItemTreeSelectedBg: pushBack($colorKey, 15%);
|
||||||
$colorItemTreeSelectedFg: $colorBodyBg;
|
$colorItemTreeSelectedFg: $colorBodyBg;
|
||||||
$colorItemTreeEditingBg: #caf1ff; //#c6e3ff;
|
$colorItemTreeEditingBg: #caf1ff;
|
||||||
$colorItemTreeEditingFg: $colorEditAreaFg;
|
$colorItemTreeEditingFg: $colorEditAreaFg;
|
||||||
$colorItemTreeVC: $colorBodyFg;
|
$colorItemTreeVC: $colorBodyFg;
|
||||||
|
$colorItemTreeVCHover: $colorKey;
|
||||||
$colorItemTreeSelectedVC: $colorBodyBg;
|
$colorItemTreeSelectedVC: $colorBodyBg;
|
||||||
$shdwItemTreeIcon: none;
|
$shdwItemTreeIcon: none;
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
@include boxShdw($shdwBtns);
|
@include boxShdw($shdwBtns);
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin btnSubtle($bg: $colorBtnBg, $bgHov: none, $fg: $colorBtnFg, $ic: $colorBtnIcon) {
|
@mixin btnSubtle($bg: $colorBtnBg, $bgHovColor: none, $fg: $colorBtnFg, $ic: $colorBtnIcon) {
|
||||||
@include containerSubtle($bg, $fg);
|
@include containerSubtle($bg, $fg);
|
||||||
@include btnBase($bg, $bgHov, $fg, $ic);
|
@include btnBase($bg, $bgHovColor, $fg, $ic);
|
||||||
@include text-shadow($shdwItemText);
|
text-shadow: $shdwItemText;
|
||||||
}
|
}
|
||||||
|
|
||||||
@function pullForward($c: $colorBodyBg, $p: 20%) {
|
@function pullForward($c: $colorBodyBg, $p: 20%) {
|
||||||
|
@ -20,10 +20,7 @@
|
|||||||
* at runtime from the About dialog for additional information.
|
* at runtime from the About dialog for additional information.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@import "compass";
|
@import "bourbon";
|
||||||
@import "compass/reset";
|
|
||||||
@import "compass/css3";
|
|
||||||
@import "compass/utilities";
|
|
||||||
|
|
||||||
@import "../../../../general/res/sass/_mixins";
|
@import "../../../../general/res/sass/_mixins";
|
||||||
@import "../../../../general/res/sass/mobile/mixins";
|
@import "../../../../general/res/sass/mobile/mixins";
|
||||||
|
@ -55,7 +55,8 @@ define(
|
|||||||
this.policyService = this.policyService || this.getPolicyService();
|
this.policyService = this.policyService || this.getPolicyService();
|
||||||
|
|
||||||
// ...and delegate to the composition policy
|
// ...and delegate to the composition policy
|
||||||
return this.policyService.allow(
|
return containerObject.getId() !== selectedObject.getId() &&
|
||||||
|
this.policyService.allow(
|
||||||
'composition',
|
'composition',
|
||||||
containerType,
|
containerType,
|
||||||
selectedType
|
selectedType
|
||||||
|
@ -99,25 +99,25 @@ define([
|
|||||||
"versions": [
|
"versions": [
|
||||||
{
|
{
|
||||||
"name": "Version",
|
"name": "Version",
|
||||||
"value": "${project.version}",
|
"value": "@@version",
|
||||||
"priority": 999
|
"priority": 999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Built",
|
"name": "Built",
|
||||||
"value": "${timestamp}",
|
"value": "@@timestamp",
|
||||||
"description": "The date on which this version of the client was built.",
|
"description": "The date on which this version of the client was built.",
|
||||||
"priority": 990
|
"priority": 990
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Revision",
|
"name": "Revision",
|
||||||
"value": "${buildNumber}",
|
"value": "@@revision",
|
||||||
"description": "A unique revision identifier for the client sources.",
|
"description": "A unique revision identifier for the client sources.",
|
||||||
"priority": 995
|
"priority": 995
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Branch",
|
"name": "Branch",
|
||||||
"value": "${scmBranch}",
|
"value": "@@branch",
|
||||||
"description": "The date on which this version of the client was built.",
|
"description": "The name of the branch that was used during the build.",
|
||||||
"priority": 994
|
"priority": 994
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -407,11 +407,11 @@ define([
|
|||||||
"licenses": [
|
"licenses": [
|
||||||
{
|
{
|
||||||
"name": "Math.uuid.js",
|
"name": "Math.uuid.js",
|
||||||
"version": "1.4",
|
"version": "1.4.7",
|
||||||
"description": "Unique identifer generation (code adapted.)",
|
"description": "Unique identifer generation (code adapted.)",
|
||||||
"author": "Robert Kieffer",
|
"author": "Robert Kieffer",
|
||||||
"website": "https://github.com/broofa/node-uuid",
|
"website": "https://github.com/broofa/node-uuid",
|
||||||
"copyright": "Copyright (c) 2010 Robert Kieffer",
|
"copyright": "Copyright (c) 2010-2012 Robert Kieffer",
|
||||||
"license": "license-mit",
|
"license": "license-mit",
|
||||||
"link": "http://opensource.org/licenses/MIT"
|
"link": "http://opensource.org/licenses/MIT"
|
||||||
}
|
}
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
/*global define*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adapted from:
|
|
||||||
Math.uuid.js (v1.4)
|
|
||||||
http://www.broofa.com
|
|
||||||
mailto:robert@broofa.com
|
|
||||||
|
|
||||||
Copyright (c) 2010 Robert Kieffer
|
|
||||||
Dual licensed under the MIT and GPL licenses.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
function () {
|
|
||||||
'use strict';
|
|
||||||
return function generateUUID() {
|
|
||||||
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'],
|
|
||||||
uuid = new Array(36),
|
|
||||||
rnd = 0,
|
|
||||||
r,
|
|
||||||
i,
|
|
||||||
offset = Math.floor(Date.now()) % 0xF;
|
|
||||||
for (i = 0; i < 36; i = i + 1) {
|
|
||||||
if (i === 8 || i === 13 || i === 18 || i === 23) {
|
|
||||||
uuid[i] = '-';
|
|
||||||
} else if (i === 14) {
|
|
||||||
uuid[i] = '4';
|
|
||||||
} else {
|
|
||||||
if (rnd <= 0x02) {
|
|
||||||
rnd = 0x2000000 + Math.floor(Math.random() * 0x1000000);
|
|
||||||
}
|
|
||||||
r = rnd % 0xf;
|
|
||||||
rnd = Math.floor(rnd / 16);
|
|
||||||
uuid[i] = chars[(i === 19) ? ((r % 0x3) + 0x8) : r];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return uuid.join('');
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
@ -22,7 +22,7 @@
|
|||||||
/*global define*/
|
/*global define*/
|
||||||
|
|
||||||
define(
|
define(
|
||||||
["../../lib/uuid", "./Identifier"],
|
["uuid", "./Identifier"],
|
||||||
function (uuid, Identifier) {
|
function (uuid, Identifier) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
@ -54,20 +54,52 @@ define(
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A function used to check if a domain object should be cloned
|
||||||
|
* or not.
|
||||||
|
* @callback platform/entanglement.CopyService~filter
|
||||||
|
* @param {DomainObject} domainObject the object to be cloned
|
||||||
|
* @returns {boolean} true if the object should be cloned; false
|
||||||
|
* if it should be linked
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a duplicate of the object tree starting at domainObject to
|
* Creates a duplicate of the object tree starting at domainObject to
|
||||||
* the new parent specified.
|
* the new parent specified.
|
||||||
* @param domainObject
|
*
|
||||||
* @param parent
|
* Any domain objects which cannot be created will not be cloned;
|
||||||
* @param progress
|
* instead, these will appear as links. If a filtering function
|
||||||
|
* is provided, any objects which fail that check will also be
|
||||||
|
* linked instead of cloned
|
||||||
|
*
|
||||||
|
* @param {DomainObject} domainObject the object to duplicate
|
||||||
|
* @param {DomainObject} parent the destination for the clone
|
||||||
|
* @param {platform/entanglement.CopyService~filter} [filter]
|
||||||
|
* an optional function used to filter out objects from
|
||||||
|
* the cloning process
|
||||||
* @returns a promise that will be completed with the clone of
|
* @returns a promise that will be completed with the clone of
|
||||||
* domainObject when the duplication is successful.
|
* domainObject when the duplication is successful.
|
||||||
*/
|
*/
|
||||||
CopyService.prototype.perform = function (domainObject, parent) {
|
CopyService.prototype.perform = function (domainObject, parent, filter) {
|
||||||
var $q = this.$q,
|
var policyService = this.policyService;
|
||||||
copyTask = new CopyTask(domainObject, parent, this.policyService, this.$q);
|
|
||||||
|
// Combines caller-provided filter (if any) with the
|
||||||
|
// baseline behavior of respecting creation policy.
|
||||||
|
function filterWithPolicy(domainObject) {
|
||||||
|
return (!filter || filter(domainObject)) &&
|
||||||
|
policyService.allow(
|
||||||
|
"creation",
|
||||||
|
domainObject.getCapability("type")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.validate(domainObject, parent)) {
|
if (this.validate(domainObject, parent)) {
|
||||||
return copyTask.perform();
|
return new CopyTask(
|
||||||
|
domainObject,
|
||||||
|
parent,
|
||||||
|
filterWithPolicy,
|
||||||
|
this.$q
|
||||||
|
).perform();
|
||||||
} else {
|
} else {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Tried to copy objects without validating first."
|
"Tried to copy objects without validating first."
|
||||||
|
@ -31,18 +31,21 @@ define(
|
|||||||
* This class encapsulates the process of copying a domain object
|
* This class encapsulates the process of copying a domain object
|
||||||
* and all of its children.
|
* and all of its children.
|
||||||
*
|
*
|
||||||
* @param domainObject The object to copy
|
* @param {DomainObject} domainObject The object to copy
|
||||||
* @param parent The new location of the cloned object tree
|
* @param {DomainObject} parent The new location of the cloned object tree
|
||||||
* @param $q
|
* @param {platform/entanglement.CopyService~filter} filter
|
||||||
|
* a function used to filter out objects from
|
||||||
|
* the cloning process
|
||||||
|
* @param $q Angular's $q, for promises
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function CopyTask (domainObject, parent, policyService, $q){
|
function CopyTask (domainObject, parent, filter, $q){
|
||||||
this.domainObject = domainObject;
|
this.domainObject = domainObject;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.firstClone = undefined;
|
this.firstClone = undefined;
|
||||||
this.$q = $q;
|
this.$q = $q;
|
||||||
this.deferred = undefined;
|
this.deferred = undefined;
|
||||||
this.policyService = policyService;
|
this.filter = filter;
|
||||||
this.persisted = 0;
|
this.persisted = 0;
|
||||||
this.clones = [];
|
this.clones = [];
|
||||||
this.idMap = {};
|
this.idMap = {};
|
||||||
@ -101,9 +104,14 @@ define(
|
|||||||
* Will add a list of clones to the specified parent's composition
|
* Will add a list of clones to the specified parent's composition
|
||||||
*/
|
*/
|
||||||
function addClonesToParent(self) {
|
function addClonesToParent(self) {
|
||||||
self.parent.getCapability("composition").add(self.firstClone.getId());
|
return self.parent.getCapability("composition")
|
||||||
|
.add(self.firstClone)
|
||||||
|
.then(function (addedClone) {
|
||||||
return self.parent.getCapability("persistence").persist()
|
return self.parent.getCapability("persistence").persist()
|
||||||
.then(function(){return self.firstClone;});
|
.then(function () {
|
||||||
|
return addedClone;
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -193,7 +201,7 @@ define(
|
|||||||
//Check if the type of the object being copied allows for
|
//Check if the type of the object being copied allows for
|
||||||
// creation of new instances. If it does not, then a link to the
|
// creation of new instances. If it does not, then a link to the
|
||||||
// original will be created instead.
|
// original will be created instead.
|
||||||
if (this.policyService.allow("creation", originalObject.getCapability("type"))){
|
if (this.filter(originalObject)) {
|
||||||
//create a new clone of the original object. Use the
|
//create a new clone of the original object. Use the
|
||||||
// creation capability of the targetParent to create the
|
// creation capability of the targetParent to create the
|
||||||
// new clone. This will ensure that the correct persistence
|
// new clone. This will ensure that the correct persistence
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user