Merge pull request #8607 from ansible/ship-ui-next

Ship the new ui

Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
softwarefactory-project-zuul[bot] 2020-11-24 16:48:21 +00:00 committed by GitHub
commit 7248e2c6d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1320 changed files with 76 additions and 184854 deletions

View File

@ -4,8 +4,6 @@ recursive-include awx *.mo
recursive-include awx/static *
recursive-include awx/templates *.html
recursive-include awx/api/templates *.md *.html
recursive-include awx/ui/templates *.html
recursive-include awx/ui/static *
recursive-include awx/ui_next/build *.html
recursive-include awx/ui_next/build *
recursive-include awx/playbooks *.yml

127
Makefile
View File

@ -56,11 +56,6 @@ WHEEL_COMMAND ?= bdist_wheel
SDIST_TAR_FILE ?= $(SDIST_TAR_NAME).tar.gz
WHEEL_FILE ?= $(WHEEL_NAME)-py2-none-any.whl
# UI flag files
UI_DEPS_FLAG_FILE = awx/ui/.deps_built
UI_RELEASE_DEPS_FLAG_FILE = awx/ui/.release_deps_built
UI_RELEASE_FLAG_FILE = awx/ui/.release_built
I18N_FLAG_FILE = .i18n_built
.PHONY: awx-link clean clean-tmp clean-venv requirements requirements_dev \
@ -70,22 +65,6 @@ I18N_FLAG_FILE = .i18n_built
ui-docker-machine ui-docker ui-release ui-devel \
ui-test ui-deps ui-test-ci VERSION
# remove ui build artifacts
clean-ui: clean-languages
rm -rf awx/ui/static/
rm -rf awx/ui/node_modules/
rm -rf awx/ui/test/unit/reports/
rm -rf awx/ui/test/spec/reports/
rm -rf awx/ui/test/e2e/reports/
rm -rf awx/ui/client/languages/
rm -rf awx/ui_next/node_modules/
rm -rf node_modules
rm -rf awx/ui_next/coverage/
rm -rf awx/ui_next/build/locales/_build/
rm -f $(UI_DEPS_FLAG_FILE)
rm -f $(UI_RELEASE_DEPS_FLAG_FILE)
rm -f $(UI_RELEASE_FLAG_FILE)
clean-tmp:
rm -rf tmp/
@ -480,107 +459,15 @@ else
@echo No PO files
endif
# generate UI .pot
pot: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run pot
# generate django .pot .po
LANG = "en-us"
messages:
@if [ "$(VENV_BASE)" ]; then \
. $(VENV_BASE)/awx/bin/activate; \
fi; \
$(PYTHON) manage.py makemessages -l $(LANG) --keep-pot
# generate l10n .json .mo
languages: $(I18N_FLAG_FILE)
$(I18N_FLAG_FILE): $(UI_RELEASE_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run languages
$(PYTHON) tools/scripts/compilemessages.py
touch $(I18N_FLAG_FILE)
# End l10n TASKS
# --------------------------------------
# UI RELEASE TASKS
# --------------------------------------
ui-release: $(UI_RELEASE_FLAG_FILE)
$(UI_RELEASE_FLAG_FILE): $(I18N_FLAG_FILE) $(UI_RELEASE_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run build-release
touch $(UI_RELEASE_FLAG_FILE)
$(UI_RELEASE_DEPS_FLAG_FILE):
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 $(NPM_BIN) --unsafe-perm --prefix awx/ui ci --no-save awx/ui
touch $(UI_RELEASE_DEPS_FLAG_FILE)
# END UI RELEASE TASKS
# --------------------------------------
# UI TASKS
# --------------------------------------
ui-deps: $(UI_DEPS_FLAG_FILE)
$(UI_DEPS_FLAG_FILE):
@if [ -f ${UI_RELEASE_DEPS_FLAG_FILE} ]; then \
rm -rf awx/ui/node_modules; \
rm -f ${UI_RELEASE_DEPS_FLAG_FILE}; \
fi; \
$(NPM_BIN) --unsafe-perm --prefix awx/ui ci --no-save awx/ui
touch $(UI_DEPS_FLAG_FILE)
ui-docker-machine: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run ui-docker-machine -- $(MAKEFLAGS)
# Native docker. Builds UI and raises BrowserSync & filesystem polling.
ui-docker: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run ui-docker -- $(MAKEFLAGS)
# Builds UI with development UI without raising browser-sync or filesystem polling.
ui-devel: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run build-devel -- $(MAKEFLAGS)
ui-test: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run test
ui-lint: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) run --prefix awx/ui jshint
$(NPM_BIN) run --prefix awx/ui lint
# A standard go-to target for API developers to use building the frontend
ui: clean-ui ui-devel
ui-test-ci: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) --prefix awx/ui run test:ci
$(NPM_BIN) --prefix awx/ui run unit
jshint: $(UI_DEPS_FLAG_FILE)
$(NPM_BIN) run --prefix awx/ui jshint
$(NPM_BIN) run --prefix awx/ui lint
ui-zuul-lint-and-test:
CHROMIUM_BIN=$(CHROMIUM_BIN) ./awx/ui/build/zuul_download_chromium.sh
CHROMIUM_BIN=$(CHROMIUM_BIN) PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 $(NPM_BIN) --unsafe-perm --prefix awx/ui ci --no-save awx/ui
CHROMIUM_BIN=$(CHROMIUM_BIN) $(NPM_BIN) run --prefix awx/ui jshint
CHROMIUM_BIN=$(CHROMIUM_BIN) $(NPM_BIN) run --prefix awx/ui lint
CHROME_BIN=$(CHROMIUM_BIN) $(NPM_BIN) --prefix awx/ui run test:ci
CHROME_BIN=$(CHROMIUM_BIN) $(NPM_BIN) --prefix awx/ui run unit
# END UI TASKS
# --------------------------------------
# UI NEXT TASKS
# --------------------------------------
awx/ui_next/node_modules:
$(NPM_BIN) --prefix awx/ui_next install
ui-release-next:
mkdir -p awx/ui_next/build/static
touch awx/ui_next/build/static/.placeholder
ui-release: ui-devel
ui-devel-next: awx/ui_next/node_modules
ui-devel: awx/ui_next/node_modules
$(NPM_BIN) --prefix awx/ui_next run extract-strings
$(NPM_BIN) --prefix awx/ui_next run compile-strings
$(NPM_BIN) --prefix awx/ui_next run build
@ -591,20 +478,18 @@ ui-devel-next: awx/ui_next/node_modules
cp -r awx/ui_next/build/static/js/* awx/public/static/js
cp -r awx/ui_next/build/static/media/* awx/public/static/media
clean-ui-next:
clean-ui:
rm -rf node_modules
rm -rf awx/ui_next/node_modules
rm -rf awx/ui_next/build
ui-zuul-lint-and-test: ui-next-zuul-lint-and-test
ui-next-zuul-lint-and-test:
$(NPM_BIN) --prefix awx/ui_next install
$(NPM_BIN) run --prefix awx/ui_next lint
$(NPM_BIN) run --prefix awx/ui_next prettier-check
$(NPM_BIN) run --prefix awx/ui_next test
# END UI NEXT TASKS
# --------------------------------------
# Build a pip-installable package into dist/ with a timestamped version number.
dev_build:
$(PYTHON) setup.py dev_build
@ -613,10 +498,10 @@ dev_build:
release_build:
$(PYTHON) setup.py release_build
dist/$(SDIST_TAR_FILE): ui-release ui-release-next VERSION
dist/$(SDIST_TAR_FILE): ui-release VERSION
$(PYTHON) setup.py $(SDIST_COMMAND)
dist/$(WHEEL_FILE): ui-release ui-release-next
dist/$(WHEEL_FILE): ui-release-next
$(PYTHON) setup.py $(WHEEL_COMMAND)
sdist: dist/$(SDIST_TAR_FILE)

View File

@ -1,6 +1,5 @@
import glob
import json
import os
from django.conf import settings
@ -65,28 +64,6 @@ def test_python_and_js_licenses():
ret[name] = { 'name': name, 'version': version}
return ret
def read_ui_requirements(path):
def json_deps(jsondata):
ret = {}
deps = jsondata.get('dependencies',{})
for key in deps.keys():
key = key.lower()
devonly = deps[key].get('dev',False)
if not devonly:
if key not in ret.keys():
depname = key.replace('/','-')
ret[depname] = {
'name': depname,
'version': deps[key]['version']
}
ret.update(json_deps(deps[key]))
return ret
with open('%s/package-lock.json' % path) as f:
jsondata = json.load(f)
return json_deps(jsondata)
def remediate_licenses_and_requirements(licenses, requirements):
errors = []
items = list(licenses.keys())
@ -113,12 +90,9 @@ def test_python_and_js_licenses():
base_dir = settings.BASE_DIR
api_licenses = index_licenses('%s/../docs/licenses' % base_dir)
ui_licenses = index_licenses('%s/../docs/licenses/ui' % base_dir)
api_requirements = read_api_requirements('%s/../requirements' % base_dir)
ui_requirements = read_ui_requirements('%s/ui' % base_dir)
errors = []
errors += remediate_licenses_and_requirements(ui_licenses, ui_requirements)
errors += remediate_licenses_and_requirements(api_licenses, api_requirements)
if errors:
raise Exception('Included licenses not consistent with requirements:\n%s' %

View File

@ -91,7 +91,6 @@ USE_L10N = True
USE_TZ = True
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'ui', 'static'),
os.path.join(BASE_DIR, 'ui_next', 'build', 'static'),
os.path.join(BASE_DIR, 'static'),
)
@ -249,8 +248,6 @@ TEMPLATES = [
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
'awx.ui.context_processors.settings',
'awx.ui.context_processors.version',
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
],

View File

@ -1,19 +0,0 @@
Gruntfile.js
karma.*.js
webpack.*.js
nightwatch.*.js
etc
coverage
grunt-tasks
node_modules
po
static
templates
client/src/**/*.js
client/assets/**/*.js
test/spec/**/*.js
!client/src/app.start.js
!client/src/vendor.js

View File

@ -1,72 +0,0 @@
const path = require('path');
module.exports = {
root: true,
extends: [
'airbnb-base'
],
plugins: [
'import',
'disable'
],
settings: {
'import/resolver': {
webpack: {
config: path.join(__dirname, 'build/webpack.development.js')
}
},
'eslint-plugin-disable': {
paths: {
import: ['**/build/*.js']
}
}
},
env: {
browser: true,
node: true
},
globals: {
angular: true,
d3: true,
$: true,
_: true,
codemirror: true,
jsyaml: true,
crypto: true
},
rules: {
'arrow-parens': 'off',
'comma-dangle': 'off',
indent: ['error', 4, {
SwitchCase: 1
}],
'max-len': ['error', {
code: 100,
ignoreStrings: true,
ignoreTemplateLiterals: true,
}],
'no-continue': 'off',
'no-debugger': 'off',
'no-mixed-operators': 'off',
'no-param-reassign': 'off',
'no-plusplus': 'off',
'no-underscore-dangle': 'off',
'no-use-before-define': 'off',
'no-multiple-empty-lines': ['error', { max: 1 }],
'object-curly-newline': 'off',
'space-before-function-paren': ['error', 'always'],
'no-trailing-spaces': ['error'],
'prefer-destructuring': ['error', {
'VariableDeclarator': {
'array': false,
'object': true
},
'AssignmentExpression': {
'array': false,
'object': true
}
}, {
'enforceForRenamedProperties': false
}]
}
};

View File

@ -1,49 +0,0 @@
{
"browser": true,
"node": true,
"jquery": true,
"esnext": true,
"globalstrict": true,
"curly": true,
"immed": true,
"latedef": "nofunc",
"noarg": true,
"nonew": true,
"maxerr": 10000,
"notypeof": true,
"globals": {
"$ENV": true,
"require": true,
"global": true,
"beforeEach": false,
"inject": false,
"module": false,
"angular":false,
"alert":false,
"$AnsibleConfig":true,
"$basePath":true,
"jsyaml":false,
"_":false,
"d3":false,
"Donut3D":false,
"nv":false,
"it": false,
"xit": false,
"expect": false,
"context": false,
"describe": false,
"moment": false,
"spyOn": false,
"jasmine": false,
"dagre": false,
"crypto": false
},
"strict": false,
"quotmark": false,
"trailing": true,
"undef": true,
"unused": true,
"eqeqeq": true,
"indent": 4,
"newcap": false
}

View File

@ -1 +0,0 @@
progress=false

View File

@ -1,20 +0,0 @@
module.exports = function(grunt) {
// Load grunt tasks & configurations automatically from dir grunt/
require('load-grunt-tasks')(grunt);
// display task timings
require('time-grunt')(grunt);
var options = {
config: {
src: './grunt-tasks/*.js'
},
pkg: grunt.file.readJSON('package.json')
};
var configs = require('load-grunt-configs')(grunt, options);
// Project configuration.
grunt.initConfig(configs);
grunt.loadNpmTasks('grunt-newer');
grunt.loadNpmTasks('grunt-angular-gettext');
};

View File

@ -1,103 +0,0 @@
# AWX UI
## Requirements
- node.js 10.x LTS
- npm >=6.x
- bzip2, gcc-c++, git, make
## Development
The API development server will need to be running. See [CONTRIBUTING.md](../../CONTRIBUTING.md).
```shell
# Build ui for the devel environment - reachable at https://localhost:8043
make ui-devel
# Alternatively, start the ui development server. While running, the ui will be reachable
# at https://localhost:3000 and updated automatically when code changes.
make ui-docker
# When using docker machine, use this command to start the ui development server instead.
DOCKER_MACHINE_NAME=default make ui-docker-machine
```
## Development with an external server
If you normally run awx on an external host/server (in this example, `awx.local`),
you'll need to reconfigure the webpack proxy slightly for `make ui-docker` to
work:
```javascript
/awx/settings/development.py
+
+CSRF_TRUSTED_ORIGINS = ['awx.local:8043']
awx/ui/build/webpack.watch.js
- host: '127.0.0.1',
+ host: '0.0.0.0',
+ disableHostCheck: true,
/awx/ui/package.json
@@ -7,7 +7,7 @@
"config": {
...
+ "django_host": "awx.local"
},
```
## Testing
```shell
# run linters
make jshint
# run unit tests
make ui-test-ci
# run e2e tests - see awx/ui/test/e2e for more information
npm --prefix awx/ui run e2e
```
**Note**: Unit tests are run on your host machine and not in the development containers.
## Adding dependencies
```shell
# add an exact development or build dependency
npm install --prefix awx/ui --save-dev --save-exact dev-package@1.2.3
# add an exact production dependency
npm install --prefix awx/ui --save --save-exact prod-package@1.23
# add the updated package.json and package-lock.json files to scm
git add awx/ui/package.json awx/ui/package-lock.json
```
## Removing dependencies
```shell
# remove a development or build dependency
npm uninstall --prefix awx/ui --save-dev dev-package
# remove a production dependency
npm uninstall --prefix awx/ui --save prod-package
```
## Building for Production
```shell
# built files are placed in awx/ui/static
make ui-release
```
## Internationalization
Application strings marked for translation are extracted and used to generate `.pot` files using the following command:
```shell
# extract strings and generate .pot files
make pot
```
To include the translations in the development environment, we compile them prior to building the ui:
```shell
# remove any prior ui builds
make clean-ui
# compile the .pot files to javascript files usable by the application
make languages
# build the ui with translations included
make ui-devel
```
**Note**: Python 3.6 is required to compile the `.pot` files.

View File

@ -2,3 +2,4 @@
# All Rights Reserved.
default_app_config = 'awx.ui.apps.UIConfig'

View File

@ -7,3 +7,4 @@ class UIConfig(AppConfig):
name = 'awx.ui'
verbose_name = _('UI')

View File

@ -1,235 +0,0 @@
const path = require('path');
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CLIENT_PATH = path.resolve(__dirname, '../client');
const LIB_PATH = path.join(CLIENT_PATH, 'lib');
const UI_PATH = path.resolve(__dirname, '..');
const ASSETS_PATH = path.join(CLIENT_PATH, 'assets');
const COMPONENTS_PATH = path.join(LIB_PATH, 'components');
const COVERAGE_PATH = path.join(UI_PATH, 'coverage');
const FEATURES_PATH = path.join(CLIENT_PATH, 'features');
const LANGUAGES_PATH = path.join(CLIENT_PATH, 'languages');
const MODELS_PATH = path.join(LIB_PATH, 'models');
const NODE_MODULES_PATH = path.join(UI_PATH, 'node_modules');
const SERVICES_PATH = path.join(LIB_PATH, 'services');
const SRC_PATH = path.join(CLIENT_PATH, 'src');
const STATIC_PATH = path.join(UI_PATH, 'static');
const TEST_PATH = path.join(UI_PATH, 'test');
const THEME_PATH = path.join(LIB_PATH, 'theme');
const APP_ENTRY = path.join(SRC_PATH, 'app.js');
const VENDOR_ENTRY = path.join(SRC_PATH, 'vendor.js');
const INDEX_ENTRY = path.join(CLIENT_PATH, 'index.template.ejs');
const INDEX_OUTPUT = path.join(UI_PATH, 'templates/ui/index.html');
const INSTALL_RUNNING_ENTRY = path.join(CLIENT_PATH, 'installing.template.ejs');
const INSTALL_RUNNING_OUTPUT = path.join(UI_PATH, 'templates/ui/installing.html');
const THEME_ENTRY = path.join(LIB_PATH, 'theme', 'index.less');
const OUTPUT = 'js/[name].[chunkhash].js';
const CHUNKS = ['vendor', 'app'];
const VENDOR = VENDOR_ENTRY;
const APP = [THEME_ENTRY, APP_ENTRY];
const base = {
entry: {
vendor: VENDOR,
app: APP
},
output: {
path: STATIC_PATH,
publicPath: '',
filename: OUTPUT
},
stats: {
children: false,
modules: false,
chunks: false,
excludeAssets: name => {
const chunkNames = `(${CHUNKS.join('|')})`;
const outputPattern = new RegExp(`${chunkNames}.[a-f0-9]+.(js|css)(|.map)$`, 'i');
return !outputPattern.test(name);
}
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'istanbul-instrumenter-loader',
options: { esModules: true }
},
enforce: 'pre',
include: [
/src\/network-ui\//
]
},
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
options: {
presets: [
['env', {
targets: {
browsers: ['last 2 versions']
}
}]
]
}
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: {
loader: 'css-loader',
options: {
url: false
}
}
})
},
{
test: /lib\/theme\/index.less$/,
use: ExtractTextPlugin.extract({
use: ['css-loader', 'less-loader']
})
},
{
test: /\.html$/,
use: ['ngtemplate-loader', 'html-loader'],
include: [
/lib\/components\//,
/features\//,
/src\//
]
},
{
test: /\.svg$/,
use: ['ngtemplate-loader', 'html-loader'],
include: [
/lib\/components\//,
/features\//,
/src\//
]
},
{
test: /\.json$/,
loader: 'json-loader',
exclude: /node_modules/
}
]
},
plugins: [
new webpack.ProvidePlugin({
jsyaml: 'js-yaml',
CodeMirror: 'codemirror',
jsonlint: 'codemirror.jsonlint'
}),
new ExtractTextPlugin('css/[name].[chunkhash].css'),
new CleanWebpackPlugin([STATIC_PATH, COVERAGE_PATH], {
root: UI_PATH,
verbose: false
}),
new CopyWebpackPlugin([
{
from: path.join(ASSETS_PATH, 'fontcustom/**/*'),
to: path.join(STATIC_PATH, 'fonts/'),
flatten: true
},
{
from: path.join(NODE_MODULES_PATH, 'components-font-awesome/fonts/*'),
to: path.join(STATIC_PATH, 'fonts/'),
flatten: true
},
{
from: path.join(ASSETS_PATH, 'custom-theme/images.new/*'),
to: path.join(STATIC_PATH, 'images/'),
flatten: true
},
{
from: path.join(LANGUAGES_PATH, '*'),
to: path.join(STATIC_PATH, 'languages'),
flatten: true
},
{
from: ASSETS_PATH,
to: path.join(STATIC_PATH, 'assets')
},
{
from: path.join(NODE_MODULES_PATH, 'angular-scheduler/lib/*.html'),
to: path.join(STATIC_PATH, 'lib'),
context: NODE_MODULES_PATH
},
{
from: path.join(NODE_MODULES_PATH, 'angular-tz-extensions/tz/data/*'),
to: path.join(STATIC_PATH, 'lib/'),
context: NODE_MODULES_PATH
},
{
from: path.join(SRC_PATH, '**/*.partial.html'),
to: path.join(STATIC_PATH, 'partials/'),
context: SRC_PATH
},
{
from: path.join(SRC_PATH, 'partials', '*.html'),
to: STATIC_PATH,
context: SRC_PATH
},
{
from: path.join(SRC_PATH, '*config.js'),
to: STATIC_PATH,
flatten: true
}
]),
new HtmlWebpackPlugin({
alwaysWriteToDisk: true,
template: INDEX_ENTRY,
filename: INDEX_OUTPUT,
inject: false,
chunks: CHUNKS,
chunksSortMode: chunk => (chunk.names[0] === 'vendor' ? -1 : 1)
}),
new HtmlWebpackPlugin({
alwaysWriteToDisk: true,
template: INSTALL_RUNNING_ENTRY,
filename: INSTALL_RUNNING_OUTPUT,
inject: false,
chunks: CHUNKS,
chunksSortMode: chunk => (chunk.names[0] === 'vendor' ? -1 : 1)
}),
],
resolve: {
alias: {
'~assets': ASSETS_PATH,
'~components': COMPONENTS_PATH,
'~features': FEATURES_PATH,
'~models': MODELS_PATH,
'~node_modules': NODE_MODULES_PATH,
'~services': SERVICES_PATH,
'~src': SRC_PATH,
'~test': TEST_PATH,
'~theme': THEME_PATH,
'~ui': UI_PATH,
d3$: '~node_modules/d3/d3.min.js',
'codemirror.jsonlint$': '~node_modules/codemirror/addon/lint/json-lint.js',
jquery: '~node_modules/jquery/dist/jquery.js',
'jquery-resize$': '~node_modules/javascript-detect-element-resize/jquery.resize.js',
select2$: '~node_modules/select2/dist/js/select2.full.min.js',
'js-yaml$': '~node_modules/js-yaml/dist/js-yaml.min.js',
'lr-infinite-scroll$': '~node_modules/lr-infinite-scroll/lrInfiniteScroll.js',
'angular-tz-extensions$': '~node_modules/angular-tz-extensions/lib/angular-tz-extensions.js',
'ng-toast-provider$': '~node_modules/ng-toast/src/scripts/provider.js',
'ng-toast-directives$': '~node_modules/ng-toast/src/scripts/directives.js',
'ng-toast$': '~node_modules/ng-toast/src/scripts/module.js'
}
}
};
module.exports = base;

View File

@ -1,9 +0,0 @@
const merge = require('webpack-merge');
const base = require('./webpack.base');
const development = {
devtool: 'source-map'
};
module.exports = merge(base, development);

View File

@ -1,28 +0,0 @@
const path = require('path');
const merge = require('webpack-merge');
const webpack = require('webpack');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const base = require('./webpack.base');
const CLIENT_PATH = path.resolve(__dirname, '../client');
const UI_PATH = path.resolve(__dirname, '..');
const CHUNKS = ['vendor', 'app'];
const production = {
plugins: [
new UglifyJSPlugin({
compress: true,
mangle: false
}),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
}
})
]
};
module.exports = merge(base, production);

View File

@ -1,20 +0,0 @@
const _ = require('lodash');
const webpack = require('webpack');
const STATIC_URL = '/static/';
const development = require('./webpack.base');
const test = {
devtool: 'cheap-source-map',
plugins: [
new webpack.DefinePlugin({
$basePath: STATIC_URL
})
]
};
test.plugins = development.plugins.concat(test.plugins);
module.exports = _.merge(development, test);

View File

@ -1,84 +0,0 @@
const path = require('path');
const _ = require('lodash');
const webpack = require('webpack');
const merge = require('webpack-merge');
const nodeObjectHash = require('node-object-hash');
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
const TARGET_PORT = _.get(process.env, 'npm_package_config_django_port', 8043);
const TARGET_HOST = _.get(process.env, 'npm_package_config_django_host', 'https://localhost');
const TARGET = `https://${TARGET_HOST}:${TARGET_PORT}`;
const OUTPUT = 'js/[name].js';
const development = require('./webpack.development');
const watch = {
cache: true,
devtool: 'cheap-source-map',
output: {
filename: OUTPUT
},
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
exclude: /node_modules/,
loader: 'eslint-loader'
}
]
},
plugins: [
new HtmlWebpackHarddiskPlugin(),
new HardSourceWebpackPlugin({
cacheDirectory: 'node_modules/.cache/hard-source/[confighash]',
recordsPath: 'node_modules/.cache/hard-source/[confighash]/records.json',
configHash: config => nodeObjectHash({ sort: false }).hash(config),
environmentHash: {
root: process.cwd(),
directories: ['node_modules'],
files: ['package.json']
}
}),
new webpack.HotModuleReplacementPlugin()
],
devServer: {
hot: true,
inline: true,
contentBase: path.resolve(__dirname, '..', 'static'),
stats: 'minimal',
publicPath: '/static/',
host: '127.0.0.1',
https: true,
port: 3000,
clientLogLevel: 'none',
proxy: [{
context: (pathname, req) => !(pathname === '/api/login/' && req.method === 'POST'),
target: TARGET,
secure: false,
ws: false,
bypass: req => req.originalUrl.includes('hot-update.json')
},
{
context: '/api/login/',
target: TARGET,
secure: false,
ws: false,
headers: {
Host: `localhost:${TARGET_PORT}`,
Origin: TARGET,
Referer: `${TARGET}/`
}
},
{
context: '/websocket',
target: TARGET,
secure: false,
ws: true
}]
}
};
module.exports = merge(development, watch);

View File

@ -1,5 +0,0 @@
REVISION=588429
CHROMIUM_URL="https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/${REVISION}/chrome-linux.zip"
wget ${CHROMIUM_URL} -w 30 -t 6 -O /tmp/chrome-linux.zip
unzip -o -d /tmp /tmp/chrome-linux.zip

View File

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,358 +0,0 @@
.ui-helper-hidden{display:none;}
.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}
.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}
.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}
.ui-helper-clearfix:after{clear:both;}
.ui-helper-clearfix{min-height:0;}
.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0);}
.ui-front{z-index:100;}
.ui-state-disabled{cursor:default !important;}
.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}
.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}
.ui-resizable{position:relative;}
.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;}
.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}
.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}
.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}
.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}
.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}
.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}
.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}
.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}
.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}
.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}
.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0;}
.ui-accordion-header{font-weight:bold;}
.ui-accordion .ui-accordion-icons{padding-left:2.2em;}
.ui-accordion .ui-accordion-noicons{padding-left:.7em;}
.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em;}
.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}
.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;}
.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;}
.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;}
.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none;}
.ui-button-icon-only{width:2.2em;}
button.ui-button-icon-only{width:2.4em;}
.ui-button-icons-only{width:3.4em;}
button.ui-button-icons-only{width:3.7em;}
.ui-button .ui-button-text{display:block;line-height:normal;}
.ui-button-text-only .ui-button-text{padding:.4em 1em;}
.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}
.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}
.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}
.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}
input.ui-button{padding:.4em 1em;}
.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}
.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}
.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}
.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}
.ui-buttonset{margin-right:7px;}
.ui-buttonset .ui-button{margin-left:0;margin-right:-0.3em;}
input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0;}
.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}
.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}
.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}
.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}
.ui-datepicker .ui-datepicker-prev{left:2px;}
.ui-datepicker .ui-datepicker-next{right:2px;}
.ui-datepicker .ui-datepicker-prev-hover{left:1px;}
.ui-datepicker .ui-datepicker-next-hover{right:1px;}
.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}
.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}
.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}
.ui-datepicker select.ui-datepicker-month-year{width:100%;}
.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}
.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}
.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}
.ui-datepicker td{border:0;padding:1px;}
.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}
.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}
.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}
.ui-datepicker.ui-datepicker-multi{width:auto;}
.ui-datepicker-multi .ui-datepicker-group{float:left;}
.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}
.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}
.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}
.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}
.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}
.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}
.ui-datepicker-rtl{direction:rtl;}
.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}
.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}
.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}
.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}
.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}
.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right;}
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}
.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0;}
.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}
.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis;}
.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:21px;margin:-10px 0 0 0;padding:1px;height:20px;}
.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;}
.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em;}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}
.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}
.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px;}
.ui-draggable .ui-dialog-titlebar{cursor:move;}
.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}
.ui-menu .ui-menu{margin-top:-3px;position:absolute;}
.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0;}
.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal;}
.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}
.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5;}
.ui-menu .ui-state-disabled a{cursor:default;}
.ui-menu-icons{position:relative;}
.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}
.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}
.ui-menu .ui-menu-icon{position:static;float:right;}
.ui-progressbar{height:2em;text-align:left;overflow:hidden;}
.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
.ui-progressbar .ui-progressbar-overlay{background:url("/static/images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:0.25;}
.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none;}
.ui-slider{position:relative;text-align:left;}
.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}
.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}
.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit;}
.ui-slider-horizontal{height:.8em;}
.ui-slider-horizontal .ui-slider-handle{top:-0.3em;margin-left:-0.6em;}
.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}
.ui-slider-horizontal .ui-slider-range-min{left:0;}
.ui-slider-horizontal .ui-slider-range-max{right:0;}
.ui-slider-vertical{width:.8em;height:100px;}
.ui-slider-vertical .ui-slider-handle{left:-0.3em;margin-left:0;margin-bottom:-0.6em;}
.ui-slider-vertical .ui-slider-range{left:0;width:100%;}
.ui-slider-vertical .ui-slider-range-min{bottom:0;}
.ui-slider-vertical .ui-slider-range-max{top:0;}
.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}
.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}
.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}
.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}
.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}
.ui-spinner-up{top:0;}
.ui-spinner-down{bottom:0;}
.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}
.ui-tabs{position:relative;padding:.2em;}
.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}
.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap;}
.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}
.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}
.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}
.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}
.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}
.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}
body .ui-tooltip{border-width:2px;}
.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;}
.ui-widget .ui-widget{font-size:1em;}
.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{}
.ui-widget-content{border:1px solid #a6c9e2;background:#fcfdfd url(/static/images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x;color:#36454F;font-weight:normal;}
.ui-widget-content a{color:#0088cc;}
.ui-widget-header{border:1px solid #a6c9e2;background:#ffffff url(/static/images/ui-bg_flat_50_ffffff_40x100.png) 50% 50% repeat-x;color:#36454F;font-weight:bold;}
.ui-widget-header a{color:#36454F;}
.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #a6c9e2;background:#ffffff url(/static/images/ui-bg_flat_100_ffffff_40x100.png) 50% 50% repeat-x;font-weight:bold;color:#0088cc;}
.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#0088cc;text-decoration:none;}
.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #e3e3e3;background:#e5e3e3 url(/static/images/ui-bg_flat_75_e5e3e3_40x100.png) 50% 50% repeat-x;font-weight:bold;color:#005580;}
.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#005580;text-decoration:none;}
.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #e3e3e3;background:#f5f5f5 url(/static/images/ui-bg_inset-hard_100_f5f5f5_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#36454F;}
.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#36454F;text-decoration:none;}
.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fad42e;background:#fbec88 url(/static/images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x;color:#363636;}
.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}
.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(/static/images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}
.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}
.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}
.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:normal;}
.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:bold;}
.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none;}
.ui-state-disabled .ui-icon{filter:alpha(opacity=35);}
.ui-icon{width:16px;height:16px;}
.ui-icon,.ui-widget-content .ui-icon{background-image:url(/static/images/ui-icons_469bdd_256x240.png);}
.ui-widget-header .ui-icon{background-image:url(/static/images/ui-icons_36454F_256x240.png);}
.ui-state-default .ui-icon{background-image:url(/static/images/ui-icons_0088cc_256x240.png);}
.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(/static/images/ui-icons_217bc0_256x240.png);}
.ui-state-active .ui-icon{background-image:url(/static/images/ui-icons_36454F_256x240.png);}
.ui-state-highlight .ui-icon{background-image:url(/static/images/ui-icons_2e83ff_256x240.png);}
.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/static/images/ui-icons_cd0a0a_256x240.png);}
.ui-icon-blank{background-position:16px 16px;}
.ui-icon-carat-1-n{background-position:0 0;}
.ui-icon-carat-1-ne{background-position:-16px 0;}
.ui-icon-carat-1-e{background-position:-32px 0;}
.ui-icon-carat-1-se{background-position:-48px 0;}
.ui-icon-carat-1-s{background-position:-64px 0;}
.ui-icon-carat-1-sw{background-position:-80px 0;}
.ui-icon-carat-1-w{background-position:-96px 0;}
.ui-icon-carat-1-nw{background-position:-112px 0;}
.ui-icon-carat-2-n-s{background-position:-128px 0;}
.ui-icon-carat-2-e-w{background-position:-144px 0;}
.ui-icon-triangle-1-n{background-position:0 -16px;}
.ui-icon-triangle-1-ne{background-position:-16px -16px;}
.ui-icon-triangle-1-e{background-position:-32px -16px;}
.ui-icon-triangle-1-se{background-position:-48px -16px;}
.ui-icon-triangle-1-s{background-position:-64px -16px;}
.ui-icon-triangle-1-sw{background-position:-80px -16px;}
.ui-icon-triangle-1-w{background-position:-96px -16px;}
.ui-icon-triangle-1-nw{background-position:-112px -16px;}
.ui-icon-triangle-2-n-s{background-position:-128px -16px;}
.ui-icon-triangle-2-e-w{background-position:-144px -16px;}
.ui-icon-arrow-1-n{background-position:0 -32px;}
.ui-icon-arrow-1-ne{background-position:-16px -32px;}
.ui-icon-arrow-1-e{background-position:-32px -32px;}
.ui-icon-arrow-1-se{background-position:-48px -32px;}
.ui-icon-arrow-1-s{background-position:-64px -32px;}
.ui-icon-arrow-1-sw{background-position:-80px -32px;}
.ui-icon-arrow-1-w{background-position:-96px -32px;}
.ui-icon-arrow-1-nw{background-position:-112px -32px;}
.ui-icon-arrow-2-n-s{background-position:-128px -32px;}
.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}
.ui-icon-arrow-2-e-w{background-position:-160px -32px;}
.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}
.ui-icon-arrowstop-1-n{background-position:-192px -32px;}
.ui-icon-arrowstop-1-e{background-position:-208px -32px;}
.ui-icon-arrowstop-1-s{background-position:-224px -32px;}
.ui-icon-arrowstop-1-w{background-position:-240px -32px;}
.ui-icon-arrowthick-1-n{background-position:0 -48px;}
.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}
.ui-icon-arrowthick-1-e{background-position:-32px -48px;}
.ui-icon-arrowthick-1-se{background-position:-48px -48px;}
.ui-icon-arrowthick-1-s{background-position:-64px -48px;}
.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}
.ui-icon-arrowthick-1-w{background-position:-96px -48px;}
.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}
.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}
.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}
.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}
.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}
.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}
.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}
.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}
.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}
.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}
.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}
.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}
.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}
.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}
.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}
.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}
.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}
.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}
.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}
.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}
.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}
.ui-icon-arrow-4{background-position:0 -80px;}
.ui-icon-arrow-4-diag{background-position:-16px -80px;}
.ui-icon-extlink{background-position:-32px -80px;}
.ui-icon-newwin{background-position:-48px -80px;}
.ui-icon-refresh{background-position:-64px -80px;}
.ui-icon-shuffle{background-position:-80px -80px;}
.ui-icon-transfer-e-w{background-position:-96px -80px;}
.ui-icon-transferthick-e-w{background-position:-112px -80px;}
.ui-icon-folder-collapsed{background-position:0 -96px;}
.ui-icon-folder-open{background-position:-16px -96px;}
.ui-icon-document{background-position:-32px -96px;}
.ui-icon-document-b{background-position:-48px -96px;}
.ui-icon-note{background-position:-64px -96px;}
.ui-icon-mail-closed{background-position:-80px -96px;}
.ui-icon-mail-open{background-position:-96px -96px;}
.ui-icon-suitcase{background-position:-112px -96px;}
.ui-icon-comment{background-position:-128px -96px;}
.ui-icon-person{background-position:-144px -96px;}
.ui-icon-print{background-position:-160px -96px;}
.ui-icon-trash{background-position:-176px -96px;}
.ui-icon-locked{background-position:-192px -96px;}
.ui-icon-unlocked{background-position:-208px -96px;}
.ui-icon-bookmark{background-position:-224px -96px;}
.ui-icon-tag{background-position:-240px -96px;}
.ui-icon-home{background-position:0 -112px;}
.ui-icon-flag{background-position:-16px -112px;}
.ui-icon-calendar{background-position:-32px -112px;}
.ui-icon-cart{background-position:-48px -112px;}
.ui-icon-pencil{background-position:-64px -112px;}
.ui-icon-clock{background-position:-80px -112px;}
.ui-icon-disk{background-position:-96px -112px;}
.ui-icon-calculator{background-position:-112px -112px;}
.ui-icon-zoomin{background-position:-128px -112px;}
.ui-icon-zoomout{background-position:-144px -112px;}
.ui-icon-search{background-position:-160px -112px;}
.ui-icon-wrench{background-position:-176px -112px;}
.ui-icon-gear{background-position:-192px -112px;}
.ui-icon-heart{background-position:-208px -112px;}
.ui-icon-star{background-position:-224px -112px;}
.ui-icon-link{background-position:-240px -112px;}
.ui-icon-cancel{background-position:0 -128px;}
.ui-icon-plus{background-position:-16px -128px;}
.ui-icon-plusthick{background-position:-32px -128px;}
.ui-icon-minus{background-position:-48px -128px;}
.ui-icon-minusthick{background-position:-64px -128px;}
.ui-icon-close{background-position:-80px -128px;}
.ui-icon-closethick{background-position:-96px -128px;}
.ui-icon-key{background-position:-112px -128px;}
.ui-icon-lightbulb{background-position:-128px -128px;}
.ui-icon-scissors{background-position:-144px -128px;}
.ui-icon-clipboard{background-position:-160px -128px;}
.ui-icon-copy{background-position:-176px -128px;}
.ui-icon-contact{background-position:-192px -128px;}
.ui-icon-image{background-position:-208px -128px;}
.ui-icon-video{background-position:-224px -128px;}
.ui-icon-script{background-position:-240px -128px;}
.ui-icon-alert{background-position:0 -144px;}
.ui-icon-info{background-position:-16px -144px;}
.ui-icon-notice{background-position:-32px -144px;}
.ui-icon-help{background-position:-48px -144px;}
.ui-icon-check{background-position:-64px -144px;}
.ui-icon-bullet{background-position:-80px -144px;}
.ui-icon-radio-on{background-position:-96px -144px;}
.ui-icon-radio-off{background-position:-112px -144px;}
.ui-icon-pin-w{background-position:-128px -144px;}
.ui-icon-pin-s{background-position:-144px -144px;}
.ui-icon-play{background-position:0 -160px;}
.ui-icon-pause{background-position:-16px -160px;}
.ui-icon-seek-next{background-position:-32px -160px;}
.ui-icon-seek-prev{background-position:-48px -160px;}
.ui-icon-seek-end{background-position:-64px -160px;}
.ui-icon-seek-start{background-position:-80px -160px;}
.ui-icon-seek-first{background-position:-80px -160px;}
.ui-icon-stop{background-position:-96px -160px;}
.ui-icon-eject{background-position:-112px -160px;}
.ui-icon-volume-off{background-position:-128px -160px;}
.ui-icon-volume-on{background-position:-144px -160px;}
.ui-icon-power{background-position:0 -176px;}
.ui-icon-signal-diag{background-position:-16px -176px;}
.ui-icon-signal{background-position:-32px -176px;}
.ui-icon-battery-0{background-position:-48px -176px;}
.ui-icon-battery-1{background-position:-64px -176px;}
.ui-icon-battery-2{background-position:-80px -176px;}
.ui-icon-battery-3{background-position:-96px -176px;}
.ui-icon-circle-plus{background-position:0 -192px;}
.ui-icon-circle-minus{background-position:-16px -192px;}
.ui-icon-circle-close{background-position:-32px -192px;}
.ui-icon-circle-triangle-e{background-position:-48px -192px;}
.ui-icon-circle-triangle-s{background-position:-64px -192px;}
.ui-icon-circle-triangle-w{background-position:-80px -192px;}
.ui-icon-circle-triangle-n{background-position:-96px -192px;}
.ui-icon-circle-arrow-e{background-position:-112px -192px;}
.ui-icon-circle-arrow-s{background-position:-128px -192px;}
.ui-icon-circle-arrow-w{background-position:-144px -192px;}
.ui-icon-circle-arrow-n{background-position:-160px -192px;}
.ui-icon-circle-zoomin{background-position:-176px -192px;}
.ui-icon-circle-zoomout{background-position:-192px -192px;}
.ui-icon-circle-check{background-position:-208px -192px;}
.ui-icon-circlesmall-plus{background-position:0 -208px;}
.ui-icon-circlesmall-minus{background-position:-16px -208px;}
.ui-icon-circlesmall-close{background-position:-32px -208px;}
.ui-icon-squaresmall-plus{background-position:-48px -208px;}
.ui-icon-squaresmall-minus{background-position:-64px -208px;}
.ui-icon-squaresmall-close{background-position:-80px -208px;}
.ui-icon-grip-dotted-vertical{background-position:0 -224px;}
.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}
.ui-icon-grip-solid-vertical{background-position:-32px -224px;}
.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}
.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}
.ui-icon-grip-diagonal-se{background-position:-80px -224px;}
.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:5px;}
.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:5px;}
.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:5px;}
.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:5px;}
.ui-widget-overlay{background:#aaaaaa url(/static/images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30);}
.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaaaaa url(/static/images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30);border-radius:8px;}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,70 +0,0 @@
{
"checksum": {
"previous": "3dfbafd778b214fc5df2a64fe14fbfb30ba40e33282eedf0d98b5a613786db88",
"current": "3dfbafd778b214fc5df2a64fe14fbfb30ba40e33282eedf0d98b5a613786db88"
},
"fonts": [
"./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.ttf",
"./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.svg",
"./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.woff",
"./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.eot"
],
"glyphs": {
"activity-stream": {
"codepoint": 61697,
"source": "new_icons/activity-stream.svg"
},
"google": {
"codepoint": 61698,
"source": "new_icons/google.svg"
},
"launch": {
"codepoint": 61699,
"source": "new_icons/launch.svg"
},
"microsoft": {
"codepoint": 61700,
"source": "new_icons/microsoft.svg"
},
"saml-02": {
"codepoint": 61701,
"source": "new_icons/saml-02.svg"
},
"user": {
"codepoint": 61702,
"source": "new_icons/user.svg"
}
},
"options": {
"autowidth": false,
"config": false,
"css_selector": ".icon-{{glyph}}",
"debug": false,
"font_ascent": 448,
"font_descent": 64,
"font_design_size": 16,
"font_em": 512,
"font_name": "fontcustom",
"force": false,
"input": {
"templates": "new_icons/",
"vectors": "new_icons/"
},
"no_hash": false,
"output": {
"css": ".",
"fonts": ".",
"preview": "."
},
"preprocessor_path": null,
"quiet": false,
"templates": [
"css",
"preview"
]
},
"templates": [
"./fontcustom.css",
"./fontcustom-preview.html"
]
}

View File

@ -1,293 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>fontcustom glyphs preview</title>
<style>
/* Page Styles */
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
background: #fff;
color: #444;
font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
}
a,
a:visited {
color: #888;
text-decoration: underline;
}
a:hover,
a:focus { color: #000; }
header {
border-bottom: 2px solid #ddd;
margin-bottom: 20px;
overflow: hidden;
padding: 20px 0;
}
header h1 {
color: #888;
float: left;
font-size: 36px;
font-weight: 300;
}
header a {
float: right;
font-size: 14px;
}
.container {
margin: 0 auto;
max-width: 1200px;
min-width: 960px;
padding: 0 40px;
width: 90%;
}
.glyph {
border-bottom: 1px dotted #ccc;
padding: 10px 0 20px;
margin-bottom: 20px;
}
.preview-glyphs { vertical-align: bottom; }
.preview-scale {
color: #888;
font-size: 12px;
margin-top: 5px;
}
.step {
display: inline-block;
line-height: 1;
position: relative;
width: 10%;
}
.step .letters,
.step i {
-webkit-transition: opacity .3s;
-moz-transition: opacity .3s;
-ms-transition: opacity .3s;
-o-transition: opacity .3s;
transition: opacity .3s;
}
.step:hover .letters { opacity: 1; }
.step:hover i { opacity: .3; }
.letters {
opacity: .3;
position: absolute;
}
.characters-off .letters { display: none; }
.characters-off .step:hover i { opacity: 1; }
.size-12 { font-size: 12px; }
.size-14 { font-size: 14px; }
.size-16 { font-size: 16px; }
.size-18 { font-size: 18px; }
.size-21 { font-size: 21px; }
.size-24 { font-size: 24px; }
.size-36 { font-size: 36px; }
.size-48 { font-size: 48px; }
.size-60 { font-size: 60px; }
.size-72 { font-size: 72px; }
.usage { margin-top: 10px; }
.usage input {
font-family: monospace;
margin-right: 3px;
padding: 2px 5px;
text-align: center;
}
.usage .point { width: 150px; }
.usage .class { width: 250px; }
footer {
color: #888;
font-size: 12px;
padding: 20px 0;
}
/* Icon Font: fontcustom */
@font-face {
font-family: "fontcustom";
src: url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.eot");
src: url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.eot?#iefix") format("embedded-opentype"),
url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.woff") format("woff"),
url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.ttf") format("truetype"),
url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.svg#fontcustom") format("svg");
font-weight: normal;
font-style: normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: "fontcustom";
src: url("./fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.svg#fontcustom") format("svg");
}
}
[data-icon]:before { content: attr(data-icon); }
[data-icon]:before,
.icon-activity-stream:before,
.icon-google:before,
.icon-launch:before,
.icon-microsoft:before,
.icon-saml-02:before,
.icon-user:before {
display: inline-block;
font-family: "fontcustom";
font-style: normal;
font-weight: normal;
font-variant: normal;
line-height: 1;
text-decoration: inherit;
text-rendering: optimizeLegibility;
text-transform: none;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}
.icon-activity-stream:before { content: "\f101"; }
.icon-google:before { content: "\f102"; }
.icon-launch:before { content: "\f103"; }
.icon-microsoft:before { content: "\f104"; }
.icon-saml-02:before { content: "\f105"; }
.icon-user:before { content: "\f106"; }
</style>
<!--[if lte IE 8]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script>
function toggleCharacters() {
var body = document.getElementsByTagName('body')[0];
body.className = body.className === 'characters-off' ? '' : 'characters-off';
}
</script>
</head>
<body class="characters-off">
<div id="page" class="container">
<header>
<h1>fontcustom contains 6 glyphs:</h1>
<a onclick="toggleCharacters(); return false;" href="#">Toggle Preview Characters</a>
</header>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-activity-stream" class="icon-activity-stream"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-activity-stream" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf101;" />
</div>
</div>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-google" class="icon-google"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-google" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf102;" />
</div>
</div>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-launch" class="icon-launch"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-launch" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf103;" />
</div>
</div>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-microsoft" class="icon-microsoft"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-microsoft" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf104;" />
</div>
</div>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-saml-02" class="icon-saml-02"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-saml-02" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf105;" />
</div>
</div>
<div class="glyph">
<div class="preview-glyphs">
<span class="step size-12"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-14"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-16"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-18"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-21"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-24"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-36"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-48"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-60"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span><span class="step size-72"><span class="letters">Pp</span><i id="icon-user" class="icon-user"></i></span>
</div>
<div class="preview-scale">
<span class="step">12</span><span class="step">14</span><span class="step">16</span><span class="step">18</span><span class="step">21</span><span class="step">24</span><span class="step">36</span><span class="step">48</span><span class="step">60</span><span class="step">72</span>
</div>
<div class="usage">
<input class="class" type="text" readonly="readonly" onClick="this.select();" value=".icon-user" />
<input class="point" type="text" readonly="readonly" onClick="this.select();" value="&amp;#xf106;" />
</div>
</div>
<footer>
Made with love using <a href="http://fontcustom.com">Font Custom</a>.
</footer>
</div>
</body>
</html>

View File

@ -1,51 +0,0 @@
/*
Icon Font: fontcustom
*/
@font-face {
font-family: "fontcustom";
src: url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.eot");
src: url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.eot?#iefix") format("embedded-opentype"),
url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.woff") format("woff"),
url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.ttf") format("truetype"),
url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.svg#fontcustom") format("svg");
font-weight: normal;
font-style: normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: "fontcustom";
src: url("/static/fonts/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.svg#fontcustom") format("svg");
}
}
[data-icon]:before { content: attr(data-icon); }
[data-icon]:before,
.icon-activity-stream:before,
.icon-google:before,
.icon-launch:before,
.icon-microsoft:before,
.icon-saml-02:before,
.icon-user:before {
display: inline-block;
font-family: "fontcustom";
font-style: normal;
font-weight: normal;
font-variant: normal;
line-height: 1;
text-decoration: inherit;
text-rendering: optimizeLegibility;
text-transform: none;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}
.icon-activity-stream:before { content: "\f101"; }
.icon-google:before { content: "\f102"; }
.icon-launch:before { content: "\f103"; }
.icon-microsoft:before { content: "\f104"; }
.icon-saml-02:before { content: "\f105"; }
.icon-user:before { content: "\f106"; }

View File

@ -1,76 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2016-11-28: Created.
-->
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Mon Nov 28 21:58:48 2016
By Chris Church
Created by Chris Church with FontForge 2.0 (http://fontforge.sf.net)
</metadata>
<defs>
<font id="fontcustom" horiz-adv-x="512" >
<font-face
font-family="fontcustom"
font-weight="500"
font-stretch="normal"
units-per-em="512"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="448"
descent="-64"
bbox="0 -64 512 448.256"
underline-thickness="25.6"
underline-position="-51.2"
unicode-range="U+0020-F106"
/>
<missing-glyph />
<glyph glyph-name="space" unicode=" " horiz-adv-x="200"
/>
<glyph glyph-name="uniF105" unicode="&#xf105;"
d="M512 192c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256c0 141.312 114.688 256 256 256s256 -114.688 256 -256zM356.608 170.496c-12.5439 16.3838 -36.0967 32.7676 -70.1445 49.1523c-25.8555 12.2871 -42.2402 20.9912 -49.1514 25.5996
c-6.91211 4.86426 -12.0322 9.72754 -15.1045 14.8477s-4.86426 11.0078 -4.86426 17.9199c0 11.0088 3.83984 19.9688 11.7764 26.624c7.93555 6.91211 19.2002 10.2402 33.792 10.2402c12.2881 0 24.832 -1.53613 37.6318 -4.86426
c12.7998 -3.07129 28.9277 -8.70312 48.3838 -16.6396l25.0879 60.1602c-18.9434 8.19141 -36.8633 14.5918 -54.0156 18.9443c-17.1523 4.35156 -35.3281 6.65527 -54.2725 6.65527c-38.6553 0 -68.8633 -9.21582 -90.8799 -27.6475
c-22.0156 -18.4326 -32.7676 -44.0322 -32.7676 -76.2881c0 -17.1523 3.32812 -32.2559 9.98438 -45.0566c6.65527 -12.7998 15.6152 -24.0635 26.623 -33.792c11.2646 -9.72754 27.9043 -19.7119 50.1768 -30.208c23.8076 -11.2637 39.6797 -19.7119 47.3594 -24.8311
c7.68066 -5.12012 13.5684 -10.4961 17.6641 -16.1289c4.09668 -5.63184 5.88867 -12.0312 5.88867 -19.1992c0 -12.8008 -4.6084 -22.5283 -13.5684 -28.9287c-8.95996 -6.39941 -22.0156 -9.72754 -39.168 -9.72754c-14.0801 0 -29.6963 2.30371 -46.8477 6.65625
c-17.1523 4.60742 -37.8887 12.2881 -62.7207 23.2959v-71.6807c29.9521 -14.5918 64.5127 -22.0156 103.424 -22.0156c42.2402 0 75.2646 9.47168 99.0723 28.416c23.8086 18.9443 35.584 45.0557 35.584 78.0801c0 23.8076 -6.39941 43.7764 -18.9434 60.416z" />
<glyph glyph-name="uniF102" unicode="&#xf102;"
d="M512 192c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256c0 141.312 114.688 256 256 256s256 -114.688 256 -256zM104.96 269.568c20.7363 41.2158 57.8564 73.7275 100.864 88.832c38.6562 13.3115 81.9199 13.0557 120.319 -1.02441
c21.5049 -7.93555 40.96 -20.2236 57.6006 -35.584c-5.63184 -6.14355 -11.7764 -11.7764 -17.4082 -17.6641c-10.752 -11.0078 -21.7598 -21.7598 -32.7676 -32.7676c-10.752 10.2393 -24.0645 18.1758 -38.4004 22.5273
c-16.8955 5.12012 -35.0723 5.88867 -52.4795 2.04785c-19.9688 -4.35156 -38.6562 -14.8477 -53.248 -29.6953c-11.5205 -11.7764 -20.4805 -26.3682 -25.8564 -41.9844c-19.4561 15.1045 -38.9121 30.208 -58.624 45.3125zM105.216 109.568
c19.4561 15.1035 38.9121 30.208 58.3682 45.3115c-7.67969 22.2725 -7.67969 47.1045 0 69.6318c-19.7119 15.1045 -39.168 30.208 -58.624 45.3125c-7.16797 -14.3359 -12.2881 -29.4404 -15.6162 -45.0566c-7.67969 -38.6553 -2.04785 -80.1279 15.8721 -115.199z
M264.448 153.344c0.255859 23.2959 0.255859 46.3359 0.255859 69.8887h167.936c5.37598 -31.4883 4.35254 -64.2568 -4.60742 -94.9766c-8.19238 -28.1602 -23.8086 -54.2715 -45.3125 -74.2402c-18.9434 14.5928 -37.8877 29.4404 -56.832 44.0322
c18.9443 12.7998 32 33.0244 35.8398 55.2959h-97.2793zM153.344 49.9199c19.2002 -15.3604 41.2158 -26.624 64.7686 -32.7676c29.6953 -7.93652 61.4395 -7.68066 91.3916 -1.02441c27.1357 6.14453 52.7363 19.2002 73.2158 38.1445
c-18.9434 14.5918 -37.8877 29.4395 -56.832 44.0312c-11.7754 -7.93555 -25.3438 -13.0557 -39.4238 -15.6162c-14.0801 -2.30371 -28.6719 -2.81543 -42.4961 0c-14.0801 2.81641 -27.9033 8.7041 -39.6797 17.1523c-18.9443 13.3125 -33.2803 32.7686 -40.96 54.7842
c-19.4561 -15.1045 -38.9121 -30.208 -58.3682 -45.3125c11.7764 -23.0391 28.416 -43.5195 48.3838 -59.3916z" />
<glyph glyph-name="uniF103" unicode="&#xf103;"
d="M512 436.224c0 -5.12012 -2.55957 -121.6 -77.5684 -196.607l-94.9756 -94.9766c7.93555 -22.0156 22.5283 -97.0234 -82.9443 -202.752l-0.511719 -0.511719c-1.53613 -1.79199 -3.58398 -2.55957 -5.63184 -2.81641h-2.04785
c-2.04785 0.256836 -3.83984 1.02441 -5.37598 2.56055l-0.256836 0.255859c-2.81543 2.81641 -3.58398 7.16797 -1.79102 10.752c0.255859 0.768555 33.0234 68.3525 9.9834 104.192l-23.5518 -23.5527c-0.511719 -0.511719 -1.02441 -1.02344 -1.79199 -1.53516
c-1.02441 -0.512695 -16.1279 -8.96094 -39.9365 -3.84082c-3.07129 -6.14355 -7.42383 -11.7754 -12.2881 -17.1514c-23.8076 -25.0879 -59.6475 -36.6084 -93.4395 -38.9121c-7.42383 -0.511719 -14.8477 -0.511719 -22.2725 0
c-8.19141 0.511719 -15.6152 5.63184 -18.4316 13.5684c-2.04785 5.37598 -1.53613 12.5439 -1.53613 18.1758c0.255859 10.4961 1.02441 20.7354 3.07227 30.9756c3.32812 17.4082 9.21582 34.3037 18.1758 49.4082c8.44824 14.3359 20.2236 27.6484 35.0723 35.3281
c-5.37598 23.8076 3.32812 39.168 3.83984 40.1914c0.511719 0.512695 1.02441 1.28027 1.53613 1.79199l23.5518 23.5527c-35.8398 23.04 -103.424 -9.72852 -104.191 -9.98438c-3.58496 -1.79199 -7.93652 -1.02344 -10.7529 1.79199
c-0.511719 0.511719 -0.767578 0.768555 -1.02344 1.28027c-2.56055 3.83984 -2.30371 8.7041 1.02344 12.0322c105.984 105.728 181.248 91.1357 203.265 83.4561l94.9756 94.9756c65.792 65.792 163.328 76.0322 189.696 77.5684
c3.83984 0.255859 6.14355 0.255859 6.65625 0.255859c0.767578 0 1.2793 0 2.04785 -0.255859c1.79199 -0.512695 3.32812 -1.28027 4.60742 -2.56055c1.79199 -1.79199 2.81641 -4.0957 2.81641 -6.65625zM162.304 22.7842
c6.14453 1.53613 11.7764 3.83984 17.9199 6.14355c-14.5918 4.09668 -32.2559 13.8242 -51.4561 33.0244c-19.4551 19.4561 -28.9277 36.8643 -33.2793 51.7119c-5.88867 -15.1045 -9.47266 -30.4639 -11.7764 -46.3359
c-1.28027 -9.21582 -2.04785 -18.4316 -2.55957 -27.9043c-0.255859 -4.0957 -0.512695 -8.19141 -0.512695 -12.2881c-0.255859 -2.81543 -0.255859 -6.91211 -0.255859 -9.72754c0 -1.28027 1.79199 -3.32812 3.32812 -3.32812
c18.6885 -0.511719 37.6318 0.767578 56.0645 4.0957c7.67969 1.28027 15.1035 2.81641 22.5273 4.6084zM357.12 251.648c22.2715 0 40.4482 18.4316 40.4482 40.7031c0 22.2725 -18.1768 40.4482 -40.4482 40.4482c-22.2725 0 -40.4482 -18.4316 -40.4482 -40.7041
c0 -22.2715 18.1758 -40.4473 40.4482 -40.4473z" />
<glyph glyph-name="uniF106" unicode="&#xf106;"
d="M256 445.44c140.032 0 253.44 -113.408 253.44 -253.44s-113.408 -253.44 -253.44 -253.44s-253.44 113.408 -253.44 253.44s113.408 253.44 253.44 253.44zM423.168 57.3438c29.6963 36.8643 47.6162 83.7119 47.6162 134.656
c0 118.528 -96.2559 214.784 -214.784 214.784s-214.784 -96.2559 -214.784 -214.784c0 -49.6641 16.8965 -95.2324 45.0566 -131.584c25.3438 46.8477 60.416 56.5762 60.416 56.5762h21.7598c23.5518 0 42.752 19.2002 42.752 42.752v14.3359
c-8.44824 10.2402 -15.1045 22.0156 -19.2002 34.5596c-0.767578 2.56055 -1.28027 5.63281 -3.58398 7.16797c-9.47168 7.68066 -12.0322 22.0166 -6.14355 32.5127c1.02344 2.04785 3.07129 3.83984 2.81543 6.39941c0 12.7998 -0.255859 25.6006 0 38.4004
c0.511719 12.0322 3.32812 24.0635 10.2402 34.0479c7.67969 11.5195 19.9678 19.2002 33.2803 22.5283c15.1035 3.83984 31.2314 3.83984 46.5918 1.02344c12.0322 -2.30371 23.8076 -7.93555 32.5117 -16.8955c10.752 -11.2646 15.1045 -27.1367 15.3604 -42.2402
v-37.6318c0 -1.79199 1.53613 -3.07227 2.30371 -4.6084c6.14355 -9.9834 4.6084 -23.8076 -3.58398 -32c-1.53613 -1.53613 -3.83984 -2.81543 -4.35156 -5.12012c-4.09668 -14.0801 -11.0088 -27.3916 -20.4805 -38.6553v-13.8242
c0 -23.5518 19.2002 -42.752 42.752 -42.752h21.5039s36.6084 -10.2402 61.9521 -59.6484z" />
<glyph glyph-name="uniF104" unicode="&#xf104;"
d="M512 192c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256c0 141.312 114.688 256 256 256s256 -114.688 256 -256zM117.76 209.92v128h128v-128h-128zM268.8 209.92v128h128v-128h-128zM268.8 58.8799v128h128v-128h-128zM117.76 58.8799v128h128v-128h-128z
" />
<glyph glyph-name="uniF101" unicode="&#xf101;"
d="M474.112 133.12h31.2314c-26.624 -113.152 -128 -197.12 -249.088 -197.12c-119.04 0 -218.88 81.1523 -247.552 190.976h84.9922c7.42383 0 13.8232 4.09668 15.6152 9.72852l23.8086 71.168l33.792 -155.904c1.53613 -6.91211 8.95996 -11.5195 17.1523 -11.0078
c8.19141 0.768555 14.8477 6.65625 14.8477 13.3125v72.7031h45.0557c8.19238 0 14.8486 4.86426 16.1279 11.5205l25.3438 144.384l55.04 -251.392c1.28027 -6.40039 8.19238 -11.0078 15.6162 -11.0078h0.255859c7.68066 0 14.3359 4.60742 15.6162 10.752l24.832 104.703
h12.5439l18.6885 -25.8555c3.07129 -4.0957 8.19141 -6.65625 13.5674 -6.65625s10.752 2.30469 13.8242 6.14453zM81.4082 153.6h-78.3359c-1.79199 12.5439 -2.81641 25.3447 -2.81641 38.4004c0 141.312 114.433 256.256 255.744 256.256s256 -114.688 256 -256
c0 -11.0078 -0.767578 -21.7598 -2.04785 -32.2559h-44.7998c-5.37598 0 -10.4961 -2.55957 -13.5684 -6.14355l-8.95996 -11.7764l-10.2402 14.0801c-2.81543 3.83984 -8.19141 6.39941 -13.8242 6.39941h-34.8154c-7.93652 0 -14.5918 -4.60742 -15.8721 -10.752
l-10.752 -45.8232l-57.0879 261.888c-1.28027 6.40039 -8.44824 11.5195 -16.1279 11.0078c-7.93652 -0.255859 -14.5918 -4.86426 -15.6162 -11.5195l-37.6318 -213.761h-48.1279c-1.53613 0 -3.32812 0 -4.86426 -0.511719l-25.3438 116.992
c-1.53613 6.14355 -7.93652 10.4961 -15.3604 11.0078c-8.19238 0.768555 -14.0801 -3.83984 -16.1279 -9.98438z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -1,78 +0,0 @@
{
"checksum": {
"previous": "d77a9996ed04d45b02f5c06874cd36db7f5daa9833b1a6c36bef7029a767a34f",
"current": "d77a9996ed04d45b02f5c06874cd36db7f5daa9833b1a6c36bef7029a767a34f"
},
"fonts": [
"..//fontcustom_d77a9996ed04d45b02f5c06874cd36db.ttf",
"..//fontcustom_d77a9996ed04d45b02f5c06874cd36db.svg",
"..//fontcustom_d77a9996ed04d45b02f5c06874cd36db.woff",
"..//fontcustom_d77a9996ed04d45b02f5c06874cd36db.eot"
],
"glyphs": {
"activity-stream": {
"codepoint": 61698,
"source": "./activity-stream.svg"
},
"google": {
"codepoint": 61696,
"source": "./google.svg"
},
"launch": {
"codepoint": 61699,
"source": "./launch.svg"
},
"launch-circle": {
"codepoint": 61701,
"source": "./launch-circle.svg"
},
"launch-new": {
"codepoint": 61703,
"source": "./launch-new.svg"
},
"launch2": {
"codepoint": 61702,
"source": "./launch2.svg"
},
"saml-02": {
"codepoint": 61697,
"source": "./saml-02.svg"
},
"user": {
"codepoint": 61700,
"source": "./user.svg"
}
},
"options": {
"autowidth": false,
"config": false,
"css_selector": ".icon-{{glyph}}",
"debug": false,
"font_ascent": 448,
"font_descent": 64,
"font_design_size": 16,
"font_em": 512,
"font_name": "fontcustom",
"force": true,
"input": {
"templates": ".",
"vectors": "."
},
"no_hash": false,
"output": {
"css": "../",
"fonts": "../",
"preview": "../"
},
"preprocessor_path": null,
"quiet": false,
"templates": [
"css",
"preview"
]
},
"templates": [
"../fontcustom.css",
"../fontcustom-preview.html"
]
}

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<g>
<path d="M185.2,123l-7.3,9.2c-1.2,1.5-3.3,2.4-5.4,2.4c-2.1,0-4.1-1-5.3-2.6l-7.3-10.1H155l-9.7,40.9c-0.5,2.4-3.1,4.2-6.1,4.2
h-0.1c-2.9,0-5.6-1.8-6.1-4.3l-21.5-98.2l-9.9,56.4c-0.5,2.6-3.1,4.5-6.3,4.5H77.7v28.4c0,2.6-2.6,4.9-5.8,5.2
c-3.2,0.2-6.1-1.6-6.7-4.3L52,93.8l-9.3,27.8c-0.7,2.2-3.2,3.8-6.1,3.8H3.4c11.2,42.9,50.2,74.6,96.7,74.6
c47.3,0,86.9-32.8,97.3-77H185.2z"/>
<path d="M31.8,115l15.4-45.9c0.8-2.4,3.1-4.2,6.3-3.9c2.9,0.2,5.4,1.9,6,4.3l9.9,45.7c0.6-0.2,1.3-0.2,1.9-0.2h18.8l14.7-83.5
c0.4-2.6,3-4.4,6.1-4.5c3-0.2,5.8,1.8,6.3,4.3l22.3,102.3l4.2-17.9c0.5-2.4,3.1-4.2,6.2-4.2h13.6c2.2,0,4.3,1,5.4,2.5l4,5.5
l3.5-4.6c1.2-1.4,3.2-2.4,5.3-2.4h17.5c0.5-4.1,0.8-8.3,0.8-12.6c0-55.2-44.8-100-100-100S0.1,44.8,0.1,100c0,5.1,0.4,10.1,1.1,15
H31.8z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<path class="st0" d="M200,100c0,55.2-44.8,100-100,100S0,155.2,0,100S44.8,0,100,0S200,44.8,200,100z M41,69.7
c7.7,5.9,15.3,11.8,22.9,17.7C66,81.3,69.5,75.6,74,71c5.7-5.8,13-9.9,20.8-11.6c6.8-1.5,13.9-1.2,20.5,0.8c5.6,1.7,10.8,4.8,15,8.8
c4.3-4.3,8.6-8.5,12.8-12.8c2.2-2.3,4.6-4.5,6.8-6.9c-6.5-6-14.1-10.8-22.5-13.9c-15-5.5-31.9-5.6-47-0.4
C63.6,40.9,49.1,53.6,41,69.7z M41.1,132.2c7.6-5.9,15.2-11.8,22.8-17.7c-3-8.7-3-18.4,0-27.2c-7.7-5.9-15.3-11.8-22.9-17.7
c-2.8,5.6-4.8,11.5-6.1,17.6C31.9,102.3,34.1,118.5,41.1,132.2z M103.3,115.1c12.7,0,25.4,0,38,0c-1.5,8.7-6.6,16.6-14,21.6
c7.4,5.7,14.8,11.5,22.2,17.2c8.4-7.8,14.5-18,17.7-29c3.5-12,3.9-24.8,1.8-37.1c-21.9,0-43.8,0-65.6,0
C103.4,97,103.4,106,103.3,115.1z M59.9,155.5c7.5,6,16.1,10.4,25.3,12.8c11.6,3.1,24,3,35.7,0.4c10.6-2.4,20.6-7.5,28.6-14.9
c-7.4-5.7-14.8-11.5-22.2-17.2c-4.6,3.1-9.9,5.1-15.4,6.1c-5.5,0.9-11.2,1.1-16.6,0c-5.5-1.1-10.9-3.4-15.5-6.7
c-7.4-5.2-13-12.8-16-21.4c-7.6,5.9-15.2,11.8-22.8,17.7C45.6,141.3,52.1,149.3,59.9,155.5z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#020202;}
</style>
<path class="st0" d="M200,4.6c0-1-0.4-1.9-1.1-2.6c-0.5-0.5-1.1-0.8-1.8-1c-0.3-0.1-0.5-0.1-0.8-0.1c-0.2,0-1.1,0-2.6,0.1
c-10.3,0.6-48.4,4.6-74.1,30.3L82.5,68.4c-8.6-3-38-8.7-79.4,32.6c-1.3,1.3-1.4,3.2-0.4,4.7c0.1,0.2,0.2,0.3,0.4,0.5
c1.1,1.1,2.8,1.4,4.2,0.7C7.6,106.8,34,94,48,103l-9.2,9.2c-0.2,0.2-0.4,0.5-0.6,0.7c-0.2,0.4-3.6,6.4-1.5,15.7
c-5.8,3-10.4,8.2-13.7,13.8c-3.5,5.9-5.8,12.5-7.1,19.3c-0.8,4-1.1,8-1.2,12.1c0,2.2-0.2,5,0.6,7.1c1.1,3.1,4,5.1,7.2,5.3
c2.9,0.2,5.8,0.2,8.7,0c13.2-0.9,27.2-5.4,36.5-15.2c1.9-2.1,3.6-4.3,4.8-6.7c9.3,2,15.2-1.3,15.6-1.5c0.3-0.2,0.5-0.4,0.7-0.6
L98,153c9,14-3.8,40.4-3.9,40.7c-0.7,1.4-0.4,3.1,0.7,4.2c0,0,0,0,0.1,0.1c0.6,0.6,1.3,0.9,2.1,1h0.8c0.8-0.1,1.6-0.4,2.2-1.1
c0.1-0.1,0.1-0.1,0.2-0.2c41.2-41.3,35.5-70.6,32.4-79.2l37.1-37.1C199,52.1,200,6.6,200,4.6z M63.4,166.1c-2.9,0.7-5.8,1.3-8.8,1.8
c-7.2,1.3-14.6,1.8-21.9,1.6c-0.6,0-1.3-0.8-1.3-1.3c0-1.1,0-2.7,0.1-3.8c0-1.6,0.1-3.2,0.2-4.8c0.2-3.7,0.5-7.3,1-10.9
c0.9-6.2,2.3-12.2,4.6-18.1c1.7,5.8,5.4,12.6,13,20.2c7.5,7.5,14.4,11.3,20.1,12.9C68,164.6,65.8,165.5,63.4,166.1z M139.5,76.7
c-8.7,0-15.8-7.1-15.8-15.8S130.8,45,139.5,45s15.8,7.1,15.8,15.8S148.2,76.7,139.5,76.7z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M200,100c0,55.2-44.8,100-100,100S0,155.2,0,100S44.8,0,100,0S200,44.8,200,100z"/>
<rect x="46" y="43" class="st1" width="50" height="50"/>
<rect x="105" y="43" class="st1" width="50" height="50"/>
<rect x="105" y="102" class="st1" width="50" height="50"/>
<rect x="46" y="102" class="st1" width="50" height="50"/>
</svg>

Before

Width:  |  Height:  |  Size: 765 B

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<path class="st0" d="M200,100c0,55.2-44.8,100-100,100S0,155.2,0,100S44.8,0,100,0S200,44.8,200,100z M139.3,108.4
c-4.9-6.4-14.1-12.8-27.4-19.2c-10.1-4.8-16.5-8.2-19.2-10c-2.7-1.9-4.7-3.8-5.9-5.8c-1.2-2-1.9-4.3-1.9-7c0-4.3,1.5-7.8,4.6-10.4
c3.1-2.7,7.5-4,13.2-4c4.8,0,9.7,0.6,14.7,1.9c5,1.2,11.3,3.4,18.9,6.5l9.8-23.5c-7.4-3.2-14.4-5.7-21.1-7.4s-13.8-2.6-21.2-2.6
c-15.1,0-26.9,3.6-35.5,10.8c-8.6,7.2-12.8,17.2-12.8,29.8c0,6.7,1.3,12.6,3.9,17.6c2.6,5,6.1,9.4,10.4,13.2
c4.4,3.8,10.9,7.7,19.6,11.8c9.3,4.4,15.5,7.7,18.5,9.7c3,2,5.3,4.1,6.9,6.3c1.6,2.2,2.3,4.7,2.3,7.5c0,5-1.8,8.8-5.3,11.3
c-3.5,2.5-8.6,3.8-15.3,3.8c-5.5,0-11.6-0.9-18.3-2.6c-6.7-1.8-14.8-4.8-24.5-9.1V165c11.7,5.7,25.2,8.6,40.4,8.6
c16.5,0,29.4-3.7,38.7-11.1s13.9-17.6,13.9-30.5C146.7,122.7,144.2,114.9,139.3,108.4z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<path d="M100,1C45.3,1,1,45.3,1,100s44.3,99,99,99s99-44.3,99-99S154.7,1,100,1z M165.3,152.6c-9.9-19.3-24.2-23.3-24.2-23.3h-8.4
c-9.2,0-16.7-7.5-16.7-16.7v-5.4c3.7-4.4,6.4-9.6,8-15.1c0.2-0.9,1.1-1.4,1.7-2c3.2-3.2,3.8-8.6,1.4-12.5c-0.3-0.6-0.9-1.1-0.9-1.8
c0-4.9,0-9.8,0-14.7c-0.1-5.9-1.8-12.1-6-16.5c-3.4-3.5-8-5.7-12.7-6.6c-6-1.1-12.3-1.1-18.2,0.4c-5.2,1.3-10,4.3-13,8.8
c-2.7,3.9-3.8,8.6-4,13.3c-0.1,5,0,10,0,15c0.1,1-0.7,1.7-1.1,2.5c-2.3,4.1-1.3,9.7,2.4,12.7c0.9,0.6,1.1,1.8,1.4,2.8
c1.6,4.9,4.2,9.5,7.5,13.5v5.6c0,9.2-7.5,16.7-16.7,16.7h-8.5c0,0-13.7,3.8-23.6,22.1c-11-14.2-17.6-32-17.6-51.4
c0-46.3,37.6-83.9,83.9-83.9s83.9,37.6,83.9,83.9C183.9,119.9,176.9,138.2,165.3,152.6z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Some files were not shown because too many files have changed in this diff Show More